RemSend 7.7.0
dotnet add package RemSend --version 7.7.0
NuGet\Install-Package RemSend -Version 7.7.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RemSend" Version="7.7.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RemSend --version 7.7.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: RemSend, 7.7.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RemSend as a Cake Addin #addin nuget:?package=RemSend&version=7.7.0 // Install RemSend as a Cake Tool #tool nuget:?package=RemSend&version=7.7.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
<img src="https://raw.githubusercontent.com/Joy-less/RemSend/main/Assets/Icon.png" width="300" />
Rem Send
A Remote Procedure Call framework for Godot C# using source generators.
Features
- Call source-generated RPCs with static typing and optimal performance.
- Request and return values from RPCs.
- Send variant-incompatible values with MemoryPack.
- Extra access enum (peer → authority).
- Fully compatible with async / Tasks.
- Created for use in a real MMORPG.
Setup
- Install RemSend through NuGet.
- Connect RemSend to your
MultiplayerApi
by using the following code:
RemSendService.Setup((SceneMultiplayer)Multiplayer, GetTree().Root);
Examples
Sending a method call to a remote peer:
[Rem(RemAccess.Any)]
public void SayWords(List<string> Words) {
foreach (string Word in Words) {
GD.Print(Word);
}
}
// Send SayWords to authority
SendSayWords(1, ["cat", "dog"]);
// Broadcast SayWords to all peers
BroadcastSayWords(["cat", "dog"]);
Requesting a result from a peer:
[Rem(RemAccess.PeerToAuthority)]
public int GetNumber() {
return 5;
}
// Send GetNumber to authority and await result for up to 10 seconds
int Number = await RequestGetNumber(1, TimeSpan.FromSeconds(10));
Getting the remote sender's peer ID:
[Rem(RemAccess.Any)]
public void RemoteHug([Sender] int SenderId) {
if (SenderId is 1) {
GD.Print("Thank you authority.");
}
else if (SenderId is 0) {
GD.Print("*depression*");
}
else {
GD.Print("Thank you random peer.");
}
}
// Send RemoteHug to authority
SendRemoteHug(1);
Notes
- Since RemSend uses
SceneMultiplayer.SendBytes
andSceneMultiplayer.PeerPacket
, using them with RemSend is not recommended. However, you can still use RPCs. - RemSend does not support GDScript or C++. It can only be used with C#. Other languages can use RPCs instead.
Special Thanks
- GodotSharp.SourceGenerators for help with source generation for members with attributes.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- MemoryPack (>= 1.21.4)
- Microsoft.CodeAnalysis.CSharp (>= 4.12.0)
- PolySharp (>= 1.15.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
7.7.0 | 69 | 2/18/2025 |