◆Plaster// Multiplayer
Deep dives

Maps

// public/maps/ · src/map/ · src/woodland.js · tools/maps/ · Woodland added 2026-10-17

Two fields: Speedball, 34 × 50 m of turf and inflatables, and Woodland, a 64 × 96 m woodsball field with a fort, an abandoned outpost, a watchtower, a creek and forest trails. Both run on the same collision, bots and multiplayer server, and both open in the map editor.

01Woodland

Woodland from above blue's side: the fort in a clearing, the outpost with containers and a truck on the left, the watchtower on the right, forest all around.Overview
From above blue's endThe fort in its clearing in the middle, the outpost to the west (left), the watchtower and creek to the east (right), woods and trails between. Red's half is the same, mirrored.
The plank fort seen from the north: windows and a doorway, stumps and logs in the clearing, the watchtower to the right.Fort
The fort12 × 9 m of plank walls with a doorway on every side and shooting windows, a low divider and crates inside. Stumps, rocks and logs in the clearing give medium-range cover.
The view from the watchtower deck over the chest-high rail toward the fort.Tower
Watchtower deck2.8 m up, stairs on the creek side, a chest-high rail you can shoot over, and a roof. It sees the fort and the meadow, not the spawns.
The outpost: a walk-in shipping container, sandbags, the abandoned truck, crates, barrels and a shack.Outpost
Abandoned outpostShacks you can enter, walk-in and closed shipping containers, an abandoned truck, barrels, crates, pallets and sandbags: close-quarters fighting on the west side.
The broken footbridge over the sunken creek, with the watchtower stairs on the left and the net on the right.Creek
Creek and broken bridgeThe east flank crosses a sunken creek. The bridge's middle is gone: jump the gap or go down through the creek bed, which is out of the tower's sight.
Size64 × 96 m inside a 4.5 m net, about 3.6× Speedball's area. Spawn to spawn is 88 m; 20–25 s at a run down any of the three trails.
LanesCentre: through the woods to the fort clearing. West: past the outpost (close range). East: the watchtower meadow and the creek (long sightlines from the tower, cover in the creek). Cross trails join the fort to the outpost and the tower.
RangesClose: inside the fort, the outpost, containers and shacks. Medium: the clearing around the fort, the woods. Long: from the tower over the meadow, along the trails.
SpawnsEach team starts behind two berms and a plank screen, with exits west, centre and east. Checked from every standing spot on the far half, the fort windows and the tower deck: nothing sees into a spawn.
BalanceEvery object on blue's half is mirrored onto red's (z → −z), so both teams get the same distances (spawn → fort 44 m, → tower 46.6 m, → truck 49.9 m), cover and sightlines. Features on the centre line (fort, tower, truck, creek) are symmetric themselves.
StairsThe watchtower's (and any Stairs object's) steps stop paint and sight, but you and the bots walk an invisible ramp through them, so climbing and coming down are smooth rather than a hop per step.
BotsBots route over a walking grid built from the map's collision: trails are cheap to walk, so longer moves follow them; doorways and gaps between walls are open, so routes go through the fort and outpost; cells beside walls cost a little more, so they don't scrape along them. The watchtower deck is a cover spot they reach by its stairs. In a 4-minute 4v4 bot match bots spend about half their moving time on trails (one in five before), 72% in Search & Destroy. Same routes in practice and online (src/sim/nav.js).
Built fromtools/maps/build-woodland.mjs writes public/maps/woodland.json from a readable layout. After that it's an ordinary map file: open it in the map editor and change anything (re-running the script would overwrite those edits).

02Training range

The Training range from the firing line: a grid floor, player-shaped targets staggered down the Distance lane with distance plaques on the floor, the training readout top left.Range
Practice › Training rangePlayer-shaped targets instead of bots. Hit one and it drops, then pops back up; the readout counts hits, shots and accuracy and says how far the last hit was.
What it isWhat Practice opens first: a blank grid-floor field (the grid helps judge distance), 96 × 120 m, with 20 player-shaped targets. You start on the firing line at one end, facing down range. No bots, no clock.
LanesDistance: targets at 10, 20, 30, 40 and 50 m. Long range: 60, 75, 90 and 102 m (arcing shots, or the Sniper). Moving: targets sliding side to side at 12, 22 and 34 m, faster each time. Lean: two tall bunkers, each with a target you can only hit by leaning out (one left, one right). Aim: a fan of six targets at different angles and heights to swing between. Every label is a plaque on the floor, so nothing stands in the way of a shot, and the targets in a lane are staggered so the near ones don't hide the far ones.
TargetsA map editor object (Gameplay › Training target): the size of a player's hitbox, on a hinge so it drops when hit and stands up again after 2.2 s; with Travel it slides on a rail at its Speed. Any map with targets is a training map: practice plays it without bots, and it stays out of online play (public rotation and private lobbies). Signs (Props › Sign: small, large or a floor plaque) label areas.
Built fromtools/maps/build-range.mjs writes public/maps/range.json; or open it in the map editor.

03Choosing a map

Main menu › Practice › Choose a map: Training range first, then Speedball (loaded) and Woodland against bots.Practice
Practice › Choose a mapThe Training range first, then every other map against bots (the server's list, or the built-in maps offline). The one already loaded behind the menu starts instantly.
The map editor with Woodland open: terrain, forest, fort and outpost, and the Field settings in the inspector.Editor
In the map editorEach map shows its own field. With nothing selected, the inspector's Field section sets the type (Speedball or Woodland), width, length and net height.
PracticeMain menu › Play › Practice › pick a map. Direct link: /?practice=1&map=woodland.
OnlinePrivate lobby › Map (host). Public matchmaking still plays Speedball.
EditorFile › Open › woodland. Hills, trails, ground patches, clearings and forests are ordinary objects in the asset browser.

04Woodland's building blocks

Terrain

Hill objects (radius, height, flat top; scale for ridges, negative height for hollows) shape one heightfield. Players, bots, paint, sight checks and the server all use it.

Ground

Trail and Ground patch (mud, leaves, dirt, gravel) paint the ground material: grass, dirt, leaf litter and mud blended by a shader, plus thousands of instanced grass tufts. All four are photo-scanned PolyHaven textures with normal and roughness maps.

Forest

Forest scatters trees and bushes over an area from a seed, keeping off trails, clearings, buildings and spawns. It's the same on every computer and on the server, so trunks collide the same everywhere.

Structures

Plank walls (solid, window, doorway, half), posts, decks, stairs, the watchtower, shacks and shipping containers. Doorways and lintels collide correctly: you walk under a lintel, not through a wall.

Props & landmarks

Rocks, logs, stumps, barrels, crates, pallets, sandbags, the abandoned truck and the broken bridge.

Speedball untouched

Maps without terrain keep the old flat-ground physics exactly; a comparison of 20,000 random shots and moves found no differences.

05Performance

InstancingEvery tree, bush, grass tuft and sandbag is one instanced draw per kind. The trees are Blender models with three levels of detail: full detail within 24 m of the camera, a 2k-triangle version further away and past the net, 0.8k in the deep woods (no shadows). Shadows are cast by the next level down.
BatchingStatic map pieces sharing a material are merged per 24 m cell (one draw each, still culled by cell). The originals stay as invisible hit shapes, so paint lands exactly.
Shared materialsBark, metal and sandbag textures are generated once and shared by every object. Rocks, fallen logs, stumps, bushes and grass are Blender models (tools/blender/nature.py) with baked textures. The planks and beams use weathered-wood PBR textures made in Blender (tools/blender/planks.py; see Models).
ResultAbout the same number of draw calls per frame as Speedball (≈530 vs ≈590) at ≈350k triangles. Fog hides the distance.

06Next

Playtest feel

Tune the tower's strength, the creek route and the fort's windows after real matches (the checks so far are automated).

Golden hour

The art target's low warm sun and haze; Woodland currently uses midday light.

Public matches

Matchmaking plays Speedball only; map rotation or voting would bring Woodland online without a private lobby.