com.gamethesky.hatsoff.run

gamethesky.com

Documentation

One Hats Off run, published by the player into their own repo. The record stores every shot rather than a score: the sim is deterministic, so re-running the fire log against the same seed on the same level reproduces the run exactly. Owning the record is the identity proof, and replaying it is the score proof — wave, cured and the rest are advisory and never trusted by a leaderboard.

main record

One Hats Off run, published by the player into their own repo. The record stores every shot rather than a score: the sim is deterministic, so re-running the fire log against the same seed on the same level reproduces the run exactly. Owning the record is the identity proof, and replaying it is the score proof — wave, cured and the rest are advisory and never trusted by a leaderboard.

Record Key tid Timestamp-based ID

Properties

createdAt string datetime Required

An RFC 3339 formatted timestamp.

cured integer Required

Advisory: hats removed.

minimum: 0
dawn boolean Optional

Advisory: the night was won — the President's hat came off, or the night's cap was reached.

fires string Required

The whole run as the only input the game takes. Comma-separated `<dtick>.<weapon>.<x>.<z>` entries: dtick is 60 Hz ticks since the previous entry, weapon is 0 mist, 1 pulse, 2 drop, 3 for giving up (the run ends on that entry; x and z are 0), or 4 for a heading on an airlift level (x and z are then the direction in tenths, 0 and 0 to hover), x and z are otherwise the ground point in tenths of a unit (x east, z south, origin at the Washington Monument). Only shots the sim accepted are logged; a verifier applies the same rate, heat and cooldown rules and refuses a log that fires faster than they allow. Example: `120.0.-402.12,5.0.-398.14,30.1.-390.10`.

maxLength: 400000 bytes
holdPeak integer Optional

Advisory: the most people sheltering at once.

minimum: 0
level string Required

The level the run was played on. Ids are append-only.

maxLength: 32 bytes
Known values: liberty, goldengate, alamo, rushmore, raid, airlift, mall, whitehouse
rehatted integer Optional

Advisory: cured people the horde caught again.

minimum: 0
rules integer Optional

The level's own rules version the run was played under. A verifier must replay under the matching version or refuse the run. Absent means 1.

minimum: 1
seed string Required

Which horde: a date (YYYY-MM-DD, local to the player) for the nightly horde, or any word for a practice one. The sim seeds from the FNV-1a hash of this string.

maxLength: 64 bytes
simVersion integer Required

Which rules produced these shots. A verifier must replay under the matching version or refuse the run.

minimum: 1
stage integer Optional

Deprecated: an earlier build's stage index. Superseded by level.

minimum: 1
ticks integer Optional

Advisory: the tick the steps fell.

minimum: 1
wave integer Required

Advisory: the wave the steps fell in.

minimum: 1
View raw schema
{
  "description": "One Hats Off run, published by the player into their own repo. The record stores every shot rather than a score: the sim is deterministic, so re-running the fire log against the same seed on the same level reproduces the run exactly. Owning the record is the identity proof, and replaying it is the score proof — wave, cured and the rest are advisory and never trusted by a leaderboard.",
  "key": "tid",
  "record": {
    "properties": {
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "cured": {
        "description": "Advisory: hats removed.",
        "minimum": 0,
        "type": "integer"
      },
      "dawn": {
        "description": "Advisory: the night was won — the President's hat came off, or the night's cap was reached.",
        "type": "boolean"
      },
      "fires": {
        "description": "The whole run as the only input the game takes. Comma-separated `<dtick>.<weapon>.<x>.<z>` entries: dtick is 60 Hz ticks since the previous entry, weapon is 0 mist, 1 pulse, 2 drop, 3 for giving up (the run ends on that entry; x and z are 0), or 4 for a heading on an airlift level (x and z are then the direction in tenths, 0 and 0 to hover), x and z are otherwise the ground point in tenths of a unit (x east, z south, origin at the Washington Monument). Only shots the sim accepted are logged; a verifier applies the same rate, heat and cooldown rules and refuses a log that fires faster than they allow. Example: `120.0.-402.12,5.0.-398.14,30.1.-390.10`.",
        "maxLength": 400000,
        "type": "string"
      },
      "holdPeak": {
        "description": "Advisory: the most people sheltering at once.",
        "minimum": 0,
        "type": "integer"
      },
      "level": {
        "description": "The level the run was played on. Ids are append-only.",
        "knownValues": [
          "liberty",
          "goldengate",
          "alamo",
          "rushmore",
          "raid",
          "airlift",
          "mall",
          "whitehouse"
        ],
        "maxLength": 32,
        "type": "string"
      },
      "rehatted": {
        "description": "Advisory: cured people the horde caught again.",
        "minimum": 0,
        "type": "integer"
      },
      "rules": {
        "description": "The level's own rules version the run was played under. A verifier must replay under the matching version or refuse the run. Absent means 1.",
        "minimum": 1,
        "type": "integer"
      },
      "seed": {
        "description": "Which horde: a date (YYYY-MM-DD, local to the player) for the nightly horde, or any word for a practice one. The sim seeds from the FNV-1a hash of this string.",
        "maxLength": 64,
        "type": "string"
      },
      "simVersion": {
        "description": "Which rules produced these shots. A verifier must replay under the matching version or refuse the run.",
        "minimum": 1,
        "type": "integer"
      },
      "stage": {
        "description": "Deprecated: an earlier build's stage index. Superseded by level.",
        "minimum": 1,
        "type": "integer"
      },
      "ticks": {
        "description": "Advisory: the tick the steps fell.",
        "minimum": 1,
        "type": "integer"
      },
      "wave": {
        "description": "Advisory: the wave the steps fell in.",
        "minimum": 1,
        "type": "integer"
      }
    },
    "required": [
      "seed",
      "level",
      "simVersion",
      "fires",
      "wave",
      "cured",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@