Skip to content

Mythic Masters walk together: the room checks a den's creature and level against the world seed #3700

Closed

Description

@QuinnsCode

Left over from the walking-together climb (#3699 and the rounds before it; code in #3669 and #3676).

Today the Region Durable Object checks a reported den only for whether it fits (denNear and plausible in apps/mythic-masters/src/net/party.ts):

  • the den is near the pose the room last relayed for that player;
  • the fight report matches the den's creature and level;
  • the fight's length fits the time since;
  • at most six reports per den.

But the creature and level are whatever the page said when it walked into the den. A page that lies about both passes the check.

The fix: have the room work them out itself, from the same seeded world the page uses. The page gets a wild den's creature and level from wildsNear in src/world/world.ts: hash(cx, cz, 46) over the region's pool, then wildLevel plus the tier's level. The question is how much of world.ts the Worker can carry. It needs the region owner grid and the pools, not the terrain. Either split out a small dens.ts the edge can import, or precompute a table at build time. Measure the Worker bundle before and after, since the Workers size limit applies. Trail dens (trailWilds) and lairs (HUNTS) need the same treatment.

Done when a fought report for a creature or level the den doesn't hold is dropped, with a test per den kind, and the edge bundle stays small.

Activity

  1. QuinnsCode commented on Nov 5, 2026

    @QuinnsCode
    OwnerAuthor

    Also for this issue, from the round-11 judge on #3703: the room has no speed check on poses. A page could claim any position just before a den event, and denNear would believe it. A cap on how far a pose may move between two deltas within one region would close that. Fast travel and the Start landing are real long jumps: give them an allowance (a region change, or a jump to within a few metres of a lit fire or a friend).

  2. QuinnsCode commented on Nov 6, 2026

    @QuinnsCode
    OwnerAuthor

    Done in #3761 (merged): the room now checks a den's creature and level against the world seed, with a test per den kind; the edge bundle is 19.9 KB gzipped. The pose speed check moved to #3760, and distance checks for stones and the arena are in #3763.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions