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
7.11
License Version
MIT
Support Level
community
Modified Date
12 days 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
7.11
License Version
MIT
Support Level
community
Modified Date
12 days 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