V25 Update Announcement
Major Changes
- Removed workers & troop ratio bar
- Players earn 1k gold per second, bots earn 500 gold per second.
- Added Factories & Trains to public matches
- Trade ship spawn rate is determined by the number of ports players have and total number of tradeships on the map.
- Traitor debuff does not apply when betraying an inactive player
- Added SAM smart targeting
- Fixed hanging alliance request bug
- Fixed the disconnected (Zzz) icon from persisting when player reconnects
- Ports and Factories share same price scaling
- Large players get a defense debuff
Maps
- Added Pluto map to public and singleplayer matches
- Made Baikal more frequent in public matches rotation
UI & Quality of Life
- Added FPS monitor overview
- Players on the same team get a distinct color based on team color
- Added kick player functionality in private games
What's Changed
- Fix type errors in /server related to typescript strict mode by @antoine-gannat in #1468
- Zod v4 update by @VariableVince in #1546
- Players on the same team get a distinct color based on the team color by @sidneyprins in #1297
- Improve the alternate view by adding geopolitical colors for territories and hover-based highlighting by @devalnor in #1320
- Add conquest FX by @DevelopingTom in #1390
- Add the Pluto map by @djmrFunnyMan in #1442
- Add private lobby ID visibility toggle by @floriankilian in #1382
- Reduce docker image size with multi-stage build and dependency pruning by @aaa4xu in #1581
- Ensuring that MutableAlliance::extend is called in test case by @bypie5 in #1582
- Add Circassian nation by @qunash in #1577
- Yenisei map by @Duwibi in #1517
- Reduce docker image size further by removing unused dependencies by @aaa4xu in #1588
- Change variable name from dKeyPressed to debugKeyPressed in LangSelector by @Aotumuri in #1583
- Fix and update Pluto map by @djmrFunnyMan in #1587
- Improve UnitGrid performances by grouping units by type by @DevelopingTom in #1592
- Don't become traitor when betraying inactive player by @TylerHanavan in #1610
- Fix all strict errors in /client by @antoine-gannat in #1489
- Make Baikal More Common by @Duwibi in #1616
- Fix inconsistent host lobby join URL by @Duwibi in #1634
- Display FPS monitor overview by @devalnor in #1573
- Enforce minimum test coverage by @scottanderson in #1646
- Fix for two formatPercentage functions by @Kipstz in #1659
- Fix the stale disconnected (Zzz) icon persisting when a client reconnects by @TylerHanavan in #1631
- Shift scroll only increase by @richardroy in #1625
- Loosen coverage requirements slightly by @scottanderson in #1669
- Handle canvas context loss and restoration by redrawing by @aaa4xu in #1667
- Reduce Docker image size by refactoring map loading by @aaa4xu in #1621
- Private Lobbies: Add kick player functionality by @floriankilian in #1436
- Further Darken Background Image for Dark Mode - Issue #1238 by @floriankilian in #1653
- Add support for merge groups by @scottanderson in #1674
- Remove workers & troop ratio bar, only have troops by @evanpelle in #1676
- contributor by @scottanderson in #1647
- Convert GameServer's message handler from if to switch #1639 Open by @floriankilian in #1649
- Remove gold from dead players by @djmrFunnyMan in #1450
- feature/prevent-from-accident-reloading by @falcolnic in #1411
- Enhance dark mode support by @mananlalwani in #1682
- Remove unused processName util and twemoji dependency by @aaa4xu in #1683
- Allow main menu modals to be closed by clicking escape by @TylerHanavan in #1617
- Fix broken test by @scottanderson in #1688
- SAM smart targeting by @DevelopingTom in #1618
- Add random shell damage by @Kipstz in #1665
- Fix Race conditions on alliances by @Kipstz in #1605
- Merge group by @scottanderson in #1689
- Merge group by @scottanderson in #1691
- add SEO & Open Graph by @evanpelle in #1692
- Giant World Map Nations: fix spawn points, add new ones, change others by @VariableVince in #1655
- Update the news modal by @scottanderson in #1693
- Fix invite link in Join Lobby by @Kipstz in #1695
- Fix remaining errors and enable strict mode by @antoine-gannat in #1628
- Rework trains to encourage alliances by @DevelopingTom in #1697
- Addition of FlagInputModal by @Aotumuri in #1606
- Icons update by @jrouillard in #1562
- Update viewport meta to contain user-scalable=no by @Tfc538 in #1666
- Use OR instead of nullish operator on TokenSchema by @evanpelle in #1702
- Remove role based perms, fetch cosmetics.json from api by @evanpelle in #1640
- remove unload warning. by @evanpelle in #1704
- Alert on payment success or failure. by @evanpelle in #1705
- Fix: Automatically Close Flag Input Modal on Game Start by @Aotumuri in #1709
- Disable strict mode by @scottanderson in #1713
- Fix: Modal background color does not cover entire content when alwaysMaximized is set by @Aotumuri in #1710
- Fix: Sync Dark Mode Button State by @Aotumuri in #1708
- Fix oversight: non-human player never responds to alliance renewal request by @VariableVince in #1536
- enable factories by default by @evanpelle in #1718
- allow trains & railroads between non-allies by @evanpelle in #1719
- reduce train frequency by @evanpelle in #1722
- Reintroduce commit metadata in the final image by @aaa4xu in #1737
- fix alternate view perf regression by @evanpelle in #1734
- Have trains produce more gold by @evanpelle in #1759
- mls (v4.4) by @Aotumuri in #1753
- restrict problematic flags fixes #1690 by @evanpelle in #1805
- Fix flag preview not updating after selecting a new flag by @Aotumuri in #1812
- Use seedrandom to back PseudoRandom.ts by @evanpelle in #1828
- store & reference pattern by name by @evanpelle in #1766
- bugfix: SAMs targeting not updating owner after capture by @evanpelle in #1838
- allow names to go on top of radiation by @evanpelle in #1840
- increase MIRV warhead distance, after improved pseudorandom by @evanpelle in #1839
- fix ally request svg aspect ratio by @fantom845 in #1731
- Improve alliance UX, prevent hung alliance requests by @evanpelle in #1868
- Update train color to be more like owner color by @evanpelle in #1869
- bugfix: territory pattern modal opening on page load by @evanpelle in #1871
- unset pattern on logout by @evanpelle in #1873
- v25 meta update by @evanpelle in #1872
- Remove Yenisei from public multiplayer games by @evanpelle in #1874
- Send error to client if server cannot get pattern by @evanpelle in #1861
New Contributors
- @antoine-gannat made their first contribution in #1468
- @sidneyprins made their first contribution in #1297
- @qunash made their first contribution in #1577
- @richardroy made their first contribution in #1625
- @mananlalwani made their first contribution in #1682
- @Tfc538 made their first contribution in #1666
- @fantom845 made their first contribution in #1731
Full Changelog: v0.24.13...v0.25.0