Version 0.9.10: battle MVPs, Steamdeck improvements, bug fixes and more!
Happy holidays, tactics fans! As I predicted last month, this month was extremely busy for me with real-life stuff--and I wanted to get this latest patch out before the year-end holidays hit so that players trying out the game for the first time could enjoy it in the most stable, complete state possible.
As a result of all that, this update was pushed out on a tighter time frame than usual; as such, it is on the smaller side. Still, there's some good stuff in here--follow along as I regale you with all the cool new thingies!
First up, we've got a couple of big items that I've had on my personal wishlist for the game for some time now...
[h3]...combat performance tracking and post-fight MVP awards![/h3]

I know this goes against my past declaration that I'd be focusing on content and polish rather than new features, but I realized I could fit this in with only a day or so of work, and it really adds an extra jolt of "heck yeah" to the victory screen while simultaneously providing another vector for connecting with your characters. Seemed like a bit of a no-brainer! So here are the details:
Now, you may be wondering: can these new features later be harnessed as grist for post-fight character interactions and random events? You bet! And will I eventually do that? Mayyyybe... 😉
[h3]I also spent time this month focused on adding a bunch of fixes and improvements for folks playing on Steamdeck or with a gamepad![/h3]
[h3]Next up, we have a bunch of other miscellaneous improvements![/h3]
My favorite of this bunch are the new random physical traits characters can get, wherein characters have special reactions to certain types of food. (I've had allergies on my list of traits to add to this game since all the way back in 2011, when I first created the design document for this game!)
[h3]And as usual, we have miscellaneous bug fixes aplenty (special thanks to this month's top bug hunter, Tacitus)![/h3]
Oh and by the way, before we get to those bugs: some of you might recognize Tacitus as the creator of the extremely cool custom campaign Fate of the Wayward. If you want a new adventure to play while waiting for Together in Battle to be completed, why not go download Fate of the Wayward from the New Game menu? Trust me, it's worth your time!
All right, now on to the bug fixes:
[h3]And finally, what would an update be without some new improvements for folks making their own custom campaigns in the campaign creation suite?[/h3]
That's all for this month, folks! Enjoy the holidays to come and I'll have more for you soon! Just FYI, I'm going to be moving in January, so I'm not sure how much I'll be able to squeeze in, but my plan is to focus less on QOL stuff and more on creating endgame content.
We'll see what I can make happen. Until next time...
Tactically yours,
Craig
As a result of all that, this update was pushed out on a tighter time frame than usual; as such, it is on the smaller side. Still, there's some good stuff in here--follow along as I regale you with all the cool new thingies!
First up, we've got a couple of big items that I've had on my personal wishlist for the game for some time now...
[h3]...combat performance tracking and post-fight MVP awards![/h3]

I know this goes against my past declaration that I'd be focusing on content and polish rather than new features, but I realized I could fit this in with only a day or so of work, and it really adds an extra jolt of "heck yeah" to the victory screen while simultaneously providing another vector for connecting with your characters. Seemed like a bit of a no-brainer! So here are the details:
- the game now tracks battle performance stats on a per-character basis, both for the current battle and cumulatively across the whole game. The new battle performance stats tracked include:
- total damage dealt,
- total enemies defeated,
- total enemies debuffed,
- total collision damage dealt to enemies,
- total falling damage dealt to enemies,
- total healing provided,
- total energy provided,
- total allies buffed,
- total damage taken,
- total damage dodged,
- total damage blocked,
- total sacks grabbed,
- total traps placed,
- total objects created,
- total characters summoned,
- total number of times they've held spaces,
- total number of times deployed, and
- total number of times defeated.
- total damage dealt,
- the game now hands out little "MVP" awards on the victory screen at the end of each battle based on how much (and in what way) the characters left on your team contributed! Up to 8 different awards can be handed out at the end of each battle, with the categories depending in part on what your characters did during the fight.
Now, you may be wondering: can these new features later be harnessed as grist for post-fight character interactions and random events? You bet! And will I eventually do that? Mayyyybe... 😉
[h3]I also spent time this month focused on adding a bunch of fixes and improvements for folks playing on Steamdeck or with a gamepad![/h3]
- when using gamepad controls, the gamepad cursor now properly disappears from the screen when transitioning to a new scene.
- when using gamepad controls, after moving a character with a knockback skill, if there is not a direct-damage skill available, the game now auto-selects the knockback skill for use on an enemy who can currently be damaged by being knocked into an object or character, off of elevation, or into an environmental hazard. (This makes it much easier and more enjoyable to play with kineticists when playing with gamepad controls.)
- fixed: when using gamepad controls, after moving a character with a healing skill, the game would not auto-select a Shield skill for use on a damaged ally in range unless the ally belonged to a different army.
- fixed: when playing on Steamdeck, the gamepad cursor was not aligned quite right on item options buttons (Use, Give, Drop, Cancel, etc.)
- fixed: when playing on Steamdeck, the gamepad cursor was not aligned correctly to the item buttons in the character inventory inspection window in the reserve supplies screen.
- fixed: when playing on Steamdeck, the gamepad cursor was not aligned correctly for the day cells in the calendar screen.
- fixed: when using gamepad controls, after exiting the game settings menu in a cutscene, the game would inappropriately return gamepad focus to the underlying scene rather than the main options menu (which remained open onscreen).
- fixed: when using gamepad controls, the B button would behave like the A button during dialogue even in contexts where this made no sense.
- fixed: when using gamepad controls and selecting from a list of units in dialogue, if the dialogue tree returned to the list of units, the tooltip for the last selected character would still be showing onscreen.
- fixed: when hiring out characters, the game would show a message about right-clicking characters to see their stats in detail even if the player was playing with a gamepad.
- fixed: the Together in Battle demo was not defaulting to gamepad controls on Steamdeck as intended.
[h3]Next up, we have a bunch of other miscellaneous improvements![/h3]
My favorite of this bunch are the new random physical traits characters can get, wherein characters have special reactions to certain types of food. (I've had allergies on my list of traits to add to this game since all the way back in 2011, when I first created the design document for this game!)
- new physical trait characters can be generated with: Fruit Allergy. Gains the Sick status effect upon eating mangos or apples.
- new physical trait characters can be generated with: Sugar Fiend. Gains the Move Bonus status effect upon eating Cake, Cookies, or Pie.
- during the blacksmith rescue mission, there is now alternative dialogue for Dhatuu Dil if you speak to him with a golem or a spirit.
- you can now back out of the recruiter without losing a time point if you click it by mistake.
- reworked the pixel art a bit for puddles: reduced their size so they don't visibly hang over the edge of elevated terrain tiles, and improved the animation for them. (I have an artist working to make them look even nicer, but we will have to wait for that to be completed.)
- the game now auto-updates glow values for spirits from older versions of the game.
- added scripting to mark objectives reached for characters who take down an enemy idol or inspirational leader in the arena, or who recruit their sibling there.
- added scripting to mark objectives reached for characters who achieve certain objectives in the monkey league qualifier, battle in the dissidents' den, blacksmith rescue fight, golem attack, revenge quest battle, and battle in the northern stepwell.
[h3]And as usual, we have miscellaneous bug fixes aplenty (special thanks to this month's top bug hunter, Tacitus)![/h3]
Oh and by the way, before we get to those bugs: some of you might recognize Tacitus as the creator of the extremely cool custom campaign Fate of the Wayward. If you want a new adventure to play while waiting for Together in Battle to be completed, why not go download Fate of the Wayward from the New Game menu? Trust me, it's worth your time!
All right, now on to the bug fixes:
- fixed: when generating a spriggat without a proper spriggat class name, the game could throw a null error upon attempting to update the spriggat's portrait palette.
- fixed: the logic used by the danger displayer had ceased counting knockback skills as attack skills, causing the displayed move-and-attack range of enemy kineticists to appear misleadingly small.
- fixed: because the Kill-All Victory condition was turned off for army 0 in Attack the Idol matches, destroying the idol would not actually cause the player to win after it resulted in army 1 being wiped out.
- fixed: if, during a Psy Clash match, you had multiple minions with free-targeting (e.g. bowmen or crossbowmen) in play and the opponent ran out of minions for you to target in the middle of free-targeting, the game would softlock.
- fixed: if, during a Psy Clash match, the AI opponent had multiple minions with free-targeting (e.g. bowmen or crossbowmen) in play and you ran out of minions for them to target in the middle of free-targeting, the game would freeze.
- fixed: during a Psy Clash match, if the enemy AI chose to play a card that both affects one or more minions and a player but minions of the appropriate type did not exist in play, the game would recognize this as a valid move but would then get caught in a loop upon trying (and failing) to find a minion to target.
- fixed: during a Psy Clash match, you could click a card in your hand during the opponent's turn and the card would be played (and would behave as if the opponent had played it).
- fixed: receiving a Psy Clash deck from Rohit during the Festival of the Ascendant Lights would cause the game to overwrite whatever assorted Psy Clash cards the player may have accumulated up to that point.
- fixed: the icons for food and aura would sometimes fail to appear in the info bar, particularly when playing on Steamdeck.
- fixed: in proc gen battles where the player's characters auto-deploy and the final character in the roster had a wound level greater than 1, the game could throw an out-of-range error when queuing up the characters to spawn.
- fixed: during the free-roaming bits of cavern exploration, the introductory text had ceased to coexist peacefully with the free-roaming tutorial text.
- fixed: defeating all enemies on the first floor of a cavern would send the player back to camp instead of down to the second floor.
- fixed: the file containing the data for the Poison Needles skill had gone missing from the game.
- fixed: during recruitment, the little portrait frame that normally appears on the current selected character had stopped showing up.
- fixed: when reporting to Manbir Raksha following the attack on the royal guard informant, if the informant was not saved, certain dialogue replies led to the wrong part of the dialogue tree, causing the conversation to proceed as though the player was speaking to Prince Ajit.
- fixed: during the interrogation with Malatose about Dayaan, it was possible to navigate the dialogue tree's branches in such an order that you could end up in a spot with no available replies, forcing the scene to end prematurely.
- fixed: in the blacksmith, attempting to exit when choosing a weapon for engraving would still direct the player to the dialogue branch where they pick a name to engrave rather than canceling out. (Note for modders: this now requires dialogue trees ensconcing the blacksmith to have a branch for canceling the engraving process named "Cancel Naming"; otherwise, exiting out will return the player to branch 0 of the dialogue.)
- fixed: typing words with 'L' in them in the dialogue input field would cause the game to inadvertently save log files.
- fixed: during the Stat Advice camp event, if one of the stat possibilities was Counter Limit, the game would fail to display the correct icon alongside it.
- fixed: one of the greeting line variants for Imaginative characters was missing a period.
- fixed in version 0.9.10a: the confirmation button for leaving the Shop screen had become unlinked from its function, trapping players in the shop screen.
- fixed in version 0.9.10b: non-skill red action tiles in combat (e.g. for Talk, Give, and so on) had broken due to a different fix from last month.
- fixed in version 0.9.10b: item sacks and bridges had become impassable due to an optimization in the game's pathing logic combined with the game failing to save a boolean "isCharacter" flag correctly.
- fixed in version 0.9.10c: traps had broken again due to me once again accidentally overwriting the file that contains their scripts. (Sigh.)
[h3]And finally, what would an update be without some new improvements for folks making their own custom campaigns in the campaign creation suite?[/h3]
- new script action: ReplaceInList. Systematically goes through a custom list and, upon finding a particular entry value, replaces it with a different value. Three parameters: List Name, Entry Value, and New Value. Optional fourth parameter: Allow "Contains" Matches. (If this last parameter is set to true, the game will count any value containing the Entry Value as a match.)
- new script action: MarkObjectivesReached. Sets a special internal stat for the named character of the type "Objectives Reached," stored alongside other battle stats and used in the algorithm for determining MVPs at the end of a victorious fight. Two parameters: Character Name and, optionally, Amount.
- new optional parameter for DamageUnit, DamageUnitAtCoords, DamageCharAtCoords: Attacker ID. Allows you to supply the unique ID of a unit and have the game treat that unit as the one producing the damage.
- new unit tag supported: ModItemSFX. The tagged character gets a specific status effect whenever they use an item of the named type.
- fixed: shops in the cutscene editor had broken, throwing a null error when displayed.
That's all for this month, folks! Enjoy the holidays to come and I'll have more for you soon! Just FYI, I'm going to be moving in January, so I'm not sure how much I'll be able to squeeze in, but my plan is to focus less on QOL stuff and more on creating endgame content.
We'll see what I can make happen. Until next time...
Tactically yours,
Craig