#arma3_feedback_tracker
1 messages ยท Page 6 of 1
Would there be a chance to see a new command. Something like "isNumeric" to check if a value is a number of any kind?
parseNumber and BIS_fnc_parseNumber both return either 0 or -1 if it cannot be parse which is a bit unfortunate if the value is 0 or -1
Yesterday we came to the conclusion that it's only possible to reliably check that with regEx.
I believe it would be a nice addition that would fit well with the new "onEditChange" EH.
would
parseNumber [value, defaultValue]
be a alternative?
I think so
isn't it kinda broken already?
like when you do parseNumber "-5D" you get -5 
what? ๐
Thats exactly as it describes it on wiki tho
It tries to parse number at end, it doesn't check if there is garbage after it
could also do that with array tho
parseNumber [value, defaultValue, strict bool]
why not make a strict version like std::stod? 
or was it strtod?
idk 
Starting whitespaces are discarded, then as many valid characters are used to be interpreted as a number until an invalid character is found then the rest of the string is ignored.
But wouldn't 0 be a valid character as well?
That's from the biki
oh nevermind
it's -5D "DEE"
Shit small tablet screen ๐
Anyway. Do you need a ticket for the alt syntax?
ye
That thing.
10k array variable creations each
[[0.166806,5995],[0.126662,7895]]
Well.. It's a small win atleast
https://feedback.bistudio.com/T171498 parseNumber <array>
nvm I fucked up that benchmark
[[0.297885,3357],[0.190949,5237]]
so a good third of performance slice?
Yes. On everything that uses this function.
Which is everything that creates array or hashmap
including literals? e.g. [1,2,3]
arrays are created at runtime
I wonder what would be average PFH script execution time with CBA+ACE now vs like 2 years ago ๐
Would be quite interesting to see.
noice! btw last year or so you had some "don't calculate AI locally" improvement; they were applied to main branch, right?
and any other interesting potential profiling leads for big gains these days? ๐
oh right 
Sadly the way arrays are created has always been done inefficiently.
And still is somewhat bad. But we ain't gonna rewrite... 1021 uses of this.
including commands that return arrays?
yes
This is the "default" way we create arrays, and everyone adding new commands just copies what someone else had already done before them
why would something like getUnitLoadout need a pointless check tho? 
the command knows what it wants ๐
no, still prof only
too game-breaking risky?
yeah
maw
Actually not runtime arrays, the instruction uses a more efficient way since I updated it march last year (before that it created the array, then created a copy, returned the copy and threw away the original it created first)
Look, these are the infos that make me smile everytime. Lou we need to document now! ๐
*furiously writes in R3vo's sandbox*

operator==(other)
{
if (multi == nullptr)
if (other.multi == nullptr)
return single == other.single;
return false; // our multi is null but the other isn't
if (other.multi == nullptr)
return false; // other is null, but our isn't
return multi == other.multi
}
How about..
operator==(other)
{
return single == other.single && multi == other.multi;
}

they're not the same 
Ah, well precondition, single and multi are never both set at the same time.
if one is set, the other is null
well shouldn't it be ||? 
no
oh wait nvm I get it now
If both are single, the multi's would be null and be equal
Wow. I'm finding all kinds of fun new errors.
Game tries to compare game types at game startup, before the types are even initialized. so instead of comparing two types, it ends up comparing two null's 
And.. There was a typo I forget a extern on a variable.
Which ended up with markerCreate checking for (string, null, scalar, object)
EXCEPT in release build, where the linker/optimizer notices that we have two same named variables, and merges them together. So it working is kinda an accident ๐
All my testing is successful, now there is only one way to find out if its still broken...
Push to production!! ๐คฃ
The ty.. holy what is that super reaction mega thing wtf
The type check and array creation thingy improvements will be in prof tomorrow ๐ค
The short circuiting will wait till next week, maybe I can implement binary commands till then
The short circuiting can then also be applied to configClasses (so we have a general solution instead of the hardcoded 3 cases)
and probably also exitWith and.... && {} ๐
Mh... I probably have to blacklist && variable from short circuiting, as that may become a call, and I cannot do calls ๐ค
Mh actually no, I can check the contents of that variable before executing the code.. Unless you do it on _x 
ohh fancy...
select {_x > GlobalVariable}
I can resolve that variable before the loop, and convert the code into
select {_x > 5}
to get rid of variable lookup on every iteration... As I can assume that all variables that come from outside, won't change during the loop (variable assignment is blacklisted, and we are in unscheduled)
But need to think about stuff like pushBack that does modify but.. weirdly
I might just enforce single expression "a b c d _x" ok, " a _x; b c _x" not ok
but then [a _x, b c _x] is a single expression 
You can't do select {[...]} anyway
Maybe make separate select with these optimizations in place?
Though speeding up existing stuff is much better
this is just too messy 
and wayyy too specific
it reminds me of your configClasses "optimization"
if you put an extra space it would just not do the optimization
The point of this is to be better than the configClasses, and more general
But apply.
And
select {command [...]}
is also a thing
๐ค
smells like SQF precompile ๐
or onEachFrame format ["70 lines of code", _a, _bunch, _of, _variables, _to, _resolve, _once]; from http://killzonekid.com/farewell-my-arma-friends/ 
Shouldn't all of this be in #perf_prof_branch ?
Feel like it's going to drown out any feedback tracker stuff
Probably has already
@rapid badge - let me put it this way - enfusion capabilities are still very much WIP and pretty much a mistery. Unless someone actually works directly on the engine and leaks some info, everything else is speculation. Don't take info from moderators as being accurate whatsoever.
@near cedar what have you done? ๐ตโ๐ซ
to bring back some life into this place, the daily spam report:
https://feedback.bistudio.com/feed/query/sOoh4cB96RJf/
Feature request for new animation source for customWaypointPosition:
https://feedback.bistudio.com/T171518
Cool new command request about inArea:
https://feedback.bistudio.com/T171524
Existing tickets I found that can be closed as resolved:
https://feedback.bistudio.com/T167466
https://feedback.bistudio.com/T159245
https://feedback.bistudio.com/T163667
https://feedback.bistudio.com/T163769
https://feedback.bistudio.com/T63050
https://feedback.bistudio.com/T163653
Resolved. Thanks
I've a small suggestion to make. When you do something like this:
addMissionEventHandler ["EntityKilled", {
params ["_unit", "_killer", "_instigator", "_useEffects"];
if (_unit isKindOf "Man") then {
0 = [_unit] spawn {sleep 10; _this enableSimulationGlobal false;};
};
}]; ```
after the 10 seconds and when the simulations are disabled, the body still has the "open inventory" action but you can't take anything from it
so it looks glitchy and might confuse players
so, why not just remove the "inventory" action from dead units with simulations disabled? Or make it so that when opening their inventory it just closes it again for the player or perhaps showing the inventory screen but not showing any of the items/weapons etc that the dead body has...
Many workshop missions that use such "optimizations" implemented lead players to think they "arma glitched" or that it was just arma being arma but it is a measurable and preventable thing. Either the mission maker doesn't "optimize" like that or an "in house" solution is procured... the second would force all the current missions using these measures to work correctly
Anyway, I will leave that up here for the judgement of the decision makers
PS: not only disabling simulations on dead bodies helps performance but also diminishes or even completely fixes the issue of dead bodies sending tanks into the stratosphere
that's a lot of text, but have you tried lockInventory and if it does not work, what about simply extending it to work on dead units?
Sorry about the text, let me check sqf lockInventory on dead bodies
ok, sqf _unit lockInventory true; backpackContainer _unit lockInventory true; won't fix the issue. Players can still open a simulation disabled body's inventory and "interact" with it... but it is all just a facade because dragging the inventory items nor left clicking them would transfer/move anything...
you can ask for trying to fix this command or hide actions on disabled objects (but some people want that)
a way around would be to use event handlers and reenable simulation on inventory opening (but this EH would be client-side)
Indeed a workaround, hopefully we can get something more elegant ๐
make a ticket
perhaps just making the lockInventory command work on simdisabled would be enough...
could unit getSlotItemName -1 return list of all slot item names
as array like ["name","","","name","","name"]
So if remote player disassembles your drone while you're controlling it, your character no longer broadcasts getting out of the vehicles and you end up being stuck in some vehicle for everyone but yourself 
UAV terminals and remote control is FUBAR
This not being fixed over 10 years of Arma 3 shows how limited usage of these new features is
objectParent returns null for a unit in vehicle in such case
Even if unit is actually inside, not just appears inside while being outside
So until you connect and disconnect to another drone, you'll remain bugged like this
Spam account
https://feedback.bistudio.com/p/surfcityrecovery/
New ticket!
AI fired SACLOS missiles don't lose target track after gunner dies
https://feedback.bistudio.com/T171561
PlayerViewChanged doesn't provide _uav if connected UAV is remote 
Reported 5 years ago: https://feedback.bistudio.com/T127894
what is the usage?
spam comment: https://feedback.bistudio.com/T171561#2429801
returning a list of everything, to operate on
you can get that with assignedItems
that only returns assigned items tho
no
what you propose will do the same
ahh i see. scratch that then, that is exactly what i wanted
while you're here, is a command like https://community.bistudio.com/wiki/weaponDirection in render scope?
iโm in bed on my mobile phone
no worries
good question, the command is old so probably not, but I will check after a coffee
i think it would be good to change it to render scope if it isn't
99% of uses for weapondirection are draw related, or at least wouldnt be hurt by render scope
Made a ticket:
https://feedback.bistudio.com/T171566
Plus two more tickets related to UAV/Remote Control being fucked:
https://feedback.bistudio.com/T171357
https://feedback.bistudio.com/T171207
PLZ FIX
omg can someone plz fix the game registering keys in the background?
like I run the game, I switch to discord and start typing while the game is launching, then when I switch back to the game it's doing god knows what (launching a mission, doing random stuff in 3den, etc.)
Yeah. Or it secretly copying stuff from error pop-ups into the clipboard 
this annoys me so much but I've not made a ticket for it... yet ;D
As far as I know, that only happens if you alt-tab during initial loading on launch. I guess whatever handles changing focus hasn't loaded yet.
Found an issue regarded to BIS_fnc_saveInventory/loadInventory/arsenal, due to how it works it is very likely to lose weapon accessories/magazines that on a stored weapon in the uniform/vest/backpack
addWeaponWithAttachmentsCargo and/or setUnitLoadout can resolve this but are added recently and those functions haven't updated to the newer method
House (Large,Abandoned) windows block grenades (2015)
https://feedback.bistudio.com/T84758
Pennyworth in 2016:
The model shown in the video is u_house_big_01_v1_f.p3d, and the same issue also exists with u_shop_01_v1_f.p3d. Both of these models are missing openings for the windows in their geometry LOD.
PR9INICHEK in 2019:
1.96.146114
Issue still reproduced ๐ฆ
Light reflection from vehicle headlights behaves incorrectly on bridges (2018)
https://feedback.bistudio.com/T127520
I do not think the lighting can be fixed anytime soon in this stage since it most likely needs model change, or shader update
TBH the lighting reminds me the good'ol OFP shadings ๐
is there a wiki page to see all 2.14 related changes to existing commands?
we can see new 2.14 commands here
but there are many existing commands with changes too, those dont appear to be listed anywhere
I don't think there is, but there should be a new category for it. like "Changes with Arma 3 version 2.14"
It's more of #community_wiki but I can agree with this
there is no crewPosition/vehiclePosition to easily get what position an unit is in right?
like atm you have to iterate through fullCrew to get an unit match, and from the index get the role, or is there something more efficient?
with https://community.bistudio.com/wiki/assignedVehicleRole the unit doesnt have to be in the vehicle from what i understand
https://community.bistudio.com/wiki/getCargoIndex
https://community.bistudio.com/wiki/unitTurret
if first is -1 not in cargo
if unitTurret is [-1] they're driver, otherwise whatever turret
if neither return anything valid the unit is Broken and should be destroyed
not bad ๐
for a more a simple, string (+ turret index) return check:
[Feature Request] Add scripting command vehicleRole
https://feedback.bistudio.com/T171599
unlike assignedVehicleRole, vehicleRole should be easy to work in MP regardless of locality I would assume
https://feedback.bistudio.com/T171586 spam bot to remove his own (2nd) comment ๐
Array index out of range
is this a coding mistake or something to report?
getting on from
allControls _ctrlGrp
count (allControls _ctrlGrp)
17:07:20 ["LIB_System_TargetRadar_Radar_fnc_anim_flat - _ctrlGrp",Control #100]
17:07:20 Array index out of range
17:07:20 โฅ Context: [] L110 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L57 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L51 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L55 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L77 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_animate.sqf)
[] L12 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L62 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L65 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_a
17:07:20 ["LIB_System_TargetRadar_Radar_fnc_anim_flat - count",2]
17:07:20 Array index out of range
17:07:20 โฅ Context: [] L110 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L57 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L51 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L55 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
[] L77 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_animate.sqf)
[] L12 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L62 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L66 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_a
17:07:20 ["LIB_System_TargetRadar_Radar_fnc_anim_flat",2,[Control #100,Control #-1]]```
like it returns results just fine, but getting that "Array index out of range"
["LIB_Core_perFrameHandleArray",27]
the pFH is also low count
in an event handler again?
RscTitles->onload->LIB_Core_fnc_addPerFrameHandler->animate->anim_flat
so in the onLoad EH right?
I've never queried allControls in onLoad 
but I don't see why it should be broken
Well, I give up. I managed to pinpoint a moment exactly when player breaks after their UAV was disassembled, even made a hack fix script
client_uav_remoteControlBullshitFixer = createAgent ["Logic", [0,0,0], [], 0, "CAN_COLLIDE"];
player remoteControl client_uav_remoteControlBullshitFixer;
// Exactly 1 frame later
objNull remoteControl client_uav_remoteControlBullshitFixer;
```But it works in like 90% cases, I was about to celebrate my victory but nope, Arma happens and it fixes the issue *but not always*.
Looks like remoteControl isn't instantly broadcasted but arrives in other non-priority message, thus even in 0 latency server-client test it works most of the time but not always
I guess if I knew how I could tell that remoteControl change arrived (or was sent?), I could base my delay on that rather than "1 frame later"
KK's hack for a remoteControl getter from https://community.bistudio.com/wiki/remoteControl won't help because I need to know when it was broadcasted to other players
Unless I need to write a code that makes every client in the game check until remoteControl getter hack return the player, and once all clients are sure that broken player is remote controlling their client_uav_remoteControlBullshitFixer, then it would be the time to disconnect the remote control to fix the bug
why u fighting the engine. just put a gun shop in the middle and a random loot box and call it a day
@solid marten Does enableWeaponDisassembly send any messages on command execution?
I see that it is global but it seems to be applied with some delay, thus I wonder it its because its effect is not broadcasted right away and I can just do:
[_drone, false] remoteExecCall ["enableWeaponDisassembly", 0];
It is an AG EG command, what do you think
if the argument is remote it prepares the message if local it syncs via update message
When done on remote entity, action disappears after a noticeable delay, thus my assumption that it doesn't send anything right away and state arrives with some generic message
I guess it instantly reaches the owner, while owner broadcasts it back to sender in a generic message, thus a delay
Also what a stupid decision to have this option global, what if you want to let some players disassemble the drones but not the others
your local action?
Yes, local action remains for like 3-4 seconds after you do _drone enableWeaponDisassembly false
When done on a remote entity
But disappears instantly on a local entity
so you want action cancelled immediately?
Of course, makes no sense to have it available for a few seconds after you forbid diassembly through script
that can probably easier be done locally for executioner but not for everyone else
If you change this flag where entity is local it still takes plenty of time for the flag to update on other clients
Effect is not instant if entity is remote, while it is instant if it is local
Thought maybe I can have it instantly disabled everywhere with [_drone, false] remoteExecCall ["enableWeaponDisassembly", 0]; but it looks like using the command on remote entities simply asks the owner to change the flag, without changing it locally first
Wish the command was AL EG instead
No messages when done on remote entity, just set the flag and have it reverted when update arrives from the owner
So you can instantly change flags locally without waiting for owner to send it when it feels like it
Yeah I get that its messed up already.
If I could go back in time, I'd suggesting having this command AG EL, so you can allow\disallow diassembly per player
can still make it as alt syntax
Perhaps it can be helped with an alt syntax, something like:
ENTITY enableWeaponDisassembly [BOOL (FLAG), BOOL (LOCAL)];
having local flag on will just change it locally without broadcasting a message
Though to be honest, current syntax should've also set the local flag along with the message
I guess with alt syntax having it globally disable the disassembly will look like this:
[_drone, [false, true]] remoteExecCall ["enableWeaponDisassembly", 0];
```Pretty ugly to be honest
But you could make it possible to have disassembly enabled or disabled depending on a player by doing each frame sets:
{
_x enableWeaponDisassembly [_x call canIDisassembleThis, true];
} forEach _statics;
Constantly overwrite whatever flag arrived from the entity owner
Hacky again
Consequences of a bad command design
I'd suggest having a local flag that will have power over global flag somehow:
_entity enableWeaponDisassemblyLocal BOOL;
```but how could you tell if global flag should be used instead of local flag?
_entity enableWeaponDisassemblyLocal true; // I can disassemble this
_entity enableWeaponDisassemblyLocal false; // No longer can
_entity enableWeaponDisassemblyLocal 0; // Use global flag instead (default behaviour)
```Super ugly again
Either way, command dreaming aside, the command is bad already, I need to use it right now, lets not bother about it
I'd really appreciate if you could look into remoteControl and UAV Terminals mess, its absolutely terrible
If remote controlled unit is deleted (drone disassembled), player unit is forever stuck in "I remote control nothing" state, and there is no way to fix that, my hack fix is not 100% reliable
imma gunna add some change and ask dedmen to add it to next prof so you can test it. the change should make it faster to apply to all clients and immediately remove action on executing client
OK how do I test it, have you got copy paste script?
UAV issues?
Quick break with remoteControl:
unit = group player createUnit [typeOf player, getPos player, [], 0, ""];
player remoteControl unit;
deleteVehicle unit;
More complex break with UAV terminals, there is a repro mission that has everything setup and executed automatically: https://feedback.bistudio.com/T171566
init.sqf from the repro:
waitUntil {player == player};
player allowDamage false;
player linkItem "B_UAVTerminal";
if(isServer) then {
// UAV & Quad creation
uav = createVehicle ["B_UGV_02_Demining_F", player modelToWorld [0,3,0], [], 0, "CAN_COLLIDE"];
uav setDir getDir player;
createVehicleCrew uav;
publicVariable "uav";
quad = createVehicle ["C_Quadbike_01_F", player modelToWorld [3,3,0], [], 0, "CAN_COLLIDE"];
quad setDir getDir player;
publicVariable "quad";
// Wait till client connects to UAV and disassemble it after a bit
waitUntil {isUAVConnected uav};
sleep 0.5;
player action ["Disassemble", uav];
} else {
// When init is done, connect to UAV and control it
waitUntil {!isNil"uav" && !isNil"quad"};
sleep 0.5;
player connectTerminalToUAV uav;
player action ["SwitchToUAVDriver", getConnectedUAV player];
// Wait until UAV is disassembled and get in and out of the vehicle
waitUntil {isNull getConnectedUAV player};
player moveInAny quad;
sleep 0.5;
moveOut player;
};
This is what you end up with in the repro when its launched
Broken player can never exit the vehicles anymore on remote clients, only enter new vehicles
remoteControl'ing some dummy entity fixes them, but its not reliable
Engine fixes aside, if remoteControl or another new command could let you clear remote control state reliably, we could have script fixed it
player remoteControl objNull - break remote control to anything that we were remote controlling
Or stopRemoteControl player, but modifying existing remoteControl could be better, the command is really bad right now
the weapondisasembly thingy
Since it involves remote entities, its gonna need a repro mission, can quickly throw it together now
ok
Actually, not very complicated, run this on server:
uav = createVehicle ["B_UGV_02_Demining_F", player modelToWorld [0,2,0], [], 0, "CAN_COLLIDE"];
[uav, ["enableWeaponDisassembly false", {uav enableWeaponDisassembly false}]] remoteExecCall ["addAction", 0, true];
[uav, ["enableWeaponDisassembly true", {uav enableWeaponDisassembly true}]] remoteExecCall ["addAction", 0, true];
publicVariable "uav";
```And have client select "enableWeaponDisassembly false", observe it takes 3-4 seconds for action to disappear
What's funny is that it instantly disappears on server, but takes a while for calling client to get the result
Very strange command behaviour
it is not strange, it immediately reaches the server and is applied on the server because it is local on the server but thats all, the change on the client is due to scheduled update which is not considered a priority
so I am making it a priority
Jesus, just tried without priority, it is BAD
is there a ticket for it @gaunt depot
i think he posted in here : https://feedback.bistudio.com/T171566
this is not it
No, there is no
Can make one
nah its ok
I still have a use for a local effect command
Next prof hopefully
Want to make certain static\drones disassemblable only if you're the one who assembled them or groupmate of one
there is no local event this is global command and it stays global as it has own update message
cannot change that
I can sort of make this work with unary command, just disable\enable the feature if you're close to forbidden entities, but its not ideal and still hacky
What if you change the flag locally, it just reverts after a few seconds, right?
on a remote entity*
yes
i mean if you make it local
at the moment it is global
i am leaving it global
it will be much more responsive now
Yeah, current command shouldn't be changed
Nevermind then, I'll hack this feature together with a per frame enableWeaponDisassembly false\true;
lets see how it goes before we decide on anything else
If cursorTarget\cursorObject is a forbidden static\drone, then disable disassembly completely, otherwise enable it back
Reason why I started looking into enableWeaponDisassembly is I thought that if I can't fix UAV remote control bugs, I can simply forbid disassembly of drones that are currently being controlled by players, but nope, effect is delayed and there still will be a window to disassemble it and bug the controlling player out
Nothing is easy with Arma
Revision: 150494
Would server only need this? Or all clients as well?
??
probably not a good idea. disable it and use action?
As the command gets send from client to server. And the priority is set on server side I guess? So would server only require perf?
nothing has changed apart from it should reach all clients immediately
Good idea, gonna use that instead.
Speaking of disabling actions, I had a draft at how disabling action menu through script items could work for all 3 kinds of actions (Game, User, Config):
#arma3_feedback_tracker message
Thankfully Disassemble is disableable with a scripting command
disable how, just showing up in scroll down list or disable completely
Not showing up in the action list at all.
the problem is how do you identify which action as they are localised
anyway remind me next week I'm done for today
By their config names, GetInDriver is config name of the action from CfgActions
There are lots of tickets asking for this very thing over the years, I just attempted to imagine how scripting commands could've looked like to cover all kinds of actions
If its there, it doesn't work very well: https://www.youtube.com/watch?v=5kRQjyWIJno
Seems to be working only on remote entities
Interestingly changing locality (taking control of the drone) also transfers underground Z to a new owner
Bugged out like this after I assembled the drone, probably related to: https://feedback.bistudio.com/T171344
is this the same as with weapon holders to get beamed into the air when you get close/turn towards them?
Very much possible, weapon falls through ground where it is local and appears flying all over the place for everyone else
could we please get some way to show script errors in code places where they are normally not shown? Like in eachFrame EH (I think). I suggested earlier making a "real" throw-catch feature which would be good too
maybe some command to toggle all errors on?
https://feedback.bistudio.com/p/timothysykes/
Spam, but....almost helpful? ๐ค
Kind of comments ChatGPT scripters write
thanks, removed
just avoid the vanilla system. spawn offsiteโฆ vanilla system not done with/for pvp tolerances
Hey, I have just seen the planned features for createHashMapFromArray and call to give a more object-oriented approach. It is a great extension to the SQF language. Paticularly, the ability to use the new call syntax to build quasi-partially applied functions (something we haven't been able to do first-class within SQF before AFAIK)
I may be a little bit late to the party, but if it isn't too late has it been thought about changing the alternative syntax of call from
hashMapObj call [methodName, arguments]`
to
arguments call [hashMapObj, methodName]
the reason being, then both normal functions and hashmap object methods can be passed into the exact same call command, meaning there is less friction in interchanging them. Of course there may be reasons not to, it's just an idea.
but it looks unnatural
we have hashmap get "bla" and hashmap set ["bla", _var] so hashmap call ["bla", args] is more consistent
and it is more similar to the . operator in OOP languages 
both normal functions and hashmap object methods can be passed into the exact same call command
but still I do like this idea
call2 
Yeah I guess it depends on what you want to prioritise consistency with. If you want to prioritise consistency with other hashmap commands then as you say the current is the best ordering. However if you want to prioritise consistency with the existing call code then the above described one may be better.
but still I do like this idea
Yeah, this suggestion may be slightly biased by my love for partial application of functions / closures in other languages and this giving us the ability to essentially do that in SQF now too
I would say to flip the args original syntax of call to make it similar to normal function calling in other languages too in that case, but I believe that would count as a "breaking change"
It should be call and summon since OOP in Arma is basically dark magic
Speaking of recent waterDamaged, wasn't there also an issue where you can't control plane landing gear damage apart from setDamage which also changed everything else?
Ended up with a custom disassemble addAction, looks the same, works depending on gameplay logic (can't disassemble vehicle you don't own, can't disassemble if drone is controlled by a player, etc.)
yeah landing gear doesnt have a traditional hitpoint they just... break
and the only thing that changes to my knowledge is you can't operate them anymore, as its not like you cna have them hide or something when broken as again, no hitpoint
Yeah, we could use scripting commands to control gear damage state
unrelated but it would also be nice if the hard coded 'plane touches water = ded' would be disabled...
Something like BOOL = isTouchingWater ENTITY could help, so you can disable collision damage in HandleDamage with this check
from what I remember it bypasses handledamage
it's been awhile since I messed with it but that's what I remember, you can have a plain old handledamage that always returns 0 and if you touch water plane explodes, similar to the whole helicopter flipping one
๐ค
I remember helicopter's main rotor damage wasn't passing into HandleDamage but that got changed at some point, perhaps water collision damage could get a same treatment
will test it again now, I was experimenting with adding a buoyancy lod to planes to let you belly land them in water and potentially survive and forgot that this was a thing
yeah instant dead
was going real slow in a A-143 too
funny enough when I add the handledamage to the pilot too I can't get out of the plane despite still being alive
How is water damage related to plane gear? Planes are messed up in general so I would rather not touch them however if there is an issue if setDamage 0 not repairing gear this can be tweaked I suppose
Related in a sense that we got access to internal damage state that was in the engine for a long time but not easily accessible through script
IIRC water damage wasn't even fixable with setDamage 0 at some point in beta or around that time
Just had that no animation in vehicle bug happen on me in a closed environment
It doesn't happen with vanilla assets very often, usually on Mortars, but happens A LOT with RHS assets, making tank crew exposed and easily killable in multiplayer
I wonder why it could be and if this can finally be fixed, been plaguing the game for 10 years now
animationState returns proper animation yet unit appears in some kind of default one
Maybe animation gurus can suggest what could be going wrong and why RHS assets are so much more prone for this bug to happen, unlike vanilla tanks ๐ค
Getting in and out fixes the animation
My guess would be something related to streaming?
Default animation is used until needed one is streamed in, but never gets changed to proper one in the end?
https://feedback.bistudio.com/T124694
Found a ticket by Quiksilver but this been an issue in the game since Alpha
happens with IFA3 stuff too, can't work it out. only difference is vanilla animations usually have transition animations and aren't static
maybe it has something to do with inheritance? Static poses mods can behave like that even in editor.
as in they have a 'get in -> settle in -> idle'
most modded stuff will at most have 'get in -> idle'
from a player standpoint the first is the 'getting into vehicle' animation and the 2nd is the character sitting down in the seat or whatever
I mean apply the animation, put unit into vehicle, remove it and now it will stay in the default "stand and aim" position no matter if its in a vehicle or outside, both in editor and in preview
having this extra animation is probably 'fixing' whatever sync issue is happening or rather making it less likely to occur as you're switching to two different animations instead of one
Good idea actually, lack of get in and get out animations might be the trigger, mortar doesn't have any ๐ค
just spit balling tho
You guys sure is not an AnimDataCache issue?
nah I've seen it when the animdatacache is fine
but idk
ive never been able to reproduce the issue reliably
We had similar issue while the SOGPF's dev, sometimes Arma 3 fails to update the Cache and the most reliable way to fix is to delete the folder
I've been experimenting with it on a live server and it mostly happened on first game session, if I simply rejoined it didn't occur (or much less often)
If that's what you guys are facing
On a first game run you usually had plenty of broken players in vehicles in RHS, thus my assumption about animation data streaming
i dont think it hasa settle in animation either it just goes straight to idle
I had it hapepn a grand total of once when testing annd when I forced the correct animation again (like _unit switchMove (animationState _unit) it'd fix itself
but i see it reported a lot
I think I tried to fix it like this and it didn't work
class Mortar_01_base_F: StaticMortar
{
cargoAction[] = {"Mortar_Gunner"};
getInAction = "GetInMortar";
getOutAction = "GetOutLow";
It does have the actions
diag_log'ed animationState each frame, no animation play really:
...
14:45:46 "amovpercmstpsraswrfldnon"
14:45:46 "mortar_gunner"
...
14:45:47 "mortar_gunner"
14:45:47 "amovpercmstpsraswrfldnon"
...
if player in vehicle use arsenal and load his presets the animation will same broken
idk if this can help
I guess it should have been
cargoGetInAction[] = {"GetInMortar"};
cargoGetOutAction[] = {"GetOutLow"};
Still its better to have this bug fixed in the engine for good
Very much gameplay-breaking
https://feedback.bistudio.com/T126282
I heard of this bug the first time but it seems very old, but I also could confirm this. But is it maybe easy fixable?
https://feedback.bistudio.com/T171273
https://feedback.bistudio.com/T171417
spam attack again
yes
mortar is the only vanilla asset it happens regularly on
I use a cheap fix by spamming the animation globally when player enters the mortar
its an infrequent event so i dont mind
This bug is a big gameplay breaker for RHS games, I'd really love for it to get fixed
I wish....
it also overwrites your clipboard with empty or whatever error message is currently open
No entry 'bin\config.bin/CfgWeapons.Ded_flashlightD'.
aahhh
That is engine error that is supposed to force-crash the game ๐ค
Super annoying
That only works when people writing changes actually link it though. For example, https://community.bistudio.com/wiki/select Syntax 5 has a 2.14 note that just says "since v2.14", without a link.
yep, discussed here #community_wiki message - won't do
thanks does that depend on the build/exe used, or should happen for any?
any, where its printed. I don't know if its printed on non-diag
will verify. i think i see it also with perf/prof with -debug active
If you deploy a drone during client loading (mission downloading?) it never materialises for that client
Accompanied by some thick constant spam in RPT
9:39:10 Client: Object 2:734 (type Type_134) not found.
9:39:14 Client: Object 2:735 (type Type_263) not found.
9:39:15 Client: Object 2:734 (type Type_134) not found.
9:39:15 Client: Object 2:734 (type Type_133) not found.
9:39:18 Client: Object 2:735 (type Type_470) not found.
9:39:19 Client: Object 2:735 (type Type_135) not found.
9:39:20 Client: Object 2:734 (type Type_134) not found.
9:39:24 Client: Object 2:735 (type Type_263) not found.
9:39:30 Client: Object 2:734 (type Type_134) not found.
9:39:34 Client: Object 2:734 (type Type_133) not found.
9:39:34 Client: Object 2:735 (type Type_263) not found.
9:39:35 Client: Object 2:734 (type Type_134) not found.
9:39:38 Client: Object 2:735 (type Type_135) not found.
PVar'ing the drone ends up as null on the client
Rejoining helps, but still, I wonder how many more vehicles or network objects break like this ๐ค
Pretty sure I can make a repro for this, if anybody is willing to dive deep to fix it
Original output filename: Arma3Retail_DX11_x64
Exe timestamp: 2023/04/13 09:25:28Type: Public
Build: Stable
Version: 2.12.150487Allocator: C:\Program Files (x86)\Steam\steamapps\common\Arma 3\Dll\tbb4malloc_bi_x64.dll [2017.0.0.0] [2017.0.0.0]
6:32:37 Array index out of range
6:32:37 โฅ Context: [] L5 (/x/cba/addons/common/XEH_postInit.sqf)
[] L21 ()
[] L17 ()
[] L19 ()
[] L77 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_animate.sqf)
[] L10 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L58 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L63 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_a
Arma3_x64.exe" -skipIntro -noSplash -window -name=test4 -noFreezeCheck -noPause -showScriptErrors -debug "-mod=C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CBA_A3;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@Zeus Enhanced;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@IFA3_AIO_LITE"
Maybe during JIP execution?
I can imagine how that happens.
While client is not "in" mission it ignores network updates.
It processes the JIP queue (it cannot accept network updates, because they need to be processed at the end after the JIP queue). When stuff is pushed to JIP queue, the client doesn't get it because the server already sent the whole JIP "blob" to the client, and now thinks JIP is done.
When its done with JIP, it now opens itself for updates, but the update that came in has already been discarded and forgotten.
That's... quite deep...
That kinda feels like it could cause problems with....literally anything that happens during JIP, not just drones
Hmm, drone itself exists as out vehicle already, so I guess clients ignore vehicle creation messages if they're out?
Or rather, vehicle assembly message ๐ค
I mean they ignore all messages arriving during JIP processing
like if you just do a createVehicle in exactly that timespan?
That test on the screenshot involved 3 drones:
- One already assembled before join
- One assembled during loading\downloading (went missing)
- One assembled after joining
Yeah, but something tells me createVehicle will work fine, because we would've seen this bug much more often
Probably something with assemble\diassemble messages ๐ค
assemble really should be a createVehicle under the hood ๐ค
But maybe its not
The drone was already created by this point but just kept disassembled (as out vehicle)
Gonna test if having it disassembled during loading will break it or not
Its fine
Drone kept in backpack disassembled => Fine
Drone assembled during loading => Missing
If object didn't exist yet, it does a createVehicle under the hood.
If its in out vehicle, it just resurrects it and informs other client to do so too.
So yeah maybe out vehicles aren't synced during JIP ๐ค
Kinda makes sense that out vehicles wouldn't be synced, because they are gonna be deleted "soon" anyway
Can try making a repro & ticket for this, if you're willing to check it out
I probably can make a scripted hack fix like kicking player back to lobby if somebody deployed a drone during their loading, but this doesn't sound user friendly at all
Not sure if you've seen this, another issue related to out vehicles being resurrected through assembly, during gameplay this time: https://feedback.bistudio.com/T171344
4 out of 100 drones failed to appear at their assembled position, in practice they sometimes appear at their out position (some huge coordinate numbers), I've had this happen on me in 0 latency testing environment twice during my time scripting drones into my mission, which pushed me to make this repro
The moving out/back in code dates back to 1999, together with how these out things are network synced..
That would be some extremely deep digging
My guess is that position update message with out position arrives after assembly is done and drone crew is created (locality shifted to whoever did assembly), maybe this can be fixed by including a flag in position update message that vehicle was out during this, then ignore these message if vehicles is not out anymore?
How does locality change?
Player1 assembles drone : drone local to player1
Player1 disassembles drone: drone in out vehicles, local to player1
Player1 assembles drone again: drone moved back in, still local to player1
Or does different player, pick up backpack after disassemble?
Locality only changes on assembly
Is the drone crew, not local to the player that assembled it?
Drone crew gets deleted every time vehicle is disassembled, so whoever assembles it creates new local crew and moving it into drone driver seat swifts locality to whoever did assembly
So locality switches to player that did assembly if it was local and needs crew
So, indeed after "Player1 disassembles drone" a different player then goes to the backpack and does the assembly
Fixed diassembly to assembly in this message, mistyped what I meant
Some moment 1: Drone owner broadcasts position update message for their out vehicle drone (outside of the map, big coordinate numbers, etc.)
Some moment 2: Remote player assembles the drone, their crew makes drone local to them
Some moment 3: Position update message finally arrives to whoever is now a drone owner, overwriting new drone position and teleporting it back to out position but no longer out
Pretty sure position updates are independent of locality change.
When locality change is done, server assumes every client has same state.
And then authority switches to different client, which has not the same state, and now continues broadcasting starting from their outdated state.
Fix would be, force a full state update to all clients, before doing the locality change.
Force them to be in sync, then switch ownership. Instead of assuming them to be in sync and switching ownership.
Though the force sync, would send the server's current state, which may not match the actual owning clients state. But that'd be a bit better atleast.
This could also be related to the "naked units" bug on ownership change, where the uniform gets lost ๐ค
Is naked units bug about ownership change? I think player unit keeps same locality all time, yet they randomly lose their uniform during gameplay ๐ค
The bug I mean is naked unit when transferring to headless client.
Several HC scripts have custom workarounds for it (I think just re-applying the loadout)
uniformContainer supply doesn't change locality to anything else either
Ah, the naked units bug happens to normal players too
My another issue complaint has semi-recent screenshot of player having uniform missing
Speaking about my repro with drones missing, I have my drones spawned at _pos vectorAdd [-10000,0,0]; initially, 10 km away from players
But if I change that coordinate to -100 this bug never happens
This is done to simulate far away out position, in real gameplay I had drones teleport back to their out position [15000,15000,15000]-something
I know that position updates arrive much less frequently if entity is really far away from the camera, I wonder if these far away updates are different message to normal usual position updates?
And these overwrite position regardless of new locality?
yeah that speaks for the sync thing.
sync time interval is related to distance.
Probably if you'd wait like a minute between position change and thingymabob it would work.
They aren't different messages, same thing just sent less frequently (whenever error gets bigger than some value, and error is influenced by basically time*1/distance)
Scratch my theory, it happens just as much with close position
That may be random luck
1 drone teleported to its pre-assembly\locality change position
Your weapon disassembly sync issue thing, that sometimes syncs under a second, other times it takes more like 6 seconds, even if less than 2 meter distance
probably just depends how lucky you are and are hitting or not hitting the sync
Forcing the full sync before sending the "assemble" message may work. But, not in that MP case where you get these 9:39:38 Client: Object 2:735 (type Type_135) not found. messages
A position sync won't make a non-existent vehicle start to appear
Adding that forced sync before ownership change shouldn't take too much time (I don't think engine has any code to do that) and then we can see if that fixes it. If not.. uff.
Changed UAV to a static weapon (no crew and no locality change)
Worked perfectly in few runs I did
So this is a general issue of sync during locality change, just more evident with drones because they're stored very far away and can randomly end up teleporting back to out position after locality change
AI involvement may be related to some delays perhaps?
Yeah, that a separate issue, some logic local deletes vehicle that went out->in during loading or something (assuming they're deleted?)
I wonder what else gets moved in and out during game ๐ค If there is such a thing, it should break for JIP in the same way
That Object not found RPT spam is a usual occurrence on a live servers, even with no assembly\disassembly involved
When I was looking into that uniform naked things, and backpack desync (backpack entities getting lost and never deleted, which also causes object not found spam) that was also out list related
From someone else
"if you add items to a non-local unit, you get object not found
forceAddUniform ALWAYS prints object not found"
Can I get a ticket for that forceAddUniform thing ๐
is this channel to confirm bug? cause im not sure if this bug or not, do i have permission to post screenshots here?
I shalt allow it
You may need to accept #rules to be able to post screenshot, or get verified see #offtopic_bot_cmds
I got that info from someone else, haven't looked into it personally.
Just thought it might be interesting
If we are to fix drones being null when assembled during JIP, this could also end up fixing other things we don't know of yet
Or make everything even more unstable 
Still valid to post I guess so everyone else can check it
well no image channel, here is the link https://cdn.discordapp.com/attachments/482598996641316868/1097852923460988952/image.png https://cdn.discordapp.com/attachments/482598996641316868/1097852923867844721/image.png
getPosASLVisual player Z position is not same as AGLToASL (position player)
!quote 5
stop using 'setPos' for the love of god
Leopard20; Tuesday, 10 August 2021
ah wrong thing, set not get :sad:
There is no command to get...
- the upper level of the given config
- the config is not inherited
eg
class a
{
text = "jaja";
number = 1;
};
class b: a
{
number = 2;
};```
```sqf
private _cfg = "b" >> "number";
upperConfig _cfg; // returns path for "b"
isInherited _cfg; // returns true```
am i right?
https://community.bistudio.com/wiki/position
https://community.bistudio.com/wiki/Position#PositionAGLS
position is ancient crap command that also returns "surface" under entity in its Z
upper level https://community.bistudio.com/wiki/inheritsFrom
inheritsFrom only works for class, not for properties in it
assume getRelPos is using position too, since it got same value
Seems like a config entry doesn't know what class its in. But CONFIG script type does know.
fixable. Fix that command instead of add a new one -> ticket
What do you mean by inherited
in this case isInherited should return false.
Because the number value is NOT inherited from a parent, its set directly/overwritten inside b
eg configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name"
returns bin\config.bin/CfgGlasses/None/name
because the "name" is not defined in
configfile >> "CfgGlasses" >> "G_Sport_Blackyellow"
itself but the parent configfile >> "CfgGlasses" >> "name"
itself but the parent configfile >> "CfgGlasses" >> "name"
You mean
itself but the parent configfile >> "CfgGlasses" >> "None" >> "name"
And I want to get if
configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name" is defined in
configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" or its parent(s)?
true, there is no way besides running configProperties with inherit turned off and checking if its in there.
I think I've seen ACE code do that actually
Yes, was my typo
Using configPropertiesis kinda overcomplex for this simple job I think
aka
private _class = configfile >> "CfgGlasses" >> "G_Sport_Blackyellow";
private _entry = _class >> "name" ;
_entry in configProperties [_class, "true", false];
```-> `false` but `true` when you check for "mass"
Result: 0.0034 ms
Seems good and fast enough for me (it got a performance upgrade today). Though probably needs to be listed as example somewhere on wiki as its not obvious
Hm true point
isClass or isText or isNumber or . . . ๐
Something like CONFIG = propertyParent CONFIG could've been useful though
Though I guess in this case it would've returned "CfgGlasses" >> "None", not "CfgGlasses" >> "G_Sport_Blackyellow" ๐ค
inheritsFrom a >> b -> a ? if b is a property and not a class
Mh that's weird tho
does configHierarchy work?
configHierarchy(configOf player >> "armor") => []
no it doesn't. returns empty array when given a entry
What if we make that work
return [cfgGlasses, None, Name]
for "CfgGlasses" >> "G_Sport_Blackyellow" >> "name"
thinking about it a second time, inheritsFrom returning parent class on property sounds wrong, as the property doesn't inherit
inheritsFrom(configOf player >> "armor") => configNull ๐ค
lol what, its literally invisible
[,]?!?!?!
str configNull?
Yeah, str configNull => ""
lul
well that's gonna be fixed soon ๐คฃ
comesFrom CONFIG 
definedAt, classOf
Current
inheritsFrom (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name")->configNullconfigHierarchy (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name")->[]inheritsFrom (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow")->bin\config.bin/CfgGlasses/NoneconfigHierarchy (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow")->[bin\config.bin,bin\config.bin/CfgGlasses,bin\config.bin/CfgGlasses/G_Sport_Blackyellow]
So how about
inheritsFrom (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name")->bin\config.bin/CfgGlasses/NoneconfigHierarchy (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name")->[bin\config.bin,bin\config.bin/CfgGlasses,bin\config.bin/CfgGlasses/None,bin\config.bin/CfgGlasses/None/name]
don't really need that inheritsFrom when you can use configHierarchy select -2
and the inheritsFrom sounds wrong anyway.
And with that we don't really need a new command
configNull -> <NULL-config> then
str configNull => dedmen was here
Can I get ticket for all this? ๐ฅบ (I think only configHierarchy change then, and that empty configNull)
We need to force a global network sync of the entity, before we trigger the locality change
Just thought about it, won't think make all assembled drones (that have UAV crew and change locality) revert back to their out positions?
Unless updated assembled position arrives to original owner before locality change
Also speaking about RPT spam with message types as numbers, why not show us message type names? This could make figuring out what's going wrong much easier. I asked about same thing years ago and got told off message names are hidden due to security reasons, but everyone knows that cheaters make network messages just fine anyways, maybe its time to start showing real message names in RPT?
9:39:38 Client: Object 2:735 (type Type_135) not found.
Talking about this
I think debugging benefits outweight barely existing security threat of cheaters knowing how messages are called internally
Object types too maybe
will revert back to what the server knows at that moment.
That might be a problem yes. Client may needs to force a sync to server before it does that. We'll see where that goes
I think debugging benefits
The programmers that know what messages do and how to mingle with them, know what they are
Are they listen in Itercept somewhere?
If you meant engine programmers, us plebs could find them useful to, to know which network entity broke and assume which scripts led to that
Wouldn't make sense to keep it secret if it were publicly listed somewhere
to know which network entity broke
That info you have there, 2:735 is the netid
Not every netid is an object though
Even if it weren't, engine doesn't know what object is there. All it has is the netId
This could've been figured if we know what messages types were
And in other non-missing object type errors, showing object type and its class if its entity, would've been useful too
Sure, to only like 1% of mission designers but still
That seems somewhat similar to some testing I was doing when implementing a method to teleport a group into a formation of your choice
https://streamable.com/ypcae
Are you moving remote units or server moves your local units in there?
are you setPos'ing on a remote unit?
Could be that you send the setPos, then receive a position update from them, before the setPos arrives at them.
But then it should only flicker back and forth, the next position update you receive should be on the new position ๐ค
This was a year or so back so I'd have to figure out where the script is and see what it was doing but IIRC it was a setPos and that was about it but I do not know the specifics of locality
This was in singleplayer.
This looks like attaching to a local (non-network) entity and detaching ๐
I'll see if I can find it again but yeah it was weird.
Made a repro for this bug, turns out its reproducible really easily: https://feedback.bistudio.com/T171670
All done automatically, just start the game, then have client join
I dunno if movement controls are too deep in the engine spaghetti to modify at this point, but if there's any chance of this problem with the analog steering controls getting resolved, that would be...a huge relief. https://feedback.bistudio.com/T78758
worth to make a ticket about isInRemainsCollector / removeFromRemainsCollector not working with vehicle wrecks (aka setDamage 1 / zero health) vehicles?
see also R3vo having issues with getting ignored and removing them regardless
#community_wiki message
also on the flipside dead bodies arent getting clean up reliably regardless of the minPlayerDistance setting used..
Agree'd, if it isn't doable to make them "analog" like wheeled vics at least to have it fallback to the behavior of the car left/right binds would be nice for when bound to a mouse
I feel like it should be possible, since the basic left/right do act as analog controls (including for tracked vics) when bound to an analog axis...they just don't have the full range of motion
uff. seems the garbage collector isnt passed on/doesnt track corpses..
I couldnโt understand nothing in that ticket
If you remove the unit before he dies, the corpse won't disappear.
no idea
But using addToRemainsCollector on said corpse will not do anything:
if you do X it wonโt work but if you do Y it wonโt work?
the latter, it's "if you try X it doesn't work, and the alternative doesn't work either"
the former, no idea ๐ฌ
haaah I get it
if you use removeFromRemainsCollector on the unit, it doesn't get collected, all good
if you use addToRemainsCollector after that, it won't be collected ๐
if you use add... on the corpse*
what does ยซย remove the unit before he diesย ยป mean?
removeFromRemainsCollector
and if you donโt remove?
it gets collected
so adding it to corpse doesnโt work?
- have an AI unit that would be collected
removeFromRemainsCollector thatUnit- thatUnit dies and is not collected
addToRemainsCollector thatUnit- thatUnit is never collected
seems to be what is said here yes
dunno if bug or by design need to look at it tomo
repro for this: https://feedback.bistudio.com/T171678
It's been a while since I made that, so I'll look at it again whenever I get the chance and hopefully make it clearer
The ticket doesnt describe exactly what is wrong with it, is it what is pointed out on wiki by any chance? https://community.bistudio.com/wiki/setPos
With the help of @gray wharf I think we got it covered
Minor RPT spam when shooting drone shotgun: https://feedback.bistudio.com/T171682
Not sure if engine or config issue, but might be worth fixing as it might be spamming on other weapons too just unnoticed
A scripting command or a description.ext flag to disable default engine drone crew creation behaviour: https://feedback.bistudio.com/T171683
It is limited and not very reliable, I've seen it fail lots of times and I'd like to just disable it for good and handle it myself
Biggest issue of it is that it creates crew of drone's side, sometimes there isn't a drone of needed side so you have to use other side's drone and moving UAV crew to another group right away or after few frames (if drone is remote) seems to break things randomly. Just let me disable that and create crew myself each time.
Is there any chance of a server/mission param controlling time synchronisation across clients?
Would be nice to be able to change peoples time to accomodate for lighting or w/e without having to fight the server for it
Updated with some more notes, I don't believe it has anything to do with any of the notes on the wiki as they're being teleported around with a static height value across the VR map and they're spaced such that they shouldn't collide. They almost rubberband like something you'd see in MP.
Probably an issue of render vs simulation time scope, thus the rubber banding
It changes a position used in interpolation calculation rather than real position sometimes, or something like that
In other words setPos/getPos are crap commands and should never be used
low chance yeah
Sounds doable. Server config probably easiest but it needs to be a mission param to make sense
Mission param would make sense but I'll take server config if it's significantly easier ๐
want ticket?
ju
https://feedback.bistudio.com/T171685
cc @gray wharf you wanted this too iirc
Unfortunate.
Could allowing a full range of motion for the basic left/right binding on an analog axis be easier, compared to making (presumably) fundamental changes to the true analog steering? It's not quite as good, but at least it already works for both wheeled and tracked, and is only missing that last 15-25% of the turning radius.
It already has access to the full range of motion when you use it on a digital button :U it's just limited when bound to an analog axis because ???
I'm only asking because driving with keyboard is so incredibly twitchy, especially for tracked vics, and you simply can't make a controller setup that works properly for both. You have to bind for full range on cars and not be able to steer tanks, or bind for steering tanks and not have full range on cars. Or find an extra axis somewhere to bind both separately, which is...not a terrific solution.
@untold sky Been talking with Dwarden about a convenient way to check if something is inside the rock, on a scale of 0 to 10, how hard it would be to have something like BOOL = POSITION inGeometryOf ENTITY that would quickly check if position is inside object's Geometry LOD figures?
There must be some kind of method in the engine for such a check already? ๐ค
Why would the engine have that?
Only thing I can think of is "in building" but that is done by checking what surface is under your feet, and even then you are not "in" geometry
I don't know that such a check exists
Well Geometry LOD figures are convex, thought maybe its done for a fast "inside" check or something, and existence of such method already
Welp, I guess manually defining "inArea" arrays for each possible rock variant and script-checking it might be the only way to have such feature then
It's very easy to write tho
But the engine must have that already
unsure, tbh
it has collision checks, but "in 3D model" check is not guaranteed
Well it's simple
(so, a trace checking only one object could do :p)
For a convex component a pos is in it if for every plane you have dot(normal, pos) < d where d is dot(normal, planePos)
English only please
Well tbf you can write it using lineIntersectsSurfaces too 
Just set point1 and point2 the same
huh, no? not a surface?
You don't need one
The algorithm for convex shape doesn't need to intersect a surface
Yeah, but that checks everything else around it too, you don't have separate isolated rocks
Doesn't sound super efficient ๐ค
Unless I could spawn simple object rock outside of the map, worldToModel'ing and modelToWorld'ing needed position, do the check, delete it back once done or something
Not sure faster than just letting the engine crunch with lineIntersectsSurfaces
hashMapWithAll3dPositionsIn10cmResolutionPrecheckedForThatRock getOrDefault [_rock worldToModel _position apply {_x toFixed 1}, false]

RIP building such hashmap for huge 100 meters rocks
1000x1000x100 items or something

If you think the thing is convex, you could use a 2d array :P
Some random rock I checked boundingBoxReal of:
[-13.3496,-6.4789,-7.24466],[13.3496,6.4789,7.24466]
_bb = boundingBoxReal cursorObject; _bb # 1 vectorDiff _bb # 0 vectorMultiply 10 apply {ceil _x}
```=>`[267,130,145]`
That's `267*130*145` or `5032950` hashmap keys 
(it's still silly)
polar coordinates give you same number of keys per object?
Depending on angle step and it will get much less accurate the bigger the rock is
You probably you can precalculate several huge cuboids inside the rock to use with inArea checks
Or just use lineIntersectsSurfaces, that doesn't sound too bad anymore
lol
I can't get Syntax 4 of https://community.bistudio.com/wiki/insert to work (running latest profiling branch):
_test = createHashMap;
_test insert [["player", player]]; // Works
_test insert [false, [["player2", player]]]; // Throws error
_test
Error thrown:
21:24:54 Error in expression <test insert [["player", player]];
_test insert [false, [["player2", player]]];
>
21:24:54 Error position: <insert [false, [["player2", player]]];
>
21:24:54 Error 2 elements provided, 3 expected
Am I missing something?
Nah, it's either bugged or the wiki is wrong.
Ok, so this actually inserts all three elements:
_test insert [false, ["player2", player], ["player3", player], ["player4", player]];
And this works as "expected":
_test insert [true, ["player2"], [player]];
So it's kinda fine except that this throws an error:
_test insert [false, ["player2", player]];
So it's bugged and the wiki is wrong :P
real syntax is better than the wiki syntax at least
jup the size check for the true syntax (which requires 3 elements in array), was placed before the check for the splitArray value
And then yes the wiki is wrong
hashMap insert [true, keys, values]
or
hashMap insert [false, [key, value], [key, value]]
_test = createHashMap;
_test insert [["player", player]];
_test insert [false, ["player2", player]];
_test
My recent tickets:
https://feedback.bistudio.com/T171699: ENTITY inPolygon ARRAY alt syntax to POSITION inPolygon ARRAY
https://feedback.bistudio.com/T171693: Misconfigured civilian assembly info ED-1D
https://feedback.bistudio.com/T171702: drawTriangles to optimize drawing lots of triangles one by one with drawTriangle
did anyone dare to look into the Eden Open folder/file scanning?
while i do have ~100 mission.sqm, does it really warrant a ~5s freeze with a modern SSD
the old 2d editor is basically instant in comparison (but doesnt check subfolders)
(procmon shows also constant reg check for/by Steam for some reason..)
Its due to description.ext/mission.sqm config loading
Have you tried opening the main menu campaigns menu with all campaigns unlocked? same thing. Disgustingly terrible.
I don't actually know what it needs it for... What does it display in the list that needs to know whats inside the mission, maybe for the name?
No, mission name is in the folder name (e.g. My%20Mission.Stratis).
Ye we got a bit of complaints about this during SOG release. People tried to open campaign and their game crashed when it tried to parse description.ext of Editor mission which included for eg. CBA include which was not loaded...
Fun
I think KK fixed that, making include errors in description.ext not crashing
But still loading all of these is just extremely inefficient :/
Especially when not binarized (which description.ext never are)
I wanted to throw more threads at the problem, but can't because configs can execute script
I think there's a server param to skip loading additional details for the mission select screen, which really speeds it up. Maybe you could leverage whatever does that to do the same for the Editor missions list?
Yeah, SkipDescriptionParsing in server.cfg AdvancedOptions
Actually, is there any chance to fix an Workshop scenario's description... more better?
especially since this one does have a proper translated overview text (โค๏ธ btw)
bbCodeToStructuredText needed xD
I could write some BIS_fnc_bbCodeToStructuredText actually ๐คฃ
Shouldn't be too hard.
after all, we do have XML parsers sooo
Yeah regexReplace is a thing already thanks to that... dead person
Hashmap = jsonConvert string
string = jsonConvert hashmap
Or
toJson hashmap
fromJson string
?
toJson
toHashMap
akin to toString
fromJson string prevents having other formats than hashmap ๐ฌ
Except the string example we already have is
str array
parseSimpleArray string
hmm, I got this rpt spam with an undefined string in an editor mission? just loaded, STR_a referenced only in CfgSounds
class strA { name = ""; sound[] = { "", 1, 1 }; titles[] = { 0, "$STR_a" }; };`
```and I get `String STR_a not found` 5ร per second in the RPT, without stopping
previewing/back to Eden makes it OK ๐
https://feedback.bistudio.com/T171744: ENTITY argument support for area center for inAreaArray and inAreaArrayIndexes to be in line with inArea
https://feedback.bistudio.com/T171746 Made a ticket for BOOL = ENTITY/POSITION inGeometryOf ENTITY command
Most useful usage would be quickly checking if object in inside terrain rocks.
Other usages would be calculating appropriate placement positions and making sure they're not inside other entities, without costly intersect rays.
Another usage would be creating special models just for precise 3d complex area checks, this way you could spawn it in as local simple object, position it, do the check and delete it.
created a ticket for reference with the info and commentary from here:
https://feedback.bistudio.com/T171749
Vehicle Respawn module's Expression/Scripted EH upon the respawn, does use spawn to execute so _this will return [_new,objNull] while _this#1 supposed to return old vehicle not null despite the description says
4: CODE - code executed upon respawn. Passed arguments are [<newVehicle>,<oldVehicle>]. The old vehicle is deleted only after this code is completed.
https://feedback.bistudio.com/file/data/q42qwmrhlmdikkrjupd4/PHID-FILE-a2ezzxacrj7nlb23tcqj/Screenshot_2022-10-18_124827.png
I just did set from the string. But I guess toJson, fromJson is good.
However that is some old terrible code
It's incomplete, and has some errors. But this might give you some ideas.
https://github.com/killerswin2/csc/blob/master/src/Json/json.cpp
(registered functions)
https://github.com/killerswin2/csc/blob/master/src/Json/json.cpp#L1346-L1392
You can already draw multiple triangles of the same colour with this command
Can somebody make a ticket about this thingy for me and Ded while my brain hurts?
I noticed something weird with cargoTurrets
they have the property 'showAsCargo' but what this actually does seems very limited. for example when commanding AI to get into the vehicle it only displays the position as 'Passenger' if isPersonTurret is also set to 1
while generally speaking cargoTurrets are always isPersonTurret 1 there's are instances where you don't want FFV but want a 'turret' for a passenger
so it seems sorta strange that this switch is limited to isPersonTurret and not showAsCargo where it makes the most sense
Were some changes done to the debug console? It keeps throwing errors that do not exist.
It's like it has cached a previous script that was executed.
If I type systemChat "Hello" it throws this error
};>
10:18:30 Error position: <};>
10:18:30 Error Missing {
10:18:30 File XXXXXX\t.sqf..., line 117
Which was from a script that no longer has this error
It's so confusing
If I do loadFile "t.sqf", and inspect the script, the code is fine.
Okay, that's weird. If I press CTRL + S in Eden Editor it also throws that error. WTH is going on...
does the console or Eden have some file execution on key shortcuts?
I'm curious about that question
Not sure I'm following your question there?
Some console allow to execute external files from scripts folder or custom locations
Or some "store" and "execute stored" code
from a quick check of the source, the a3 ones doesnt seem to support that
Page Up/Down can store up to 9 or 10 codes history, but that's not what you want I suppose?
No then.
Like... press (some) key to quick execute a code?
Speaking of #arma3_scripting , a wild idea: engine-driven alternative sort method that can take any codes
objectsWeHave sort {_x distance player}``` or smth
yep thats what some consoles support
from my quick check no indeed
Interesting idea actually
Maybe we can also try to combine them with Custom Keybinds so possible to execute on the fly
Advanced Developer Tools does let you save scripts and reload them, though there's no keybinds to instantly load specific scripts
I've been setting test code to run on Eden event handlers, which has been very convenient. Unless you really want it to run in the console menu
That would be neat
Felt a need for something like this too
private _sort = objectsWeHave apply [_x distance player, _x];
_sort sort true;
objectsWeHave = _sort apply {_x select 1};
```Is super ugly
ARRAY = ARRAY sortAsc CODE
ARRAY = ARRAY sortDesc CODE
I don't think we will need Asc/Desc commands, but ARRAY sort [CODE,BOOL] or somehow
Huh, is arma suppose to crash when you delete a hashmap key?
no
it's due to ctrlDelete
not deleteAt
you're crashing the UI
oof
you shouldn't delete a ctrl in its own event handler
are you calling that code in the list box's EH like I said?
then how is it getting called?
well I mean an EH attached to whatever _itemControlsGroup is
there isn't a event attached to _itemControlsGroup
so are you sure it's not due to ctrlDelete?
did you comment it out?
what about ctrlDelete?
well try commenting out ctrlDelete only
did you keep that function tho?
yes
then just do [_itemControlsGroup] spawn {ctrlDelete (_this#0)}
and temporarily hide it instead
of course the answer was a one liner
You're a god
btw you should comment that it can be closed
It was a design implementation, that decision to add unit to remains collector or not was made when unit died. when it was dead, adding/removing was ignored. Revision: 150526 should fix that
with minPlayerDistance = 25;
corpseManagerMode = 1; // Default: 0 for SP, 2 for MP
corpseLimit = 30; // Default: 15
corpseRemovalMinTime = 60; // seconds. Default: 10
corpseRemovalMaxTime = 300; // seconds. Default: 3600
wreckManagerMode = 1; // Default: 0 for SP, 2 for MP
wreckLimit = 10; // Default: 15
wreckRemovalMinTime = 60; // seconds. Default: 10
wreckRemovalMaxTime = 300; // seconds. Default: 3600
private _allDeadCachedToCleanUp = _allDeadCached select {isInRemainsCollector _x}; private _allDeadMenCachedToCleanUp = _allDeadMenCached select {isInRemainsCollector _x}; private _weaponHoldersToCleanUp = _weaponHolders select {isInRemainsCollector _x};
are these soft limits?
especially in DS env we often see 50-100+ dead not cleaned up
BI forum is full of threads of the GC not working properly
so I wonder if the setup is not properly understood by players from basic docu available, or if the system is just buggy/has flaws
on the flipside it removes destroyed vehicles even if you disable simulation or use removeFromRemainsCollector
dunno if dynamc simulation system screws with the system or what it is
Small issue I've found in p3d side: Persian heads' eyes are not retexturable
why dont you enable it and see if bodies are removed, and if they dont, make a ticket with repro
we run both dynamic sim and not
some missions have scripted simulation / mission progress phases, others use the native system from A3
regardless will try to make a simple demo mission - to be seen if complex DS env or Eden SP vs simplified setup still works out the same
could this be related to 4k texture (amd 5800X with 32BG ram and a 6800XT stock no over clock except ram), or just a generic crash?
well depends how many 4k textures ๐
we have one guy constantly (each session once or twice) crashing with this and similar message
he reduced his settings a bit; not sure yet if it helps
we have only one other guy with similar crashing issues (but his pc completely freezes) [but quite different hardware]
all other [~20] experience hardly to no crashes
I guess it's a driver issue. I haven't done any DXD11 programming but I've used OpenGL and I noticed on some drivers it doesn't clear the vertex buffer or texture buffers correctly and needs some workaround
will check with him. certainly takes some time to get those crashes
AMD and shit gpu drivers is quite an iconic duo (although it's getting better). He should make sure he's running recent drivers.
I mean i have an nvidia GPU and can reliably repro this exact crash
Doesn't happen with vanilla Arma but does with GM + very high/ultra textures
Changing the default malloc had the effect of preventing crashing but the game would just crawl at 0-5 fps while textures would take dozens of seconds to load
When I'm back home for summer I'll use the diagnostic frame capture thing and report back
It's been a bug since 2016 https://feedback.bistudio.com/search/query/I.GSC39COue4/#R
At least 12 identical matches on FT
Weird. Even though I've been playing A3 at 3840ร2160 with ultra textures for years, I can't recall ever encountering this error. I haven't played that much GM though (completed the campaign, spent ~24 hours in the Editor and played a handful of multiplayer sessions). Maybe I've just been lucky ๐คทโโ๏ธ
Hardware, vendors and drivers varied throughout the years; currently Ryzen 7 3700X, 32 GB RAM and RTX 2070 Super (8 GB VRAM).
https://feedback.bistudio.com/T171704 Any chance of getting the tag for the map The Bra added soon? Currently missing like last time with Cam Lao Nam IIRC.
Yeah sure, it got lost somewhere. Added it for our next update. Working with BI to get it added in the steam backend.
Thanks!
I was doing big config search with ADT and got this OOM error. Still 10gb free mem in OS (arma was using 12gb) ;d
@untold sky does it have to do with your error log recent changes? I find weird characters in VSCode
U+007F and others
What exe? Not seeing this on prof
[profiling], but I am also working from an OFP mission file
Yeah my hashmap uses too much RAM 
I shouldn't cache stuff during search
But still it fails way too soon it seems 
Just a thought: simple (not regex) string replace command? sqf "ABC" replace ["B","D"]; // "ADC"
Sounds like more work than googling regex.
Just a thought once again: do actually we have ladder related setter/getter commands or functions?
https://feedback.bistudio.com/T171920 Animate command don't animate glass window
Isn't the window a hitpoint?
I do not think is an issue...
In general, glass stopped disappearing from window frames after using this command
what is in your imagination?
Getter1: Am I on a ladder? If so, which building/which ladder/what's the progress?
Getter2: How long is the ladder on the building?
Setter: Sets the progress of the ladder (can teleport someone to the ladder, or force leave it)
At least Getter1 seems reasonable to have
_grp setCombatMode 'RED';
_grp setSpeedMode 'FULL';```
would a "Strong" variant of CombatMode and SpeedMode have any effect?
@untold sky
ladder is not an object, it is the beginning and the end position within a building described in config
could ladders be obtained with ```sqf
getBuildingLaddersInfo _building; // array of [startPos, endPos]? index perhaps?
_unit moveOnLadder [_building, _index, _progress?];
Not sure if progress should return the meter from start point, or 0-1, or both
0-1 is good to have so I can try linearConversion without getting the distance
So... GM 1.5 has boltcutters. There is documentation to make them compatible with other content https://community.bistudio.com/wiki/Global_Mobilization_Boltcutter
Is it a reasonable request to ask for vanilla fences and razor wire* to support the GM boltcutter? It is BI-published DLC after all, even if it's not 1st party. Not my area of expertise but seems relatively straightforward to add this functionality?
It would bring a long missing feature to vanilla and add greatly to immersion and gameplay.
*I'm tempted to ask for compatibility with lights and utility boxes too but don't want to push my luck ๐
should applying setDamage 1 on already non alive vehicles still have any impact (let alone performance)?
test: spawn many vehicles, destroy them all at once, notice fps dump, apply again on destroyed vehicles - notice fps dump again
there you go: https://feedback.bistudio.com/T171981
hope you know what you are getting yourself into with that tho ๐
in short:
- dead body removal for non player (lead?) groups bugged - only deleted one every 30s (probably the corpseRemovalMinTime value). didnt test if per group or all AI
- addToRemainsCollector doesnt work for destroyed vehicles
- at times destroyed vehicles get deleted within minPlayerDistance (and below wreckRemovalMaxTime - but hard to pinpoint)
- at times destroyed vehicles get deleted despite removeFromRemainsCollector applied (hard to pinpoint)
addToRemainsCollector/removeFromRemainsCollector are weird as they accept arrays. This can be handy, but it seems its not reliable if you apply it frequently for single entities.
https://feedback.bistudio.com/p/dad1sadsasd/
Effortless spammer
there might be more issues, but its not easy to really tell whats going on
ie at times dead bodies dont get removed at all - not even with the delay and one by one
it seems while unconscious there is an attenuation effect (UnconsciousStateEffect), but say3d (and potentially other sqf commands) are not affected.
aka you hear distant sounds and such at full volume. is the audio engine off limits or worth the post a repro?
have you tried it on dev? I have made some fixes, there was a ticket about it not working for dead, what version have you tested on?
perf/prof branch
with sqf commands on dead i didnt play with due to your fix
hm last prof (v4) is fairly old
Exe timestamp: 2023/04/18 13:19:44
Version: 2.12.150512
can double check with dev. should be more recent
Dev will be only be half a day newer
Dev will have several more commits though, as Prof only has handpicked changes
Speaking of ladders, what are these new parameters in ladders of an objects?
ladders[] = {{"Ladder_1_start","Ladder_1_end",2.5,"Ladder_1_action"}};
````2.5` and `"Ladder_1_action"`?
Looks like these were added around 1.80, can't seem to find anything else related to Ladder_1_action in the config ๐ค
Checked entire config, all ladders have same 2.5 and this "action" names.
Thought maybe 2.5 was custom priority for action but by checking in inGameUISetEventHandler its not. Good assumption about 2.5 being distance, makes sense (probably can test with an addon)
Or that, maybe
Are they documented somewhere after all? Guess not so that's the question though
Since it's weekend it is not good to ping Dedmen to confirm...
(Wrote the message about old format and then noticed new format is described there
)
Whut
https://community.bistudio.com/wiki/CfgVehicles_Config_Reference#ladders
// { Starting point (memory LOD), Ending point (memory LOD), radius (in meters), Named Selection (geometry LOD) }
Ah, so... basically the geometry is the action area or whatsoever?
Perhaps its a Geo LOD shape where action is visible? So you can't use it from outside or nearby rooms and such
Yeah, thought so too
Checked with selectionPosition ["Ladder_1_action", "Geometry", "BoundingBox"]
Ah nice
Speaking of lines, wish 3DEN's thick lines were available to us through a scripting command too.
Even if they're only 2D
Thicc line is one of my wish since Alpha
that and dat blue tube too
rawr
I am more running after the dream team to document what they have done actually ๐
still same
Build: Development
Version: 2.13.150515
just because of convenience for testing and SP+hosted+DS compatibility you will ant to check it @solid marten ๐
doing an explicit addToRemainsCollector on the dead bodies didnt help either
[BUG] hideObject[Global] at times keeps collision and pathfinding for AI - even locally (SP/hosted)
https://feedback.bistudio.com/T169443
we figured this is probably due PX simulation keep running when a player is close
is there a way to affect PX simulation of terrain objects?
like if you use hideObject[Global] with a player nearby, the PX simulation will remain active and continue to block AI [remote only?]
however if no player is close enough, either PX simulation isnt active at all or simplified, and AI can pass through objects hidden
if hideObjetGlobal cannot be fixed, would a new sqf command possible to toggle/disable/refresh the PX state/simulation?
While we are at it...polyline marker thickness too๐
Make a ticket
it will have to be setMarkerSize tweak, polyline takes 2 sizes
Can we get new parameters or commands for markers from RscMapControl?
importance
coefMin
coefMax
My goal is
- to create a marker on a mission that will not increase in proportion to the 2d map zoom
- the marker should disappear at a certain zoom (just like it happens by auto with markers from RscMapControl on a 2d map)
Sure. No problem
ugly
Could look good if used right
Probably because it's just rectangles. I can achieve the same effect by using area markers and place them along the path =/
Ladder_1_action is a reference to the named selection in the geo lod. The added action will be "placed" there.
Whacky visual issue in vehicle: after the group recognizes the KIA, the NVG and backpack will appear out of nowhere
I want a way to show NVG and Backpacks in vehicle/FFV BTW...
Oh, just found a floating artifact in a Prowler ๐
Already possible for nvgs in passenger, pilot and copilot. remind me tomorrow and I can get what does it - haven't figured out ffv yet though
AttachTo ๐
Oh yeah true point, but AFAIK FFV doesn't have a way to both
Yeah I'm yet to find a way to do either in ffv or backpacks in any seats - don't know if it's something they're able to resolve though
showNVGDriver=1;
showNVGCommander=1;
showNVGGunner=1;
showNVGCargo[]={1};```
not managed to get ffv to work yet but thats all the valid entries as far as i could find
no option for backpacks either which would be very nice
I just learned that Feedback Tracker had a blog post feature where every user could create their own blog ๐ฟ
Well not anymore ...
I wanted to have that for a while, but.. Usually you give these things a comparison function that compares A against B and sorts based on that.
Which would be somewhat inefficient for SQF. Such is creating a new array of values and using that to sort (Like Sa-Matra posted below)
With short-circuiting the cost of having a comparison thing is maybe not that high..
But tbh even Enforce Script refused to do it because of "performance", so if even in ultra fast Enforce Script its too slow to be tolerated, maybe it is too slow for us too? XD
(Nah FT ticket please)
How can I reproduce that crash?
Yes, fixed next prof ๐ข
Nvm I don't want to repro
Or do I?
;D
Pretty sure that would be GM teams decision
And that shape is already crap. Because you're supposed to look at that small space past the edge to hit the ladder :/ Should be bit taller
- Load the game with ADT
- Open config viewer
- Ctrl+F
- Uncheck "Start from current class"
- Check "serach in values/properties"
- Search for something hard to find / not present at all eg.
asdfz
Hashmap goes brrr, ram usage goes
game goes 
@uncut briar I've reported that to @sinful kettle a while ago. Not sure how he handles that.
It's due to caching in hashmap
he knows where's the issue, I assue dedmen might be interested why game dies when there's free mem.
it ded
I still have around 10gb free mem.
I wonder how it will behave with Mimalloc (edit: exactly the same)
Well, its workable but indeed could be taller.
There are a few ladders that are kinda bad like that. The big factory building from Livonia has one that's a real stinker.
Land_Mine_01_warehouse_F, and I suspect its Altian sibling Land_Factory_Main_F of similar crimes
ticketed it (https://feedback.bistudio.com/T172048)
showing backpacks in vehicles would be great - stuff like transport/paradrop planes have been needing something like that for years
Bumping my older ticket, having a need for a command to return default model textures and materials because lots of objects don't have those listed in hiddenSelectionsTextures and hiddenSelectionsMaterials: https://feedback.bistudio.com/T171318
Having to manually go through each vehicle and try to figure out its default textures and materials so I can revert them back when needed, when its all in the engine and just lacking a command to get
VBS also had special "#reset" texture to remove scripted one: https://web.archive.org/web/20140310012627/http://resources.bisimulations.com/wiki/setObjectTexture could be useful though I'd make it into a proper scripting command, something like: ENTITY removeObjectTexture INDEX
You mean overriding vanilla configs?
it would be cool feature in 3den if the markers could be toggled renderable in the 3D view. I know marker coords are 2D but it could still render something above the terrain
I made a ticket about extending the try-catch feature, so that it wont be forgotten ๐ https://feedback.bistudio.com/T172079
@daring wagon Sounds like an idea for Eden Enhanced 
3D Map markers might very hard since there're some arrows and they have to look at one direction
@solid marten is the "mapFactor" value in getAudioOptionVolumes a modifier of the "effects", or is it just a separate volume slider?
getAudioOptionVolumes params ['_effects','','','','','_mapFactor'];
so the volume in map is just "_mapFactor" or is it "_effects * _mapFactor"
Just a thought, a CfgPatches param to cancel load the config when a requiredAddons is missing. __has_include actually does but is bulky and slow
@untold sky would know more about map factor
would this be good idea, pushing back array elements if condition is metsqf _newArray = [1,2,3] applyConditional { if(_x == 2) then { nil } else { _x }; }; //result: _newArray = [1,3]
the new command would push everything to new array unless the value is nil
select {code} (at least until you transform _x in some way)?
I happen to need apply so I can do _array apply { _x # 5 };
#codeGolfContinues _array select {!isNull _x#2} apply {_x#5};, at least if the code in filtering and transforming parts doesn't have much in common :B
its just that , that is two commands instead of one
might be faster with two than having if then and one command
oh well if that's the case...
Anybody would find use for something like
ENTITY setFuelUsageCoef NUMBER command to have engine make vehicles use less or more fuel?
It can be done through script right now but the issue is that it requires per frame handling, as well as accounting for HitFuel damage, would be much more convenient if this was engine feature.
Talking about normal engine consumption rate specifically, shouldn't affect fuel leaking
Made a ticket: https://feedback.bistudio.com/T172144
some vehicle sims dont even have that in the config lol
Do you guys know how far GPS zooms out when you run and turn really quickly, as this turning is considered huge speed by the game.
It might be a fun little bug but it might have bad consequences in multiplayer and position interpolation.
One example of how it messes up remote players position, that player is just turning and moving a little bit
This is also very noticable when players run up stairs inside cargo towers, they appear flying through the walls for other players after such turns
I can collect a lot more visual evidence of this being an issue in MP
So I wonder, can this be fixed somehow?
Did:
onEachFrame {diag_log [vectorMagnitude velocity player, speed player]}
```and checked the RPT, you get numbers as high as
[39.5771,-79.1467]
No ticket for this yet (probably is in some form), but thought this would be the best place to discuss
These are numbers of a car going like 80km/h in game
@stone tree we have the message you tried to post about accounts, sorry about the blocking and thanks for the reports!
Watching players on a real server, their speed and vectorMagnitude spike up rather often
lol that interpolation shouldn't come to a surprise to me
I always assumed it was hiccups in peoples connection not them whipping their mouse around etc
explains why people moving up staircases together used to be a fairly lethal endeavour
I'm mostly guessing but player speed increasing unreasonbly when running and whipping the mouse = fact. Remote players phasing through walls and stairs when running and turning = also a fact. So I'm sensing a connection here, maybe if your unreasonably high speed state gets sent to server, everyone gets it and it messes up the interpolation
some tracked vehicles move faster too when you "wiggle" them because their speed is boosted during turns
some time ago Dwarden suggested that high ping players shouldnt be allowed on the server
Whip your mouse too fast = get kicked
yes
so instead of limiting FPS servers should be able to limit DPI
Workthought: a command to disable an engine-driven animation or entire of them. Disabled animation would be playable by animateSource.
class AnimationSources
{
class wheel
{
source = "::wheel"; // Overriding the existing wheel controller.
};
};```Similar to this solution but in command.
Usage: to record/play animations. UnitCapture/Play.
Mmmmaybe this would make a possibility to make aimbots for vehicles ๐ค which Bohemians don't want to
You already can just teleport the projectile or change its velocity to hit anything you want on client side
I know this is kind of a broken logic but they didn't made a command to force some unit aim somewhere
If that was the reason, then it sounds like an excuse
The aimbot reasoning always made little sense to me, if somebody can execute arbitrary code all bets are off anyway.
I TBH such kind of โbrokenโ logic is also there on accessories' hiddenSelections, Ded said it is bad because make the performance/draw calls worse
I never thought there is a computer that both can run Arma 3 and suffer from this feature
I'd think its just adding onto them.
But they probably also would need new "cut" models then
neat idea, ticket please, sounds fun
And I need an example of how to render it, but I guess just the icon floating in the air is fine
Hello, I have a few problems with animations, can anyone help?
Within the animation, the door of a house needs to be opened. How can I make it open within the animation?
try catch always runs while the script engine is in a "all is fine" state.
Making it handle/work correctly while something is broken and all guarantees are gone and all bets are off, no.
If we would know which script errors would be "safe" to continue after, that may work, but we don't
ic, thx ded
multiplier on soundvolume, that may be the same as effects not sure
i was thinking of texture being aligned to the terrain or to object like houses
I don't think our decades old stuff would support that easily enough to be worth the time
whatever is beneath
stuff = (stuff apply {...}) - [nil]
good enough for me
It already has it.
That is Error, all errors have context (if any is available)
Its trying to read a script value as a incorrect type. I would expect that to happen during a script, and scripts already print the calltrace as context
Fair point
there you go: https://feedback.bistudio.com/T172248
If area markers could show their bounds, trigger-style, when selected that would be amazingly convenient
yes needs support for both texture and area markers
Will provide a rpt from perf branch with debug, ok?
Mh could be config script maybe, but.. do.. mh. I think in Diag configs should also have context. Maybe not configured right
Can't really track it down without knowing what it is (so me reproing) and then seeing why there is no context on that path
It happens usually quite quickly (after 1-2min since mission start) - requires 15 GB download tho
Another trash accounts:
https://feedback.bistudio.com/p/weekbuilding/
https://feedback.bistudio.com/p/melbournemasterbuilding/
https://feedback.bistudio.com/p/mccracken/
https://feedback.bistudio.com/p/kwbuildingdesign/
https://feedback.bistudio.com/p/ConstructionManagementSoftwareBUILDFitters/
https://feedback.bistudio.com/p/alphabold/
https://feedback.bistudio.com/p/uniquebuilds/
https://feedback.bistudio.com/p/buildyourlogos/
https://feedback.bistudio.com/p/builds/
Find them when trying to search "Building" word
Can delete all old users who didn't create any ticket and didn't take any action?
Fewer records in the database = smaller size
Trash ticket - https://feedback.bistudio.com/T172272
Lets finally fix flares after 10 years, they're completely useless! https://feedback.bistudio.com/T76756
Even lighting fix around Apex didn't fix them
Just increase the numbers for light sources, its not that hard
Arma 3 Alpha
Current (and for like 10 years since beta or so)
The GM flares are really good. If they could find out what settings those use and stick 'em on vanilla, that would be awesome
You stored those screenshots in a drawer for 10 years, admit it
My favourite is when you fire enough flares together (9?) and street lamps go out ๐
Also when you throw enough IR strobes and world lighting starts flickering inverse to the state of the IR grenade
I still have it installed 
We already did. And how do you know how hard it is???
Its not number of light sources, its the intensity of the flare
Meant config numbers, intensity. Its not hard, its just a single value, I've looked into this several times over the years and fixing it is really easy.
number of light sources is not a config entry. Intensity is not number of sources
yes making brighter flares is really easy, so easy that we had a ticket open for that since march last year, or atleast the ticket that refers to it, I think there was another even older one
timeToLive = 45; brightness = 125; intensity = 1000000; affectedByWind = false; flareAirFriction = 0;
this is what we use
Number for light sources, as flare projectile being the source
Is there an engine issue that started causing it and its not just a matter of higher number?
The flares in game are signal flares. They shouldn't be so bright. You want us to add illumination flares.
Which I think is tasked up somewhere
no, put higher intensity, there are many mods that do it
I run a gruppe adler mod that does it I think
๐ค
These shots always were illuminating flares though, including up to some point in A3
Its Armaverse though
in 4 mission apex protocol mission i guess
there are custom settings
_light setLightBrightness 2;
_light setLightColor _colorArray;
_light setLightAmbient _colorArray;
_light setLightAttenuation [200, 10, 0.0001, 0.05];
_light setLightDayLight false;
_light setLightUseFlare false;
and intensity was set 1500+(random 300) unlike vanilla's 1000
i figured the reason for the change was because it made the lighting look like crap with it bleeding through walls etc
The starter gun flares being signals I get. The 40mm flares being signals I disagree with but can buy. The artillery flares.....?
it probably affected an East Wind mission so they reduced the intensity for that mission and called it signal
probably
would be cool if https://community.bistudio.com/wiki/difficultyOption had a way to return array of all
like difficultyOption "" is [['name',value],['name',value], ...]
Make a ticket, it is quite useful, difficultyOption [] for consistency
https://feedback.bistudio.com/T126282
Wish this was fixed
My mouse moves on it's own while dialogs or for example the escape menu are open.
Looks like there is a massive delay for the mouse movement repeating the last movement.
If i didn't move the mouse for a while it stays still.
- No other input devices plugged in, no mods loaded.
- Tried with different branches.
- Only appears to happen ingame (Editor doesn't has the issue).
- No problems in any other games or apps.
Repro:
- Place unit in editor, control/play it.
- Move your mouse around for a while and then hit ESC and stop moving the mouse.
- Open and close ESC menu and watch your mouse moving on it's own.
Could you try a different mouse and report back?

