github openfrontio/OpenFrontIO v0.35.0

3 hours ago

v0.35.0

October 16, 2026

Overview

Player levels & progression
Every game now earns XP, shown on the end-of-game screen. Level badges appear across the lobby, player panel, leaderboard and clan lists. At level 100 you can Prestige, up to P10 and then Legend. Profiles get a Progression tab with a reward track that pays Plutonium every 25 levels. Subscribers level faster, up to +100% for Sovereign.

Ranked FFA and clan wars
Two new ranked queues: Free For All (4–10 players matched by ELO, last player standing wins) and Clan Wars (your clan vs. up to three others, 2–5 a side, the clan gains or loses rating). Ranked now needs a trusted account, and the clan leaderboard gets an ELO column.

Meta Changes
Your first few ports and factories now spawn trade ships and trains faster. More buildings still means more trade overall.

Replay viewer
Replays can seek. The game is processed once in your browser, then any point on the timeline is a ~20 ms jump. Finished games open in the viewer from the game history. (Disabled by default, we'll roll it out over the next week or so)

Smarter nations
Nations play more like the humans who win: they save later and keep building, fortify borders before attacking, send 1% beachhead boats and follow up by land, defend against landings, retaliate properly, aim nukes at land instead of water and fallout, nuke back, and in FFA gang up on a runaway leader. Easy nations keep their old behaviour.

Faster chat and emoji
R opens quick chat on the player under your cursor and one click sends a phrase. F opens a redesigned, grouped emoji menu with a Favorites row you fill by drag and drop and fire with Q W E A S D. The top player panel gets chat, emoji, alliance (K/L), target (N) and boat (B) buttons. Note: select-all-warships moves from F to X.

Nukes annex again
Nuking an arm off someone's territory hands the cut-off piece to the surrounding enemy again. It had stopped working for most coastal empires.

Bigger lobbies
The 125-player cap is gone. Lobby size now comes from the map, so The Box fits 210, Alps 185 and Middle East 170.

New maps
Madagascar (a Baikal-style Nuke Wars map), Horn of Africa, Vancouver Island, Cape of Good Hope, Canary Islands, Bab el-Mandeb Strait, Rio de Janeiro, Pulicat Lake, Benelux and Brain Rot, plus Ommatrypta for Halloween.

Faster homepage
The homepage's first download is a third of what it was (661 KB → 220 KB gzipped). The game client, store and every modal load on demand.

Gameplay & Balance

  • Removed the 125 player cap from public lobbies; size now comes from the map's land, and Alps and The Box appear more often — FloPinguin
  • Annex land a nuke cuts off from the main body; this had stopped working whenever the main body touched the coast — Lewis
  • Humans can send up to 5 emojis per recipient per 5 s (was 1) — Evan
  • Dropped attacks with an invalid troop count instead of kicking the player; about 50 players a day were losing their game to it — Evan
  • Each player's spawn tile is recorded in their stats, for future per-map spawn heatmaps — Lewis
  • meta: Faster trade ships and trains for players with only a few ports or factories (a 1-port player sends a ship every ~8 s instead of ~12 s); the boost fades out by 6 levels and replaces the old fleet-size boost — Evan
  • "Stop Trading with All" is now "Stop Trading with Enemies" and keeps trade with your allies — FloPinguin
  • Fixed trains not earning gold at a station built on the stretch of track they were already on — cazlabIO
  • Fixed MIRVs aimed at unclaimed land: no more "Player with id null not found" error, and if someone takes the tile before launch, they're the one warned and targeted — VariableVince

Nations

  • Nations play more like winning humans: later saving, continuous building, defense posts behind the front, bots annexed by walling them in, nukes on bordering rivals and nuking back, MIRVs on reachable targets, and team nations backing up teammates — FloPinguin
  • Smarter nukes: no two nations nuke the same spot, no blasts wasted on water or fallout, atom bombs on small islands, collateral on non-allies in FFA, never own or allied enclaves — FloPinguin
  • 1% beachhead boats on Hard and Impossible, followed by a land attack the tick they land; Medium and up stop saving for nukes before three cities — FloPinguin
  • Retaliation, naval warfare and pressure on a runaway FFA leader: nations answer attacks before saving, route boats around warships, send warship squads at blockades, and don't sail past 300/500 tiles — FloPinguin
  • Nations defend against boat landings at the beachhead and stop stacking defense posts on top of each other — FloPinguin
  • Nations keep donating troops to fighting teammates after the game is decided, celebrate wins with an emoji, and only one nation mocks a traitor instead of all twenty — FloPinguin

Ranked & Clans

  • Ranked Free For All: 4–10 players matched by ELO, continent maps, 20 minute timer, ends when one human is left — Evan
  • Ranked Clan Wars: clan-sized team games, 2–5 a side, up to four clans, rated per clan — Evan
  • Ranked is limited to trusted accounts, with lock icons on the Ranked button and modal — Evan
  • Clan leaderboard gets a sortable ELO column — Evan
  • Clan browser: a fair per-player random order by default (no more "AAA" clans at the top), sort options, and paid clan boosts for featured placement — Lewis
  • Clan browser: sort by Oldest, Richest or Lowest win score, and filter to open or invite-only clans — Lewis
  • Clan wars queue shows how many from your clan are waiting — Evan
  • Clan Members list shows each member's clan wars ELO contribution, with a sort for it — Evan
  • Clan tags come from the clan wars assignment — Evan
  • Ranked alert redesign — cazlabIO

Levels & Progression

  • Player levels: a level badge across the UI and an XP reveal on the end-of-game screen, source by source, with level-ups — Lewis
  • A provisional XP figure the moment you're out, reconciled with the server's when the game ends — Lewis
  • Profile cards, and the prestige flow at level 100: a hold-to-confirm screen and a full-screen ceremony, P1 to P10 then Legend — Lewis
  • Progression tab, reward track, profile links and sharing, and end-of-game rewards — Lewis
  • Level badges in the lobby list, in-game player panel, ranked leaderboard (prestiged players and Legends only) and clan member lists — Lewis
  • Privacy settings: hide your level from other players, and keep your profile out of search engines — Lewis
  • Level Plutonium is held until your account is trusted, and the rewards list says so — Lewis
  • New level badges: each prestige rank has its own unit icon, tier colour and rim gauge (Iron to Champion, then Legend), with a glow on P5, P10 and Legend and sparkles from P8. Share cards match — Lewis
  • Your Account has a Progression tab: the reward track with Claim all, prestige history and milestones — Lewis
  • Your level shows the XP from games still being scored, marked provisional, and it stacks across back-to-back games until each one is confirmed — Lewis
  • Subscriber XP boost: Vanguard +25%, Warlord and Steam Plus +50%, Sovereign +100% — Lewis
  • Levels take about 20% more XP: level 1 to 100 is now 44,690 XP (was 37,300). Nobody loses a level — Lewis

Lobby & Social

  • Quick chat: R opens it for the player under your cursor, phrases are one-click chips grouped by category, and phrases that name a player open a ranked picker — Evan
  • Emoji menu redesign: grouped sections, a Favorites row with Q W E A S D hotkeys, F to open, and batch sending — Evan
  • Player panel shortcuts: Send/Break alliance (K/L), Target (N) and Boat attack (B), each shown only when it applies — Evan
  • Quick chat: a Recent section and phrase search — FloPinguin
  • Eight new quick chat phrases ("Betray [P1]!", "Build SAMs!", "Send gold to [P1]!", …) plus "Attack the crown!" — Lewis, Evan
  • See what a player is wearing in their info panel, with store links for anything you don't own — CodingSelim
  • Hosts can set a player limit (2–1000) on an unlisted private lobby — Lewis
  • Public team lobbies show the lobby ID and copy button too, so you can share the link or keep the game ID (not in FFA, to discourage teaming) — FloPinguin
  • A larger map preview and compact setting tags in the lobby waiting view — Gio Marco Baglioni
  • Duos / Trios / Quads labels are back, and the same lobby reads the same everywhere — FloPinguin
  • Fixed the team name being untranslated in the win message — VariableVince
  • Fixed quick chat keeping a stale player selected when switching phrases — LoSt543215543
  • Alliance request confirmations keep the clan tag in the name — LoSt543215543
  • Fixed Alt+click on an emoji sending it to whoever was under the cursor — LoSt543215543
  • Fixed double colons on localized lobby badges in CJK languages — LoSt543215543
  • Centred the kick button icon in the lobby player list — LoSt543215543

Replays

  • A replay viewer that can seek: processed once in your browser, ~20 ms per seek, verified against the hashes the live clients recorded — ArtZab0
  • Viewer follow-ups: playback keys ignored behind settings, no event flood when switching followed players, unverified replays flagged, backward seek fixes gold/s — ArtZab0
  • Game state snapshots: the whole simulation can be saved at any tick and restored with identical hashes, for pause/resume, forks and replay seeking — Evan

Graphics, UI & Quality of Life

  • The in-game menu now lists the game's modifiers, disabled units and host cheats, in replays too — FloPinguin
  • HUD background opacity slider in Settings → Graphics, so the leaderboard and panels hide less of the map — MRGhust
  • Halloween homepage theme: orange and purple, pumpkin cursors, a blood moon on the map cards (homepage only, never in game) — Restart
  • The Halloween theme runs from Oct 25 through Nov 1, and a Settings toggle turns it off — Evan, Josh
  • Halloween homepage cleanup: brighter lobby buttons, natural map thumbnail colors, and no more cobweb over the modal back arrow — Restart, VariableVince, Evan
  • Fixed the white strip under the Steam store widget on the dark homepage and win modal — Lewis
  • Drag to dismiss in-game toasts, which matters on phones where a long error covered the map — MRGhust
  • The structure preview now sits where the building will actually go when you're placing it near another — MRGhust
  • Mobile attack ratio control shows the troop count, not just the percentage — Kinatic11
  • Arrow and zoom keys are now real keybinds, so assigning them elsewhere no longer fires both actions — VariableVince
  • Fixed Escape closing the whole Settings modal when cancelling a keybind capture — LoSt543215543
  • Fixed Mac Ctrl+click opening the radial menu and attacking at the same time — devynlynch
  • Fixed a soft-lock where clicking a build icon opened the radial menu over the HUD — torturado
  • Fixed a crash when releasing a build just past the map edge — Evan
  • Signed-out players are told how to get skins, crowns and effects in the inventory — MRGhust
  • Fixed your equipped cosmetics resetting when you come back to the site — LoSt543215543
  • Localized unit names in "missile intercepted" and "unit destroyed" events — Aotumuri
  • Incoming unit messages are now translatable — VariableVince
  • Muted sound effects no longer load and play silently in the background — Alexandre
  • Cosmetic and currency pack names are capitalized in the store — LoSt543215543
  • Tutorial gives a general reason to ally ("Allies secure your borders") — FloPinguin
  • Steam prompts say "Buy on Steam" — LoSt543215543
  • Translation updates (mls v5.17–v5.20) — Aotumuri

Maps

  • Madagascar: a dedicated Nuke Wars map, two equal landmasses across the Mozambique Channel, set in the 80s — RickD004
  • Horn of Africa: a pirating chokepoint off Somalia and an inner water system from the Nile to Lake Victoria — RickD004
  • Vancouver Island: 30+ nations from the Pacific Northwest — RickD004
  • Cape of Good Hope: a large bay with one chokepoint, plus historical South African flags — RickD004
  • Canary Islands: an island map with shortened crossings, high in team rotation — RickD004
  • Bab el-Mandeb Strait: a balanced two-team map set in the early 1960s, with the region's flags — RickD004
  • Rio de Janeiro: Guanabara Bay, 30 nations from Rio's neighbourhoods and municipalities — Renan Scarpin
  • Pulicat Lake: a lagoon with a single sea entrance, and a pirate island in the door — Panindhra Tallapudi
  • Benelux — Niels K., RickD004
  • Brain Rot (here to stay) and Ommatrypta (Halloween only), both boosted in the public rotation for the holiday — PatrickPlaysBadly, VariableVince, RickD004
  • New Zealand: traditional Māori tribes as nations, with the country's regions as 80+ more, on a medium-sized map for the Oceania players — RickD004
  • Better terrain for Pulicat Lake — RickD004
  • Took v34 maps out of the New category, and lowered Channel Islands' FFA rotation — RickD004
  • Map layers ship as lossy WebP, ~9× smaller, with a Compact variant — Josh
  • Map generator: crop layer PNGs to the map size like the terrain — FloPinguin

Performance

  • The game client loads on demand instead of with the homepage: first download 661 KB → 434 KB gzipped — Evan
  • Homepage modals, the store, the lobby modals, menu audio and news renderer load on demand: 434 KB → 220 KB gzipped — Evan
  • Replay processing runs on the engine's own worker; the replay worker shrinks from 815 KB to 340 KB — Evan
  • Fixed the largest client exception in prod (24% of Firefox sessions) in stylesheet loading — Evan
  • Fixed PWA icons 404ing on every page load — Evan

Steam, Desktop & Poki

  • OpenFront is now playable on Poki — Evan
  • Steam players who subscribe while they still have free days now get those days added to the end of their subscription — Josh
  • Boot prompts (claim your username, Steam notices) are only counted once you answer them, so a content update mid-prompt doesn't spend your one showing — Josh
  • Admin-granted subscriptions are told apart from a Steam month, so a comped player isn't told their access came with a Steam purchase — Lewis
  • The menu theme no longer starts over the gameplay track when a game starts before the audio chunk loads — Josh

Contributors

v35 took 24 people. Code, maps, perf, translations, the lot. Thank you:

Alexandre · Aotumuri · ArtZab0 · cazlabIO · CodingSelim · devynlynch · Evan · FloPinguin · Gio Marco Baglioni · Josh · Kinatic11 · Lewis · LoSt543215543 · MRGhust · Niels K. · Panindhra Tallapudi · PatrickPlaysBadly · Renan Scarpin · Restart · RickD004 · torturado · VariableVince · wraith4081 · youtsuho

Translators

Thank you to everyone who translates OpenFront:

  • Arabic 🇸🇦: N0ur, Moha & SyntaxPM
  • Bengali 🇧🇩: sheikh
  • Brazilian Portuguese 🇧🇷: theskeleton4393, juliosilvaqwerty5, Vincent & iliya
  • Bulgarian 🇧🇬: Nikola123 & NewHappyRabbit
  • Chinese Simplified 🇨🇳: Moki
  • Chinese Traditional 🇹🇼: SkiRhino & ChAoSUnItY
  • Czech 🇨🇿: Xaelor, erinthegirl & Matouš Adamů
  • Danish 🇩🇰: NiclasWK
  • Dutch 🇳🇱: cldprv, tryout33, Zjefken & Niels
  • Esperanto: r3ms & Katokoda
  • Estonian 🇪🇪: ramon.o
  • Finnish 🇫🇮: Tanepro193
  • French 🇫🇷: cldprv, gx21, r3ms & Eiwalis
  • Galician: toldinsound
  • German 🇩🇪: Pilkey, jacks0n, floriankilian, Fibig, TNB & W4lle
  • German 🇨🇭: originaloha
  • Greek 🇬🇷: pantelispantelidis
  • Hungarian 🇭🇺: ap.ms & Forsan
  • Hebrew 🇮🇱: Goblinon
  • Hindi 🇮🇳: sheikh
  • Italian 🇮🇹: frappa10 & Lollosean
  • Indonesian 🇮🇩: tronsar
  • Japanese 🇯🇵: Aotumuri, daimyo_panda2, gafunuko, kaywb & aki__san__
  • Korean 🇰🇷: Jinyoon & Game_Sushi
  • Macedonian 🇲🇰: Perdiccas
  • Polish 🇵🇱: zibi, RinkyDinky, Rulfam, Kris & Tomasz
  • Persian 🇮🇷: nobodyiran
  • Russian 🇷🇺: Rulfam, Redincon & Shomped
  • Romanian 🇷🇴: GrunoTheGamer
  • Serbo-Croatian 🇷🇸🇭🇷🇧🇦🇲🇪: Vekser & kw3rty
  • Slovak 🇸🇰: extraextra
  • Slovenian 🇸🇮: MotivatedMonkey
  • Spanish 🇪🇸: 6uzm4n & Campos
  • Swedish 🇸🇪: Moha, theangel2, Keevee & torktumlare
  • Toki Pona: Makonede
  • Turkish 🇹🇷: Toyatak & grassified
  • Tamil: UniverSoul
  • Ukrainian 🇺🇦: Rulfam
  • Vietnamese 🇻🇳: Hazun06VN

Don't miss a new OpenFrontIO release

NewReleases is sending notifications on new releases.