About the Game
You don't manage a datacenter from a spreadsheet. You walk it.
Uptime puts you on the floor of your own cloud provider, first person, hands on the hardware. You buy the servers and carry them to the rack. You seat them with a click. You run the cable off the spool yourself, find the port, watch it lay across the floor, and power the thing on. Then you sign your first customer and find out whether any of it holds.
Underneath the floor is a real simulation. Every server, switch, cable and port is a live entity in a deterministic engine, and the network genuinely switches and routes traffic across it. Power and cooling are budgets you can blow. Capacity is hardware that fills up. When something breaks, it breaks because the model says it should, and the fix is usually the one a real engineer would reach for. That was the whole goal: a build-it-with-your-hands tycoon sim that still holds up if you do this for a living.
Get it running, then keep it running. The moment traffic arrives, the simulation starts pushing back.
You're running the cloud, not a server room.
You own the full stack. The metal, the network, the services you sell, and the customers whose product lives on your kit. You're the thing they build on, so everything running on you is yours to keep alive, from the single box in the garage to a floor other companies depend on.
Your customers bet their business on you.
The tenants have names, and they hand you their product expecting it to stay up. Reputation is the currency underneath all of it. You earn it slowly and you can lose it in one bad night, and the bigger the customer, the harder that fall lands. Sign a deal you can't carry, pack one host too tight, sleep through an SLA breach at 2am, and the cost isn't only the money. It's the trust that was about to send you the next customer.
So every yes is a wager on whether you can carry the new weight without dropping what you already hold. Turning business away is sometimes the correct call. The tenants you keep won't sit quietly either. They surge, they haggle, they show up with deadlines. Keep them happy and they say so out loud, and they bring friends.
What you sell is infrastructure you actually run.
Customers don't rent "a server." They spin up the things a real cloud sells: virtual machines, object storage, managed databases, Kubernetes, load balancers, serverless functions. Each one is a service you operate. Behind every service is a control plane you have to keep alive and an agent on each host that does the work, and all of it competes for the same compute your customers are paying for.
That's where the network grows teeth. Cut a service off from its control plane and it starts to fail. Lean on one too hard and it buckles. Capacity runs out, the network can partition the very services you're selling, and the way you lay it all out is what separates a provider that holds from one that tips over.
The simulation is the game.
This is where the word "simulation" gets earned. Every device on your floor is a real entity in a deterministic engine, and every LED you see is reading its live state. A link saturates because the math saturated it. A rack goes dark because a fault domain you never thought about turned out to be a single point of failure.
Ports, cables, power draw, fault domains, oversubscription, link aggregation, spanning tree, BGP, mean-time-between-failures. These are the model, not labels stuck on a progress bar. Cable a redundant link the wrong way and spanning tree either saves you or, if you got it backwards, the whole floor drowns in a broadcast storm. You can ignore the depth and still win. You can also lean all the way into it.
The customers talk to you.
They live in a chat channel that reads like the ops Slack you've spent years in. They onboard, ask for more capacity, complain when latency spikes, and tell you in their own words when the change you made three minutes ago just took their service down.
Incidents don't ship with severity tags attached. Severity comes out of how many customers you're hurting and how badly. A flapping link nobody depends on is a shrug. That same link under your biggest tenant is a page in the middle of the night.
Two ways to read the same machine.
Never touched a rack? NPC mentors walk you in, and one key toggles jargon mode, flipping the whole interface between plain language and the real terminology over the exact same systems. "Spread these across separate failure zones" and "fix this single-AZ SPOF" are the same instruction. You pick up the real words by playing instead of reading a manual. Already know what oversubscription costs you? The depth was there the whole time. Turn the training wheels off.
Set the difficulty. The hard runs won't let you off.
One difficulty setting, Easy, Standard or Hard, re-tunes the entire simulation from a single neutral baseline, and you can move it mid-run. Push it up and the reputation ledger turns crueller: slower to earn, quicker to lose, less willing to forgive an incident. The authored hard scenarios set their own floor, so the slider can make them tougher but never softer.
Garage-to-Glory is one story, not the only one.
The campaign takes you from a single server in the garage to your own data center floor, growing through a basement build-out and into a room you fill and defend. That's one scenario. Run the hard-mode variant. Survive Data-Loss Day. Hold the line through Under Attack. Or drop into open sandbox and build with no rails at all. Scenarios are plain, readable files, so the community can write their own starts, disasters and constraints and drop them straight in.
This is Early Access. The data center floor is built to grow: add rows and cages to expand it, spread your customers across separate zones, and build real multi-region resilience by hand. More hardware, bigger scenarios and hyperscale scale are on the road ahead.
For the engineers.
You already know whether we mean it. Here's what's under the hood:
Typed ports and cables, with real LAG / link-aggregation across member links
Managed L2 and L3 switches forming an actual switching fabric, not one abstract "network" stat
RSTP that converges, elects a root bridge and blocks redundant ports; loop the network and it storms
Oversubscription that bites when you cheap out on uplinks
Fault domains and single points of failure that are computed, not painted on
Reachability chains from host to switch to demarc to uplink, gating every allocation
Every service split into a control plane and per-host data-plane agents; partition them and it goes headless
Power draw and wear modelling, so hardware ages and degrades instead of tripping a random death timer
Capacity modelled as workload shapes fitting host shapes rather than a scalar bar
Reputation as an asymmetric ledger, with a capacity-fit check before you ever sign
A deterministic engine: same seed, same run, every time, headless-testable and replay-stable
Built honestly.
A deterministic Rust engine runs the simulation, and the renderer only ever shows you what the engine already decided. Nothing gets faked for the camera. Scenarios and mods are human-readable files. Windows, macOS and Linux from day one.
Uptime is in Early Access. The full loop is here and playable now: campaign, sandbox, hard modes, and the customer and service simulation underneath them. Early Access is where the breadth grows on top of that, more places to build, more hardware, more scenarios, and steady polish across art, audio and onboarding, with the direction shaped by what players push on, the infra crowd most of all.
Features
First-person, hands-on - walk the floor, carry the hardware, run the cable. You're in the room, not hovering above it.
Cabling as a hero mechanic - run every link by hand, with typed connectors, enforced reach and bend radius, and a live edge that carries traffic. Pull it and something goes dark. The way Factorio makes belts feel good.
Customers as commitments - reputation earned slowly and lost in an instant, every signup a bet against the capacity you can see.
A real cloud to run - VMs, storage, databases, Kubernetes, load balancers and functions, each with a control plane and data-plane agents on your hosts.
A simulation that pushes back - ports, power, fault domains, spanning tree, oversubscription and BGP are the actual model.
Emergent incidents - severity comes from real customer impact, not scripted labels.
Readable for anyone, honest for the pros - one-key jargon toggle over the same systems, no manual required.
Difficulty you control - live Easy/Standard/Hard that re-tunes everything, and hard scenarios that won't soften.
Breadth of play - campaign, scenario variants, open sandbox, and drop-in community scenarios.
Deterministic and mod-friendly - same seed, same run, plain-text scenario files.
Screenshots
10 imagesVersion Information
Steam Patch Notes
Official update history
Added
Ops console
- The ops console is rebuilt. Every page is one laptop screen from the same parts: a status badge on each row, meters, a sentence saying what needs you, and the numbers behind it on Tab.
- Big fleets stay readable. Lists show 15 rows at a time in a stable order, search the whole roster by any word, and filter through dropdowns you can type into, each narrowing the others.
- Hosts show live CPU load and allocation separately. The meter is what workloads draw now. Allocated is the reserved share, which can pass 100% on an oversold server that is not yet contended.
- Host pools and networks have their own page. A host pool names who it serves and which service. Assign servers to it, and pin customers from the network's drawer or the customer's.
- Network reads your fabric, Internet reads your lines. Network's header is the traffic your servers carry, with fabric use and hot switches. Internet's header is line load against the ceiling your lines and routers set.
- Diagnose the whole site from Home or Incidents. An incident's own Diagnose opens the tenant it hits, or the site check when no tenant is named.
- The shop's cart is an order pad. One drawer holds the lines with prices, where the order lands, the total and Place order. Add leaves it closed, and the catalog scrolls under its tabs.
- Incidents open as steps. Find the cause, get the part when one failed, repair, recover. Each step lights when done and offers its one verb, with the timeline beside it.
Wall displays
- The wall displays are rebuilt as six channels that fit the screen. Security, Finance, Network, Alerts, Capacity and a new Internet channel. Each is one figure, a meter and four instruments in the console's style.
- Network shows your fabric, Internet shows your lines. Network reads the traffic your servers carry, split north-south against east-west. Internet reads WAN out and in against your ceiling, lines, routers and attacks.
- The Alerts channel shows only whole rows. It shows as many incidents as fit its band, spread evenly, so the list never runs into the instruments below it.
Changed
- Yanking a cable takes a quarter-second hold. It was the two-second destructive hold. Tray and hook removal keep the long hold.
- Servers talk to each other more. Traffic between a tenant's own machines is now about half of everything your fabric carries, up from a third, so leaf and spine links fill sooner.
- The fleet traffic totals no longer jump. Total, north-south and east-west on the Network channel and the console header ease toward a new level over a few updates, so one burst no longer steps it.
- Carrier line throughput streams only while the console is open. Each line's traffic used to travel in every world update to every player. It now arrives only while a screen that shows it is up.
Fixed
- Opening a chat, a customer or the map no longer freezes the game. Each used to re-send the whole world and stall a tenth of a second. Now each sends a small update.
- A large campus no longer stutters four times a second. The game recounted the console's fleet totals every tick, console open or not. Now it waits for the console, and the server counts online hosts.
- A server still in your hands no longer counts as dark gear. The console's dark-gear count included unmounted machines, so a delivery in progress read as an outage.
- A router no longer sits idle for the life of your site. With few servers one of an equal pair carried nothing while its twin carried everything. Every tenant now takes its own path.
- A router's port to the security gateway shows the noise it forwards. It read idle on a router carrying no customer traffic, and its twin's port read high by the same amount.
- Storage rebalancing no longer runs on one clock. Every bucket burst together on one timer, so the fabric readout stepped up and back in rhythm. Each now bursts on its own schedule.
- A database on a server's workload list is named as one. Managed database rows read vm-30696, as if they were plain machines. Every row now carries its own kind and number.
- The migrate picker reads memory and disk in the unit you would say. It printed the raw megabyte count, so a large database read "1048576 MB RAM". It now reads "1 TB RAM".
- Setting an item down names the zone you know. The message printed an internal zone number, so on a campus it read "AZ 5" for the third building, as if the item had gone nowhere.
- Servers bought before v0.1.64 now match the shop card. The Memory 2U Dual, Memory 2U, Compute 2U Dual and Mainframe 7U you already owned kept their old cores, power, running cost or category.
Notes
- Every server you own carries its current spec on load, wherever it is. What you paid stays on the books, and a server too full for a smaller shape keeps its own.
- Outbound traffic re-balances across your routers once on load, and a tenant's path moves only when the tenant does. No hardware moves and nothing goes down.
- Your saves load. Saves from v0.1.64 and earlier come across unchanged.
- v0.1.64 cannot open a v0.1.65 save. Once a save has been loaded here, older builds refuse it.
- Client and server must both be on v0.1.65. The network protocol moved, so a v0.1.64 client is refused by a v0.1.65 server and the other way round.
- Two API fields are gone. `egress_gbps` and `ingress_gbps` on each carrier line under `edds`. The same numbers are on the metric stream as `edd:<id>:uplink:<n>:egress_gbps` and `edd:<id>:uplink:<n>:ingress_gbps`.
- One API field is new. `topbar.online_host_count`: the number of servers that are powered, up and reachable through a live line, the same test as each host's `online` flag.
- Thirteen more `topbar` fields are new, all fleet totals. `fabric_egress_gbps`, `fabric_ingress_gbps`, `north_south_gbps`, `contended_host_count`, `warm_host_count`, `fleet_mem_pct`, `fleet_disk_pct`, `busiest_host_id`, `busiest_host_load`, `busiest_host_label`, `racked_host_count`, `cable_count`, `failed_cable_count`.
Added
- Three customers who want memory, not cores. A scale-out database, a cache fleet whose nodes hold no disk, and an analytics tenant whose database needs more memory than any ordinary server holds.
- Three new servers. A Memory 1U, an ARM 1U Dual so a low-power fleet reaches past basic work, and an Everyday Dual for the gap between everyday and high-memory.
Changed
Servers
- Every server now sits where its name says. Compute boxes carry compute memory, everyday boxes carry everyday memory, and each dual-socket version carries a step more. No two servers are the same machine.
- The High-Memory Dual has twice the cores. It was 64 cores against 4 TB, so the memory could never be filled and the box sat half empty. Now 128, and the 4 TB is reachable.
- The low-power line grew. The ARM 2U doubles to 64 cores, and both ARM duals carry more memory, so a low-power fleet is no longer stuck serving only the simplest work.
- Five servers draw less power, three draw more. Draw follows what a box holds, so a compute server costs a rack much less than before and a memory server a little more.
- The everyday 2U costs what it holds. It carries half the memory it did and four terabytes of disk, and its price now reflects both rather than only its cores.
Customers
- No customer demands an uncontended processor any more. No real provider sells one, so the requirement is gone. How hard you oversell is yours alone to decide, on the one fleet dial.
- The fintech and core banking tenants ask for a private server instead. They pay for hardware nobody else touches, which is the thing a provider actually sells.
- A customer's page is five tabs instead of one long scroll. Health, their stuff, performance, money and messages, so what a tenant needs is a glance rather than a hunt.
- Customer requirements now say whether each one is met. Contract terms, service level and growth are separated, and every term carries a Met or Not met verdict instead of a symbol.
- Where a tenant runs now names the zone. Machines are grouped by zone, so a tenant spread across buildings no longer looks like one stacked in a single room.
- You can spread a tenant's copies out from its own page. The action sat only on the incident card, so choosing a fault isolation setting looked like it did nothing.
- A customer's message history fills its tab. It was a sixty pixel window inside a page-long scroll, showing about two messages at a time.
Shop
- The shop shows fewer spec columns on a narrow screen. The least useful columns drop off the right as room runs out, so the name, price and Add stay in view at any size.
- Shop descriptions use the room their page leaves spare. A page whose spec columns are narrow now gives that width to the description instead of leaving it blank.
Fixed
- Quitting to the title screen no longer crashes the game. The world left a pause-state hook behind when it closed, and the next tick from the server could run it against nothing.
- Confirming a two-tap action no longer crashes the game. Arming a host's Quit to title, a save deletion, or any click-again button left a timer running that could fire after the panel closed.
- Ordering from the shop no longer crashes the game. The Buy acknowledgement and the cart quantity box both left a timer behind that could outlive the page you set it on.
- The shop's price, buy buttons and cart no longer sit off the screen. They were clipped away on any window short of full width, so the shop often could not be bought from.
- Shop descriptions no longer print outside their row. The second and third lines fell through onto the row below, and the text was cut short even where there was room for it.
- Ops console pages no longer run off the right edge. Headline numbers, sub-tab strips and caption text wrap to fit, so nothing is cut away at any window size or interface scale.
- A customer's page fits whatever the tenant is called. Evict tenant, the performance charts and the message cards were pushed out of view by a long name.
- The mouse no longer sticks in the top-left corner. Above 100% interface scale, with a controller plugged in, the pointer pinned itself to the corner in menus.
- Touching the mouse takes control back from a controller. The pad steers the pointer only while you are using it, and a plugged-in pad no longer moves it on its own.
- Server info cards show the right specs. Nine listed the wrong cores, memory, disk or power. The everyday 1U and 2U, both large storage servers and the low-power 1U had never matched what you bought.
- Opening a customer with no incidents no longer shows the last one's. The list kept the previous customer's rows, so a healthy tenant looked like it had an open incident.
Notes
- Load once and your fleet is corrected. Servers that fit the new memory keep running untouched. Any that no longer fit are traded in, free, for a bigger one.
- Nothing is charged and no server loses cores. A trade-in always keeps the machine's core count and its rack height, so nothing you were running gets less processor than it had.
- Only three servers hold less memory than before. The Compute 1U and 2U and the Everyday 2U. Every other change adds memory or cores.
- Low-power servers you already own get bigger, free. The ARM 2U doubles its cores and memory and the ARM Dual doubles its memory. You keep what you paid, and the new size applies on load.
- A server keeps what you paid for it. Trading one in does not change its purchase price on your books.
- Your saves load. Saves from v0.1.63 and earlier come across.
- v0.1.63 cannot open a v0.1.64 save. Once a save has been loaded here, older builds refuse it.
- Scenarios still decide what you can own. An ARM-only run is never handed an x86 server, and a trade-in is refused outright if your site has not unlocked the replacement.
- The uncontended pool is removed from your save. The segment the game made for it goes on the same load, along with its network id, and any server pinned there rejoins the fleet.
- A tenant that needed a 1:1 processor now reads as needing a dedicated server. Open "cannot be served" incidents are relabelled on load, and clear themselves if they no longer apply.
- The Uncontended compute article has left the encyclopedia. Overselling CPU and Private servers cover what is left of the subject.
- Three API fields are gone. `requires_uncontended` on customers and prospects, and `uncontended_hosts_available` on prospects. Nothing replaces them, the requirement no longer exists.
Fixed
- Alt-tabbing back into the game no longer crashes. Menus left a text-repaint hook behind when they closed, and the next language or engineer-mode change could run it against a menu that no longer existed.
- J-hooks, risers and rack-top managers are priced per piece. The v0.1.61 shop stamped "per metre" on every cable-management item; only trays and floor runs are sold by the metre.
Shop
- Shop columns line up. The description takes the width your screen has, the numbers sit in one block that starts in the same place on every section, and Logs and Add-ons no longer collide.
Dedicated server
- A Sandbox server starts where you say. `--site basement`, `--site small_colo` or `--site small_campus` beside `--scenario sandbox` builds the sandbox at that site, the same choice the New Run screen offers. A server sandbox was locked in the garage before.
Notes
- Your saves load. v0.1.62 saves come across unchanged.
- Dedicated server flags. `--site ID` is new and applies to `--scenario sandbox` only.
- v0.1.62 and v0.1.63 can play together. The wire did not change.
Fixed
- You can walk and look again after loading in. v0.1.61 counted a hidden debug overlay as an open menu on every shipped build, so the cursor was never captured and movement stayed frozen.
Notes
- Your saves load. v0.1.61 saves come across unchanged.
- v0.1.61 and v0.1.62 can play together. The wire did not change, so a mixed session still joins.
Changed
Attacks
- An attack lands on one zone. A flood arrives over that zone's carrier lines and hits that zone's router; the other zone's edge, defences and tenants see none of it.
- Each zone under attack gets its own incident. Two zones under fire are two cards, each resolving when its own edge is clear. The incident names the zone.
- A tenant spread across zones keeps serving from the calm one. Only their machines in the attacked zone fail requests, which is what spreading across zones buys you.
- Attacks aimed at a tenant arrive where that tenant lives. A flood drawn by a customer hits the zone holding most of their machines, and another zone can draw fire meanwhile.
- The security board lists each attack with its zone. The attack line reads one row per zone under fire instead of one facility total.
Shop
- The shop is a list, not a pile of cards. Each section shows every item in one scrolling list with a picture on the left and the numbers in columns. No more page flipping.
- Every item says what it is in both voices. The description sits under the name in plain and engineer mode alike; a long one shows in full when you hover it.
- Column headings match your voice. Plain mode reads "Traffic it can carry (Gbps)" where engineer mode reads "Fwd G", and engineer-only columns stay out of plain mode.
Dedicated server
- Unreleased scenarios cannot be hosted. A server refused only single-player scenarios, so the ones locked in the menu could still be served. The scenario itself now says whether it is released.
- Players find a tunnelled server again. A host can name its public address, so Favourites and History record the tunnel endpoint instead of the machine's private one.
- The load line names the mode. A world loaded from a save says whether it runs hard mode, and a `--hard` on that line is ignored and says so.
- A guest's win counts against the server's mode. Joining a hard-mode server now records the win to the hard-mode board, not to whatever the guest's own menu said.
Fixed
- The Arms Race victory screen shows for every earlier winner. v0.1.60 re-armed the campus finish, but a save loaded on v0.1.58 or v0.1.59 was already past its check. Load once and it shows.
- A router with no carrier line shows no internet traffic. Cabled into a firewall's WAN side without a line of its own, it read a steady inbound figure while everything behind it sat idle.
- A zone outage lights that zone's rack. The incident beacon for a dark zone marked the first zone's router whichever zone had gone down.
- The delivery robot's wheels turn the right way. They spun backwards while it drove forwards.
- The delivery robot is there after a move. Relocating to the next site could leave the robot missing until a reload, because the new site's robot was seeded into the old room.
- A second press on a buy button registers. Buying a module twice within a few seconds swallowed the second press, so the purchase took two goes.
- Cable trays show their price. A tray is priced per metre of run and the shop showed $0 for every one.
Notes
- Your saves load. v0.1.60 saves come across; an attack in progress at save time lands on your first zone and still ends on schedule. v0.1.61 saves do not open in v0.1.60.
- Multiplayer needs everyone on v0.1.61. The wire changed, so an older client is refused at join.
- Dedicated server flags. `--public-addr HOST:PORT` is new and dedicated-only.
- Scenario beats can name a zone. `Ddos` and `Attack` scripted events take an optional `az_id`; without one they land on the first zone with a live router.
- API: `ActiveAttackView` gained `edges`, `IncidentView` gained `az_id`. `edges` lists each attack with its zone; `summary` and `components` total across them. A `Ddos` incident's `root_entity_id` is the zone id, not 0.
Fixed
- Large sites no longer crawl. Since v0.1.53 every port light flicker re-sent its whole device to every player; a full campus fell below 10 fps. Lights now ride the telemetry cycle, plugs show at once.
- Arms Race finishes at the campus for players who won before it existed. Keep Playing on the old finish no longer disarms the new one, so the victory screen and the hard-mode unlock arrive.
- A campus robot takes its own building's lanes. Stood at the last row, its console listed the next building's rows and drove it there.
- J-hooks go up after a move. Placing a cable tray at the data center or campus refused with "AZ #1 not found" on any run that had relocated.
- Comms channels load when you pick them. At the campus, choosing a channel or customer waited for the next notification before its pane painted.
- An object-store growth ask says what it asks for. A "+2200 GB" request was the whole bucket restated; the card now shows the disk the ask adds across its copies.
- A storage ask the fleet has no disk for is refused, not applied. Approving it used to grow every copy past what any server could hold; the card now says to add hardware first.
Notes
- Your saves load. v0.1.59 saves come across unchanged.
- An old Arms Race win re-arms on load. If your campus already meets the finish, the victory screen shows once on that load. Keep Playing afterwards holds as before.
- Multiplayer needs everyone on v0.1.60. The wire changed, so an older client is refused at join.
- API: `PortFlowView` gained `activity`, `DeviceFlowView` gained `ports_complete`. `PortView.activity` changed meaning: current only as of its view. The live band is on the flow row; a port absent from a complete row is idle.
Added
- Run a dedicated server of your own. Uptime Dedicated Server is a free tool on Steam. It keeps a world running and saved while nobody is on. You join it from the Join screen.
- The server keeps the world. Everyone who joins is a guest. The owner names admins, who can save the world now, switch everyone to another saved world, or upload one of their own.
Changed
- A server that loses a memory module sheds what no longer fits. Workloads move to a server with room; anything with nowhere to go is lost, and the incident timeline says which.
Fixed
- The delivery robot no longer stands in the void. A bad resting position used to be saved and followed forever. A reload parks every robot on its dock, and none follows a position outside its building.
- Buying a campus building gives it a working robot at once. The second and third buildings' robots used to be props until the game was reloaded.
- Moving to the campus leaves the old site's robot behind. It used to travel in the old room's coordinates.
- Servers no longer show more than 100% memory. New workloads now count the management agent's growth, and a server booked past its physical memory is corrected on load and on the next tick.
Notes
- Your saves load. v0.1.58 saves come across unchanged. A robot standing off the map goes back to its dock; a server booked past its memory is corrected once the network is live.
- A reload parks every robot on its dock. The load discards the saved resting position, so a robot left mid-aisle starts the session at its dock. Boxes aboard stay aboard.
- Multiplayer keeps working across v0.1.58 and v0.1.59. Nothing on the wire moved; the join handshake gained an optional field an older client ignores.
- API: `HelloOk` gained `server_addr`. A dedicated server reports its public address and query port on join so the client can keep it in Favourites.
- API: `mem_pct` on a rack row is unclamped by design. It reads requested memory over physical memory, and the engine now keeps it at or under 100.
Added
- Parts wear out and fail. Supplies, fans, disks, memory and processors on every server, switch, gateway and firewall have their own life, shortened by load, heat, a messy rack, power cuts and factory duds.
- A dead part has a real cost. One of a pair degrades the box; the last of its kind takes it down until replaced. A box with no working supply goes dark.
- Repair from the console. Walk up, press E: the Repair tab lists every part, orders the replacement, shows the delivery and runs the swap. Common parts arrive within the hour, processors within five.
- The incident tracks it too. Order the parts from the incident card or the console, and every step lands on the incident timeline. Start repair waits for the part to arrive.
- The lamps tell you. A red power lamp on a server, the alarm lamp on a switch, gateway or firewall, and the dead supply's own rear lamp solid red with the others flashing.
- Scenarios can script a failure. A campaign can kill a named part at a set time, so the first dead supply arrives when the story wants it.
Fixed
- Buying works in the basement again. Moving in from the garage left no delivery zone, so every order was refused and the rack read "Not for sale". A stuck save is repaired on load.
- The delivery robot no longer starts at the world origin. After a move it stood at the map corner for everyone. A save that lost it heals on load.
- A server with a dead power supply no longer comes back on its own. It used to serve again after four hours with the failure still open, and that incident could never be closed.
Notes
- Your saves load. v0.1.57 saves come across: every device gets its parts on load, and a server stuck by the old power-supply timer is brought back, or held down if its supply is dead.
- v0.1.58 saves do not open in v0.1.57. Parts now record which device they sit in. Going back means keeping a copy first.
- Everyone in a session needs v0.1.58. The wire moved with it, so v0.1.57 cannot join and says so rather than misreading the world.
- API: parts moved off the host console. `HostConsoleSnapshot.components` is gone; `InspectParts` returns a `PartsSnapshot` for any device, with `life_hours`, `swap_count` and `held_reason`. `BuySpare` became `OrderPart`, `CancelPartOrder`, `RepairPart`, plus `OrderIncidentParts`.
- API: lamps and incident parts on the wire. `HostVisual` gained `fault`, `psu_failed`, `psu_dark`; `SwitchView`, `GatewayView`, `ApplianceView` gained `psu_dark` and the gateway an `indicator`; `IncidentView` gained `parts`.
Added
The campus
- A new site with three separate buildings. Pick Campus in the sandbox configurator. You move in owning one, and buy the others when you want them.
- Buying a building and buying floor are separate decisions. A cage is still eight racks. A building is a whole structure with its own zones, robot, laptop and carrier line, at its own price.
- Each building takes eight cages, bought in any order. Expand the second building while the first still has room. The relocate panel lists a row per building with its own Buy cage button.
- Every building has its own delivery zone, sell zone, laptop and robot. Orders land in the building you bought them from, so a crate is never waiting on the far side of the site.
- Orders go to the building whose laptop you are at. That is the default and it follows you, so walking to another building and buying delivers there.
- Pick a different building whenever you want. A chip on the shop shows where orders are going and changes it, and your choice sticks until the cart is emptied.
- The whole basket goes where the basket says. The delivery target belongs to the shared cart, so everyone filling it sees the same destination.
- Each building's carrier rack arrives with it. Buying a building commissions its zone and its uplink rack; the floor inside starts empty.
- The campus runs a 4×100G carrier handoff. 400 Gbps per building, one border per building, a tier above the colo's.
- Your own fibre between buildings is 400 Gbps. You own the ground, so the trunk between your buildings matches a building's handoff rather than a rented provider link.
- The campus is the campaign's next stop, after the data center. Garage to Glory continues once you have grown enough to afford it, with its own arrival and farewell beats.
- Winning at the campus takes 400 customers and $2M a month. Hard Mode raises that to 800 customers and $10M. The data center is a stop on the way now, not the finish line.
Hard mode
- Hard mode is a toggle on a campaign, not a separate scenario. Pick a run, then Launch Hard beside Launch. Everything about the run is the same except the numbers.
- Win a campaign on normal to unlock its hard mode. The button is there from the start and says what unlocks it, so you can see what you are playing for.
- The Arm Race has one too. Garage to Glory and The Arm Race both offer it; the toggle appears on any campaign that does.
- In multiplayer the host decides. If the host has unlocked hard mode, anyone can join the run.
- Hard saves are labelled in the load list. A HARD tag on the row, so two saves of the same campaign are told apart before you open either.
Streamer mode
- Steam names and avatars can be hidden on screen. Turn it on in Settings. Yours, everyone in your session, and your friends list on the Join screen all become neutral labels, safe to capture.
- Everyone keeps one label wherever they appear. The same player reads the same on a nameplate, in the roster, in the lobby and on a join prompt, and keeps it across a reconnect.
- The switch takes effect while you are looking at the screen. Rosters, nameplates and the signed-in corner repaint the moment you flip it, so you can turn it on after you have gone live.
Changed
- Masked player ids show five digits. On the leaderboard, in join prompts and in your log file, so two players are far less likely to read as the same person.
- New leads arrive faster. The fastest is a minute apart at zero reputation and thirty seconds at full, in every campaign, normal and hard alike. The demo keeps its own pacing.
- Relocate takes one press now. The button moves you immediately on the standard schedule; a smaller Options button next to it still lets you pick a different one first.
Fixed
Relocation
- The laptop console closes when you relocate. It used to stay open on arrival, showing your old site's dashboard over the new site until you closed it yourself.
- Relocating covers the screen while the new site loads. No more stalled cursor over the old site; the chapter title now plays over the cover, not on top of the world it already revealed.
Reputation
- Reputation messages report the actual change. All six read "0", gains and penalties alike, because moves smaller than a hundredth were rounded away before reaching the message.
- Auto-approving growth no longer earns reputation. With the standing approval on, every request settled itself and paid out, so standing climbed while you did nothing.
- Hard mode reputation now cuts both ways. Earning it back from clean service, an absorbed failure or a resolved incident slows down with difficulty too, not just the ways you lose it.
Multiplayer
- The roster and the nameplates agree on a player's name. The roster used the name a player sent about themselves, the nameplate used the one Steam resolved, so one player could read as two.
- A join prompt no longer shows a 17-digit Steam id. Accepting an invite mid-run named the host by their raw account number instead of their name.
- "Player 2" is translated. The fallback used when a name has not arrived yet was English in every language.
Networking
- A breakout trunk reports what it carries. A 100G handoff fanned into 4×25G read 25 Gbps on the source port, showing one leg instead of the four together.
- The port reads the same wherever you look at it. Hovering a port in the world and opening it in the rack inspector could give different speeds on a breakout.
- An idle router says so in plain terms. A live line whose router carried nothing read "NO PLANE" in engineer mode, which is not a term anyone uses. It now reads "IDLE".
- A scheduled carrier cut always hits the line it targeted. In hard mode, swapping out your internet gear before it fires no longer sends the outage to the wrong line, or drops it silently.
- A host's power and module inlet ports show a real label. They used to read as an Ethernet port stuck at 0 Gbps in the rack inspector; now they name what they actually are.
Menus
- The demo is gone from the scenario list. It was showing as a locked row in the full game, where it is not something you can play.
- Deleting a save no longer writes an error to your log. The undo timer on the delete button reported a freed reference once the row had gone.
Controls
- E and Q stay out of the pause menu. E opened the laptop console behind the menu and dropped you into the world, Q stepped you out of the rack you were inspecting.
Saves
- A completed save no longer reports failure. Saving could finish correctly and still tell you it failed, with nothing in the message to explain why.
- A loaded save keeps its event log. Reopening a game used to drop almost every entry from your recent events feed. It now loads complete.
Notes
- Your saves load. v0.1.56 saves come across and every crate waiting in a delivery zone is filed to the building it was in.
- Campus saves keep their racks. A cage covers different slots now, so loading opens whatever cages your placed racks stand in. Nothing moves and you are not charged.
- v0.1.57 saves do not open in v0.1.56. The save format moved to record which building a delivery is waiting in. Going back means keeping a copy first.
- Everyone in a session needs v0.1.57. The wire moved with it, so v0.1.56 cannot join and says so rather than misreading the world.
- The old Hard Mode scenario is off the New Run menu. Existing hard-mode saves still open and still get balance updates; the campaign's own hard toggle replaces it for new runs.
- The faster leads reach campaign saves already in progress. A campaign takes its scenario's pacing on load. A sandbox keeps the sliders it was saved with, so set the faucet yourself there.
- Hard-mode unlocks live with your career stats. They follow your Steam Cloud saves rather than a single machine, and two machines played offline merge rather than one overwriting the other.
- Streamer mode is off until you turn it on. It is per machine, not per save, and it stays on until you switch it off.
- It protects your screen, not your session. The people you are playing with still see your Steam name, because that is how Steam joins work. Lobby chat text is not covered.
- A queued outage from an old save is cleared, not misfired. The one-time load repair also drops any scheduled internet cut you had pending under the old save format. Nothing else about your fleet changes.
- API: reputation event facts changed unit. The `gain`, `loss` and `amount` facts on reputation events in `msg_args` are percentage points now, not fractions. A 0.005 move reads as 0.5.
- API: `DeliveryView.az_id` changed meaning. It read 0 for a box in a delivery zone; it now names the zone's building for every location.
- API: `BuyHost`, `BuySwitch`, `BuyGateway` and `BuyAppliance` take an `az_id`. Optional, matching `BuyRack`; when omitted it defaults to your first building, so nothing existing breaks.
- API: `SiteSpecView` gains `expansion_unit`, and `cage_capex_dollars` is per site now. A cage's cost was one global number; it now varies by site the way the campus needed it to.
- API: new fields. `WorldSnapshot.rack_slot_unlocked` (owned floor slots, per slot), `WorldSnapshot.hard_mode` (is this run the scenario's hard mode), `CartView.delivery_az`, and `CageOfferView.buildings` with its per-building rows.
- API: hard mode on the session. `Hello` takes an optional `hard_mode`, refused for a scenario that offers none rather than served as a normal run. Scenario listings gain `supports_hard_mode`.
- Other sites are unchanged. The colo still buys cages at the same price into one hall with one pallet, and the garage and basement are untouched.
Added
Languages
- Norwegian and Finnish, both experimental. Pick either in Settings. Every screen is covered, and the engineer wording behind Tab reads as its own thing rather than a copy of the plain wording.
Changed
Reputation
- Serving customers well through a whole month earns reputation. Weighted by what each one is worth, so keeping the bulk of your book happy moves your standing further than keeping a small account happy.
- A clean hour is worth the same whatever your standing. Last release each paid less the higher you already were, so past a point one breach cost more than a clean hour earned.
- Putting an incident right earns reputation. Scaled by how much of your floor was affected and how fast you closed it. Fixing things paid nothing at all before.
- A failure nobody noticed is worth the most. When redundancy carries a dead switch or host with no customer affected, that pays more than recovering from one that hurt somebody.
- Regulated customers count for more. Carrying a SOC2, HIPAA or PCI tenant cleanly through a period earns above the standard rate.
- Long-standing customers keep paying. A tenant past three months that is still served cleanly adds to what its clean period is worth.
- Having room when a customer needs to grow earns reputation. Approving a growth request now counts toward your standing, not just that customer's trust.
Fixed
- A busy server's console no longer grows off the screen. Its isolation line listed one segment per tenant on one line, so the card widened with every customer until it slid under the rack panel.
- The controls on a console's right edge take clicks again. Once the card slid under the rack panel, that panel ate them, so maintenance mode, NIC teaming and module upgrades read as dead.
- Plain mode keeps the console on screen. The longer wording widened the same card until its scroll bar sat past the edge of the screen.
- The comms panel stays shut while paused. Pausing hid it, then pressing the comms key opened it straight back over the full-screen menu.
- Active DAC is offered on every copper cage. The 100G and 400G ports left it out of the cable wheel while 200G offered it, so the choice moved depending on which port you started from.
Notes
- Reputation you have already earned is untouched. The new sources start paying from your next billing period, incident and growth approval; nothing is recalculated.
Fixed
The delivery robot
- The delivery robot sets off on the first press. Picking a destination left it turning on the spot and beeping, and it took a second press to go anywhere.
- Redirecting the robot no longer sends it backwards first. Changing its destination just after it left the shipping zone made it drive back the way it came.
Status lights
- A box with no power cord shows a dark front panel. Switches, routers and appliances sitting unplugged still lit their power, PSU and fan lamps.
Bonding through a patch panel
- A lead that reaches nothing can no longer be bonded. Two leads into an unpatched panel looked identical, so the game bonded them and broke it once you finished patching.
- The Network lens stops offering bonds it would then refuse. The same pair of unpatched leads was proposed as a bond, captioned with the panel rather than a switch.
- Switching a link between L2 and L3 shows up straight away. The console kept showing the old mode until you reloaded, and automatic conversion redrew nothing at all.
Switch pairs
- Taking a switch out of the rack ends its pair. Two paired switches could be unplugged, unracked and still count as a cluster, so neither could be paired with anything else.
- A switch-pair alert can be cleared again. One raised before a save stayed on the alarm strip forever afterwards, with nothing the player could do to it, even once the pair was repaired or gone.
Cabling
- A port you can see is a port you can cable. Reaching straight for a jack could be refused as inactive for a second, because the pins were drawn before the port list arrived.
- The wall rack's cables leave through its own holes. Runs clipped to its openings were drawn against the floor racks' managers, a few centimetres out in front of the gear.
Setting things down
- A box set down at a rack no longer ends up inside it. Aiming at the top of a short cabinet dropped it at floor level inside the footprint, unreachable.
Racking
- The view follows the slot you are aiming at. The camera panned on different maths from the one seating the preview, so they drifted apart toward a cabinet's ends.
Isolation
- An isolation you built stays the size you built it. A guaranteed-1:1 tenant pulled open machines into its isolation one an hour, evicting everyone else, until the floor was reserved.
- CDN and Load Balancer can be reserved from the Isolation page. The job picker stopped at Kubernetes, though the host console offered all seven and the game accepted every one.
- The machine picker holds its place while you scroll. On a busy site it snapped back to the top about once a second, because work elsewhere redrew the page.
- A server no longer holds work it would refuse. Reserving servers for a tenant, or moving a tenant between segments, could leave machines running workloads they rejected on the next drain, failover or move.
Availability zones
- A new zone's first circuit no longer reads full when bought. With no router in that zone it took the site's traffic and warned of saturation with nothing plugged in.
- "Spread across zones" now spreads across zones. The button on the multi-AZ warning opened the tenant's page and did nothing else, so the warning stayed up however many times you pressed it.
Incidents
- A denial-of-service incident closes once the attack is over. It could sit open all session with the flood long gone, held there by any tenant that was merely slow.
Quests
- Quest titles no longer break mid-word. The reward beside the title took whatever width it wanted, leaving too little for long words. Worst in German.
Reputation
- Reputation says why it moved. A clean hour, an hour with breached agreements and a quest payout each post their own line now. The bar used to slide with nothing at all to read.
- A top reputation is harder to earn. A clean hour now closes part of the gap to a perfect score instead of a fixed step, so the last stretch takes real work.
- A clean run reads as one line. Consecutive breach-free hours now update a single entry with the running total instead of filling the log an hour at a time.
Pricing
- Functions are priced like the rest of the catalogue. Their compute billed 200 times what the same memory costs on a virtual machine, so a mid-sized tenant ran to $99 an hour instead of $9.
- The spend ledger counts SLA credits again. Money handed back to tenants for breached agreements was missing from your lifetime costs, while each tenant's own card showed it.
Tenants
- The spread button says why it cannot help. A tenant whose copies were already on separate machines but wanted separate zones was told there was nothing to move.
- Passing on a customer you cannot serve costs nothing again. Turning away a prospect the game itself called impossible to sign still docked your reputation as though you had refused good business.
- A cluster that cannot fit stops asking for more servers. A Kubernetes tenant on a full floor added servers every minute without noticing none were stood up, reaching thousands.
- Approving growth stops at what you are running plus the ask. Only virtual machines were held to that; every other kind was approved in full however far ahead.
- A service whose control plane is down says so on the tenant's card. Virtual machines and databases kept showing the count from before the freeze, with no sign that nothing new could be scheduled.
Multiplayer
- A player who stops receiving is now disconnected with a reason. The host noticed and logged it, then left them watching a world that had stopped arriving, which looks exactly like the host quitting.
Connections
- Running out of file handles no longer stops the engine. It could exit outright or spin writing the same error; it now refuses what it cannot serve and carries on.
Security
- Every audit recorder now adds its drives to the pool. Retention read the biggest recorder rather than all of them, so eight held as much history as one.
Devices
- Renaming a device works outside English. The new name never took, in every language but English, because the command's own tag was being translated along with the label.
Notes
- Machines taken by a runaway isolation stay put. Saves made before this keep them, and you can release them from the Isolation page.
- Boxes already stranded inside a rack stay there. Nothing in a save records that a box is inside a cabinet, so they cannot be found and moved out.
- Routing out through the wall rack's bottom opening is still refused. That half is not fixed yet.
- A runaway contract is cut back when the save loads. A tenant asking for more machines than your site could hold is trimmed; one waiting on hardware is untouched.
- Load once to heal. Any workload sitting on a server that will not admit it is moved to one that will. Nothing else moves, and a site with no reserved servers is untouched.
- Stale switch pairs clear on load. A pair whose members are no longer racked is dissolved. A pair with a member powered down, or with its peer link cut, is left alone.
- Lifetime SLA credits are restored on load. Saves written before the ledger tracked them get the total back from the tenants still on your books. Credits from tenants who have left are gone.
Added
- A version mismatch is now caught in the lobby. You are told which side needs to update, and both version numbers, while the host is still on screen.
Fixed
Carrying and building
- A carried box no longer vanishes from your hands. A refusal from an unrelated action could silently drop the carton you were holding, leaving it drawn nowhere and impossible to pick up again.
- Racking a server no longer strips the one beside it. Blanking plates, network cages, plugs and fan blades on an existing identical machine went missing until you walked away and came back.
- Mounting a rack in a full room no longer stutters. Every cable in the room was rebuilt about a second after the rack landed, however far away from you it was.
- An item is released when the player carrying it leaves. In multiplayer, a machine someone was holding when they disconnected stayed stuck in their hands on every other screen.
Tenants and capacity
- A profitable tenant can no longer be shown as making a loss. Margin, unit counts and hourly revenue now refresh when they move instead of waiting for something unrelated to change.
- The overcommit dial keeps the value you set. Dragging it applied the new setting, but the control read back the old number until something else on that machine happened to change.
- A machine's tenant list no longer goes stale. Which customers run on a server now updates when a workload lands, rather than when its processor use crosses a whole percent.
- Reserved hardware now holds object storage too. Dedicating hosts to a tenant's segment had no effect on their buckets, and the setting was erased the next time you loaded the save.
- Buckets on reserved hardware stop reshuffling every hour. Shards were released and re-laid onto the same hosts once an hour, for the life of the save.
- A database's backups now spread away from the database. They were placed by database rules, which pinned them onto the same reserved hosts as the database they exist to protect.
- A database's backup storage is now labelled as such. On host consoles it appeared as ordinary object storage, indistinguishable from a bucket the tenant had bought.
- Migrating a workload moves the one you clicked. With two of the same kind on one machine, the button moved whichever came first and reported the other.
- The migration list stops offering hosts that will refuse. A row could read as available and then fail on click, for any workload with more than one copy.
- Reserving hardware no longer claims nothing happened. When the reservation could not finish it reported no change, having already moved workloads around the fleet.
- Data residency now counts toward a database's copies. A region-pinned tenant was told it had zones available in regions it could never place into, so its copy count never added up.
- A wave of host failures no longer empties your reputation. Losing a rack charged for every tenant on every machine with no hourly limit, while the only steady gain was tiny.
- A tenant that never noticed an outage no longer costs you reputation. A failing host charged you for every tenant on it, before the game had worked out whether failover saved them.
- The failure count in an outage alert is now real. It only ever counted serverless requests, so every other kind of tenant was told zero requests failed while their reputation dropped.
- A tenant's isolation requirement now says what satisfies it. It read as a network term while it needed hosts reserved to that tenant's segment, so you could meet every stated condition and stay unmet.
- A tenant's hourly revenue reaches players who are catching up. A guest running behind could hold an old figure for a customer indefinitely, with no way to tell it was old.
Network
- A carrier handoff can only be cabled to a router. Wiring one straight into a firewall, or through a patch panel, used to be accepted and drawn as live while carrying nothing at all.
- Port tooltips show throughput again. Hovering a port read zero traffic beside a correct link speed, on every port, since the last release. The console was always right.
- A patch panel coupler shows what it is carrying. Panel ports stayed blank because the figure was never sent for them, though the panel was measuring the traffic all along.
Multiplayer
- A refused join now tells you why. A session that turned you away used to drop the connection with nothing sent back, which looked the same as the game hanging on the loading screen.
- Leaving a session clears it properly. Quitting, being kicked or losing the link left part of the old session behind, so a later attempt to join a friend could do nothing.
- Choosing a scenario no longer closes the panel on you. When the setup list failed to load, the host's picker shut with no explanation instead of saying it could not reach the game.
Changed
- Joining a large site is lighter. Keyframes dropped by a quarter on the wire once eleven unused fleet counters stopped being sent on every one.
Notes
- Older saves load unchanged. Nothing about the save format moved in this release.
- Everyone in a session needs this version. The network protocol changed, so a host and guests on different versions will not connect.
- Illegal carrier cables are removed on load. A handoff wired to a firewall or through a patch panel is taken out when the save opens, with no refund. Nothing else is touched.
- The public API drops `topbar_history`. Its eleven fleet counters had no reader; the surviving power series is served by the metric subscription instead.
Current Release
Build 25257394
Uploaded Sep 11, 2026
System Requirements
How to Install
Uptime.exe to play
Troubleshooting tips
• Run Redist/_CommonRedist installers if game won't start
• Add folder to Windows Defender exclusions
• Run as administrator
Download
Direct link available
Needed when extracting (WinRAR / 7-Zip) — not a site login.
9C91FA3D
9c2424078a368e9307c2869e0341307a518a384898c815779ff47ffdca995af9
You May Also Like
View AllDownload Uptime: A Cloud Provider Sim for PC with a direct link or via torrent. Get the full version of Uptime: A Cloud Provider Sim for free. Uptime: A Cloud Provider Sim is a Indie released by RubyRack Games.