project-image

Lancer Tactics

Created by Olive

Be gay // do giant robot crimes. A mecha tactics game adapted from the Lancer TTRPG (under its third-party license). The game is NOW AVAILABLE on itch.io!

Latest Updates from Our Project:

Module editor & celebration livestream
5 months ago – Mon, Apr 13, 2026 at 06:09:49 PM

Hello! Three things:

  • New monthly build is live. As always, your itch.io download key can be found in your Backerkit digital rewards.
  • We're doing a celebration livestream on the 15th (two days from now) at 3-5pm PST. Here's the youtube stream link. Josh and Carpenter will be joining me IRL as we play Lancer Tactics (I so rarely actually play the dang thing) and do a Q&A about the game & the process of making it; if you have questions for us you can drop them in this google sheet.
  • Writing up the promised Kickstarter report card has been more emotionally taxing than we were expecting, so it's not ready today. I'll be posting it on the 15th along with the stream. We just need a bit more time to go over what happened & how we feel about it.

Other than that, here's the changelog for this month's build:

Highlights

  • module editor enabled, experimentally. This basically a mini visual novel maker that can stitch combats together with downtimes & narrative beats.
  • can upload and download modules to and from mod.io
  • placeholder portraits for the new stock pilots, from the kickstarter backer rewards
  • added distance ruler tool (holding shift, same as the editor)

Content

  • a buncha new ability FX and SFX
  • another batch of new portrait assets: skin colors, tattoos & face smudges, hats, jewelry
  • added cataphract and engineer NPC tokens
  • new sound fx & music mixes
  • Added "eject pod" fx for downed lancers and certain NPCs.

Character Sheet / Roster

  • automatically remove unaffordable licenses/talents/cbs/frames
  • buttons to randomize callsign/name
  • increase character limit for barks (from 64 to 128)
  • fix npc character sheets not having name/callsign
  • pilot roster entries are collapsible (we still might go back to list view, but this should make it less noisy)
  • fix creating duplicate "custom pilots" sections when creating pilots from the category + button

Mechanics

PC

  • can siege ram setpieces
  • vlad doesn't don't dismember self when using crack shot or grappling
  • fix symbiosis switch control situational action not showing up
  • remove arcing from siege cannon direct fire
  • minotaur correctly loses all its speed when entering engagement with other characters; it doesn't count as larger when it's initiating the engagement
  • minotaur can pick up the payload (previously, it was not able to enter the minotaur's space due to localized maze lol)
  • annihilation nexus centered on a drone doesn't trigger your own turrets & correctly enables the followup protocol attack
  • can apply Leadership dice to attacks you make from drones
  • predator/prey concepts can use variant actions like thrown (but so can predatory logic now)
  • can puppet systems allies through other allies
  • held image only triggers at the start of other mech turns, not drones
  • fix dusk wing explosions not catching nearby units/playing the explosion fx
  • fix: hunter lunge fails to trigger drag down damage
  • fix weapon type restrictions (and lack thereof, respectively) for seeking payload and avenger silos
  • don't autoconsume all lockons when attacking with a launcher from a monarch
  • fix cable winch drag only working when starting adjacent
  • grease monkey III charge no longer resets whenever you spend any repairs
  • prototype weapon charges are only rerolled on full repairs
  • multiple Open Channels no longer can affect the same character
  • a bunch of fixes having to do with the ghoul nexus; it now overwatches from where it is instead of trying to do so from the unit & can recall it
  • lockbreaker doesn't lock out UNCLE weapons
  • not locked out of lockbreaker movement forever if you ever decline it
  • post-attack lockbreaker happens after followup aux attacks
  • can lockbreaker a skirmish from an overcharge action
  • fix deep well heat sink priority so it affects type 1 flight system
  • balor self perpetuating repairs during downtimes; not just at combat starts. Full repair beats actually full repair.
  • drake fortress CP provides knockback immunity to all sources + correctly ignores brace restrictions
  • fix combat drill overkill heat not corresponding with its bonus damage

NPC

  • Can try to break grapples from harpoon cannon & lasso
  • assassins mark is no longer shared between all assassins
  • engineer turrets aren't affected by engineer's impaired status
  • hard AI round cap on mobile printer being used multiple times per round
  • fixed berserker doing fall damage to itself when harpooning a larger character
  • fix witch's Blur never applying
  • Hive's Razor swarm is no longer a character (again? I stg I've fixed this before)
  • charged slash should no longer be used on allies ++ have the AI make the choice if the AI gets targeted in some other way (eg player-controlled ronin)
  • fix breacher thermal charge sometimes not moving because it tries to either target the line on the way there or some unreachable final target
  • scout rebound scan correctly auto-hits allies
  • scout pathfinder boost correctly consumes rxn

Engine

  • fix infinite range attack glitch when you have to disambiguate targets for a melee attack
  • fix teleporting while going in a straight line causing you to teleport individually for each step
  • soft-cover setpieces grant soft cover when you fire through them instead of only when the target is standing within them
  • invading allies no longer clears hidden since it doesn't count as an attack
  • can move payloads when dazed, but no longer stunned
  • Jericho cover no longer gives hard cover to itself
  • Rider units (latch drone, mule harness) do not take fall damage when their host carefully climbs down a cliff.
  • correctly reapply buffs when a kit is repaired (e.g. ultra siege armor resistance)
  • oasis wall doesn't deploy on tiles you're currently occupying for size 2+ units
  • fix escort+extraction not extracting the payload // triggering victory.

UI/Graphics

  • new combat start/new round/combat resolution banners
  • don't offer to consume leadership dice for bonus damage when you can't deal bonus damage with the attack
  • fix stabilize heal option desc when at full hp
  • fix meltdown causing the game to hang out for like 10 seconds afterwards. punched up/fixed meltdown camera shaking
  • fix "immune to knockback!" spam when targeting grav gun
  • numerous positioning fixes for stationary fx like shields
  • aoe lines and cones can target spaces outside of their elevation range, but the AOE tiles themselves get filtered out later. warn if doing an AOE attack with no targets.
  • heavy gunner rank 3 shows laser pointer at both of its targets
  • duck the music when in the pause menu
  • fixed NPC cloaking field aura size
  • brought default mech colors into new color systems
  • remove duplicate confirmation for eye of horus
  • show Action = NONE actions in the gearbar, for informational purposes (autogun, autopod)
  • show limited charges in glossary tooltips again (asura)
  • fix sentinel drone warning showing at too many tiles
  • only ask to confirm canceling portrait maker if no changes were made
  • can retry failed battles
  • fix water block being too tall in map previews
  • setting input keys no longer fails if it would clear another control
  • fixed bug where zooming out sometimes made hologram units totally disappear
  • can cancel/zoom in/zoom out while mouse is over the void
  • fix Control score sometimes not updating correctly
  • change cursor shape when hovering over texture buttons like Back
  • fix overcharge icon resetting to start after the fourth
  • full repair clears "melted down" state and lets your mech start showing up in the UI again
  • maybe(?) fixed errant black squares on crt-filter UI elements
  • can advance through dialogues by pressing space in addition to clicking screen
  • adjust cloaking field fxe to be less seizure-y
  • add terrain information to the distance investigator
  • defense net doesn't spam text on units moving within
     

Editors

  • add summary text entry to combat tool, which can be used for the intro banner playing
  • re-enable unit save-as button in combat editor
  • resizing map no longer fills in the lowest elevation with blocks
  • unit palette has a search bar, bigger sprite buttons, and lists deployables/markers with their name instead of a blank image
  • Added missing localizations for the new setpieces+doodads (crate, crates, consoles, etc)
  • removed "my_first_map" as the default map when you open the editor for the first time; instead, highlight the "new" button
  • add "downloads" list to the editor file lists (alongside "user" and "stock")
    don't fit the beat dropdown to longest beat name
  • dialogue blocks can stay available after being run
  • fix landscape block previews not having their side textures shown
  • No longer able to level up freely during full repairs within a module; show warning mark when there are unallocated choices for a pilot.
  • Beat dioramas will fall back to camera start zones // center of map if there's no mech slots
  • image media can be webp/jpg in addition to png

Triggers

  • add "rename unit" event
  • "Use" zone event: flag to make "use" zone actions reusable, can specify what units are permitted to take the action
  • Can add and remove lancers to modules via trigger.
  • add module trigger that modifies a unit's sitrep tags
  • Added extraction event to just remove a unit from the map, with flags to skip fx/logging
  • combat start is now the default trigger event, sorted the list alphabetically
  • Terrain getting damaged can trigger triggers
  • change faction unit counter to skip drones (so restock drones don't prevent elimination victories)

Dialogues

  • added 5-person conversation layouts
  • be able to add conversation lines after the selected one, and playtest from the last selected line
  • Fix crash on pasting line breaks into a conversation line
  • fix behind-choice word bubbles blocking choices
  • added a "handshake" stage direction for conversations

Internals

  • instead of making a ton of "_savefile" combats and littering the user directory, added an option to the pause menu that explicitly saves combats that we don't already have (so, given a only an Instant Action/editor savefile, you can still extract the map into your own editor)
  • refactored how mechs are assigned available sprites/meshes internally to set us up for easy modding-in of new graphics in the future
  • F11/F12 no longer win/lose combats; added them as console cheats instead

We're so near the finish line for the kickstarter, I'm so tired, gonna land this plane. See ya later.

Olive

3-year anniversary! (update next week)
5 months ago – Wed, Apr 01, 2026 at 05:52:11 PM

It's been three years since Lancer Tactics funded!

We're still putting the final screws on the final-Kickstarter-phase build of the game & accompanying report card I mentioned last update, but I wanted to mark the day so here's a little amused boosh (bone apple tea):

LT started as a demo I cobbled together from asset packs while traveling & crashing on couches in an attempt to learn Godot so I could make a sequel to Crescent Loom. It's now supporting us as a burgeoning game studio(? idk we're still mostly contractors) & we get to pay artists & I get to work with my friends doing the thing I feel like I was made to do every day. I don't mean to brag, but it rules.

So: ty ty for backing this project and sticking with us and reading these updates for three years. More to come soon.

Happy Lancing, Olive

Discord, Trailer, all NPCs, Steam wishlists, itch.io #1 bestseller??
6 months ago – Tue, Mar 10, 2026 at 04:21:17 PM


(due a ✨wrist injury✨, I'm writing this with voice dictation // one hand. So please excuse if there are more typos, or weird formatting than usual.)

Hot diggity! A lot happened this past month! I find myself forced to bury ledes with other ledes.

Discord

We quietly launched our own Discord server a few weeks ago, at long last! Here's an invite link.

As a tech-company-hater, I find myself unable to be *overly* enthusiastic about channeling a community into another walled garden, but as things currently stand there's simply no other platform that works as well for hosting this sort of thing. My heart yearns for a world where we were doing straight forums or IRC or something instead; I'm squaring it by saying that our documentation will never solely live in a Discord server; the intention is to set up an ad-free community wiki (like how Guild Wars does it) once we get to our "documentation and onboarding" phase later this year.

Anyway, it's a good time over there! We got highlight reels, bug reports, (still unofficial) mods + maps, and when we need quick feedback on a feature or additional content that's where we ask it. Eld and Darloth are our first moderators; you may recognize Eld from the approximately ten thousand other Lancer servers he's moderated, and Darloth from modding the rest of the Rebake grunts into LT.

Giant Bomb interview

Giant Bomb (which went independent from Fandom last year! Congrats to them!) reached out and I sat down with Chuck for a *checks notes* one hour and twenty minute "quick look" where we made a character and played some Lancer Tactics on a call. It was an honor to be showcased by such a prestigious channel; love to see what they're doing in the aftermath of such a roller coaster of a journey as a publication.

Trailer

Look at this! A 60 second video by Michael Cox that showcases what Lancer Tactics is all about! Critics (disclosure: me) are saying it's the best game trailer to ever be made?? Wow.

An interesting aftershock/anecdote of posting this was seeing an aggregator youtube channel re-upload it (adding "official trailer" text to the thumbnail). At time of writing, has 150,000 views; 10x as much as our own. I'm of two minds; views are views regardless of provenance, they were mindful enough to include a link to our Steam wishlist page (more on that in a second), and it was genuinely nice to get a significant bump in visibility without having to hit the media circuit.

However, this appears to be a channel that consists of entirely other people's work, with the primary value-add is aggregation. The business plan is a clear numbers game: re-upload every single game trailer you can find & get ad revenue from the few that happen to take off. Fascinating.

Steam wishlist page

In preparation for a post-Kickstarter-funded world, we now have a presence on Steam; you may wishlist Lancer Tactics at your leisure.

As a reminder, we still have a fair ways to go post-Kickstarter to get the game Steam-ready. To the best reception there as possible, I believe it needs additional single-player content, controller support, and better new-to-Lancer onboarding. We are currently aiming by end of 2026, but that's not set in stone. And to answer the inevitable FAQ: yes, if you've backed the project on Kickstarter or bought it on itch, you will receive a Steam key once they become available.

Funny story: a general rule of thumb is that you want to, through months of effort and posting and media pushes, build up to at least 10,000 wishlists before you launch on Steam. Here's, ah, here's where we ended up after the first week after we pushed the trailer and page live:

Over 33,000! Y'all really like Lancer, huh. And as this makes clear, it really was the visibility from the repost channel that provided the biggest chunk of those. Fascinating. Well, that makes our job easier & will make prepping for that launch *so* much less of a nail-biter.

Itch.io #1 bestseller?

At time of writing it looks like we've dipped down a little bit, but in the wake of all that visibility, Lancer Tactics has been hovering around the top slot for best-selling paid game on itch.io. That's wild!!! And has a few implications:

  • for the first time since the Kickstarter completed, we'll be able to start paying ourselves. Other than our initial payments, the three of us in the core team have been doing this work on-spec for years and it was getting a bit tight. We're aiming for $1k a month each, which might barely be sustainable at this rate. It feels like after carrying LT for so long, its engine has revved up and has started being able to help carry us.
  • itch.io must be making, like, no money?? If this is what peak performance for paid games looks like, I really really hope they have a long tail or a sales leader elsewhere on the site (game assets maybe? or nsfw comics?). God bless them & their small team for making such a great platform.
  • we've been considering doing Early Access on Steam in order to help relieve some financial pressure on ourselves. If that can happen through itch alone, we may be able to avoid putting ourselves through the Steam ringer and stay in the comfortable game incubating environment here instead.

Wrap-up

Hey! Our target end date for the Kickstarter-funded 3-year development cycle stretch goal is at the end of this month! That'll mark the three-year anniversary of Lancer Tactics. Because being graded is fun, for the next update I'll be writing a report card & postmortem for the project. What did we do? What did we say we would do? What did we do that we didn't say we would do? Tune in next time!

As always there's a new build out & ready too, on itch.io. Here's the changelog!

Changelog

New Stuff

  • Finished optionals for all the remaining in PCs: archer, assassin, barricade, bastion, spector, pyro, hornet, goliath, hive, engineer, breacher, scourer, aegis, ace, seeder, mirage, bombard. This was a two week dead sprint to finish! (and I am sure entirely unrelated to the wrist problems) I'm v happy we'll be able to check NPC classes off the report card.
  • more icons from Alicia; talents and Core Bonuses
  • more sfx from Robi
  • new shield fx for systems from Jude
  • melting down adds a persistent fx to that unit
  • From connor, the barricade cube is no longer a plain gray box; it's now a gray box with *hexagon indentations*

Misc

  • added "randomizer" kits that you can add to opfor units to get random different optionals
  • added "randomizer" NPC classes to get a random striker, controller, etc
  • reinforcement groups now control whether they deploy randomized, not the event; can toggle it in Instant Action screen
  • Add setting to skip shader warmup on first load
  • change the baseline level of the out-of-bounds so elevation 0 sticks out of it

UI

  • "add pilot" button straight on each folder
  • added button to expand/collapse "using action" text boxes
  • Show attack bonus and accuracy for NPC weapons
  • attack preview lists potential reactions for that attack (not guaranteed)
  • added this sick tile-dissolve effect, inspired by watching my gf play Marathon (which itself was inspired by the artist Antireal)

Character Sheet

  • Character sheet got a design facelift from Alicia.
  • show weapon type restrictions in weapon mod tooltips
  • NPC character sheet can toggle an unlock and add any NPC system
  • fix back button on character sheet not get shaded out by modals
  • added ability to offset portrait slices with an awkward dpad. prompted by an actual code contribution from Darloth
  • unit barks can talk about speaker or target

Portrait Maker

  • Portrait maker got a design facelift from Alicia.
  • as seen above, added "background" slice type that is kept somewhat separate from the main portrait so it can be clipped differently in dialogue panels
  • Did a color overhaul; there's more options, a better yellow and red, and better contrast for very dark or light colors.
  • Carpenter rekeyed many assets to have better contrasts
  • sorted hair options by length
  • Add 4th color channel to pilot tokens so they can have skin + 3 outfit colors

Editor

  • added a system of "sitrep tags" for units, so triggers and the editor can mark & check arbitrary tags onto specific units. These persist through multiple combats and event full repairs so could be very powerful for module makers!
  • can set colors of the out-of-bounds area
  • can add nametags to speakers for conversations
  • added "unseen" makeup for characters, to have them show up and take up a slot but not be visible; can use for someone talking from "off-camera"
  • move long speech bubbles to keep them onscreen
  • added additional things to check to the unit bool trigger fetcher ("is_mech", "is_drone", etc)
  • added "is this unit a grunt/other template" fetcher
  • Added fetcher for if setpiece or doodad or block are destroyed at tile
  • added a flag to the unit death event to skip the explosion
  • update level filename display after saving in editor
  • increase size limit for compression/decompression to 1MB for complicated map geometries
  • significant refactor of block-rendering system to allow only rebuilding portions of the map that need it on map editor changes/map damage; from 100ms on a change to like 4ms.

Bugs

  • fix the fact that I broke barks last month
  • fixed up z-indexing and cycle wrapping issues in mech catalog screen
  • fix losing the selected sitrep in instant action config on save/load
  • can no longer double-equip ammo case
  • fix iskander mine deployer triggering off itself, allowing dumping all your mines at once
  • fix: reinforced cabling grapple swing and drag down should both be usable on the same turn
  • better flank trigger UX when attacking multiple possible units
  • fix stasis shield not correctly providing soft cover & blocking attacks
  • gravity gun can now be blocked by heavy frame
  • can correctly trigger duelist III with non-main weapons
  • fix both semplar vigilo + covering fire being able to trigger on the same movement
  • jackhammer round does the damage it's supposed to & only knockbacks characters
  • asssassin drone can now redeploy correctly
  • can't use Leadership talent to issue orders to drones
  • only ignore adjacent hard cover if we can see around/over it
  • cancel actions if they were somehow disabled following comp/con assist movement e.g. getting jammed from a witch's chain on your way to attack
  • fix situation where events are sometimes skipped if queued by a child event; aka boosting now clears hidden correctly
  • fix being able to use a CP multiple times by overcharging on a subsequent turn
  • lucifer no longer consumes two charges
  • Fixed annihilator targetable tile calculation during overwatch
  • can use "shift payload" even when you're out of speed
  • drones don't contest payloads, and payload no longer reports that it's contested by mines, drones, & sealant goop
  • can't move payload when intangible or flying and not adjacent
  • can't stabilize your reactor when you have 0 stress
  • don't show wreck token in chits until you're actually dead with 0 stress
  • gravity gun movement ignores fall damage unless the target point is at least 3 spaces below the target unit
  • Deep well heat sink persists longer so it can affect other at-end-of-turn-effects
  • Fix double grapple application
  • Enforce all attachments need to be adjacent
  • fix countdown and reset for Gunslinger Die when using IKWMH on an AOE aux
  • gunslinger die resets on rests (aka spending repairs in downtime)
  • give integrated weapons an "integrated mount" tag on their tooltip
  • firing ordnance weapons as freebies is just fine, actually; stabilizer mod doesn't permanently disable vorpal gun
  • can't leader open channels for nonmechs
  • Lockbreaker only locks you out of future attacks if it's not from a rxn attack
  • Lockbreaker correctly interacts with integrated weapons like Fuel Rod Gun
  • can't lockbreak on a second normal attack on a turn
  • Change order of triggers so integrated weapon happens before lockbreaker movement, so it doesn't look like you're lockbreaking the integrated shot
  • engaging an enemy with lockbreaker (or any other system) on their turn saps their current speed
  • apparently orochi drones and acrobatics rxns were not supposed to be limited per-round
  • drone atks don't suffer impairment when their owner is impaired
  • don't clear prone when gear that caused it is destroyed (eg that one demolisher trait that I'm forgetting while I write this)
  • Fix cataphract impale not having its grapple clear correctly, allowing spooky grapple-at-a-distance
  • Fix cataphract impale's targets not clearing until-end-of-move abilities at the end of the movement (ie Metalmark flash cloak)
  • demolister's destroyer to 6+ recharge & full action, jets cost 4 heat
  • fix pyros trying to use their flamethowers through walls at targets they didn't have LOS at
  • fix ace barrel roll not being on recharge
  • archer suppress impairs target
  • sniper's moving target correctly costs a reaction
  • engineer flak cannon only +acc against flying targets
  • engineer target designator actually works
  • ai avoids going into firebreak shield (at least a little better)

It was a bit existentially touch-and-go there for a week or so but it now looks like my wrist is on the mend. Remember to stretch; angry tendons and nerves are no joke & will stop you from being able to touch keyboards.

Olive

Final talents, shield fx, more NPC optionals
7 months ago – Fri, Jan 30, 2026 at 10:14:51 AM

Hey! There's a US national shutdown/strike today. From Josh: "If you’re able, today’s a great day to disconnect from the system: stopping/leaving work, not engaging in commerce, staying offline, etc." I'm going to keep this post to the basics to just get it done & then go log off. The policing of borders is a pillar of colonial power, and ICE's brutal murders in Minneapolis are examples of its violence being turned inwards towards the imperial core. It needs to be abolished.

As always, the build is available on the itch.io page, and your download keys for such can be found on Backerkit.

New Stuff

  • Added final PC-side talents: Siege Specialist, Skirmisher, and Leader.
  • Added NPC optionals for: Demolisher, Assault, Ronin, Support, Cataphract, Priest, and Operator.
  • Added several new maps designed by backers.
  • So many more icons from Alicia! All licensed gear now has a unique icon.
  • Jude's been busy, fx-wise; added support for persistent shields:
  • Added support for "line" fx such as lasers and lightning bolts:
  • New teleport fx:

Misc

  • Through some experimentation, discovered that the exported game was +160mb biggger than it needed to be because the exclude filter isn't working for raw audio assets, so can now start deleting that before exporting
  • Added new setting for skipping fx delays; no longer have to wait and watch ability animations complete.
  • Added "autozoom enabled" setting to stop the game from zooming in on the action
  • Lancaster cable winch no longer allows you to climb freely; rules text is ambiguous if it was ever intended to give you infinite free climbs, or was a sort of simulationist appendix where you could lower your cables for other people/use them as a grappling hook. In any case, it was redundant with Death Head's magnetic clamps so I'm making the call to drop it.

Bugs

  • Fixed infinite spawns of the final enemy in a sitrep.
  • Fix not being able to move the payload if you have any drones deployed
  • Indicate when the payload is contested with the pointer text
  • Moving payloads can be done regardless of height differences. It feels funny but helps prevent softlocks.
  • Fix control sitrep not ending in defeat if you don't have a higher score
  • Fix holdout never ending in defeat
  • Fixup pass on tutorial -- a fair amount of details had broken or needed to be changed
  • Can only take triggered free actions (e.g. disdainful blade) on your own turn
  • Fix burst AOE not taking elevation into account (other AOE types still don't... and I think it'll likely stay that way to allow for airburst flexibility)
  • Refactored how units are classified under the hood; should now have better rules adherence to the Characters vs Objects dichotomy and drones will stop being hit by abilities that hit objects.
  • Also refactored how characters stack up e.g. mule harness, symbiosis, or moving a payload. Should be less likely to get snarled up when there's also other attachements like grapples in the mix.
  • Can climb off of mule harness as free action
  • Orochi drones can fly if their hydra can
  • Fix Agni protocol double-activation when you have deployables.
  • Can't give self overshield via invigorate
  • Fix a number of missing ability triggers from displaying in tooltips
  • Can overwatch with mjolnir
  • Can hide within hive drone cover
  • Intercede triggers before Brace
  • Fix crash when a vorpal gun kills its target
  • Take overshield into account when asking if you want to brace
  • Technophile actually pays attention to you declining the reroll
  • Walking armory is a normal system that you can destroy
  • Fix Osiris not showing up as an AI system
  • Orbital strikes don't cancel on scout death
  • Commander "press the attack" can't be used on self
  • Fix witch & rainmaker statblock typos
  • Remove core-book accuracy from operator rifle
  • Hound missile doesn't roll saves against its own explosion
  • Ultra does not ask player for permission to reroll structure/stress checks
  • Veterans stop overcharging when they only have one stress left
  • Fix size 2+ reinforcements from spawning on top of each other
  • Don't trigger sniper's moving target if they already have a mark on another character
  • Fix Ronin's counter ballistic suite triggering multiplicatively for AOE attacks
  • Seeder AI is better at hunkering down and just laying a buncha mines wherever it is; correctly limited to 3 mines deployed at a time
  • Fix bombard cluster munitions bonus damage carrying over from one attack to the next
    Better nanobot placeholder fx; old one was mostly invisible
  • Show "~100%" for near-certain hits instead of "100%"
  • Talent title text for rank 3 nuc cav correctly displays "Here, catch!"
  • Correctly show kits in recursive tooltips
  • Filter for invalid lancers on campaign load (if you, say, broke them by loading and then unloading a mod)
  • Automatically convert legacy color schemes forward when picking a new color/ramp
  • Characters stand on top of exploding barrels instead of inside of them
  • Better protections against hidden "marker" units from taking damage in odd situations (e.g. caltrops taking damage from dangerous terrain).

Editor

  • Potentially breaking change for custom maps: For "<string a> is within <string b>" trigger conditions, swapped their order so it actually checks that string A is within string B (previously reversed).
  • Fix triggers failing if the conditions were set to "any" but no conditions were set
  • Allow custom dialogues etc to work when launched via instant action.
  • Did some cleanup to the conversation editor's UI; made everything besides the speaker and the line more background-colored and reduced excess borders.
  • Duplicate button works for conversations and characters
  • Added button to view sitrep rules mid-battle
  • Log the change in Control sitrep score each round
  • Fix dialogue indents being lost when switching between code and blocks mode
  • Can refer to lancers in dialogue text dynamically
  • Drop the "no deploying within 8 tiles of the center" trigger from holdout; it's up to the mapmaker to redirect zones
  • add a "magic strings" list to the bottom of the trigger list that you can click to copy to clipboard
  • Maps can now be played on sitreps even if they don't have all the required zone IDs, if the required zone ID has been specified to point to a different zone.
  • When capping NPC spawns due to activation, it looks at max lancer count on your side, not current (making it so enemies can spawn before the player deploys).
  • When a trigger prematurely ends a unit's turn, have their phase controller recognize that and not require an extra step to end their turn
  • Toggled a setting to hopefully help with prematurely cut-off crash logs.
  • Added ability for ai behaviors to modify their score against weaponless enemies
  • Made event_unit_save available in the trigger system; can force a unit to make a save, and then check the result in a key stashed to the combat state

In solidarity,
Olive

Pixel art recoloring, ultras, cat ears
8 months ago – Wed, Dec 24, 2025 at 02:44:14 PM


It's my birthday tomorrow! Happy birthday, me. The team's on break for the rest of the year, and I'm starting my own break as soon as I post this (it's a famously good idea to post an update right before going on holiday). The update is as always available as always on itch.io. One quick order of business before we get into the changelog:

Mapmaking rewards: We've been trying to reach you about your mech's extended warranty. Only four of the eleven of y'all who got this high-tier reward have responded and made your map with me. If this is something you wanted to do, check yer email and sign up for a slot! We'll have a good time chatting! I'm delightful!

How we recolor pixel art

Enough was enough; I've felt overly constrained by the available colors in the portrait maker for a long time. We finally pulled the trigger on reworking the coloring system to be able to take any base color and automatically generating a palette from it instead of hand-crafting each available option.

Let's take the opportunity to go through how the recoloring system works in Lancer Tactics! We'll be looking at the mech tokens instead of the pilot portraits because they're a little more straightforward, but we use the same technology for both. Here's what a mech token looks like on disc:

Also shown above are our red/green/blue "index" color palettes. These are sequences of seven pixels of various lightnesses. The color of the index pixel on the mech indicates what channel a pixel belongs to (i.e. should it be set to our primary, secondary, or glow color) and its lightness (i.e. darker reds will end up being darker). Pretty straightforward so far!

But now we need some new colors to swap in. Our old system used a series of handcrafted 7-pixel palettes of increasing lightness. Here's me doing a manual swap-in using aesprite to show the process:

And this worked well! The keen-eyed among you might note that these handcrafted palettes were not linear shifts in lightness; check out how the center lilac palette is warmer in its lighter tones and cooler in its darker ones, or how there's an abrupt shift in lightness the rightmost yellow. These values were selected with an artist's eye for better overall effect.

However, the need to manually create each palette took time, which meant that we were always going to be limited in the number of colors we'd be able to provide in the portrait maker. Our greens were bereft; our turquoises ghostly in their lack. If we could find a way to automatically generate palettes that used artistic principles to make good-enough replacements, my hope was that the dip in quality for individual palettes would be made up for in the dramatic increase in range.

And that, my friends, is what we did. Using the OKHSL color space, it's easy to make an array of "base" colors. After some toying around, I settled on two sets of a rainbow; one high saturation, one low saturation, with each hue given a small range of possible lightnesses. With one of these selected as our base, we can spin out six more colors (three getting lighter, three getting darker) for a full palette.

"But, Olive!", I hear you say, "I thought you just said we cannot simply linearly shift a color up and down in brightness and get an artistically pleasing result!"

This is true. Thankfully, we have the wisdom of our ancestors to fall back on. And by ancestors, I mean a 12 year old tutorial on color theory for making Minecraft skins. It's a good read, but we'll be specifically copying their "Arc Method" as shown here:

In addition to shifting brightness, we can shift hue and saturation as well. And how exactly we do that *that* is where the human element can re-enter.

This ungodly thing is a "toneramp". Ironcially, it's a lot less human-readable than what we've seen til now. But let's back up a bit. There are three knobs we can turn when spinning the base color out into the rest of the palette: Hue, Saturation, and Lightness. Modifying hue can make a color warmer or colder (ie more towards yellow or blue). Modifying saturation makes it closer to or further away from grey. Modifying lightness... well, I hope you can guess what that does.

Image files, conveniently, are also typically encoded with three numbers: Red, Green, and Blue. With toneramps, we're hijacking those to actually interpret as Hue/Saturation/Lightness shifts (not respectively). We have the midpoint - 128 - interpreted as "no change from base".

There are two things it tells the system: the "red" channel, the top number, tells the system how much to shift the lightness; higher numbers are lighter, lower numbers are darker. The "green" channel, the second number, tells the system how much to make the hue warmer (less than 128) or colder (more than 128). Currently we're automating the decrease in saturation towards both ends of the palette as per the Arc Method, but may end up having the "blue" channel eventually defining that.

So! Given an automatically-generated base color and a human-crafted toneramp, we can generate a new palette:

The cool thing about this is that it's multiplicative; we can handcraft just a handful of toneramps, and then use any base color with that toneramp. In the current build, we have four: Standard, High Contrast, High Hueshift, and Inverted. Here's me going through them one at a time:

It's kind of subtle, so here they are side by side.

We're still tuning the available colors and toneramps (imo the mechs are currently coming out too dark). Has this unlocked previously impossible chromatic desires in your heart? Can you even tell the difference? If you play with this, I'd love to hear your take.

Changelog

New stuff!

  • Gen has finished out the PC mechs, and has dived into the NPCs. Check out her flex on this Barricade's stripes wrapping around a curved surface!

UPDATE : as I was writing this, Gen just released all the tokens she’s made for the game in a noncommercial asset pack here! Make and mod your own mechs in the image editor of your choice!

  • Another batch of portrait assets from Martina incl, *finally*, cat ears!
  • Recon + Control sitreps. That's all of them!
  • New templates: Completed Commander, and got Veteran and Ultra in with all their base kits and a scattering of optionals.
  • Implemented rest of the optional kits for: berserker, witch, rainmaker, scout, sniper, and sentinel. Six classes down in about a week... 24 more to go.

UI

  • Clicking on lancers doesn't automatically start their turn; you can see what stuff they have first.
  • Can cancel out of your standard move to click around and inspect stuff instead.
    auto-start turn when you only have one PC
  • Fade LOS area in and out while moving the mouse around, added short delay before doing so
  • Can cancel out of a NPC telegraph to tell the game to not show it again for the rest of this session. The era of endless Stampede Defense prompts is (optionally) over!
  • Added button in options to reset the list of skipped telegraphing, in case you get separation anxiety about your Stampede Defense prompts and want them back.

Editor

  • Add triggers that allow you to disable zones within X tiles of a given tile; can be used in sitreps to prevent having zones that spawn enemies near objective zones
  • Can manually set NPC tier.
  • Reinforce triggers can set NPC tier automatically to match the PC license levels.
  • "Emit trigger signal" event can emit multiple signals when given an array -- this allows you to e.g. damage all units in a given list!
  • Maps can now opt-out of being modified by Instant Action settings; e.g. one can have a custom sitrep but still use IA opfors (monument bay), or it can completely eschew IA and totally do its own thing.
  • Zone tool shows and can edit what sitreps are available to be played on the current map. Can remap expected zone IDs to alternate ones on a map-specific basis.
  • Add an event to trigger pilot barks.
  • Made a "edit sitreps" modal to dramatically increase the turnaround time for making and fixing sitrep triggers. Will be player-facing, so sets the groundwork for folks to eventually be able to upload their custom sitreps to mod.io. Also will serve as a additional examples for people to see how the trigger system works.

Fixes & minor stuff

PC mechs

  • deployables take burn at end of owner's turn and trigger turn start/end effects e.g. hive drone
  • size 2+ units can stand on "invalid endpoints" that are smaller than them; ie your tortuga is no longer blocked by a few lil cars
  • Can move payloads that are +- 3 spaces from you, to help prevent them from getting stuck
  • manticores castigating KIA the pilot, melting down removes ability to repair mech
  • smoke mine smoke expires on triggering unit's next turn, not its placer's next turn
  • thermal charge damage type changed to explosive
  • Vanguard 3 can't trigger against targets it can't see
  • fix PCP always deploying in "attract" mode
  • can take a quick action to clear PCP immobilization
  • BTWIKE averages non-attack damage (e.g. gravity gun, grenades)
  • MC hunter only procs on hit
  • impaired ghast drone does not mean your attacks through it are impaired
  • standing up does not end the protocol phase (rule bend to make overeager-to-stand AI not lose their ordnance)
  • being dazed does not end protocol phase automatically; need to be able to continue SEKHMET (other protocols are still unavailable)
  • uncle correctly prohibits off-turn usage until the start of next turn
  • unstoppable doesn't trigger on misses (improved)
  • Mechs can make eng checks to stop a meltdown
  • fix invigorate not being able to select past the first target
  • fix bug where limited charges would refill if you looked at their tooltip

NPC mechs

  • goliaths don't re-crush-target multiple times
  • add missing attack bonus for hive HK nexus
  • commander voice of authority actually spends the reaction
  • NPCs use their systems bonus for their frag sig, allied invades auto-hit
  • NPC basic attacks get a bonus by tier
  • NPC mechs can't double up on the same quick tech twice
  • enemies go first in a round if players went last the prev
  • fix blur causing the witch to treat other targets as invisible oops lol

Editor

  • stairs should not be difficult terrain/an invalid endpoint
  • invalid-tile shunting ignores fall damage
  • editor smoothness improvements; uses gridmap previews instead of rebuilding the map during single tool strokes

UI

  • fix omnigun popcorn text damage amount
  • persistent objective pointer arrow for payloads
  • fix attack preview showing "+ tech attack" when using smart weapons
  • snap tooltip left/right if up/down doesn't have enough space
  • fix camera autorotation getting you looking head-on when coming from top-down
  • remove bombard and sentinel from everest token list since they're size 2 now
  • importing NHP pilot files sets their colors to grey
  • ending mission mid-zero-stress-meltdown still counts as having melted down
  • can spend your last repair as an everest on structure

In the homestretch

With this as the last update of the year, we only have three months left for our original 100% core-book-implementation goal. What are the current projections for what we'll get done in that time?

  • We'll get the rest of the PC talents (Skirmisher + Siege spec) and most if not all of the NPC class optionals.
  • As I said last update, NPC templates are looking a lot more scattershot: of the ones we haven't already finished, I think we'll be able to knock out the other simple ones (Mercenary, Exotic, Spacer, etc) and a decent chunk if not all the optionals for Ultra & Veteran. Templates that require more significant enginework (Monstrosity, Pirate, Ship, Vehicle, Squad) are going to be left to last and I'm not confident we'll get to them in this Kickstarter period.
  • Module editor work has continued to go slower than expected since my focus is still on content implementation. I'd like to get it out the door as soon as we can, but doing so too early risks needing to make format changes that can break people's stuff they've made with it. Not that that's stopping folks; GavstarB basically made a module without the connective tissue by publishing each map individually.
  • I know that I said that mod support is a post-Kickstarter future thing, but the aforementioned GavstarB has pulled off a minor miracle in my eyes by decompiling the game and building a modloader themself. We still can't officially support modwork because we don't have the time + may need to make fundamentally breaking changes in the future + need to get a legal license drawn up to make the decompiled source available. But hot damn! Wow! Extremely cool to see what's possible!
  • We've super outgrown our thread on PilotNET. We've got a draft of a dedicated discord set up, but are waiting until after the holidays to launch it. I am reluctant to put our eggs in a corporate-controlled community discussion area (though I <3 the itch forums) but this is where all the kids hang out these days.
  • I expect a "coming soon" Steam page to be up well before March, to help transition us into the post-Kickstarter era.

Have a happy new year! And again, happy birthday to me specifically.
~ Olive