Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

Rem Send

An asset by Joy-less
The page banner background of a mountain and forest
Rem Send hero image

Quick Information

0 ratings
Rem Send icon image
Joy-less
Rem Send

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"]);```

Supported Engine Version
4.4
Version String
8.8
License Version
MIT
Support Level
community
Modified Date
1 month ago
Git URL
Issue URL

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

  1. Install MemoryPack through NuGet or by editing your csproj file:
<ItemGroup>
  <PackageReference Include="MemoryPack" Version="1.21.3" />
</ItemGroup>
  1. Add the Rem Send addon to your project and build the project.

  2. Create a RemSend node (or create a node and attach the RemSend.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 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"]);
```

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Rem Send icon image
Joy-less
Rem Send

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"]);```

Supported Engine Version
4.4
Version String
8.8
License Version
MIT
Support Level
community
Modified Date
1 month ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers