Player web portal
Players manage one character’s books and hired crew in a browser at play.flatland3.com. The page loads live data from the game service while the character is away from the world.
Sign-in is the game account. After login the player picks a character. Every request checks that the character belongs to that account.
Books
The overview shows net worth, coin, and how many days the trailing week’s pace lasts before coin hits zero. Burn per day is drawn against income per day.
The books screen has four windows: the current game day, seven days, thirty days, and lifetime. Each window shows the operating net, the same window just before it, and charts for operating net, income against expenses, crew net, a forward burn, and a reconstructed coin trend. Land purchases and bank transfers stay out of the operating charts. The journal is the stored ledger, with search, a category filter, and a CSV export. Market lots carry a status. Land lines show book value and daily quitrent. Labor lines match worker names in the journal text to sales and wages.
When the character is logged out, coin on their person is the balance from the last logout. Storage, the bank, and land are still read from the world. If the world is not publishing, the books and crew list come from the last saved state.
Crew
The live page lists each hired worker’s state, current step, vitals, carry, level, wage, quoted wage, wages due, backpay, and the income forecast for one loop and for a day. A phone lays these out as cards. A wide window uses a table and a detail drawer. Filters are all, working, blocked, striking, and resting.
The world publishes a snapshot about once a second for every character who is online or still has hired workers. The control plane streams that snapshot to the browser and falls back to polling if the stream drops.
Changing a route
The editor sends an ordered list of stops: walk, harvest, withdraw, deposit, sell, list at a market, craft, till, plant, harvest a plot, rest, and wait. The server compiles that list into job YAML and validates it the same way an in-game order is validated. The page shows the estimated wage per day and the estimated income per loop before the player applies it.
A job or mode write includes the worker’s current revision. A stale revision is rejected, and the message names the worker. Rename, lodging, and dismiss do not use that revision. Presets set a rest route, switch the worker to companion, or copy another worker’s stops. Applying one route to several workers still validates each worker.
These writes run on the sim tick. The player does not have to be in the world. The game client sees the new route on its next snapshot.
Hiring a worker stays in the game, next to the NPC, with the hire fee.
Access
Sign-in is required for every read and write. Sessions can read and write; read-only access tokens can only read. Another account’s character is not found. Writes are rate limited.
Friendly names are what the page shows: the character, the worker, the chest, the tree, the merchant, the recipe. A blank name becomes a short description, not an id.