#arma3_scripting

1 messages · Page 222 of 1

shy cargo
#

I apologize in advance if there are any errors in the text; I'm using a translator.

So, here's the situation: I was trying to implement some kind of logistics system on the server. I found the PGM Logistic System mod, which is almost perfect for my purposes. However, I'm having trouble loading crates into the vehicle inventory via ACE. It's not the vanilla Armor vehicle inventory, but something like cargo. When loading a crate, it becomes invisible after about 5 seconds, stating that it's an unloadable item. A script error also appears on the screen. I still haven't figured out what to do about it. I've scoured the internet, all the forums, and even asked the GPT chat. My only guess is that the vehicle spawn system is breaking the vehicle inventory. I've described it as best I can, and attached a photo of the error, maybe it'll help. I can also record a video. The problem also occurs when loading vanilla crates, for example. I tried deleting PGM Logistic System, but the same thing remains. Outside of Warlord mode, everything works fine. It loads and fits perfectly in cargo. I would be grateful for any help.

split ruin
#

@shy cargo ACE has its own cargo system, why using onther on top of it ? 😵‍💫

shy cargo
split ruin
short anchor
#

What's the long answer? 😂

granite sky
#

Oh, should be close enough for the vast majority of purposes.

#

But the timing's different and they behave differently in bugged cases like destroying a building for the second time.

shy cargo
granite sky
#

The problem also occurs when loading vanilla crates, for example. I tried deleting PGM Logistic System, but the same thing remains. Outside of Warlord mode, everything works fine. It loads and fits perfectly in cargo.

#

You're saying that PGM is irrelevant and ACE + Warlords doesn't work either?

split ruin
#

Warlords works only with vanilla on 100%, adding mods will brake things
in arma the mission must support the mods u use

granite sky
#

You'd have to fix Warlords then :P

#

ACE logistics works by attaching the cargo ~200m under the vehicle and disabling sim on it. This can be problematic.

shy cargo
granite sky
#

It's potentially a hard problem anyway, even if you were good at Arma scripting.

shy cargo
granite sky
#

We've been adding bits of ACE support to Antistasi for years and it's still not all there yet.

shy cargo
hushed turtle
short anchor
granite sky
#

Although ACE might disable ACE interact on sim-disabled vehicles itself. I forget.

hushed turtle
#

You can open cargo with disabled simulation. You just won't be able to take or store any items

granite sky
#

Just tested, seems to work fine?

#

Can stick chem lights on it too.

#

Get in doesn't show, which makes sense.

shy cargo
granite sky
#

You mean the warlords mission?

shy cargo
granite sky
#

I don't remember how to play Warlords. I called in a vehicle to test and I have no idea where it went.

shy cargo
#

It is displayed on the map as a translucent mark, like this

granite sky
#

ah never mind, needed to tell it where to drop apparently.

#

Warlords SC16 mission + ACE seems fine to me.

#

Loaded a basic weapons box into a Polaris.

knotty mantle
#

Not sure if it fits this channel, sorry if not. Is there an up-to-date syntax and Autocomplete pack for .sqf for Notepad++? The only one i found is REALLY old.

austere granite
#

There's a zone restriction module in A3 which you could use

mortal folio
tender fossil
#

Slightly offtopic but didn't Notepad++ get infected with malware by supply chain attack recently?

next gust
#

Not sure where to ask this:
a) can i distribute a Mission within a mod?
b) could this Mission be set as the default Mission of a dedicated Server?

knotty mantle
#

Thanks you two, will stay on notepad and hop on over to the dev branch to export

lone glade
#

the zone restriction module is indeed pretty effective

sly cape
next gust
granite sky
#

For a) you just add an entry in CfgMissions

#

And then the classname of this entry is what you use as the template name in Missions in the server config.

#

Same way vanilla missions work.

knotty mantle
sly cape
sly cape
knotty mantle
#

Another question: Is there a possibility to make the "killed" EH survive locality changes? I want to do stuff once a vehicle gets destroyed, but i know my players and they are going to want so sit in those vehicles, and i dont want to lock them all. Is there a different way, to make the EH work? Otherwise i´ll just check the status with "alive" as i dont need, an immediate reaction

knotty mantle
# sly cape

Different Language Pack, but the others are installed. Thanks 🙂

hallow mortar
knotty mantle
#

oooh. lol. i troubleshooted and remoteExec`d it on the server. Didn´t think about just giving it to every client.

#

Thank you very much

mortal folio
# sly cape

Hemtt is more up to date and has more features

#

I recall the one on top there ypu posted doesnt have the newer commands registered

short anchor
#

It's missing quite a lot of commands from the past several years

tender fossil
#

I wouldn't use my fork of SQFLint in the screenshot either anymore, I think the original and the fork are both deprecated at this point. Upvote for HEMTT from here too!

If anything, you could try Functions Library/CfgFunctions & CfgRemoteExec generator: #1302325492556369920 message.

The first versions were really bad as it was my first time both writing TypeScript and creating VS Code extension, but after numerous patches with bug fixes and slowly increasing skill it's starting to be somewhat decent now. (And if you do find bugs, I'd love to hear from them)

bronze trellis
#

i will have a look at the restriction module. i am not sure how to do it via script

#

i can set it up so it kills the user if they go outside the zone but i would like to physically stop them

scenic bridge
#

If I blow up an Land_i_Shed_Ind_F (shed) with a satchel charge, my rifleman gets 11% spine2 and spine3 damage even from >75 m away. Looking up the satchel charge, it has an indirect hit range of 5m, so shouldn't produce any damage beyond 20m. So I guess it's the demolition of the shed that's hurting me. Where do I see the damage and radius of that explosion?

granite sky
#

Not sure where you got 20m max from. 10-11% damage if unarmoured is about right for 75m I think?

scenic bridge
#

"SatchelCharge_Remote_Ammo" has

indirectHitRange = 5

and the damage should drop to zero at 4x that.

#

I can double check by exploding a satchel not next to anything.. doing that now

#

Yeah no effect from a satchel at that range.

granite sky
#

Oh, it's supposed to be capped at 4x according to the damage description page. Ok.

queen cargo
#

... hint setPos @bronze trellis

granite sky
#

I'd guess it's calculated from the bounding box size. That shed is a big bastard.

scenic bridge
#

The shed has secondaryExplosion = -1 which it inherits from the "All" class. According to https://community.bistudio.com/wiki/Config_Properties_Megalist this means

When negative number is set, "explosion power is calculated from fuel and ammo cargo, multiplied by absolute secondaryExplosion value".

I wouldn't imagine a shed would hold any fuel or ammo.

#

Maybe the radius of the secondary explosion is proportional to the size of the building destroyed. Destroying a small wooden shed from 75m doesn't hurt the rifleman.

silent cargo
#

Its even worse with mods that have "fragment" added to explosions.

#

And some buildings will kill/damage you when they collapse while some others do nothing.

granite sky
#

hmm, there is also the DestructionEffects class. Houses typically have one with "damageAround" simulation.

#

Base intensity is still likely based on bounding box size or similar though. There is an intensity value of 1 which is probably a multiplier of that.

#

If you wanted to reduce it then I'd start there. If you want to calculate it then I suspect that needs reverse engineering.

bronze trellis
#

@queen cargo hmm ok

scenic bridge
#

Yes, I believe you may be onto it. The shed has a damageAroundHouse destruction effect, and there's a hit of 11 and a radius intensity (of 1.0) mentioned in there.

shut flower
#

Hey guys, currently I have the typical seagull problem. Players are spawning as a seagull but this only applies to civilian slots. I didn't found anything useful in the net regarding the seagull problem. I tried a map revert but this didn't helped.

hallow mortar
#

Yes, destruction effects cause damage and it's connected to the size of the object

#

Those big comm towers will fuck you up

stark fjord
#

In all fairness if a tin shack collapsed on you, versus radio tower, irl you would feel the difference... or rather, not feel it

shy cargo
shy cargo
bronze trellis
#

i might be missing something but i dont see the Zone Restriction Module in the editor at all

errant jasper
#

My god:

_vehiclesBelowGround = vehicles select {_pos = getPosATL _x; _depth = _pos # 2; _depth < -0.7 || (_depth < -0.55 && surfaceIsWater _pos)};

And just deletes them.

#

I don't play warlords but why is it checking if the vehicles are suddenly below ground?

#

Besides the rare physics mess-up that is not something that happens by itself normally.

#

At least the rabbits get their chance to grab a weapon:

_holders = ((allMissionObjects "WeaponHolderSimulated") + (allMissionObjects "WeaponHolder")) select {count (_x nearObjects ["Man", 10]) == 0};
short anchor
#

You might find a complimenting snippet which places vehicles under ground 😂

pallid palm
#

i just do as i would in real life: about Explosions: i get the hell Away as far as i can: so i don't get K.I.A 🙂

#

and sometime's it seems like there's a directional path to Explosions: like if there's a wall to one side of the bomb: the Explosions will be out away from the wall: but it may just seem like that: i don't think that may be real in game

scenic bridge
modern plank
#

Any idea why bots on server miss their helmets while no issue during local tests? There is no script to set the loadouts, there are defined in the SQM directly.

hallow mortar
#

If the helmets are from a mod, is that mod loaded on the server?
Are the base units from a mod? Some mods (e.g. 3CB Factions) have their own loadout scripts which can conflict with Editor loadouts.

modern plank
#

Yep. Some units have the helmets, some others don't (the bots, all human are OK)

#

I disable simulation on these bots, dunno if it can be an issue.

hallow mortar
#

That didn't actually answer either of the questions :U

Disabling simulation is definitely a prime candidate for causing problems. If those other two potential issues are cleared, that's the first thing I'd try changing.

modern plank
#

Mod is Foxhound Siberian Guards and the mod is on the server for sure ^^

hard osprey
#

So by default the placable marker flags in ACE 3 are red, blue and green, anything to put in the flags init to give it a NATO or CSAT texture instead

tulip ridge
hallow mortar
#

I don't think it's config if they're trying to do something in the object's init

tulip ridge
#

Oh I skipped over the init bit
Been sick lately

hard osprey
hallow mortar
#

It depends on how the ACE flags are set up

tulip ridge
#

Just uses setFlagTexture like normal flags

hallow mortar
#

If you're placing marker flags in the Editor, there's already a texture field at the bottom of their attributes, so you don't need to use the init field. Just put the texture path in there.

hallow mortar
sly cape
hallow mortar
#

If you're not a scammer, I'd recommend a) turning off caps lock and b) reading what Joe actually said

winter rose
#

@tender fractal quit allcaps indeed.

winter rose
fair drum
#

"Urgently" - wants to wait for DM

winter rose
#

best ones being « hi, it's urgent – DM me please » with no further details

short anchor
#

It's urgent - how can I set a vehicle position?

fair drum
#

yeah its always something like that. or "I'm mid OP and something messed up can you fix the whole mission"

short anchor
#

The gem in the X-Plane server is:

Guys it's urgent, really urgent! How do I land?

Always eager to skip the whole part where one learns things first😂

winter rose
#

"everybody can land, walking away is the hard part!"

hallow mortar
# hard osprey

Please confirm whether you're using marker flags (literally says "marker" in the name) or the other kind of ACE flag (has a physically simulated moving flag)

hard osprey
hallow mortar
#

Both kinds can be picked up using ACE interactions. That's why I'm asking about whether it says "marker" in the name.

hard osprey
#

Yes it has

#

The word marker

hallow mortar
#

Then you may have some other mod interfering.
The Editor-placeable ACE Marker Flag objects should have another attributes section at the bottom, called "Object-Specific", containing a texture path field.

#

I notice your object also has an "Equipment Storage" section, which is unusual - this type of object has no inventory by default, and shouldn't have that section.

hard osprey
#

I stopped the game unloaded some mods, and well

#

@hallow mortar So for any flag CSAT or NATO etc

hallow mortar
#

If those mods are essential, you should still be able to use the init field to do setObjectTexture on the flag

#

Keep in mind what I said earlier: textures set this way will not persist when the flag is picked up. ACE handles "picking up" by deleting that specific object. If you want a new unique flag type, which can be stored as a distinct type to other flags, you'll need to make a mod that adds it as a new class.

granite sky
errant jasper
#

How long did you wait? The delete underground vehicle loops triggers every 30s unless I misremember.

granite sky
#

Makes sense. Probably not 30 seconds.

sharp torrent
#

Is this legit?
Note: RydxHQ_SmokeMuzzles is an array, that has it's total count in _countsmokes

    [{
            _i = _this select 7;
            _countsmokes = _this select 8;
            if (_i > _countsmokes) exitwith {};
            [] call _RYD_SMOKE_CODE;
            },[_unit,_mags,_magsR,_muzzles,_nE,_Scount,_gp,_i+1,_countsmokes],_i] call CBA_fnc_execAfterNFrames;} forEach RydxHQ_SmokeMuzzles;
granite sky
#

Out of context it's just a giant pile of undefined variables.

#

Even out of context, putting an exitWith there doesn't make any sense.

sharp torrent
#

The only needed variables are _i (starts at 0) and _countsmokes that can be 20.

#

Depending on the array

#

RydxHQ_SmokeMuzzles is the array that was counted. Now it needs to pass smoke grenade one., by one.

#

_i is also used as the execute in this frame

stark fjord
#

Did you just chatgpt this?

sharp torrent
#

And functions and ace scheduler practices

granite sky
sharp torrent
#

I went though like 30 iterations to make something out of the old scheduled code...

#

Leftover from different approach

#

_Countsmokes is also out then. Unnecessary

#

Thanks for pointing that

#

well this ```{
[{
_i = _this select 7;
[] call _RYD_SMOKE_CODE;
},[_unit,_mags,_magsR,_muzzles,_nE,_Scount,_gp,_i+1],_i] call CBA_fnc_execAfterNFrames;} forEach RydxHQ_SmokeMuzzles;
};

Call _RYD_SMOKE_CODE; for each incoming smoke grenade, without performing two calls in the same frame?
#

Yeah I know that i forgot to put variables in call smoke_code

If I am not wrong then this: 
[_x,_unit,_mags,_magsR,_muzzles,_nE,_Scount,_gp] call _RYD_SMOKE_CODE;
radiant lark
#

Hey there, I thought about making a funny little emblem creator like the one on black ops 2, I think it'll be funny.
I will make them setup the shapes on a UI control and then render UI to texture, the deal is:

  • Will the UI control be able to hold many images / shapes?
  • Any better way than render UI to texture?

Question is half scripting half UI, idk where to post.

#

This was really cool back in the day, ofc emblems will be moderated

old owl
#

Is ctrlSetURL broken or are there limitations to it I am not seeing? I am trying to set a URL to it that I allow in allowedHTMLLoadURIs[] and am having no dice.

Allowed URLs:

    allowedHTMLLoadURIs[] = {
        "*.tiktok.com/*",
        "*.discord.gg/*"
    };

Button class:

class CustomDiscord : My_RscButton {
    idc = 123;
    text = "Discord";
    url = "";

    x = (safeZoneX + safeZoneW) - 0.10;
    y = 0.85;
    w = 0.12;
    h = 0.052;
};

Way I am adding it to the button:

_validCtrl ctrlSetURL (format ["https://discord.gg/%1", _discordID]);

I've also verified that the link appears properly via systemChat but when I hover over the button there is no tooltip and does not open a URL.

#

Also should state that bizarrely enough, opening button links doesn't work for me either. I don't know how to reproduce why they don't but did test all of the above with another user who is unaffected. I am able to see the tooltips on the buttons that are supposed to work though FWIW.

#

-# Last note but the IDC I used was just a placeholder and not the IDC of IDD_MISSION_SAVE which was probably a poorly chosen placeholder. I am under an NDA so I tend to adjust my examples just to be mindful of that.

hallow mortar
#

You're allowlisting *.discord.gg but your URL does not have a . before discord.gg

old owl
#

Oh my god

#

Hahahaha

#

No way

#

Will give it a whirl and will report back results. If that's it I definitely owe you

#

LMAO

#

Okay yeah that appears to have worked. Button URLs still don't work for me but I see the tooltip now that other clients see when it typically "works" so should be solid.

#

@hallow mortar cheers ty :)

silent cargo
#

I went through the same circle you are a few months back, to do the same thing you are. Doesnt work. A good reference is the Ukrainian Factions Project mod. It had a button on the homepage that used to link to their discord, which no longer works as well.

#

You can however just type out your invite link and put it there. Not as intuitive as a link but will get the job done

#

asked about it a while back got no answer

#

But there was a discussion about it somewhere I just dont remember

old owl
old owl
silent cargo
#

Interesting yeah I was too. It used to work fine for me as well then suddenly stopped

old owl
#

Haha strange, me too. It was probably well over a year ago it last worked for me, but same.

silent cargo
#

But maybe my issue is related links that are placed on the arma homepage

old owl
silent cargo
#

Also i Just hopped on my server to see if it works and it doesnt

#

so its not just you, or just links on the main arma homepage

#

Maybe dedman will see this and confirm. He was discussing something about malicious links a while back I just dont remember the exact context atm

silent cargo
old owl
#

Very bizarre, was a good idea though

hallow mortar
#

It looks like there used to be a bug where URLs were allowed even if you didn't put them in allowedHTMLLoadURIs. If a mod was relying on that, and did not correctly set up its allowedHTMLLoadURIs, then that will no longer work. (#dev_rc_branch message)

meager granite
#

Unlike squad.xml stuff it won't vanish as soon as player leaves so you can say retain custom emblems on vehicles/buildings/whatevers even when they leave

#

Wanted to have something like this for a good while now

radiant lark
#

Yeah bro the emblems were hilarious

#

Ty for the info

modern plank
#

Thank you @broken forge

radiant lark
#

Is there a limit to how much data can be stored on profilenamespace?

cosmic lichen
#

No

#

But please don't meowsweats

errant jasper
#

And stick to missionProfileNamespace if suitable.

atomic niche
short anchor
#

Are you telling me that I shouldn't shift the contents of my NAS storage to profileNamespace?

winter rose
#

eg-zactly

radiant lark
#

😂 gotcha guys

#

I guess it's better to host it on mission description.ext or smth

#

It's linked to the emblem system, don't want to send emblems over the network everytime, so, I am looking for a way of caching them

errant jasper
#

What you mean? The textures are distributed by addon or mission right so they don't need to be stored in namespaces?
If you are talking about something like a clan insignia for clan missions or like that, then storing a simple profileNamespace setVariable ["CLAN_PreferredInsignia", "path to insignia"] is not a problem.

radiant lark
hallow mortar
#

They're planning on using UI2T to compose multiple images or control shapes into a dynamically rendered texture. The saved data will not be a single image, but the positioning data needed to recreate it.

radiant lark
#

Yessirr

errant jasper
#

Can you quantify the amount of data? We talking at most few kilobytes? Because seems like each player should only store their own "emblem composition" and not everyone elses. Then when joining a mission each player (machine) can send them.

hallow mortar
#

If you wanted to get really spicy, you could make a more advanced emblem creator as an HTML/JS page, access it using CT_WEBBROWSER, encode the resulting image as Base64, render that using CT_WEBBROWSER, then UI2T that.
(Do not ask me specifically how to do these things, I just know the mechanisms exist for it to be possible)

radiant lark
radiant lark
hallow mortar
errant jasper
#

Unless I misunderstand the whole exchange can be something like this:

// Run locally for joining player
private _activeEmblemParams = profileNameSpace getVariable ["McIvan_ActiveEmblem", MCIVAN_EMBLEM_PLACEHOLDER];
private _jipKey = format ["McIvan_Emblem_JIP_%1", getPlayerUid];
[player, _activeEmblemParams] remoteExecCall ["McIvan_SetEmblem", 0, _jipKey];
radiant lark
radiant lark
#

The deal is, of course, that's done over the network. Idk if I should be leaving it over the network at all times or if I should cache it on each client to save me some traffic

#

Even appending it into mission for next restart works, then add the option so players download mission from http (not too much worried about traffic on there)

errant jasper
#

That's why if the sizes are low, 2 digit kilobytes "parameters", then just send them each time. You don't have to worry about cache keys and deleting old entries. And if people can change them, this is your worst case anyway.

radiant lark
#

Yeah I think that data is nothing compared to all the packets being sent everytime for player positioning and such

errant jasper
#

More worrying is "pixel-level" fidelity... 512x512 is roughly 1 megabyte... Imagine someone now having (un)"fortunate" internet, and joining a 100 player server, now need to receive 100 MB over 15 mbits. That might be "agreeable" for internal clan use, so depends on the "target audience".

radiant lark
#

I'll leave it to vector, people can get creative that way too

#

Gotta spark some creativity on people too man

young mist
#

Are there waypoint scripts that can force Air vehicles to adhere to specific altitudes point by point?

#

Does this also apply to helicopters?

#

So Jet2 just means variable name?

#

Ah

#

Thanks does this go in the activation tab of the waypoint?

#

Okie dokes

grave belfry
#

Hey guys. Does anybody know how to read out ranges of anti-air vehicles/radars? Their sensor-ranges, to be specific?

atomic niche
grave belfry
young mist
#

Is there a script to override the custom head appearance? I want the player character to have a particular face but the custom head keeps being used instead of the one I assign in the Identity tab

tulip ridge
#

I'd imagine setFace would

young mist
#

Could you give me an example of how to use that?

tulip ridge
#

_unit setFace "faceClass"
You can look at the wiki too

native hemlock
#

@shut flower Life mod? Some people seem to think you are spawned as a seagull when there are >144 groups. You can try and make sure that all NPCs are in a master group

shut flower
#

Good point. Don't think that we have that many groups. I will try this out. Thanks a lot!

young mist
#

Thank you both. Got it working

native hemlock
#

When it's happening you could always run hint str count allGroups in debug console to see if that theory is right

indigo snow
#

144 groups per side

pallid palm
#

hello All: can we remove water from the inside of a building

#

the building is under water of course

sly cape
pallid palm
#

oh no ok darn

#

its ok it was just a dream 🙂

radiant lark
#

You may be able using a mod that adds ponds to the game, which allows you to add water above sea level (for dams, rivers, lakes)

pallid palm
#

im a no mod kinda guy 🙂

#

sep for terrains

#

but thx

restive leaf
#

Ponds are in terrain mods 😉

#

But for your use case you would have to make your own pond models that would allow what you want

shut flower
pallid palm
#

copy that thx mate

#

i have so much other stuff to fix up the way i want: so i'll just put that on the shelf 🙂

#

that would be cool right 🙂

#

but i'll say one thing its so much fun scripting and playing Arma 3 hell yeah 🙂

native hemlock
#

You can always put a group cleanup script into a onPlayerDisconnected event handler for the server to check for empty groups and delete them

{
    if(units _x isEqualTo []) then {
        deleteGroup _x;
    };
} forEach allGroups;
#

I don't think that check would be bad performance wise either

little eagle
#

but will the group be empty on disconnect? Doubting it

#

The next client would cleanup the previous one(s)

native hemlock
#

Yeah it's not the best case scenario but it would save you from having 88 empty groups

silent cargo
#

Is it possible to script a map cycle rather than having it in server cfg

mortal folio
#

(As an example at least, can do it differently)

silent cargo
#

Interesting thanks I will look into that.

#

I actually just had an epiphany while reading your reply. I could just script the server command like I do with auto kicks etc

jade abyss
#

Empty groups = Beeing deleted

silent cargo
#

#mission filename

mortal folio
little eagle
#

Proof?

jade abyss
#

Create a group, join in, store the Group in a var, create a new group, check the var

little eagle
#

a = group player; [player] joinSilent createGroup west; b = group player
works

#

for "" from 1 to 1000 do {createGroup west}
count allGroups
-> 144

indigo snow
#

Yea no, empty group absolutely do stay around. Arma 3 has a garbagecleaner but it only removes empty groups local to server

little eagle
#

probably to be expected

#

It doesn't seem to delete groups that never had units

#

But
[player] joinSilent selectRandom allGroups
deletes them one by one

#

So it actually is the join(Silent) command that deletes groups that are empty

#

Can't be bothered to test disconnecting / hard disconnecting from servers

indigo snow
#

Haha, have the player join and leave every group on disconnecting

#

Interesting clean up way :D

little eagle
#

Well you could deleteGroup too.

#

I just don't believe there is a classical garbage collector running deleting empty groups

#

Shitty code, preferably in scheduled environment, could cause the createGroup to fail, because of the 144 limit eventually.
Especially when there already are many groups.

indigo snow
#

Still interesting, you could create a number of groups and prevent players from JIPping in

little eagle
#

Probably seagul mode

#

This could be the reason for the occasional seagul spawn actually

#

13 mins later, still no groups deleted by garbge collector - SP

pallid palm
#

Hi C 🙂

loud atlas
#

Does anyone have/know of a script that lets you put floating text above someone, like if I wanted to put “Zeus” above my head for a mission in multiplayer

harsh vine
indigo snow
#

Did you enable it? Just making sure.

loud atlas
#

ive set it to ask for player position, how would one then raise the text to be above the player rather than below the player

faint burrow
#

Increase Z value of the position.

loud atlas
#

Where would that be in this script?
addMissionEventHandler ["Draw3D", {
drawIcon3D ["", [1, 0, 0, 1], Position Player, 0, 0, 0, "Zeus", 0, 0.05, "PuristaMedium"];
}];

#

cus ive changed all the numbers and the location hasnt moved

#

im gonna guess and say i cant use "player position" on its own if i want it above the player

faint burrow
#

Replace Position Player with player modelToWorld (player selectionPosition "head").

loud atlas
#

ahh thank you

#

that seems to have put it below the head at the throat

faint burrow
loud atlas
#

where would i put the vector add in this?
addMissionEventHandler ["Draw3D", {
drawIcon3D ["", [1, 4, 0, 1], player modelToWorld (player selectionPosition "head"), 0, 0, 0, "Zeus", 0, 0.05, "PuristaMedium"];
}];

grave belfry
#
// If it's too high
player modelToWorld ((player selectionPosition "head") vectorAdd[0,0,-1]);

// If it's too low
player modelToWorld ((player selectionPosition "head") vectorAdd[0,0,1]);
#

(adjust the z-offset accordingly)

loud atlas
#

Ahh i see thanks, also can i limit the distance at which the text is visible?

faint burrow
#

Does it make sense? The text will be seen only for you.

loud atlas
#

Hmmm cus i wanted the "Zeus" text to be visible to the other players in the Mission

faint burrow
#

Then the event handler should be added on each player's machine and each unit should be checked if it's Zeus.

loud atlas
#

You mean add the script to all the slots in the Mission?

#

Not the entire script

faint burrow
loud atlas
#

So ill need to put the script in a init.sqf within the Mission folder for it to run for everyone who connects

faint burrow
#

I would prefer initPlayerLocal.sqf.

loud atlas
#

Yeah that would make more sense, now i dont put the entire script in there

#

I just need to add the event handler part right?

faint burrow
#

The rewritten event handler.

loud atlas
#

Ok i cant find what im supposed to put in the init file, is it just addMissionEventHandler?

faint burrow
#

addMissionEventHandler adds your event handler, and the handler should be rewritten to display the text above Zeus units. You also need to somehow check if a player is in Zeus mode, I proposed a possible solution a few days ago. So, you should combine all this stuff.

pallid palm
#

and he said the initPlayerLocal.sqf file 🙂

loud atlas
#

addMissionEventHandler ["Draw3D", {
drawIcon3D ["", [1, 4, 0, 1], player modelToWorld ((player selectionPosition "head") vectorAdd[0,0,1]);, 0, 0, 0, "Zeus", 0, 0.05, "PuristaMedium"];
}];

#

That would be the correct text and then id add this to the initplayerlocal.sqf

faint burrow
#

You can add this to the file, but as I wrote, only the player himself will see the text.

loud atlas
#

Yeah, ill need to get a script that makes it so other players can see the text on the server

proven charm
pallid palm
#

hay m8 @proven charm how would that look if you remove the Zeus part:

stark fjord
#

Done xD

little raptor
faint burrow
#

Does it makes sense to use modelToWorldVisual? selectionPosition already returns visual position.

winter rose
#

modelToWorld returns relative to the computed position, not the visual one
so the stutter would apply

stark fjord
little raptor
#

yeah sorry wrong reply

little raptor
loud atlas
#

so i put that into the InitPlayerLocal.sqf and threw it on the server and the players then see it above their own head not above the zeus

#

addMissionEventHandler ["Draw3D", {

{
_plr = getAssignedCuratorUnit _Zeus;

drawIcon3D ["", [1, 4, 0, 1], _plr modelToWorld ((_plr selectionPosition "head") vectorAdd [0,0,0.5]), 0, 0, 0, "Zeus", 0, 0.05, "PuristaMedium"];

} foreach allCurators;
}];

proven charm
#

why there's Zeus?

loud atlas
#

you mean the word or?

stark fjord
loud atlas
#

ahh so i shouldnt have changed that got it

stark fjord
#

Why would you?

loud atlas
#

someone told me to

#

i thought it was wrong but he thought it was right

stark fjord
#

Also i think you will need something to limit the range of that text. It will be visible across the map

loud atlas
#

yeah i was looking to see if i could find a script for that

stark fjord
#

Find, no, make, yes

loud atlas
#

yeeee

#

the issue is im very bad at scripting, never really done it, i have a couple scripts that i understand but i have no idea how to write new scripts

stark fjord
faint burrow
little eagle
#

You have to enable a group garbage collector?

regal kraken
#

Hey I have a question regarding remoteExec
I've got a hold action that targets a Function
the Function then triggers a case script that spawns a Chinook to drop supplies, spawns a smoke grenade on the landing pad, then the chinook goes and despawns.
as per, it works fine in local but not on the dedi, I've tried switching the script to a remoteExec 2 but still no progress.

this is the call for the case script

if (isServer) then {
        [] spawn {
            while {true} do {
            
            [[531, player], "scripts\AI_script.sqf"] remoteExec ["execVM", 2];
            sleep 60;
            _smoke = "SmokeShellred" createVehicle (getPos drop_supplies);
            sleep 1740;
            };
        };
    };```
#
case 5:
    {
        {
        _class = ["B_Survivor_F"];
         _group1 = [getMarkerPos "BASE_DEPLOYMENT_REINFORCEMENTS", WEST, _class] call BIS_fnc_spawnGroup;

        (units _group1) apply 
            {
                removeUniform _x;
                removeVest _x;
                removeBackpack _x;
                _x forceAddUniform selectRandom ["U_C_WorkerCoveralls"];
                _x addVest selectRandom ["rhsusf_iotv_ocp"];
                _x addheadgear selectRandom ["H_Cap_tan"];
            };
            
        private _vehiclespawn = createVehicle ["RHS_CH_47F_cargo", getMarkerPos "BASE_DEPLOYMENT_REINFORCEMENTS", [], 0, "FLY"];
        {_x moveInDriver _vehiclespawn} forEach _group1;
        [_vehiclespawn, false, 5] call BIS_fnc_VRSpawnEffect;
        _vehiclespawn setdir _locationsAIDir;
        [_vehiclespawn, 150, getMarkerPos "BASE_DEPLOYMENT_REINFORCEMENTS", "ATL"] call BIS_fnc_setHeight;
        _cargo = "B_Slingload_01_Cargo_F" createVehicle getMarkerPos "BASE_DEPLOYMENT_REINFORCEMENTS";
        [_cargo, 140, getMarkerPos "BASE_DEPLOYMENT_REINFORCEMENTS", "ATL"] call BIS_fnc_setHeight;
        _vehiclespawn setSlingLoad _cargo;
            
            
        _waypoint1 = _group1 addWaypoint [getPosASL  goto_supplies, 1];
        _waypoint1 setWaypointType "MOVE";
            
        _waypoint2 = _group1 addWaypoint [getPosASL drop_supplies, 2];
        _waypoint2 setWaypointType "UNHOOK";
        _waypoint2 setWaypointStatements ["true", "[[39, _cargo], 'scripts\crate_script.sqf'] remoteExec ['execVM', 2];"];
    
        _waypoint3 = _group1 addWaypoint [getPosASL kill_airborne, 1];
        _waypoint3 setWaypointType "MOVE";
        _waypoint3 setWaypointStatements ["true", "cleanUpveh = vehicle leader this; {deleteVehicle _x} forEach crew cleanUpveh + [cleanUpveh]; deleteGroup this;"];
    };
};```

What would be the best way of making this exec on a Dedi?
Turning it from a case to a Function?
#

Appologises in advance for the messy stuff

shut flower
little eagle
#

figures

#

why is everything I try broken?

shut flower
#

The garbage collector works from time to time. Not every time a group gets auto deleted when empty. Dschas proof isn't a real proof. You have to test it with players on your server and not in editor.

little eagle
#

What's the point if it doesn't work in SP?

shut flower
#

And even with manual script group cleanup there are now 3 unsued groups. This is a real issue.

proven charm
regal kraken
#

oh let me just change that to keep myself right, thanks

radiant lark
#

Is it possible to get player steamid from within main menu UI context?

still forum
little eagle
#

3 unused groups?

still forum
still forum
still forum
still forum
radiant lark
radiant lark
silent cargo
#

Well I think they got it figured out. Was just related to links not working

radiant lark
errant jasper
#

Maybe there should be an argument-less command that returns it for the local machine... Though do dedicated and headless run with an UID ? 🤔

radiant lark
#

I have also tried to edit the Exit button but it doesn't work properly, idk why

radiant lark
#

This is wild

winter rose
#

no no this is a free range, grain-fed engine sir!

#

even though it is game 😹

radiant lark
#

😂😂

#

It's really got the copyright 2007

#

It's not engine, it's a horse

radiant lark
radiant lark
#

Copyright 2007 for a 2013 game 😫

winter rose
#

that is still updated in 2026! ☝️

radiant lark
#

The disclaimer on the main menu states 2025! It's february 2026! Am I allowed to steal!!??

winter rose
#

hah! gottem 😁

restive leaf
#

Gottem in 94 years for the generic disclaimer and 76 years for the engine one anyway 😉

#

Guess it means that AʀᴍA⁴ will come out before 2101...

pallid palm
#

hello all: So my friend wants his weapon to be in the down pos at start of the mission: how do i do that: i can do it on Ai: but not on players:

sharp grotto
#

don't think you can force that on players via script.
the "player controller engine part" overwrites that instantly or so, if i remember right.

tough abyss
#

how can I fix this hemtt error?

pallid palm
sharp grotto
pallid palm
#

Awsome WooHoo

#

oh shit yeah MP hmmm

sharp grotto
#

Test it like that.

#

Not sure, i never used init fields like that 😆
I think they get executed on every client or so? Might be a bad idea then.

tulip ridge
#

Can ask in the hemtt channel in the ace discord, and/or create an issue on github

winter rose
modern plank
#

Hello, I would like to see my JIP queue to understand what I am executing as JIP, but this code (cli-side) produces no file. I would expect a jipqueue-xxxxxxxx.log in my %localappdata%\Arma 3 folder aside .rpt, but nothing shows up. (I see the "Exporting HJIP queue" in my .rpt)

#

Is it server side?

sharp grotto
bronze trellis
#

@queen cargo hey could you give me a another hint about the hint setPos ?

queen cargo
#

...

#

gimme a second

#

will hack something together

haughty hare
#

how can i somehow compile compositions into scripts, so on trigger activation game will randomly pick one and spawn it in the area?

#

or even not randomly

#

ig there are might be a mod, just like with a factions

queen cargo
#
_maxDistance = 100;

while{true} do
{
    {
        if (position _x distance _spot > _maxDistance + 5) then
        {
            //Do some vector calculations here to get the position ...
            //You have to shorten the distance for ~5 meters and youre fine
            //The way i do works but ... ye ... you get reseted to a way too wrong position
            _x setPos _spot;
        };
        false
    } count playableUnits;
    sleep 0.5;
}```
#

hf

#

most simple code you could ever write in ArmA

#

and the most generic code btw. in Minecraft (there you call it "WorldBorder")

bronze trellis
#

ah thank you that makes sense 😃

#

@queen cargo ^^ i have never coded anything before so wanted to try something simple 😉

small bane
#

quick question, i was looking to add an action to a vehicle that deploys a parachute (essentially the airdropping mechanic from vanilla arma 3) but was unsure how to go about doing this

#

the basic setup is the vehicle is falling and the player can scroll wheel to deploy a parachute to slow the vehicle's fall

granite sky
#

Creating the parachute is just this:
⁨```sqf
private _parachute = createVehicle ["B_Parachute_02_F", getPosATL _vehicle, [], 0, "CAN_COLLIDE"];
_vehicle attachTo [_parachute, [0, 0, 0]];

#

There are various ways to deal with the landing.

#

It's possible that this should be AGL rather than ATL. Not tested, not documented.

jaunty ravine
#

Hello, is there some way to get the specific object (backpack) from the inventory listbox? lbData seems to just return the classname as opposed to the actual object/container?

digital hollow
hushed turtle
jaunty ravine
faint burrow
hushed turtle
#

I guess then you need to check their class or even their contents if you need specific one?

faint burrow
#

I'm not sure this is a reliable method.

hushed turtle
#

It would make sence for any container to have an ID

#

But it doesn't matter

faint burrow
#

It has but we don't have access to it.

proven charm
#

in arma composition means bunch of objects

#

yep

vernal nacelle
#

Hello! I would like to ask for help with Headless client! I made the headless client and it is on the server and how I know it do nothing automatically and I must make script to make to take AI. Now the problem I nor entirely understand how it should work. Like how do I get the HC id? How do I know if it actually worked? I tried to look it up, but it didnt helped that much. Can someone help or give a point to start with?

granite sky
#

So ⁨owner myHCmodule⁩ would probably work at some point. I prefer to call a function on the server from the HC's initPlayerLocal to tell it that the headless client is ready.

#

entities "HeadlessClient_F"⁩ will give you all the active headless client objects.

vernal nacelle
#

Okay thanks

#

and with this "object setOwner clientID" then I can put AI units to the HC?

granite sky
#

yeah but normally ⁨setGroupOwner⁩.

stark fjord
#

Is there still that bug when transfering ai ownership to hc strips them naked?

granite sky
#

I haven't seen that. Maybe if you transferred them immediately after creation, because I don't do that.

mortal folio
#

still better just to create a unit on the HC to begin with rather than doing transfers (if plausible for your use case)

#

(creating them on the HC you also avoid issues if you're using heavily modded units like webknight's creatures; i recall a few mods where transfering those would either cause memory leaks or prevent them from functioning properly)

#

how? why? no idea, i just have PTSD from it happening

#

i could explain the latter (not having post-transfer recovery code in the units themselves) - the former however... i still recall using the phantoms mod and transfering them to headless clients - server FPS went to 40, 30, 20, 10... 5.... within a matter of 5 minutes

stark fjord
#

I normally do spawn them on hc when making missions, but our zeuses sometimes go full re__rded and spawn a battalion.

mortal folio
#

hah, yeah... i had to teach mine to start doing more in eden as well; we settled on "pre-spawn your units and put them on the corner of the map" because they dont wanna learn scripting

stark fjord
#

I mean they normally do ok. And server+ zeus handle them quite okay.
But rarely when mission becomes way shorter than planned, zeues make stuff on the fly.
There such transfer would be great. But any time we tried, granted last was years ago. You stumbled upon squads of naked men, ready to conduct turkish oil wrestling

mortal folio
#

yeah; your best bet is just the loadout copy and paste - copy loadout, do transfer, wait until owner is the new owner, exec next frame, paste loadout; a bit overkill but it's safe at least

#

could write a module for it even

stark fjord
#

I saw ace added it, including the loadout preserving. But there is really no need to offload ai periodically.

Imean one workaround is for zeus to just dc and offload stuff to server

mortal folio
#

zeus module would be perfect for this then

stark fjord
#

Yeah, i was thinking of making zeus module, which when placed offloads to HC, if not present, server

#

All units owned by zeus

mortal folio
# stark fjord Yeah, i was thinking of making zeus module, which when placed offloads to HC, if...

kind of on topic - i have been making a mod for the past.... god damn two years? been local so far but it's got a lot of quality of life features for zeuses and non-script-savvy mission makers; will be public soon-tm but before that it'll have to be tested by mine and some other units i know; if you're interested you can DM me (it's already out just unlisted until i know there are no issues)

drifting girder
#

something that i'm coming back to from a while ago but i made a mission where a random objective is picked at a location where one of the objectives is defusing mines placed by an enemy force. it works, but i don't know why the objective spawns like 5 mines more than the ones i placed. i'm assuming whatever i did made it spawn in a mine per person that connected to the server- is there a way around that?

on the init of the server i start the script null=[]execVM "xray.sqf";

which chooses a random objective of three and deletes a corresponding can in the world to activate it
xrayArray=[xIEDCan, xAmbushCan, xOutpostCan];
_xrandomN=floor (random count xrayArray);
_xrandomCan=xrayArray select _xrandomN;
deleteVehicle _xrandomCan;

which spawns an IED at each of my empty markers like so (through a trigger)
if (isNil "activeXIEDs") then { activeXIEDs = []; };
private _xied1 = createMine ["ATMine", getMarkerPos "iedSpawn1", [], 1]; activeXIEDs pushBack _xied1;
(there's one of these for each marker and there are 10 markers)

and then ends with this if (!isServer) exitWith {}
despite that, it's not one IED that spawns on each marker but like 6

short anchor
#

What's the name of the script that contains the line null=[] execVM "xray.sqf?

You've said that the script ends with the isServer check but that should be at the top, otherwise you're potentially invoking the code on all machines

drifting girder
#

the execVM xray.sqf is in the initServer.sqf

#

but your second point is likely the culprit i'd guess

hushed turtle
#

Nah, initServer.sqf only executes on server

#

Are triggers server only?

drifting girder
#

they are not set to server only

hushed turtle
#

Then they run on all machines

#

Which could be reason why you get more mines spawmed

drifting girder
#

sounds like it

hushed turtle
#

Because each machine spawns them

radiant lark
#

Dude there must be a way to get steamid from within menu... I guess by playing a mission on main menu?

stark fjord
small bane
#

hey, so how would i go about attaching a rocket booster to a vehicle? i've been experimenting with different ways but none of them seem to actually attach a booster

#

there's a video out there of someone who had a script like that where it attached a rocket to the rocket of a hang glider to give it a speed boost, however the script was on armaholic and sadly never got put on webarchive

warm hedge
#

Each frame do addForce can achieve it

exotic gyro
hallow mortar
#

The profile menu knows your SteamID. You could try to find that in config and see if you can see how that gets it.

errant jasper
#

Well question is what gonna do with the id next. If the next step is to retrieve or store data from profileNamespace then perhaps UID isn't the right key and storage level. If I use multiple profiles I want them to be treated as different, and not have your addon/mission cross-correlate. If you just need any unique identifier for the profile then just make a random one and store it.

young mist
#

Yo so im in a bit of a pickle. I got a script to hide units once I leave a trigger zone but I noticed this does not take effect if the units have been killed only when they are alive. What can I add to this line to make sure the units still get hidden even if they have been taken out?

hushed turtle
#

All dead bodies?

#

+ allDeadMen

young mist
#

Ill give it a go

hushed turtle
#

allDead returns vehicles too

young mist
#

Okie dokes

exotic gyro
#

Why hide and disable sim rather than delete?

hushed turtle
#

If it has to be only dead from these groups, then you need to track them them somehow

young mist
#

If its an area the player can return to I try not to delete

hushed turtle
#

There is thing called dynamic simulation, it may be great in this use case

exotic gyro
#

Could just sync them to the trigger and use SynchronizedObjects

young mist
#

Dynamic simulation I already use, this is just to hide all the assets not just pause em

hushed turtle
#

I see

young mist
#

I found it saves on performance way better

hushed turtle
#

In theory, if they are outside of render distance, then hiding won't do anything

young mist
#

Most of the locations on my map are not tooooo far away from eachother so im not exactly out of their render distance enough to see that effect

#

hence why im using these methods

#

do I need to add anything else to this for it to work?

#

or is alldeadmen all I need to type?

hushed turtle
#

Yeah, but hides all coprses

#

Need to track dead somehow to hide only coprses from mentioned groups

young mist
#

how do I do that?

hushed turtle
#

And I never done that, so I don't even know

exotic gyro
#

Sync em to the trigger, use synchronizedObjects thisTrigger?

young mist
#

Perhaps once they are dead anyway the groups are invalidated so the script will just consider them dead

exotic gyro
#

They're likely not in the group after some time of being dead

young mist
#

Ill see how this works

exotic gyro
#

allDeadMen is gonna give you everyone so obviously it would apply to corpses outside the trigger zone

young mist
#

what do ya mean?

#

I only want it to apply to the dead in the trigger zone the player leaves

exotic gyro
#

That's what I mean: you have to track the guys you wanna hide either with a gvar or by syncing them to your trigger

young mist
#

Could you give me an example of how I need to write that into the script I have

hushed turtle
#

You could create array at the start of mission and add all units from these groups into it. Then you can loop through the array and hide both dead and alive

exotic gyro
#

synchronizedObjects thisTrigger will give you an array of all the objects synchronized to the trigger

young mist
#

Where do I put that?

exotic gyro
#
{
    _x enableBallPhysics false
} foreach synchronizedObjects thisTrigger

Or whatever

#

Just an array

#

If you have other synced objects you can filter it first

young mist
#

I dont quite understand what is meant by array etc might need some more context haha im an idiot

exotic gyro
#

Data type

pallid palm
#

why not just have the default Corpse Removal: remove them ```cpp
//Corpse Removal
corpseManagerMode = 1;
corpseLimit = 3;
corpseRemovalMinTime = 60;
corpseRemovalMaxTime = 60;
minPlayerDistance = 40;

young mist
#

Because I found this deletes dead bodies that I want to keep on my map like ambient dead people etc

exotic gyro
#

Dead men really help improve the ambience of any restaurant

pallid palm
#

lol

young mist
#

lolol

#

testing out the script now without the array stuff for now, seeing what happens

exotic gyro
#

I mean you're using an array rn lmao

#

Foreach takes an array

young mist
#

haha

hushed turtle
#

Is trigger server only?

pallid palm
#

or maybe this

#
//Need to exclude certain units/groups, fill out the below arrays!
//-----------------------------
_indvUnitExclude = [];//<<Put individual unit's variable names here.
_grpUnitExculde = [];//<<Put the group leader's variable names here.
pallid palm
#

more work what do you mean you have more work ahead of you for the rest of you life 🙂

exotic gyro
pallid palm
#

how many dead guys do you have lol

exotic gyro
#

I mean ideally most of them

pallid palm
#

oh i see

exotic gyro
#

Lmfao

hushed turtle
pallid palm
#

thats funny i dont want any dead guys around lol my cleanUp script gets rid of them really soon 🙂

exotic gyro
#

My assumption is that there are many of these triggers

pallid palm
#

you can have as many triggers as you want

exotic gyro
#

But if you use a gvar like that, it only works for one set

#

The assignment is "trigger area that hides units when the players leave"

hushed turtle
#

Nothing stops him from creating multiple arrays

exotic gyro
#

Way more work though lol

#

SynchronizedObjects means you can just copy paste the trigger in eden

pallid palm
#

whats wrong with work 🙂

exotic gyro
#

No need to even name your groups

hushed turtle
#

And is his code he uses gvars, so it only works on certain groups regardless

exotic gyro
#

Read into context; he's using this for culling

pallid palm
#

i guess i'm not understanding what your looking for

#

so are all them guys dead at the start of the mission ?

hushed turtle
#

No

young mist
#

Perhaps If I just show you whats going on in my level lol

pallid palm
#

ok so you are killing the enemy then you want them to remain there till mission end ?

young mist
#

I have combat encounters that occur on my mission in specific zones and specific times based on where the player is on the mission. There are triggers here that govern this, so only when the player is in the "bubble" of an enemy area is when those enemies become visible and simulate. The issue I was having is that the bodies from those engagements were not being hidden when the player left the negative zone (The trigger that hides the units once the player leaves their respective bubble) so I asked for a line I could add to my existing script trigger to make sure even the dead were hidden.

pallid palm
#

so if the player leaves why do you need to hide them

#

just delete them

young mist
#

It helps save on performance since the proximinity between the zones is so close to the player

errant jasper
#

Rough outline. On playesr leave:

// Ensure we cover the area of the trigger
private _trigger = myTrigger;
(triggerArea _trigger ) params ["_a", "_b"];
private _maxRadius = _a max _b;
// Filter to actually in area and other parameters
private _entities = (getPos _trigger) nearEntities ["CAManBase", _maxRadius] select {_x inArea _trigger && not isPlayer _x};
// Now hide / disableSimulation
meager granite
#

As in player is in none of the zones

pallid palm
#

is this a SP mission

young mist
#

Yes the units I want to be hidden are hidden when the player is out of their engagement zone

meager granite
young mist
#

Just a second

meager granite
#

Wish triggers had an init field

#

would make things much easier

pallid palm
#

do you plan on having the player return back to the trigger zones

young mist
#

wait

pallid palm
#

is this a SP mission

young mist
#

wait

#

This is the trigger that activates and unhides units in a zone I set up for example

meager granite
#

This is initial one time setup?

young mist
#

Some are repeatable and some are one time

#

its highly controlled

pallid palm
#

is this a SP mission or a MP mission

young mist
#

Im explaining something else to someone mate

#

this is the trigger that hides them once the player leaves the area they engaged them in

pallid palm
#

yes but it would help to know this

young mist
#

and its singleplayer yes

pallid palm
#

ok

young mist
#

So one activates/unhides, and one deactivates/hides

#

And only the player group affects them since they are the owner of the triggers

meager granite
#

I assume you want this hint message just once, not each time you're back in the area?

young mist
#

Yeah the hint message is attached to a trigger that does not repeat

pallid palm
#

in my humble opinion your doing way more then you need to: i understand hiding them at 1st: but after you kill them and leave: the area: then there's no need to hide them any more: i would just remove them or delete them

#

unless you plan on returning back to the aera

young mist
#

I dont do this if the player does not return to the area

pallid palm
#

oh ok i see

young mist
#

Its all about preserving the illusion they are on a battlefield they have affected but controlling what they see, when and where for performance purposes

pallid palm
#

ok now i see what you going for

young mist
#

Yeah so the illusion of scale without the performance being awful

meager granite
young mist
#

dynamic simulation does not hide the assets, just pauses em. So if ya still in such close proximity ya still get an FPS hit

#

This system im using helps me better control the framerate and performance at my discretion

#

kinda like how big games like call of duty do things

pallid palm
#

btw do you use respawn in your SP mission

young mist
#

nah

pallid palm
#

i see ok

#

i'm just wondering why you would need to return back the the area

young mist
#

Because its likely the player will do so

#

if they need ammo or respite or out of curiosity

pallid palm
#

i see ok

meager granite
#

Damn triggers, I hate them

#

Gonna try something in a bit

pallid palm
#

yeah i almost never ues triggers and if i do i script them

meager granite
#

Shown to each player entering the area first time?

winter rose
young mist
#

This is a singleplayer only mission so one player will be seeing em

#

I use triggers because I like having a lot of control over every aspect. They help compartmentalise areas im editing

errant jasper
pallid palm
#

so if a Ai is dead : is there any simulation going on in this dead Ai, ?

errant jasper
#

As I recall I don't think they even ragdoll. Might cost a bit if in render view

young mist
#

They are containers of the kit they are carrying afterall

pallid palm
#

hmmm instering no wounder i remove all dead Ai soon after they r dead

young mist
#

I can show you what my mission looks like if ya want

#

See how this all looks haha

meager granite
#

Seriously, why don't triggers have init field

#

It would make so much sense

young mist
#

they do

meager granite
#

I don't see anything in the edit field in 3DEN

young mist
#

hmmmm

pallid palm
#

theres a repete check box in triggers

#

and Server Only check box in triggers

meager granite
#

Okay, here is how I'd do it

#

General setup

hushed turtle
meager granite
#

Trigger, some named groups (group1 in this example)

pallid palm
#

you can cap the hight of the trigger also

meager granite
#

Condition:

if(thisTrigger isNil "units") then {thisTrigger setVariable ["units", units group1];}; this;

On act:

if(isServer) then {
    {_x hideObjectGlobal true; _x enableSimulationGlobal false;} forEach (thisTrigger getVariable "units");
};

On deact:

if(isServer) then {
    {_x hideObjectGlobal false; _x enableSimulationGlobal true;} forEach (thisTrigger getVariable "units"); 
    if(thisTrigger isNil "message_shown") then {
        thisTrigger setVariable ["message_shown", true];
        {hint "GLOBAL ONE TIME MSG"} remoteExecCall ["call", 0];
    }; 
}; 
if(player in list thisTrigger) then { 
    systemChat "LOCAL MSG EACH TIME"; 
}; 
#

Make sure:
Repeatable: ON
Server only: OFF
Activation type: NOT Present

#

Activation: Player

hushed turtle
#

I'm thinking doesn't dynamic simulation have EHs? Like we could wait for it to disable unit and then hide them from EH.

meager granite
#

units group1 is how you tie groups to the trigger

#

Change units group1 to units group1 + units group123 + units groupWhatever for more units

#

This trigger should be MP compatible (I haven't tested it but should)

#

Also display hint "blabla" to everyone in the network (or just SP client) the first time you enter the trigger

pallid palm
#

and he didnt want to do much work 🙂

hushed turtle
#

Why does it need to run a on every machine?

pallid palm
#

maybe cuz of the LAN

#

in case he does a LAN party

#

im guessing

meager granite
#

So you don't have to copy-paste same trigger one for hiding, another for unhiding, another for one-time test messages, etc.

#

Wait

#

I originally made it where message was first-time local to each client

#

Thus no server only

#

but then changed it one time once server-wide message

#

So it also needs to be wrapped in isServer

#

I guess you can do some local client stuff inside deact if you want to

#

I guess I overcomplicated it a little bit, I just don't know what is needed exactly for non-hiding events like text messages

errant jasper
#

For SP do doesn't matter much. But otherwise you really want only the server making the check since it non-server clients may not have up to date information on other players from what I recall.
Well I guess that is covered by the on act isServer in this case.

meager granite
#

Okay, my original plan to reserve a way to show local messages fails if activation is "NOT Present"

#

Might as well make it all server only

pallid palm
#

i would replace far-away dead bodies with simple objects to eliminate performance impact without making them disappear.

#

but thats just me

meager granite
#

You can't dress up simple objects with same stuff as proper bodies have, can you?

pallid palm
#

well how close does it have to be

#

or just remove all weapons and inventory so they don't have performance impact

meager granite
#

Updated my "On deactivation" script

pallid palm
#

like maybe someone came along and took the weapons

meager granite
#

Now it shows one time global message as well as local each time message (or you can do it something else)

#

Why local each time message? No idea, its just possible to have it all in same one trigger

#

Also tested in MP, it works properly

pallid palm
#

nice work mate

meager granite
#

Works in SP too

young mist
#

ayy the alldeadmean script worked. The areas I want clear of dead after the player has visited em are now clean

hushed turtle
#

Problem is it hides every single corpse

pallid palm
#

i'm wondering how long do the dead bodys have to be there

#

like if you have like 9 objectives how many times will you return to the cleared objectives

#

in my case almost never

#

but then in most of my missions the objectives: spawn after you clear one by one

#

and the script randomly finds a new place to spawn them: and this uses the whole terrain

#

but thats just me so well you know

#

lol i have 2 Corpse Removals going on in my missions: the default Corpse Removal: and my cleanUp script that does other stuff too: 🙂

pallid palm
#

looks ok to me but what do i know

#

did you want the server only check box: checked

young mist
#

Whats that for?

pallid palm
#

just what it says server only

young mist
#

Well its singleplayer so I geuss I dont need to touch it

pallid palm
#

well in SP the player is the server so ok

young mist
#

Ok so its not tied to actual servers?

#

I was confused

pallid palm
#

well if you host it is yes

young mist
#

Guess I will tick it then lol

pallid palm
#

i would check it just in case

#

yup

young mist
#

done doodleledone

pallid palm
#

roger

young mist
#

Would you like to give the scenario a go?

pallid palm
#

me no sorry m8 im working on some stuff atm

young mist
#

Okie dokes well if ever ya free Its on de workshop

pallid palm
#

oh i don't ever use workshop mission sorry mate

#

unless the mission is by @hushed turtle

#

he makes Awsome missions 🙂

#

i'm changing all my outroWin and outroLose scripts to if (!isDedicated) then {

#

so they run on all clients

#

and also on the host of a hosted mission

pallid palm
#

the reason i don't use workshop missions: is cuz they don't have my Chopper Command in them: or my Stealth script in them: or my Ai skill settings

#

just so you know

#

plus i use no mods sep for terrains

#

i also don't put my missions on the workshop: there's no need: my mission grow by word of mouth 🙂

hushed turtle
pallid palm
#

yes i have that one 🙂

#

remember you sended it to me

#

remember we were talking about the water marks

hushed turtle
# young mist Like this?

You were supposed to create variable in initServer.sqf, which means you no longer have to have your units + units code in trigger

#

And TAG_myTriggerUnits is just example variable name

young mist
#

no idea how to do that

hushed turtle
#

Do triggers have init field?

pallid palm
#

nope

#

they have Condition field and OnActiveation field

#

and OnDeActiveation field also

#

to me triggers can be like a switch kinda like

hushed turtle
#

It seems to be better than my idea anyway

pallid palm
#

the only thing i use triggers for is my win and lose conditions to execVM my outrowin.sqf and my outroLose.sqf sep for radio triggers also

#

and radio triggers have no Area so yup cool

young mist
#

Nevermind figured out a solution

#

Just needed to add this _x inArea

#

all goood

hushed turtle
#

That's good idea

pallid palm
#

triggers are like if statments imho

#

so you could say if (this condition) then do {OnActiveation}; 🙂

hushed turtle
#

It's just graphical interface, so you can do some stuff without scripting

pallid palm
#

yup agree

crystal adder
#

Hi, All I am trying to attach a trigger {[_x, _x] call ace_medical_treatment_fnc_fullHeal;} forEach thisList; to a medical truck M1 attachTo [T1, [0, 0, 0]]; Variable name for truck = T1 & Variable name for trigger = M1. Any advise or guidance please

hushed turtle
#

Is it working?

modern plank
#

Is there some script to detect anything from DLC like Apex or others?

hushed turtle
#

What are you trying to do? Making sure your mission has no DLC stuff?

modern plank
#

yep. I have all DLC, in the launcher I unselect all of optional ones, but when connecting to my mission, a mate told me he is facing ads for Apex

#

I am not supposed to use it, but I might have put some item from apex, dunno.

#

I want to find the culprit.

hushed turtle
#

So his character has some Apex DLC stuff I guess

#

There is mod, which hides DLC icons from items, which are from DLC, but don't require ownership

#

Making it easier to find DLC stuff

modern plank
#

like ACE overwritting DLC icons you mean?

hushed turtle
#

Not ACE

modern plank
#

Do you spot "Apex" here?

addons[]=
{
    "A3_Characters_F",
    "mas_nor_lite_weapons",
    "rhsusf_c_weapons",
    "ace_compat_rhs_usf3_arsenal",
    "A3_Weapons_F",
    "ace_smallarms",
    "ace_ballistics",
    "tfar_handhelds",
    "mas_nor_lite_common",
    "ace_hearing",
    "ace_maptools",
    "ace_microdagr",
    "ace_chemlights",
    "ace_medical_treatment",
    "rhsusf_c_troops",
    "ace_compat_rhs_usf3_nightvision",
    "rhsusf_sounds",
    "ace_compat_rhs_usf3",
    "ace_rangecard",
    "ace_compat_rhs_usf3_scopes",
    "fsg_weapons",
    "CUP_Weapons_East_Attachments",
    "rhs_c_weapons",
    "CUP_Weapons_Ammunition",
    "rhs_sounds",
    "ace_compat_rhs_afrf3",
    "ace_optics",
    "fsg_equipment",
    "ace_nightvision",
    "ace_compat_rhs_afrf3_scopes",
    "A3_Props_F_Decade_Objectives",
    "xakuda_f_xs_Snowmobile",
    "CUP_WheeledVehicles_NewHMMWV",
    "fsg_vehicles",
    "A3_Structures_F_Mil_Helipads",
    "RHS_US_A2_AirImport",
    "ace_compat_rhs_usf3_fastroping",
    "A3_Structures_F_Heli_Ind_Airport",
    "rhs_c_a2port_air",
    "A3_Weapons_F_Ammoboxes",
    "A3_Ui_F"
};
dlcs[]=
{
    "NORSOF_LITE_mas",
    "RHS_USAF",
    "FSG",
    "CUP_Weapons",
    "RHS_AFRF",
    "Argo",
    "CUP_Vehicles",
    "Heli"
};
hushed turtle
#

I would say check his character in arsenal with this mod loaded

modern plank
#

will give it a try, thank you!

hushed turtle
#

Also you get watermark when you're in DLC vehicle

#

You can only be passenger in DLC vehicles, without owning the DLC

hallow mortar
#

Also I'm not sure whether it accounts for objects that are part of the terrain. Mod maps often have Apex objects in them, and I don't know whether the Editor will pick up on that.

modern plank
#

yes but the script part is my traditional mission toolkit and other missions don't do that with the same scripts bundle. And I generate very few vanilla things on purpose.

modern plank
#

will be easier than manual browsing in Eden ^^

restive leaf
#

Only the actual map Tanoa is locked

modern plank
#

thank you @restive leaf

#

Is there an easy means to know whether or not an Apex asset can be used in a mission with no issue for non-owners? (for weapons I guess you need to own the DLC to operate etc...)

#

I admit it is still blurry to me.

pallid palm
#

best way is buy the DLC 🙂 just trying to promote Arma 🙂

restive leaf
#

Already have all DLCs and CDLCs 😉

pallid palm
#

oh nice

restive leaf
#

Even TacOps and I never play SP

pallid palm
#

roger that mate

modern plank
#

I have all as an early supporter too, but late joiners who play now don't.

pallid palm
#

sometimes i use SP to test a mission: before i test it as a MP mission

restive leaf
#

Yeah, I test changes to my public server in SP sometimes too

pallid palm
#

roger that mate we Are Awsome 🙂 lol

#

next week is my B-Day Woohoo ill be 65 , hell yeah

#

ahhh thx m8 lol

#

mmmm cake

hushed turtle
#

I would start your mission as your friend unit and open arsenal to see what he has.

#

Can't take ages to find that item

modern plank
hushed turtle
#

Sometimes mods add their icons on vanilla stuff

pallid palm
#

thx to me i don't use mods 🙂

hushed turtle
#

Which has nothing to do with the mod I sent you

restive leaf
#

Doesn't it just mean that they've modified the base class?

hushed turtle
pallid palm
#

thats a roger

#

i do use the DLC content but only on the enemy and maybe 1 chopper for us to ride in

hushed turtle
#

I thought you can't use DLC stuff in editor, if you don't have DLC

pallid palm
#

yes you can use it on the enemy

#

you just can't pick it up and use it yourself

warm hedge
pallid palm
#

like i use the AKM on the enemy but i cant even look at the AKM if its on the ground or water mark will show

hushed turtle
#

So you can spawn DLC units in the editor just fine

modern plank
pallid palm
#

thats why i delete the weapons as soon a enemy is dead

#

@hushed turtle oh yea i spawn enemy with DLC weapons yes

warm hedge
#

Ah I didn't saw the original post

modern plank
#

I hope that mods liek ACE or TFAR can override the icon only for vanilla stuff, no DLC or other mods.

warm hedge
#

Blame game engine or Eden implementation itself for icon. Such icon override is caused by a simple inheritation

hushed turtle
#

Even if original item is not edited? 😆

warm hedge
#

Yes

#

One of the worst implementaion in Arma 3, Eden and Arsenal, both do misread people

pallid palm
#

@hushed turtle i also have loadouts made for the enemy with DLC content and spawn them just fine 🙂

hushed turtle
#

ok

pallid palm
#

and i also have another set of loadouts that are the same but with default weapons: so i can switch back and forth

#

if i wanted

#

and what's really cool is each one of the 35 diff loadouts: in each folder: has a randomizer for uniforms and vest and backpacks 🙂

#

took me some time to set that all up but its was worth it now that it done 🙂

#

i love makin stuff like that 🙂

#

oh and you can turn off the randomizer if you like also

#

so all will have the same uniform

#

if you want to

#

but they will still have diff weapons

tulip ridge
#

Happens a lot with turret inheritance especially

pallid palm
#

thx to me i dont use mods 🙂

tulip ridge
#

Vanilla does it too

pallid palm
#

oh shit lol

tulip ridge
#

It's just bad config, not exclusive to mods

pallid palm
#

oh i see

tulip ridge
#

Example

// Original
class Air;
class Helicopter: Air {
    class Turrets;
};
class base: Helicopter {
    class Turrets: Turrets {
        class MainTurret {
            // ...
        };
    };
};
class public: base {
    // ...
};

// Another addon (incorrectly) inheriting from it
class Helicopter;
class base: Helicopter {
    class Turrets;
};
class public: base {
    class Turrets: Turrets { // Updating base class error, since public doesn't edit the turrets class at all
        class MainTurret;
    };
};
pallid palm
#

wow holy shight

tulip ridge
#

That would cause the mod's icon to show on public in Eden

silent cargo
tulip ridge
modern plank
#

It has checked 6.950 objects.... no single issue spotted.

#

Do you see other objects categories I should add in the validation?

#

(the script works, tested with a known DLC vehicle).

mortal folio
# stark fjord Whatabout does it contain, we use ZEN atm

primarily eden editor stuff actually, extra attributes for units (similar to 3den enhanced but with extra ones it doesn't expose), a mission persistency system (inventories, loadouts, etc), visual triggers, then some modules like spawners, add actions, equipable objects, etc... a bit many to list just here (not to mention the script library)

haughty hare
#

So I figured out that you can't hide smoke and fire modules, and then just unhide them. Can i using createvehicle (or whatever modules are getting spawned with) redact things like duration of life of particles, how much of them are spawned etc?

hallow mortar
pallid palm
#

you can't hide smoke and fire modules but you can set the: amount of time that they smoke and fire

small bane
#

I tried with a titan rocket and though I used attachTo it seemed to just try and shoot the plane instead of attaching to it

tulip ridge
#

You probably want to createSimpleObject the model rather than spawning the actual munition

small bane
small bane
#

that’ll be it then, I’m creating the munition but using createVehicle

tulip ridge
#

Yeah that'd do it

small bane
#

would I just replace createVehicle with createSimpleObject and use the same munition type?

sly cape
tulip ridge
silent cargo
#

Hi is it normal for logs to duplicate sometimes?

#

I have some event handlers that capture projectiles and where they hit and sometimes it will print 3-4 duplicates of the same instance into the rpt log and its not too annoying but im not sure why its happening

proven charm
#

pls post code

sharp grotto
abstract bison
#

hey, i know this probably isnt where i should be asking, but does anyone know what this error means? i think its an ace error but im not sure

cosmic lichen
#

Could be anything. Check the rpt for more details

#

!rpt

wicked roostBOT
#
Arma RPT

Arma generates an .rpt log file on every run. This log file contains a lot of information like the loaded mods or any errors that appear, and can be very useful for troubleshooting problems.

To get to your RPT files press Windows+R and enter %localAppData%/Arma 3

Additionally see the Crash Files wiki page for more information.

To share an rpt log here, please use a website like https://pastebin.com/ (Set expiry time to 1 week or less) to upload the full log, that way the people helping you can take a look at it and try to figure out with you the problem you encounter.
Note: RPT logs can hold personal information relevant to your system, the game or others.

hushed turtle
#

Gonna need to use if(isNil "_found") then ... here

hallow mortar
#

That's a BIS function

#

it's either improper use of the function (could be an issue that goes waaaaay down the line) or some mod is overwriting the BIS function with a wrong version

#

or the BIS function is wrong in the first place, but I think someone might have noticed that before now

old owl
#

I feel like maybe I remember getting that at one point and it was due to me passing some sort of bad argument. Nonetheless though probably an issue with the BIS function still since you aren't able to terenary check with undefined values? Probably just needs changed to an if for it to work as intended?

hushed turtle
#

Chances are code works, it just displays some message, but works

silent cargo
#

its also WIP so dont mind the nonsense

proven charm
#

that code run from where?

errant jasper
# silent cargo

I mean you are adding a HitPart event handler, of course it may trigger multiple times.

proven charm
#

by multiple players too

silent cargo
#

One second. I will show you the log duplicates. The actual shot being fired duplicates. Not the hitpart etc

#

Actually upon closer review the duplicate is showing a different grid so maybe its not actually duplicating

9:49:46 (ILW TK - Shot Logs 1) Sam fired an AK-104 (rhs_B_762x39_Ball) from [4355.38, 26036.3, -0.0176926]
9:49:47 (ILW TK - Shot Logs 1) Sam fired an AK-104 (rhs_B_762x39_Ball) from [4355.38, 26036.3, -0.0179672]
9:49:49 (ILW TK - Shot Logs 1) Sam fired an AK-104 (rhs_B_762x39_Ball) from [4355.38, 26036.3, -0.0176392]
9:49:49 (ILW TK - Shot Logs 1) Sam fired an AK-104 (rhs_B_762x39_Ball) from [4355.38, 26036.3, -0.0177917]
#

I probably shouldnt be running this local and remote executing the log to server should I?

errant jasper
#

Not the end of the world for debugging purposes. Your messages are preformatted, so delays doesn't matter

#

But ordering might technically be messed up due to remoteExec being scheduled

silent cargo
#

I just know it has to be attached to a unit. I dont know how to do that dynamically from server side

errant jasper
#

Also if you add the event handler on multiple machines gonna be a mess making sense of the logs.

silent cargo
old owl
#

Depends on how important it is in your mission and how many players you have. If you plan to send all of that to server though it may be worth considering batching it if you don't already. For example adding the timestamp along with all the arguments into an array then sending it on a scheduled interval. Just runs the risk though that the player ALT + F4's then the last set of data is lost

silent cargo
#

So I should have it send in batches rather than send each log on each shot fired?

old owl
#

That's what I would do personally

silent cargo
#

Interesting Im not totally sure how to do that honestly

old owl
#

You don't have to if you aren't noticing performance issues and you don't have a lot of players, but would probably be better in the long haul if you do

errant jasper
#

I'm guessing the logging is only for debug purposes? Even still, I don't see the need to send it to the server, the server can just add the event handler, the argument is global. I'm really expecting and hoping the server is exempt from the camera limitations herre.

silent cargo
silent cargo
errant jasper
#

But I don't follow, do you have duplicates or not? If you enter the game and fire a single shot from an AK-104 you should not be getting 5 entries if they are only added locally to player.

silent cargo
errant jasper
old owl
silent cargo
#

I like to track the very gun they fired all the way to who they hit.

#

this comes after 2 years of dealing with trolls who pop in every once in a while and shoot peoples legs at arsenal etc lol

silent cargo
hallow mortar
errant jasper
silent cargo
#
9:49:49 (ILW TK - Shot Logs 1) Sam fired an AK-104 (rhs_B_762x39_Ball) from [4355.38, 26036.3, -0.0177917]```
#

Same time, same gun, same shot, but one is 0.0177917 and the other is 0.0176392.

errant jasper
#

IF you replace the remote dialog with systemchat do you get multiple entries?

errant jasper
# silent cargo No

Well then the event handler runs only once. So it is not an event handler problem. That also excludes the EH being added multiple times on the same machine for the same object (player)

silent cargo
silent cargo
errant jasper
#

*to be clear I mean multiple entries on screen from chat.

silent cargo
#

I originally tested it that way by using debug console to build the code with the outcome being format systemchat etc before I replaced it with diag and put it into the mission

old owl
# silent cargo I would appreciate that. Im not the most versed in coding but I do my best witho...
// Event handler for damage handling on client
teamDamageDealt = [];
player addEventHandler ["HandleDamage", {
    params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitPartIndex", "_instigator", "_hitPoint", "_directHit", "_context"];

    if (side (group _instigator) isEqualTo playerSide) then {
        teamDamageDealt pushBack [systemTimeUTC, name _instigator, getPlayerUID _instigator, _projectile, [getPosATL _instigator, getPosASL _instigator] select surfaceIsWater];
    };
}];

// Loop for batching to server on client
while {true} do {
    uiSleep INTERVAL;
    ["ingest", teamDamageDealt] remoteExec ["TAG_fnc_serverLogFile", 2];
    teamDamageDealt = [];
};

// On server
params [
    ["_mode", "", [""]],
    ["_damageArray", [], [[]]]
];

serverDamageRecords = [];
switch _mode do {
    case "ingest": {
        serverDamageRecords = serverDamageRecords + _damageArray;
    };
    case "update": {
        // Run this case on server init
        while {true} do {
            uiSleep INTERVAL;
            {
                diag_log ["%1 (%2 - %3) fired %4 from %5"];
            } forEach serverDamageRecords;
            serverDamageRecords = [];
        };
    };
};

A few things this doesn't consider though:

  • The event handler handleDamage fires much more often than fired and will likely log more than necessary.
    • I use this over fired though as this would only log damage that is inflicted to a teammate instead of all shots.
    • There may be a better mission event handler for this, I just tend to be more versed in object EVH's due to anti-cheat constraints.
  • There is no cooldown on recording, but would be best to have one prior to adding to array on client.
    • Otherwise players will be creating a crap ton of data which is transmitted to server.
    • This will require a good bit of array checking to compare against the last known instigator player ID and time stamp in array.
silent cargo
errant jasper
#

Not sure it make sense to push _projectile though? By the time you get to process that the projectile is gone anyway?

old owl
granite sky
errant jasper
#

Would probably have been much simpler to just always initialize _found to false.

old owl
#

Wrote a few of those bugs before it became ingrained. Terenary operators are faster than if for basic value selection like that. Becomes easy to forget when you're nil checking a value that is defined when you're testing and everything works until all of a sudden it doesn’t KEKW

arctic bridge
#

Question about multiplayer scripting
I'm trying to get a HUD to display (defined under RscTitles), but it just won't show when I try run it on a dedicated server (with and without a headless client). The global variables for the HUD controls are just undefined, both in mission and ui namespace.
I'm initializing the attached hudInit function via a postinit event handler

It shouldn't be an issue with the function itself - the OPTRE huds use a very similar method. I'm pretty sure I'm just calling it incorrectly but I'm not sure how

old owl
arctic bridge
#

I'm not getting any error pop ups (maybe I forgot to turn them on in the server come to think of it lol)
When I check a given control in uiNamespace I get ["NULL"] in systemChat, missionNamespace just gives me nothing at all

#

The function also works fine in player hosted multiplayer

old owl
#

I'm unfamiliar with the draw over HUD argument, but could it be that you have that false?

#

For cutRsc

arctic bridge
#

the falses in cutRsc are for showInMap and drawOverHUD, they should be fine

#

And they work in single/player hosted too

#

I tried tracing a variable and it just isn't calling the function at all

#

Very odd

#

My guess is it doesn't like the locality changes

#

Got it working, didn't like the locality switching

old owl
#

If you remoteExec the function I would make sure you do something like [-2, 0] select hasInterface for the target- not sure if that was your issue though

haughty linden
#

Please help! I need to know how to activate a trigger when a player changes stance.

#

The condition is as follows: Two players infiltrate an enemy base to locate hostages and steal information. They must act normally, such as walking, not pointing weapons at anyone, not crouching, and not lying down. They must simply walk normally without doing anything stupid, otherwise the alarm will be triggered and the AI ​​will begin killing hostages.

granite sky
untold copper
untold copper
granite sky
#

only one of these words is offensive :P

untold copper
#

I'll leave it at that. Don't want to trigger anyone. 🤦

tulip ridge
#

-# If you don't know, it's "trigger". Novice mission makers tend to use them when there's a better alternative

spiral canyon
#

I'm trying to get a AI to run through some animations but it refuses to do the Acts_Accessing_Computer animation. He switches to the next animation fine. Anyone got any idea to what I am missing on this animation? Here is the simple script [] spawn { itGuy switchMove ["Acts_Accessing_Computer", 0, 0.5, false]; sleep 5; itGuy switchMove ["Acts_Kore_PointingForward", 0, 0.5, false]; }; It gets triggered by a radio call.

haughty linden
split ruin
#

any script that makes AI little bird pilots to not turn hot landing into duck hunt? meowfacepalm

winter rose
radiant lark
#

Does it happen to yall that __TIMESTAMP_UTC__ is not really accurate?
Edit: fix is '__TIMESTAMP_UTC__'

old owl
radiant lark
#

As in, number size

#

It would truncate or round the timestamp

old owl
#

Gotcha looks like it does go to 2.1b so maybe it hit rounding?

#

I think that starts at 2b?

radiant lark
#

It did, the fix were the quotes

old owl
#

Ah okay sorry seeing your edit now

radiant lark
#

Yee

errant jasper
#

Well floating points only have a 24 bit mantissa. Unix timestamps typically use 32 bit integer precision and still suffer from Y2K38 problem, so having 8 bit less get's quite imprecise.

radiant lark
#

That is indeed what I was trying to articulate

proven charm
#

i have few scripts that player can invoke from the action menu but this bloats the menu, is there any advice on alternative approach? i was thinking maybe of some kind pie menu

proven charm
#

ya was thinking of that, never used it tho. and i dont want mod dependency

errant jasper
#

though pretty sure it is from CBA not ACE though.

errant iron
#

but that's also combined with finer conditions for each action so they don't all show at once

proven charm
#

ah thats ace menu

proven charm
#

is it possible to detect action menu being closed? im thinking of creating something of my own

little raptor
hushed turtle
old owl
# proven charm i have few scripts that player can invoke from the action menu but this bloats t...

We have a pie wheel of sorts that we use for interaction. We only use it for vehicles currently and initially had the intention to convert it for players but a lot of our long term players cried since they were used to our legacy menu, even if it is crappier. Also largest thing I learned is don't ever really ctrlShow false any wheel controls. People get upset when buttons aren't where they expect, which tbh is understandable.

#

Also other lagest mistake that I made was not sorting the options menu off the rip. I should've really prioritized making main menu buttons lead to sub menus over trying to stuff it all in the main wheel then have the trailing ... options. Wasn't great UX on my part and honestly if I did all that better, maybe it would've been more well received for player interaction; as people do love it for vehicles. After people got upset I kinda just ditched it tho.

proven charm
#

cool menu Milo. im probably just allowing more actions to be shown from one action

errant jasper
old owl
#

Another developer on our team made the wheel years ago so I can't take credit for any of the actual design- I've only ever really made adjustments to it. The guy who made it did great with it though 🙂

hushed turtle
old owl
# proven charm cool menu Milo. im probably just allowing more actions to be shown from one acti...

For what it's worth this is our current legacy interaction menu, which is much more simplistic but accomplishes near similar in functionality. Pretty sure this menu is near identical if not the same to what is in the AsYetUntitled life framework. Here are some references if it helps:

https://github.com/AsYetUntitled/Framework/blob/fb77bda7eef635e01a794d7c1f876e914e6b8a8d/Altis_Life.Altis/dialog/pInteraction.hpp
https://github.com/AsYetUntitled/Framework/blob/fb77bda7eef635e01a794d7c1f876e914e6b8a8d/Altis_Life.Altis/core/cop/fn_copInteractionMenu.sqf

#

Don't get the fancy icons and feel but holds the same amount of controls and the idea of sub menus can easily be implemented as well. People on our server still love it

errant jasper
#

I still think for this:

[] spawn {
   private _myNilVariable = nil; // EDIT: the BIKI explains this basically makes _myNilVariable undefined; so a expensive no-op here.
   systemChat str _myNilVariable; // Errors, but I don't think it should.
   systemChat str _undefVariable; // Errors, and I DO think it should.
};
proven charm
#

@Milo speeds is a factor in the menu i need..

hushed turtle
old owl
#

The difference is definitely between scheduled and unscheduled context.

_b = [] select 0;
_a = [_b, 2] select false;
3
// Uncheduled: No script error
// Scheduled: Undefined variable
errant jasper
#

Might get same result, but one is extremely useful debugging aid for people who don't intend to access undefined variables.

errant jasper
old owl
hushed turtle
#

Throws undefined, beacause _b is nil

old owl
#

Which I suppose I could've just left undefined tbf which is probably your point.

errant jasper
#

But I actually think the example is very good.. Obviously _b = [] select 0; is a bit artificial here, but it could be any earlier expression. So "philosophically" do we want expert users to rely on such tricks and have it nil or do we want a warning that somebody messed up.
Here is how that might actually happen:

private _array = ...
private _idx = ...
// ...
// ...
_b = _array select _idx;  // Could end up doing [] select 0
proven charm
spiral canyon
little raptor
#

configFile >> "CfgMovesBasic" >> "Actions" >> "Acts_Accessing_Computer"

spiral canyon