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:

Final talents, shield fx, more NPC optionals
4 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
5 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

Time to schedule mapmaking sessions!
6 months ago – Tue, Dec 09, 2025 at 04:54:51 PM

This post is for backers only. Please visit Kickstarter.com and log in to read.

Draft of all NPCs, foliage, Mod.io maps
7 months ago – Fri, Nov 21, 2025 at 12:32:03 PM


Hello! We're making a video game! We've been doing so for quite some time! The madness is setting in! Ha ha ha!

Highlights from this month's build

As always, the game is available via itch.io; check your Backerkit digital rewards page if you've not yet claimed your download key. I also recommend the itch.io app to automatically download updates and dodge overzealous virus checkers.

  • All NPC classes & base kits: I finished a first pass on implementing all NPCs in their rebaked form, not including their optionals. I bet there's gonna be hella bugs from these since there's so much new content implemented, and AI-controlled systems are a bit harder to confirm that they're working correctly than PC ones.
  • Mod.io support: As of this update, you can upload and download maps via mod.io, replacing the community maps list that I've been having to manually collect and include in builds. Now y'all can just make and share maps directly. Very neat!
  • Mac & Linux builds: We're working again on both platforms. Caveat: Macs with Intel chips (made before ~2020) will have to use a separate compatibility mode build that has a buncha graphical features turned off (shadows, terrain texture blending, some particle effects). I thought Macs were totally broken and out of my control until I learned that it's only older macbooks like mine that Godot 4.5+ no longer works on. 🙃

Production & rewards update:

  • Custom mech tokens: Gen has started work on a few of these. We have a big mech queue to get through (e.g. all NPCs) but should have them all done by the end of the Kickstarter delivery phase (March 2026).
  • Custom pilot portraits: We're waiting on the next batch of portrait assets from Martina, but this one should be enough to finish assembling all the commissioned portraits. Same as above; will definitely be ready by the Kickstarter delivery date.
  • Mapmaking: This latest batch of environment assets from Connor plus foliage were the last big things I was waiting on, so I'll be reaching out to you individually this December to schedule our call and mapmaking session.
  • Xiaoli Homebrew Mech: Due to circumstances, we're back to the design phase for the mechanics of this homebrew mech. I had a backup Black Witch alt frame design that plays with self-applying Jammed but the existence of, ironically, the Zheng's Tiger-Hunter Combat Sheathe has proved to be an irreconcilable wrench in the works. And Carpenter says that jamming yourself isn't a sexy fantasy to build around, anyway. So this one's currently up in the air.
  • Campaigns: As I've said previously, my biggest overscope during the Kickstarter was the "second campaign" stretch goal. That's not happening by March; we're going to be hard pressed to get *one* of them done by then (but I think we're still on track to get that one).
  • 100% core rules port: We knew this was a lot to bite off, and it's looking like some NPC options will fall to the wayside. Specifically, I've put the Squad, Ship, and Vehicle templates into a "someday future bin" due to their higher than average mechanical and artistic difficulties. Counting the remaining class and template optionals, I have about 250 more abilities to implement for NPCs. At an average rate of about 4 abilities per day (not counting bug fixing) that's two *very* focused months of implementation. With only four months left until the end of March 2026, I think it's very likely a few more things might slip off the plate by the end of the stretch goal period. That said...
  • Steam plans: Reaching the March Kickstarter-funded period is not the end. We've been hashing out our plan for bringing LT to Steam (*cough*getting paid*cough*) after we wrap things up here. Our current goal is to be able to release under Early Access mid-2026, with a healthy intervening period to clean up UX, fix bugs, and make the Lancer Tactics EA experience excellent for people who aren't already Lancer-pilled. Under Early Access, we'll get an influx of sales that'll allow us to pick up the second campaign and any NPC features we didn't get to by March.

Changelog

New Art & FX

  • Gen has been blazing through the queue, giving us 13 new tokens for PC mechs, including: Napoleon, Sherman, Genghis, Iskander, Balor, Gorgon, Pegasus, Tortuga, Lancaster, Black Witch, Metalmark, Swallowtail, and Dusk Wing
  • Alicia has been doing similar for the gear and action icons. We have icons for all IPSN licenses and a scattering of other frames.
  • Jude has continued to update action fx, but I don't have a comprehensive list of changes for them. I suppose we have to leave something in these changelogs for you to discover yourself.
  • Shrubbery and foliage! Adding support for this many little objects was a lot of work but I think it was very much worth it. They also swap over to a "burnt" foliage type when tiles take non-kinetic damage.
  • Added option disable foliage; it's pretty rough on some old computers. My 2019 dell handles it fine when booted into Windows but really struggles when running Linux. Runs smooth as silk in Linux on my Steamdeck though, so this option is for if you happen to have a hardware/software config that needs it.
  • Updated unit xray shader to use faction colors on outlines and have better contrast
  • Some doodads get destroyed when stepped on.
  • Added collision half-move effect to make it more clear when something collides into something else
  • Connor added another batch of new setpieces, including sloped rails, stairs, trains, and cars. I'm obsessed with the boxy blue beepbeep.

Rebaked NPCs

  • All NPC base classes implemented, sans optionals.
  • Added Commander template to prototype how optionals will work. Added section for such in the character sheet.
  • As part of the import of Rebaked NPC text, I set up an automatic parser and most of their ability texts are "glossed" with inline tooltips. I'll do the same kind of reimport for PC mechs at some point, but it's complicated by the fact that we've made a lot of edits over the last two years so I can't do a fresh re-import. I'll have to set up something that goes over all the existing text to figure out what to gloss.
  • Since the Sentinel is now size 2, the officer in the tutorial now pilots a Ronin.
  • Added exploding barrel deployable
  • Fix npcs doing lots of little hops around
  • Berserker aggression triggers on omnigun
  • Each sniper needs to individually mark their target rather than sharing
  • RPV correctly impaired and vulnerable to tech attacks
  • Fix NPCs not being able to crit, ever
  • Add passives to mines to hint AI to knock units into them
  • Added a bunch of new stock Opfors, taken from PilotNET volunteers o7

UI/editor

  • Loading screen does a side-wipe instead of a fade
  • Reorganized how content is stored so we don't have to do a scan at the beginning of every game start. Should pretty dramatically improve initial load times for some computers.
  • Added slight delay and tween in/out for tooltips
  • Fix glossary tooltips getting stuck on mouse
  • Gave the battle log tooltips for actions and glossary terms
  • Basic actions now go at the bottom of the action bar, with your character's unique ones on the second row.
  • Fix hovering over a color scheme locking those colors in
  • Can no longer pinnochio-into-real-bodies NHPs by loading a saved human pilot json in their portrait editor
  • Cycling NHPs persists the reset of their portrait
  • Add a warning before deleting a pilot.
  • Fix scifiknighthelmet messing with your portrait's body size
  • Fix npc tooltip closing whenever you changed the displayed tier
  • Better target disambiguation when units are stacked up; should no longer accidentally target wrecks instead of the unit flying over them.
  • When asking to destroy a mount, groups all the weapons on that mount together visually
  • Fix duplicates of 3D lines sometimes all condensing into one (e.g. only the last Archer Surpress would show)
  • Add confirm prompts for initiative/overcharge
  • Show hostile effects in status bars as red
  • Show pill in tooltip for unloaded weapons
  • Can no longer add fuel rod gun as an extra weapon
  • Repair both weapons on a mount when repairing them
  • AI resets camera to isometric mode when starting turn
  • Autorotate the camera to get clear views of things when possible
  • Don't show savefile maps in editor or mod lists
  • All zone labels to the hovering pointer style
  • Fix crash when zone was placed within a forbidden interior setpiece.
  • New "set unit's current stat" event for the trigger editor

Mechanics

  • Add missing Lesson of Shaping
  • I forgot to add "redundant systems" trait to lancaster; should now be able to share repairs in battle and during downtimes.
  • Iskander CP no longer damages allies.
  • Napoleon CP no longer prevents standing up from prone.
  • Juggernaut 2 limited to 1/round
  • AGNI is limited to 1/scene
  • Limit vanguard 3 to CQB weapons
  • Javelin rockets correctly expires
  • Flash grenade correctly expires
  • Can Project Shield against allies (for if you just want a little heat)
  • Limit these actions to only targeting characters: Arc Projector followup attacks, omni harpoon, invigorate, scan, stormbending's thunder.
  • Everest power up applies to tech attacks correctly
  • Automatically retrieve thrown weapons on short repair instead of losing them to the void forever
  • Reset uses of prob cannibalism when you bend probability so you can immediately re-use the reactions
  • Titanomachy mesh only gives bonus knockback to attacks that already have some amount of knockback
  • Replace brace buff restrictions with new "dazed" condition, taken from Valkyrion's Prototype Pattern Groups.
  • Payload is invulnerable; can no longer accidentally walk it through lava and lose the mission.
  • Can shift payload after bracing
  • Fix dying at the start of turn not counting as your side's activation
  • Fix knockback for weapon blasts coming from targeted tile
  • Stunned auto-fails hull and agi checks/saves
  • Normal deployables don't roll saves/checks; they auto-fail
  • Shunting to nearest valid space more reliable for large units
  • Can no longer push large units partially off the map
  • Fix ophidian trek pull distance
  • Fix broken Annihilator
  • Fix broken redeploy action
  • Fix blackbeard being able to continually grapple at range
  • Stasis generator doesn't require a roll from allies
  • Diluvian Arc ends when it's supposed to, isn't infinite range, cannot be used when grappling, and can now be re-upped.
  • Flash Lock doesn't trigger on takeoff/landing.
  • Dusk wing holographic imprint doesn't leave a new hologram at every step of non-standard movement
  • Did a halfway fix of the Combat Drill to make it less likely to go infinite-ish. Not sure I entirely resolved it but it should be better.
  • Exiled/intangible units have their terrain effects (such as Blinkshield) disabled
  • Hardlight barrier doesn't do burn to intangible units when they leave
  • Cannot overcharge when symbiosis'd
  • Cable winch ends on intangible/exile/death/gear destruction
  • Better calculation of allowed draggable tiles for cable winch
  • Don't trigger flank (or other post-attack choose-and-use attacks) if original target died
  • Thinking tomorrows thought applies earlier so it can be used to overwatch a puppet systems
  • Fix roland chamber's damage being dependent on targets failing the prone hull save
  • Fix Watch This's hull save triggering multiple times per round (without effect) and being able to work without zeroing in
  • Puppet systems is involuntary movement but still triggers rxns (goblin continues to be my bug nemesis)
  • Infiltrator 3 still gives you movement event if there's not target to flashbang, and moves more than 1 space.
  • Losing hidden from boosting only happens after you finish the corresponding movement
  • Disdainful blade has lower resolution priority so you can do your integrated weapon aux first
  • Fold knife teleport happens after damage
  • Disable exposed singularity while riding mule harness (RAW you should be able to but I don't know how to make it happen cleanly yet)
  • Activating asura no longer immediately triggers sehkmet
  • Disable sekhmet if you get stunned or the gear gets destroyed
  • Hacker 2 clears are checks instead of saves
  • Fix shock wreath triggering when any modified weapon in your loadout hits
  • Fix characters not being able to target other characters only partially within their hardlight bubble

--------

Making video games is hard. I know it's a cliché to say that "I know it's a cliché to say this couldn't exist without your support", but it's true. Both the fact that it's a cliché and the statement itself. Tysm for continuing to read these and play the game and cheer us on.

<3 Olive

NHP portraits, in-person playtesting, finished HA mechs
8 months ago – Fri, Oct 10, 2025 at 04:44:09 PM

(looking back at my calendar) Wow, I went to a lot of conventions in a month!

I’ve done showcase/workshop circuits for my games before, but not since COVID hit. Since the last update here, I attended SIX, PAX, and QGCon. Most large spaces and gatherings are still fairly inaccessible to me ’cause people got tired of wearing masks, but I was able to make it through all three without catching the rona. Nice! (Worth noting that I felt genuinely safe at QGCon — the organizers put a lot of care into setting up air filters and setting clear mask policies)

Going to SIX and PAX was the first time Carpenter, Josh, and myself have been in the same physical space. My strongest memory from the trip is walking along a lake with them in the gathering dusk talking about our hopes, dreams, and politics of what we want to make of LT. We then got midnight pizza and root beer as we talked about possible futures beyond this project. The sorta stuff that’s impossible to swing on the weekly video call standup.

Look at the arts and crafts I did to make signage for a little play station for LT at QGCon!

A staples-printed poster being mounted on cardboard using a box cutter and gluestick.
Lancer Tactics modest booth with signage, laptop running the game, and stickers.

It’s also the first time I’ve showcased LT in-person, and got I think literally like six pages of playtesting notes & todos out of it. I watched SO many people play through the tutorial. Some takeaways:

  • the d20 system has a crazy amount of variance. Some folks cleaned up the starting enemies in one turn while others struggled through no fault of their own for like eight turns before dying. We’re not currently cheating rolls in the tutorial but this makes me want to start — we’re otherwise statistically guaranteeing some percentage of players are going to just have a super depressing introduction to the game.
  • folks really want to be able to click around the map to inspect it, but our move-by-default clicking controls kind of makes that impossible. We may end up making clicking the map show stuff by default and you have to double click or something to actually move.
  • people who have never played Lancer actually did fairly well picking things up! I was worried that we were leaning too heavily on outside-of-game knowledge of the system, but at least for the tutorial there seems to be enough of an on-ramp that it’s feasible to pick up and play LT.

But even with all that traveling and nonsense, we’ve made a buncha progress! Check out this big changelog! Wow! I haven’t made as much progress as I’d have liked to on finishing all the talents & NPCs because of a larger-than-typical bug load (big thanks to Marko for staying on top of the QA reports!), but that’s the nature of game dev.

Warning: I upgraded to Godot 4.5 and it’s been mostly fine but I’ve noticed a few inconsistent crashes/long load times since then. As always, please let me know if you run into any unexpected technical glitches. (I am getting weary of getting hit with unassailable engine/graphics bugs here… I love Godot, but I’m noticing this is as a pattern) (The AMD graphics card thing is resolved at least)

This also means that this update is PC-only as I’m running into export/rendering problems for both Linux and Mac. Hopefully will be sorted by the next build.

Changelog

Project

  • Paid Steam their $100 to start setting up Lancer Tactics in their backend. The plan is to get a page up to start collecting wishlists as soon as we get a short trailer made. This’ll simmer on the backburner while we wrap up our Kickstarter obligations — just to start preparing for an eventual release over there sometime late next year.
  • Created new Discord server for specifically Lancer Tactics. It’s still private while we get it set up & find how we want to handle community management.
  • We’ve contracted Alicia Feng (CORVIDAY) to draw the rest of the hundreds of system/trait/weapon action icons that we still need. I am SO PSYCHED about this, their work is absolutely stunning. Here's a few of the new icons, fresh off the presses:
Alicia's new icons in the action bar

NHPs

Lancer famously has a lot of names you have to pick on your character sheet. There’s your pilot name, your pilot callsign, and also your mech’s name. But here on the Lancer Tactics team, we ask the big questions. The questions nobody else is brave enough to ask. What if you could pick just one more name?

A character sheet with a section for NHPs

Introducing the NHP portrait maker! If your mech has an NHP equipped, this section will show up allowing you to both name your paracausal co-pilot and play dress-up even more by having a second entire character to make in the LT piccrew. This companion will show up alongside your pilot in most places in the UI. Right now they’re all Cortana-blue, but we plan on giving them the option to be other colors in the future (alongside more chromatic flexibility in general in the portrait maker).

NHP portrait maker

I still haven’t implemented cascading, so for a limited time only you can get traumatized alongside your favorite paracausal friend without risk of them becoming an elder god.

Here’s all the standard-line NHPs! I’ve left them all conveniently unlabeled so you can play a little guess-who’s-who.

Oh did you think alt text would help? Nah it’s just 9 NHPs in a grid.

New content

Gameplay

  • Remaining HA license implementation: Saladin, Napoleon, and Iskander.
HA mech license ring

Oh lol right this is a hella buried lede. All player mechs are ingame now. Yayyy. (sorry, I finished them like three weeks/an eternity ago so have already gone through the emotional catharsis of summiting this particular peak)

OH ALSO I made a tier list of how hard each mech was to implement in Lancer Tactics! This post is already too long, so I’ve broken the rating scale and anecdotes out into its own post here.

All core book mechs arranged from S to F tier
  • Bonded I, II, III; able to choose a fellow lancer from the current squad
  • Juggernaut I, II, III
  • Technophile I, II, III
  • Implemented COMP/CON system; can hand over control to an AI and have the computer drive your unit for that turn
  • Handing over control to the AI is available for all NHP systems
  • Handing over control to AI lets it make overwatch decisions (and any other Y/N question) (it always answers “yes”. YMMV)
  • Added Zero-G map “weather” that puts everyone in zero-g (currently, all NPCs will be slowed lol)
  • Add some more tips to tutorial: explain 2 quick actions + speed / structure / stress
  • Add a tutorial line about shooting both pistols as part of the same action.

UI

  • Raleigh and Blackbeard tokens from Gen! Fantastic work as always.
Raleigh and Blackbeard in the catalog ring
  • A bunch of new portrait assets from Martina
  • Can open character sheets mid-battle
  • Show the increased damage for Engineer’s Prototype Weapon in the character sheet at rank 3
  • Added inline glossary tooltip system where you can hover over words in descriptions to get a sub-tooltip. These will slowly roll out as we update our massive game text spreadsheet with the appropriate annotations.
A tooltip for grapple with highlighted words that can be sub-tooltiped
  • Added little speech blips for speaking characters…… which caused me to have to recompile the sound banks…. which broke version compatibility somehow on windows…… which I could only figure out how to fix by upgrading the FMOD plugin…… which required upgrading to godot 4.5. What an avalanche of changes by one tiny change. 😐
  • Text blips also play for barks and boss intros. I assume. I implemented it on my PC laptop while traveling and it can’t play sound because a lady once bumped into it and broke off my headphone aux cord in the socket and then I accidentally superglued it in there while trying to get it out so I was flying by my instrumentation on this one.

Ability FX

  • Added a batch of new FX from Jude incl a sick blue flamethrower for the Plasma Thrower that I don’t have a screenshot for rn but you should go check it out ingame.
  • Blue line connection effect for metahook and investiture
  • Burn damage now persistent and animated
  • Added lingering smoke fx, replacing the placeholder static sprite with the cool new smoke particles
Smoke cloud with a lotta particles

Editor

  • Add subcategories for landscape items
  • Show controls for cycling variations and total number of variations possible for setpieces/doodads.
  • Attached lights to streetlight doodad
  • Blocks can have different types of rubble (buildings destroy to metal rubble, etc)
  • Randomize rotation for some setpieces & doodads (toggleable via checkbox at bottom of palette)
  • Editor warns you when you’re about to exit with unsaved changes
  • Can flood fill setpieces & doodads
  • 1/2/3 hotkeys to switch to blocks/setpieces/doodads
  • Kinda janky implementation of shifting selected palette item with ]/[ but it’s something
  • Hide painting object when mouse leaves the map
  • Hold alt for a temporary editor eyedropper

New 3d assets, including:

  • 3D trees! There’s more to iron out about them, but finally pulled the plug on them being the only non-mech environmental asset. I also like how many more types we have, incl cypress, olive, baobab, sycamore, acacia, ponderosa, and pear.
A bunch of 3D trees on a test map
  • Big obelisk
  • Crop rows
  • Vine trellis
  • Planter variants
  • We also have some test 3D models of smaller bushes like blackberry and sagebrush, but are still dialing in how we want to do smaller foliage. We did an art test for adding simpler scattered grass like this but it hasn’t made it into the build yet:
Simple 3D flat planes with grass scattered throughout a map.

Bugfixes

Engine

  • Polished payload movement so it doesn’t fall off each time you take a step up a ledge ++ give it an EVA so it doesn’t sink in the water.
  • Gain self heat before followup attacks on a weapon mount
  • Wrecks no longer get cover from themselves
  • Refactored attack sequencing so it waits for all attack rolls to finish before rolling damage, which fixed OPCAL CB bonus damage getting used up on misses as well. (this single thing took like 3 days lol but simplified a lot of stuff)
  • Reactions can be marked as “count as free actions” for brace restrictions, which keeps integrated weapon CB from triggering on that turn.
  • Fix attacks running multiple times when there’s a knot of nested variant actions (such as triggering disdainful blade from a weapon you could also throw)
  • Fix knockback being able to go in any direction, regardless of what the UI claimed was possible
  • Don’t double-apply armor when an attack deals multiple damage types
  • Default to saving json files (pilots, maps) in human-readable format (also easier for git to merge changes)

Systems

  • Turrets drones no longer offer to shoot allies
  • Add missing accuracy to liturgicode
  • Add missing accuracy to variable sword (and a test to hedge out this reoccurring again)
  • LUCIFER is now correctly limited 2
  • Tlaloc protocol correctly costs 2 self-heat
  • Stabilizer mod is not unique
  • Fix scylla not being able to attack with melee weapons
  • Can use ordnance weapons after bracing
  • Can re-up active camouflage
  • Avenger Silos (and many other on-attack rxns) now correctly require the triggering target to be a character
  • Snicker-snack trigger requires LOS
  • No sneaking in firing a vorpal gun via the second attack in a aux/main sequence
  • Can no longer bentham/foucault off turn
  • Fix zero in being able to be used more than 1/round (I’ve said that before though 😅 )
  • Disable bolster if you have no allies
  • Smite/sear/beckon only do self-damage if you hit
  • Mimic mesh only lasts until end of next turn instead of for the entire match
  • Fix ghostweave lose/gain invisibility at the start of turn also breaking hidden
  • Fix having retractable profile equipped causing ghostweave invisibility to always deactivate at end of turn if you moved
  • Sekhmet activation no longer persists between combats
  • Sekhmet can stand up
  • Improve sekhmet flowcharting to activate & check after any player action, not just ones that add more action points
  • Fix softlock when sekhmet wants to attack a symbiosed goblin on a size 2+ unit
  • Getting stunned by basilisk cancels all attacks in the AOE
  • Getting stunned while on a mule harness no longer also knocks off everyone else riding
  • Getting knocked off mule harness now correctly makes you prone
  • Destroying a MULE harness while there are riders correctly ends their attachment
  • Fixed AOE burst calculations while riding a mule harness
  • Armor lock plating doesn’t trigger when you already have knockback immunity (ie when riding mule harness - a modification I had to make to stay sane in LT)
  • Delayed fire pinaka missiles can target empty tiles + does not double-gain self-heat
  • Fix plasma thrower flames (and other props) from being damaged by aoe effects
  • Fix plasma thrower being able to put down flames in prev attack areas
  • Plasma thrower line variant’s attack fx now looks like a line instead of a cone
  • Fix AOE attack fx pointing at 0,0 when they have no valid target unit in their area

Movement

  • Gaining flight from being underwater with EVA actually removes the prone condition instead of just suppressing it.
  • Cannot clear underwater slowed via stabilize
  • Cannot jump while prone
  • Cannot hunter I lunge while slowed/immobilized
  • Puppet systems no longer allows you to send your target up a vertical wall for free
  • Fix not being able to knockback flying units up elevation
  • Cancelling duat first gate movement clears the NPC’s speed so they can take no standard movement
  • Fix long range teleports failing

Repairs/character build/talents

  • Balor self-perpetuating healing happens automatically instead of doing the discount repairs thing
  • Full repair now correctly restores core power
  • Destroyed weapons/systems no longer persists between fresh runs of a playtest map or tutorial.
  • No longer able to use core bonuses on integrated mounts
  • Executioner talent tree now works even when target dies
  • Sort grunts/deployables to back of attack so nuccav doesn’t get used on them
  • Fixed attaining centimane 2 breaking centimane 1 and 3

UI (targeting)

  • Multi-target lines (Drake fortress protocol) now calculated with correct start tile for size 2+ units
  • Invalid movement endpoints from terrain no longer count as free tiles to deploy stuff to
  • Indicate turret attack target when asking to confirm
  • Fix disambiguate choice never clearing its “using action” ui panel
  • Move “current target(s)” counter for abilities to the right of the screen to not overlap with using action panels

UI (tooltips)

  • Show speed and sensor range in unit inspector
  • Did a pass over all PC kits to make sure the right actions show up in kit tooltips
  • “1/1 scene” instead of “0/1 scene” when you haven’t used something
  • Show mimic gun rolls in tooltip
  • Show boost tooltip when asking about boosting
  • Show “7%” in attack preview instead of “07%”
  • Skip showing basic weapon range in tooltip if you have a line/cone pattern
  • Kit tooltip shows topbar if it costs SP
  • Fix missing trigger text for tach loop and tacsim

UI (battle log)

  • Hack/slash ongoing effect uses correct text description
  • Battle log doesn’t omit the names of units that are different but happen to match
  • Saves are called as such in the battle log (instead of checks)
  • Don’t update unit statuses at start of combat until after we’ve applied passive buffs (fixes Slowed showing up before the EVA kicks in)
  • Fix all checks being logged as “contested”

UI (character sheet/roster)

  • Show weapon mounts for frames in catalog ring
  • Can clear integrated weapon CB mount slot
  • Fix missing fuel rod gun
  • Added missing roles to dusk wing in catalog ring
  • Fix catalog ring hexes being drawn over mechs lower down
  • Pilot roster can handle non-standardized pilot file names, but renames them to its preferred format
  • Added confirm button to pilot roster renamer to make it clearer that it’s not saved until confirmed
  • Renaming pilot folders doesn’t try to include the number of pilots in the folder name
  • Fixed bug with portrait maker where it doesn’t save all choices for multipick slices
  • Can add custom barks to the “unknown” empty barkset
  • Pilots no longer yell at themselves for friendly fire after having damaged themselves

AI

  • Archers no longer suppress suppressed targets
  • Fix case of npc getting stuck in loop walking back and forth out of a zone
  • AI doesn’t ditch its current controlled sitrep zone to get into another one

Editor

  • Fix being able to make overhangs at the top elevation layer with the terrain paint tool
  • Fix lockup on placing large swathes of terrain blocks
  • Can go up to 60x60 map appropriately… I don’t know why I had it at 59x59
  • Fix on crash on resizing a map that has zones

Progress summary

As always, you can download the latest build (0.4.1) via itch.io, and if you backed at an appropriate level obtain a free download key to do so via Backerkit. Again, this update is PC-only due to some rendering/export bugs I wasn't able to sort out in time.

By my count, here’s what the current content progress bars look like:

  • PC mechs: 29/29 🌟
  • Core bonuses: 30/30 🌟
  • Talents: 26/29 (remaining: Siege Spec, Leader, and Skirmisher)
  • Sitreps: 4/6 (remaining: Control and Recon)
  • NPC mechs: 12/30 (+gotta Rebake everything)
  • NPC templates: 2/12

With 6 months left for the target 100% mark in March… that’s 1.25 NPCs and about half a template per week for me, on average. With everything else that goes into making a game on top of that (e.g. Dia’s campaign module, which thankfully Carpenter + Josh will be implementing using the maps that Eld has already sketched out), ngl it’s looking pretty tight but manageable. We can do this. 💪 ✨

Olive