Keep server and clients aligned¶
The server decides gameplay state. Clients need the assets and supported presentation paths that let them see and use that state. RuneSchema reports what it loaded; it is not a PAK download or automatic mod synchronization service.
Build a simple mod list¶
For each gameplay mod, record:
| Check | Server | Each participating client |
|---|---|---|
| Same mod version and cooked PAKs | Required for authoritative content | Required for content the player uses or sees |
| Same enabled RuneSchema folder and dependent add-ons | Usually required | Usually required |
| Registry Bridge, if the mod declares it | Enabled | Enabled where the mod needs it |
| RSNetworking, if the mod declares it | Enabled | Enabled |
| Client-only meshes, icons, fonts, audio, and widgets | Usually not used by a headless server | Required to display or play them |
Visual logicmods ModActor |
Not started on a dedicated server | Started where the mod requires client presentation |
Use the mod author's requirements for exceptions. A visual-only mod may be client-only; an item, recipe, quest, enemy, vendor, or combat mod generally needs matching gameplay data on the server and clients.
Do not confuse the four checks¶
- Enabled: the folder has
1inruneschema.txt. - Mounted: the PAK package was made available to the game.
- Registered: the relevant live item, recipe, building, attack, spell, or other registry accepted the content.
- Working: players can perform the action and all sides display the result correctly.
A mismatch warning is a diagnosis, not a transfer operation. If a client is missing content, install the matching mod on that client; do not expect RuneSchema to copy it from the server. If a client has extra unrelated mods, those should not be treated as server-owned gameplay content.
When updating a live server¶
- Tell players which mod versions and bridge settings will change.
- Stop the server; back up its world saves and config.
- Update the server and client content as one planned change.
- Start the server and read the registration summaries.
- Join with one matching client and test the changed content.
- Only then reopen the server to the rest of the group.
For cues such as custom sound or animation, the server can send a supported semantic event, but the client still needs the local asset and code that plays it. Presentation transport explains that division.