diff --git a/README.md b/README.md
index 09f2c37..65ce948 100644
--- a/README.md
+++ b/README.md
@@ -53,6 +53,7 @@ it's advisable to add a `global.json` with the following content instead:
Of course, the proper version number must be specified.
Simply check for the version of the latest release here or on the NuGet feed you're using.
+The package is available on [nuget.org](https://www.nuget.org/packages/Remora.Resonite.Sdk) as well.
## Feature Breakdown
@@ -77,7 +78,7 @@ The following properties are defined by the SDK.
| ResoniteProjectType | mod | Yes |
| ResoniteTargetModLoader | MonkeyLoader | Yes |
| TargetFramework* | net10.0 / net472 | Yes |
-| ResoniteUseMonkeyLoaderCore | `'$(ResoniteProjectType)' == 'mod' AND '$(ResoniteTarget)' != 'renderite'` | Yes |
+| ResoniteUseMonkeyLoaderCore | false | Yes |
`ResoniteTarget` can be set to `client`, `headless`, or `renderite`.
`headless` is for the server version of Resonite which does not have any graphics,
@@ -112,10 +113,11 @@ For a `ResoniteTarget` of `client` or `headless`, this must be `net10.0`,
while for `renderite`, `net472` is generally required.
`standalone` projects may target a higher version though.
-`ResoniteUseMonkeyLoaderCore` decides whether the `MonkeyLoader.Resonite.Core`
+`ResoniteUseMonkeyLoaderCore` controls whether the `MonkeyLoader.Resonite.Core`
NuGet package will be referenced when creating a mod not targeting MonkeyLoader.
This package offers convenient extension methods and other features for mods,
but doesn't rely on MonkeyLoader being present.
+Since the default is `false`, you have to manually set it to `true` for your project.
### Building
@@ -168,11 +170,12 @@ You can control the location where these assemblies are loaded from with
When using `MonkeyLoader` as the `ResoniteTargetModLoader`,
there is additional properties defined by the SDK.
-| Property | Value | Overridable |
-|-------------------------|----------------|-------------|
-| IsMonkeyLoaderGamePack | false | Yes |
-| MonkeyLoaderPackageType | Mod / GamePack | No |
-| GeneratePackageOnBuild* | true | No |
+| Property | Value | Overridable |
+|-------------------------------------|----------------|-------------|
+| IsMonkeyLoaderGamePack | false | Yes |
+| MonkeyLoaderPackageType | Mod / GamePack | No |
+| GeneratePackageOnBuild* | true | No |
+| MonkeyLoaderHideResoniteIntegration | false | Yes |
Most importantly, `IsMonkeyLoaderGamePack` controls whether the packed project
is placed into the `MonkeyLoader/Mods/` or `MonkeyLoader/GamePacks/` directory,
@@ -181,6 +184,12 @@ if `ResoniteInstallOnBuild` is set to `true`.
To ensure that a NuGet package is created, the `MSBuild` property
`GeneratePackageOnBuild` is always set to `true`.
+The property `MonkeyLoaderHideResoniteIntegration` can be used to hide the
+`MonkeyLoader.GamePacks.Resonite` reference from the resulting package.
+In particular, this is useful for integrations that can load mods
+from other loaders, so that they can be used to build those mods too,
+without pulling in all of MonkeyLoader.
+
### Compilation
@@ -287,7 +296,13 @@ No matter your project type, the following attributes are always defined.
Additionally, for each `ResoniteReference` with `UsePublicized` set to `true`,
a corresponding `IgnoreAccessChecksTo` attribute is added.
This ensures that there will be no issues when accessing non-public types or
-members of those assemblies at runtime.
+members of those assemblies at runtime.
+As this attribute is supported by the runtime but not available by default,
+it has to be supplied directly or from another library.
+To do this, a definition for the attribute is automatically included
+for mod projects that do not already get access to it
+through a library included by the SDK.
+To prevent this, set the property `ResoniteHasIgnoreAccessChecksAttribute` to `true`.
### Publishing
diff --git a/Remora.Resonite.Sdk.slnx b/Remora.Resonite.Sdk.slnx
index 3b71db3..ff87b54 100644
--- a/Remora.Resonite.Sdk.slnx
+++ b/Remora.Resonite.Sdk.slnx
@@ -16,85 +16,149 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/Remora.Resonite.Sdk/ReferenceGeneration/Shared.json b/Remora.Resonite.Sdk/ReferenceGeneration/Shared.json
index 7028a78..37b9c05 100644
--- a/Remora.Resonite.Sdk/ReferenceGeneration/Shared.json
+++ b/Remora.Resonite.Sdk/ReferenceGeneration/Shared.json
@@ -21,7 +21,8 @@
"ProtoFlux.*?\\.dll$",
"Renderite\\.Shared\\.dll$",
"SkyFrost.*?\\.dll$",
- "YellowDogMan.*?\\.dll$"
+ "YellowDogMan.*?\\.dll$",
+ "ResoniteLink\\.dll$"
],
"ExcludePatterns": []
}
\ No newline at end of file
diff --git a/Remora.Resonite.Sdk/Remora.Resonite.Sdk.msbuildproj b/Remora.Resonite.Sdk/Remora.Resonite.Sdk.msbuildproj
index 679a01d..a0f3ea9 100644
--- a/Remora.Resonite.Sdk/Remora.Resonite.Sdk.msbuildproj
+++ b/Remora.Resonite.Sdk/Remora.Resonite.Sdk.msbuildproj
@@ -7,8 +7,8 @@
Remora.Resonite.Sdk
A .NET SDK for developing Resonite mods and plugins.
- 2.0.10
- Update reference assemblies to Resonite 22026.1.16.273.
+ 2.1.0
+ Update reference assemblies to Resonite 2026.3.11.1400.
true
MSBuild;MSBuildSdk;Remora;Resonite;Renderite;RML;MonkeyLoader;Mod;Mods;BepisLoader;BepInEx;Plugin;Plugins
MSBuildSdk
diff --git a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.BepisLoader.targets b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.BepisLoader.targets
index 2df8692..bfe41d6 100644
--- a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.BepisLoader.targets
+++ b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.BepisLoader.targets
@@ -1,7 +1,10 @@
$(DefineConstants);RESONITE_BEPISLOADER
+
<_MainOutputDirectory>BepInEx/plugins/$(AssemblyName)/
+
+ true
diff --git a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.ResoniteModLoader.targets b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.ResoniteModLoader.targets
index d7da042..c538bcb 100644
--- a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.ResoniteModLoader.targets
+++ b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.ResoniteModLoader.targets
@@ -2,6 +2,6 @@
-
+
\ No newline at end of file
diff --git a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.targets b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.targets
index 17c0a1b..d59cc12 100644
--- a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.targets
+++ b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.MonkeyLoader.targets
@@ -11,16 +11,24 @@
Mod
GamePack
+ false
+
<_MonkeyLoaderMainDirectory>MonkeyLoader/$(MonkeyLoaderPackageType)s/
<_MonkeyLoaderLibraryDirectory>MonkeyLoader/Libs/
$(ResoniteTargetPath)MonkeyLoader/
$(ResoniteTargetPath)$(_MonkeyLoaderMainDirectory)
+
+ true
-
+
+
+
$(PkgMonkeyLoader_GamePacks_Resonite)/lib/net10.0/pre-patchers/MonkeyLoader.Resonite.Data.dll
diff --git a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.ResoniteModLoader.targets b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.ResoniteModLoader.targets
index 589416f..b3eb9eb 100644
--- a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.ResoniteModLoader.targets
+++ b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.ResoniteModLoader.targets
@@ -6,10 +6,6 @@
-
- $(ResonitePath)Libraries/ResoniteModLoader.dll
- $(ResoniteReferencePath)ResoniteModLoaderStandalone/ResoniteModLoader.dll
- false
-
+
\ No newline at end of file
diff --git a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.targets b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.targets
index 1c64158..13a2280 100644
--- a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.targets
+++ b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Mod.targets
@@ -2,10 +2,18 @@
$(DefineConstants);RESONITE_MOD
- true
+ false
false
+
+ false
+ true
+
+
+
+
all
@@ -13,7 +21,7 @@
+ Condition="'$(ResoniteTargetModLoader)' != 'MonkeyLoader' AND '$(ResoniteTarget)' != 'renderite' AND '$(ResoniteUseMonkeyLoaderCore)' == 'true'" />
diff --git a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Shared.ResoniteModLoader.targets b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Shared.ResoniteModLoader.targets
index 5b5feb9..4af2f63 100644
--- a/Remora.Resonite.Sdk/Sdk/ProjectTypes/Shared.ResoniteModLoader.targets
+++ b/Remora.Resonite.Sdk/Sdk/ProjectTypes/Shared.ResoniteModLoader.targets
@@ -6,6 +6,10 @@
<_LibraryOutputDirectory>rml_libs/
+
+
+
+
diff --git a/Remora.Resonite.Sdk/Sdk/Sdk.ResoniteVersion.targets b/Remora.Resonite.Sdk/Sdk/Sdk.ResoniteVersion.targets
index 54b30a9..c20a0f5 100644
--- a/Remora.Resonite.Sdk/Sdk/Sdk.ResoniteVersion.targets
+++ b/Remora.Resonite.Sdk/Sdk/Sdk.ResoniteVersion.targets
@@ -3,7 +3,7 @@
<_Parameter1>ResoniteVersion
- <_Parameter2>2026.1.16.273
+ <_Parameter2>2026.3.11.1400
diff --git a/Remora.Resonite.Sdk/Sdk/Sdk.props b/Remora.Resonite.Sdk/Sdk/Sdk.props
index ec9654e..d142ab5 100644
--- a/Remora.Resonite.Sdk/Sdk/Sdk.props
+++ b/Remora.Resonite.Sdk/Sdk/Sdk.props
@@ -64,7 +64,7 @@
-
+
diff --git a/Remora.Resonite.Sdk/Sdk/include/IgnoresAccessChecksToAttribute.cs b/Remora.Resonite.Sdk/Sdk/include/IgnoresAccessChecksToAttribute.cs
new file mode 100644
index 0000000..5a9a8e1
--- /dev/null
+++ b/Remora.Resonite.Sdk/Sdk/include/IgnoresAccessChecksToAttribute.cs
@@ -0,0 +1,15 @@
+using System;
+
+namespace System.Runtime.CompilerServices
+{
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ internal sealed class IgnoresAccessChecksToAttribute : Attribute
+ {
+ public IgnoresAccessChecksToAttribute(string assemblyName)
+ {
+ AssemblyName = assemblyName;
+ }
+
+ public string AssemblyName { get; }
+ }
+}
\ No newline at end of file
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Client/Publicized/Renderite.Host.dll b/Remora.Resonite.Sdk/Sdk/ref/Client/Publicized/Renderite.Host.dll
index 31b5db4..61380e2 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Client/Publicized/Renderite.Host.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Client/Publicized/Renderite.Host.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:dad3627b2a93d51a52d04f36fa4c6b1f447e52fc6090c6efdea4de60d30b808b
+oid sha256:a8b83a2a04d76181bdc3a9f57604de59e463ccff1e79e96f3ed48b26e3e4c02d
size 13824
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Client/Stripped/Renderite.Host.dll b/Remora.Resonite.Sdk/Sdk/ref/Client/Stripped/Renderite.Host.dll
index 883af01..de3eb48 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Client/Stripped/Renderite.Host.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Client/Stripped/Renderite.Host.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:644e97f4157cf13a312525a936f19ecd66e0a63f43c688a9048077ff33a1fc63
+oid sha256:a3db8a0ac280f7e4d3899ce56dc71ea13ef0fc4fbbc4cc42b5703b0aabf18db2
size 13824
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Headless/Publicized/Resonite.dll b/Remora.Resonite.Sdk/Sdk/ref/Headless/Publicized/Resonite.dll
index 69eb925..d50e8b6 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Headless/Publicized/Resonite.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Headless/Publicized/Resonite.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:01e304bc42b72b71b55af9bde6b6d7c1e6ed88a516e96b62dc30dafb94522269
+oid sha256:5a4d76566c2264abb6a951ffd851d070dc6689d32bfb9cd5b85e39b02d5cd4d1
size 296448
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Headless/Stripped/Resonite.dll b/Remora.Resonite.Sdk/Sdk/ref/Headless/Stripped/Resonite.dll
index c4b075b..fea9156 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Headless/Stripped/Resonite.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Headless/Stripped/Resonite.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f2320bc9e82996ea0fb5eae913fc2db1abf2d1aa82bc1d9e52149f072b919860
+oid sha256:2b83e72d808e4fb39ded20780cf49714baafda961035a6391ef7ca64bc3e2b60
size 296448
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Assembly-CSharp.dll b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Assembly-CSharp.dll
index 45dcbfb..211e111 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Assembly-CSharp.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Assembly-CSharp.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:49c5d26aa2f944eaa6151e71be2e30c8d5089045db79f93538684d8364d1981f
+oid sha256:1e4803cf3a8cf52900e09e89fbf52a9bae6998b24a5b8197d3ae5aeaa043bf83
size 288768
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Renderite.Unity.dll b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Renderite.Unity.dll
index c106ceb..9bd0518 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Renderite.Unity.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Publicized/Renderite.Unity.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:caf462d6494bb48e1c6a8693082c0464529171304f44f686cb6a73ddb040a5d4
+oid sha256:00dfd5dccaa1a59252731c8d69e7f15df00a7af237c00e9493a2b7a7e28894a6
size 96256
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Assembly-CSharp.dll b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Assembly-CSharp.dll
index 31e7c69..41a7b18 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Assembly-CSharp.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Assembly-CSharp.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:83c6b1bc3972c7e75d9ec3bfe5d1019cd9a79c5d1d2b654571c83b29779dbc1c
+oid sha256:ffe28163db43506545ff56c6c29f71564e4e49dc74ec8673da3e816295240217
size 288768
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Renderite.Unity.dll b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Renderite.Unity.dll
index df88206..7de7bb2 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Renderite.Unity.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Renderite/Stripped/Renderite.Unity.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a61f8cd2db2465465348d5fc310eff2cc272aaae0843e40a0b8f14c943e441a1
+oid sha256:94793364811916644f7e5ff947a2c9b22d76c33bcdfe92f0fc0f00670f1488ad
size 96256
diff --git a/Remora.Resonite.Sdk/Sdk/ref/ResoniteModLoaderStandalone/ResoniteModLoader.dll b/Remora.Resonite.Sdk/Sdk/ref/ResoniteModLoaderStandalone/ResoniteModLoader.dll
deleted file mode 100644
index 1849de9..0000000
--- a/Remora.Resonite.Sdk/Sdk/ref/ResoniteModLoaderStandalone/ResoniteModLoader.dll
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f800d70dac23d68962abab347b87d7795d3b92c32c0cce92352020cbda33ba62
-size 72704
diff --git a/Remora.Resonite.Sdk/Sdk/ref/ResoniteModLoaderStandalone/ResoniteModLoader.xml b/Remora.Resonite.Sdk/Sdk/ref/ResoniteModLoaderStandalone/ResoniteModLoader.xml
deleted file mode 100644
index e2cd513..0000000
--- a/Remora.Resonite.Sdk/Sdk/ref/ResoniteModLoaderStandalone/ResoniteModLoader.xml
+++ /dev/null
@@ -1,735 +0,0 @@
-
-
-
- ResoniteModLoader
-
-
-
-
- Provides asset URIs for the mod loader.
-
-
-
-
- Marks a field of type on a class
- deriving from to be automatically included in that mod's configuration.
-
-
-
-
- Represents the data for the and events.
-
-
-
-
- The in which the change occured.
-
-
-
-
- The specific who's value changed.
-
-
-
-
- A custom label that may be set by whoever changed the configuration.
-
-
-
-
- One method that can start the static constructor of the mod loader.
-
-
-
-
- Static constructor for . This is called when the assembly is loaded and starts the mod loader initialization process.
-
-
-
-
- Interfaces with Resonite's load progress indicator to set custom phases.
-
-
-
-
- Sets a custom subphase message on the loading progress indicator.
-
- The message to display on the indicator
-
- true if the indicator was set successfully or if visuals are hidden with otherwise false.
-
-
-
-
-
-
-
- //async Task
-
-
-
- Represents an interface for mod configurations.
-
-
-
-
- Gets the mod that owns this configuration definition.
-
-
-
-
- Gets the semantic version for this configuration definition. This is used to check if the defined and saved configs are compatible.
-
-
-
-
- Gets the set of configuration keys defined in this configuration definition.
-
-
-
-
- Defines a mod configuration. This should be defined by a using the method.
-
-
-
-
-
-
-
-
-
-
-
-
-
- The configuration for a mod. Each mod has zero or one configuration. The configuration object will never be reassigned once initialized.
-
-
-
-
-
-
-
-
-
-
-
-
-
- The delegate that is called for configuration change events.
-
- The event containing details about the configuration change
-
-
-
- Called if any config value for any mod changed.
-
-
-
-
- Called if one of the values in this mod's config changed.
-
-
-
-
- Checks if the given key is defined in this config.
-
- The key to check.
- true if the key is defined.
-
-
-
- Checks if the given key is the defining key.
-
- The key to check.
- true if the key is the defining key.
-
-
-
- Get a value, throwing a if the key is not found.
-
- The key to get the value for.
- The value for the key.
- The given key does not exist in the configuration.
-
-
-
- Get a value, throwing a if the key is not found.
-
- The type of the key's value.
- The key to get the value for.
- The value for the key.
- The given key does not exist in the configuration.
-
-
-
- Tries to get a value, returning default if the key is not found.
-
- The key to get the value for.
- The value if the return value is true, or default if false.
- true if the value was read successfully.
-
-
-
- Tries to get a value, returning default() if the key is not found.
-
- The key to get the value for.
- The value if the return value is true, or default if false.
- true if the value was read successfully.
-
-
-
- Sets a configuration value for the given key, throwing a if the key is not found
- or an if the value is not valid for it.
-
- The key to get the value for.
- The new value to set.
- A custom label you may assign to this change event.
- The given key does not exist in the configuration.
- The new value is not valid for the given key.
-
-
-
- Sets a configuration value for the given key, throwing a if the key is not found
- or an if the value is not valid for it.
-
- The type of the key's value.
- The key to get the value for.
- The new value to set.
- A custom label you may assign to this change event.
- The given key does not exist in the configuration.
- The new value is not valid for the given key.
-
-
-
- Removes a configuration value, throwing a if the key is not found.
-
- The key to remove the value for.
- true if a value was successfully found and removed, false if there was no value to remove.
- The given key does not exist in the configuration.
-
-
-
- Persist this configuration to disk.
- This method is not called automatically.
-
- If true, default values will also be persisted.
-
- Saving too often may result in save calls being debounced, with only the latest save call being used after a delay.
-
-
-
-
- Asynchronously persists this configuration to disk.
-
- If true, default values will also be persisted.
- If true, skip the debouncing and save immediately.
-
- immediate isn't used anywhere nor exposed outside of internal, mods shouldn't be bypassing debounce.
-
-
-
-
- Performs the actual, synchronous save
-
- If true, default values will also be persisted
-
-
-
- Represents an encountered while loading a mod's configuration file.
-
-
-
-
- Defines options for the handling of incompatible configuration versions.
-
-
-
-
- Fail to read the config, and block saving over the config on disk.
-
-
-
-
- Destroy the saved config and start over from scratch.
-
-
-
-
- Ignore the version number and attempt to load the config from disk.
-
-
-
-
- Represents a fluent configuration interface to define mod configurations.
-
-
-
-
- Sets the semantic version of this configuration definition. Default is 1.0.0.
-
- The config's semantic version.
- This builder.
-
-
-
- Sets the semantic version of this configuration definition. Default is 1.0.0.
-
- The config's semantic version, as a string.
- This builder.
-
-
-
- Adds a new key to this configuration definition.
-
- A configuration key.
- This builder.
-
-
-
- Sets the AutoSave property of this configuration definition. Default is true.
-
- If false, the config will not be autosaved on Resonite close.
- This builder.
-
-
-
- Represents an untyped mod configuration key.
-
-
-
-
- Gets the mod-unique name of this config item. Must be present.
-
-
-
-
- Gets the human-readable description of this config item. Should be specified by the defining mod.
-
-
-
-
- Gets whether only the owning mod should have access to this config item.
-
-
-
-
- Delegate for handling configuration changes.
-
- The new value of the .
-
-
-
- Called if this changed.
-
-
-
-
- Get the of this key's value.
-
- The of this key's value.
-
-
-
- Checks if a value is valid for this configuration item.
-
- The value to check.
- true if the value is valid.
-
-
-
- Tries to compute the default value for this key, if a default provider was set.
-
- The computed default value if the return value is true. Otherwise default.
- true if the default value was successfully computed.
-
-
-
- We only care about key name for non-defining keys.
- For defining keys all of the other properties (default, validator, etc.) also matter.
-
- The other object to compare against.
- true if the other object is equal to this.
-
-
-
-
-
-
-
-
-
- Set if this key has had a value assigned.
-
-
-
-
- Each configuration item has exactly ONE defining key, and that is the key defined by the mod.
- Duplicate keys can be created (they only need to share the same Name) and they'll still work
- for reading configs.
-
- This is a non-null self-reference for the defining key itself as soon as the definition is done initializing.
-
-
-
-
- Represents a typed mod configuration key.
-
- The type of this key's value.
-
-
-
- Creates a new instance of the class with the given parameters.
-
- The mod-unique name of this config item.
- The human-readable description of this config item.
- The function that computes a default value for this key. Otherwise default() will be used.
- If true, only the owning mod should have access to this config item.
- The function that checks if the given value is valid for this configuration item. Otherwise everything will be accepted.
-
-
-
- Gets or sets the value of this configuration key.
-
- Get: Attempts to retrieve the current value assigned to this key.
- If no value is set, uses if that fails, returns default(T?).
- Set: Assigns the provided value to this key and notifies any subscribers.
-
-
-
-
-
-
-
-
-
-
-
- Checks if a value is valid for this configuration item.
-
- The value to check.
- true if the value is valid.
-
-
-
-
-
-
- Tries to compute the default value for this key, if a default provider was set.
-
- The computed default value if the return value is true. Otherwise default(T).
- true if the default value was successfully computed.
-
-
-
- Contains the actual mod loader.
-
-
-
-
- ResoniteModLoader's version
-
-
-
-
- Returns true if ResoniteModLoader was loaded by a headless
-
-
-
-
- Allows reading metadata for all loaded mods
-
- A new list containing each loaded mod
-
-
-
- Registers a successfully loaded mod, adding it to various lookup maps.
-
- The successfully loaded mod to register
-
-
-
- Load the mod class and mod config for a given mod.
-
- The for an unloaded mod
-
-
-
- Base class for all mods.
- Contains members that only the or the Mod itself are intended to access.
-
-
- Inherit from this class when creating a new mod.
-
-
-
-
- Gets whether debug logging is enabled.
-
- true if debug logging is enabled.
-
-
-
- Logs an object as a line in the log based on the value produced by the given function if debug logging is enabled..
-
- This is more efficient than passing an or a directly,
- as it won't be generated if debug logging is disabled.
-
- The function generating the object to log.
-
-
-
- Logs the given object as a line in the log if debug logging is enabled.
-
- The object to log.
-
-
-
- Logs the given objects as lines in the log if debug logging is enabled.
-
- The objects to log.
-
-
-
- Logs the given object as a regular line in the log.
-
- The object to log.
-
-
-
- Logs the given objects as regular lines in the log.
-
- The objects to log.
-
-
-
- Logs the given object as a warning line in the log.
-
- The object to log.
-
-
-
- Logs the given objects as warning lines in the log.
-
- The objects to log.
-
-
-
- Logs the given object as an error line in the log.
-
- The object to log.
-
-
-
- Logs the given objects as error lines in the log.
-
- The objects to log.
-
-
-
- Called once immediately after ResoniteModLoader begins execution
-
-
-
-
- Build the defined configuration for this mod.
-
- This mod's configuration definition.
-
-
-
- Define this mod's configuration via a builder
-
- A builder you can use to define the mod's configuration
-
-
-
- Defines handling of incompatible configuration versions
-
- Configuration version read from the config file
- Configuration version defined in the mod code
-
-
-
-
- Contains public metadata about a mod.
-
-
-
-
- Gets the mod's name. This must be unique.
-
-
-
-
- Gets the mod's author.
-
-
-
-
- Gets the mod's semantic version.
-
-
-
-
- Gets an optional hyperlink to the mod's repo or homepage.
-
-
-
-
- A reference to the AssemblyFile that this mod was loaded from.
- The reference is set once the mod is successfully loaded, and is null before that.
-
-
-
-
- Gets this mod's current .
-
- This will always be the same instance.
-
- This mod's current configuration.
-
-
-
-
-
-
-
-
-
-
-
-
- Get the executing mod by stack trace analysis.
- You may skip extra frames if you know your callers are guaranteed to be RML code.
-
- A stack trace captured by the callee
- The executing mod, or null if none found
-
-
-
- Used to debounce calls to a given method. The given method will be called after there have been no additional calls
- for the given number of milliseconds.
-
- The returned by this method has internal state used for debouncing,
- so you will need to store and reuse the Action for each call.
-
- The type of the debounced method's input.
- The method to be debounced.
- How long to wait before a call to the debounced method gets passed through.
- A debouncing wrapper for the given method.
-
-
-
- Provides the ability to inject actions into the execution of an enumeration while transforming it.
- This example shows how to apply the when patching a function.
- Of course you typically wouldn't patch with a generic method, that's just for illustrating the Type usage.
-
- private static void Postfix<Original, Transformed>(ref IEnumerable<Original> __result) where Transformed : Original
- {
- __result = new EnumerableInjector<Original, Transformed>(__result,
- item => { Msg("Change what the item is exactly"); return new Transformed(item); })
- {
- Prefix = () => Msg("Before the first item is returned"),
- PreItem = item => { Msg("Decide if an item gets returned"); return true; },
- PostItem = (original, transformed, returned) => Msg("After control would come back to the generator after a yield return"),
- Postfix = () => Msg("When the generator stopped returning items")
- };
- }
-
-
- The type of the original enumeration's items.
- The type of the transformed enumeration's items.
Must be assignable to TOriginal for compatibility.
-
-
-
- Internal enumerator for iteration.
-
-
-
-
- Gets called when the wrapped enumeration returned the last item.
-
-
-
-
- Gets called for each item, with the transformed item, and whether it was passed through.
- First thing to be called after execution returns to the enumerator after a yield return.
-
-
-
-
- Gets called before the enumeration returns the first item.
-
-
-
-
- Gets called for each item to determine whether it should be passed through.
-
-
-
-
- Gets called for each item to transform it, even if it won't be passed through.
-
-
-
-
- Creates a new instance of the class using the supplied input and transform function.
-
- The enumerable to inject into and transform.
- The transformation function.
-
-
-
- Creates a new instance of the class using the supplied input and transform function.
-
- The enumerator to inject into and transform.
- The transformation function.
-
-
-
- Injects into and transforms the input enumeration.
-
- The injected and transformed enumeration.
-
-
-
- Injects into and transforms the input enumeration without a generic type.
-
- The injected and transformed enumeration without a generic type.
-
-
-
- Provides the ability to inject actions into the execution of an enumeration without transforming it.
- This example shows how to apply the when patching a function.
- Of course you typically wouldn't patch with a generic method, that's just for illustrating the Type usage.
-
- static void Postfix<T>(ref IEnumerable<T> __result)
- {
- __result = new EnumerableInjector<T>(__result)
- {
- Prefix = () => Msg("Before the first item is returned"),
- PreItem = item => { Msg("Decide if an item gets returned"); return true; },
- TransformItem = item => { Msg("Change what the item is exactly"); return item; },
- PostItem = (original, transformed, returned) => Msg("After control would come back to the generator after a yield return"),
- Postfix = () => Msg("When the generator stopped returning items")
- };
- }
-
-
- The type of the enumeration's items.
-
-
-
- Creates a new instance of the class using the supplied input .
-
- The enumerable to inject into.
-
-
-
- Creates a new instance of the class using the supplied input .
-
- The enumerator to inject into.
-
-
-
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Awwdio.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Awwdio.dll
index b8b04c5..5705d8a 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Awwdio.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Awwdio.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e3bf92fe9a34971a4b6fd9be8258e54a1f14ded7676c5284e36a65f254e9e9c2
-size 31744
+oid sha256:ffe4b3af736c0d5a8d410e0f454aa99f5156293b23052f5e5063d37862e264c5
+size 32256
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Assets.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Assets.dll
index e729909..926a746 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Assets.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Assets.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4fe0ddc4d4ac5164fe69088f1bcf83d7e387fc3ca99d247e15e4a342f695b540
-size 283136
+oid sha256:d17b6be18a939c8cb43e5054ff2c961cb98b0506acbbd3f99eb0b14455e71357
+size 285696
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.dll
index 6aa3060..4ebc430 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:15a763e006dffdc5dd6b5e0dc275662c72f3e50c705c688403225442992e29a2
-size 1506304
+oid sha256:2488866a1ae6a4653b46e2b6d7791790cffb1629153e9324c52275e61a2c0553
+size 1515008
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.xml b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.xml
index 50ed569..c370926 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.xml
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Core.xml
@@ -705,6 +705,33 @@
Pattern to search for
Count of occurences of pattern within text.
+
+
+ Contains utility methods for throttling/rate-limiting operations
+
+
+
+
+ Runs an operation repeatedly until it succeeds or a maximum number of attempts is reached.
+ A delay is inserted between each attempt, doubling each time, up to a maximum delay.
+
+ Function to run for each attempt, returning whether the operation was successful
+
+
+
+
+
+
+
+ Runs an operation repeatedly until it succeeds or a maximum number of attempts is reached.
+ A delay is inserted between each attempt, doubling each time, up to a maximum delay.
+
+ Function to run for each attempt, returning whether the operation was successful
+
+
+
+
+
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Data.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Data.dll
index c713a8b..78f37f2 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Data.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Elements.Data.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7831eb6f8743e45236e778bb2360089a843d001b6e0cbc88bdd3bbf4e69c69b1
+oid sha256:403d2bb6d4e250b1825fb3b8035f85d781292cfeaa822bd34b8e7c96ad97d5f7
size 6656
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Commands.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Commands.dll
index e5e96f0..7b268ae 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Commands.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Commands.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:97eccb76ea882fc7886e9896530cbf8a196ceb483046bcab5d8fef58c96965f3
+oid sha256:e55d25f44db4e4de770af071c327cb7607b273067a9b65d87d988995753a00f8
size 7680
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Store.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Store.dll
index bdc66e4..f8ddc3c 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Store.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Store.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2c83d6f6c1d804b1c967054f0437a964dda7942abd2e5115dc8393768ae4d83f
+oid sha256:7f5300a54ecfc7bef10accbfd6c9d82a114c389e3b563358b654f9346c60b443
size 50688
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Weaver.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Weaver.dll
index e5effbd..dfd67cb 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Weaver.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.Weaver.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:858a8568e5a805ffddbaec93922a95c36c8e0d1548a0abce3f817aa5beaec231
+oid sha256:dc45505d186e4beb71e7c5b34494d89b024a32b5b2fc7a556d3d0511fe931fe7
size 11776
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.dll
index 34cf78f..320829a 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4d3bf216666160f2d2f2547490aac2bafeee5afe723c4586ef4b23af32c1eec4
-size 5125120
+oid sha256:a8b292a80a382ccc1f60307428c202b9f6823f3147b3ea86c6678d0bc21c4039
+size 5207552
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.xml b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.xml
index 61645df..ad680a6 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.xml
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/FrooxEngine.xml
@@ -2968,7 +2968,7 @@
executed in a Linux environment.
-
+
Beware! This may be removed when dispatch of the renderer process is improved!
@@ -3587,18 +3587,20 @@
true for success, false otherwise
World Orb records, usually get two tags 'world_orb' and 'world_uri:resrec//etc' see for more info.
-
+
Checks if any of the URIs in this are valid for a given platform
Platform to use when checking
+
if there are valid URIs. otherwise.
-
+
Checks if this worldstartsettings can "start" a world.
Platform the world should run on.
+
if this can be used to start a world. otherwise.
This is a quick check, that doesn't rely on anything external to the WorldStartSettings except for the platform.
@@ -3616,6 +3618,12 @@
true if the avatar creator can be spawned, false if it cannot.
+
+
+ Owner of the World/Session.
+
+ Analgous to "Host".
+
Runs an action in sync with the world update from the update thread, when changes to the data model are allowed by the running code.
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/PhotonDust.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/PhotonDust.dll
index 43b2c85..bfe8da1 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/PhotonDust.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/PhotonDust.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c1d789808bf033073f97ebc86c03afae467bfad247c04ab546cd822a0103809e
+oid sha256:e1483a22dec889d8cf089baad6eeb969da92c024c8922fd8eae780467792f176
size 54272
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Core.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Core.dll
index 57f894e..9164c7b 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Core.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Core.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0498db28d216e386d61fa45552eac9722bcfe9f1c86c66f9251b35ca95d15508
+oid sha256:0dea8e70971cf3387bc264f2625bf7084a318b69a54f30287d9faf350c6dc74e
size 145408
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.Core.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.Core.dll
index de49604..c612df7 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.Core.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.Core.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f111eeabcbed0d08af140233fdb8d4f7b61e6d3d68af2e76de112b8d3a275d36
-size 435712
+oid sha256:0fb368ca9eb4b964cc01ec40ab2444d2c269d7c2b09d5e6f23a9e5515bf8ea1e
+size 441344
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.FrooxEngine.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.FrooxEngine.dll
index e581859..bf17404 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.FrooxEngine.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFlux.Nodes.FrooxEngine.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6622ccd142f4b46d21f1cde8b8e03e2c94342f432253a6408264865ed68ff3fc
+oid sha256:6f6fa533529798d8827a2158cbb73d28c2f38eff2a7827626f6f1e27cd4253c1
size 140288
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFluxBindings.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFluxBindings.dll
index e188478..eaa428a 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFluxBindings.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ProtoFluxBindings.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8be7f3f301cd5e433c63210a87ee156ce5cbeba2284bc0d922e44fea78a9b3df
-size 5019136
+oid sha256:88fde261b32880673cb42fe98a5caeb253469c2451b1e7cd41da6700c9c68e2b
+size 5046272
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Renderite.Shared.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Renderite.Shared.dll
index 80a7a2d..12241cf 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Renderite.Shared.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/Renderite.Shared.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0639735f12a3bf1b9e8e6b7899664c4c811f614f9a0caad22bde29a632a51afe
+oid sha256:544977e8dd44c35d54335c0536707f220f8f842b5386a96d587a73c6841f9a71
size 73728
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ResoniteLink.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ResoniteLink.dll
new file mode 100644
index 0000000..ef9ab1f
--- /dev/null
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/ResoniteLink.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a5c1a5c8c5e607c9776529ccc7c305938017bb7f1c193a37b5f933c986252fa
+size 186880
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.dll
index 1f8fc76..cd327dd 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ce8d0ebba71195fc24310588d5c95c6ffd61c91589e22c727da56f3b95769507
+oid sha256:3f7afbe4898c82815b341a1d2d3fa29c29b6766f3150162e93ec9eb8675ad2e9
size 192000
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.xml b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.xml
index 5324f7f..424b688 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.xml
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.Models.xml
@@ -1777,6 +1777,7 @@
Base64 encoded RSA SHA-256 signature, which can be used to verify the Id and Timestamp of this thumbnail info
for upload on the endpoint (Cloudflare) without having to contact the Azure API
+ for the unsigned data.
@@ -1794,8 +1795,11 @@
- Binary version of the SignatureString
+ Binary version of the SignatureString for signing.
+
+ for the signed version.
+
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.dll
index 4a525d9..056776c 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Publicized/SkyFrost.Base.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:463dcf86ac095fa75cd7e57457de4a653b7745933045194aa42248997e1b1b9c
-size 211968
+oid sha256:5a25d0cedd9a755db197214bed1c3ec75832a922b8453662398f930fcf4e03da
+size 211456
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Awwdio.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Awwdio.dll
index 78c9058..bae5cbc 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Awwdio.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Awwdio.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:839b8adec856b1ab1db8a240bd08289b76e3531587a4c408977cdc25cab10ed6
-size 31744
+oid sha256:c633e8ca394d442bc1015a72b512803fd57336065bc9bafc6b562672f5b062d9
+size 32256
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Assets.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Assets.dll
index eb1588d..8135422 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Assets.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Assets.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3bfdf056300deb67098496ea37ba5e5a59e514e18704abf287e7d2b588de2f24
-size 283136
+oid sha256:621b092ea21488e423fb9cc6a935ff1c910784482353821f67bbc506fc1c88a1
+size 285696
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.dll
index 5a65853..b384b11 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:52009fa2382849c6a66b083bd12fea6f7b8cb03f35c2eb529fe6fe2cd53d5229
-size 1506304
+oid sha256:2c90d79e49a1f86b7c8b570845346c79cb4a0356895b2fd4307aa1796ddaddfd
+size 1515008
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.xml b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.xml
index 50ed569..c370926 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.xml
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Core.xml
@@ -705,6 +705,33 @@
Pattern to search for
Count of occurences of pattern within text.
+
+
+ Contains utility methods for throttling/rate-limiting operations
+
+
+
+
+ Runs an operation repeatedly until it succeeds or a maximum number of attempts is reached.
+ A delay is inserted between each attempt, doubling each time, up to a maximum delay.
+
+ Function to run for each attempt, returning whether the operation was successful
+
+
+
+
+
+
+
+ Runs an operation repeatedly until it succeeds or a maximum number of attempts is reached.
+ A delay is inserted between each attempt, doubling each time, up to a maximum delay.
+
+ Function to run for each attempt, returning whether the operation was successful
+
+
+
+
+
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Data.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Data.dll
index b337ff0..e744e24 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Data.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Elements.Data.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7f5ff60ef9bf04caa11c073092aef17252a6b3abbb6d5738c26f392e0e839102
+oid sha256:2b0fb76c191d3ff4968a1b40445841a73b6972a3335ca9847173ff7678bde86e
size 6656
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Commands.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Commands.dll
index bd54927..b6b313e 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Commands.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Commands.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:327b604107b585d7948772c08f5d6d35b3ff4236c88ce15ad5152fbb0c6f7212
+oid sha256:4d2b9630ef363a4f5db215826767f894cb806c1394b4bd92e1fbeaaefc87e16d
size 7680
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Store.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Store.dll
index 8836e18..c06cd81 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Store.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Store.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:181d91123fc919572cd53ec569c2551e12de4e3a4d74f9c15ac907a6701c2bf7
+oid sha256:7f7e28a4892ef44fe7f039064003228a21c82fa8befe306c32c4d86091003e57
size 50688
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Weaver.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Weaver.dll
index c2add6e..b42e9c2 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Weaver.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.Weaver.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3d04d630d4d6f947a361e2c2617ffce0f9ce2aaa510b9c5aeed51b5ec2f6947e
+oid sha256:b32e3c92068a979a02bbea34ed866ea24dd2ea0005277f251dcfaad95ff04070
size 11776
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.dll
index 7759b74..0e8aab6 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1bca5e22d738118846e04276f938aa9589aff1445b2404f3d88b03dd37d42076
-size 5125120
+oid sha256:075d0ba198dc7e6aac003b2878cd8034acc03e45b1a2e8644e2d7ef7d43c2264
+size 5207552
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.xml b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.xml
index 61645df..ad680a6 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.xml
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/FrooxEngine.xml
@@ -2968,7 +2968,7 @@
executed in a Linux environment.
-
+
Beware! This may be removed when dispatch of the renderer process is improved!
@@ -3587,18 +3587,20 @@
true for success, false otherwise
World Orb records, usually get two tags 'world_orb' and 'world_uri:resrec//etc' see for more info.
-
+
Checks if any of the URIs in this are valid for a given platform
Platform to use when checking
+
if there are valid URIs. otherwise.
-
+
Checks if this worldstartsettings can "start" a world.
Platform the world should run on.
+
if this can be used to start a world. otherwise.
This is a quick check, that doesn't rely on anything external to the WorldStartSettings except for the platform.
@@ -3616,6 +3618,12 @@
true if the avatar creator can be spawned, false if it cannot.
+
+
+ Owner of the World/Session.
+
+ Analgous to "Host".
+
Runs an action in sync with the world update from the update thread, when changes to the data model are allowed by the running code.
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/PhotonDust.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/PhotonDust.dll
index eb41bac..2fb472d 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/PhotonDust.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/PhotonDust.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c27d3c99a5412b57928ab0f159d1d09a236214081cf93c9129011f2d858cba32
+oid sha256:476230ba7bc45d8bb2cab48d18c110bac627c01117df9ff24848deb2dee5fc52
size 54272
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Core.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Core.dll
index 3d1a96d..a56ff08 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Core.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Core.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2c468d27370fd13566ea12d9641a6e60fd4ee8f67a5c4e5a999a410b0c001017
+oid sha256:bc6a732329750b787561b4066c553af6a0807a3e77a9929d040469951648941e
size 145408
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.Core.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.Core.dll
index fbd497b..55468c5 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.Core.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.Core.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:73b1515d76ba46242ff50adb58b2e3f324cd8439ef181a57a53b8d7297b1b6af
-size 435712
+oid sha256:8a37051410577eaba57edc65c949b9064b8c28bc559d37a973f4c516a5720d14
+size 441344
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.FrooxEngine.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.FrooxEngine.dll
index d02b068..481cc85 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.FrooxEngine.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFlux.Nodes.FrooxEngine.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f2b9b0ff4bf06d410b1f61ff77358c88431c01958159e684e84b2e0c5d08c4c2
+oid sha256:deffa5776c39e8af1c3a31c9f6db39c3e18dcf3d9afeaf526f7c11c8697141c5
size 140288
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFluxBindings.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFluxBindings.dll
index b76d43f..5a712a9 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFluxBindings.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ProtoFluxBindings.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e38966bcf8de77977c24d2bc77caded68dc0e7a8d3f3f9e67d97896185a352a5
-size 5019136
+oid sha256:51180a2c340688b6e20de23bd8cb649519b8828a87eac4d6159b9fe679c548e0
+size 5046272
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Renderite.Shared.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Renderite.Shared.dll
index e5d7efb..1f04606 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Renderite.Shared.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/Renderite.Shared.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8bc6fd68c27145b4c9e8d86b70f97b4c1302a2298c2fad212d09905e39de1a21
+oid sha256:9bec8287ba36066d6a338ac91b7bf6f8923d0c24bd9756f502a401a0319f7e3c
size 73728
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ResoniteLink.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ResoniteLink.dll
new file mode 100644
index 0000000..7a45ae6
--- /dev/null
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/ResoniteLink.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:83fe76076e96d5dae5eda42c66748f2acb0511b94feae68f7b9b5a13db9d06a4
+size 186880
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.dll
index 9281d9b..ed0212c 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f7f60b89bfb138667a8b40ee660ad7671ef64d9d0b0ba6075d69fa2334696943
+oid sha256:749aa1f2e81c4e601139a2deb38d69c284a6efc0762ba3023bf6a51528005f9d
size 192000
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.xml b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.xml
index 5324f7f..424b688 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.xml
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.Models.xml
@@ -1777,6 +1777,7 @@
Base64 encoded RSA SHA-256 signature, which can be used to verify the Id and Timestamp of this thumbnail info
for upload on the endpoint (Cloudflare) without having to contact the Azure API
+ for the unsigned data.
@@ -1794,8 +1795,11 @@
- Binary version of the SignatureString
+ Binary version of the SignatureString for signing.
+
+ for the signed version.
+
diff --git a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.dll b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.dll
index 457658d..bc72367 100644
--- a/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.dll
+++ b/Remora.Resonite.Sdk/Sdk/ref/Shared/Stripped/SkyFrost.Base.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:636310b5660aad6cdabeb9751bab241e6b447c46a4e0f9f449025139b5239ac3
-size 211968
+oid sha256:da85170e77f73d1c77f69d3849de21b7986965a9d3a54d9e6b099a12765c20fc
+size 211456
diff --git a/Tests/DualSdkProject/DualSdkProject.csproj b/Tests/DualSdkProject/DualSdkProject.csproj
index 5462d18..9018294 100644
--- a/Tests/DualSdkProject/DualSdkProject.csproj
+++ b/Tests/DualSdkProject/DualSdkProject.csproj
@@ -1,9 +1,5 @@
-
- mod
-
-
diff --git a/Tests/Executables/Directory.Build.props b/Tests/Executables/Directory.Build.props
new file mode 100644
index 0000000..325aa32
--- /dev/null
+++ b/Tests/Executables/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ standalone
+
+
\ No newline at end of file
diff --git a/Tests/Executables/ModernResoniteExecutable/ModernResoniteExecutable.csproj b/Tests/Executables/ModernResoniteExecutable/ModernResoniteExecutable.csproj
new file mode 100644
index 0000000..dc2bfb4
--- /dev/null
+++ b/Tests/Executables/ModernResoniteExecutable/ModernResoniteExecutable.csproj
@@ -0,0 +1,2 @@
+
+
diff --git a/Tests/ModernResoniteExecutable/Program.cs b/Tests/Executables/ModernResoniteExecutable/Program.cs
similarity index 100%
rename from Tests/ModernResoniteExecutable/Program.cs
rename to Tests/Executables/ModernResoniteExecutable/Program.cs
diff --git a/Tests/Executables/ModernResoniteExecutableWithResoniteReference/ModernResoniteExecutableWithResoniteReference.csproj b/Tests/Executables/ModernResoniteExecutableWithResoniteReference/ModernResoniteExecutableWithResoniteReference.csproj
new file mode 100644
index 0000000..a2fd067
--- /dev/null
+++ b/Tests/Executables/ModernResoniteExecutableWithResoniteReference/ModernResoniteExecutableWithResoniteReference.csproj
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Tests/ModernResoniteExecutableWithResoniteReference/Program.cs b/Tests/Executables/ModernResoniteExecutableWithResoniteReference/Program.cs
similarity index 100%
rename from Tests/ModernResoniteExecutableWithResoniteReference/Program.cs
rename to Tests/Executables/ModernResoniteExecutableWithResoniteReference/Program.cs
diff --git a/Tests/Libraries/Directory.Build.props b/Tests/Libraries/Directory.Build.props
new file mode 100644
index 0000000..29e8112
--- /dev/null
+++ b/Tests/Libraries/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ library
+
+
\ No newline at end of file
diff --git a/Tests/Libraries/ResoniteHeadlessLibrary/ResoniteHeadlessLibrary.csproj b/Tests/Libraries/ResoniteHeadlessLibrary/ResoniteHeadlessLibrary.csproj
new file mode 100644
index 0000000..49fb29c
--- /dev/null
+++ b/Tests/Libraries/ResoniteHeadlessLibrary/ResoniteHeadlessLibrary.csproj
@@ -0,0 +1,5 @@
+
+
+ headless
+
+
diff --git a/Tests/ResoniteHeadlessLibraryWithPackageReference/ResoniteHeadlessLibraryWithPackageReference.csproj b/Tests/Libraries/ResoniteHeadlessLibraryWithPackageReference/ResoniteHeadlessLibraryWithPackageReference.csproj
similarity index 51%
rename from Tests/ResoniteHeadlessLibraryWithPackageReference/ResoniteHeadlessLibraryWithPackageReference.csproj
rename to Tests/Libraries/ResoniteHeadlessLibraryWithPackageReference/ResoniteHeadlessLibraryWithPackageReference.csproj
index d50f10d..770920e 100644
--- a/Tests/ResoniteHeadlessLibraryWithPackageReference/ResoniteHeadlessLibraryWithPackageReference.csproj
+++ b/Tests/Libraries/ResoniteHeadlessLibraryWithPackageReference/ResoniteHeadlessLibraryWithPackageReference.csproj
@@ -1,14 +1,9 @@
-
-
-
+
- library
headless
-
-
diff --git a/Tests/Libraries/ResoniteHeadlessLibraryWithProjectReference/ResoniteHeadlessLibraryWithProjectReference.csproj b/Tests/Libraries/ResoniteHeadlessLibraryWithProjectReference/ResoniteHeadlessLibraryWithProjectReference.csproj
new file mode 100644
index 0000000..272060c
--- /dev/null
+++ b/Tests/Libraries/ResoniteHeadlessLibraryWithProjectReference/ResoniteHeadlessLibraryWithProjectReference.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Libraries/ResoniteHeadlessLibraryWithResoniteReference/ResoniteHeadlessLibraryWithResoniteReference.csproj b/Tests/Libraries/ResoniteHeadlessLibraryWithResoniteReference/ResoniteHeadlessLibraryWithResoniteReference.csproj
new file mode 100644
index 0000000..2f9d39e
--- /dev/null
+++ b/Tests/Libraries/ResoniteHeadlessLibraryWithResoniteReference/ResoniteHeadlessLibraryWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Libraries/ResoniteLibrary/ResoniteLibrary.csproj b/Tests/Libraries/ResoniteLibrary/ResoniteLibrary.csproj
new file mode 100644
index 0000000..dde224c
--- /dev/null
+++ b/Tests/Libraries/ResoniteLibrary/ResoniteLibrary.csproj
@@ -0,0 +1,5 @@
+
+
+ client
+
+
diff --git a/Tests/ResoniteModWithPackageDependency/ResoniteModWithPackageDependency.csproj b/Tests/Libraries/ResoniteLibraryWithPackageReference/ResoniteLibraryWithPackageReference.csproj
similarity index 51%
rename from Tests/ResoniteModWithPackageDependency/ResoniteModWithPackageDependency.csproj
rename to Tests/Libraries/ResoniteLibraryWithPackageReference/ResoniteLibraryWithPackageReference.csproj
index 5d12baa..8d5e9de 100644
--- a/Tests/ResoniteModWithPackageDependency/ResoniteModWithPackageDependency.csproj
+++ b/Tests/Libraries/ResoniteLibraryWithPackageReference/ResoniteLibraryWithPackageReference.csproj
@@ -1,14 +1,9 @@
-
-
-
+
- mod
client
-
-
diff --git a/Tests/Libraries/ResoniteLibraryWithProjectReference/ResoniteLibraryWithProjectReference.csproj b/Tests/Libraries/ResoniteLibraryWithProjectReference/ResoniteLibraryWithProjectReference.csproj
new file mode 100644
index 0000000..94afd6f
--- /dev/null
+++ b/Tests/Libraries/ResoniteLibraryWithProjectReference/ResoniteLibraryWithProjectReference.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Libraries/ResoniteLibraryWithResoniteReference/ResoniteLibraryWithResoniteReference.csproj b/Tests/Libraries/ResoniteLibraryWithResoniteReference/ResoniteLibraryWithResoniteReference.csproj
new file mode 100644
index 0000000..64b863b
--- /dev/null
+++ b/Tests/Libraries/ResoniteLibraryWithResoniteReference/ResoniteLibraryWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
diff --git a/Tests/ModernResoniteExecutable/ModernResoniteExecutable.csproj b/Tests/ModernResoniteExecutable/ModernResoniteExecutable.csproj
deleted file mode 100644
index 9ce1968..0000000
--- a/Tests/ModernResoniteExecutable/ModernResoniteExecutable.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- net10.0
- standalone
- client
- 13.0
-
-
-
-
diff --git a/Tests/ModernResoniteExecutableWithResoniteReference/ModernResoniteExecutableWithResoniteReference.csproj b/Tests/ModernResoniteExecutableWithResoniteReference/ModernResoniteExecutableWithResoniteReference.csproj
deleted file mode 100644
index d999651..0000000
--- a/Tests/ModernResoniteExecutableWithResoniteReference/ModernResoniteExecutableWithResoniteReference.csproj
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- net10.0
- standalone
- client
- 13.0
- ModernResoniteExecutableWithResoniteReference
-
-
-
-
-
-
-
-
diff --git a/Tests/Mods/BepisLoader/Directory.Build.props b/Tests/Mods/BepisLoader/Directory.Build.props
new file mode 100644
index 0000000..73e0156
--- /dev/null
+++ b/Tests/Mods/BepisLoader/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ BepisLoader
+
+
\ No newline at end of file
diff --git a/Tests/Mods/BepisLoader/ResoniteBepisMod/ResoniteBepisMod.csproj b/Tests/Mods/BepisLoader/ResoniteBepisMod/ResoniteBepisMod.csproj
new file mode 100644
index 0000000..dde224c
--- /dev/null
+++ b/Tests/Mods/BepisLoader/ResoniteBepisMod/ResoniteBepisMod.csproj
@@ -0,0 +1,5 @@
+
+
+ client
+
+
diff --git a/Tests/ResoniteLibraryWithPackageReference/ResoniteLibraryWithPackageReference.csproj b/Tests/Mods/BepisLoader/ResoniteBepisModWithPackageDependency/ResoniteBepisModWithPackageDependency.csproj
similarity index 51%
rename from Tests/ResoniteLibraryWithPackageReference/ResoniteLibraryWithPackageReference.csproj
rename to Tests/Mods/BepisLoader/ResoniteBepisModWithPackageDependency/ResoniteBepisModWithPackageDependency.csproj
index b6a178f..8d5e9de 100644
--- a/Tests/ResoniteLibraryWithPackageReference/ResoniteLibraryWithPackageReference.csproj
+++ b/Tests/Mods/BepisLoader/ResoniteBepisModWithPackageDependency/ResoniteBepisModWithPackageDependency.csproj
@@ -1,14 +1,9 @@
-
-
-
+
- library
client
-
-
diff --git a/Tests/Mods/BepisLoader/ResoniteBepisModWithProjectDependency/ResoniteBepisModWithProjectDependency.csproj b/Tests/Mods/BepisLoader/ResoniteBepisModWithProjectDependency/ResoniteBepisModWithProjectDependency.csproj
new file mode 100644
index 0000000..a092caa
--- /dev/null
+++ b/Tests/Mods/BepisLoader/ResoniteBepisModWithProjectDependency/ResoniteBepisModWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/BepisLoader/ResoniteBepisModWithResoniteReference/ResoniteBepisModWithResoniteReference.csproj b/Tests/Mods/BepisLoader/ResoniteBepisModWithResoniteReference/ResoniteBepisModWithResoniteReference.csproj
new file mode 100644
index 0000000..891fa97
--- /dev/null
+++ b/Tests/Mods/BepisLoader/ResoniteBepisModWithResoniteReference/ResoniteBepisModWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/BepisLoader/ResoniteHeadlessBepisMod/ResoniteHeadlessBepisMod.csproj b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisMod/ResoniteHeadlessBepisMod.csproj
new file mode 100644
index 0000000..49fb29c
--- /dev/null
+++ b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisMod/ResoniteHeadlessBepisMod.csproj
@@ -0,0 +1,5 @@
+
+
+ headless
+
+
diff --git a/Tests/ResoniteHeadlessModWithPackageDependency/ResoniteHeadlessModWithPackageDependency.csproj b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithPackageDependency/ResoniteHeadlessBepisModWithPackageDependency.csproj
similarity index 51%
rename from Tests/ResoniteHeadlessModWithPackageDependency/ResoniteHeadlessModWithPackageDependency.csproj
rename to Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithPackageDependency/ResoniteHeadlessBepisModWithPackageDependency.csproj
index 73dc61b..5da7526 100644
--- a/Tests/ResoniteHeadlessModWithPackageDependency/ResoniteHeadlessModWithPackageDependency.csproj
+++ b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithPackageDependency/ResoniteHeadlessBepisModWithPackageDependency.csproj
@@ -1,14 +1,9 @@
-
-
-
+
- mod
headless
-
-
diff --git a/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithProjectDependency/ResoniteHeadlessBepisModWithProjectDependency.csproj b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithProjectDependency/ResoniteHeadlessBepisModWithProjectDependency.csproj
new file mode 100644
index 0000000..c3250e4
--- /dev/null
+++ b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithProjectDependency/ResoniteHeadlessBepisModWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithResoniteReference/ResoniteHeadlessBepisModWithResoniteReference.csproj b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithResoniteReference/ResoniteHeadlessBepisModWithResoniteReference.csproj
new file mode 100644
index 0000000..2f9d39e
--- /dev/null
+++ b/Tests/Mods/BepisLoader/ResoniteHeadlessBepisModWithResoniteReference/ResoniteHeadlessBepisModWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Mods/Directory.Build.props b/Tests/Mods/Directory.Build.props
new file mode 100644
index 0000000..7b7207e
--- /dev/null
+++ b/Tests/Mods/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ mod
+
+
\ No newline at end of file
diff --git a/Tests/Mods/MonkeyLoader/Directory.Build.props b/Tests/Mods/MonkeyLoader/Directory.Build.props
new file mode 100644
index 0000000..182e702
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ MonkeyLoader
+
+
\ No newline at end of file
diff --git a/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLMod/ResoniteHeadlessMLMod.csproj b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLMod/ResoniteHeadlessMLMod.csproj
new file mode 100644
index 0000000..49fb29c
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLMod/ResoniteHeadlessMLMod.csproj
@@ -0,0 +1,5 @@
+
+
+ headless
+
+
diff --git a/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithPackageDependency/ResoniteHeadlessMLModWithPackageDependency.csproj b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithPackageDependency/ResoniteHeadlessMLModWithPackageDependency.csproj
new file mode 100644
index 0000000..5da7526
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithPackageDependency/ResoniteHeadlessMLModWithPackageDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithProjectDependency/ResoniteHeadlessMLModWithProjectDependency.csproj b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithProjectDependency/ResoniteHeadlessMLModWithProjectDependency.csproj
new file mode 100644
index 0000000..c3250e4
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithProjectDependency/ResoniteHeadlessMLModWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithResoniteReference/ResoniteHeadlessMLModWithResoniteReference.csproj b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithResoniteReference/ResoniteHeadlessMLModWithResoniteReference.csproj
new file mode 100644
index 0000000..2f9d39e
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteHeadlessMLModWithResoniteReference/ResoniteHeadlessMLModWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Mods/MonkeyLoader/ResoniteMLMod/ResoniteMLMod.csproj b/Tests/Mods/MonkeyLoader/ResoniteMLMod/ResoniteMLMod.csproj
new file mode 100644
index 0000000..dde224c
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteMLMod/ResoniteMLMod.csproj
@@ -0,0 +1,5 @@
+
+
+ client
+
+
diff --git a/Tests/Mods/MonkeyLoader/ResoniteMLModWithPackageDependency/ResoniteMLModWithPackageDependency.csproj b/Tests/Mods/MonkeyLoader/ResoniteMLModWithPackageDependency/ResoniteMLModWithPackageDependency.csproj
new file mode 100644
index 0000000..8d5e9de
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteMLModWithPackageDependency/ResoniteMLModWithPackageDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
diff --git a/Tests/Mods/MonkeyLoader/ResoniteMLModWithProjectDependency/ResoniteMLModWithProjectDependency.csproj b/Tests/Mods/MonkeyLoader/ResoniteMLModWithProjectDependency/ResoniteMLModWithProjectDependency.csproj
new file mode 100644
index 0000000..a092caa
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteMLModWithProjectDependency/ResoniteMLModWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/MonkeyLoader/ResoniteMLModWithResoniteReference/ResoniteMLModWithResoniteReference.csproj b/Tests/Mods/MonkeyLoader/ResoniteMLModWithResoniteReference/ResoniteMLModWithResoniteReference.csproj
new file mode 100644
index 0000000..891fa97
--- /dev/null
+++ b/Tests/Mods/MonkeyLoader/ResoniteMLModWithResoniteReference/ResoniteMLModWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/ResoniteModWithResoniteReference/Test.cs b/Tests/Mods/MonkeyLoader/ResoniteMLModWithResoniteReference/Test.cs
similarity index 100%
rename from Tests/ResoniteModWithResoniteReference/Test.cs
rename to Tests/Mods/MonkeyLoader/ResoniteMLModWithResoniteReference/Test.cs
diff --git a/Tests/Mods/ResoniteModLoader/Directory.Build.props b/Tests/Mods/ResoniteModLoader/Directory.Build.props
new file mode 100644
index 0000000..588485f
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ ResoniteModLoaderStandalone
+
+
\ No newline at end of file
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLMod/ResoniteHeadlessRMLMod.csproj b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLMod/ResoniteHeadlessRMLMod.csproj
new file mode 100644
index 0000000..49fb29c
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLMod/ResoniteHeadlessRMLMod.csproj
@@ -0,0 +1,5 @@
+
+
+ headless
+
+
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithPackageDependency/ResoniteHeadlessRMLModWithPackageDependency.csproj b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithPackageDependency/ResoniteHeadlessRMLModWithPackageDependency.csproj
new file mode 100644
index 0000000..5da7526
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithPackageDependency/ResoniteHeadlessRMLModWithPackageDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithProjectDependency/ResoniteHeadlessRMLModWithProjectDependency.csproj b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithProjectDependency/ResoniteHeadlessRMLModWithProjectDependency.csproj
new file mode 100644
index 0000000..c3250e4
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithProjectDependency/ResoniteHeadlessRMLModWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithResoniteReference/ResoniteHeadlessRMLModWithResoniteReference.csproj b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithResoniteReference/ResoniteHeadlessRMLModWithResoniteReference.csproj
new file mode 100644
index 0000000..2f9d39e
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteHeadlessRMLModWithResoniteReference/ResoniteHeadlessRMLModWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteRMLMod/ResoniteRMLMod.csproj b/Tests/Mods/ResoniteModLoader/ResoniteRMLMod/ResoniteRMLMod.csproj
new file mode 100644
index 0000000..dde224c
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteRMLMod/ResoniteRMLMod.csproj
@@ -0,0 +1,5 @@
+
+
+ client
+
+
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithPackageDependency/ResoniteRMLModWithPackageDependency.csproj b/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithPackageDependency/ResoniteRMLModWithPackageDependency.csproj
new file mode 100644
index 0000000..8d5e9de
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithPackageDependency/ResoniteRMLModWithPackageDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithProjectDependency/ResoniteRMLModWithProjectDependency.csproj b/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithProjectDependency/ResoniteRMLModWithProjectDependency.csproj
new file mode 100644
index 0000000..a092caa
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithProjectDependency/ResoniteRMLModWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithResoniteReference/ResoniteRMLModWithResoniteReference.csproj b/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithResoniteReference/ResoniteRMLModWithResoniteReference.csproj
new file mode 100644
index 0000000..891fa97
--- /dev/null
+++ b/Tests/Mods/ResoniteModLoader/ResoniteRMLModWithResoniteReference/ResoniteRMLModWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Plugins/Directory.Build.props b/Tests/Plugins/Directory.Build.props
new file mode 100644
index 0000000..3eadf0b
--- /dev/null
+++ b/Tests/Plugins/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+ plugin
+
+
\ No newline at end of file
diff --git a/Tests/Plugins/ResoniteHeadlessPlugin/ResoniteHeadlessPlugin.csproj b/Tests/Plugins/ResoniteHeadlessPlugin/ResoniteHeadlessPlugin.csproj
new file mode 100644
index 0000000..49fb29c
--- /dev/null
+++ b/Tests/Plugins/ResoniteHeadlessPlugin/ResoniteHeadlessPlugin.csproj
@@ -0,0 +1,5 @@
+
+
+ headless
+
+
diff --git a/Tests/ResoniteHeadlessPluginWithPackageDependency/ResoniteHeadlessPluginWithPackageDependency.csproj b/Tests/Plugins/ResoniteHeadlessPluginWithPackageDependency/ResoniteHeadlessPluginWithPackageDependency.csproj
similarity index 51%
rename from Tests/ResoniteHeadlessPluginWithPackageDependency/ResoniteHeadlessPluginWithPackageDependency.csproj
rename to Tests/Plugins/ResoniteHeadlessPluginWithPackageDependency/ResoniteHeadlessPluginWithPackageDependency.csproj
index a179e35..5da7526 100644
--- a/Tests/ResoniteHeadlessPluginWithPackageDependency/ResoniteHeadlessPluginWithPackageDependency.csproj
+++ b/Tests/Plugins/ResoniteHeadlessPluginWithPackageDependency/ResoniteHeadlessPluginWithPackageDependency.csproj
@@ -1,14 +1,9 @@
-
-
-
+
- plugin
headless
-
-
diff --git a/Tests/Plugins/ResoniteHeadlessPluginWithProjectDependency/ResoniteHeadlessPluginWithProjectDependency.csproj b/Tests/Plugins/ResoniteHeadlessPluginWithProjectDependency/ResoniteHeadlessPluginWithProjectDependency.csproj
new file mode 100644
index 0000000..272060c
--- /dev/null
+++ b/Tests/Plugins/ResoniteHeadlessPluginWithProjectDependency/ResoniteHeadlessPluginWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Plugins/ResoniteHeadlessPluginWithResoniteReference/ResoniteHeadlessPluginWithResoniteReference.csproj b/Tests/Plugins/ResoniteHeadlessPluginWithResoniteReference/ResoniteHeadlessPluginWithResoniteReference.csproj
new file mode 100644
index 0000000..2f9d39e
--- /dev/null
+++ b/Tests/Plugins/ResoniteHeadlessPluginWithResoniteReference/ResoniteHeadlessPluginWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ headless
+
+
+
+
+
+
diff --git a/Tests/Plugins/ResonitePlugin/ResonitePlugin.csproj b/Tests/Plugins/ResonitePlugin/ResonitePlugin.csproj
new file mode 100644
index 0000000..dde224c
--- /dev/null
+++ b/Tests/Plugins/ResonitePlugin/ResonitePlugin.csproj
@@ -0,0 +1,5 @@
+
+
+ client
+
+
diff --git a/Tests/ResonitePluginWithPackageDependency/ResonitePluginWithPackageDependency.csproj b/Tests/Plugins/ResonitePluginWithPackageDependency/ResonitePluginWithPackageDependency.csproj
similarity index 51%
rename from Tests/ResonitePluginWithPackageDependency/ResonitePluginWithPackageDependency.csproj
rename to Tests/Plugins/ResonitePluginWithPackageDependency/ResonitePluginWithPackageDependency.csproj
index 27fc324..8d5e9de 100644
--- a/Tests/ResonitePluginWithPackageDependency/ResonitePluginWithPackageDependency.csproj
+++ b/Tests/Plugins/ResonitePluginWithPackageDependency/ResonitePluginWithPackageDependency.csproj
@@ -1,14 +1,9 @@
-
-
-
+
- plugin
client
-
-
diff --git a/Tests/Plugins/ResonitePluginWithProjectDependency/ResonitePluginWithProjectDependency.csproj b/Tests/Plugins/ResonitePluginWithProjectDependency/ResonitePluginWithProjectDependency.csproj
new file mode 100644
index 0000000..94afd6f
--- /dev/null
+++ b/Tests/Plugins/ResonitePluginWithProjectDependency/ResonitePluginWithProjectDependency.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/Plugins/ResonitePluginWithResoniteReference/ResonitePluginWithResoniteReference.csproj b/Tests/Plugins/ResonitePluginWithResoniteReference/ResonitePluginWithResoniteReference.csproj
new file mode 100644
index 0000000..64b863b
--- /dev/null
+++ b/Tests/Plugins/ResonitePluginWithResoniteReference/ResonitePluginWithResoniteReference.csproj
@@ -0,0 +1,9 @@
+
+
+ client
+
+
+
+
+
+
diff --git a/Tests/ResoniteHeadlessLibrary/ResoniteHeadlessLibrary.csproj b/Tests/ResoniteHeadlessLibrary/ResoniteHeadlessLibrary.csproj
deleted file mode 100644
index 6e49d21..0000000
--- a/Tests/ResoniteHeadlessLibrary/ResoniteHeadlessLibrary.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- library
- headless
-
-
-
-
diff --git a/Tests/ResoniteHeadlessLibraryWithProjectReference/ResoniteHeadlessLibraryWithProjectReference.csproj b/Tests/ResoniteHeadlessLibraryWithProjectReference/ResoniteHeadlessLibraryWithProjectReference.csproj
deleted file mode 100644
index 67ca469..0000000
--- a/Tests/ResoniteHeadlessLibraryWithProjectReference/ResoniteHeadlessLibraryWithProjectReference.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- library
- headless
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResoniteHeadlessLibraryWithResoniteReference/ResoniteHeadlessLibraryWithResoniteReference.csproj b/Tests/ResoniteHeadlessLibraryWithResoniteReference/ResoniteHeadlessLibraryWithResoniteReference.csproj
deleted file mode 100644
index 54bb8ea..0000000
--- a/Tests/ResoniteHeadlessLibraryWithResoniteReference/ResoniteHeadlessLibraryWithResoniteReference.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- library
- headless
- ResoniteHeadlessLibraryWithResoniteReference
-
-
-
-
-
-
-
-
diff --git a/Tests/ResoniteHeadlessMod/ResoniteHeadlessMod.csproj b/Tests/ResoniteHeadlessMod/ResoniteHeadlessMod.csproj
deleted file mode 100644
index 4af133e..0000000
--- a/Tests/ResoniteHeadlessMod/ResoniteHeadlessMod.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- mod
- headless
-
-
-
-
diff --git a/Tests/ResoniteHeadlessModWithProjectDependency/ResoniteHeadlessModWithProjectDependency.csproj b/Tests/ResoniteHeadlessModWithProjectDependency/ResoniteHeadlessModWithProjectDependency.csproj
deleted file mode 100644
index 129afb4..0000000
--- a/Tests/ResoniteHeadlessModWithProjectDependency/ResoniteHeadlessModWithProjectDependency.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- mod
- headless
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResoniteHeadlessModWithResoniteReference/ResoniteHeadlessModWithResoniteReference.csproj b/Tests/ResoniteHeadlessModWithResoniteReference/ResoniteHeadlessModWithResoniteReference.csproj
deleted file mode 100644
index b62a88f..0000000
--- a/Tests/ResoniteHeadlessModWithResoniteReference/ResoniteHeadlessModWithResoniteReference.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- mod
- headless
- ResoniteHeadlessModWithResoniteReference
-
-
-
-
-
-
-
-
diff --git a/Tests/ResoniteHeadlessPlugin/ResoniteHeadlessPlugin.csproj b/Tests/ResoniteHeadlessPlugin/ResoniteHeadlessPlugin.csproj
deleted file mode 100644
index 0c0e167..0000000
--- a/Tests/ResoniteHeadlessPlugin/ResoniteHeadlessPlugin.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- plugin
- headless
-
-
-
-
diff --git a/Tests/ResoniteHeadlessPluginWithProjectDependency/ResoniteHeadlessPluginWithProjectDependency.csproj b/Tests/ResoniteHeadlessPluginWithProjectDependency/ResoniteHeadlessPluginWithProjectDependency.csproj
deleted file mode 100644
index 174f52c..0000000
--- a/Tests/ResoniteHeadlessPluginWithProjectDependency/ResoniteHeadlessPluginWithProjectDependency.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- plugin
- headless
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResoniteHeadlessPluginWithResoniteReference/ResoniteHeadlessPluginWithResoniteReference.csproj b/Tests/ResoniteHeadlessPluginWithResoniteReference/ResoniteHeadlessPluginWithResoniteReference.csproj
deleted file mode 100644
index 4816010..0000000
--- a/Tests/ResoniteHeadlessPluginWithResoniteReference/ResoniteHeadlessPluginWithResoniteReference.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- plugin
- headless
- ResoniteHeadlessPluginWithResoniteReference
-
-
-
-
-
-
-
-
diff --git a/Tests/ResoniteLibrary/ResoniteLibrary.csproj b/Tests/ResoniteLibrary/ResoniteLibrary.csproj
deleted file mode 100644
index f26f84b..0000000
--- a/Tests/ResoniteLibrary/ResoniteLibrary.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- library
- client
-
-
-
-
diff --git a/Tests/ResoniteLibraryWithProjectReference/ResoniteLibraryWithProjectReference.csproj b/Tests/ResoniteLibraryWithProjectReference/ResoniteLibraryWithProjectReference.csproj
deleted file mode 100644
index dd23ff2..0000000
--- a/Tests/ResoniteLibraryWithProjectReference/ResoniteLibraryWithProjectReference.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- library
- client
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResoniteLibraryWithResoniteReference/ResoniteLibraryWithResoniteReference.csproj b/Tests/ResoniteLibraryWithResoniteReference/ResoniteLibraryWithResoniteReference.csproj
deleted file mode 100644
index f8037f9..0000000
--- a/Tests/ResoniteLibraryWithResoniteReference/ResoniteLibraryWithResoniteReference.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- library
- client
- ResoniteLibraryWithResoniteReference
-
-
-
-
-
-
-
-
diff --git a/Tests/ResoniteMod/ResoniteMod.csproj b/Tests/ResoniteMod/ResoniteMod.csproj
deleted file mode 100644
index b658253..0000000
--- a/Tests/ResoniteMod/ResoniteMod.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- mod
- client
-
-
-
-
diff --git a/Tests/ResoniteModWithProjectDependency/ResoniteModWithProjectDependency.csproj b/Tests/ResoniteModWithProjectDependency/ResoniteModWithProjectDependency.csproj
deleted file mode 100644
index 42eaca0..0000000
--- a/Tests/ResoniteModWithProjectDependency/ResoniteModWithProjectDependency.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- mod
- client
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResoniteModWithResoniteReference/ResoniteModWithResoniteReference.csproj b/Tests/ResoniteModWithResoniteReference/ResoniteModWithResoniteReference.csproj
deleted file mode 100644
index 78af069..0000000
--- a/Tests/ResoniteModWithResoniteReference/ResoniteModWithResoniteReference.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- mod
- client
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResonitePlugin/ResonitePlugin.csproj b/Tests/ResonitePlugin/ResonitePlugin.csproj
deleted file mode 100644
index 6dda163..0000000
--- a/Tests/ResonitePlugin/ResonitePlugin.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- plugin
- client
-
-
-
-
diff --git a/Tests/ResonitePluginWithProjectDependency/ResonitePluginWithProjectDependency.csproj b/Tests/ResonitePluginWithProjectDependency/ResonitePluginWithProjectDependency.csproj
deleted file mode 100644
index 910b267..0000000
--- a/Tests/ResonitePluginWithProjectDependency/ResonitePluginWithProjectDependency.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- plugin
- client
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/ResonitePluginWithResoniteReference/ResonitePluginWithResoniteReference.csproj b/Tests/ResonitePluginWithResoniteReference/ResonitePluginWithResoniteReference.csproj
deleted file mode 100644
index 6da247f..0000000
--- a/Tests/ResonitePluginWithResoniteReference/ResonitePluginWithResoniteReference.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- plugin
- client
-
-
-
-
-
-
-
-
diff --git a/global.json b/global.json
index 9e6645d..416004e 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,5 @@
{
"msbuild-sdks": {
- "Remora.Resonite.Sdk": "2.0.10"
+ "Remora.Resonite.Sdk": "2.1.0"
}
}
\ No newline at end of file