Clarify that high-level RPC methods must be defined on Node-based scripts#11892
Open
deathtaco1408 wants to merge 2 commits intogodotengine:masterfrom
Open
Clarify that high-level RPC methods must be defined on Node-based scripts#11892deathtaco1408 wants to merge 2 commits intogodotengine:masterfrom
deathtaco1408 wants to merge 2 commits intogodotengine:masterfrom
Conversation
Clarify RPC method requirements and supported patterns in high-level multiplayer documentation.
Added a note about Godot's RPC system requirements for node-based scripts.
Zacky3181V
suggested changes
May 4, 2026
Contributor
Zacky3181V
left a comment
There was a problem hiding this comment.
Requesting changes to meet documentation writing guidelines
| func submit_input(input_vector: Vector2) -> void: | ||
| pass | ||
|
|
||
| If you need multiplayer RPC behavior, keep the RPC entry points on ``Node`` scripts and call into |
Contributor
There was a problem hiding this comment.
replace
"If you need multiplayer RPC behavior"
with
"To implement RPC behavior"
| RPC methods must be defined on Node-based scripts | ||
| ----------------------------------------------- | ||
|
|
||
| Godot's high-level multiplayer RPC system is built around the scene tree and ``Node`` paths. |
Contributor
There was a problem hiding this comment.
"is built around" -> "utilizes"
| Godot's high-level multiplayer RPC system is built around the scene tree and ``Node`` paths. | ||
| In practice, RPC methods should be defined on scripts attached to ``Node``-derived classes. | ||
|
|
||
| Using ``@rpc`` on methods defined only in non-``Node`` classes (for example, plain ``Resource`` or |
Contributor
There was a problem hiding this comment.
Should it be edited to be active voice?
High level multiplayer API does not support using @rpc on method defined in non-Node classes (for example, plain Resource or RefCounted-based helper scripts). It can result in runtime errors when calling rpc() or rpc_id().
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR clarifies that Godot's high-level RPC system is node-based and that methods marked with
@rpcshould be defined on scripts attached toNode-derived classes.Why
The current multiplayer documentation explains how RPCs are used, but it does not clearly state
that defining
@rpcmethods only on non-Nodeclasses is not supported. This can lead to runtimeerrors and confusion for users building helper abstractions around
ResourceorRefCountedscripts.
This change adds a short clarification and example so developers understand where RPC methods should
live and how to structure helper code safely.
Related context
This addresses confusion described in issue #89981.
Scope
Documentation only. No engine behavior changes.