1. Abalon
  2. News

Abalon News

v2.90.2 - Legendary Leaderboards Bug Fixes

v2.90.2 Release Notes

Thanks everyone for your feedback on the Legendary Leaderboards update! Over 6000 players are participating so far in Season 5! I am so glad you are enjoying the competition and so grateful for all of your feedback and bug reports.

Below find a list of all the changes made recently in this patch and on the server. Special thanks to the first player(s) who initially reported the issues in-game via Menu -> Share Feedback and on our Discord server (https://discord.gg/d20studios)


v2.90.2 Client Fixes
  1. Fixed Bug where containing asterisks in your Steam persona name could result in AI sync errors when the asterisks pattern matches the AI's turn encoding pattern (Thanks
  2. *****66.47qk.cn)
  3. Fixed Bug where player could apply encoding sensitive characters to usernames or custom deck names, potentially breaking game functionality.
  4. Fixed Bug where bringing Birthday Boy to the prismatic realm was not counting the reward of Goblin Party satchel card as a bonus satchel.
  5. Fixed Bug where browsing the leaderboard list and refreshing could throw a touch list error. (Thanks Manchot_Royal)
  6. Fixed Bug where selling card could on rare occasion throw a null error exception. (Thanks Guest_358229)
  7. Fixed Bug where targeting controls could on rare occasion throw an exception on releasing the mouse when the targeted exceeded maximum equipment. (Thanks 么丨 Sloth)
  8. Fixed Bug where null exception could be thrown on rare occasion during touch screen movement. (Thanks Guest_360220)
  9. Fixed Bug where on rate occasion a blocked line of sight path could throw a null exception. (Thanks Guest_365342)
  10. Fixed Bug where a null exception could be thrown in the keyboard listener during a resolution change. (Thanks Arkın Kıran)
  11. Fixed Bug where a race condition with view renderer could result in an exception being through on the SummonerDetailsPrompt (Thanks Guest_366421 and ironmask)
  12. Fixed Bug where a race condition between when views update could throw an exception when attempting to display a tooltip connected to a button. (Thanks Trasd)
  13. Fixed Bug where an edge case DrawCardEffect could attempt to build a card without an action, resulting in a null exception. (Thanks Guest_366505)
  14. Fixed Bug where we could hit an invalid child index when disposing previous level on transition to next one. (Thanks Guest_359671)
  15. Fixed Bug where delayed animation callback could throw exception in the Tower unlock prompt. (Thanks Guest_364407)
  16. Fixed Bug where rare race condition could cause an exception in the GodRayTexture effect (Thanks abelfbunker)
  17. Fixed Bug where broken Call to Arms def during battle with U'lag'u was creating an ant warrior that never entered the board. Along with definition changes, fixed Call to Arms so it properly knocks back the approaching unit to make room for dropping ant soldier and animates them together in sequence so we see the knockback animation as the ant is falling.
  18. Fixed Bug where the player's summoner is defeated as a result of Three Point Palm, the explosion also defeats the enemy summoner but results in a Victory instead of a Defeat, allowing them to continue to the next wave without a summoner and generate more errors. (Thanks Guest_357953)
  19. Fixed Bug where casting Disintegrate with a Battle Mage could trigger a knockback into a cactus, resulting in the possibility for a ghost version of that unit to spawn after the battle is over. (Thanks Guest_348793)
  20. Fixed Bug where we could get rare edge case null exception when exploring (Thanks Guest_344331)
  21. Fixed Bug where a rare edge case could cause a null pointer exception when updating the grid z-value ordering. (Thanks Guest_206061)
  22. Fixed Bug where rare edge case could cause a null pointer exception on the unit status animation. (Thanks Diego)
  23. Fixed Bug where race/ordering condition could result in a null exception on the stat asset. (Thanks Guest_330454)
  24. Fixed Bug where Joystick could throw exception if not disposed properly while on the animation clock. (Thanks thatninja8)
  25. Fixed Bug where resize screen event could result in a invalid child index on the ChooseCardPrompt. (Thanks 88292)
  26. Fixed Bug where a resize triggered during a grid destruct could result in a null exception. (Thanks Guest_366421).
  27. Fixed Bug where player could select Descent difficulty in Fast Adventure mode, Traditional Playstyle.
  28. Fixed Bug where dragging a path so that movement ends on a pickup (card, gold, etc.) and then releasing to confirm movement and clicking (from there) a target to attack would result in the unit moving to the space just prior to reaching the pickup object instead of moving to the object, picking it up and attacking. This bug occurred exclusively on select Android devices, including Samsung A52, Samsung A56, and also reported on SHARP SHG04. (Thanks Manchot_Royal and Guest_8084)
  29. Fixed Bug where it was possible to change the contents of Choose Card prompts by opening "My Collection" and switching tabs. This could result in potentially broken combinations and cause later errors in the game. (Thanks ThoughtfulToffee)
  30. Fixed Bug where view/model desync race could cause a rare null pointer exception. (Thanks Guest_369420)
  31. Fixed Bug where edge case race condition could cause a range error on the character armature models. (Thanks 3082847399)
  32. Fixed Bug where very old versions of game save data within the tutorial could result in exception when trying to load the game state. (Thanks LiberTea, General Aladeen, somerset84 and BunPanda)
  33. Fixed Bug where race condition with Context3D could result in an error 3675 on the GodRay VFX. (Thanks Guest_368793)
  34. Fixed Bug where edge case behavior within doobering a card to hud could throw a null index if the sort filter is modified before the animation resolves. (Thanks Guest_366421)
  35. Fixed Bug where a UI race condition made it possible to Fast Travel during a battle, causing an AI sync error. (Thanks Guest_368811)
  36. Fixed Bug where player was able to hire a second instance of a Guardian as a loyal unit due to a game crash after paying to hire a mercenary. (Thanks DangerDre)
  37. Fixed Bug where recursion loop error could occur when player HD is full an unable to write save. (Thanks gse orca)
  38. Fixed Bug where edge case AI simulation path could result in a backworker error when moving and attacking with mindless units. (Thanks Maratin and Guest_170572)
  39. Fixed Bug where edge case prompt being acknowledged just as battle starts could generate a backworker error in the AI. (Thanks drio)
  40. Fixed Bug where a backworker error could occur as a result of attempting to deactivate a status effect during an AI simulation twice. (Thanks rustica and Guest_368041)
  41. Fixed Bug where a Fate Encounter battle (ex: Sandpit Arena) was delivering the incorrect par bonus. (Thanks Manchot_Royal)
  42. Fixed Bug where Inkadoo's shop (as well as Bleat the Beastmaster) were not gaining shop gold when purchasing a caged guardian. (Thanks Anotnio)
  43. Balance: The Juggernaut Rubiks now targets the target with highest remaining life, not the target with highest life capacity, as this is the interpretation most players have of the card text. (Thanks wmfrederick)


v2.90.2 Server Fixes
  1. Fixed Bug where an unranked player's division showed your position as if you were ranked against the entire world instead of using the correct unranked division rules.
  2. Fixed Bug where My Division misbehaved when you had not posted a score yet.
  3. Fixed Bug where My Division for an unranked player without a score showed a misleading slice of runs at the top; it now shows a more inviting view instead of odd partial-run scores floating to the top.
  4. Fixed Bug where a very high unranked score from an unfinished run could block tier promotions until you beat that number on a completed run; finishing a run now replaces that incomplete standout so promotions can work normally.
  5. Fixed Bug where Active Season Global Elite could return no results when the season had not yet reached the Diamond tier threshold, even though other players had scores worth showing.
  6. Fixed Bug where Top Summoners did not record a qualifying score unless it also beat your high on the signature-style personal board; Top Summoners highs now save when earned.
  7. Corrected saved Top Summoners data (and related tier fields) for players whose scores or tiers had not been stored correctly when the feature first went live, including follow-up repairs for tier assignment.
  8. Fixed Bug where Global Elite showed No scores found for players not in the Diamond tier, instead of still showing the elite list appropriately.
  9. Fixed Bug where Global Elite looked too empty; it now respects the elite cap while filling out fairly and still shows your global rank when it applies.
  10. Fixed Bug where updating the same run with a lower corrected score could leave your badge out of sync with the score on file; badges now demote when the stored score does (ex: as result of exploiting fate encounter rolls).
  11. Fixed Bug where some accounts had tier badges out of sync with their scores; existing rows were repaired, and the repair logic was adjusted so Diamond players were not wrongly demoted.
  12. Fixed Bug where Global Elite (active season) could show “No scores found” and rank 0 out of a full list at the same time when your account had no score posted for that mode.
  13. Fixed Bug where a Top Summoners run that qualified for the board but did not beat your signature personal high could miss its tier badge; the badge now reflects that run’s score threshold. (Thanks Manchot_Royal)
  14. Fixed Bug where Top Summoners could show the wrong tier order (for example Silver appearing above Gold) because older rows kept stale tiers copied from elsewhere; tiers are now based on each row’s own score.
  15. Fixed Bug where some Top Summoners scores were incorrectly marked deleted after a migration; earned highs were restored.
  16. Fixed Bug where Diamond tier promotions could fail in an edge case.
  17. Fixed Bug where Personal Journey runs were not being tracked as separate adventures for new players that had joined with the release of the Legendary Leaderboard update. Personal runs are now tracked correctly as separate rows in the Personal Journey.


Stay Tuned for More!

I've got an exciting announcement and a special event to celebrate rolling out later this week :)

Till then,

~Ross

Abalon 2.90 - Legendary Leaderboards are here!



[h2]Greetings D20 Fans![/h2]

I'm so excited to deliver this update. For years, you've been asking for a proper leaderboard experience, and for years I've wanted to give you one. When I first reset the leaderboards, I promised that one day I'd build a Hall of Fame to commemorate everything you'd accomplished. Today, that promise is kept. Legendary Leaderboards are here, and every original score is preserved. Tiered trophy badges have been retroactively rewarded. This is the culmination of countless player requests and suggestions, and I'm grateful for your patience and your ongoing support.

Legendary Leaderboards

The leaderboard system has been rebuilt from the ground up. You now have three main ways to engage: the live season, your own journey, and the Hall of Fame.

[h2]Active Season[/h2]
Compete in the current competitive season across all supported game modes (Adventure, Traditional, Custom, Fast Adventure, Survival, and more). Choose My Division to see how you stack up against players at your tier, or Global Elite to see the very top scores in the world. A My Standing panel shows your current tier, division, and rank, plus a progress bar toward the next tier when you're playing in the current season. When Diamond tier isn't open yet but you've reached the top tiers, the panel shows the minimum score you need to qualify for Diamond so you know exactly what you're chasing.

[h2]Personal Journey (Your Runs)[/h2]

A dedicated view for your own runs, ordered by score and date. Filter by game mode (including All Game Modes) and by season. When very old seasons roll off recent history, we automatically show your archived bests from the Hall of Fame so your journey is never lost.

[h2]Global Legends (Hall of Fame)[/h2]

Past seasons are frozen in time. In the Global Legends tab you can browse:
  1. Top Players: the highest scores for that season and game mode
  2. Top Summoners: the best runs for each summoner across any game mode (All-Stars, or drill into a single summoner's top 100)
  3. Personal Bests (Trophy Room): all of your awards and top placements for that season

These views never change once a season ends. Your achievements are permanently recorded. All of the original leaderboard data from before the reset has been preserved and migrated into the Hall of Fame with tiered trophy badges (Bronze, Silver, Gold, Platinum, Diamond) applied retroactively so your past accomplishments are properly celebrated.

[h2]My Standing: Clear Rank & Progress[/h2]

The My Standing widget now handles three clear states:
  1. Unranked: A friendly message invites you to complete a run to calculate your Tier and Division. When you do have a run on the board, the game will still show a temporary "ghost division" so you can see where you'd land.
  2. Ranked (Bronze–Platinum): Your division, your Division Rank (e.g. Rank #12 / 100), and a progress bar toward the next tier.
  3. Diamond: Your Global Rank and total Diamond players. Diamond players always see the full global competition.



Within the active season, in both Global Elite and Top Summoners views, you can see the total number of players in the season so you know exactly how big the field is. And as you can see, not that big right now while my family and I were testing the feature :P

We sure had a blast dominating each others' scores, though. And don't worry, season 4 had over 80K participants, so that bar will jump real quick!

[h2]Run Summary (Chronicle)[/h2]

Click any eligible leaderboard row to open a detailed Run Summary (Chronicle):
  1. Battle-by-battle breakdown of how that score was earned
  2. Fate encounters, resource gains, challenge modifiers, and their score impact
  3. Game mode, difficulty, descent level, and the game version the run was played on

When deck or team data is available, you can view the winning Deck or Team as a browsable card list, then close and return right back to the same run summary without losing your place on the leaderboard. For archived seasons in Global Legends, Run Summaries are preserved for the top performing players of the season and pulled from the Hall of Fame itself, so historical chronicles never depend on your local save.

[h2]Fairness & Versions[/h2]
Only runs started on eligible game versions count toward the current season. Old-version runs are still cloud-saved and appear in Personal Journey, but they don't affect current-season rankings. The Hall of Fame always shows your best scores and ranks for each past season, even after live leaderboards roll over or old run data is cleaned up.

[h2]End-of-Season Flow[/h2]
At the end of the season, the active season leaderboards and personal journey boards, and run summaries are cleared for the next season. Every ranked (badge earning) player's score is captured in their personal bests (trophy room).



Additionally the top 100 global scores for every game mode (and the top 100 scores for each summoner) each season earn a special bonus: a permanent archive of their run summary, deck and team chronicle.

The new season tier thresholds are calculated based on player performance, then, when the new season starts, a 7 day countdown begins until the apex threshold (currently Diamond tier) unlocks and is fixed based on the performance of top scoring players. (Note: It'll be a little shorter countdown for this season due to testing on the new feature).

[h2]Adventure is the Heart of Abalon[/h2]
Adventure Mode is the signature Abalon experience. To reflect this, the leaderboard is designed so that Adventure Mode is the premiere "Major League" competition. While specialty modes (Traditional, Fast, and Custom) offer elite challenges for specialists, the title of "World #1" is pursued on the Adventure stage, where the highest scoring multipliers and the largest Diamond tier reside.

[h2]The Pursuit of the Apex[/h2]
Diamond tier badges are earned on a Global Stage and defined by the world's best players.
  1. The 7-Day Qualifying Period: Every season begins with a 7-day "Settle." During this time, no one is Diamond. Rather, the community competes for the highest scores to "set the bar" for the elite.
  2. Defining the Standard: After 7 days, the top 100 players in Adventure (and top 50 in Specialty modes) who meet the minimum "Diamond Standard" are promoted. The score of the 100th player becomes the Diamond Threshold for the rest of the season.
  3. Earn Your Way In: If you didn't make the initial cut, the door isn't closed. Once the threshold is set, any player who beats that specific score is instantly promoted to Diamond.
  4. No Demotions: Once you earn your Diamond tier badge, it is yours for the season. You will then compete for your Global Rank to see exactly where you stand against the world.
  5. The Legacy Floor: To ensure the rank remains prestigious, the "Diamond Standard" can never be lower than it was in the previous season. The bar only ever goes up.


[h2]Final Notes on Leaderboard[/h2]
Just wanted to say again how I excited I am to deliver this feature! I did my best to preserve your score legacy. Note that because the previous leaderboard only recorded a single high score per player (regardless of game mode) I wasn't able to fully represent the full number of scores you would have now with the system. This is why the speciality modes like Traditional and Fast Adventure look a bit unpopular (they simply had different scoring systems). Some modes, like Survival Mode, didn't even have a leaderboard score, so I'm excited to see this become a new competitive ground :)

AI Engine Stability Improvements

In addition to the leaderboard, I spent a considerable amount of time analyzing bug reports, with a special focus on fixing the continued AI time-outs. This includes several major optimizations to the AI algorithms as well as an overhauled AI worker system that should hopefully resolve the two-minute timeout warning.

Abalon Wiki Coming Soon

Another long-standing community request: a central place to look up cards, encounters, and strategies. My son Wesley has built an Abalon Wiki that includes:
  1. Full card library with details on every card
  2. Details on every encounter in the game
  3. A full unit database
  4. Plans to incorporate the player community to help populate strategy guides and other fun content

I'll add the wiki link to the game and our community channels once it's live.

Coming Next

Still in ongoing development and on the horizon for release later this year are:
  1. Descent 20 and Descent 20+ : I really wanted to include this in the update, but I'll be totally honest: the leaderboard was a giant beast, and like a hydra, it just kept growing more heads the more I swung my sword. Don't worry, it's still coming ;)
  2. The Caves Expansion: Will introduce a new biome, new bosses, encounters and more! This will be our next paid DLC. No dates yet because, like everything I do, I need to feel satisfied that it's truly raising the bar of the Abalon experience.
  3. Asynchronous Multiplayer: I am particularly excited about this one as I support a world-wide community of many different timezones and play styles. Now, with a true and meaningful leaderboard competition to seal-the-deal, I suspect this could be the thing that takes us to the next level!


You're also going to find one more cool thing on that leaderboard: a timer showing when the season ends. Hint: If I'm ending a season, it means I've got something special planned for the next season. Going forward, you can use this as a countdown to the next major Abalon build drop :)


Thank You

None of this would exist without your feedback, your patience, and your support. I read your messages, I listen to your suggestions, and I do my best to make Abalon the game you want it to be. If you have a moment, leave a Steam review and tell me what you like and where I can keep improving. You can also share feedback in-game via Menu → Share Feedback.

Thank you for being part of this journey.

~Ross

Abalon is Overwhelmingly Positive!

Happy New Years everyone ! 🎉 🥳 🎉




I am overjoyed to share Abalon hit Overwhelmingly Positive on Steam... right as the fireworks were going off last night! This had been my goal for 2025, and I couldn't have imagined a more epic way to finish off the year surrounded by family and loved ones and seeing that dream become a reality.

Thank you so much for your support of the game! This is such an honor and I'm excited to continue serving you with more epic updates in 2026 😊 😂

Gold XP tomes for all players to show my appreciation! (Log out/in if it doesn't appear). 🙌

~Ross

Winter Double XP Event

Winter Double XP Event

Merry Christmas, Abalon fans! From now until January 5th, celebrate the winter holidays in Abalon by earning double XP in your adventures! During the event, all players regardless of progression level have access to the Snow biome and the biome selection option. This event bonus also stacks with your additional XP bonuses you've earned completing adventures with multiple Summoners and gaining the "Master of Many" achievements.

Have questions or need some help creating the perfect deck to max out your characters? Join our Discord to chat with me and our friendly community: https://discord.gg/d20studios

Steam Winter Sale

New to Abalon or have a friend or family member you think would enjoy the game as a gift? From now until the end of this event you can get Abalon on Steam with a great discount:

https://store.steampowered.com/app/1681840/Abalon_Roguelike_Tactics_CCG/
Note: If you're also planning to play on mobile, be sure to check out my FAQ for important information about the differences between the Steam and mobile platforms.

Showing Your Support

Many of our players have asked me for a way to help support the continued development of Abalon, so I setup a "Buy Me a Coffee" page where you can make one-time or recurring contributions.

[h2]Reviews[/h2]
I have a year-end goal for 2025 that we're so close to hitting and it would mean a great to me to have your help: I would love to have Abalon achieve an Overwhelming Positive rating on Steam. The requirements are 500+ reviews (which we have) and a 95% positive rating. We're currently at 94.88%, and I'm estimating I need only 10 more reviews or so to make it. If you've been enjoying the game and the regular updates, please give the game a thumbs up before this year comes to an end.

Thank you so much for your thoughtfulness and ongoing support :)

I wish you a Merry Christmas and a Happy New Year!

~Ross

v2.89.3 - Hot Fixes for v2.89

Thanks for your feedback so far on v2.89!


Good news: I haven't had any reports yet for AI timeout errors suggesting this update has likely helped contribute to fixing the greater issue of memory overload killing the AI workers.

Bad news: As a result of denying the AI worker full access to the application resources, a few new bugs were created where the AI was attempting to access queries/logic it can no longer access.

I sincerely apologize for this. While I tested this build extensively (20+ hours), I missed a few edge cases that unfortunately resulted in these errors. I'll be sure to add these test cases for next time. I'll also be adding some bonus XP tomes to the players who these issues affected.

More Good news: I have fixed all the fringe bugs you've identified so far. Thanks so much for your timely reports!

v2.89.3 Release Notes
  1. Fixed Bug where AI worker tried to run a query during Sandpit Arena battle/Yellowjacket Nest with the More Minions challenge (Descent 1+). (Thanks Das, Andy and Guest_314802)
  2. Fixed Bug where AI worker was still trying to run a getQueryUnits during for the Arena Gladiator encounter in Sandpit arena (Thanks BADASSMOFO)
  3. Fixed Bug where Big Beard being killed during the final match of Sandpit arena before the battle was over could result in an AI sync error. (Thanks Manchot_Royal and Arkeny)