Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser

Quick Information

A Remote Procedure Call framework for Godot C#.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.Example:```cs[Rem(RemAccess.Any)]public void SayWords(List<string> Words) { foreach (string Word in Words) { GD.Print(Word); }}// Send SayWords to authoritySendSayWords(1, ["cat", "dog"]);// Broadcast SayWords to all peersBroadcastSayWords(["cat", "dog"]);```

Rem Send
A Remote Procedure Call framework for Godot C#.
Features
- Call RPCs with static typing.
- Return values from RPCs.
- Send variant-incompatible values (with MemoryPack).
- Extra access enum (peer -> authority).
- Created for use in a real MMORPG.
Dependencies
Examples
[Rem(RemAccess.Peer)]
public void SayWordsRem(List<string> Words) {
foreach (string Word in Words) {
GD.Print(Word);
}
}
Rem(1, () => SayWordsRem(["cat", "dog"])); // The method name and arguments are extracted from the expression.
[Rem(RemAccess.Peer)]
public int GetNumberRem() {
return 5;
}
int Number = await Rem(1, () => GetNumberRem());
Limitations
- Uses reflection (may be slow, incompatible with trimming, incompatible with GDScript)
- Optional parameters must be passed explicitly (due to a current limitation with Linq Expressions)
- Only supports 4 transfer channels (since they are implemented manually)
Setup
- Install MemoryPack through NuGet or by editing your
csproj
file:
<ItemGroup>
<PackageReference Include="MemoryPack" Version="1.21.3" />
</ItemGroup>
Add the Rem Send addon to your project and build the project.
Create a
RemSend
node (or create a node and attach theRemSend.cs
script).
A Remote Procedure Call framework for Godot C#.
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.
Example:
```cs
[Rem(RemAccess.Any)]
public void SayWords(List
foreach (string Word in Words) {
GD.Print(Word);
}
}
// Send SayWords to authority
SendSayWords(1, ["cat", "dog"]);
// Broadcast SayWords to all peers
BroadcastSayWords(["cat", "dog"]);
```
Reviews
Quick Information

A Remote Procedure Call framework for Godot C#.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.Example:```cs[Rem(RemAccess.Any)]public void SayWords(List<string> Words) { foreach (string Word in Words) { GD.Print(Word); }}// Send SayWords to authoritySendSayWords(1, ["cat", "dog"]);// Broadcast SayWords to all peersBroadcastSayWords(["cat", "dog"]);```