config.yml reference
Every section of the ServerGames config.yml, explained.
plugins/ServerGames/config.yml controls the world, generator, physics, HUD, power-ups, music and sounds. All player-facing text lives in messages_en.yml / messages_tr.yml (MiniMessage, fully editable) — add your own messages_<code>.yml and set language.
language: "en" # messages_en.yml / messages_tr.yml — add your own and switch here
Race & world
race:
world: "race_world" # arena world; created as a void world if missing (Canvas/Paper)
fallback-world: "world" # used on plain Folia (no runtime world creation)
fallback-origin-x: 20000 # track center in the fallback world (keep far from spawn)
fallback-origin-z: 20000
road-y: 128 # track base height (void world)
fallback-road-y: 208 # track height in the fallback world
max-players: 100
min-players: 2
default-laps: 3
default-width: 7 # road width in blocks (odd recommended)
default-length: 24 # control-point count ≈ track size (24 ≈ a 900-1,000 block lap)
countdown-seconds: 10 # grid countdown (lights-out) once the race is starting
auto-start-when-full: true # start right away when the lobby is full (see lobby.full-players)
time-limit-seconds: 600 # race time limit (0 = disabled)
end-grace-seconds: 120 # time granted to the rest after the first finisher
finish-restore-delay-seconds: 8
freeze-hotbar: false # lock hotbar switching (inventory is NEVER touched)
respawn-on-fall: true # fall off → respawn at last checkpoint
cancel-all-damage: true # cancel ALL damage to racers (PvP always blocked)
disable-hunger: true
restore-health: true
block-elytra: true
block-teleport-items: true # block ender pearls / chorus fruit in race
demolish-after: false # remove track blocks when the race ends
rejoin-continue: false # true = relog continues from last checkpoint; false = restore
announce: true # server-wide open/finish broadcasts (open: title, chat with rewards, event bossbar)
lobby: # the lobby starts races by itself
auto-countdown: true # false = races only start with /race start
start-at-players: 2 # the countdown begins at this many players
countdown-seconds: 60 # lobby wait (players can still join / leave)
cancel-when-below: true # dropping under start-at-players cancels and resets it
full-players: 0 # 0 = race.max-players counts as full; or set your own number
full-countdown-seconds: 10 # shortened wait once full (when auto-start-when-full: false)
announce-seconds: [60, 30, 15, 10, 5, 4, 3, 2, 1]
allowed-commands: [ ... ] # commands permitted while racing
How the lobby countdown behaves is described under Lobby auto-start.
Generator
generator:
chunks-per-batch: 6 # chunks per batch tick (build speed vs TPS)
batch-period-ticks: 2
radius-per-point: 6.0 # track radius = length × this
hills: true # gentle slab ramps on foot circuits (bike / kart circuits are always flat)
hill-amplitude: 3.0
checkpoint-every: 2 # one checkpoint per N control points
powerup-every-blocks: 40
technical: # the TEKNIK style (narrow kart circuit, bike and kart arenas only)
kart-width: 9 # road width of a TEKNIK kart track (min 7), used when no width is given
bike-width: 7 # road width of a TEKNIK bike track (min 5)
kart-hazards: true # new TEKNIK kart tracks get boost pads, tyre stacks / barrels, oil and mud
For TEKNIK, length sets the lap size: the default 24 gives 9 to 13 corners and a lap of 420 to 960 blocks. See The TEKNIK style.
Car
Physics for the vehicle race mode. They apply to bikes (/race create <name> car) and karts (/race create <name> kart) alike.
| Key | Default | Meaning |
|---|---|---|
car.accel | 0.028 | Acceleration per tick. |
car.max-speed | 0.86 | Top speed, blocks/tick (~17 m/s). |
car.ice-max-speed | 0.96 | Top speed on the ICE theme (faster, slippery). |
car.turn-degrees | 5.8 | A/D steering degrees per tick at full speed. |
car.grip-degrees | 10.5 | How fast travel direction catches the nose (lower = slidier). |
car.drift-grip-degrees | 3.8 | Grip while holding SHIFT — big gap = long drifts. |
car.brake | 0.88 | Speed multiplier per tick while handbraking. |
car.friction | 0.994 | Rolling friction, a speed multiplier per tick. |
car.boost-multiplier | 1.35 | SPEED / boost effect on the vehicle. |
car.slow-multiplier | 0.60 | SLOW trap effect on the vehicle. |
car.dash-impulse | 0.9 | DASH power-up burst. |
car.crash-speed-keep | 0.38 | Fraction of speed kept after a head-on wall hit. |
car.track-width | 11 | Minimum road width for bike arenas, auto-enforced on create / generate. Kart arenas get two blocks more. |
Speed upgrade
Off by default. Turning it on multiplies top speed and acceleration for every vehicle; the base values above stay as they are, and power-up boosts stack on top.
car:
speed-upgrade:
enabled: false # false = vehicles run exactly at the base speeds
max-speed-multiplier: 1.25 # top speed × this (clamped to 0.25 - 3.0)
accel-multiplier: 1.15 # acceleration × this, keeps the higher top speed reachable
Vehicle rendering
Each bike and kart is drawn as client-side virtual parts streamed only to the players near it. The outbound load is vehicles × parts × viewers, so these keys are the limits that keep a packed 100-racer corner bounded. The defaults are tuned for big grids and need no setup. Only packet-based needs a restart; the rest reload with /race reload.
car:
render:
packet-based: true # client-side virtual parts; false = classic display entities (RESTART)
view-distance: 48 # blocks; keep it <= spigot.yml entity-tracking-range.players (48)
max-viewers: 24 # hard cap: a vehicle streams to at most N players, nearest first (0 = unlimited)
lod-near-distance: 24 # viewers closer than this (and the driver) get every pose
lod-far-skip: 2 # far viewers get 1 of every N poses, never a wheel-spin-only one (1 = off)
viewer-admit-per-pass: 6 # max NEW viewers per culling pass, spreads the spawn burst of a full grid
view-angle: 0 # 0 = off; >0 = viewer's forward cone in degrees (entry only, beyond 16 blocks)
quiet-stand: true # the invisible carrier stops broadcasting velocity / head rotation nobody uses
max-near-viewers: 8 # only the N closest viewers get the full-rate stream (0 = no limit)
far-lite-model: true # far viewers get a lighter model: 22 of 41 bike parts, 19 of 38 kart parts
effects-to-viewers: true # dust, drift smoke, brake light, boost flame and sounds go to near viewers only
virtual-carrier: false # EXPERIMENTAL: hide the real carrier behind a client-side copy (bikes only)
Kart
Kart arenas, and the F1 and ATV arenas, which fall back to these values for every key they do not set themselves (see F1 and ATV). Bike and foot arenas ignore this whole section. Every key has its default built in, so a config.yml from an older version keeps working without it.
Kart driving
The kart steering profile, the Mario Kart drift and mini-turbo, the slipstream and the surfaces (see Kart arenas: Mario Kart driving).
kart:
max-boost-multiplier: 1.55 # cap for stacked boosts (turbo x star x mini-turbo x slipstream) over the normal top speed
profile:
enabled: true # false = karts steer exactly like bikes (car.turn-degrees)
turn-degrees: 4.4 # kart steering at full speed (deg/tick); a flat-out kart needs ~12.7 blocks to turn
drift: # Mario Kart drift: hold SHIFT while steering at speed
enabled: true # false = SHIFT stays the bike-style handbrake for karts too
min-speed: 0.45 # blocks/tick needed to start a drift (~32 km/h)
turn-multiplier: 1.30 # path turn rate while drifting (x the steering above)
neutral-turn: 0.55 # drift arc with no A/D held (x turn-multiplier)
away-turn: 0.25 # ...while steering away from the drift (wide line)
slide-degrees: 22 # how far the nose points into the corner while drifting
speed-keep: 0.997 # speed kept per tick while drifting (bike handbrake: car.brake 0.88)
blue-ticks: 14 # drift time for blue sparks (mini-turbo)
orange-ticks: 30 # drift time for orange sparks (super mini-turbo)
blue-boost-ticks: 12 # mini-turbo length when the drift is released (ticks)
orange-boost-ticks: 26
boost-multiplier: 1.22 # top speed x this during a mini-turbo
blue-kick: 0.08 # instant speed added on release (blocks/tick)
orange-kick: 0.14
slipstream: # drive close behind another kart to catch its draft
enabled: true
min-speed: 0.45 # both karts must be at least this fast (blocks/tick)
min-distance: 2.5 # draft zone behind the kart ahead (blocks)
max-distance: 14.0
cone-degrees: 12 # how far off its line you may be
charge-ticks: 20 # time in the draft before it kicks in
multiplier: 1.12 # top speed x this while the draft is charged
slingshot-ticks: 20 # extra boost after pulling out of a charged draft (0 = off)
surface: # what is under the kart
enabled: true
grass-speed: 0.65 # top speed x this on run-off (grass, snow, netherrack, ...)
gravel-speed: 0.45 # top speed x this in a gravel trap
mud-speed: 0.55 # top speed x this on mud patches (TEKNIK tracks)
oil-ticks: 25 # grip loss after an oil patch (black glazed terracotta)
oil-grip-degrees: 2.0
pad-boost-ticks: 22 # boost pad (magenta glazed terracotta) boost length (ticks)
pad-kick: 0.18 # instant speed added by a boost pad (blocks/tick)
Kart items
The Mario Kart-style items (see Kart items).
kart:
items:
enabled: true # false = kart arenas fall back to the classic powerups section
boxes-per-row: 0 # 0 = auto (3 on roads up to 9 wide, 5 wider; odd = a box on the centre line)
pickup-radius: 1.4 # blocks; a racer already holding an item leaves boxes for others
box-respawn-seconds: 2.5 # per box
roulette-seconds: 1.0 # roulette before the item is handed out (rolled by race position)
turbo-seconds: 1.2 # TURBO / TRIPLE_TURBO boost (car.boost-multiplier) + speed kick
shield-seconds: 10 # SHIELD absorbs one hit or runs out after this
star-seconds: 6 # STAR: immune to everything, faster, spins whoever it touches
star-speed-multiplier: 1.25
star-hit-radius: 1.6
banana-lifetime-seconds: 60
banana-hit-radius: 1.0 # the dropper is immune to their own banana for 1 second
shell-speed: 1.6 # GREEN_SHELL blocks per tick; shells follow the track
shell-lifetime-seconds: 4
shell-hit-radius: 1.1 # also the RED_SHELL
red-shell-speed: 1.7 # RED_SHELL homes on the racer directly ahead
red-shell-lifetime-seconds: 6
tnt-distance: 10 # TNT lands this many blocks ahead along the track...
tnt-fuse-seconds: 1.5 # ...and explodes after this (or as soon as a kart touches it)
tnt-radius: 4.5 # every kart within this many blocks spins (the thrower too)
spin-ticks: 20 # spin-out of a hit: one full turn in one second
hit-speed-keep: 0.25 # fraction of speed kept when hit
hit-immunity-seconds: 2 # no new hit for this long after a spin-out ends
max-projectiles: 24 # per race (shells + TNT); the oldest disappears beyond this
max-traps: 40 # bananas per race; the oldest disappears beyond this
max-traps-per-player: 3
render: # items are client-side displays streamed to nearby racers only
update-ticks: 2 # moving item position update period (1-4); the client smooths it
max-viewers: 24 # each item is streamed to at most N racers, nearest first
weights: # item chances by race position: first = leader (or solo racer),
first: # front / mid / back = thirds of the racers still racing
BANANA: 40
GREEN_SHELL: 30
SHIELD: 20
TURBO: 10
front:
BANANA: 25
GREEN_SHELL: 25
RED_SHELL: 15
TURBO: 20
SHIELD: 15
mid:
RED_SHELL: 25
TURBO: 25
TNT: 15
GREEN_SHELL: 15
BANANA: 10
TRIPLE_TURBO: 5
STAR: 5
back:
TRIPLE_TURBO: 30
STAR: 20
RED_SHELL: 25
TNT: 15
TURBO: 10
F1 and ATV
F1 and ATV arenas drive on the kart physics with their own values (see F1 arenas and ATV arenas). Any kart.* driving key (profile, drift, slipstream, surface, max-boost-multiplier) can be set again under f1.* or atv.* for that vehicle only; a key you leave out uses the vehicle’s own default listed here, then your kart.* value. Speeds are multipliers on car.max-speed / car.accel. Every key has its default built in.
f1:
max-speed-multiplier: 1.15
accel-multiplier: 1.12
items: false # Mario Kart items in F1 arenas (SPACE is the DRS button)
hud-kmh-multiplier: 4.5 # speedometer scale (cosmetic): top speed reads ~320 km/h
drs:
enabled: true # main straight: arms when a car is close ahead at the zone
# entry, SPACE opens it, braking or the end of the zone closes it
speed-multiplier: 1.10
gap-blocks: 24 # "close": at most this many blocks ahead along the track
from-lap: 2 # first lap with DRS (lap 1 = the start)
profile:
turn-degrees: 3.8 # full-throttle radius ~17: the tight corners need braking
drift:
enabled: false # no Mario Kart drift: SHIFT is the bike's handbrake
slipstream:
multiplier: 1.15
max-distance: 18.0
charge-ticks: 16
surface:
grass-speed: 0.55 # run-off and gravel traps really cost time in an F1
gravel-speed: 0.35
mud-speed: 0.50
max-boost-multiplier: 1.40
atv:
max-speed-multiplier: 0.95
accel-multiplier: 1.08
items: true # Mario Kart items (also needs kart.items.enabled)
hud-kmh-multiplier: 1.35
profile:
turn-degrees: 4.6
surface:
grass-speed: 0.92 # knobbly tyres: grass, gravel and mud barely slow an ATV
gravel-speed: 0.80
mud-speed: 0.88
Network
Server-wide tuning for every player, not only racers.
network:
flush-consolidation: true # packets sent from the tick threads reach the socket together
# instead of one write per packet (applied when a player joins)
max-merged-flushes: 256 # upper bound of flushes merged into one
HUD
hud:
update-ticks: 10 # bossbar + ranking update period
scoreboard-update-ticks: 20
scoreboard-lines: 8 # top N racers on the sidebar
Power-ups
powerups:
enabled: false # off by default; true = spawn power-up boxes on the track
respawn-seconds: 8
effect-duration-seconds: 6
dash-strength: 2.2
animate-every-ticks: 10 # box spin / bob update period (1-14); the client smooths in between
weights: # probability weights (0 = disabled)
SPEED_BOOST: 25
JUMP_BOOST: 15
DASH: 15
SHIELD: 15
SLOW_TRAP: 12
BLIND: 8
CONFUSION: 10
Music
music:
enabled: true
mode: NOTES # NOTES = note-block music | DISC = jukebox discs | OFF
volume: 0.9
lobby: true # play music in the lobby
final-lap-boost: true # faster + transposed-up on the final lap
discs: # used in DISC mode
lobby: "music_disc.creator_music_box"
racing: "music_disc.pigstep"
Sounds
sounds:
enabled: true
volume: 1.0 # effect sound multiplier
Data files
| File | Purpose |
|---|---|
config.yml | All gameplay / generator / HUD / power-up / music / sound settings. |
messages_en.yml, messages_tr.yml | Every player-facing string (MiniMessage). |
races.yml | Arena parameters (geometry re-derives from the seed), the vehicle (BIKE / KART), the circuit generation and style (CIRCUIT / TEKNIK) it was built with, and whether it has hazards. |
pending-restores.yml | Crash-safe restore records (auto-managed). |
stats.yml | Player stats. |
rewards.yml | Per-arena place rewards. |
Next: FAQ.