Patch 0.25.0: Nothing Unnamed
The battle log stopped keeping secrets, and the whole site got quicker while it was at it.
Every number the engine changed used to arrive without a name attached: a hit that missed for no stated reason, damage that landed lower than the card said, a ruleset firing on Fighters it never identified. This patch closes that. The battle log now names the ability, the ruleset and the modifier behind each event, and the results screen finally shows the WARPATH points you just earned.
The other half is speed. The landing page, the replay player and the chat dock all got a real performance pass, and static assets are now cached properly at the edge instead of being re-fetched on every visit.
On the balance side, four Water Fighters lose their engine ability at bronze level caps, plus a stack of combat, ranked and matchmaking fixes.
🆕 New
Your WARPATH Points Show Up When The Match Ends
WARPATH points were being credited correctly and then never mentioned again. You finished a match, the pass ticked up somewhere off screen, and the only way to confirm it was to go and stare at the strip on /play.
The battle results screen now carries the points you earned from that match, and every row in your match history on /play carries the same figure. Both read the recorded ledger for that specific match, so an old match shows what it actually paid at the time rather than a recalculated guess.
Type An Exact Mana Cost In The Draft Picker
The picker could filter by mana range, which is fine when you are browsing and useless when you have exactly four mana left and need to know what fits. There is now a direct input for an exact mana cost, so you can ask the question you actually have.
The Picker Remembers How You Sort
Pick your sort once and the picker keeps it. It is stored in your browser, so it follows you between drafts on that device without needing an account setting. Everything else about the filter rail is unchanged.
🔧 Improved
The Battle Log Names Everything Now
Four separate gaps are closed here, and they all had the same shape: something changed a number and the log did not say what.
Per-turn effects that tick each round, like poison and regeneration, were logged as bare damage and healing with no ability named. They are named now.
A ruleset that fires on a group of Fighters used to log that it fired without saying who it hit. The affected Fighters are listed.
A miss caused by an evade ability, and damage reduced by a damage-modifying ability or ruleset, both used to render as a plain miss or a smaller number. The responsible ability is now named in the line.
The armor number in the log is also now taken from the armor the engine actually absorbed, rather than a value read after rulesets had already adjusted it, so what you read matches what happened.
The Assembling Screen Tells You Who Everyone Is Waiting For
When you had locked your team and your opponent had not, the waiting screen said your battle was being prepared and showed no clock. It read as though something was stuck on our side.
It now says plainly that your opponent is still assembling their team, and shows exactly how long they have left before the pick window closes. Nothing about the pick window itself changed, you just get to see it.
The Site Loads Noticeably Faster
A long pass on what the browser has to download before it can paint anything. The landing page was pulling down the sign-in machinery and the full ability catalog whether or not you were signed in, so that work is now deferred or skipped entirely for a visitor who is just reading the page. Two dozen component stylesheets that only signed-in surfaces use were moved out of the render-blocking bundle, and the interior pages got a bundle of their own.
Alongside that: the four landing animations now run on the compositor rather than forcing layout on every frame, the promo card and the league badges ship at the size they are actually displayed at, device fingerprint collection moved off the critical path, and static assets now carry long-lived immutable cache headers so a returning visit re-fetches almost nothing.
Replays Boot And Run Lighter
A behaviour-identical performance pass across the replay player: less work at boot, less work per frame while a battle is running, less repainting, and a smaller image payload for banners and league crests. The simulation is untouched. A replay still resolves byte-identically from its seed, the same one you watched last week is the same one you watch today.
Chat Opens Without The Stutter
Opening a conversation used to fetch the things needed to draw each message one at a time as it went. Those are now loaded together up front, so a busy conversation appears in one go instead of filling in.
German Number Formatting
Percentages and file sizes were rendering with English separators and English unit labels even with the interface set to German. They now follow German conventions like everything else on the page.
Live Wallet Updates Are Localized
The live balance updates pushed to your wallet chips are now rendered in your own language and are strictly read-only on the way out. If your interface is in German, so are the numbers that arrive without a page reload.
🐛 Fixed
A Balance Change Could Stay Invisible On The Live Server
This is the one worth reading. The combat engine keeps the card catalog in memory for speed, and that copy was never given a reason to expire. So a catalog change applied on the server outside the running process, which is exactly how a balance patch lands, was picked up by some parts of the site and not by the engine. Last patch's Prime Coherence fix was live on the card page and still not live in combat.
The engine's copy now expires on a timer and re-reads the catalog. A balance change applied to the live database takes effect in battles without waiting for anything to be restarted.
Reinforce No Longer Costs You Health When It Ends
Reinforce grants your Fighters one maximum health and one current health. When it expired, both were removed, including from Fighters that had since been damaged down below the granted amount. A Fighter could effectively be charged health it no longer had. Expiry now removes the maximum health it granted without taking current health the Fighter earned back through healing.
Phalanx Reads The Position A Fighter Is Actually In
Phalanx keyed off a Fighter's starting slot rather than where it stood at that moment, so after deaths shifted the line it could apply to the wrong Fighter. It now uses effective position, which is what every other position-sensitive rule already used.
Healing After Deferred Damage Displayed Wrong
When damage was applied on a delay and a heal landed in the same window, the replay could show the heal against the pre-damage health and then snap. The health values shown now settle in the order the engine resolved them.
Ranked Demotion Through A Tier Floor
A player who dropped below the rating floor of their tier was not being demoted out of it, which left the tier holding people its rating band said should be one step down. Demotion now passes through the floor correctly.
Accepted Custom Game Invites That Went Nowhere
An invite could be accepted and then leave both players sitting in a lobby that never became a match. Those lobbies are now recovered and carried through to a live game instead of stalling.
Buy KRED Reads The Live Rate
The KRED purchase screen was quoting from a value baked in at load rather than the live configured rate, so a rate change could leave a stale price on screen. It now reads the live setting, and it refuses outright to quote against a zero or negative rate instead of producing a nonsense price.
The Battle Log Toggle Told The Truth, And Backfire Got Its Bolt Back
The host page's battle log toggle could report a state it was not actually in. Separately, the Backfire rule had lost its return bolt in the replay, so the damage happened with nothing shown. Both are back to matching what the engine did.
Five Replay Labels Were Always English
Five labels on the replay overlays were never being translated and rendered in English regardless of your language setting. They now use the same translations as the rest of the page.
Floating Numbers Landed Off Their Fighter
Damage and heal numbers are positioned over the Fighter they belong to. Where the board was being scaled to fit, that position was calculated before the scale was applied, so the numbers drifted away from their card. The calculation now accounts for the scale it is rendered into.
Card Filters Ignored Your League
On the public card catalog, filtering by ability or attack type ignored the league level cap you were browsing at, so a card could match on an ability it does not have until a level above your league. The filter now respects the league axis you have selected.
Battle Lab Showed The Wrong Card Level
The Lab was rendering each card at its baked art level rather than the level the engine actually fought the re-simulation at. The displayed level now matches what was simulated.
Loyalty Rewards Could Be Granted Twice
A re-run of the GO loyalty grant could hand out a reward a second time. Grants are now deduplicated against a durable record of what was already given, so a re-run is a no-op instead of a double payout.
Blog Thumbnails On The Landing Page
The blog thumbnails pulled from Hive were being blocked by the site's content policy and rendering as gaps. They are now served through our own domain and appear. The landing page also stopped opening a live connection for visitors who are not signed in and have nothing to receive on it.
⚖️ Balance
Four Water Engines Move Past The Bronze Caps
Bronze caps your Fighters at level 2, silver at level 4, gold at level 6. A card that carries its defining ability at level 1 therefore brings that ability into every league, including the one with the tightest mana and the least counterplay available.
Four Water rares and one epic were doing exactly that, and the Water cluster was the strongest thing in bronze because of it. None of them lose anything at max level: the top of each card is byte-identical to before, same stats, same kit, same mana. What changes is the level at which the engine ability switches on.
Brine-Lattice Caster (nerf)
- Frontline Mend unlocks at: Level 1 -> Level 6
- Available from: Bronze -> Gold
- Max level stats and kit: Unchanged -> Unchanged
This was the single biggest offender in the bronze audit. Frontline Mend restores a quarter of the tank's maximum health every turn, and at bronze mana a repeatable heal on a four mana body means the front line does not fall, so games were decided by whether this card was drafted rather than by how either team was built. Moving the unlock to level 6 keeps the card as the Water sustain engine it is meant to be while making it a gold-league piece you build toward, not a bronze default. Its stats and its top end are untouched.
Abyss-Sworn Spellbinder (nerf)
- Splash unlocks at: Level 1 -> Level 4
- Available from: Bronze -> Silver
- Max level stats and kit: Unchanged -> Unchanged
Splash spreads half of each hit to neighbours, which scales with how tightly packed a board is, and bronze boards are the most tightly packed in the game because the mana cap forces small bodies side by side. One magic attack was clearing three Fighters. Pushing the unlock to level 4 puts it in silver, where higher health pools make the spread a real advantage rather than a board wipe.
Pressure-Lock Adept (nerf)
- Sap-Field unlocks at: Level 1 -> Level 4
- Available from: Bronze -> Silver
- Max level stats and kit: Unchanged -> Unchanged
Sap-Field takes one maximum health off every enemy Fighter. At bronze, where a typical Fighter has two or three health, taking one off the entire enemy team is a far larger fraction of their board than the same effect represents anywhere else, and it costs a single low mana body to do it. The unlock moves to silver so the effect is priced against health pools that can absorb it.
Silt-Rooted Archmagister (nerf)
- Reinforce unlocks at: Level 1 -> Level 3
- Available from: Bronze -> Silver
- Max level stats and kit: Unchanged -> Unchanged
This is an epic, and an epic's bronze power is entirely its level 1 row, so the unlock level is the only lever that touches bronze without touching the rest of the card. Reinforce hands every allied Fighter an extra maximum health, which at bronze health totals is close to a free extra body's worth of durability across the whole team. Level 3 is the smallest move that clears the bronze cap, which is deliberate: this card is not broken, it was just arriving too early.
Most of the replay work in this patch started as a screenshot in Discord with the words "why did that do 3". Keep sending those. A number you cannot explain is a bug in the log even when the engine was right.
Read the full illustrated patch notes -> https://stellarch.io/en/changelog/v0.25.0
Enlist & stay in the loop
- Join the closed-alpha waitlist -> https://stellarch.io/en/#waitlist
- Follow
@stellarch on Hive -> @stellarch
- Join the Discord -> https://discord.gg/K3geA9hD28
- Follow
@stellarch_tcg on X -> https://x.com/stellarch_tcg
Latest dispatches from Stellarch
- We Are Giving Away 250 Genesis Packs
- Closed Alpha Opens Friday: The Complete State of Stellarch
- The First Pilots Are In: Every Giveaway Winner
Latest updates from Stellarch
Stellarch is a deterministic trading-card game on Hive, draft a 7-card team, outplay your opponent, climb the ranked ladder. Browse the cards · Read the docs · See the leaderboard
Leave Patch 0.25.0: Nothing Unnamed to:
Read more #hive-gaming posts
Best Posts From stellarch
We have not curated any of stellarch's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From stellarch
- Patch 0.29.1: Clean Passage
- Patch 0.29.0: The First Blow
- Patch 0.28.0: Where You Actually Stand
- Patch 0.27.1: One Match At A Time
- Patch 0.27.0: First Flight
- Patch 0.26.0: What You See Is What Happened
- Patch 0.25.2: What You Own, You Can Field
- Patch 0.25.0: Nothing Unnamed
- Patch 0.24.1: Twelve Armor
- Patch 0.24.0: Dead Weight