FAQ

Common questions about ServerGames — resource packs, Folia, dupes, worlds and crashes.

Do players need a resource pack?

No. Tracks, vehicles, music and effects are all built from vanilla blocks, display entities, particles and note-block sound. There is nothing to download and it looks the same on every client.

Does it run on Folia?

Yes — natively. ServerGames uses the full Folia 4-scheduler model with fast paths, teleportAsync, and chunk-batched async building. It also runs on Canvas, and on Paper (which implements the Folia schedulers). It was live-tested with 50 concurrent players.

Can players lose or dupe items?

No. Players keep their own inventory during a race and it is never modified — so dupes are impossible. There are no item drops or pickups in a race, no PvP and no damage.

What happens if the server crashes mid-race?

Each player’s location, gamemode, flight and health are saved to disk the moment they join a race. If the server crashes, they’re restored from pending-restores.yml the next time they join. Nobody gets stranded.

What world do races use?

By default a void world named race_world, created at runtime on Canvas and Paper. On plain Folia (which forbids runtime world creation) the track is built in race.fallback-world, far from spawn. You can also pre-create a world and point race.world at it.

Why didn’t my lap count?

You must drive through the checkpoint arches in order. Skipping one means the lap won’t be counted — follow the arches around the loop.

How many players can race at once?

Up to race.max-players (default 100). It was stress-tested live with 50 concurrent racers, using cheap O(1) off-track checks to stay smooth under load.

Won’t a full grid of cars flood the network?

No. Each vehicle is rendered as client-side virtual parts instead of real display entities: the model streams only to players near it (per-viewer culling with hysteresis, car.render.view-distance), and every pose update is sent as a single bundled packet per viewer. That keeps a 100-car grid light on Netty — the actual bottleneck at that scale. It’s on by default (car.render.packet-based: true) and looks identical to a normal display; see Vehicle rendering.

Can I add more languages?

Yes. Copy messages_en.yml to messages_<code>.yml, translate it, and set language: in config.yml. English and Turkish ship by default.

Is there more than one game?

Race is the first game. The core (scheduler, music, state, stats, effects, messages) is game-agnostic, so more modes are a natural addition.

How do I reload after editing the config?

/race reload reloads config.yml and the message files. Run /race stop <name> before reloading if a race is in progress.