Status
SteamPeaks
ChartsSalesUpcomingPatchesEventsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
EventsSteam's own events and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesEventsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
An Unreasonable Number of ZombiesEventsController Support
Community

Controller Support

An Unreasonable Number of Zombies · published 8 Sep 2026, 17:55 UTC

All eventsPlayers around this dateRead on Steam

The (pre-release) demo now plays start to finish on a controller. Menus, the city map, all seven districts, the pause screen, the upgrade tree. No point where you have to reach for a keyboard or a mouse. That sounds like a small thing...but it wasn't, and the reason is worth writing down, because this game is not built the way most games are.

The map

Harbor Gate is the exception, because it is the one district with no guns in it. Nothing to aim at means the right stick has no job, so the whole console is on the face buttons instead.

And the same map on a PlayStation pad

The labels never say a button name - they say RELOAD and SWAP WEAPON - so the only thing that changes between the two sheets is which glyph set draws them.

Prompts follow the device, not a setting

Every on-screen prompt resolves from a semantic action rather than a hard-coded key. The upgrade description does not say "Press 6", it says "Press {action:UPGRADE_STEADY_HAND}", and the prompt layer decides at draw time whether you see a 6 or an L3 glyph.Three things fall out of that, and all three matter more than they sound:

  • Rebinding does not break your prompts. Move reload off X and the prompt moves with it, because the prompt asks "what fires RELOAD right now" instead of carrying a printed key.

  • Nineteen languages did not need retranslating. The token sits inside the already-translated sentence, so every locale kept its own prose and only the key reference changed. A glyph is language-neutral.

  • Nothing shows you a key your device does not have. The pause screen used to say ESC to everyone, including on a Deck, which has no ESC key. Steam Deck sets an environment variable that the game reads through the desktop shell, so on a Deck the prompts are controller prompts from the first frame, before you have touched anything.


The button art is Valve's own Steam Input glyph set, so the buttons you see in game are the buttons Steam itself draws. There are two families in the build now, Xbox and PlayStation, and the game picks one by reading the pad's vendor ID on its first press. One caveat worth knowing: a PlayStation pad that has been opted into Steam Input is handed to the game as a virtual XInput device, so it reports as an Xbox pad and gets Xbox glyphs. That is Steam's doing, not a bug we can see from inside.

Rebind anything: Pause, then Controls

Every action in the game is in one list, grouped by where it applies, with its current binding beside it. Click a row, press the thing you want, done. A few details that took longer than the feature itself:

  • Actions live in contexts. Chapel Hill's reload and Harbor Gate's pull
    were both R on a keyboard, and that is fine, because you are never in both
    districts at once. The binding store knows which context an action belongs to,
    so it only reports a conflict when two actions in the same context want
    the same input.

  • Some actions cannot be left unbound. Anything the demo cannot be
    finished without is marked required, and the screen will not let you strand it.

  • F11 and the dev keys are fixed. Fullscreen has to keep working even
    if you have rebound everything else.

Keyboard, mouse and pad all work at once

This is Valve's own guidance and it is worth being explicit about: there is noinput mode switch in this game and there will not be one. Nothing gets disabled when you pick up a controller. Play with a pad and reach over to click something with the mouse, and both work, in the same second. The only thing that changes when you pick up a pad is what the prompts say. A controller sitting idle on your desk will not do it. The game waits for an actual press or stick deflection before it decides the pad is driving, so a mouse player with a pad plugged in never sees glyphs they do not want.

Menus are navigated, not aimed at

Here is the part that is genuinely unusual about this game's insides. The whole interface is a document. Every HUD panel, shop row, upgrade node and pause row is a real element on a page, not a widget in an engine's UI system. That is great for building things fast and terrible for a controller, because a page has no concept of "the next thing down". So the game grew one. When an overlay opens, the input layer reads that overlay's actual laid-out geometry and works out what lies up, down, left and right of whatever is focused, scored so that straight ahead beats diagonal. It is not tab order, because tab order walks a grid in an order your eye does not. Two bugs from building it, for anyone who has done this before and winced:

  • cursor:pointer is inherited. Discovering clickable things by their
    cursor style also finds every word inside them, and then "innermost wins" throws
    away the row that actually carries the click. The focus ring hopped across the
    two words in a button instead of outlining the button.

  • A row scrolled out of a pane is not hidden. Skipping anything outside
    the viewport made everything below the fold permanently unreachable, because the
    thing that scrolls a row into view only runs once that row has focus. Which it
    could never get.

Steam Deck

Type sizes are the real work, and they are not finished. Valve's rule of thumb is a 24px minimum at 1920x1080, and a lot of this game's UI was authored at 10 or 11px because it looked right on a monitor. That is unreadable at arm's length on a 7 inch panel. Menus, the pause screen and the upgrade tree are on the new scale; the district HUDs are going up next. Valve's glyph set has no stick-click art either, so L3 and R3 - SLOW-MO and OVERDRIVE - are drawn here on the same pixel grid as the rest of the set rather than shown as a labelled plain stick. There is also no text entry anywhere you need it. The feedback form in the pause menu has an optional comment box, and it hides itself when a controller is driving, because a rating on its own has always been a perfectly good report.

What is not done

Being straight about it:

  • The PlayStation glyphs have not run on hardware. The art is in and
    detection is wired, but no DualShock or DualSense has been near it. If you have
    one, the feedback form in the pause menu is the fastest way to tell us.

  • Switch glyph art is not in. The system takes glyph families, so it is
    art and a vendor ID, not a rebuild.

  • Type sizes are only part way up. Menus, the pause screen and the
    upgrade tree are on the new scale. The seven district HUDs are still being
    raised district by district, and none of it has been read on a Deck panel yet.

  • Steam Input's own configurator does not yet see this game's verbs.
    That needs an in-game actions file, which is the next piece. When it lands, the
    Steam config screen will list SLOW-MO and PULL THEM OUT instead of listing keys.

If something in here does not work the way this post says it does, the feedback form is in the pause menu, and it sends nothing until you press send.

More from An Unreasonable Number of Zombies

Other announcements

All events
Community12 Sep 2026DEVBLOG 02 - "Making Infection Matter"The challenge I’m working on right now is making district infection something you feel when you play. The map shows a percentage, but a higher number doesn’t yet mean a harder fight. I’m exploring two connected ideas: faster zombie spawns at higher infection levels, and adjusting how much infection each completed stage removes. The charts below help me compare the numbers before putting those c…Community11 Sep 2026DEVBLOG 01 - "The endgame problem"First of these. The plan is one whenever something worth showing changes, rather than one a week padded out to look busy. Nearly all my time right now is going into balance and the endgame, so that is what this one is about. The release city. Twenty-two districts, and you play one of them a night. The full city is 22 districts. The only thing that brings a district's infection down is CLEAR, wh…Community3 Sep 2026An Unreasonable Number of AchievementsSteam Achievements FTW The achievements fall into six groups. · FIRST NIGHTS - getting through the early ones and working out that leaving is the win. \ · THE BET - whether you SECURE what is ON YOU or go back out for more. Every one of these is a decision, not a task. · THE DISTRICTS - at least one for every playable district (for the most part), keyed to whatever that district is actually abo…