BuiltByBit store

ServerGamesconfig.yml reference

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.

KeyDefaultMeaning
car.accel0.028Acceleration per tick.
car.max-speed0.86Top speed, blocks/tick (~17 m/s).
car.ice-max-speed0.96Top speed on the ICE theme (faster, slippery).
car.turn-degrees5.8A/D steering degrees per tick at full speed.
car.grip-degrees10.5How fast travel direction catches the nose (lower = slidier).
car.drift-grip-degrees3.8Grip while holding SHIFT — big gap = long drifts.
car.brake0.88Speed multiplier per tick while handbraking.
car.friction0.994Rolling friction, a speed multiplier per tick.
car.boost-multiplier1.35SPEED / boost effect on the vehicle.
car.slow-multiplier0.60SLOW trap effect on the vehicle.
car.dash-impulse0.9DASH power-up burst.
car.crash-speed-keep0.38Fraction of speed kept after a head-on wall hit.
car.track-width11Minimum 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

FilePurpose
config.ymlAll gameplay / generator / HUD / power-up / music / sound settings.
messages_en.yml, messages_tr.ymlEvery player-facing string (MiniMessage).
races.ymlArena 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.ymlCrash-safe restore records (auto-managed).
stats.ymlPlayer stats.
rewards.ymlPer-arena place rewards.

Next: FAQ.