Patch 0.4 - Ammo, Radiant Passives, Editor Enhancements

Cantata Patch Notes v0.4

Our last patch fundamentally altered how Cantata is played. We simplified the supply and region system to make the game retain the strategtic and tactical complexity we want players to sink their teeth into, while at the same time making the game immensely more playable.

There was one seemingly small feature though that was meant to be part of that patch that we are proud to say is finally here, and with it rounding out the “new” Cantata - Ammo. It sounds small, but as anyone who took part in the playtest (join the Discord for more info!) leading up to this release can attest - it fundamentally alters how the game plays.

Many units that can attack with some non-melee weapon now require ammo of a specific type to attack. You can find this requirement in the unit’s UI when selected. Fans of tactics game are familiar with the concept, but with Cantata’s emphasis on logistics, it takes on a bold new form. Ammo is a resource like any other supply type that can be loaded and moved between units, as well as moved through regions via supply networks. Units can draw ammo from their own local storage, the region they are in, or the supply network they are in. This places a much larger emphasis on established supply networks, as a dependence on ammo means you’ll want to both keep your fight as close as possible to your base of operations, while also pushing forward into enemy territory with outposts to make sure you stay supplied as you attack their front.

In addition to Ammo, we’ve also put in the first pass of a new feature of units, Radiant Passives. Unlike normal “project”-based passives, i.e. ones that are activated from the unit’s menu, Radiant Passives are emit automatically to one of three places:

  • In a tile range of a unit
  • In the region the unit is in
  • In the supply network a unit is in
    You can find if a unit emits a radiant passive by checking the small box in the bottom left of a unit’s UI, and any unit recieving a radiant passive will show it in the top right of their UI. Mousing over either will show you where you are getting a passive from, or where the passive you have is going. Passives in currently increase movement ranges and a few other things, but we’ve got more items planned that we think will add even more depth and flavor to the unit rosters.

And then as always, we’ve got a littany of other small features, quality-of-life enhancements, bugfixes, and more. If you’ve submitted a bug report through the in-game feedback tool or mentioned a bug on Discord, chances are that your bug is addressed in the patch.

What’s next?
Well we’re taking a small break for the Holiday season, but right after that we’ve got some major things cooking:

  • Fix the AI bugs
  • Add in Skirmish AI
  • Flesh out the map generator (and allow it to be used in skirmish)
  • Workshop modding
    We’re a very small team these days, so bear with us still as we get all these things to you, but I can truly say that everyday Cantata is becoming a better and better game, and I hope you continue to show us love in the future as we build this game to be all it can be and all that we’ve dreamed of.



  • Ammo
    • Many units that can attack now require Ammo of a certain type to attack.
    • Ammo types vary per faction, and in all cases are a resource type a faction already had access to through their buildings.
    • Units can access ammo to attack through their own personal storage, region storage, or network storage. The game will attempt to use ammo for a unit in the reverse order of that (priotizies using network storage, then region storage, then local storage).
    • Ammo requirements can be found under the attack icon in a unit’s ui
    • Units that use ammo spawn with a number of that ammo already in their storage. This means you get a few “free” attacks before worrying about ammo.
    • We also tried to make sure to allow previewing of unit movement actions to display if ammo would or wouldn’t be available at the destination tile. This means if you’re in a region that gives you ammo, but you are trying to move outside that region to one that would make it such that you don’t have ammo, the movement preview unit will show an “out of ammo” icon.
      • This “out of ammo” icon will also show on a unit when it is out of ammo and has no ammo source for any of its possible suppliers.
  • “Radiant Passives”
    • Units can now emit a passive effect to other units around them, in the same region, or in the same supply network. This effect can also be specificed to be only enemies, only teammates, or only the owning player of that unit.
    • You can view if a unit emits radiant passives by looking at the small box in the bottom left of the unit ui.
    • A unit recieving a radiant passive will show that passive in the top right of its ui.
    • Mousing over either will give you a tooltip of info about the passive, and also show you where you are getting the passive from/who you are giving your passive to.
  • Transfer Region Inventory to Units (or back)
    • Units can now transfer region/network storage to themselves if in a region.
    • This will appear to the right of the Unit ui. Clicking the item will put it in your storage (if you have local storage).
    • Units can put valid items back into region storage by clicking the small right “transfer” arrow that appear on hover for a storage item.
  • Infrastructure provides population
    • Population limits used to be increased by just captuing a region. Now population limits are increased through the building of infrastructure. You can find how much population an infrastrcuture increases pop limits by by hovering their build icon.


  • Infrastructure options that can be built in a Region will appear below the region name UI when using the “R” key to view Region names. These can be clicked on and built directly into the region without needing to open the Region UI.
  • Generally better performance
  • Storage heavily simplified
    • No more inner-slot stacking. This was a legacy requirement of the old supply system, but upon deeper inspection we realized we didn’t need it. Units can now store a max of six items in their storage.
    • Another benefit here is that we can give “full” tooltips on units in Storage now. So mousing over a storage slot will show you the info for the unit in that spot!
  • Added in the ability for players to start with some resources automatically in generic skirmish play. No more waiting 5 turns to do something.
  • Finally fix region borders - region borders no longer overlap!
    • Additionally, region hovering was a little weird. It’s now “perfect”.
  • The feedback form can be opened with F8 - this also takes a screenshot for the feedback form.
  • Added in a scaling option for tooltips! This is independent of match ui scale, so you can have your tooltips be scaled smaller or larger than your UI.
  • Save/Load panels in load much more quickly. A downside of this is that old saves for the campaign need to be accessed in the skirmish menu. To migrate your old save to a new save, just load the old save and resave it.


  • Save loading issue should be fixed (for now)
    • Many people reported an issue with loading saves not working. We found a possible culprit bug of this an fixed it, but if it persists please let us know.
    • Note that the game is in EA and we do not guarantee backwards compatible saves (for now). We do our best to migrate saves on load so as to not lose progress, but make no guarantees.
  • Placing infrastructure in regions won’t be blocked by the Region UI.
  • Fixed the mining indicator to behave properly.
  • Resources will properly display in tooltip (and not showing when they shouldn’t be)
  • Fixed and issue where loading into some units, like the conscript, was bugged (@moonstone)
  • Networked play won’t desync when game is in background


You know we have a deep map editor right?? We literally build all the in-game campaign maps and skirmish maps in the exact same editor we ship with the game. And it isn’t some programmer-only thing - we put a lot of time and effort into making sure it’s intuitive to use, performant, and actually kind-of fun. We add a lot of stuff to the editor each patch, but I thought it would be nice to call out some stuff specifically this patch for all the modders out there.

General Updates

  • Scenario Variables
    • Scenarios now have the ability to have arbitrary variables inside of them!
    • These values can be used as generic data stores for your own maps, and can be set/modified with trigger actions (and their values checked with trigger conditions).
    • These open up a world of possibility for maps and are the kind of thing I always thought would be cool but seemed too hard or difficult to have for Cantata, but now they’re here!
    • A simple example of a nice way to use them is to setup a variable that increments every turn, and then have a modifer that mods that number by some set amount, and a condition that checks when that variable reaches 0. This would give you an easy way to set up something like “do this every X number of turns” - something so far not possible in the editor!
  • Added the ability to select “palettes” of sprite options inside a given terrain. This allows you to better control random placement of a given terrain by choosing only a subset of the options in a terrain. This is great when you want to randomly place down terrains (hold R) but dont want to use every sprite in a terrain. It’s great for terrains that are all the same type but have variations based on biome (like trees).
  • You can delete players!
    • Deleting players previously would break the map (sorry!). Now you can create and delete players in the editor at will.
    • Note that deleting a player will also delete any units they own / triggers they are a part of / etc.
  • Migration
    • We don’t save every stat a unit has with the map files, but we do save some of them and respect that when a map is loaded (we won’t re-init your saves with the latest unit data). However sometimes you do want the latest version of a unit, so we added in the ability to “migrate” a unit its latest data version.
    • To migrate an individual unit, click on the unit in the editor, and if it can be migrated just click migrate.
    • To migrate all units, in the match menu for the scenario, click the migrate button, then click “migrate all”.
  • Resource are no longer tied to a specific terrain type! You resources directly on the map through the resource editor.
    • Want tress to be your resource type? Have at it!
  • Player profiles can be configued to have starting resources.
    • The way these work is that, for whatever regions a starting zone a player is placed in overlaps with, that region will get those resources. This means its possible to have regions with multiple instances of starting resources if you made really large starting zones (but you probably shouldn’t do that anyways).
  • Interactables / Base / Detail panes in editor load much faster and load incrementally.
  • You can now select ability to select “palettes” of sprite options inside a given terrain. allows you to better control random placement of a given terrain by choosing only a subset of the options in a terrain. great for terrains that are all the same type but have variations based on biome (like trees).
  • Added in more addon terrains into the game
    • Did you know there are a ton of free to use terrains in the map editor that we don’t use at all in the game? Scroll past all the “Cantata” stuff in the Terrain/Detail options to find them!


  • Added in the ability to duplicate a trigger / trigger action / trigger condition.
  • Many trigger actions and conditions that used to only work with an interactable type now have the ability to also select an amount (as well as other options).
  • New Trigger Action: Add Items to Region Storage
  • New Trigger Action: Destory a number of interactables of type in locations
  • New Trigger Action: Modify variables. This allows you to perform math operations on float or int variable values.
  • New Trigger Action: Set variables. Directly set the value of a map variable.
  • New Trigger Condition: Variable at value.


We’re constantly tweaking the game to try and ensure rough balance but also just “fun”. As the design changes stablize will get a better sense of the balance needs, but for now feel like we’re moving towards somewhere nice.


  • HQ now makes small arms
  • Arms Factory now only makes heavy arms
  • Get rid of old Refinery - new Refinery makes Engines + Oil.
  • Radio Tower Vision up to 8, Explore range up to 16
  • All human infrastructure produces 8 pressure
  • Human skirmish starting units changed to be 5 conscripts and a Rickshaw


  • General pressure amounts changed (for skirmish)
  • Cherubin surge move cost up to 4


  • Summoner now costs 3 pop


  • Added 30 starting alloys and move one resource node to scorched battlefield


  • Grant the player 50 Whispers after the player defeats the enemies on the Forest Opening region.
  • Removed the Shrine building at the start of Ch2, and removed the first 30 whispers that were being granted to P1 when the game started. Now P1 wont have whispers available until it clears the objective of “Forest Opening”.
  • Disabled the “Let the remains be untouched” dialog when the player first encounters P2 remains on the map


We tried something new this time around for this patch. Instead of just releasing the patch into the public, we did a small round of public playtesting over the past week or so with anyone interested from the Discord. Needless to say by the notes below, it went really well. Moonstone, Anoc, and TotallyNotAVoyeur were total champs and helped us squash bugs old and new that came with the above changes. I wanted to call out here the bugs they helped us find as a special thank you. We’ll likely do this again in the future, so join the Discord if you’re interested in taking part!

  • Fixed issue where deselecting a unit while moving blocked turn ending (@moonstone)
  • Fixed issue where conscripts were unable to unload (@moonstone)
  • Campsite tens now have 1 movement cost (@moonstone)
  • Fix issue where exiting a match while region ui was open would deadlock the game on new match loads (@moonstone, @anoc)
  • Transforming (like conscript to encampment) ports over storage if possible (@anoc)
  • Fixed issue where players were unable to save on ch2 (@totallynotavoyeur)
  • Fix bug with building units showing wrong ammo icon and bugging the map (@moonstone, @TotallyNotAVoyeur)
  • Prevents building while a unit is moving (@moonstone)
  • Fix resource node bug in ch3 (@anoc)
  • Fix issue with passives not working for Psalm (@anoc)
  • Fix issue where passing a turn with a unit selected would bug the game (feedback form)

And with that we come to a close! To everyone that provided us feedback and bug reports to help us get here, thank you and keep it coming! We’ve got more fun stuff around the corner and want you all to stay along for the ride as we approach 1.0! Thanks so much for reading and see you in game!