#LaSossis: Custom VTT code/macro/module and stuff
1 messages Β· Page 2 of 1
New version:
-
Add clipboard copy/paste in the Reaction Editor (should be easier to share automations), also fxed export
-
new "climber" status (elevation immunity) plus reactor_meltdown status.
-
Introduce startWaitCard and integrate waiting-card UX into sendMessageToReactor
-
Integrate with elevationruler to optionally ignore elevation movement cost for flying/climber tokens or those with elevation immunity.
-
Add constant elevation immunity bonuses
-
Export new API hooks (injectBonusToFlowState) and export executeFall from MiscAPI; genericBonuses now ignores 'range' bonuses in the standard flow.
-
Improve grapple activation to warn about immunity;
-
Fix and add preDeleteToken hook to trigger onDestroyed when a token is destroyed. ( for now i try to deteck only when dstroyed with 0 stress or 0 struct
-
Fix HUD activation selection.
-
Small fixes
Will try prepare a notion for that then (when I have time), kinda like the Lancer resource hubs. That way, we can set up tags like "Player, Mech, NPC, weapon effect, reaction" etc :)
Did you ever find a fix for this misalignment on size 2s?
Ok so Switching to Rectangle Variant 1 semmed to fix it but none of the other variants work
Another thing, whenever I place down a difficult terrain template it removes all the elevation ruler effects
These are my active modules if it helps
This is something i fixed many month ago, and should work.
I tried test on an empty world with only.
tried a basic size 2 with 6 variant , no issue.
same with traversing difficult terrain. no issue.
if it remove elevation ruler, it's probably an error , you'll have to look in the console for these.
for the size 2 issue, first try to reproduce and a bland empty word with minimum madule.
if in those condition you reproduce the bug, than we'll have to find a different method.
if it does not , you have to do a dichotomic research one your module to find the culprit.
Hi, when I try SELF DESTRUCT Basic Action, nothing popup on screen or chat message, iirc it works fine 2.6.14, also here is the console log error message
[Detected 1 package: lancer-automations(2.6.16)]
at executeSimpleActivation (misc-tools.js:817:38)
at executeReactorMeltdown (misc-tools.js:689:11)
at async HTMLDivElement.<anonymous> (hud.js:642:25)```
i have it, looking into it
Also can I ask how should I do the activation for Aid action? I see that currently there isn't an Aided status effect or activation so I tried making those myself. I first create an Aided status effect in the Status/Condition Compendiumthen I tried making an Aided Activation which didn't work out for me... Here is the code I crudely copy paste with minor adjustment borrowed from Bolster Activation.
do you see Aided then doing CONFIG.statusEffects
i'm not sure addeding then in the compendium actully add them, i never added status this way
in any case i'm gonna make it , and so it get consumed on the next stabilize
Is there a way to add the Invade option from the HACKER talent to the Invade tab of the HUD ?
there an issue with invades coming from talents, looking into it
update >> Add Aid & Overcharge for NPC activations, terrain immunity, TAH deployable fixes and update
@wise coral Just ran into a bug with your fork of elevation ruler (I can work around it so not super critical, more just an annoyance. cause like I know that one hasnt been officially published yet. Just wanted to report it to ya <3)
Error is coming from trying to use the default ruler, or holding ctrl when selecting the token (so it draws out the default ruler) and then pressing space bar to have the token follow the ruler path
Instead of following the path I get the following error
For my modules I got everything but elevation ruler disabled atm
Elevation must be a finite number.
First thing that caught my eye.
had no idea you could use it that way ... I look into it but even if I do a quick fix , high chance it will break thing
Ah yea, they show up in the tooltip when you hover over stuff. I forget about it most of the time too tho tbf (just was testing some stuff atm and so thats how ran into the bug)
movement history, and calculation for movement will be mess up
not even sure the original elevation ruler was meant to move token that way
oh this is a feature from base foundry
One thing I could do tho actually real quick
let me try using the non fork version of ER and see if the errors still there
oh huh, ok my bad. Isnt your fork. Most recent version (or version that it updated to anyways. 0.10.29) is also broken
I thought I remembered using this feature with elevation ruler installed but before I got your fork. Must of been misremembering then
appologizes β€οΈ
you can make way point with Ctrl +clic, but not from Ctrl clic drag
I found the fix , but then you don't have the coloring and all
not actually you juste right click to do way point
then spacebar
Yea looks like its the pathfinding when using the default ruler
So either you use the defaut ruler tool (or when you hold ctrl+click+drag when hovering over your token with select tokens tool)
thats when I get that above error
Main benifit of doing it that route is releasing mouse doesnt move your token (so lets you cancel the movement). Gotta hit spacebar to confirm it. But niche scneario where youd want ot use that I guess?
(and yea you lose the movement colours for reg, boost overcharge and all that)
and the difficult and elevation cost calculation is not there
that too yea
so it's like not using the ruler
not sure something can be done here, at least easely . replacing the Ctrl drag with elevation ruluer would work.
but some people use the normal ruler to do measurement. thus i made so using the normal ruler on token .
what i can do is when drag moving with multiple , is to not auto release the waypoins, and let the spacebar do the work
appart the error , feel like more like a design conflict
fair enough yea
ohhhh ok I see whats going on
So I did a complete fresh reinstall of elevation ruler
And its working now without the error
and reason why is cause the original fork of elevation ruler just completely replaces the ruler in foundry. Regardless of if youre moving your token or using the ruler tool
Where your fork only replaces the ruler when draging tokens around
but the original ruler is still there when using the measure distance tool or when you ctrl click drag from a token.
And so thats where conflict is coming from
yeah someone asked for that
gotcha, unintended side effect of that then I guess
I can make that an option
was just gonna ask yea, if that would be hard to implement or not
Wait so is the solution uninstalling elevation ruler then just installing LaSossis' fork?
Because it sounds like the problem is that both are trying to overwrite each other.
no the solution was uninstalling and installing the default fork (for what I did to get it working)
not at all , it's just revert back to my previous version and wrap it on a config variable.
i made this change few day ago because, my elevation ruler , is more like a movement ruler.
the distance showed is not the distance but the movement cost. it will count if you have to climb up and down.
Thus someone asked to have the regular ruler to do simple measurement.
then now we have the conflict of rulers behavior. either all ruler are "movement ruler" or something else.
maybe i can try to add a new button to bring to classic ruler.
(but you'll notice even the classic ruler actually show elevation changes )
i allready fixed the error , but now there this deisgn question (i'll psuh later)
Hi, that's me. I'm the dumbass who asked that.
Mainly because of how drawing distance in Lancer is stated.
oh true yea. I didnt even think about it from that angle (with the additional movement cost)
Cause the previous iteration saw height 6 terrain as height 14 when dragging the ruler for measurement.
also on that note too I actually got a quick question.
For on my end. The ruler factors in the additional cost for difficult terrain. It shows the elevation change from regions ive pained with Terrain height tools
but it doesnt factor in the additional cost to climb to that elevation. Just that it is a higher elevation.
that was not the height but the cost, the movement ruler do not show height
images pls, i dont quite understand
for sure, one sec
So the difficult terrain. You can see elevation ruler factors in the extra movement cost. But for the size 3 hard cover. The regular ruler picks up its elevation 3. But moving the token up there displays as costing 2 (doesnt factor in the elevation)
also when the token does get moved up there. It does automatically adjust the tokens height too
and these zones are from Terrain Height tools (using your fork)
my THT fork ?
what are the settings of your terrain ?
it work on my end , something must be different
actually this might be user error
are you pressing [ ] to change elevation as dragging out the ruler? Or it it automatically calculating the elevation change for you without that?
(i just reread the elevation ruler page on foundry. Forgot that keybind was a thing >.<)
no, what are the setting of your terrain ?
default options (or should be anyways)
ah sweet
ty
and yea my assumption is that it just wouldnt let you place your token there
in my head iit's like if it blocks movement that mean you have to get over it, you cant move through it
(functioning like a wall with movement block enabled)
it's probably at false by default.
it was too yea pretty sure
Myself calling it solid would make the most sense (but then theres already the "is solid" option)
it's my old messy THT fork , its not clean
Maybe something like this would be a bit more clear?
Elevation Penalty
If checked, automatically calculates the additional movement needed to climb up or down this terrain
fair enough yea
i wont update it , it is not out for now, i have other stuff to do
totally understandable
thank you for helping me get that fixed tho π«Ά
Alright, sorry I got one last thing for you before I go to bed with that fork π
The auto calculation to climb is working. But im fairly certain the math is wrong
So by using the square brackets. You can see that moving up 2 height and 1 space over would cost 4 movement (which is correct)
But when I do what should be the same movement but let it automattically do it by moving the token onto that piece of size 2 cover. Its 1 less
The larger the piece of terrain the larger the difference becomes
So for example at size 3 cover. The difference is 2 smaller
I think I know why too.
When you use the square brackets. It is manually moving the token up or down as you're dragging it along. So each time you press that keybind its factoring in that you have moved the mech 1 hex (so like works the exact same has how the difficult terrain from TMT works)
but TMT doesnt handle its automatic elevation change like that
...
after you've moved your token it applies the elevation change. And because its happening after, that change doesnt get factored into the movement cost itself
i use the brack to incraese height obave the ground, i dont use it to climb , it clim by it self
yea but it climbing itself isnt doing the math right
Cause can look at it this way. If you ignore elevation ruler for a sec.
TMT, you move onto a piece of terrain. Cost its only factoring in the horizontal distance when measuring. After you let go and the token moves. You get teleported a vertical distance equal to what ever the elevation difference was
So that vertical movement happens for "free" because it happens outside of you moving your token.
You drag your token, movement cost is substracted. And then youre teleported vertically
ok ok ok dude , but more concise when you explain a bug,. explain the fact simply and only the fact , i dont need to know your guess about how to code works. its just more noise to me , it hard to understand
i cant read all that that sorry
sorry me being tired prob isnt helping
sorry, not meaning to
ii see there something wrong, i'll check mysefl. for now i have to do my job
Just go sleep if you're tired Frost. This thread isn't going anywhere.
You can pick up where you left off easily.
Your head and brain will thank you later.
I know this. I stayed up for three days straight and could barely think straight if think correctly at all. So don't force your brain if you tired.
When there a bug or an issue , bombarding me with information does not help just confuses me.
What i need is a repo state.
- state bug vs expect behavior
- steps to reproduce the situation
- context img/etc
with that , my first step is to be able to reproduce the issue.
it only after we can discuss. anything else is speculation and noise.
ok i see the calculation issue, it gonna be way more complicated shit
Okay, so what do I need to download to get this beautiful HUD of yours? Are there any additional dependencies? Or am I replacing any original modules?
If you're referring to his custom menu, it should be included in Lancer automations. Just need to enable it in the settings (iirc the setting is "Token action hud [BETA]), it doesn't require anything iirc :)
(note it has to be enabled for each users, so if your players don't see it, they need to enable it on their end)
The original Lancer Aumotations module is LaSossis'? Unless I'm confusing names π€ About to check.
I don't know any other Lancer Automations but this is his.
Token Action HUD Core and Token Action HUD Lancer are completely different things.
Yeah, I think I'm confusing modules.
I may have been thinking about Lancer QoL for some reason.
Yah, completely different beast
Lancer Elevation ruler complete refactor and overhaul
tldr : better respet of rules, consistency with manual elevation and automatic, no longer depend on THT auto elevation (does it on it's own)
you'll have the elevation displayed above token when moving on elevation (auto elevate)
-
option for the default ruler
-
Tokens now follow terrain elevation when moving (go up with terrain, maintain height offset above ground)
-
Manual elevation (/) is preserved across movements as an offset above terrain
-
Same-hex vertical movement no longer double-counts elevation cost
-
Fixed flying tokens having zero cost for same-hex elevation changes
-
Movement costs now correctly match Lancer climbing rules (2 movement per space climbed, diagonal climb included)
-
Climbing malus (β ) displayed separately from base movement cost in ruler labels
-
Removed @ elevation prefix from ruler labels; arrow and warning now on same line
-
Added startup warning when THT's "Automatic Token Elevation Change" is enabled (handled by Elevation Ruler instead)
there so code on lacner-automation, the will adapt to these change, not out yet. hope the curernt one dont break to much ( like with flying, and climber ( i dont if i pushed that status yet lol)
now i can get back to automation , i forgot what i was doing lol
Force Client Settings for the win.
Hi, just a quick note, the current token action hud doesn't display npc stats even if you login as GM
I it's not really supposed to show full stats.
For the purposes of the Action HUD, the only things important to view there would be Structure, HP, Stress, Heat, Speed, and if it has a Reaction still.
For showing full stats? Best to use [Token Tooltip Alt] and pick up a template from github.
it shows the same stats than MECHs,
struct , stress, hp , heat, repairs, movement cap, reaction
if you want to see the stats you can go in class and right click on an element.
almost most element can be right clicked to show details
Oh shit did not see that part
i dont know if i'll display more, up to my own discretion
I usually just make use of the TTA for in-combat viewing of stats (for me), and then give players the observer status for the sheets after they scan them.
for scan i have intergrated a macro, form someone else , with small tweak, creting a journal entry for players
I believe the base Lancer has that same macro
I found it in the Compendium
Yep
Lancer Macros under the Core folder
yeah i dont remember been a while, the scan macro in automation , send a message to the GM so it can choose what he does
come to think of it, i'll need to update it, with the choseToken api
Ah, the Scan (Journal) macro makes a folder in the journal tab as well if there isn't one yet.
After the first Scan, I set the folder ownership to Observer so that new scans that pop up there become viewable for the players.
Ok, THIS one doesn't have those two other fancy things.
Ala ka bruh
then the gm will recieve this
Ok, that is pretty cool. If I write stuff down there. It will add to the journal?
nah to the chat
maybe create a journal , but idk. for those i'd expect my players to take notes themselves
but it's an old stuff made before lancer-automation, i'll update it.
for now i need to finish the extraAction injection into TAH (token action HUD)
so you can hook onInit , extraAction for an item
onInit: async function (token, item, api) {
await api.addExtraActions(item, [
{ name: "Print", activation: "Quick Action", recharge: 4, charged: true,
detail: "Recharge 4+: Place up to 3 blocks of size 1 hard cover within Range 3, or one block of Size 2 cover." },
{ name: "Rift", activation: "Quick Action",
detail: "Choose a Line 5 area in Range 5. At the start of its next turn the area collapses." },
{ name: "Sharpen", activation: "Quick Action",
detail: "A Blast 1 area in Sensors becomes difficult terrain until end of scene or next use." },
{ name: "Tremor", activation: "Quick Action",
detail: "All characters in a Blast 1 area in Sensors must pass a Hull save or be knocked Prone." }
]);
}
same stuff use for sniper mark, that inject the "fall prone" to the target
Huh.
Ok found something interesting.
Rolling Mech Stats [H.A.S.E] through the Token Action HUD makes the roll NOT include any bonuses.
That Hull Check is supposed to have +4 instead of +0
But if I roll it through the Mech's Sheet, it works fine.
ok must i have forgotten something , same for NPC ?
noted
Skill Triggers for PC Pilots seem to be fine tho
yeah, the base stat number isnt showing i mean
what do you mean ? , what is the expectation ?
I'm sorry I didn't begin combat and thought the base stats of the NPC were hidden
this is so embarrsing
fixed, i think i reverted some code at one point, or something. i was sure i did those.
Nice, I'll holla when I come across anymore weird things with the modules
Update :
Lancer-automations :
Support hard cover, templates, and recharges, TAH activation fixe, new feature for extraAction , statRoll remote + new indication for injected action compared to others
templateMacro : tempalte attach to token feature + fixes stuff
The Token Action HUD doesn't broadcast specifically PC Frame Traits, Talents, and Core as well as NPC Traits that aren't Systems.
Like when you click on one of the NPC Systems in that tab, it broadcasts it to the Chat Log.
It isn't the same for the NPC Traits tab.
The right click to view is fine. But broadcasting to the chat log doesn't work. Needs to open the actual sheet in order to broadcast it.
i see, i never used the chat broadcast for non active stuff, hence why i didn't add it .
guess i'll see to add it
Yeah, this is mostly for other players readability. As they would also like to see the ability their allies have, or the ability the enemy is using to punch them in the face.
Lacner-Automation update :
improve left click action on trait , talent, stuff etc..
update to THT 0.6.0
templateMacro
function preservation.
elevation ruler
update to THT 0.6.0
THT fork 0.6.0 with movement penalty , dont know if it should be integrated in the real one. so as usual i fork .
https://github.com/Agraael/FoundryVTT-Terrain-Height-Tools
Huh, nice.
Also, been looking through the settings of your fork of Elevation Ruler and I maaaaaay be blind.
What setting toggles the basic ruler and the movement ruler?
simplified Canvas ruler
tbh i wonder if a should do two ruler like
movement ruler and measure ruler
Oh that's such a life safer, I thought I'm going to have to count hexes next session
trying to figure out how to auto-create auras for my NPC tokens so i don't have to manually add them
like does that get edited into the Grid Aware Auras somewhere, or is that a macro i have to use somewhere?
you would need to hook some code at token creation , either doing with a module, or a macro that you have to run to make the hook.
or in lancer automation there startup script allowing to create to code run after loading ( like a module)
i'm also just trying to figure out how to do automation for weapons and audio effects and struggling a bit
for audio and stuff you have lancerFx module that explains it better.
for automation, i cant teach you everything. Look at the documentation, i think the examples still works. try them with other item and learn.
then you can come here with specific question.
ok, so i put that code i quoted into a startup script but it didn't seem to do anything
try some console.log() , to see if it really runs
Lancer-Automation 2.7.0
TAH , some improvement, LOG tab + stats
New target_modifier bonus type : applies and injects target modifiers into attack and damage HUDs (global and per-target).
Add moveToken utility with interactive placement, range checking, collision handling, optional teleport VFX and TerrainHeightTools elevation integration.
Improve interactive canvas helpers: support point origins for range highlights and add rangeOrigin option to placeZone.
some SFX and icon stuff
Documentation not fully updated, getting a bit tedious
TemplateMacro
nw onInside and onLeave hooks
This stuff is fire ong
update and cleaning of the api doc
i've added the lancer automations module and suddenly my scenes won't load, are there any modules that are known not to work with it or that are redundant with it?
no idea, try f12 to see any error
seems token factions and grid aware auras are missing an image, i think?
wait are lancer QOL and automations compatible with each other?
nah deactivating QOL doesn't solve the issue
Mmmm you can try to make a new empty world only with lacner automation.
i'm unsure of theses error , what do you have without lancer automation ? to see the diff
not much as far as errors and warnings go
what about the empty world ?
on it as we speak
tested mine no issues. tryed without token faction since they are mentioned in your logs
big red blocks, i only have automations and its dependencies
Mmmm somethign with svg icon , let me check
just to be sure you have the lacner system in that empty world
yep
can you do this in the console
CONFIG.statusEffects.filter(s => s.img?.includes("icons/white")).map(s => `${s.id}: ${s.img}`).join("\n")
the linebreak didn't work but we get a few things back
Mm what your foundry version? what browser do you use ?
V12, firefox
mmm maybe that's not what i think ...
it works flawlessly on chrome. i don't know how or why but it's a problem on firefox but not chrome. i'll let the others know to use chrome for the game but good to know?
okay then it's my installation of firefox that's got issues, the plot thickens
my firefox is blank with only ublock origin
i deactivated all extensions and it's not loading, so it's probably in the configs somewhere
set to true or false?
false
it was already set to false, and switching it to true just makes it so foundry won't load the loggin page
false
shit
well tbh i dont know
i mean hey at least chrome works so it's not like i'm all out of options
i dont have the opengl stuff
You sure it ain't anything to do with your modules? Maybe reinstall them?
This looks so amazing. One question, though. That unit teleporting between the two TP cells - should it have stopped on the unit in its way? Or is it a unique quality of the ability used that didn't let it move through units?
well i must change the wording, it's not teleporting. but it's an automation of a spΓ©cific skill of an npc.
It is basically the automation of the Accelerate system of the Sunzi
Oh wait no, that was the Architect's terrain printing shenanigans
Which basically also functions like Accelerate
yes it's an architect
I recognize the Civil-Class Printer name
that's mainly how i add new feature, i automate all my npc one by one, then for some it require new feature , so it can be scalable for others
Here the "Treat all Charcter as Invisible" required the new Target_Modifier bonus type
Huh, so this Automation mod is entirely "Build when I need it" in terms of how you code it.
Interesting.
that's how all my stuff starts, tools for me , that i share
that was the same shit with NPC importer, having to update NPC twice ( from comp/con and vtt ) was bothering me.
Hey LaSossis, hoping you can lend a hand wuth some troubleshooting. For some rrason the automatic range templates thst normally pop up when you hover ovet weapons in your new token action hud aren't appearing for me.
I made a new world and tested with all the same modules and it worked, so I've got no clue where the conflict might be. Any ideas how I could check?
I'll send a Screenshot, 1 sec.
Ok so I don't get any errors when hovering over attacks or anything in the hud itself, but I do get this warning when hovering over tokens:
that should not be an issue, if you check the list of aura in the token what do you have ?
Seems empty.
seems to be the issue , the aura used for preview is not there, but why.
it should be called "range_preview"
No clue honestly. Β―_(γ)_/Β―
I tried disabling and then re-enabling both Grid-Aware Auras and Automations to see if it will re-initialise, no dice.
Funnily enough, manually exporting and importing the range preview from my other world seems to work though, so I can just manually put them back in for my players.
i'm at work , and i'm gonna be busy tonight, just wait until i truly try to fix this
Are you using the GAA fork?
Aye, I thought that might've been it two but I double checked and it is the fork.
ok i think i found the issue
once again some issue when i import feature from my personal stuff to lancer-automation
and i'm gonna call it LA_range_preview , to be safe
ok i pushed , hoepfully it work, i gotta go in 20min
Thanks mate, appreciate it! I'll give it a go shortly and report back.
Yep that's fixed it, thanks again!
Ok, I think I came across a bug.
Elevation Ruler + Terrain Height Tools measurement
Expected: Drag a line to measure a space and place a token onto that space.
Bug: Dragging a line to measure distance between spaces to a space NEAR painted terrain causes the ruler to "read" that it is at a far different elevation. As well as dragging a new token onto the canvas sets it at said random elevation.
Tested this on a new world, with only Elevation Ruler and Terrain Height Tools installed.
There are even some instances when it is doing it when there are NO painted terrains nearby. But from what I could tell, unpainted maps work fine.
More info: It seems to be linked to [ Terrain Height Tools integration ] setting.
thank you , i think i know what it is .
cant reproduce yet on an empty world, do you have the lastest version of THT ? , function to get terrain at positios changed a bit
(i need to update my fork)
I was looking at your fork and thinking that the ignoreAutoElevation flag and the wall-height integration in getTokenHeight would be good to merge upstream, and the new move penalty field could be added via the new registerCustomTerrainTypeConfigUi API function.
That would then save you the need for maintaining your own fork. Obviously if you prefer to have your own fork that's fine too, but food for thought.
i dont mind, that seem better
i do fork because i dont know the original intent , some stuff i do could be closed minded to my perspective .
yeah for the flag it's because i have a size 18 token on the map,
i think people might have guessed but ,i'm making a Desert of Kharak / Lancer , campaign.
thus mech are clearly not the biggest unit.
a carrier is
568 meters long for a hundred tall
for reference i have design the entire ship
anyway i'd like to know when it's out, then lancer-automation would use it.
That's really cool. Yeah I saw your tokens and recognised them. Makes me want to reinstall it and play it, I really enjoyed that game!
Sound, you happy for me to just copy your code in, or you can raise a PR if you want to be properly attributed in the git history?
nah just copy, i'm at work now
hihi! i wanted to ask, im getting this warning about automatic token elevation change, saying the elevation ruler fork already handles it, but i dont think so? the automatic token elevation change makes the token to, change its elevation and "float" above tiles in an isometric module, while the elevation ruler only calculates the movement cost of climbing the elevation. when i turn off the setting as recommended, the elevation change doesnt happen. should i just bear with it and change the elevation manually or am i doing something wrong?
something wrong is happening , elevation ruler (my fork) should handle it
also to it's my elevation ruler fork , not the normal one. just somehting you should mention
but i don't use isometric module , so that might not be handled well.
what isometric module you use ? can you show me a video of what is happening ?
also what version of THT du you have ?
here are the modules, your elevation ruler fork, THT and the isometric module i use
i will record a short video
i hope this showcases the issue
my foundry version is 12.343, in case it helps
i believe the isometric module isnt the problem perse. it's just that when i disable the automatic elevation change, the token isnt applied any elevation, and therefore the isometric mod doesnt create the floating effect
i dont have grape juice isometric, i tried on an empty world with isometric perspective , i dont have the issue.
the only difference is that i use my THT fork that is still on 0.6.0, maybe something comes from that ?
any error in the console ?
should alway be the first thing to check
in the console, without the elevation change, those 3 errors appear in the first image. with the elevation change, a few errors appear in the second image, they are all the same one
i can try to install tht 0.6.0
unfortunately i believe grape juice is a paid mod... ill try to see if it has a free version
both are when moving the token into a terrain with elevation, the hard cover 1
my test is in empty world THT 0.6.0 , isometric perspective , and elevation ruler.
it has one but the last public version is for foundry v10, sadly v12 is still under patreon paywall
grape_juice-isometrics, an Add-on Module for Foundry Virtual Tabletop
i cant test that. but i dont think that's the issue
i'm limited in what i can do , i'm supposed to work
thankfully compilation time is long
it's fine, no pressure 
let me try with THT 0.6.0
just tried, sadly same issue
without elevation change, the token doesnt get elevation. with it, the token gets elevation.
on an empty world ?
i'll check
we have to remove all noise
yeah, same issue on a newly created empty world
mmmmm
the issue is that without elevation change on, in the THT module, the token isnt getting its elevation changed when stepping into a terrain with height
it's honestly just that, but idk how to fix it
without the isometric module ?
for now we have no clue who the culprit is, we still have to find it
if push comes to shove, i can just update the elevation manually
i can try to check if the issue persists without the isometric module
debugging is long and painfull, but testing possibilities is what you need to find the truth
same issue
turned off the isometric module. without THT elevation change, the token isnt getting any elevation
i do have it enabled
crap
so empty world with only elevation ruler + THT dont work with a simple base terrain with is solid checked at true
yes, i am in a new, empty world. there's no isometric module. i have your elevation ruler fork and THT 0.6.0.
the token only gets elevation with the elevation change on from THT
do you have Only those module, like no additional module active with it
oh, hold on, i forgot to turn off the rest of the modules. give me a sec
...
the point of an empty world, was to isolate from every addition noise from any other module
the issue is now gone, when moving into an elevated terrain it gets elevation without the elevation change... so i guess it's some other module being an issue
AH FINALLY
i'll try to check with find the culprit
progress
Yeah this is the latest THT as well.
same thing , complete empty world , with THT and Ruler
i might have found the culprit
test the case with the least noice
ah ?
yup got it
it was a module i, dont even know why i had it, called terrain mapper
turning it off fixes elevation ruler to work properly
-# so sorry for wasting your time but it's fixed :D
It is just the THT and Ruler and even just those two. The problem still exists. It is reading the strange heights of terrain that doesn't exist.
ohhh i see why i had that module installed, it's because it adds the option for regions to give the "difficult terrain" condition
now i wonder how can i apply that without that module...
i can try to see how to make it compatible, otherwise you can check templateMacro, i have stuff to create difficult terrain that trigger the damage
I'll double check on my end, there may be something I am missing.
last test would be try THT 0.6.0 , i feel like it catch the terrain next to the hex
ohh, i see, just tried and it works, unfortunately its not like the other module, where the regions can be invisible, and when hovering the area with the token, it warns of it being difficult terrain
would be great if some day there is an elevation ruler fork and terrain mapper compatibility patch, as it's the most seamless way i found of adding difficult terrain. still, thank you so much for the help and your incredible modules, of course!
i'll check that tonight at home
i'll try to fix the elevation issue,
for difficult terrain in use my THT fork, where i can set movement penalty to terrain. (which works with elevation ruler fork)
template macro is used to make movable ones.
i dont think i'll do anything else for terrain mapper , i dont use it .
it also used with lancer-automation with difficult terrain immunities and flying (or climber)
oh! i never saw that option of movement penalty within THT, i guess it's because i updated it? that fixes my problem
i would then say, that it would be cool if when hovering a token over a difficult terrain area, there's a warning alike the movement label
at least in my end there's no warning, sadly
nevermind me again, didn't touch anything and suddenly, the warning started to appear 
guess I have 0 problems then! 
i'll see with the next version, my change would no longer be needed i think. we'll see
Yeah no, still doing it
Even on a completely new world with just the Elevation Ruler and Terrain Height Tools active
Mmmm
i dont remember if you tried 0.6.0 instead of 0.6.1 ? , since that the only difference with me
what's your version of the ruler ?
like i said it look like one of issue i add with using the center of hexes to get terrain.
updating the ruler for 0.6.0 , i need to fix this issue again , for some function parameters were inverted.
hopefully it can coem from either the ruler outdated, or THT , or maybe soemthing broken in 0.6.1 ?? not sure.
otherwise its more complicated
updating the ruler for 0.6.0 , i need to fix this issue again , for some function parameters were inverted.
Do you mean in the THT API some of the parameters have been inverted? If so that wasn't intentional; I was intending to keep the API fully backwards compatible.
yep getCell changed
from
export function getCell(x, y) {
return TerrainHeightEditorLayer.current?._heightMap.get(y, x);
to
export function getCell(i, j) {
if (canvas.grid.type === CONST.GRID_TYPES.GRIDLESS)
throw new Error("Cannot use this function on gridless scenes");
const { x, y } = canvas.grid.getCenterPoint({ i, j });
return heightMap.getShapesAtPoint(x, y);
Huh I thought i was left-right and j was up-down, but it seems like it's the opposite π€
I'll reverse it back to how it was in 0.5.11 when I do 0.6.2 then, I don't really want it to behave differently from how it was before.
THT 0.6.2 is out which adds ignore auto elevation flag, the tokenHeight flag from wall-height, and swaps the parameters of getCell and getShapes back to how they were pre 0.6.0.
alright thx, time to update stuff
oh i see you added animation, i did the same but only in grid aura
wait i cant find the aniamtion otpion, did i failed my merge ??
Oh god damn it I must've missed changing the name when copy and pasting from another field. π€¦
It's the one that's incorrectly labelled as "Texture Scale"
@orchid prism
btw using canvas.app.ticker.maxFPS,
wont work if users have an uncaped framerate in there settings.
(it didnt work for me because of it )
it set the value at 0 for uncapped
deltaTime should already be normalized to the frame rate .
either something like
sprite.tilePosition.x += (xAnim / 60) * deltaTime;
sprite.tilePosition.y += (yAnim / 60) * deltaTime;
or
sprite.tilePosition.x += ((xAnim / canvas.app.ticker.FPS) * deltaTime) % (texture.width * xScale);
sprite.tilePosition.y += ((yAnim / canvas.app.ticker.FPS) * deltaTime) % (texture.height * yScale);
tbh I don't really understand what deltaTime actually *is* conceptually speaking. Looking at the PIXI Ticker code it's the deltaMS * a targetFPMS value.
I didn't realise deltaMS was a thing so I'll just use that instead I think.
Thanks for letting me know though, I didn't actually realise it was possible to uncap the fps. I'll sort it for next release
-# (which won't be today, I think I've done too much today and I'm clearly not thinking straight today lol)
hehe it's my bread and butter
Deltatime is the time difference between last frame and the current frame.
It is specifically used to code logic that does depend on frame rate, or rather adapts to it.
A function with deltatime usually means it is called every frame.
let's say i want a bullet to move at 1m per second.
every frame i would need to move it. for 1 second, one meter.
what you usually do is multiply your speed with the deltatime.
if one frame is 1 second, the delta is 1 (it's in seconds). at 60 fps, deltatime is about 16 ms.
for every frame: 1 meter * 0.016, and so after 60 frames we have our meter.
but if the user is omega lagging , like at 30 fps (i'm mean 30 is ok) , then we move more each frame.
if i'm super fast, like 240 fps, then we move very little.
no matter the fps fluctuation, your speed visually is going to be the same.
deltaMS is probably just deltatime at a different scale.
there's more to that concept and a lot of issues, like collision detection or physics, but that's the basis
Yeah I get the idea of doing animation/physics/whatever based on time rather than FPS, it's this deltaType that pixi passes to the ticker functions that I don't understand.
It has a deltaMS which is the number of milliseconds since the last ticker tick, but then the deltaTime parameter that it passes to the ticker function is the milliseconds multiplied by some constant. I'm guessing based on the name it's something to do with how many frames per millisecond - but if that's the case why is targetFPMS a static on the Ticker class, rather than an instance property - surely the target number of frames per millisecond are going to change based on whether the ticker is targetting 60fps or 120fps or unlimited.
Regardless I've replaced it with this now which seems to work nicely
const { deltaMS } = canvas.app.ticker;
sprite.tilePosition.x += ((xAnim / 1000) * deltaMS) % (texture.width * xScale);
sprite.tilePosition.y += ((yAnim / 1000) * deltaMS) % (texture.height * yScale);
ah my apologie for over explaining then
it kinda make me happy to explain stuff like that
from what is see deltaTime , is the number of frame elapsed, so it a bit unsually actually
Nah don't apologise I appreciate it. I'm the same at work lol
1 for 60, 0.5 for 120, i guess they made this to make it more simple to understand
well i have been a programming teacher, for pay my studies
how do i cleanup a reactor explosion? one of my players thought it was funny to nuke himself in the base and now there's a giant crater i can't erase
it from lancer qol, it leave a light the crates is an effect. won't be there after reloading. the light will still be there
Ah thank you, thought that was part of your module
maybe , i think i might have copied it, in any case maybe at soem point i'll do somthing about it
Sorry, had to go to sleep cause I was losing my marbles over it. I'll double check the THT version.
Huh. Ok, yeah THT 0.6.0 seems to be stable.
Yep. Looks like before and after 0.6.0 the elevation ruler does not play nice.
But 0.6.0 specifically the THT plays nice with Elevation Ruler.
Ah ok, now I discovered a new bug.
Drag Moving doubles the height instead of the actual height.
Moving by Ruler is perfectly fine, it reads the height normally.
Moving by Ruler lets the token get up to a height 4 elevation normally.
Drag Moving on the other hand moves the token to height 8.
Vice versa it also does that when trying to move it back to Elevation 0 (the unpainted terrain)
Guess Ruler Move is what I'll be doing for now.
Is there a setting to make your Token Action Hud window movable, rather than it always being fixed in the top left?
no not yet
you need to give me what version of ruler you have + the doubling thing is probably tht auto elevation mixed with elevation ruler, there should a warning for that.
in any case , THT and elevation ruler fork have been updated, after I mentioned the issue with getCell
I'll see what I can do . but don't expect anything crazy
both your fork and the main THT have been updated? Also do you need just my Elevation Ruler version or do you need me to send the full folder?
the version , and yes they have been updated. si does THT to 0 6.3 , (and soon 0.6.4 for the frame rate issue)
No stress. I really appreciate all the time you're putting into this, and it's easy enough to leave it disabled π
Elevation Ruler (your fork) version is 0.11.5
THT version is 0.6.0
ok both are in Sync with the "getcell" function
do you have a warning when loading your world , about elevation?
Let me check, if it did then I didn't notice it. I'll log out and log back in.
otherwise you can uncheck the auto elevation in THT
the warning is a UI notify , so should have appeared on the screen
Thanka, that fixed it.
Didn't pop up the first time tho which was weird.
The warning I mean.
care full, your elevation ruler fork and THT are not up to date
wibble rolled back the "GetCell" issue , thus Lancer automation and the ruler, changed again to adapt (mainly being back old calls)
Aight, I'll update them both now. So possible that both your fork and THT should be stable now?
Ah Wibble rolled it back
it should
Nice
the axis of the function where reversed.
you can with 0.6.3
Alright then, I'll test it
the next is for the framerate and animation issues
Well that is lovely, it works now and I can rest easy with drawing cover and stuff for my maps now. THT with their custom shape painting should play nice now.
no idea if (custom shape) play nice with elevation ruler, it should not
Should not play nice or will?
not
Just tested it, seems like it does play nice so far. But measuring can look a bit tricky.
It may be safe to say for now that it is ok-ish
my ruler fork try to calculate each hex move , to know if you climb up and down during your path .
I guess that work because it take the center
it be more tricky if you traverse the zone in one move
but this is not the movement ruler it does not show the movement cost
I'm gonna start using the custom drawn terrain. If I come across any bugs, or goofs I will inform ya
hey, the lancer automation has a code for the dispersal shield, how to i put it in game
there is an option to access my personal item implementation, in the configuration. then it should run when activating the NPC item.
keep in mind it's just my personal stuff, if you dont like it better make your own. it's mainly to serve as exemples .
dispersal shield is a bit special, with the "deactivation action", which is not displayed yet in the TAH, i'm gonna change it soon.
you wont be able to use it properly . (like you wont have the button to turn it of)
thanks
So just updated to THT 0.6.3 and the Elevation Ruler fork 0.11.6.
The update notes mentioned there should be a movement penalty setting in the configure UI but I cant seem to find it? Movement penalty for difficult terrain is actually working for me tho when moving tokens/measuring (im just looking for the UI configure setting).
no i was wrong it's not there yet in the official , must use my fork
Ohh ok
I see it now, thanks π
Quick thing of note for something I noticed on your forks page btw. Im new to github so not sure if this is something that can be changed or not.
https://github.com/Agraael/FoundryVTT-Terrain-Height-Tools
But viewing the above link currently (which should be your fork correct?)
And the installation instructions are pointing towards Wibbles version of the module.json atm
a shit , must have been the merge
i'm finishing some new feature and fix for lancer automation , then i'll fix
2.8.0
Changelog
New Features
- Infection Damage Type - New damage type from HORUS: Thy Hubris Manifest, fully integrated into Lancer (hopefuly) . Works like Burn but applies Heat. Systems check at end of turn. Cleared by Stabilize and Full Repair.
- Ammo System - Systems with ammo (like Ammo Case) display ammo entries on actor sheets with USE buttons. AmmoFlow consumes charges and prints a chat card. Available in TAH under Actions > Ammo.
- Item Disabled - Mark weapons/systems/NPC features as disabled via right-click context menu. Blocked from activation, cleared on repair.
- Compatibility Checker - Detects conflicts with csm-lancer-qol and offers one-click auto-fix.
- LCP Data Repair - Settings button to fix known issues in compendium and actor items (ammo types, descriptions).
Fixes
- Alternative Structure chat buttons - Fixed flow buttons in structure/stress chat cards not working (Custom Flow Dispatch handles module-registered flows).
- Melee Cover Fix - Melee attacks no longer apply cover (per RAW). Thrown weapons still count as ranged.
Improvements
- Template Patching - embedButtons support injected at runtime (no file edits needed).
- Trackable Attributes - Move, Reaction, and Infection added to token resource bar options.
- TAH - Infection shown in stats bar. Ammo category in Actions > Ammo.
Sheets
- Infection stat displayed on both base and alternative sheets.
- Ammo entries displayed on both base and alternative sheets.
- Disabled items styled on both base and alternative sheets.
Yoooooooooo
Hmm, do you have your own fork for Alternative Sheets? Cause I can't spot the Infection tab in NPC sheets.
well i 'm updating to the last version, (that just appeard 5 min after i pushed)
no need to fork it's all injection based
same for my lacner custom stuff, instead of having to get my cusotom fork i hack my way into the lacner object
(the same way i do for import NPC, i litterlly look for lancer.mjs and hood intothe connection)
Hmmm, I see. Though I noticed while the Infection box appears in Alternative Mech Sheet, it doesn't in Alternative NPC Sheet at all. (Swapped it back to default Lancer Sheet and it IS there)
Also I like the effect you made for Infection is that part of Lancer Automations or you coded that part in yourself?
lol it just the fire effect but green , but yeah it's in it
yeah yeah , literally the sheet just got updated , 5 min ago , so injection are broken , i know
https://github.com/annoyedb/lancer-alternative-sheets/releases/tag/v1.4.0
hold on before typing a huge wall of text, i want simple inofrmation.
what do you do , give me the step so i can reproduce your issue
fair!
I'm in combat, I take a player npc, place it adjacent to an enemy NPC, and nothing happens. It does not cause either of them to be engaged, nor does the ruler stop upon becoming engaged.
so it was working before
simple check , is it toggled at true in the default activations ?
full disclosure: I hadn't gotten to testing phase, because I was rebuilding a LOT of my foundry because i had updated from 2.9 to 2.11
This?
yes
Aye, then yes
indeed i'm able to reproduce on a clean world , but it work on my persnal one , i'm checking
When I rebooted, I got a warning from Find the Culprit that there were errors, and I clicked fix without thinking since it just said it was to do with the Auto-engagement.
you gotta give more information, this is too vague to help
If I could give more articulate information, I would.
I just updated from 2.9 to 2.11, so a lot of stuff has been broken and I'm trying to fix it. Inbetween reloading my world, I got the notification that there was an update to Lancer Automations.
So I logged out, updated it, and logged back in. I got the notification from Find the Culprit that there was an error, it was related to the Lancer Automation's Auto-Engage function, and while I want to say the number of error was something like 23 I can't be certain. I clicked "fix" and then went to see if the auto engage function worked.
It didn't. I checked to see if it was still on in the activation manager, and it was. I clicked the 'Apply Fixes" button, and that didn't do anything, nor did "Reset to Defaults"
There was a weird interaction where I tried to see if it was tied to the Lancer QoL automatic Engagement function. it was off, so I turned it on, and in that instance, being adjacent to an enemy unit removed engagement, while moving away caused engagement.
After that, I came to the discord to report that I had this error, and that's caught up to present.
from what i cna see there is an isse with my isHostile function , looking into it
do you use my token faction fork ?
I don't know what Fork means in this instance, but I do have Token Factions
what is the disposition of the 2 token (hostile, friendly etc .. )
Friendly and hostile
ok that mean you dont have my custom token faction (no that it is needed , but it uselfull for context)
just to be sure does you token faction module configuration look like ?
Other than base opacity, which I do not think should matter
well actually you have my custom one lol , that narrow the issue
I can hop into a call/screen share if that would be easier
no needed yet, try to disable themodule, it should work, if it does that confirme that the getDisposition fucntion do not work properly when you dont have advanced team (my use case)
so, to clarify: Disable Token Factions?
yes the module
Confirmed! Both the pop-up that 'you are becoming engaged' and the automatic application of engagement are both working
yup that confirms, it, working on the fix, you'd have to update tokenfaction then
Copy that! Thank you for the help β€οΈ
tokenFaction (fork) 13.0.2
Fix disposition Functions not properly working with token with no advanced team
Lancer-automations 2.8.1
Fix sheet injection with the newly updated lancer-alternative-sheets
Add Token Tooltip Alt configuration for infection and reaction , from Eranziel's
Okay, so, I have loaded up a different world, after getting everything working on my oldest world. I thought that it would be fixed and fine because I updated both the token faction and lancer automations, but I am getting this compatibility issue warning there.
i clicked ignore, and the engagement features are working perfectly fine.
As a precaution, I made a backup world, clicked "Auto-fix and reload" and the engagement features did not work anymore. The popup comes up each time, I reload in the original world that I hit ignore for, but it doesn't show up any more on the second world
the warning is when you have lancer Qol Engagement , you cant have both at the same time.
you can do it manually, if without lancer Qol Engagemnt, the engagement dont work , we have an issue.
this must be off
~~So, I turned off lancer QoL engagement, and that made the error go away, however, the engagement functions then stop working.
Lancer automations version 2.8.1
Token Factions 13.0.2
Tried turning off token factions and the engagement still is not working~~
I forgot to turn on combat
so it work ?
It does look like it is working, yes
2.8.2 : TAH HUD: add drag/lock and persist position
@dense trellis
I am gonna yoink this for my own personal TTA config.
You rock! Tysm! π₯°
hi! the new update is really good :D i wanted to ask, is there a way to disable the infection stat?
i am going to use it, but want to hide it away from my players until it comes into play
also, how did you do this? the status of infection + the token effect
token effect is just the fire effect form lancer QoL but green lol.
i'm actually getting the hang on tokenMagicFx, and making a couple more right now
as the Infection , well that's way more complicated
You have to add entry into actors schemas (npc, mech) , then i'll inject into variable in the lancer.mjs to add the infection damage.
so that then the whole system believe infection is a new damage type. that's why you can see it everywhere. i'm patch the system.
Go to edit a weapon, and you can give it infection damage now.
(there's more to it, like the damage, handle the chat messge, reversing the damage, stack check , etc ..., and probalby edge case i didn't think about)
i haven't tested it , but i think i could make an LCP with infection damage and the import would work.
and for the infection status, well i juste added it by code that's all
the goal is to make it seemless , like it was here from the beginning
(oh i didnt handle infection on deployable or pilots, nah it works)
yes, but, what im asking is, is there a way to make the status to appear automatically when receiving infection damage?
i suppose the token effect comes from having the status
i'm applying infection effect and nothing else is applied, it's why im asking
that's not happening on my end, no
i see , by default the status effectis at false
huh, i dont have that many options..
plus the infection is enabled but... still isnt applied
weird
brother you can read
check those , and the master one
i'll path so that they at true by default

yes those are still enabled and its not aplied, i turned them off for the screenshot seeing that you had the first one disabled
reload and retry , first adding the status manualy , then the damage. (so far i tested on my empty testing world)
reloaded and, nor the status or damage give the effect, its weird. none of the other status are having issues.
these are the only things that seemed to appear when throwing infection damage
im running foundry 12.343 and lancer 2.11.2
im going to try on an empty world
if you open the sheet does the stat is at a correct value ?
yep
Mmm only the auto effect and auto status , check agin the option if it save properly, also not haveing lacnerQol effect
i just tried on a world with only these mods and same issue
without lancer QoL as well, the others are on as I suppose they are needed (foundry tells me lancer automations have them as dependencies)
but yes, infection is being applied to the sheet
since the option for efect are false by default are they checked ? just to be sure
do theysave properly
yeah everything is enabled, i checked beforehand
if you burn damage , does it dd the status ?
yep, just checked
like i said, all other status are working properly, its only infection
i know , but to be sure, i'm making you do the step i would do to test
in the effect mamager can you find the infection status ?
i can find it in both menus
can you try CONFIG.statusEffects.find(s => s.id === 'infection')
in the console
also i see way way more status , i have in my empty world. no idea if that can cause an issue,
i think they are not by default, thus i dont have tehm in my testing world
just turned all of them off and still same issue
i didnt have an infection status before anyway so, i dont think theres any conflict there
await a.update({ 'system.infection': 5 });```
test this on a controlled token , check if you have any error
i know , but i'm trying to norrow down any possible
whhen you debug you are never sure
i run the code, i saw it added 5 infection to the sheet but, again, no status or effect
i tried to run it twice
console.log('user is GM?', game.user.isGM);
console.log('actor:', a);
console.log('infection val:', a.system.infection);
console.log('status registered?', !!CONFIG.statusEffects.find(s => s.id === 'infection'));
const result = await a.toggleStatusEffect('infection', { active: true });
console.log('toggle result:', result);
console.log('actor effects:', a.effects.map(e => e.name));```
no need to run it twice
ok now it added the infection status to the token, no infection to the sheet, and the token didnt get any green effect
const a = canvas.tokens.controlled[0]?.actor;
await a.toggleStatusEffect('infection', { active: false });
const traceHook = Hooks.on('updateActor', (actor, change, opts, userId) => {
console.log('[trace] updateActor fired', { actor: actor.name, change, userId, isMatch: actor === a });
});
await a.update({ 'system.infection': 5 });
console.log('effects after update:', a.effects.contents.map(e => e.name));
console.log('infection val:', a.system.infection);
console.log('master enabled:', game.settings.get('lancer-automations', 'statusFXConfig')?.master);
console.log('auto_infection:', game.settings.get('lancer-automations', 'statusFXConfig')?.auto_infection);
Hooks.off('updateActor', traceHook)```
again, no status, no effect, 5 infection in the sheet
it says master not enable , check again this menu
cfg.master = true;
await game.settings.set('lancer-automations', 'statusFXConfig', cfg);```
if it does not work , you can try to toggle it directly , that way.
i gtg to sleep
Just wanted to pop my head in to say that as a new GM on foundry, and to lancer, the automations module has been so extraordinarily helpful that i cannot believe it doesn't get more attention in guides, videos, etc. I've gone from wondering how to do everything mechanically, to having a system that mostly just works
Have yet to figure out the flow for blast zones for things like the hive, but one step at a time!
thanks, I don't remember If I mention other stuff I have like npc import or my actor browser fork, (damn I remember I must fix my dog of war shit)
I should mention them there.
but that module exist since few month (I think I started 3 month ago ), so that's expected that it's not very known.
tbh I'm also a new GM, and I felt with the freedom that brings VTT I could make tool that I need.
but I should slow down a bit I'm getting too deep , and forgot my normal life and activities.
been a while since I didn't do a cycling race , I should get back to it
i gotta go to sleep as well, but wanted to say that this fixed it
that means either the option was not checked , or not properly saved
it had to be the second one as i tried to insist on it saving on settings
fortunately now its saved so, the headache is over
good night!
I'll make a check on the saving
@royal knoll hi, uhh, is your problem related to token tooltip alt? i think LaSossis current tta configs might be wrong.
While we wait, you could give this one a try (i copy paste infection and reaction from LaSossis config to Valk config, but didnt add infect to any actor that doesnt have heat). You should also change max row to 6 for stuff to display properly i think.
If it's about damage failed to apply (target took 0 damage), have you tried pressing "apply fixes" in the automation settings? That one fixed the no infection damage problem for me
oh also could there be a settings that take into account Gorgon's 2 reactions? I don't think the current config has it right?
Reaction in the system is not even a number, I think Gorgon's reaction is not even handle at by the system.
I decide to keep infection even for those who have no heat , because heat is converted to energy damage. they could still "technically" (and it's up to interpretation) have infection and take energy every turn .
I didn't like 6 row , so I left it to 5 .
hi! just checked the new token stat bar, i really love this integration and how burn, overshield and infection appear on top of hp/heat, it was a nice addition
i thought of three suggestions in case you'd like to consider them:
- maybe adding an option to disable infection damage would be nice, as not everyone would be playing with those rules, and it appears in mech's sheets occupying space
- adding an option in resources to hide how much structure/stress an NPC has (as enemy stats are a secret until they are scanned). like, if an NPC has 4 structure, the bar could render as just one block until the option is turned off, if players scanned it for example
- and maybe making the HP / heat bars to change colors, for example; low HP is red, full HP is green, low heat is brown, high heat is orange
for the infection yes i should do it.
the rest , probably not ,its my personal interpretation. bar brawl already exist .
for struct it's literal just a fork ui wise of a bar brawl template. that's it .
change of color i tried , i find it ugly , not necessary in term of information, there already a lot of colors possible. it add confusion
(and also i dont want to create an automatic gameplay pipeline with scan and shit, i dont need it )
thats totally fine ^^ i certainly like both, bar brawl and your new integration, but your animations and overlaying burn/overshield/infection makes it look a lot better imo
2.8.5 >> Toggle option Infection damage integration
okay, your bar brawl fork with the overshield and burn overlays is finally gonna get me to try out your module suite. everything looks awesome from your screenshots and videos!
do you want any posts in here pinned? like the first one, with the links to your modules?
sure why not, let me do a lat update on the bar Brawl and then i'll update my post above with all modul and stuff, it a bit outdated
making some change , like the minute i started using it in a map with different grid sale, it was not got.
Also adding some options, and changing a bit of design
keep in mind that is a kinda my own bar Brawl, so it does not have all the option. like changing color and stuff
it more like a bonus stuff in lancer automation
ohh okay. does it have the ability to change what is visible when? like having text overlay of hp/heat
gotcha!
like for exemple the hud will appear on its own when someone take damage, to show the anim.
then disappear
that's amazing honestly, really like it
Huh, gotta inspect the newest fork (to me) to come around.
I've been just using Zenn's config with the latest Bar Brawl (because it looks coolio like statuses you'd see on your HUD to give you info.
So I'm deffo gonna check out what is different with yours.
hmm
just updated lancer automation, disabled this option, reloaded, but infection keeps on showing on the sheets, but disappears as a damage option
well i kinda did in like 2 min , so yeah sorry, i'll check later
dw
oh yeah forgot renderActorSheet
2.8.6 fixed it, now infection disappears from the sheet too :)
1.0.6 NPC import , >> now works with comp/con v3 Dev
Right, slight note to make here. The Lancer Automations Token HUD does not seem to read actions that are part of Talents.
Things like the Quick Action and Reaction of Heavy Gunner (Covering Fire)
"read" what to you mean ?, does clicking on it works ?
btw i see you have the infinity on the movement icon, are you in combat ?
Nope, like how clicking on the other abilities broadcasts them to the chat log.
I've tested both in combat and out of combat.
ok i'lll check
Yej, also a slight note as well. The Stat Roll for Mech Skills and Pilot Skills don't have a Flat Bonus modifier box. Would it be possible to also add that?
Flat Bonus modifier box, from what by exemple ?
but they never show on stat roll , like from the base lancer system
Nah I mean the Flat Modifier add or subtract, think it may be possible to add that? Is a little niche yeah but it would also see some use.
Mainly to Mech Skill and Pilot Skill cards
no man that never existed in the first palce
the bonus is in he rolled message efter ward
if it's not there, yeah that an issue, but the roll card, no never been there
Yeah but it would be nice to mess with it especially in a campaign sitting.
i'll see what i can do
i entedn so much , that ppl forget what were the base feature of vtt lancer
at this point, if i get laid off , i'll just make my own fork of lacner system for v13
Honestly you could pitch this Lancer Automations module to the team that handles the Lancer System module in Foundry. Pretty sure they'd welcome you in with how much stuff you've built.
nah
Fair enough, your choice
too much pressure and , it mean more work
REAL
in my module i'm free
True, not being connected means this is more of a passion project for you.
Something for you to enjoy making and also enjoy strangling
like i always this module is for me first, and i share it to others.
learning a new code base, working with other , it become like work
i already do my passion as a work , and ho boy sometimes
here i allow my self to try stuff , experiment do messy code , be janky
We embrace the jank.
beside , i know some seen my stuff i shared so bits of code
right now i took 3 days off, to chill after working on a game for 4 years
Nice, I hope you have a goob relaxing 3 days off
things will go naturally , people will check out , and see.
beside coding this module is like not even 50% of all the work it do for my game.
i have writting , game design, art direction, commision stuff.
anyway i'm rambling
improvement on the hud, change the display of elevation
lancer-automation 2.8.7
new change in the custom token hud for elevation + status icon a bit smaller
- fix TAH action from talent
littel flying animation
Nice!
I can't seem to move tokens in gridless scenes, is this intentional?
what do you mean can't, like literally can't ?
but no.
- I need a repro steps, so I can try to reproduce your issue.
- vidΓ©o footage can help
Removing the THT module seems to work.
I think it's because I'm not using your branch.
But it does say it is.
Let me double check what settings I'm using.
it should not, any error in the console ?
14module.js:472 Uncaught Error: Cannot use this function on gridless scenes
[Detected 3 packages: terrain-height-tools(0.6.3), elevationruler(0.11.6), lib-wrapper(1.13.4.0)]
at Sr (module.js:472:1584)
at Object.xr [as getCell] (module.js:472:1484)
at THTElevationAtPoint (terrain_elevation.js:385:28)
at Ruler.terrainElevationAtLocation (terrain_elevation.js:281:18)
at determineMovementType (token_hud.js:111:52)
at hudMovementType (token_hud.js:85:58)
at movementTypeForTokenAt (token_hud.js:74:10)
at _LancerToken.movementType (token_hud.js:62:41)
at new MovePenalty (MovePenalty.js:146:39)
at tokenSpeedSegmentSplitter (token_speed.js:41:45)
at gridlessSnapping (Token.js:298:24)
at _LancerToken._onDragLeftMove (Token.js:221:26)
at πCONFIG.Token.objectClass.prototype._onDragLeftMove#0 (libWrapper-wrapper.js:191:52)
at MouseInteractionManager.callback (foundry.js:30835:17)
at #handleDragMove (foundry.js:31214:26)
at #handlePointerMove (foundry.js:31179:64)
at vh.notifyListeners (EventBoundary.ts:1464:33)
at vh.notifyTarget (EventBoundary.ts:658:14)
at vh.propagate (EventBoundary.ts:310:18)
at vh.dispatchEvent (EventBoundary.ts:210:14)
at vh.mapPointerMove (EventBoundary.ts:815:64)
at vh.mapEvent (EventBoundary.ts:231:28)
at ra.onPointerMove (EventSystem.ts:396:31)
do you ahve my elevation ruler ?
Is 0.11.6 right?
i never play in gridless , high chance my code do not work in that stetting
What kind of issues would not using your branch entail?
the feature it provide for autoa elvation, movement penalty , fix of un even movement
That's too good to miss out on~
I can just make my scenes grids and make the lines invisible or something, lol.
hold on i'm trying to test
"getShapesAtPoint" insteadf of getCell in gridless
UPDATES
NPC-Import >> faster npc download
Lancer-automation >> flying animation
ElevationRuler >> gridless support ?
try update elevation rulers
Quick question LaSossis, did you add some code to change the size of the token statuses?
yes
There a setting to change it? If so I don't see it.
if not , it shoudl not
no
i'll add one, but it's part of y bar brawl stuff
Ah, its part of Bar Brawl?? That is new, I thought Token Statuses are separate from that
no it'snot bar brawl
i meant MY bar brawl stuff
it seem you dont have it activated , so that's an issue
Ah, I found no link to your Bar Brawl so that may be why.
I'm using the original Bar Brawl.
forget it , it not a module, my wording is wrong it in the lancer automation , bottom at the readme
patch is comming
This is expected, correct?
Oddly enough I did not see that when I opened up the world.
I think I already fixed those.
This is something entirely different.
Oh wait no I am dumb
Yeah that is expected.
Just click Auto-fix & Reload.
Cheers, just making sure.
update
lancer-automation >> fix shrinking status effect applied globally
templateMacro + elevation ruler -> gridless fix and support
oh forgot , the flat modifer on HASE roll is there
Elevation update works like a treat, cheers~ Saves me a lot of time from converting all my gridless scenes into grids~
Glorious
Think there might be something funky with the flying. The token sticks to the y-axis where you activated the flying.
i guess the animation is not properly working. you can desactivate it
probably a scale issue
can you give me you grid size in pixel + the appearance settings of the token
Ah, I was gonna also report the weird flying animation bug. But someone else beat me to it.
werid i dont have the issue on my empty world
What does your flying code look like?
function startFlyingBob(token) {
if (_flyingTickers.has(token.id)) {
return;
}
const amplitude = Math.max(2, Math.floor(canvas.dimensions.size * 0.03));
const periodMs = 2000;
const restY = token.mesh.position.y;
const tick = () => {
if (token.destroyed || !token.actor?.statuses?.has('flying')) {
stopFlyingBob(token);
return;
}
const t = (performance.now() % periodMs) / periodMs;
const offset = -(0.5 - 0.5 * Math.cos(t * Math.PI * 2)) * amplitude;
token.mesh.position.y = restY + offset;
};
_flyingTickers.set(token.id, { tick, restY });
canvas.app.ticker.add(tick);
}
Testing in the console, it has something to do with restY.
ok i'll check , for now i'm on an other thing
Do you know how to run stuff in the console?
const token = canvas.tokens.controlled[0];
const amplitude = Math.max(2, Math.floor(canvas.dimensions.size * 0.03));
const periodMs = 2000;
const tick = () => {
const baseY = token.document.y + (token.h / 2);
const t = (performance.now() % periodMs) / periodMs;
const offset = -(0.5 - 0.5 * Math.cos(t * Math.PI * 2)) * amplitude;
token.mesh.position.y = baseY + offset;
};
canvas.app.ticker.add(tick);
See if you can fix the flying bug by pasting the above into the console.
function startFlyingBob(token) {
if (_flyingTickers.has(token.id)) {
return;
}
const amplitude = Math.max(2, Math.floor(canvas.dimensions.size * 0.03));
const periodMs = 2000;
const tick = () => {
if (token.destroyed || !token.actor?.statuses?.has('flying')) {
stopFlyingBob(token);
return;
}
const baseY = token.document.y
+ (token.h / 2);
const t = (performance.now() % periodMs) / periodMs;
const offset = -(0.5 - 0.5 * Math.cos(t * Math.PI * 2)) * amplitude;
token.mesh.position.y = baseY + offset;
};
_flyingTickers.set(token.id, { tick });
canvas.app.ticker.add(tick);
}
function stopFlyingBob(token) {
const entry = _flyingTickers.get(token.id);
if (!entry) return;
canvas.app.ticker.remove(entry.tick);
_flyingTickers.delete(token.id);
if (!token.destroyed) {
token.mesh.position.y = token.document.y + (token.h / 2);
}
}
OH the issue is after moving , shit kinda did nto check that , stupid .
you could have said that. now i can reproduce
i'm gonna use tokenMagic that's way simplier
forgot it has effect to move token images
Stat bar overlay fixe, value numbers on owner + always above token
Fix flying effect -> switched to tokenMagic
2.8.10
Yeah, fly movement is all good now~
Not sure if this matters to anyone, but Lancer Automations seems to be the only module that doesn't highlight yellow when an update is available, always shows as green.
Is this expected?
_ _
probably because it's not published on foundyr
Alright.
found a bug i think?: this mech has 6 speed but the boost color doesnt show up until it moves 8 while its moving up in elevation. works fine when its moving across flat ground
doesnt seem to happen with size 1 mechs. havent tried any other sizes
ohh wait nvm - i was using drag ruler before and still had the hexagonal shape set to rectangle. it works fine when its set to ellipse
yeah bit of an issue with the coloring , i shoudl look into taht at some point, but it's not a big deal
yeah its not! it works fine when the hexagonal shape is changed, i just had it set to rectangle since that fixes drag ruler's snapping and forgot to change it back
ah , well still there is an issue , where sometime the whole ruler becomes yellow .
oh weird
yeah, it been a while since i did that , i had less knowlegle and had many issue.
huh at some point i should get back ot it
@grave scarab i see this
you are not using turns in cambat i assume ?
i think i should get the movement tracking by turn optional , and if not used , it shoudl just show the movement
yeah i was just testing it out so i hadnt activated anyone yet, combat was active though
I tried installing Lancer Automation module but any time I try to press anything use weapons/systems I get these types of errors and I'm baffled about what's going on, could it be some sort of incompatibility with other modules or did I fuck up some installing step?
"any time I try to press anything use weapons/systems"
i'm gonna need something way more precise to undertand what you do
from where, the token action HUD , your sheet ?
Sorry yeah, sheet, like these buttons
with the module active, it just completely breaks them.
nothing happens, red error
'm gonna need more detail, i can reproduce .
what is the item ? , high chance i have it to test
or does it break all item activations ?
that's the thing, it's everything as far I can tell that has that sort use or roll element. Saves work, but everything that the sheet has sub elements for, like skill triggers, weapons and systems doesn't work
and when you remove the module it works back ?
Yes, I tried it turning off all other modules that weren't connect to lancer auto and still borked
what is your version of the lancer system ?
when you have the error i would need more context than the error. with the logs above might have some information
So far i cant reproduce your issue, are you able to reproduce it with an new empty world, with only lancer system and lancer automation installed ?
Version 2.11.2 of the lancer system, still broken on a fresh world, I'll try to do a quick reinstall of all the needed modules and get back to you, in the meanwhile here's the log from the fresh world
that did in fact, fix it
i asume your are not self hosted ? right
Forge ya
yep
is this a self-host vs forge issue so it's an utter pain to notice on a dev end?
And there's a workaround at least of disabling infection damage, thanks o7. Seriously, love your work, the NPC import module is such good quality of life.
yeah the issue comes on how i patch the lancer system
can you try something for me ?
Sure!
const resources = performance.getEntriesByType('resource');
const entry = resources.find(r => /lancer-[a-f0-9]+\.mjs/.test(r.name));
if (entry) {
console.log('Found bundle URL:', entry.name);
import(entry.name).then(bundle => {
console.log('DamageType enum:', bundle.D);
console.log('instanceof check:', fromUuidSync(canvas.tokens.placeables[0]?.document.uuid) instanceof CONFIG.Item.documentClass);
});
} else {
console.warn('No bundle found');
}
can you try this ? in the console
and give me the result
With infection on or off or does it not matter
nananana that was enough
const entry = resources.find(r => /lancer-[a-f0-9]+\.mjs/.test(r.name));
if (entry) {
console.log('Found bundle URL:', entry.name);
import(entry.name).then(bundle => {
console.log('DamageType enum:', bundle.D);
console.log('instanceof check:', fromUuidSync(canvas.tokens.placeables[0]?.document.uuid) instanceof CONFIG.Item.documentClass);
});
} else {
console.warn('No bundle found');
}
VM450:4 Found bundle URL: https://assets.forge-vtt.com/bazaar/systems/lancer/2.11.2/lancer-c22b4371.mjs
PromiseΒ {<pending>}[[Prototype]]: Promise[[PromiseState]]: "fulfilled"[[PromiseResult]]: undefined
VM450:6 DamageType enum: {Kinetic: 'Kinetic', Energy: 'Energy', Explosive: 'Explosive', Heat: 'Heat', Burn: 'Burn',Β β¦}Burn: "Burn"Energy: "Energy"Explosive: "Explosive"Heat: "Heat"Kinetic: "Kinetic"Variable: "Variable"[[Prototype]]: Object
VM450:7 instanceof check: false```
well here is it then
const resources = performance.getEntriesByType('resource');
const entry = resources.find(r => /lancer-[a-f0-9]+\.mjs/.test(r.name));
import(entry.name).then(async perfBundle => {
perfBundle.D._TEST = true;
const relBundle = await import('/systems/lancer/lancer-c22b4371.mjs');
console.log('Same module?', perfBundle.D === relBundle.D);
console.log('Perf _TEST:', perfBundle.D._TEST);
console.log('Relative _TEST:', relBundle.D._TEST);
delete perfBundle.D._TEST;
});
now this
foundry.js:518 Foundry VTT | Registered callback for createChatMessage hook
foundry.js:518 Foundry VTT | Registered callback for applyActiveEffect hook
foundry.js:518 Foundry VTT | Registered callback for init hook
foundry.js:518 Foundry VTT | Registered callback for setup hook
foundry.js:518 Foundry VTT | Registered callback for ready hook
foundry.js:518 Foundry VTT | Registered callback for ready hook
foundry.js:518 Foundry VTT | Registered callback for ready hook
foundry.js:518 Foundry VTT | Registered callback for controlToken hook
foundry.js:518 Foundry VTT | Registered callback for updateToken hook
foundry.js:518 Foundry VTT | Registered callback for updateActor hook
foundry.js:518 Foundry VTT | Registered callback for closeSettingsConfig hook
foundry.js:518 Foundry VTT | Registered callback for getSceneNavigationContext hook
foundry.js:518 Foundry VTT | Registered callback for createCombat hook
foundry.js:518 Foundry VTT | Registered callback for deleteCombat hook
foundry.js:518 Foundry VTT | Registered callback for updateCombat hook
foundry.js:518 Foundry VTT | Registered callback for dropCanvasData hook
foundry.js:518 Foundry VTT | Registered callback for renderSidebarTab hook
foundry.js:518 Foundry VTT | Registered callback for renderSettings hook
foundry.js:518 Foundry VTT | Registered callback for renderCombatTrackerConfig hook
foundry.js:518 Foundry VTT | Registered callback for closeCombatTrackerConfig hook
foundry.js:518 Foundry VTT | Registered callback for preCreateScene hook
foundry.js:518 Foundry VTT | Registered callback for renderChatMessage hook
foundry.js:518 Foundry VTT | Registered callback for hotbarDrop hook
VM453:6 Same module? false
VM453:7 Perf _TEST: true
VM453:8 Relative _TEST: undefined```
shit , its gonna be complicated
o7 good luck
i fear you cant have the infection feature on forge
That's okay because frankly in 2-3 years of running lancer, I have no idea what that even is
Ah, heat burn
@tired kiln still there ?
document.querySelectorAll('script[type="module"]').forEach(s => {
if (s.src?.includes('lancer')) console.log('script tag:', s.src);
});
navigator.serviceWorker.getRegistrations().then(r => console.log('SW:', r.length ? r : 'none'));
if you can try that sry
will do, give a second
VM357:2 script tag: https://comradedanni-test-world.forge-vtt.com/modules/lancer-automations/scripts/overwatch.js
VM357:2 script tag: https://comradedanni-test-world.forge-vtt.com/modules/lancer-automations/scripts/main.js
VM357:2 script tag: https://comradedanni-test-world.forge-vtt.com/modules/lancer-automations/scripts/grapple.js
VM357:2 script tag: https://comradedanni-test-world.forge-vtt.com/modules/lancer-automations/scripts/tah/index.js
PromiseΒ {<pending>}[[Prototype]]: Promise[[PromiseState]]: "fulfilled"[[PromiseResult]]: undefined
VM357:4 SW: none```
thx
ok last one , and i stop
const url = "https://assets.forge-vtt.com/bazaar/systems/lancer/2.11.2/lancer-c22b4371.mjs";
const a = await import(url);
const b = await import(url);
console.log("a === b?", a === b);
console.log("a.D === b.D?", a.D === b.D);
VM368:5 a.D === b.D? true```
sure
Looks like you hit a "Eureka!" moment there.
yup but tomorow, for 2.9.0
https://github.com/Agraael/lancer-automations
v2.9.1
New Features
- Wreck System β Ported from csm-lancer-qol (my own spin with more options) . On death, spawns a wreck/corpse token with per-category settings (Mech, Human, Monstrosity, Biological). Wrecks can be resurrected from TAH. Custom wreck assets folder supported. Built-in sounds and effects included. Can spawn terrain upon death.
- Persistent Range Auras β Toggle Max Threat, Sensors, and Max Range auras from TAH (Utility > Ranges). Configurable colors, opacity, and auto-enable modes (none / in combat / always).
- onPreStructure / onPreStress triggers β New cancellable triggers that fire before structure/stress damage is applied. Reactions can prevent structure or stress loss.
- onPreHpChange / onPreHeatChange triggers β New cancellable triggers with modifyHpChange(newValue) / modifyHeatChange(newValue) to intercept and modify HP/Heat changes.
- onHpGain / onHeatGain / onHeatLoss triggers β Renamed from onHPRestored, onHeat, onClearHeat for consistency.
- Activation cancel identity tracking β When an Activation cancels a move, the system remembers which Activation did it and skips that reaction on retry, now Chaining cancel from multiple item is possible and the flow is not lost.
- awaitActivationCompletion β Replaces forceSynchronous on reactions. Clearer name for the same behavior.
- Movement cap improvements β Initializes on combat start for all combatants. ignoreMovementCap option to bypass. Engine-initiated cancels tracked.
- Deployable HP=0 destruction β Deployables at 0 HP are automatically destroyed and removed from combat.
UI
- Config windows redesigned with cleaner layout and shorter hints
- Token Action HUD settings moved to dedicated config menu (no longer [BETA])
- "Lancer Automations" shortcut in sidebar settings
- Force Client Settings lock icons in custom config windows
- Infection damage toggle moved into Combat & Movement config
- Activation Manager: trigger groups with collapse/expand and count badges
- Activation Manager: trigger data reference popup
- Wreck config with per-category table grid and terrain type selector
Fixes
- Infection DamageType patching works on Forge VTT (resolves correct bundle URL from script tag)
- Socket preload handler was dead code at module scope β moved into handleSocketEvent
- Movement reroute (changeTriggeredMove) properly tracks _cancelledBy across retries
- clearMovementHistory clears movement cap even without Elevation Ruler
@tired kiln it's out if you want to try (pls make it work)
csm-lancer-qol no longer compatible with lancer automations with this update or it is still compatible?
Need to know if this means I need to turn off lancer qol.
welll i do have the compatibiliy checker , that will check any feature of QoL that comflict with lacner automation.
you can have both so long the feature do not conflict
shoudl probably mention that
but yeah i finally transfered ALL custom feature i did in my modifed lancer QoL
i dont need it , is far i am concerned
there more custom stuff that i need to port , but my next game is tomorow , i never tested all my shit in an actuall game lol.
it's midnight i'm a bit late in preparation
(my dyslexia is strong , sometimes i wonder how people can read me)
i am deleting ur custom qol then yeey
well there might be some stuff not working or not correctly working, but no big crashes
and nothing we realised like me and my players finished an arc with them
always thankfull for ur stuff, and lancer automation is great, last thing i was trying to make was
this action for coronus and im gonna try to do that prestructure trigger
be wary i change some reaction name in the last update , onHp and onHeat
"onHpGain / onHeatGain / onHeatLoss triggers β Renamed from onHPRestored, onHeat, onClearHeat for consistency."
Mmm might be hard with the current tools
you would need to canel the structure flow in the middle of it , don't remember wher onStruture is placed
i was just thingking of just entierly not start the normal structure flow and handle it with its own unique structure tbh
i can move a bit the "onStructure"
to be just after the roll, then provide cancel or modify fonctions
and i need to expose the individual dice
i'll look into it
The wreck explosion sounds are real loud, anyway to alter that? And for my 1/2 mechs I use 0.5 tokens, anyway to maintain the token size when they die? (the QoL wreckage does).
what do you mean 0.5 they are not 0.5 when diying ?
I'll make something for the volume
I manually change the token sizing to 0.5 rather than 1 dimension on the grid space.
So the left one is Size 1 and the right one is Size 1/2.
lol had no idea it does that
I'll make the token inherit
it's the manual sizing right ?
Yes.
I kinda want make that automstic (as an option,)
Lancer Automations 2.9.2
Add wreck volume option, half-size tokens handle, chance throw weapon and pickup weapon ui flow
Lancer NPC import 1.0.9
Implement Reserve Pilot Import
Grid Aware Aura Fork 0.5.7.4
Handle 0.5 manual size token + other fixe i dont remember ..
Thank you for the update~
For the wrecks, the volume control works for the first sfx but the many explosions after are still at the same volume.
you sure try 0 , mayeb it's justthe valumes of the files are differents ?
Yeah, I think it might be the files.
Oh wait.
One of them still has sound.
Even at 0.
I think you might have missed adding a control volume to one, it's the one that explodes 3 times and then ends with a final psssh noise.
I think you have it set it random sfx right?
Yeah.
wait do you have lacner qol active ?
remove it to test
No more noise~
ooooh
I don't know what sort of magic you did to make it so THT gets added upon their death.
It's freaking great.
i think it's an issue in lancer Qol , like some stuff still run even when enableAutomationWrecks is false
not that hard the api are there
I noticed for the size 2 and up mechs, it sometimes does partially make it size 1 or size 2.
yeah i 'll check taht later
i did that shit many month ago, before lacner-automation. i just ported some old code
Changelog
Terrain Height Tools (fork)
- Fix: Added missing
prettyFractionimport that crashed the terrain stack viewer.
Lancer Automations
Wreck System
- Fix: Resurrect no longer re-adds token to combat.
- Fix: Wreck terrain was reading wrong cells (swapped row/col).
- Fix: Wreck terrain follows terrain contour per cell instead of using a flat elevation.
- Fix: Terrain height falls back to actor size when Wall Height isn't set.
Compatibility
- Patch: csm-lancer-qol's wreck hooks now respect its own disable setting when LA wrecks are active.
Settings
- New: Auto Token Height β sets Wall Height tokenHeight from actor size + 0.1.
- New: Vehicle & Squad height adjustments (vehicles size-1 capped at 4, squads 0.5).
I can still hear the wreck explosions even with the audio set to 0.
Or turned off.
I noticed that when PC's mechs become wrecks, it requires the Owner to have all these permissions.
I can confirm it works
Thank you for your time and effort!
just did a testing game , so much bug to fix and issue , it's gonna take a while.
i'm gonna do a big pass on all current content and base feature
Not sure if anyone else is having this issue, but putting tokens in the scene makes it so the attack rolls and toolbox to adjust accuracy/difficulty no longer appears.
For the PC's anyway.
It seems to be an issue with this world only..
I've narrowed it down to one players mech.. but for some reason in another world, it works fine.
And by uploading a fresh copy of their json, everything now works.
This time around it just isn't working no matter what I do to it in this world.. I guess it just randomly decides to hate one player token.
Resetting the automation solved it.
i'll check , I'm doing a bug fix patch
it will be slower no that my "vacations" ended
@somber python for this bug i'd need a repro state if it happend again .
Resetting Lancer Automations fixed it but I'll let you know if I come across it again. I'm running 5 campaigns for Lancer, so if it does occur again, I'll let you know.
Would it make more sense to move Overcharge to Free Actions instead of Protocol? And why don't the npc quick techs bring up the roll box? I guess I can just use basic tech right after.
" And why don't the npc quick techs bring up the roll box?"
bug -> will be fixed in next patch
" Overcharge to Free Actions instead of Protocol"
yeah you're right i t does make more sense
i tough about push the patch today, but i gonna gets some drink with an old friend,. might come backl home late
Lancer_Elevation_Ruler Fork : 0.11.11
Movement & elevation
- Multi-hex tokens now correctly pick up terrain height from any of their occupied hexes (the highest one wins), both when placed and while dragging the ruler.
- Climb cost rule clarified: per hex entered,
1 horizontal + 1st elevation unit = 2, each extra elevation unit adds1 + 1 penalty(so 1H+2V = 4, 1H+3V = 6). This now applies consistently whether the climb comes from terrain, manual[/], or both combined on the same step. - Fixed: hex-vertex drag bug where dragging from a hex corner produced a 0-cost move in one direction.
- Fixed: pure manual
[/]climbs were double-counted with terrain elevation when both were present. - Fixed: terrain penalties were being summed across every hex of a multi-hex footprint. Now it takes the highest terrain penalty under the token, counted once per step.
G key β changed behavior
- Old: "measure to ground" (drop flying token to ground for the measurement).
- New: Flying Mode toggle (independent of the flying status). While on:
- A wing icon πͺ½ appears next to the ruler label.
- The token only climbs up automatically β it never drops down.
- Cumulated altitude is preserved: flying over a hill 0 β 1 β 0 leaves you at elevation 1 when you land.
- Manual
[/]still works on top.
Flying status (actor effect, unchanged rule but now correct)
- Flying tokens pay the same base climb/descent cost, but no climbing malus.
Misc
- Ruler labels show
TLP,DBG,FREEprefixes for teleport / debug / free-movement segments. - New Debug Movement keybinding (no-highlight, no-cost scratch move, useful for repositioning without marks).
Lancer Automations 2.9.5
New Features
- Add Reserve Dialog β Browse compendium reserves by type (Pilot Bonuses / Resource / Tactical / Mech) or create custom Reserves, Projects, and Organizations matching Comp/Con's interface. Accessible via Utility > Misc > Reserve or the L.A - Add Reserve macro.
- Wreck Spawning Improvements β Wrecks inherit disposition and token-factions faction. Player-triggered wrecks forward to GM for token creation.
- Custom Measure Aura β New persistent aura with adjustable per-token size (1β100). Toggle from Utility > Ranges > Custom.
- Per-Weapon Range Aura β Each weapon's child menu has a "Range (N)" toggle to pin the Weapon Range aura to that specific weapon's range.
- HUD Row Counts β Categories and subcategories display the number of items they contain next to the arrow.
UI / Popup Changes
- Item detail popups now show disable/destroy toggle buttons in the header for items that support them.
- NPC weapon and tech detail popups show flat attack bonus and accuracy (using the Lancer system's reticule/accuracy icons).
- Tiered damage for NPC weapons now correctly resolves to the actor's current tier in popups.
- Weapon children reordered: FIGHT / primary attack action listed before ATTACK.
Scan & Lock On
- Both now use a token picker within sensor range when no target is selected (instead of just warning).
Overwatch
- Weapon choice is now filtered to weapons with Threat range covering the target distance.
NPC Flow Fix
- NPC tech features with tech attacks now properly dispatch to the Tech Attack flow (rolls attack + accuracy) instead of the plain activation flow.
Wreck System Fixes
- Terrain cell coordinates fixed (was querying wrong cells).
- Terrain elevation per cell β wreck terrain follows the terrain contour (cliff edges work correctly).
- Terrain height fallback β uses actor size when Wall Height flag isn't set.
- Resurrect no longer re-adds the token to combat.
Multiplayer Fixes
- Triggers fire only once instead of per connected player:
- Fall reaction (onTurnEnd)
- Brace reaction removal
- Flight status checks
- Heat/HP gain/loss triggers
- Movement triggers
- Status applied/removed triggers
- combatTurnChange runs only on the active GM.
Range Auras (TAH)
- "Max Range" renamed to Weapon Range throughout settings and UI.
- Default Weapon Range aura color changed from orange to red.
- Toggled range auras now stay visible while dragging a token.
- "Always" mode auto-applies on token creation, not just combat start.
- Toggle writes persist to flags so they survive canvas refresh.
- Weapon Range aura supports per-weapon override β shows that weapon's range instead of the max across all weapons.
- Toggling Weapon Range from Utility > Ranges clears any per-weapon override.
- New Custom Measure row in aura config (color + opacity).
Misc Fixes
- Crash fix: missing scope error when csm-lancer-qol is not active.
- Auto-patch for csm-lancer-qol: its ungated wreck hooks now respect its own disable setting, preventing flag interference.
- Prone status FX no longer conflicts with Slowed status FX.
- Movement History dialog: added Revert Last Move button.
- Standing Up now costs a standard move (logged in both LA and Elevation Ruler history).
- Toggling HUD toggle elements (range auras, measure) no longer closes the TAH column.
Player Groups
https://github.com/Agraael/Vtt-PlayerGroups
new module, basically i'm going to have a second campaign, and i didn't wanna make a new world and have to update both every time i change something. but then some documents should be available to some players and not to others, and maintaining ownership one by one is a pain...
so that's what this module does : you define player groups, and in the normal Ownership Configuration dialog you get a new row per group. set the group's permission, everyone in it updates at once. you can still tweak individual players after.
also adds a little icon on sidebar entries, hover it and you see who owns the thing (if the owners match a group exactly, it shows the group, otherwise the individual players).
first version, we'll see how it goes.
Hey! quick question about the automation, the grapple action doesn't add the grappling/grappled condition even on a hit. Is this how it is or did i mss somehting up?
i'll check, it's a complicated one that I should redo
Gotcha. Its not working on my end atm.
Also, you mentioned on githib that the priest's investirue is automated, but i cant seem to make it work? Again, unsure if i am doing something wrong
there's an option called "Lasossis" it does unlock my personal list of automation, but serve as simple share. so if they don't
I don't gonna maintain those so much
I don't see where does it says on the GitHub that a priest item is automated . There is code exemple. (they be old now)
beside I can't know what you do , without knowing the code you made. in any case this goes into the realm of coding and making your own Automations
I kept getting Effect lancer.statusIconsNames.engaged not found errors last night. Dug around a bit and edited this bit of overwatch.jsto get it to work:
for (const token of allTokens) {
const hasStatus = currentlyEngaged.has(token.id);
const needsStatus = shouldBeEngaged.has(token.id);
if (needsStatus && !hasStatus) {
await api.applyEffectsToTokens({
tokens: [token],
- effectNames: ["lancer.statusIconsNames.engaged"],
+ effectNames: ["engaged"],
notify: false
});
} else if (!needsStatus && hasStatus) {
await api.removeEffectsByNameFromTokens({
tokens: [token],
- effectNames: ["lancer.statusIconsNames.engaged"],
+ effectNames: ["engaged"],
notify: false
});
}
}```
thx i look into it, i dont have the issue , in my environment . maybe engaged is part of a set of status not toggle by default on lancer. i dont recall
I am still running QoL for a few things as it's literally the last mission and I don't want to rebuild everything. π
But the QoL engagement automation is turned off.
not QoL i think , i dont have it anymore
just for information, what does game.i18n.localize("lancer.statusIconsNames.engaged") gives you ?
game.i18n.localize("lancer.statusIconsNames.engaged")
'Engaged'
I'm running a game in a few minutes. If you got any other requests to help then it'll have to wait for a few hours.
Lancer Automation 2.9.6
New Features
Count Elevation in Combat Distance (opt-in)
New Combat & Movement setting: Count Elevation in Combat Distance (default OFF). When enabled, elevation difference is added to the distance for:
- Overwatch threat checks
- Engagement adjacency (including the per-step "stopped by" check during movement)
chooseTokenrange filter (targeting picker)distanceToTriggerpassed to every reactiongetTokenDistance/getMinGridDistanceAPI defaults
Example: a flying token 2 spaces above an enemy 1 space away is treated as 3 spaces away. I think that's the correct thing..
New Automation Triggers
Three new triggers for custom reactions, grouped under a new Token category in the reaction editor dropdown:
onTokenCreatedβ any token placed on the sceneonTokenRemovedβ any token removed from the sceneonTokenVisibilityβ token's hidden flag toggled (includesisHiddenin payload)
Engagement Auto-Updates
Engagement status now re-evaluates whenever a token is placed, removed, or its hidden flag is toggled.
Hidden Token Reaction Filtering
GM-hidden tokens no longer provoke reactions from other tokens
only their own self-reactions fire. Combined with the existing rule that hidden tokens can't be engaged.
TAH: Link to Token
New Utility > Gameplay > Link to Token entry in the HUD (all token types). Pick any target token; the selected token becomes linked as its owner (yellow dashed connection line on hover).
Useful for manually-placed deployables, clones, or custom linking.
API: Elevation-Aware Distance
api.getTokenDistance(t1, t2, includeElevation) and api.getMinGridDistance(t1, t2, overridePos1, includeElevation) accept an optional includeElevation flag.
Default follows the Count Elevation in Combat Distance setting; explicit true/false overrides.
Fixes
- "Effect lancer.statusIconsNames.X not found" error thx @storm perch
Oh yeah, the hidden engagement/overwatch thing was bothering me, thanks for doing that~
The Enable Stat Roll Target Selection is pretty useful for PC's, but when NPC's try to do it to the PC's mechs, the save stat is 2 or 3 instead of being the correct one.
i fail to reproduce the issue. making a Stats Save against NPC, save stat displayed in the chat message being the same stat of the NPC
i need repro steps, the npc stats, (or even item, i have almost all LCP)
Attempting to toggle "Auto Token Height (Wall Height)" and "Vehicle & Squad Height Adjustments" to on then saving them spits the pictured errors to console.
I'm on Foundry 12.343 // Lancer 2.11.2 // Automations 2.9.7
Is there a hidden prerequisite or setting I need to change somewhere first?
pretty sure it's an error on my side. didn't think people would use that lol, it's kinda some stuff made for my own campaing
shit i forgot to register them
Ah, love that Vehicle and Squad Height adjustments. But would it be possible to have the size adjustment be customizeable? By that I mean we can choose which specific one has the height adjustment?
it set the token hieght automatically , if it's default is 0, overwise it does not touch the custom value in the prototype token
i wont go that deep into that feature, it's just a neat thing i use , not like a core feature of lancer.
you can code your own stuff like that easly with "onStartUp" code
Lancer Automation 2.9.8
Movement System
- **Movement Cap Detection [Beta] **: When movement exceeds cap but a Boost would cover it, token owner gets a choice card. "Boost & Move" splits the move: drag to cap boundary β Boost activation β drag to final destination. "No" falls back to the standard stop/continue card.
_rulerMovehelper: All coded token movements (cancel/continue, changeTriggeredMove, boost splits) now use Elevation Ruler's ForkmoveTokenToAPI for correct cost/terrain/elevation tracking. Falls back to rawisDrag.- Multi-segment move history fix
- Revert movement fix: Handles ER's teleport snap entries in measurement history, skips past them to find the real previous position.
TAH β Combat Bar
- Activations: New Combat Bar with Activations, Actions Toggles and movement history tools
- Revert Last Move & Clear History buttons added next to the reset button.
TAH β Title Bar
- Team / Disposition indicator (setting, default off)
- Combat toggle Button
TAH β Status Panel
- Search bar added at the top of the status grid.
Settings
tah.showDisposition: Show Team / Disposition Indicator.autoTokenHeight/autoTokenHeightVehicleSquad: Settings now registered (were missing).
Half-Size Tokens
- Grid centering: 0.5 tokens centered within their grid cell on placement (offset by 25% grid size).
Aura Templates
- Range preview texture scale 250β500, Alt-press visibility, E2E ruler on drag.
- Persistent aura templates: scroll animation, dashed lines, Alt+target visibility.
Misc
getActorMaxThreatreturns 0 for deployable actors.
Elevation Ruler (fork changes)
moveTokenTo(token, dest, extraOpts)API: Simulates a ruler drag using the canvas Ruler pipeline.
Search bar is huge.
I actually didn't do anything, i just installed the list of modules. I saw this part but i dont see any automation when i try it
those are code exemple
that's it
So quick question - one of my players found some missing text for stabilize (specifically the additional effects). Just wondering which file I need to edit to add it back in as per the second pic? Or is it just a lack of space in the tooltip? π
I can put back the real, that's an old text
text are just hard coded , you'd just need to find the string
Found it - looks like hud.js π
Gotcha, I just misunderstood it! Thank you!
detail: 'To STABILIZE, choose ONE: \r • Cool your mech (clearing all heat and ending the EXPOSED status); \r • Or spend ONE Repair to heal your mech to max HP. \r \n Additionally, choose ONE the following four items: \r • Reload all LOADING weapons on your mech; \r • Clear any burn on your mech; \r • Clear ONE condition from yourself NOT caused by your own systems/talents (etc); \r • Clear ONE condition from an ADJACENT ally NOT caused by their own systems/talents (etc).'
I'm sure there's more elegant ways of doing it, but I'm also not a coder π
Tweaked the text a little more. Feel free to use either of these btw:
detail: 'To STABILIZE, choose ONE of these two items: \r • Cool your mech (clearing all heat and ending the EXPOSED status); \r • Spend ONE Repair to heal your mech to max HP. \r \n Additionally, choose ONE the following four items: \r • Reload all LOADING weapons on your mech; \r • Clear any burn on your mech; \r • Clear ONE condition from yourself NOT caused by your own systems/talents (etc); \r • Clear ONE condition from an ADJACENT ally NOT caused by their own systems/talents (etc).'
So okay, please be very patient with me because I really don't know anything about automation in Lancer. I modified the pattern A smoke chares system a little bit by duplicating the Smoke Mine, renamed it to smoke grenade, and gave it a smoke light and aura that automatically applies Soft Cover. The idea is that the player will drag-drop down the deployable they want.
However, what this has done is somehow replaced the Smoke Mine from Lancer Automation's deployable menu. There's only option to deploy the Grenade, not the mine, and the grenade is deployed with mine's range. I'm trying to make it so that both deployables are selectable from the deployable menu and the grenade would be dpeloyed with range 5?
I don't know where to go to access the backend stuff for deployable 
this is the part where I cant do all the work for you. have you read the documentation ? the automation system?
some answers to your question are at least hinted in the documentation.
there so too much wrong things or stuff not clear enough in your statement. Right know I don't have the energy to explain you everything. (I know the doc is not the best, but that's how it is,)
thx
Question, when things like Overwatch trigger with your automations, are they supposed to actually trigger and show a die roll prompt or is it just a reminder for the player to do it manually?
I also get double reaction windows. Here I moved a token away from another (regardless of whether PC or NPC).
_ _