SCRAPLINEStandingsResultsStatsTeamsLiveDocsAbout

SCRAPLINE League — Rules

The sporting law of the league: how a season is structured, how points are scored, how you submit, what is illegal and what it costs, and how the rules themselves change. If a rule binds your bot or your team, it is here.

Two companions: GAME-SPEC.md is the normative rulebook for what happens inside a match — every constant lives there and wins any conflict — and BOT-API.md is the contract your bot is written against. Nothing outside those three documents binds you.

Standing decisions this document implements: divisions with promotion/relegation (2×10 at launch) · an original game · one participant class on equal terms (Python-only pilot) · bot vs bot, always.


1. Structure

2. Season anatomy

A season runs 2 weeks, three seasons a year. Everything below happens on a fixed, published calendar: a freeze never lands without warning. The calendar is published as data at kickoff, and the site shows the next fixture night together with the freeze deadline that binds your submission.

  1. Registration window (off-season): new teams register and attempt the entry gate.
  2. Entry gate (“the Doorman”): mechanical validity (import check, crash-smoke against the archetype set, budget compliance — all run inside the sandbox) plus a sporting bar: score >50% against the public Doorman boss bot over a full 30-game map draw. Passing joins the waitlist; entry into Division 2 happens via vacancy or when Division 3 opens. The Doorman filters broken bots, not people — it is public, beatable by the starter kit plus an evening of work, and its source is published.
  3. Season spec freeze at kickoff: engine version, all game constants, and the full season map book (§5) freeze when the season starts. No mid-season balance changes, ever.
  4. Four legs, one per matchday. Per leg, every pairing plays 15 stratified maps × both sides = 30 games. Bot submissions freeze T-24h before each leg (§4).
  5. Broadcast night after each leg: results drop and the leg’s featured tie is cast from replays.
  6. Final standings after leg 4 → promotion/relegation (§3.2) → playoff tie → season review.
  7. Off-season (~2 weeks): the balance-patch window (§7), Doorman refresh, registration.

2.1 The census format

A deterministic engine makes an honest table cheap: the season is a full round-robin census with zero sampling error — the only residual uncertainty is how well the map draw generalizes.

3. Scoring, standings, and tiebreaks

3.1 Per game and per table

3.2 Promotion and relegation

3.3 Standings tiebreak chain

Published before Season 1, because an unpublished tiebreak becomes a governance crisis on first contact.

  1. Points.
  2. Head-to-head points between the tied teams.
  3. Aggregate HQ-damage differential across the season (dealt minus received).
  4. Aggregate energy-collected differential.
  5. Fresh-draw tie: a new 15-map × both-sides series between the tied teams (up to 3 series).
  6. Sudden-death map pairs: fresh generated maps played both sides, one pair at a time; the first pair with an unequal outcome decides. Two non-identical bots must eventually separate under a deterministic engine, and two byte-identical bots cannot both be entered (§6). There is no coin flip anywhere in this league.

4. Submissions

5. Map pool governance

6. Integrity

What is illegal, and what it costs. Detection methods are not published, and no verdict is ever issued by tooling alone — the rules committee decides every case.

6.1 Intent moderation

Intent strings (BOT-API.md §3) are bot-supplied public text shown to every spectator. Three layers, none of which touch a replay:

7. How the rules change

  1. In season: nothing changes. Engine version, constants, maps — frozen at kickoff and hash-pinned.
  2. Between seasons, any change follows: proposal → measurement against the archetype suite and its published gates → decision by the rules committee → patch notes with design intent (every change states the problem it targets and the expected, measurable effect) → a version-tagged engine release, with the new season pinned to it.
  3. The sandbox runtime version is part of the frozen spec: upgrading it changes effective fuel budgets, so it happens only between seasons, with budgets re-baselined.

8. Who decides

9. Calendar

Season 0 — the pilot (invite-only, 4 weeks)

A shakedown of the engine, the gate and the balance gates with real strangers’ bots before anything is at stake. 6–10 teams, free-for-all rules feedback, everything double-checked by hand.

Week What happens
1 Starter kits out; teams build; Doorman open for dry runs; two scrimmage legs mid-week (results published, nothing counts)
2 Legs 1–2 (Mon, Thu freezes; overnight runs; results next morning); first broadcast VOD after leg 2
3 Legs 3–4
4 Playoff-format rehearsal (top 2 play a 30-game tie, cast); retrospective; balance review; Season 1 rulebook + calendar published

Season 0 results confer nothing except seeding for Season 1’s division split (top half → Division 1 by the Season 0 table, remainder plus new entrants fill Division 2).

Season 1 (full format, 2 weeks)

Day What
Mon W1 Kickoff: spec freeze, map book published; leg 1 freeze 20:00 UTC; overnight census
Tue W1 Leg 1 results + broadcast night
Thu W1 Leg 2 freeze; overnight
Fri W1 Leg 2 results
Mon W2 Leg 3 freeze; overnight
Tue W2 Leg 3 results + broadcast
Thu W2 Leg 4 freeze; overnight
Fri W2 Final standings; promotion/relegation confirmed
Sat–Sun W2 Playoff tie (Div 1 №8 vs Div 2 №3) + title/decider cast VOD

Then ~2 weeks off-season: the protest window closes, the balance window runs, the Doorman refreshes, registration opens, and the next season’s calendar is posted.