#arma3_scripting
1 messages ยท Page 727 of 1
it doesn't matter if you put the numbers yourself or not, what matters is the position format, you should be using the appropriate command for it
alright, thanks
you should never use setPos. use other position formats
!quote 5
stop using 'setPos' for the love of god
Leopard20; Tuesday, 10 August 2021
its everyday now lol
Hello! I participated in the pre-Steam alpha tests of DayZ Standalone back in April..? of 2013, and possess a unique version of the game that I'd like to see if anyone here is aware of. The version is 0.14.0.103280, dated 3/30/2013. I've been doing some work to convert Enforce scripts to SQF, essentially back-porting post-1.0 content into a version of the game that could still be considered Arma 2 at its core. I understand this Discord is primarily for Arma and Arma modding, but considering DayZ modding has evolved so drastically, I feel as though this particular build of the game belongs here. https://www.youtube.com/watch?v=6XSH1s7n7yw&t=214
(if I'm posting this in the wrong channel feel free to correct me by the way ๐ )
well, reverse engineering game code is illegal afaik
reverse engineering is backed by legal precedent when using a clean room approach which i am entirely
i dont think theres a config option, so:
is there a way to force an ai to keep their radar on at all times
i've done _this setVehicleRadar 1; but it doesn't appear to work
i had that in an init event handler, when that didnt work i tried using zeus to run it on the unit directly, still the radar is off
Can add-on scripts set mission event handlers?
anything that is in sqf can do everything available in sqf
are you using the drones such as the LR radar?
yea
so those are stupid picky for some reason. they only turn on if they are in danger. but how will it know if it is in danger if its radar is off? its goofy. You can use a high refresh rate loop or a eachFrame event handler
and set it manually
cause its gonna want to turn it back off if there is no threat again so you have to keep smacking it against the head
i see
i know theres a way to disable ai from doing specific stuff, like walking, shooting
is there a way to stop ai from turning the radar off
drone ai works differently. you won't see this happen with things such as manned AA
i've only had the issue with LR radars

they only turn on if they are in danger
so put them in combat mode
and disable autocombat
could work. I know i ran into an issue with combat modes as well, as the drone radar didn't care, it would always reset. been a while since i messed with them though.
where should i go to learn sqf? is it an arma only code or are there online courses around?
https://community.bistudio.com/wiki/SQF_Syntax Here is some base information about the syntax, it's unfortunately specific to arma though there are plenty of examples in the community! All of the operators/commands and functions (you will learn the difference in the aforementioned link) are documented on the wiki
Can someone share a guide for adding options to an addon? The for setting option to be used in the configure addons menu.
Looking for a bit of editor help to play a video on a tv screen during a multiplayer briefing; can someone please help?
It is not a default arma 3 feature, but is possible as part of CBA. As long as you don't mind depending on that mod, docs are here:
https://cbateam.github.io/CBA_A3/docs/files/settings/fnc_addSetting-sqf.html
https://github.com/CBATeam/CBA_A3/wiki/CBA-Settings-System
And an example from a mod that I am part of
@fleet stirrup thanks alot mate
cant believe its not an arma feature. wait, yeah I can.
You could setObjectTextureGlobal a procedural r2t texture (https://community.bistudio.com/wiki/Procedural_Textures#Render_To_Texture)
Turns out there is already a tutorial on how to do this kind of thing!
http://killzonekid.com/arma-scripting-tutorials-uav-r2t-and-pip/
Eh, arma provides some great tools for us to develop from. CBA then gives us a nice framework built on those tools to develop from. Best of both worlds!
Can you point me at some guides for making my own Configure Addons Menu?
I haven't done much UI stuff, but if you wanted that then maybe #arma3_gui can help you
Right that makes sense. Thanks wilco
This is different to what I'm looking for as this is for a live feed, say from a drone. I'm looking to display a pre-recorded video (in ogv format).
thank you, I had seen this one but sadly it is beyond my scripting capabilities!
I wonderif SQF will be used in ARMA 4 in any capacity?
is there a way to set the direction that a tree falls in? it looks like all the trees on e.g. Stratis fall in the same direction if you setDamage 1 them
which looks really strange if you knock over a bunch at once
i tried running _tree setVectorDir ( [vectorDir _tree, random [0, 180, 360], 2] call BIS_fnc_rotateVector3D); before running setDamage which unfortunately doesn't seem to work
Hello,
Is there a way to put a vehicle on fire manually with the new ace update ? with ace_cookoff
I don't know how to cook off vehicles ๐ฌ how is it trigger, with special kind of damage?
Who knows what Arma will use but BI's new engine uses https://community.bistudio.com/wiki/DayZ:Enforce_Script_Syntax
Huh, that's pretty neat
Hey, does anybody know how to contact Jeroen?
Would like to use permission to use some of his scripts on https://github.com/Jeroen-Notenbomer/Limited-Arsenal
[(vehicle player), 3] call ace_cookoff_fnc_cookOff
- Arguments:
- 0: Vehicle <Object>
- 1: Intensity of fire <Number>
params ["_newVeh","_oldVeh"];
for "_i" from 1 to 16 do {
createVehicleCrew _newVeh;
[_newVeh, ["I_Soldier_LAT_F", "cargo", 0], false, true, false] call BIS_fnc_initVehicleCrew;
_newVeh setUnloadInCombat [true];
};
Hi, I try to make the respawn vehicle function respawn a Mohawk with 16 "I_Soldier_LAT_F" soldiers inside. Unfortunately the code also spawns a blufor infantry man for every spawned "I_Soldier_LAT_F" soldier. Anyone who know what I need to do to stop spawning blufor infantry men alongside the "I_Soldier_LAT_F" soldiers?
Helloooo! Is here anyone confident with VIV scripting? I am learning to use it from rhs attach_cargo script and I am in a good point. How can I set to load also heavy vehicles and not only "light" vehicles?
Text me MP ๐
@fresh wyvern remove the line
createVehicleCrew _newVeh;
that will be creating a blufor crew before you created the "I_Soldier_LAT_F" crew also you could change
[_newVeh, ["I_Soldier_LAT_F", "cargo", 0], false, true, false] call BIS_fnc_initVehicleCrew;
to
[_newVeh, ["I_Soldier_LAT_F", "cargo", 0], true, true, false] call BIS_fnc_initVehicleCrew;
deleteCrew: Boolean - (Optional, default false) true to delete existing crew
Does anybody know if there are any rules regarding classnames, as in character restrictions? I am wondering if there is a chance that I'll encounter classnames that toLowerANSI can't handle
Thank you ๐
I enabled dynamic Simulation on my mission, then I enabled dynamic simulation on all Ai groups. Start the mission and move the player far away from the Ai unit. The Ai unit should have its simulation disabled yet when I run: "simulationEnabled AiUnitXX;" the return is TRUE
Why is that? Should't those units have their simulation disabled then?
Maybe dynamic sim doesn't set the flag
To make sure it works just spawn a plane above your head and set the dynamic sim dist to a short number. Once you see the plane has stopped moving, test simulationEnabled again to make sure
this is a somewhat complicated question;
so i made a long range AA piece, based off of the vanilla defender sam system, it has a 16km range, but the ai seems to only want to fire it at about 10km, even on a MP server
i see no obvious config reason why it'd be limited like that, so all i can think of is its some kinda view distance limitation?
how does "beyond visual range" work in arma?
..is there a wiki page on simulation in general? how it works with multiplayer, ai ownership, etc?
...or am i going down the wrong path entirely and its nothing to do with simulation, if i set it to 32km range it'll work
is there a way to safely determine if a man is "airborne"? e.g. being chucked by an explosion, currently falling off a cliff, etc
would just checking something like PositionAGL > 0 work here? or does that cause false positives from e.g. the vaulting animation
would just checking something like PositionAGL > 0 work here?
no. you should check AGLS
vaulting animation
animations normally don't displace the model center
the best way is using event handlers to detect when falling animations are triggered
you can start a loop after that to check the AGLS height
well i noticed if an explosion doesn't kill a guy but does boop him, it actually doesn't change his animstate
he just kinda floats around in weapon ready stance
granted this is a very rare occurrence that is only happening because i set man's armor value to like 100 for the purposes of the test
classnames can only consist of a-z, 0-9 and _ . so you should be good
have you read this?
https://community.bistudio.com/wiki/Arma_3:_Targeting_config_reference
yes i've been using that as the base for my new aa system
i'll re read it though, see if i can find something
could it be something along the lines of the ai not deciding to fire, maybe i need to mess with the settings for ai engagement ranges?
manually controlling the aa site it works fine at 16km
is there a way to check for all nearby, say, fences or whatever, that would work for both terrain-placed and editor-placed versions of the object?
nearestTerrainObjects doesn't seem to include editor-placed versions of the same object (like fences or power poles) and the terrain-placed objects mostly seem to be lacking classnames so they don't show up for nearestObjects
Oh cool, the colors for the chat channels are stored as a config!
commandchannel: {"0.8275*1.4","0.8196*1.4","0.1961*1.4",1}
uhh... gotta say, haven't seen Arithmatic RGB in turbo mode before ._.
Hi here, i'm having troubles using setunitpos on a ai unit, the ai don't want to "CROUCH" "PRONE" or "STAND", do i have to play with combat mode ?
it should work
if you're testing it on your AI group, you must set them on auto
@little raptor it's ai group created via script
I know for a fact that it works fine
you're enums are wrong I think
refer to the wiki
iirc it uses LOW MIDDLE etc
ok i was trying to use the stance return value
working with down middle up , what would I do without you... thanks, i'm using your console , the intellisys is great !
pin watch is super usefull too
I wonder, will this override if set on player?
it won't work on player, if that's what you mean
Ok thank you
i can't understand the following
_athing = "xyz";
_myvar = //the value can be 1,2,3,4 or 5;
switch _myvar do {
default {/*here _athing is undefined*/};
case "1": {/*here _athing is defined*/};
case "2": {/*here _athing is defined*/};
case "3": {/*here _athing is defined*/};
case "4": {/*here _athing is defined*/};
case "5": {/*here _athing is defined*/};
};
why in default _athing is not defined, it is possible to use _athing in default ?
I have read on the wiki :
"The default block will be executed only if no case matches, no matter its position inside the code block. It is not a case, and will never be entered by fallthrough. "
Should Default be considered as a totally different script/scope ?
Am i stupid ? Knowing that I can't be in the default case i should just ignore it ?
default goes last
switch _myvar do {
here _athing is undefined*/
no. _myvar is
i said that because the advanced console returns me an error
you should run your code. my mod uses in-game command info which are sometimes broken and incomplete
Ok it was to be sure to understand, having your precise explanations is very appreciated here @little raptor
Is there any way to detect if a code throws an error?
no
Yes if we get OnScriptError event handler https://feedback.bistudio.com/T161933 ๐
or try - catch that throws script errors not just user throws like it does now
File A3\functions_f\respawn\fn_showRespawnMenuHeader.sqf
where that at?
It's giving me fatal errors, forcing me to restart arma(the respawn overlay won't show up, permanently leaving players in a map screen)
in the game files
except where is the functions_f?
and that's a good idea, but if it just gives me a file directory again that I still can't perceive with my pea brain, I'm still in the same situation
you cannot edit that file though
what is the error?
ah I see.
I was just trying to find it to get a better look, but function viewer should work for at least that
and uh, line 61 error. something about _CtrlTeam and _CtrlTickets
line 61 if...'
Error Undefined variable in expression: _ctrlteam
|#|_ctrlTickets ctrlsetstructuredtext parse...'
Error Undefined variable in expression: _ctrltickets
I was typing out the error as @winter rose asked earlier
and the only thing wrong I've done that I can think of is try to set up a respawn on a carrier.
Though I'm not sure I understand what you mean by what I did.
ok, its a coop mission, no tickets(unlimited lives).
I have 3den Enhanced to save their loadout on spawn, and have selected respawn on custom position. I also allow them to select the respawn position, and give it a 5 second delay. The respawn is an empty marker named respawn_west near the back of the USS Nimitz aircraft carrier.
just found a big ole chunk in my rpt
there's quite a few errors surrounding this actually
when are you getting the errors? does the respawn screen even show up?
the timer does, not the overlay with the respawn button.
It happens about like, 10%-20% of the time when spawning/respawning in my mission.
your respawn config is faulty then
rip, ok, thank you
if the timer appears, that means it's not showing the respawn menu thing, then everything breaks, because the displays/controls aren't there
as seen here
I see. Is there a way to further pinpoint what mod/user parameter is affecting this?
best would be to just do all your respawn settings in description.ext
and avoid editor settings
it's important that you define: respawnTemplates[] = { "MenuInventory", "MenuPosition" };
respawn type should be 3 aka "BASE", rest is up to you
alrighty then, this will be a project for me to tackle once I'm home, thank you for the help
Hi, anyone who know how to script a waypoint on to a scripted vehicle?
yes, see https://community.bistudio.com/wiki/Category:Command_Group:_Waypoints and addWaypoint ๐
I've tried that one. I do not get the groupName to work.
that's, huuuhโฆ what? ๐
I do not understand how to incorporate group into the function.
to get the group of a driver, use group as in group driver _myVehicle
store it in a var, e.g private _vehGroup = group driver _myVehicle
use this _vehGroup as addWaypoint's argument ๐
It worked!! ๐
Guys, when grouping civ units to blufor or opfor factions do they loose their "civ behaviour" like running from gunshots and gain the regular "combatant" ai functions?
I believe there is no civilian-specific AI; if a person is unarmed and facing a threat, they will run away
now, whether it happens when they are grouped or not, I am not sure
Ohhh that is great to know! Thank you!
MyGun = currentWeapon player;
this addEventHandler ["Fired",{(_this select 0) titleText [MyGun, "PLAIN", -1]}];
I am trying to get the game to print out the name of the weapon I just shot
BUT
im getting this error
telling me I have a missing ;
But its at the end of the line
yeah your usage of titleText is wrong. there is no left argument
this addEventHandler ["Fired",{titleText [currentWeapon player, "PLAIN", -1]}];
also you can't execute that from debug console, this is only defined in EDEN init fields
I was running it in debug just to see what was going on with the code
titleText [MyGun, "PLAIN", -1];```
because ^doing this works
BUT i didnt want to have to repeatedly spam the "Execute" button
thanks\
also
are you also aware of the fact that the weapon will never change? it will always be the weapon the player had when you assigned the variable, not the weapon he is currently shooting?
welp
Ok because I didnt want to have to do a code book to print the weapon I am using after pressing F
The reason I am doing this is because I decided to add a few weapons to the caesar BTT but I cant see the weapon name because the vehicle was originally unarmed
Any way to use triggers & SQF to trigger AI if a laser pointer hits near their location?
e.g if a laser hits an object within 50M of them
Edit: I got it working as planned
added Vehicle Before player
it worked
I'm making my first steps with singleplayer mission making. I have enabled team member switching to player (by adding second playable role in the team) but it seems that once he jumps from the TL to the second role, he can no longer see the squad menu (left down corner thingy) nor control the team in any way. He can't switch back to the original role, too. Any solutions how to solve this?
i thought this would be an easy solution. this is the best I could think of (condition for the trigger):
count ((thisTrigger nearEntities ["LaserTargetW", selectMax (triggerArea thisTrigger select [0,2])]) inAreaArray thisTrigger) > 0
Probably the unit you're switching to is not a group leader
here's the breakdown:
first we use nearEntities to get all LaserTargetW near the trigger. since it only takes a radius we simply choose the maximum width of the trigger via selectMax (triggerArea select [0,2]). Then we do a second filter where we only take all the laser targets that are inside of the trigger area via inAreaArray. the result of this calculation is an array with all laser targets. so for it to return a bool we simply see if it has at least one element via count in it. Thanks for coming to my TEDTalk.
is there any event handler that will let me assign the player as team leader every time he switches?
i really thought this is somehow automatic 
@distant oyster Not trying to suck productivity here but I am curious, is there any way to zone restrict players truly?
E.g preventing players from physically leaving an area
The functions ive seen simply give a warning message and I don't want to just instakill them
there's a module where you can specify what happens to a unit that leaves the area
idk if the "team switch" here gets triggered when switching from blufor to opfor for example or just switching to another unit within the same team, but check this out
Says team switch, but in the examples says unit so idk 
What is the module?
"Zone Restriction"
I guess it either works in both cases or doesn't work at all. However I don't understand the "Stackable version of onTeamSwitch" part
How do I make it so that one group proceeds to the next waypoint after another group has finished theirs?
Neither do I 
you can right click on the waypoint and choose "Set Trigger Activation" and select the other waypoint. or via scripting?
ugh, I need an adult
There is only set waypoint activation, I tried it and it doesn't seem to work
uuh yeah "Set Waypoint Activiation"
works for me with Move waypoints. are you using other waypoint types?
My bad, I synced the wrong objective
Stackable version of onTeamSwitch
just means that there is also the onTeamSwitch command which would overwrite all previously set event scripts. the EH is a way better version of it, therefore no need to worry about the onXXX version
@jade acorn
now this is a human language, thanks!
i update the biki page for onTeamSwitch to maybe make it clearer
Do AI helicopters automatically wait until groups that have a get in waypoint attached to them get inside their helicopter before going to the next waypoint?
It seems so
and second question, is it possible to have triggers visible in some kind of debug mode, so the blue color of a trigger zone would be visible during the playtest?
what command to i use if i want to make all items,weapon,etc drop on the ground to a player?
removeallitem doesnt seems to drop them
I think there was a mod on workshop that added that feature
I don't think there's any single command that can do that
you have to do it manually
ok thanks for the reply @little raptor
Hello! Can i ask for a help? I have this script in .sqf file and it is executed by trigger (radio alpha) as execVM
[west, "panic", ["Someones life is in imminent threat! Get to him as soon as possible but be carefull. Your safety is the priority and you never know what happened - there might be a dangerous suspect or someone is just having a seizure.", "PANIC BUTTON has been activated !", ""], player, "ASSIGNED", 99, true, "danger", true] call BIS_fnc_taskCreate;
playsound "panic_sound";
``` The problem is, that the task target is selected randomly. I guess it's caused by that trigger which is executed on each machine, so the task gets created only on the player, who has the fastest computer. So i guess that the solution might be executing this via ace self interaction menu. But can someone help me modify the script so that the task target will be the one who pressed it? I assume that once it will be in ace self interaction menu, the `player` won't work anymore. Also is there a way to make the `playsound` actually be played only for blufor (the ones who receive the task)? Thank you
p.s. the task can be created by anyone (any faction) but only blufor should get the task created
assume that once it will be in ace self interaction menu, the player won't work anymore
it will
can someone help me modify the script so that the task target will be the one who pressed it?
just throw it into an ACE interaction code
and change west to player
and I'm pretty sure the player you're using as destination is wrong
i was told that it's not going to work so that's a new information to me, thanks, i'll try it
you might want to change it to objNull or something
what is this good for?
didn't you say you want to assign the task to whoever used the action?
i mean what is it doing?
assigns the task
west = all west units
just read the wiki
The whole point of this script is, that literally anyone (any faction) can create the task and the player who created it should become the task target (destination) but only blufor should see the task (the task gets created only for blufor players)
then show the ace interaction to west only
i think you misunderstood, anyone (including opfor for example) should be able to create it - basically the script that i sent works as intended it just gets executed on all machines and the game doesn't know where to put the task target
so i thought that moving it from trigger into ace self interaction menu would solve the problem but i need to define the task target
and you said it should still work with player in there, is that correct?
so just throw it as it is in the ace interaction
but change the playSound part using remoteExec
since you said you want it to be heard by west I think
yes, the sound is some sort of notification for blufor players that they've got a task
so i should disregard this?
yes
you guys think there's a good way to select any SMG that can have a flashlight?
i did ๐
thank you
btw if you don't know how, you have to create a groundWeaponHolder object, remove items/weapons/magazines from the player, and add them to the weapon holder
just adding the remote exec will make the sound be heared by only blufor?
the remoteExec target must be west obviously
you mean apart from reading from config? 
yeah that's kinda what I mean, like is there a function that does that already existing or should I just look at config classes
like this? ```sqf
remoteExec [playsound "panic_sound", west]
@little raptor all good, just checking if i can save the work
yeah the problem is I can't do like _classname isKindOf "SMG" or similar
because the only common thing all SMGs inherit from is Rifle I think
this way? ```sqf
["panic_sound"] remoteExec ["playsound", west];
you can
oh nvm, I see what you mean
yes ๐
thank you ๐ the wiki didn't really help but your pinned message (that i didn't know about before) is really helpfull and descriptive ๐
@little raptor could you maybe select all weapons that fired pistol ammo that aren't handguns?
i dont know how feasible that is..
๐คท o well
I mean I don't know how you intend to distinguish handgun ammo... 
yeah honestly fair
me either
I think selecting handguns is possible
well, like relatively easy
because they'll all inherit from the handgun class
you can just check their type
iirc
1 rifle
2 pistol
4 launcher
yeah they all inherit from Pistol
ah
or I can do that yeah
and then I can see what ammo they use
and then select anything in CfgWeapons that has magazines[] made up entirely of stuff in that handgun ammo array
kind of a shitty way of doing it but ๐คท
what if an SMG uses an ammo that is not shared with a handgun? 
yeah, that's the problem. like it won't work for stuff like the ADR-97
not sure. I'll have to do some more thinking
maybe you can check the ammo speed
ammo speed and damage maybe
SMGs are usually slow, ~ <= 500 m/s ish
true
just tested it and so far it looks fine, thanks for the help, i'll see tomorrow how that goes with more players on the server
my math-fu is rather garbage but i'm trying to work out the elevation angle of a mortar.
private _vehicle = vehicle player;
private _weaponDir = _vehicle weaponDirection (currentWeapon _vehicle);
private _Elevation = asin (_weaponDir select 2);
this works correctly when the mortar is on flat terrain however when the mortar is on a slope or other angle the returned elevation angle takes that into account, I don't want it to.
I just want a value similar to the elevation angle displayed in the vanilla UI thats based purely on the model not world
then translate to model space first
pppht yeah I just found the command
private _vehicle = vehicle player;
private _weaponDir = _vehicle weaponDirection (currentWeapon _vehicle);
_weaponDir = _vehicle vectorWorldToModel _weaponDir;
private _Elevation = asin (_weaponDir select 2);
works
[] spawn {
while {true} do {
{
((findDisplay 602) displayCtrl _x) ctrlSetEventHandler ["LBDblClick", "hint str (lbText [ctrlIDC (_this select 0), _this select 1])"];
} count [602, 633, 638, 619];//uniform, vest, backpack
};
}; ```
โ๏ธ This code is able to detect when I double click on inventory items but it is not able to detect when I click on the magazine of the weapon or assigned items like the gps
so I'm curious, does anyone know how to have the player's kits save on start so when they respawn they have the exact starting kit?
the only ones i've been able to find only save on the player's death which doesn't give back mags and grenades and stuff.
Not sure if this is the best way to do it but you might be able to just save it during init then restore it using respawn EH
// init.sqf
respawn_loadout = getUnitLoadout player;
player addEventHandler ["Respawn", {
params ["_unit", "_corpse"];
player setUnitLoadout respawn_loadout;
}];
i'll give it a try
so i was being very smooth brain and kinda got something to work
null = [this] execVM "loadouts\Ghost.sqf";
this addeventhandler ["respawn","_this execVM 'loadouts\Ghost.sqf'"];
If you are adding that in the unit's init field it might be a bit broken in multiplayer
hmm, i'll test it later today.
I think if you did that the unit's loadout would reset any time a player joins
i put it in the init field of the player slot, not the whole init
Yeah that gets run once on each player though afaik
if (!local this) exitWith {};
null = [this] execVM "loadouts\Ghost.sqf";
this addeventhandler ["respawn","_this execVM 'loadouts\Ghost.sqf'"];
Maybe try that?
It just exits the code if it is not running on that specific player's machine
Is there any really basic script mod that doesnt come with the injury nonsense (like PIR) where the AI can enter a injured state, and other AI can drag/heal them?
Like thats all I want
I have tried using Project Injury Reaction but there are some annoying bugs when it comes to AI
Well, appreciate the help Shade ๐
hi, im trying to get the first three units who activated a trigger
`trigger:
anyPlayer
Repeated
triggerInterval 0
condition:
this
activation:
_1stRank = (thislist select 0);
_2ndRank = (thislist select 1);
_3rdRank = (thislist select 2);
if (player == _1stRank) then {hint format ["%1 placed first", name _1stRank];};
if (player == _2ndRank) then {hint format ["%1 placed second", name _2ndRank];};
if (player == _3rdRank) then {hint format ["%1 placed third", name _3rdRank];};`
but i get an error:
_3rdRank = (thislist #select 2);
Zero Divisor
any help?
you can't do that with a trigger this way
the returned array is the list of units actually in the trigger
now it makes sense xD
question regarding conversations. In here https://community.bistudio.com/wiki/Conversations#.bikb_BIS_fnc_kbTell_example the wiki says that in Description.ext, right below class CfgSentences there should be a mission name class (class MissionName) while in this video https://www.youtube.com/watch?v=giOpjIeoWEg the guy instead of MissionName puts a dialogue "category".
So for a campaign, do I have to make that "global" Description.ext and in each class MissionName put names of my scenarios, or can I do what the youtube guy did?
it's "MissionName" only because the category has been set so in the example; it could be ScoobyDoobyDoo and work as well ๐
Ok so, I found a neat solution.
timerparam = ["Briefing_Timer", 60] call BIS_fnc_getParamValue; // This is just for using the Parameter option in the role select screen so that you can have different timer values
[-1] call BIS_fnc_countdown; // makes sure that the countdown fnc is first set to zero
_initialCountdown = [timerparam] call BIS_fnc_countdown; // sets the countdown to the value selected in the parameter menu
waitUntil { 1 > ([0] call BIS_fnc_countdown) }; // waits till the countdown reaches below one / the [0] makes it so that the current value which is held by the function is being returned
["Briefing Beendet"] remoteExec ["hint", 0];
The BIS_fnc_countdown already creates a timer on the top right part of your screen so you dont have to use a hint to display the time left and it works with JIP aswell!
I tried this to make a AI group Search and Destroy (SAD) forever, but they Search for some time and they stop forever:```sqf
_grp = createGroup [OPFOR,true];
for "_i" from 1 to 5 do {_grp createUnit ["O_G_Soldier_F",_pos,[],10,"NONE"];};
_wp1 = _grp addWayPoint [_pos,0];
_wp1 setWayPointType "SAD";
_wp2 = _grp addWayPoint [_pos,0];
_wp2 setWayPointType "CYCLE";
are you sure SAD supports cycling? 
@little raptor not sure. May be not.
maybe you could implement it as a recursive waypoint instead
i.e add the waypoint again on completion
using waypoint completion statements
@little raptor this works:sqf _grp = createGroup [OPFOR,true]; for "_i" from 1 to 5 do {_grp createUnit ["O_G_Soldier_F",_pos,[],10,"NONE"];}; _wp1 = _grp addWayPoint [_pos,0]; _wp1 setWayPointType "SAD"; _wp2 = _grp addWayPoint [_pos,0]; _wp2 setWayPointType "SAD"; _wp3 = _grp addWayPoint [_pos,0]; _wp3 setWayPointType "CYCLE";I just added 2 SAD waipoints.
This is because CYCLE can't back to the previous waypoint.
yeah, to cycle you need at least 3 waypoints obviously
I didn't notice this in your code
hello guys i am trying to create a resource system for a small mp/rts server for me and my friends. Im currently trying to set up a few global variables like manpower, fuel etc and want to display the value of these variables on the screen. Im looking into working with the gui controls and esp. cutRSC for that. I declared the following in the descripting.ext :
class RscTitles
{
class RscInfoText
{
idd = 201;
fadein = 0;
fadeout = 0;
duration = 1e+011;
onLoad =
onUnLoad =
class Controls
{
class InfoText
{
idc = 202;
style = ST_LEFT;
font = "RobotoCondensedBold";
x = "(profileNamespace getVariable [""IGUI_GRID_MISSION_X"", (safezoneX + safezoneW - 21 * (GUI_GRID_WAbs / 40))])";
y = "(profileNamespace getVariable [""IGUI_GRID_MISSION_Y"", (safezoneY + safezoneH - 10.5 * (GUI_GRID_HAbs / 25))])";
w = "20 * (GUI_GRID_WAbs / 40)";
h = "5 * ((GUI_GRID_WAbs / 1.2) / 25)";
colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
text = "";
lineSpacing = 1;
sizeEx = 0.045;
fixedWidth = 1;
deletable = 0;
fade = 0;
access = 0;
type = 0;
shadow = 0;
colorShadow[] = {0,0,0,0.5};
}
};
};
};
however im not sure what OnLoad and OnUnload does, and the wiki didnt help me a lot. What exactly do i put there?
they are SQF event handlers which execute when the control is dialog or control is loaded and sometimes when unloaded respectively
i don't know if this is fixed in A3 but in A2 onUnload isn't reliable
in the case of cuts, there's no way to get the display using a command (e.g. findDisplay won't work), so onLoad is used to assign the display to a variable in uiNamepsace when it's created, so that you can fetch it in scripts
does anyone have working solution for this? or any idea?
triggers are activated by 1 unit
just use loops
So I am curious, if I wanted to load my global variable into that text field, how would I do that? Currently I have a similar system, but never thought that I could integrate my globals into a custom HUD. Can anyone just explain the base idea on how I would achieve that?
I already explained here
Oh, so I just create a variable in uinamespace and load my global into it?
onLoad = "uiNamespace setVariable ['my_disp', _this#0]";
in script:
_disp = uiNamespace getVariable ["my_disp", displayNull];
Thank you very much
hmm im thinking of how ๐ค
np. after that you just do:
_textCtrl = _disp displayCtrl 202;
_textCtrl ctrlSetText "blabla";
depends where you want to put the loop.
I recommend replacing the trigger with the loop entirely:
_pos = [x, y, z];
_dist = r;
_alreadyIn = [];
while {true} do {
_players = allPlayers;
_in = _players select {_x distance _pos < _dist}; //or use inArea
_new = _in - _alreadyIn;
{
systemChat format ["player %1 placed %2", _x, _forEachIndex + count _alreadyIn + 1];
} forEach _new;
_alreadyIn append _new;
sleep 0.1;
};
It currently doesnt display anything for me, did i forget something important? Its my first time working with the GUI-stuff :/ i just made a quick .sqf with the things you sent mickli to test it, but ingame nothing shows up on screen
you have to create the cut
using cutRsc
What happens when I only create a Trigger local on the server? Can it still recognize/get triggered on the server by (remote) players?
Depends on the Activation.
yes
"WEST SEIZED" & "EAST SEIZED"
does cfgweapons includes vehicle mounted weapons like cannons and hmgs ?
yes
Never used those before but should be fine ๐คทโโ๏ธ
so this statement can work right ? "["Cannon", configFile >> "CfgWeapons"]"
i want to use iskindof to check wehether the weapon is used is cannon, i tried with Rifle and it worked
I test this using the debug console? Cause when i do nothing shows, not even an error saying resource title not found :/
did you close the mission?
i restart it every time when i test it
Does the new regex support positive lookahead?
doubt ityes
when i put anything nonsensical in the debug console, like cutRsc ["qwert", "PLAIN"] it says resource title qwert not found tho
you have to close the mission
not restart
Yeah, couldn't find any mention of it not working on the wiki but also couldnt get it to work in testing
Is Cannon a superclass of the class that you are checking?
im in the editor rn, im going back to the editor and start it again. Do i have to completely go out of the editor and reload it?
closing the mission is fine
yes
yes
Then I see no problems ๐
Did you do it the way wiki says?
That's wrong
whats the right way? isn't that basically the 1st example on wiki?
cutRsc ["binocular", "PLAIN"]; it says there i think
Read the notes
You must read the whole page
Not just copy paste the first example you see
hello(?=([^"]*"[^"]*")*[^"]*$)Should select hello as long is it is not between quotes but I couldn't get it to work because it uses a positive lookahead
Unless I did something wrong
Wait nvm
I did get it working
lol, thx for the help
I dont see how the notes are helping me here, the first note just explains why i should use cutRsc and the second how to remove anything displayed using cutRsc with cutText
Also if you use layers would be a good idea to register them with BIS_fnc_rscLayer to avoid possible clashes with other layers
x = vehicle player;
p = player;
x addeventhandler ["Fired",{
if !(isNull objectParent p) then {if (currentWeapon x isKindOf W) then { addcamshake [10,10,10]
}else{
addcamshake [1,1,4];
}
}
}
]; ```
the else statement isnt working though the second "then" is always activated even when its "if" is false
im really confused
you have some weird shit happening here
W = "Cannon", configFile >> "CfgWeapons"; this is equivalent to
W = "Cannon";
configFile >> "CfgWeapons";
the second line is a no-op
does isKindOf apply to weapon types in A3?
yes it does
i tried with Rifle before and it worked
ah, you want W = ["Cannon", configFile >> "CfgWeapons"];
yeah exactly
that fired event handler seems misplaced maybe ?
ones it detects the weapon type the camshake plays something is wrong there i can sense it
๐ตโ๐ซ
damn there is no base class for cannons i have to create my own list for that
what are you scripting a pirate ship? do you mean howitzer? mortar? autocannon?
That's ... what I was asking about earlier ๐
Tank cannons 120, 105, 125 and yes 155 howitzer
lol when i saw autocannon_Base_F i was hyped thought that every category has base class
that's not possible. which would be the base of AutoCannon? Cannon or AutomaticWeapon?
40mm autocannons and below are under autocannon_Base_F includes APCs attack helicopter and others main armament
105 and above has no base class for them
which i have to put them in a list, and god knows how many mods will inherit vanilla classes
okay, but tomorrow you're going to want the base class of all automatic weapons
it doesn't work
what do you mean with automatic weapons HMGs and LMGs ?
if they are the only issue i would leave them in the else statement
forget it...
Totally right! Revised code:
waituntil {!(isnull (finddisplay 602))};
{
((findDisplay 602) displayCtrl _x) ctrlSetEventHandler ["LBDblClick๏ปฟ๏ปฟ", "if (""<ITEM>"" == lbText [ctrlIDC (_this select 0), _this select 1]) then {execVM ""script.sqf""};"];
} count [633, 638, 619];```
The problem is that displayCtrl _x (633, 638, 619) are the uniform, vest and backpack...
but then the player can also click the ground container, the assigned items slot etc... and those I don't know what displayCtrl number are and couldn't find it anywhere
hey, i want a script that slowly, one at a time, kills every single living player. how would i go about that?
while {allPlayers findIf {alive _x} > -1} do {
sleep 5;
(selectRandom (allPlayers select {alive _x}) setDamage 1;
};
``` something like this
thats a lot simpler than i expected, thanks
There anything that can be used to make it where a unit insignia doesn't appear on a vehicle?
Do you mean the custom squad.xml insignia?
My guess is that Arma 3 Units probably uses the squad.xml system in the background, and in that case I am not aware of any solution based on scripting.
Changing the vehicle config or even model may be the only way, but I know nothing about that stuff ๐คทโโ๏ธ
What are you getting at?
hm ok not sure if it goes here or in animations, but if i use PlayMove to hit something in the animation graph, is there an animation-queue friendly way to do something like switchMove ""?
right now i'm doing this
// play our animation
_unit playMoveNow "Test_Anim_State";
// return to whichever standing state is appropriate to our current weapon
switch (currentWeapon _unit) do
{
case "": {
_unit playMove "AmovPercMstpSnonWnonDnon";
};
case (primaryWeapon _unit): {
_unit playMove "AmovPercMstpSlowWrflDnon";
};
case (secondaryWeapon _unit): {
_unit playMove "AmovPercMstpSlowWlnrDnon";
};
case (handgunWeapon _unit): {
_unit playMove "AmovPercMstpSlowWpstDnon";
};
};
but afaict it won't work with mods that allow people to have a second primary weapon in their launcher slot, or whatever
i don't like using switchMove because it looks a little glitchy due to the animation instantly starting with no interpolation :/
i guess while we're at it, is there anything like playMove or playMoveNow but which also blocks until the animation you've queued up starts/is done? since playMove doesn't start playing your animation until it's finished transitioning which can take 0.25-0.5s, so the switchMove "whatever"; sleep 1.5; approach i see recommended a lot on the forums doesn't always work by itself
Use animation event handlers
Not sleep, etc.
presumably just animStateChanged > look for animation i just queued up > when animation plays, do thing and then remove handler?
And playMove is already the best thing you can use here
yeah just wondering if there's a better way to "go back to the default standing state appropriate to your loadout"
oh that's how you play... actions
wow i'm dumb lol
i kept trying to use playmove that way ยฏ_(ใ)_/ยฏ
can you call zeus module from a script?
Yes if you know what function the module uses
You call that function directly
Hi there! I am planning on running an Operation for my group on the VR map. I have everything laid down, with a custom map, and skybox. However, it still doesnโt have the feel I want it to. Does anyone have any cinematic script suggestions? Images appearing on screen, a custom navigational map, title sequence etc. Cheers in advance!
How to get arguments from arma to extension?
Like - extension callExtension [function, arguments]
How can I handle arguments in dll (c#)?
for C++ you can use SQF Value by X39
don't know about C#, but you can probably adapt it
this server is English-only. #rules
Is there anyone who can help me with the sa Arma 3 job?
thx
Hello,
How can i get the updated position of a backpack, say a player puts on the backpack, runs 200 meters and then takes it off? as im struggling to do so.
it has a variable name.
figured it out it becouse the backpack object its self is bugged had to get its parent
How to check if the players group is all inside of a vehicle? This trigger will activate the vehicle to move and also complete a task
units grp findIf {!(_x in veh)} < 0
for player's group you can use group player ofc
So something like
group player findIf {!(_x in veh)};
And then i just put that in the condition field?
no. units group player findIf {!(_x in veh)} < 0
just units player 
_x addEventHandler ["Killed",
{
_unit = (_this select 0);
_killer = (_this select 1);
if (side group _unit == resistance) then [(side group _killer), 5] call BIS_fnc_respawnTickets;
hint format["unit %1 was killed by: %2", _unit, _killer]
}]; ```
the part that checks what side the killed unit is on currently isnt working and im not sure why
ive tried just side _unit instead of side group _unit
then {}
your code:```sqf
_x addEventHandler ["Killed",
{
_unit = (_this select 0);
_killer = (_this select 1);
if (side group _unit == resistance) then [(side group _killer), 5] call BIS_fnc_respawnTickets;
hint format["unit %1 was killed by: %2", _unit, _killer]
}];
awesome thanks so much
indent it, you will see what's wrong
was just testing it and accidentaly put the } after the ; so took a bit to test lol
all working now
cheers
private ["_eastTickets", "_westTickets"];
while {true} do {
sleep 10;
_eastTickets = [east] call BIS_fnc_respawnTickets;
_westTickets = [west] call BIS_fnc_respawnTickets;
if (_eastTickets == 0) exitWith {
if (side player == east) then {
"OpforLose" call BIS_fnc_endMission;
} else {
"BluforWin" call BIS_fnc_endMission;
}
};
if (_westTickets == 0) exitWith {
if (side player == east) then {
"OpforWin" call BIS_fnc_endMission;
} else {
"BluforLose" call BIS_fnc_endMission;
}
};
};```
is not ending the mission
any idea why?
```sqf
// your code here
hint "good!";
```
โ
// your code here
hint "good!";
cool
have you checked that the code is running, going through the conditions, etc?
not yet, probably a good idea
so ive tried adding hints and it doesn't look like any of it is working
here is your problem then
So I want to place some text floating above a players model. I am using drawIcon3D. The text shows fine and with the offsetX and offsetY I moved it to above the player model. However it seems to change position relative to the distance. So when I look from close-up its on the position, but when walking backwards it moves higher and higher upwards from the position.
any idea what causes this? Some kind of scaling? And can I calculate the amount it moves, to adjust the offset?
Have you tried adjusting the position instead of the offsets?
ah yes, because the offset is a "set" value in screen dimensions
so closeby it looks like 10cm above the unit, from afar it looks like 10m
Hey guys, I have 2 HUD elements (just 2 ressource numbers displayed) but somehow they only work when they are executed without the other (not at the same time). I use the cutRSC command to display and update the numbers. Anyone knows what the issue could be?
place them in different layers, or even better two controls in a single resource
Ah okay ty
Hello, I have the problem that when I save my mission and then load a savepoint, the condition to complete a task no longer fires. In this case a waituntil statement with coordinates that the player should reach.
I didn't have this problem a few months ago. The last thing I created was a functions hpp. But I absolutely don't know what the reason for this problem could be.
Does removeSwitchableUnit not function in multiplayer or dedicated servers? I can't seem to get it to register.
You have to spawn the loop at post init, and save the handle. You might also need a Load mission EH iirc
If the handle has been terminated you have to restart it
but if you don't do disableSerialization the scheduled scripts should be loaded back on save load. ๐ค
how do you start the script with waitUntil?
iirc it did happen without disableSerialization as well... 
But it's core of saving functionality...
To restore spawned scripts.
So IDK, can't help him without more details but you should not need to do anything to have spawned scripts work after save load.
IDK how it behaves when spawned in uiNamespace context tho 
this addEventHandler ["Reloaded", {
params ["_unit", "_weapon", "_muzzle", "_newMagazine", "_oldMagazine"];
_unit addMagazineGlobal (_newMagazine select 0);
}];```
Holy shit
i finally figured out how to add unlimited ammo
that INCLUDES ROCKETS!
AND GRENADES
is there any alternative to https://community.bistudio.com/wiki/aimedAtTarget other than manually checking weapon direction vector? the command gives me unreliable/bad results, i make an AI target something, if i force a shot, it lands on-point, yet, command prints 0, tried on the blackfish
nope. also that command is for vehicles iirc didn't notice you said blackfish... 
yeah, the gunner accounts for the lead/platform velocity, which makes the aiming position be way off the target(which makes sense), i guess the command just checks the LOS and calculates based on that
well i guess math solution it is then, thanks
I'm trying to use addAction in a vehicle init, so that when the player is in the vehicle he can access the addAction using the scroll wheel select.
However there seems to be a problem where the addAction is accessible from outside the vehicle but not from inside the vehicle. Currently wondering what exactly is going wrong.
post the code
this addAction
[
"Eat that!",
{
private _tempTarget = createSimpleObject ["Land_HelipadEmpty_F", getPosASL cursorTarget];
[_tempTarget, nil, true] spawn BIS_fnc_moduleLightning;
cursorTarget setDamage 1;
},
[],
1.5,
true,
true,
"",
"!isNull cursorTarget"
];
change the condition to:
"_this in _target && {!isNull cursorObject}"
and replace cursorTarget with cursorObject
So it would be:
this addAction
[
"Eat that!",
{
private _tempTarget = createSimpleObject ["Land_HelipadEmpty_F", getPosASL cursorObject];
[_tempTarget, nil, true] spawn BIS_fnc_moduleLightning;
cursorObject setDamage 1;
},
[],
1.5,
true,
true,
"",
"_this in _target && {!isNull cursorObject}"
];
Right?
I guess so
Ok so it's still accessible from the outside of the vehicle but not from the inside
wat? it shouldn't work from outside at all
are you sure you're adding it to the vehicle?
In the vehicle's init box, sir
I can DM you some screenshots if you'd like
well this line specifically disables the action if you're not in the vehicle:
_this in _target
ok
anyone know if there is a script for hellcat doors similar to other helis, idk why but i cant find a one that works for the hellcat
wdym?
you want to open its doors?
yeah, idk if a script is needed, its just not letting me, at all
it doesn't have any door animations
dammit
the unarmed one doesn't? dang
yeah
That is basically how I run the scripts. And the next function has a waituntil statement like this again...
task3 = player createSimpleTask ["task3"];
task3 setSimpleTaskDescription ["","Escape",""];
task3 setSimpleTaskType "run";
task3 setSimpleTaskAlwaysVisible true;
task3 setTaskState "Assigned";
task3 setSimpleTaskDestination [21100.842,14307.143,0];
[0,"Escape"] call gonzka_fnc_showNotification;
waitUntil {player distance [21100.842,14307.143,0] < 20};
task3 setTaskState "Succeeded";
[1,"Escape"] call gonzka_fnc_showNotification;
sleep 3;
[] spawn hms_fnc_task_checkpoint;
The showNotification function is a replacement for the standard arma task overlays. Here I actually have disableSerialization in it.
...
disableSerialization;
7 cutRsc ["notification","PLAIN"];
private _ui = uiNameSpace getVariable "notification";
(_ui displayCtrl 27997) ctrlSetText format["%1",_picture];
(_ui displayCtrl 27998) ctrlSetText format["%1",_title1];
(_ui displayCtrl 27999) ctrlSetText format["%1",_title2];
playSound _sound;
how do you start the task script?
Like that: [] spawn hms_fnc_task_checkpoint;
This is a task script too ^^
where do you start it from
I spawn the first task script in the Init.sqf
Does the notification show when you reach the position?
Normally it should show every time the task function is spawned and when the waituntil condition is fulfilled.
When I load a save point, the task however remains created. Up to the notification it does not come at all.
So it really looks like waituntil is broken and that the script is no longer running scheduled.
I have removed disableSerialization and the problem seems to be fixed. But first I'll test it a few times more, cause Arma sometimes does what it wants...
But at this point it is actually needed, right? Strange that it works without disableSerialization.
Not that now other problems occur because this command is missing?
ahh now I see it. I think.
You're calling the notification function.
I guess disableSerialization disables it for whole script stack.
So it's disabling it for the parent script.
spawn the notification function to avoid that.
Ah thank you! I'll try that out. Would that be problematic if I simply remove disableSerialization? Then I don't have to rewrite so much ๐
I haven't quite understood yet in what way the command is needed ๐
UI elements are not serializable so they can't be stored in saves.
private _ui = uiNameSpace getVariable "notification"; so game will complain if yu do this in a script with serialization enabled.
Then I don't have to rewrite so much
you can change your notification function to always spawn the stuff inside it so it will be one place to change
...
_this spawn {
disableSerialization;
7 cutRsc ["notification","PLAIN"];
private _ui = uiNameSpace getVariable "notification";
(_ui displayCtrl 27997) ctrlSetText format["%1",_picture];
(_ui displayCtrl 27998) ctrlSetText format["%1",_title1];
(_ui displayCtrl 27999) ctrlSetText format["%1",_title2];
playSound _sound;
};
Uff, you're right ๐
is it possible to run some code before the eden mission is saved? all i found was OnMissionSave EH
https://community.bistudio.com/wiki/Arma_3:_Eden_Editor_Event_Handlers#OnMissionSave not sure if thats actually before save
I was thinking the same
maybe keydown eh and checking if the save button/combo was pressed
idk if it runs before the actual save
why do you need to do it before the saving happens?
running a script that sets some mission stuff..
Is there a way to remove a player's backpack and attach it to the player character via attachTo?
yes
Cool, how? Because I have tried but the backpack was automatically put into a ground weapon holder and even when I used firstBackpack and got the backpack I wasn't able to attach it.
use unitBackpack to get the backpack object before removing it
_bpHolder = unitBackpack _unit;
//remove
...
if (!isNull _bpHolder) then {
_bpObj = objectParent _bpHolder;
_bpObj attachTo [_unit, ...];
}
Ah, I didn't know about objectParent. Thanks.
OnMissionSave is called after the save
Hope this helps someone =) Easily find modelspace coordinates https://youtu.be/V2KCJKuWLSw
I would like all players on the server to switch their view to a camera, displaying a video on a screen (something like APEX/Sahara CDLC intro) https://youtu.be/dWvDBd9Zqyk
I know that I should use camCreate, however I have no idea how to use cameras in scripting. Is there a tutorial available?
I don't want to sound like an *ss butโฆ
https://www.google.com/search?q=arma+3+camera+tutorial ๐ฌ ๐
https://community.bistudio.com/wiki/Camera_Tutorial for the wiki link
Currently working on a saving system for my Units operations, I've been trying to save the orientation of turrets on vehicles. I've successfully pulled animationPhase for each of the turrets on the unit however I'm unable to use the Animate command to for them to be forced into a different rotation. Has anyone else had this issue and if so could they offer any insight?
_turretAnimations = [[["L111A1_MainTurret","L111A1_MainGun"],0.554931,0.0126889],[["L7A2_1_Turret","L7A2_1_Gun"],0.511238,-0.00909306],[["",""],0,0],[["",""],0,0]];
{
_x params ["_animationNames","_xAxis","_yAxis"];
_axis = [_xAxis,_yAxis];
{
_Vehicle animate [_x,_axis select _forEachIndex,true];
} forEach _animationNames;
} forEach _turretAnimations;
could someone confirm the following script still works? I tried to use it for my holdAction completion with few lines of text, but the second hint is still displayed. I can't really find any way to hide the second hint
hintC "Press W to move forward";
hintC_EH = findDisplay 57 displayAddEventHandler ["Unload", {
_this spawn {
_this select 0 displayRemoveEventHandler ["Unload", hintC_EH];
hintSilent "";
};
}];```
TYSM. That was exactly what I was looking for
wait, for real, no sarcasm and all? ๐
Yeah. The BI wiki tutorial is literally a godsend. Answered most of my questions
The commands seem slightly convoluted tho
I don't even know what display 57 is. and I don't know what that has to do with hold actions
turrents are animated with animateSource iirc. animate doesn't work on them
I wrote that tutorial; if you need help or precision, don't hesitate! ๐
it's an example code from BIKI, https://community.bistudio.com/wiki/hintC. I have a holdAction that when completed executes a script showing the hintC. from what KK wrote display 57 is for hintC without a title while 72 for one with a title, but neither of them works
so each time a hintC is shown, after clicking Continue a second hint shows up which I would like to avoid
Thanks, just tried with animateSource, and the vehicle hasn't changed whatsoever.
try this?sqf hintC "blah"; hintSilent "";
Iโm not sure how to execute the camera position on all player units. Do I put it in initPlayerLocal?
yes sir!
a camera is a local-only object, so it has to be run on each machine
Seems reasonable
ah wait, this won't work in MP obviously.
not an issue, it's for a SP mission
i had the same problem and google told me to do this instead (which does the job)
hintC "text and stuff";
hintC_EH = findDisplay 57 displayAddEventHandler ["Unload", {
_this spawn {
_this select 0 displayRemoveEventHandler ["Unload", hintC_EH];
hintSilent "";
};
}];
is it a better option?
oh nvm, i just saw the same thing above
i can confirm it works
99% of the time it hides the other hint
then this 1% happens to me all the time 
no need to remove the unload UIEH. it is destroyed together with the display
Hello i was wondering does someone ever made a streamdeck mod/plugin that connects to arma? i cant find anything online
There's the Arma COM mod https://steamcommunity.com/sharedfiles/filedetails/?id=2635818948
that sounds cool
A2OA. In MP, client is getting immediate script errors in functions that haven't been called. Even if everything in that file is completely commented out. Can anybody explain this?
no ๐ not without more details ๐
Well, is there any reason at all why script errors should occur in files that are completely commented out?
Duplicate/similarly named file thatsnot comment blocked and being read instead?
yes, mistakes
files not replaced
server not restarted
etc
why I ask for details ๐
If I make changes to a file on the server, what does it take to re-transmit those files so that the clients have the updated files? Is it enough just to restart the mission?
Does the server need to be completely restarted?
restart the server
(or rename the mission for the server to maybe take it in consideration, perhaps and not guaranteed)
Will a corpse removed on the server be removed on all machines?
yes
because "removed" uses deleteVehicle and its effect is global
does anyone know how to force ai to pop flares when it hits a waypoint
and force kill Ai when they hit a way point
I hope I am in the right place for this. I'm trying to make Arma cinematics and I'm pretty new to it. I'm trying to figure out how to use playMove (or any other good methods) to use several animations in a sequence. For example, a soldier switching from his primary to his secondary, but there are several animations to do so. Any tips on how to do that effectively?
there are animation event handlers for detecting when a new anim starts, or when an anim ends
but if you want to animate the units and move them simultaneously (e.g. unit running forward but also turning), you can use a loop
there's no straightforward way to do this
use waypoint completion statements, and use setDamage to kill the unit
okay cool thanks
if you know the exact weapon and exact flare round, you can just force the unit to stop, and use forceWeaponFire to make him fire the flare
but you also have to adjust the flare direction
you can do that using FiredMan event handler
like a ai in a jet or heli
it might also be possible to create the projectile yourself
oh you mean CM
ye
there might be an action for that 
looks like there isn't an action
just use the fire command
I want to create server side check function that should return boolean to client. What is the best practice for that?
RemoteExec to server and remoteExec back to caller with setVariable?
HoldAction does not work underwater. Does anyone know how to solve this problem?
[
diving_point,
"ะััะปะตะดะพะฒะฐัั",
"\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",
"\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",
"_this distance _target < 3",
"_caller distance _target < 3",
{
},
{},
{
"items" call RRPClient_diving_generateLoot;
},
{},
[],
2,
1,
true,
true,
true
] call BIS_fnc_holdActionAdd;
๐ค looks ok to me, unless you're maybe not adding it locally
but since you call RRPClient i assume you do
don't use distance
instead, use something like:
getPosASL _this vectorDistance getPosASL _target
it works fine for me, 
altho if both objects are in the water distance should work fine ๐
what does ๐คdistance use if you pass objects to it?
ah, it's basically obj modelToWorld [0,0,0], so yeah, makes sense
Yes, either that, or publicVariableClient, or a callback function.
As much as I understand remoteExec is non blocking call. Should I add waituntil to wait for result from server?
callback function is better
remoteExec ["my_fnc_sendMeSomeDataBackPls", 2];
//my_fnc_sendMeSomeDataBackPls:
5 remoteExec ["my_fnc_takeYourData", remoteExecutedOwner];
//my_fnc_takeYourData
params ["_data"];
// now do something with it
// the below is not recommended
remoteExec ["my_fnc_sendMeSomeDataBackPls", 2];
waitUntil {blabla_result_recieved};
// wherever you store data
Try first person, doesn't work from 3rd only. This I noticed that. If you follow what is returned by cursorObject and cursorTarget. Works only when cursorTarget is not null. And he only works in the first person underwater
hm does setPos interact with velocity in any way
presumably it just retains the old velocity right
!quote 5
stop using 'setPos' for the love of god
Leopard20; Tuesday, 10 August 2021
i see, it depends on the object, the one i used worked in both
i guess it needs to have a particular LOD
yes, but don't use setPos
depends what you want to do
well i have a situation where i made a man run really fast
and he deflects off of small rocks and ramps into the sky a lot
and i want to make him... not do that
currently i am doing so by having a statechange handler that detects anim states starting wtih "afal" or "halofreefall", and whenever that happens setting his z-pos to 0 and switchmove-ing to whatever non-falling animation he was last playing
using setPosXXX on units will result in laggy animation
just use setVelocity
as in, set his velocity to a strongly-negative value on every frame?
heh
onEachFrame {
player setVelocity [0,0, -1000];
};
got it, i'll try it
also I think if you walk with this velocity on objects it'll destroy them! ๐คฃ
hmm yes that could be bad
well we'll get there when we get there lol
maybe -10 or something would work
depends how fast your unit moves
right now around ~50m/s
then this is enough as long as the max slope is atan(10 / 50)
well -1000 definitely works as long as i disallow damage lol
-10 won't work without disabling damage either
maximum falling velocity for units is ~-7 m/s, after that they'll take damage
I guess so yeah
presumably it ahs like null instigator or w/e right
I think selection should be "" and instigator objNull
projectile should be "" too
but the -1000 thing really works way better visually than what iw as doing before so thanks for that
Hi uhh, im back here with another question. So i am making an amphibious assault mission with tanks going out of landing crafts, but i can't make the tank get out of the landing craft, any solution?
are they controlled by AI?
Yes.
If you are using Vehicle in Vehicle Transport you should be able to use https://community.bistudio.com/wiki/setVehicleCargo.
Alright, gonna try
does anyone know a script for defusable suicide bomber vests?
hi, so this is what im testing
`trigger: Door1Trg
anyplayer
present
repeated
trigger condition:
player inArea Door1Trg && getdir player > 320 && getdir player < 35
activation:
Door1 setVariable ['bis_disabled_Door_1',1,true];
[Door1, 1, 1] call BIS_fnc_Door;
"BlockedDoor1" cutText ["<t size='1.5' shadow='2' font='EtelkaMonospaceProBold'>The door is blocked, there must be a key somewhere.</t>", "PLAIN DOWN", 1, false, true];
deactivation:
"BlockedDoor1" cutFadeOut 0.2;`
but the condition fires false and i think it is because i write
getdir player > 320 if i write getdir player > 0 then it works.
that wasn't an answer to your question... 
player inArea Door1Trg
triggers already check this
If there isnโt one on the workshop there may not be one
iโm so serious
&& getdir player > 320 && getdir player < 35
this is impossible...
like if i donโt like the EXACT answer or i can just copy and paste it
i wonโt know what to do
how can a number both be < 35 and > 320 ... 
no it's not
it's a @drowsy geyser ๐
I hate it
basically checking if players direction is between these two numbers
so this for example would work getdir player > 0 && getdir player < 90
idek whatโs going on๐
Which is the smaller number in the first and second statements
someone else's asking a question... 
Or what does > actually mean
iโm just lost rn
iโm not asking questionsโฆyet๐
i honestly just need a copy and paste script for a defusable suicide vest
i wanna be able to have like real life hostage situations yk
you asked, now wait
others are working on something else
also we don't do "ready to copy/paste" here; it's scripting assistance ๐
i SUCK at scripting
like i wonโt understand a THING
i also did get an answer and it was confusing cause i did not understand a thing
between these two numbers
but you're not checking "between numbers"
you're checking a number that falls in both of these red areas:
which is impossible ofc
im trying this
https://ibb.co/s5hRY03
I had this problem when I was recreating the Take On Helicopters touring script. Its logical to think in compass circles, but the script doesnt think in circles.
well you have to use ||... 
there are probably both types here
this is the only answer you got:
If there isnโt one on the workshop there may not be one
wouldnโt be shocked
my friend used to have a script for them and it worked and everything
was pretty cool
i just donโt know how to work it๐ฅฒ
thank you that works ๐
i love you guys !!
i didnโt do anything to help but ilyt
๐
why don't you ask your friend for the script then?
i stopped talking to him
i THINK i found the script on worship
but it didnโt work for me i think
or i put it in wrong
which script?
uh lemme find it
the car script
that doesn't say anything about being able to "defuse" it
which iirc that's what you asked
how do you set it up exactly?
idefk man
i just copied and pasted the example
iโm slow man i didnโt understand it at all
itโs not a mod itโs categorized as a mod but the entire description has the setup details
it's a mod means it's not a script... 
and the page already explains what to do:
Setup
Eden editor placed objects:
If the unit you want to make a suicide bomber is an object placed in the eden editor then go into its attributes, scroll until you find the init and paste this in (but change the function paramaters of course):[this] spawn { sleep 2; _this = _this select 0; [_this, type, timer, isHostage] call fnc_suicideVest; };
wdym change the function parameters
[_this, type, timer, isHostage]
Paramaters
[object, type, timer, isHostage] call fnc_suicideVest;
i also tried to subscribe to it and it doesnโt show up in the mod list
Object: the object it is attached to.
Type: the type of suicide vest it is, ("dms" = dead man switch, "timer" = timed vest, "" = default suicide vest)
Timer: number
isHostage: Makes the unit do a hostage animation, can be set to true or false.
it's a composition
hopefully the messages are still here when iโm home
thanks for your help atlwast
how would i use it in zeus tho?
cause i setup zeus missions not editor missions most the time
Evening fellas, please is there a way I can return a list of all the vests classnames in the game, both vanilla and modded? Thanks.
yes
๐
you can browse config (by script or through Config Browser) and look for vests
though I don't remember vest's inventory item code
Thanks, but how exactly would I browse the config via script please
there is no tutorial for it, but all the commands are here:
https://community.bistudio.com/wiki/Category:Command_Group:_Config
see for example configClasses and configName ๐
Alright thanks ๐
what's the difference between call and spawn? when should each be used?
https://community.bistudio.com/wiki/Scheduler
See description of Unscheduled Environment.
call doesn't necessarily mean unscheduled if that's what you're implying
True, the main point was that its a good advice when to spawn.
when to spawn: don't
"the more threads, the better" ๐
(j/k, don't do ^ this)
Evening fellas, I have a small problem with generating a list of all civilian classnames in game. Here is the generator
_fn_isParentOf = {
private _config = _this param [0];
private _father = _this param [1];
private _parents = [];
_parents = [_config, true] call BIS_fnc_returnParents;
if (_father in _parents) exitWith {true};
false;
};
arrayCivs = ("[_x, 'Civilian_F'] call _fn_isParentOf" configClasses (configFile >> 'CfgVehicles')) apply {configName _x};
The generator works fine, but it also adds unwanted classes e.g. headlessclient, animals, and some base classes that aren't 'real' units. Is there a way to filter these 'unreal' units from the others?
Maybe some special property only real units have, I don't know.
Thanks
Also if you have a better way to generate a list of all civilian units that works better I'd be much happier
The generator works fine, but it also adds unwanted classes e.g. headlessclient, animals, and some base classes that aren't 'real' units. Is there a way to filter these 'unreal' units from the others?
Then it technically means it doesnt work. ๐
In scenarios like this, it is a good idea to open config viewer and check out differences in wanted and unwanted classes to be returned. You have found the main way to find out civilians which is through finding all entities under Civilian_F, but headlessclient and animals are also under civilian_F as they belong to this side by default so you need to find an attribute in civilians that are not part of the "unreal" units. In this case, you can go through simulation attribute which is "soldier" for civilians while it is "animal" for animals and "headlessclient" for headless client. I also suggest you to include a scope = 2 into your checks to ensure no any class done for other purposes make it to your returned class types. There might be also alternative paths to find those but closest to your approach would be this. Of course there are probably more distinctive attributes but this is the one that came to my mind.
why do you check parents?
a civilian is an object with side = 3 and scope = 2
Thanks, the soldier, scope and side attributes probably work better than checking parents
Honestly, I dont know why I didn't consider the side attribute, maybe I thought all units with side 3 are children of class 'Civilian'
I did not suggest side because for some limited reasons there may be civilians under blufor opfor etc. and since we do not know your exact purpose, did not want to suggest it. But yes it is definitely better idea than checking parent like this in this case for regular purposes.
That's not a big problem for me, thanks for all your help, everything is working as intended now
On a side note: isKindOf would probably have been faster than your _fn_isParentOf.
script to start barrel fire?
if I have x amount of units, and their naming is c_site_anim_stand_x and I want to grab all of them, is there a more efficient way of doing this?
private _workerStand = [];
for "_i" from 0 to (count allUnits) do {
private _current = missionNamespace getVariable ["c_site_anim_stand_" + str _i, nil];
if (isNil "_current") exitWith {};
_workerStand pushBackUnique _current;
};
Can't really think of anything right now.
Does this need to be efficient? How many times do you execute this?
more than once, but decently spaced so it probably doesn't matter. I was mainly just asking for knowledge since this was the only thing I came up with
private _workerStand = allUnits select {"c_site_anim_stand_" in vehicleVarName _x};
```I guess this is faster, but it only works if those missionNamespace variable names that you are checking are guaranteed to be equal to `vehicleVarName _x`.
Hey, sorry for the late response, but can I just execute all of the camera stuff with forEach (allPlayers);
if you are using local commands, you will have to remoteExec them all. its better to write a function that is local and exists on every machine, then just [arguments] remoteExec ["functionName", allPlayers];
@mental prairie this ^
Otherwise the code only runs on the same machine
got it. I've run into a problem tho. Every time I try to execute the script with the camera nothing happens. I use a radio activated trigger.
code: _cam = "camera" camCreate (ASLToAGL eyePos player); _cam camPrepareTarget player; _cam camCommitPrepared 0;
trigger: execVM "camera.sqf";
SITREP check: we don't have working linter for SQF atm right?
Yes, you missed the "cameraEffect" step!
Ok thanks
Is there a command to disable the FCS/laser rangefinder on a vehicle?
I don't think so
Unfortunate
Quite.
Found a feature request for it going back to uhhhh 2016 (https://feedback.bistudio.com/T85659). Apparently it was assigned at some point, so maybe there's hope :U
it might be worth a #arma3_feedback_tracker bump!
(if it was not, you are on your own, it was your idea and I have nothing to do with it ๐)
is it possible to see the last (or all) error(s) i received in the editor?
yeas, open .rpt file
where can i find it
where do you want to see errors, client server?
%localappdata%\Arma 3 and it's the latest dated .rpt file. Open in any text editor
typing %localappdata% in the Explorer address bar will take you straight there :U
I dont have an arma folder there 
whats the path?
oops, found it
sort by creation date so you can see the latest .rpt
!rpt
Arma generates a .rpt log file each time it's run, which contains a lot of information like the loaded mods, or any errors that appear, this log file can be very useful for troubleshooting problems.
To get to your RPT files press Windows+R and enter %localappdata%/Arma 3
Additionally see the wiki page for more info: https://community.bistudio.com/wiki/Crash_Files
To share an rpt log here, please use a website like https://sqfbin.com/ to upload the full log, that way the people helping you can take a look at it and try to figure out the problem you're having together with you.
Note: RPT logs can hold personal information relevant to your system, the game or others.
does anyone know how to trace ace frag
Does lbSetTooltip not work currently? Each time I try to use it like:
_listBox lbSetTooltip [_listBoxIndex, _itemToolTip];```
No tooltip shows up, I've made sure nothing is overlapping the listbox but nothing shows up when I hover over the list item
what is _itemToolTip?
Repair Kit used for restoring vehicles to near full health.
does rotating an object also rotate its velocity?
I meant, is it defined, and is it a string ๐
using setDir or setVectorDir?
either?
does one of them rotate velocity and the other not
the docs say that setDir 'resets' velocity but i'm not sure if it means that it "re-sets" it to the new rotation, or it sets it to [0,0,0]
[0,0,0]
oh no, i guess it's impossible to know if it rotates velocity or not then :/
setDir doesn't
the other, you can try and I can amend the wiki with your results
yes sorry it was a joke, because [0,0,0] has no defined direction
so a rotated [0,0,0] and a non-rotated [0,0,0] are indistinguishable
ill try the other
https://sqfbin.com/exatehuqehigacorovoq
I've left a snippet of the code. Relevant functions are towards the bottom and MAZ_populateListbox and MAZ_inventoryGUI.
virtualItemsCreated will be formatted as [ [ "Name", "Tooltip", "Icon", {Code}, buy, sell ] ]
In this example, the tooltip is the string "Repair Kit used for restoring vehicles to near full health."
MAZ_populateListbox is passed the listbox from uiNamespace & the player, and the tooltip is retrieved from the array, then set as the tooltip. I don't think I've messed up syntax for this and there shouldn't be any UI elements overlapping the listbox.
I've tried this in MP & SP environments
Edit: From the snippet provided run the entire code and open your inventory to see the virtual inventory.
oh ๐ mb for not catching up
would you have a, huh, smaller repro perhaps?
Unfortunately, no, the included functions are necessary for the script to run. Only two will need to be looked at though as the others don't relate to GUI elements. MAZ_inventoryGUI and MAZ_populateListbox
The list box is defined in MAZ_inventoryGUI as virtualInvListBox
will using a lot of waitUntils affect performance?
Depends.
What's a lot and what's inside of them?
i currently got 18 in one file (and a couple more in others) and most of them are stuff like waiting until the player reaches a certain destination or enters a certain vehicle or does a certain action in order for the scenario to advance and stuff
there might be another way of doing such stuff, but that was the only way i thought of when i started, so i was just curios rn whether or not its a bad way of doing it
hmm ok slightly weirder question; it seems like if you getVelocity on a man, it loads his total velocity including from the animstate, but if you setVelocity on a man, it adds the "existing" velocity from the current animstate back on at the end of the frame so it effectively stacks on top of his basic running speed or whatever; does that seem accurate?
and if so, how would one go about isolating only the "external" physics velocity of the man, ignoring the base speed of him running
We'd need to know the details of what exactly you want to check for to provide alternatives, but a good rule of thumb is to avoid a loop for something that you can use an eventHandler for; such as the one where you are checking if someone got into a vehicle being replaced with a getIn or getInMan events.
Yeah, more than 90% of my waitUntils are for checking the distance. As for the getIn EH, I'll be changing that right now. It's only one at the end of the scenario.
You're fine with the distance checks in a loop. Just remember that you can sleep instead of checking (at most) every frame to see if someone is near a place.
so, slap a sleep inside a while is what you tryna say?
You can sleep inside a waitUntil since it's a scheduled environment.
๐
Is F_40mm_Red a #lightpoint?
Meaning, can I use setLightFlareSize on said flare?
I'm having some trouble with the alternate syntax of currentZeroing, and with setWeaponZeroing.
I've got a correct weapon classname and muzzle name. However, when I plug those into currentZeroing, it always returns [0,-1]. And if I plug them into setWeaponZeroing it returns false and does nothing.
I can't find anything suggesting the command doesn't work for other people, but if all I'm doing is this:
player setWeaponZeroing ["SMG_01_F","this",1]
``` and it's still not working...I'm stumped.
so i'm trying to spawn a cruise missile and set its target with setMissileTarget but it isnt working. I can however, fire a cruise missile at a target, and then set that missile's target and it will work. How can i get around this? When i spawn a cruise missile and set it's target, missileTarget is null.
Just tested more, and it turns out i dont have to fire at a target at all. As long as the missile comes out of the vls i can set its target. I want to be able to spawn it though
AHA, i figured it out. I needed to use setShotParents on the missile. The shot parent vehicle has to be a vehicle with data link, and that vehicle has to have the target on its sensors. Once setShotParents is used, you can change the missile's target!!
I am trying to have a marker hostLoc update it's location when a specific unit named bomber leaves the area of the marker. Currently have this:
[] spawn {
while {alive bomber} do {
if (bomber !inArea "hostLoc") then {
"hostLoc" setmarkerpos bomber;
};
};
};```
Keeps saying the line with the `if` argument is missing a `)`. Can't seem to figure out where one would be missing. Any suggestions?
(This is run from `init.sqf`)
Try !(bomber inArea "hostLoc")
Spot on. Thanks mate.
The target has to be inside configured missile targeting cone for command to work.
https://community.bistudio.com/wiki/setMissileTarget
not for cruise missiles
what target are you trying to set?
i already said i got it working and why it wasn't working in the first place
ahh my bad, didn't read your next message 
if weapon's class doesn't have multiple muzzles, then you're supposed to use the weapon's class as muzzle
you can check the muzzles array entry in weapon's config, if its an array with only "this", then just use the weapon class as muzzle
It also doesn't work for weapons that have multiple muzzles
just tested on the MX and it works fine, including grenade launcher
Correction: it doesn't work for vehicle weapons that have multiple muzzles
what vehicle? for me it works on the marshall(HE/AP)
Nyx AC
works fine here 
send the code(the way you use it on the nyx)
_target = vehicle player;
_zero = [];
private _targetWeapons = (_target weaponsTurret [0]);
{
private _targetWeaponMuzzles = getArray (configFile >> "CfgWeapons" >> _x >> "muzzles");
private _targetWeapon = _x;
{
_targetMuzzle = _targetWeapon;
if !(_x == "this") then {
_targetMuzzle = _x;
};
_zero pushback (_target currentZeroing [_targetWeapon,_targetMuzzle]);
systemChat format ["%1 %2",_targetWeapon,_targetMuzzle];
} forEach _targetWeaponMuzzles;
} forEach _targetWeapons;
_zero
``` (in debug console while in the Nyx AC gunner seat)
the output in system chat reports the true muzzle and weapon names, while the array of current zeroes in the debug console return field is all [0,-1]
try using the unit who is manning the turret instead of the vehicle
That seems to report the correct results
wiki is wrong then i guess
both overloads according to supportInfo suggest that it's supposed to be unit
setVel does. setDir doesn't
There's no getVelocity 
yes i misspoke, i meant the command that gets velocity, which i guess is just called velocity
although this behavior seems to apply to velocityModelSpace too
Blame the lame inconsistency of the Bohemian naming years ago! ๐
yes anyways i wrote a script that just simulates the animation stategraph on its own so it can compensate with setVelocity in a way that treats the character as having higher acceleration
but it's uh
well it's not perfectly accurate because of timing errors, so the character ends up sliding very slowly in one direction or another at the end anyways
however it's better than sliding at running speed so ill take it
it would be way better if i could somehow getAnimationVelocity or something though
then i could actually read the component of the man's velocity that was due to animation stategraph and this code would be 1000x simpler
Not entirely sure the context but the command to get the rtm velocity?
yeah
the context is that i scaled a man up to be really big
but using the same animations as base
but the default stategraph transitions have a 20m/s^2 acceleration cap on movement
So bigger your unit is, faster move velocity?
so the man does a loonie toons run in place animation while slowly sliding into full speed over 3 seconds
yeah i wrote a script that scaled up the normal man RTM files
including absolute offset and all the bone transforms
Well not sure if that is feasible after all. The setObjectScale is not really a command for an actual object bu mainly for something else like props
so i wrote this stupid script that simulates his velocity based on 20m/s^2, then simulates his velocity based on my desired animation, and then applies the differential using setVelocityModelSpace
But rtm velocity command is ticket worthy IMO
sorry to be clear, i have made a new p3d
and new RTMs
and it is a new skeleton
with its own cfgMoves
they just happen to be p3ds and RTMs and cfgMoves states that i generated procedurally with a script
and all the script does is replace speed/vertex positions/whatever with the appropriate, scaled-up version
Interesting but still setObjectScale is not the command really... I guess
yes i did not use setObjectScale at all
Uh aha, I think I get the idea
i actually tried applying setObjectScale on every frame at first but it was... really glitchy
in first person mode your character was still normal height lol
you could see his legs dangling off the ground and the shadow rendered really far away
yes i also wrote a script that reads through all the RTMs and animstates and dumps their offsets/animation speeds into hashmaps in an sqf file that i run in preinit lol
it's been quite the journey
but yeah the last piece is this stategraph acceleration problem, which i have written this script for that is run on the mission EachFrame EH https://sqfbin.com/buwahovapitovosuyoru
sadly the script cannot access the actual current animation velocity (only the actual "final" velocity of the animation, not the one bounded by 20m/s^2 acceleration), it has to simulate it, and it doesn't quite do so accurately
i guess i could just detect if velocity is very small, and if it is, then apply that as a correction to my offsetting algorithm
private _animT = _thisTick - _lastAnimStateChangeTime;
There's the moveTime command...
oh
well that's good to know lol
hm
Returns the current time of the most important RTM animation currently being played on the soldier.
how does it define "most important"
I think it means anim vs gesture
anim is the important one
so it means animationState
I know...
Also using tickTime is naive
well i think all i needed ticktime for was that anyways
what if the game is paused or accelerated

