Skip to content

Client Mods on Servers

Liam Robinson edited this page Nov 8, 2026 · 1 revision

Client Mods on Servers

Your own mods (Installing Mods) come with you to a server. The server decides what they may do there, in its server.toml:

[mods]
client_mods = "presentation"   # presentation | any | none
client_scripts = true          # whether players' own mods run their scripts here
client_mods Your mods on that server
presentation (the default) they change how the game looks and sounds; their changes to the ride are switched off for the session
any they stay as they are, their changes to the ride too: they change your own ride, and the server still checks every rider
none all of them are switched off for the session

The browser shows each server's choice in its details: "client mods: their looks only", "all" or "none", and "their scripts: on" or "off".

What changes the ride

These kinds change how the game plays, so presentation switches them off: tuning, scoring, event, drop, lighting, object, model, character, gear, board, anim and trick. Everything else (textures, sounds, music, skies, post-FX, particles, menus, strings, fonts, markers …) stays. See Content IDs and Kinds.

What you see

Once the level shows the chat, a notice names the mods the server switched off (at most three names, then "N more"). With a mod mydata that patches the tuning, the scoring and an event, on a presentation server:

This server switches your mods' simulation changes off: mydata

Under none it reads "This server switches your mods off: …".

The notice comes again after the server's resources change during your session. When you leave, your mods are back as they were.

Why a join is refused

Before you join, the game works out every level the server runs with the server's resources, your mods' changes to the ride left aside (under every choice: under any they still change your own ride once you are in), and compares them with the server's. Your mods cause no refusal here. What does is another copy of the game whose files differ from the server's, or the server's resources changing while you join. The join is then refused with the levels and where each difference comes from (at most eight, then "and N more"), for example:

could not join <server>: content differs from the server's: <level>: the disc files differ from the server's
could not join <server>: content differs from the server's: <level>: "<id>" differs (yours from the game's disc, patched by the server's resource <name>)

Join again once the server's resources have settled; a copy of the game other than the server's cannot join it.

Scripts

  • client_scripts = true lets your own mods' client scripts run on the server, as they do alone. false stops them for the session.
  • While you join, your mods' scripts wait for the server's choice (the game's log: "the client mods' scripts wait for the server's client_scripts policy"), then start again or stay stopped with the server's reason. A server that sends no resource list states no choice: they stay stopped for that session.
  • The server's own client scripts (its resources') run in your game only if you allow them: Options → Multiplayer → Servers' Scripts.
  • Either way scripts stay in their sandbox: they see only what the API gives and cannot change the ride (Scripting Overview).

For server owners

  • presentation lets players keep their textures, boards' looks and sounds while everyone rides by the same rules.
  • any lets players ride with their own changes to the ride (fun servers): each player's mods change only that player's ride, and the server's checks of riders still apply.
  • none makes everyone see the game as the server's resources make it.
  • What a server checks of riders does not depend on this setting: a modified game is still held to the server's checks.

Clone this wiki locally