UptimeUptime Wiki

v0.1.28 (Early Access)

Your data center now has an API, as an experiment. The delivery robot carries what will physically fit on it, which is a lot more than it used to allow. Pausing the game now actually pauses it. A managed database that v0.1.27c could not put back is put back.

Added

The local API (experimental)

This is a first pass and it is experimental. It works and it is safe to leave running, but the shape of it is not settled: names, fields and addresses may change in any release, and things may be added or dropped based on what people actually use. Treat it as something to play with rather than something to build on, and expect to adjust anything you write against it. If you do build something, tell us what you needed, because that is what will decide where this goes.

  • Your running game now serves a read-only API on your own machine. Open http://127.0.0.1:9875/docs in a browser while the game is running and you get a live index of everything the simulation knows, with a button on each entry to fetch it there and then. It is the observability stack you spend the campaign building, pointed back at your own datacentre.
  • A Prometheus endpoint, at /metrics. Point Prometheus or Grafana at it and graph your own cloud: cash and revenue, customers, hosts, uplink throughput, heat and cooling, open incidents, packet drops. The scrape target is a fixed address, so a dashboard you build once keeps working run after run.
  • Everything is there, not a curated subset. Hosts, racks, availability zones, the whole network (switches, gateways, appliances, patch panels, cables, segments, subnets), customers, prospects, staff, quests, incidents, work orders and services. Every list is paged, and single entries are addressable by id.
  • The event feed and the metric history are readable too. /api/v1/events walks recent events in order and tells you honestly when it has fallen far enough behind that some are gone, rather than quietly returning fewer. /api/v1/metrics exposes the same sparkline histories the in-game panels draw from, already converted into real units.
  • It reads in plain English. Names, quest text, incident descriptions and event messages come through as sentences, not internal identifiers.
  • It cannot change your game and it cannot leave your machine. There is no way to buy, move, or break anything through it, and it only ever listens on your own computer. Nothing is sent anywhere, and no setup or account is involved. If you want it reachable from another machine, that is yours to arrange deliberately.
  • It cannot slow the simulation down. The API reads from a snapshot the engine publishes once a second rather than interrupting it, so a dashboard refreshing constantly costs the game nothing. Every response says how old its data is, so nothing pretends to be live that is not.

Fixed

Databases

  • A database broken by approving a growth request is repaired when you load. v0.1.27c stopped growth requests from breaking databases, and repaired the saves it could recognise. It could only recognise copies that still looked like the database it started as, and approving growth resizes them, so the saves most likely to be damaged were the ones the repair could not see. It now identifies them by what a customer is holding beyond what they are paying for, which survives a resize.
  • A repaired database gets its own disk back, not the one it was left holding. A copy that had been turned into an ordinary machine kept that machine's disk, so a database could come back running on the wrong size without saying so.
  • The machines those broken copies were sitting on are handed back. Same release of unbilled hardware as v0.1.27c, now reaching the copies that release could not identify.

Deliveries

  • The delivery robot carries what fits on its deck. It was refusing boxes onto a deck that was visibly two thirds empty, because it was counting abstract "slots" rather than looking at the load. It now stacks the real cartons and only refuses a box when there is genuinely nowhere for it to go. In practice the robot takes ten servers where it used to take six, and thirty switches where it used to take twelve. The trolley gained the same way.
  • Mixed loads work the way they look. Two layers of servers, then a few switches, then more servers is a normal thing to want, and the old slot count had no way to answer it — a short box cost the same as a tall one, so a stack of small cartons hit the wall with a third of the deck unused. Box sizes now decide, so a 4U server takes more room than a 1U one and the deck fills the way the picture says it does.
  • A full deck tells you which machine is full, and by how much. Loading the delivery robot used to report that the trolley was full, and quote a slot number that matched nothing on screen. It now names the machine you are standing at and says how far over the top the box would put it.
  • The robot's console shows how loaded it is, and stops hiding boxes. The manifest listed six and silently dropped the rest, so a loaded robot's console showed less than the robot was carrying.
  • The prompt stops offering a load that cannot succeed. When nothing more will fit, it says so instead of inviting you to press E and be refused.
  • Everyone sees the load stacked the same way. Each machine used to work out its own arrangement, so the same boxes could sit differently on two screens.
  • A rack-mounted security appliance takes a server's space on the deck. It is a server chassis and was drawn as one, but it was charged as a small box, so the deck's idea of how full it was drifted from what you could see on it.

Pause

  • Pausing stops the world. The delivery robot used to carry on driving, flashing and beeping across the room behind the pause menu, then snap back into place when you resumed. Time is now held in one place, so anything that moves, stops.
  • Opening a menu in multiplayer no longer freezes your view of a live world. The pause menu has always said the world keeps running for everyone else, and that was true — but your own client quietly stopped keeping up, so you came back to a world that had moved on without you. A shared world cannot be paused, and now nothing pretends otherwise.
  • The pause button never claims a pause that did not happen. It reports the state of the game rather than the button you pressed.

Notes

Saves from v0.1.27 load as normal. No save-format changes.

If a customer's database still reads as down for no visible reason, load your save once on this version and it will be put back. Nothing is moved and no database is rebuilt, so there is no downtime, and a healthy save is untouched. Freed hardware may show up as a jump in available capacity, and affected customers' bills correct themselves.

Multiplayer sessions need every player on the same version. This release changes what clients and the server say to each other, so a v0.1.28 client cannot join an older host or the reverse.

The local API is experimental, on by default, and needs nothing switched on, but it only exists while the game is running. It listens on 127.0.0.1:9875; if something else on your machine already has that port, the game quietly picks another one rather than failing to start. In multiplayer it runs on the host's machine and describes the shared world, so a guest querying their own machine will not find one. Being experimental, it is the one part of this release we may change without warning, including removing it; nothing in the game itself depends on it, so that would cost you nothing but whatever you pointed at it.

If you have a hauler loaded in an existing save, its boxes may be arranged differently the next time you look at it. Nothing is lost — the same boxes are aboard, in the same order, stacked to the deck's real dimensions.

On this page