chore(tools): dress a seeded world so it can be screenshotted #16
Reference in New Issue
Block a user
No description provided.
Delete Branch "chore/demo-world-dressing"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
BridgeSeederbuilds a world at realistic scale — 50 accounts, 150 characters, 30 houses, 30 vendors, 1,200 listings — which is exactly what the bridge needed. It never needed the world to look like anything, so a vendor isseed vendortrading asSeed Shop 810, a character isSeed004A, a house sign readsSeed House 12.Every one of those strings travels the whole bridge — plugin → sidecar → website — and lands on the marketplace, the guild roster and the housing pages. Fine for a protocol test; wrong for the marketing site's screenshots, which are meant to be real captures of a real deployment (runicgateway.com
PLAN.md§13 phase 9, D42/D46).What it does
BridgeDemoDress.csrenames what is already there and seeds nothing. Prices, listing counts, decay stages, fame and skill sheets stay exactly as the seeder produced them and as the shard has moved them since — only the strings a human reads change, so the data keeps its provenance.Names are drawn from fixed tables by a hash of each object's serial, so a run reproduces the same world and screenshots retaken later still match. Shop and house names are re-dressed when they are names the pass itself produced, so a change to the tables can be applied to a world that has already been through here; character names are not, because a person's name has no closed set to recognise it by.
Two other things, each because nothing else provides them:
CanDecayare touched — forcing an active owner'sAutoRefreshhouse into IDOC would invent a state the game never produces, and the next refresh would undo it.seed_000. Logging a character in is the only way to make the website's online roster non-empty, that needs a client, and a client needs a password the seeder never kept (it assigns a random GUID). Read fromBridge.cfg, never compiled in.Scope
tools/scaffolding/, whichdeploy.ps1does not copy —overlay/is the only thing deployed. Guarded the same way as every other probe here:Config.Getreturns false for a missing key, so a shard whoseBridge.cfglacksDemoDressOnStartnever runs it even with the file present.Verified
Ran against the local ServUO world behind a protocol-4 sidecar and a website with
module-uoinstalled. 27 vendors, 150 characters and 30 house signs dressed; the names reach the site's marketplace on the next market sweep.One note now in the README, because it cost a debugging detour: the sidecar caches its boards, and a market sweep advances
MarketSweepBatchvendors per tick, so the website lags a rename by a couple of minutes. The shard had the new names the whole time.Co-Authored-By: Claude <noreply@anthropic.com>