Wheels of Stone is a set of maps. Each circuit's road, jumps, boost pads,
shortcuts and rivals come from one setting in the map file, rules.race, and
everything below works on any map that sets it. A player who opens your map
gets the whole race: the garage with each car on its people's turntable, the
intro round the grid, the countdown, the race and the results.
Start from a Wheels of Stone circuit
Download Meadowbrook (every circuit is at
/maps/race-<circuit>.play.json) and open it in the Forge with File →
Import Map JSON…. Its race comes with it: change the laps, the cars on
offer or the line itself, then save it as your own.
To start from a blank map instead, open the Players module in the Forge. Under Rules there is a Race panel. Switch it on and it lays an oval round the middle of the map. Switching the race on also turns standard victory, the starting base, the AI's armies, fog and building off, because a race has none of them; turn any back on in Rules if your map wants it.
Switch a race on: rules.race
{
"rules": {
"race": {
"track": {
"id": "lantern_run",
"name": "Lantern Run",
"width": 9,
"offroad": "grass",
"points": [
{ "x": 40, "y": 30 }, { "x": 88, "y": 30 }, { "x": 100, "y": 64 },
{ "x": 88, "y": 98 }, { "x": 40, "y": 98 }, { "x": 28, "y": 64 }
],
"features": [
{ "kind": "boost", "at": 0.1 },
{ "kind": "items", "at": 0.45 }
]
},
"laps": 3,
"roster": ["race_car_rustrocket", "race_car_widow"]
}
}
}- The line (
track.points) is the road's centre line in tiles, in the order the cars drive it, closed back to the first point. The first point is the start line. A point may set its own width (w). The game draws the road, the kerbs and the start gantry along it; paint the ground beside it as you like. Trees, rock and cliffs are walls to a car, and deep water, lava and the void are drops it is hauled back from. - Features sit at a fraction of the lap (
at, 0 at the start line, 0.5 halfway round): boost pads, jump ramps, crests, rows of item crates, stretches of mud, ice or shallow water (from,to), gaps a ramp must clear, barriers, rolling boulders, fire geysers and shards. - Shortcuts (
track.shortcuts) are second ways round, each with its own line, width and surface. - The race:
laps(1 to 9),mode(raceortime_trial),speedClass,aiSkill,items,abilitiesandtimeOfDay. - The cars:
rosterlists the cars your map offers; leave it out and every car is on offer. The Race panel lists them by name.kartsfixes a seat's car ("3": "race_car_widow"). - Smoothness: switching the race on sets
rules.targetFpsto 60, so the game's adaptive graphics trade detail to hold 60 frames a second. The crowd (spectators) is drawn as cardboard cut-outs, so a full grandstand costs little. - The garage: a player whose seat has no car in
kartspicks one in the garage before the race. Alone, the garage waits for them; with friends, it stays open twenty seconds, orgarageSeconds(0 for no garage).
A race whose rules cannot run (a line of fewer than four points, a car that does not exist) plays as an ordinary map instead. Validation (F10) and the Race panel list why.
Test it
Test Map in the Forge runs the race as a player gets it, garage first. The seats in the Players module are the grid: a User seat is a driver, a Computer seat an AI rival.