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 vehicles 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. Hard caps (viewers per vehicle, a reduced far stream with a lighter model, an admission budget) keep even a packed corner of 100 racers bounded — Netty is 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.
Bike, kart, F1 or ATV: what’s the difference?
/race create <name> car hands out motocross bikes, kart go-karts, f1 F1 cars and atv ATVs. They share the controls, the core physics and the circuits. Kart races play in Mario Kart style: item boxes instead of power-ups, a drift with mini-turbos, slipstream, grass and gravel that slow you down, and a kart steering profile. The ATV keeps all of that with off-road tyres that barely mind grass, gravel and mud. The F1 is the fast one: no items and no drift, a stronger slipstream, harsh run-off and a DRS on the main straight. Bikes keep the classic handling and power-ups. Kart, F1 and ATV arenas are two blocks wider than bike arenas. You can run every kind of arena on the same server.
How do players join quickly?
With /joinrace (on a Turkish server /yarış, /yarışakatil or /yaris). Without a name it joins the race whose registration is open; when more than one is open, a clickable list asks which. Opening a race also puts a clickable join line in chat. See Commands.
Can I change the command the announcements show?
Yes: it is the join-command key in your messages_<code>.yml (/joinrace in English, /yarış in Turkish). The title, the actionbar, the chat line and the event bossbar all use it.
How do players use an item?
Drive through an item box, wait for the short roulette next to the speedometer, then press SPACE. The held item stays next to the speedometer until it is used; the player’s inventory is never touched. See Kart items.
Can I turn the Mario Kart features off?
Each one has its own switch in the kart: section: kart.items.enabled (false = the classic power-ups in kart arenas), kart.drift.enabled, kart.slipstream.enabled, kart.surface.enabled and kart.profile.enabled. F1 and ATV arenas follow them too, and can set any of them again under f1: and atv: for that vehicle only. Bike and foot arenas never use them.
What is a TEKNIK circuit?
A narrow, compact kart circuit with hairpins and chicanes, sections side by side behind a single tyre wall, and boost pads, oil, mud and tyre stacks on the road. Register one with /race create <name> kart teknik and build it with /race generate <name>, or rebuild an existing bike or kart arena with /race generate <name> teknik. See The TEKNIK style.
My old track has gaps, or two arenas overlap. How do I fix it?
Run /race generate <name> on each arena. Arenas built before 1.2.0 keep their old track until you do; rebuilding clears the old blocks and builds the current hole-free circuit. Older versions placed every arena at the same spot, so an arena that shares its spot with another one is moved to a spot of its own while it is rebuilt, and its lobby moves with it. New arenas get their own spot from the start.
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.