#enfusion_ai
1 messages Β· Page 8 of 1
What's wrong?
Was a crypto spam bot shilling bullshit, https://giphy.com/gifs/black-and-white-explosion-uSHMDTUL7lKso mod nuked it near instantly
yeah that does kinda look like I was pointing out your post
lol yeah that's why i asked. π
anyone else having trouble using CRX ai? my units no longer excecute a defend order
There is a known bug with the "Force Move" waypoint.
Defend should work as expected.
There is a dedicated CRX thread: https://discord.com/channels/105462288051380224/1050433454388547644
@shy lake I couldn't post in there its read only for me
The update today seems to have fixed it though!
Hello
How can I make the AI attack everyone?
I noticed that AI system, the AI does not shoot at me whether I am on the American forces or the Russian forces.
π
You sure you have a PerceptionManager in the world?
90% of the time when AI won't attack when it should its because that's missing
It appears that yes, it is available.
I discovered that the problem is caused by the update that changed the group here.
What Iβm trying to do is change the appearance of the forces to the Middle East mod forces
Good.
Glad to hear this. π
Maybe you still need to verify?
! verify ( without the space between ! and verify )
!verify
Check your messages!
@shy lake tysm
Is there anyone who can help solve this problem?
Do the AI move at all?
If you mean whether the AI reacts, then yes, it moves, but it does not shoot.
could be that the character you're playing as doesn't have an assigned faction? I've ran into that issue before, especially when loading into the world from camera position
I tried that with the US and Russian forces, and itβs the same problem. They move but donβt shoot at me. This only happens when I change the groups.
See here
ah, when it comes to modded factions, could be many different things. Make sure the setttings in the faction config are correct, like having Is Mililtary checked.
Make sure that when spawning the AI Group that they're set to be combative, and not passive in the SCR_AIGroupSettingsComponent.
Double check your faction manager that the modded faction is in it and it's settings are correct.
Beyond those basics, maybe someone else might know what else you could check
What exactly does cancel the KeepInFormation behavior during combat?
The "Move In Formation" node in the .bt?
I already defaulted all to PRIORITY_LEVEL_GAMEMASTER ( 2000.0 ) but they always keeps getting removed during combat even with very high priority.
I believe it was when AI during combat, because when you set AI to hold fire or return fire they can still move in formation
CMIIW
Hmm...
Not quite sure.
It's more about the move in formation waypoint based so like the "Force Move".
They don't have any action based on move waypoint besides the "Force Move".
Everything else gets removed instantly but after all their combat stuff is done they kinda re-add it and exacute it.
Is there anyone who knows a script or component that allows random spawning from the "Character_USSR_Randomized.et" file?
Hey guys, anyone here able to help me with the EE_Dynamic AI spawner?
how do I debug a BT that is ran through RunBT node lol
Debug the .bt which was used by the RunBT.
If you are not sure which .bt it is you may could use the debug node to display which .bt is executed by the RunBT.
Doesnt work in live debug
It looks like it shows some state from one frame
Would help if it worked because now it crashes every time it gets to that bt
And I have to restart this ridiculous software every time I make a change to test
Does anyone know if there's a way to get the FIA AI to use a mortar against players without me needing to tell them to do it in GM?
I tried setting up a mortar in range of the area I wanted protected, and I tell the AI to get in but they just screw around sighting the mortar but they never fire
without mods you cannot, im pretty sure there is a mod that allows AI to complete fire missions when allied AI spot targets but i forgot the name of the mod
Thanks I will look around for it
there should be a show debug from BT something on AI Script?
I will check it later when im back at home
Found it, its called "AI Mortar Fire Support System"
i didn't test it though
Thanks mate!
I kind of hate how things like the move task are so hard to work around, since it just locks up the agent until they reach the destination if you're not careful
Also this never works for me with small error degrees set, I have to make it 2-3 for it to return success regardless of timeout but then all bullets miss the target
you modify it on Fire.bt?
what you trying to achive?
Use the vanilla CombatMoveRequest system.
It's pretty flexible and you can issue stop or move commands at any given time.
I dont use any vanilla BTs. One issue I have now is pathfinding for vehicle drivers, when moving toward a waypoint, seems to only work for about 30 frames, then it drops the pathfinding and goes in straight line π
There is "Set Pathfinding Filters" task.
Not sure if you have to use this.
In vanilla they do use it in .bts which are used by vehicles and infantry if i got this right.
Not sure if this is an AI or Scenario one - Is there any way to make patrols keep their assigned way point if they get stuck?
Got a scenario set up, it's a long term mission - AI patrols working, but if I re-join after e.g. 4 hours some AI will still be patrolling whilst some groups end up in the "idle" state
Don't think there is a way in vanilla.
If they encounter a problem after 10 sec. or so they will fail the move order.
You could ofc do a lot by scripting, like assign a new ( alternative waypoint ) so they could try this and if this works just continue their patrol.
Hmm I'll have to do some digging, hopefully not too much! The only workaround so far is to just have the patrol etc. Reset on each cycle, but this means you get a fresh AI group each cycle and thru can still get stuck too
I can see the path appear in diag and then 0.5s after it disappears and they drive in a straight line and crash into something π
Please teach me how to adjust the AI ββsettings to make it more skilled and formidable. Where do I need to make changes?
Are you using vanilla for driving?
They have the KeepInFormation behavior and the leader/driver the Driving behavior i think?
Sounds like they are missing something so the move get cancelled instantly.
They still drive to the waypoint just not using pathfinding it's quite funny
I don't use any vanilla AI behavior trees
Hmm... Hard to tell.
You already tryed the "Set Pathfinding Filter" thing with BTRLike?
I would have to look in vanilla what else you may missing.
My problem is very specific, move to waypoint = pathfinding makes a path then it disappears. Moving to a position that isnt a waypoint = pathfinding works all the way, both use the same move task. I need to figure out what is so specific about the waypoint.
I am hoping for someone from BI to tell me.
For example, a list of reasons why the path might exist for only 40 frames.
A list of reasons why the agent might ignore the pathfinding after 40 frames, etc.
I think waypoints are using different move task.
"Move To Waypoint".
Check in vanilla .bt "Chimera/Group/MoveToLocation.bt".
π€
I should've clarified I only take the position of the waypoint and just use move task for both cases
So its just move task with a vector
But the agent continues to drive to the point, just not using pathfinding
You can see the path appear for a few frames
Not using waypoint - path appears whole way
In the case of the WP it still drives there, just not using pathfinding

for some reason when using the wp it also moves slower
even tho mode is run in both cases
Oh I fixed it by disabling behavior tree component in the AI group prefab
Thanks for coming to my ted talk
its because the WP got WP Attached on it?
group AI was messing with it, didnt bother investigating
intresting
Hello AI gurus, please take a look at this threas
https://discord.com/channels/105462288051380224/1481212667124387921
Any way (in vanilla) to ambient spawn an AI group within a polyline instead of just a set radius?
Like SCR_AISpawnerGroupFaction, but polyline?
Just found this error in vanilla.
If i use some move waypoints and cycle them and after cycling i try to add another waypoint to the waypoints, so adding another one to the already cycling waypoints i get this error:
I got some issue, idk what i did wrong, but i spawn GetinWP
if (!wpGetIn)
return;
SCR_BoardingEntityWaypoint board = SCR_BoardingEntityWaypoint.Cast(wpGetIn);
board.SetEntity(GetOwner());
board.SetAllowance(true, true, true);
board.SetPriorityLevel(SCR_AIBehaviorBase.PRIORITY_LEVEL_PLAYER);
grp.AddWaypoint(wpGetIn);```
The AI Wont Get Vehicle when the group Count Above 7 as for example US_RifleSquad
But if i place the GetInWP From GM they works
Are you setting all the parameters like:
[Attribute("", UIWidgets.CheckBox, "Occupy driver")]
bool m_bIsDriverAllowed;
[Attribute("", UIWidgets.CheckBox, "Occupy gunner")]
bool m_bIsGunnerAllowed;
[Attribute("", UIWidgets.CheckBox, "Occupy cargo")]
bool m_bIsCargoAllowed;
Probably by SetAllowance(true, true, true);?
Yep, SetAllowance(true, true, true);
I found the issue, it was the WP Prefab
When i use the GetInNearest it works
Magically
Fair enough. π
But the position they occupy is different from before π€·ββοΈ
The boarding may need additional stuff.
I think they do lock compartments they are about to get in, so they may lock multiple or smth.
Yep, the getInSelected is not working also, so GetInNearest is the only way to go
yeah they do lock it
The boarding is using a .bt called ProperOrder, while GetInNearest is probably just putting them in the first best free compartments.
Guess it more about getting them in some vehicle, instead of checking compartments and stuff.
{
if (!compMgr)
return 0;
int free = 0;
array<BaseCompartmentSlot> slots = {};
compMgr.GetCompartments(slots);
foreach (BaseCompartmentSlot slot : slots)
{
if (!slot)
continue;
if (!slot.GetOccupant())
free = free + 1;
}
return free;
}```
Alreaddy did 
Which compartments are they getting in?
Are there any specific they never use?
It should be all compartment i believe, Pilot, turret and Cargo?
Jus but do they avoid some?
Like driver or gunner?
Like they all go into cargo or smth?
So they use driver and gunner but some just don't go into cargo?
if the group number above 7 they not even use anything
but if i delete or kill till its 7 <=
then they suddenly going into that
if using GetInNearest, then they will go regardless number of group
but if use Other GetInWP then meh
Trey to use US_RifleSquad
Well at this point it's probably the best to debug the ActivityGetIn > GetInVehicleInProperOrder .bts to see where it fails.
No need to press something.
Just add the breakpoint to the node.
Good. π
and the completion type to leader only
Yep makes sense.
The radius is too small and the completion radius by default is all
Soo
whata mystery
Yeah a typical Arma thing.
Someone mind telling me why my AI turret gunner is aiming 5 meters above the target when inside a vehicle that moves but aiming at the target correctly when stationary?
Where the heck does this offset come from lol when it's slotted to a vehicle it's Y +5 for all its aiming it's driving me nuts
Its like just aim at the damn target
the target is actual target? or is it the suppression?
offsetY = GetRandomFactor(currentSkill, 0) * offsetY * AIMING_ERROR_SCALE * distanceFactor * offsetWeaponFactor * illuminationFactor; You can change the accuracy of the Y in here in AimError
SCR_AIGetAimCompensation Or You might want to check somewhere here?
CMIIW
Same AI task, turret is static = aim ok, turret is part of vehicle = aim 5 meters above target
Okay it seems it has something to do with the vehicle moving via applyimpulse
But it's moving directly toward the target, so it shouldnt be making the turret aim away from the target
Is there some inertia bull...t being applied to it somehow?
does anyone know why AI often stops engaging enemies when theres too many of them? breaking LOS for around 40-ish seconds seems to solve the issue until too many enemies are visible again
Is there a way to take known targets from one AI agent and copypaste them to another?
cast multiple Character -> get their agent -> get the group -> cast the group perception -> insert the data
thats how i did it in the past
it can be run on AI Task also
Yeah my agents dont really have groups
Yeah I guess I have to do some jank
Hey guys, there's no call to super.EOnInit in SCR_AIGroup.EOnInit... I think that's why the Dynamicsim Lastlod Distance parameter is being ignored.
Just one line to fix and hours, even days, saved for mission creators!
I might be wrong, I'm new to ES.
@random owl
(sorry, that's not the right tooltip)
I think it's not being ignored because I have had severe targeting issues of turrets without setting that to 0, when I was away from the turrets
But when I was next to them they had no issue tracking and firing
Same with very high value in Dynamicsim Lastlod Distance (e.g. 10000)
To me, the only reason is not calling the super constructor.
And to be conclusive, the same test with a component that forces SetPermanentLOD(0), as many of you have done here
Trying to make a conflict map, how do I get each capture point to automatically spawn its own defenders initially? (not qrf or reinforcements) just the original dudes at the point?
please help
Why sometimes AI Ignore the Move WP placed from scripts?
Im doing such a massive update and itll finally work
High AI Priority
like combat, danger
But they are idle
Ensure you are using AIWaypoint.SetPriority()
or its js navmesh issues if its a modded map
I think i found couple A.I. related bugs in 1.7.0.13.
1.) If i spawn A.I. they spawn pretty high up in the air.
2.) If A.I. is in combat and after their threat state reached Threatened, their movement get's totally weird.
After they complete a move order, they always stand and switch to prone, sometimes they kind of bug out for 1 sec. where they just stand there doing nothing, bevor going prone.
Strange move behavior starts here: https://youtu.be/1y387lsCr-c?t=36
All vanilla.
Guess the move thing is part of the Move task, to slow their movement down once they are close to their move position?
Maybe good idea for cover move positions, since they tend to move very close to them, but normal none cover move make it feel kinda strange.
I think their fast/snappy transition from pre 1.7 is/looks much better.
How often is LastSeenMax updated in AI targeting/target detection?
Also what is Aimpoint Checked?
m_FormationComponent.SetFormation("StaggeredColumn"); This is not Working? on SCR_AIGroup
LastSeenMax should be the threshold in seconds, of when the target gets handled as lost/no los.
It's 11 seconds in vanilla iirc.
What is this function for? somehow my AI Group wont spawn on Ambient Spawn Patrol prefab
ActivateAllMembers(); on SCR_AIGroup
I revert the prefab to vanilla but it still wont work
Nvm i found it
Well the issue are when i set the Dynamicsim LastLod Distance to 0
Ambient patrol spawns are controlled by distance to nearest player factoring in server max view distance. This is for optimization purposes so best left in default mode.
the Dynamicsim Last Lod on SCR_ChimeraAIAgent prefab
This cheat is how I can run 2000 zombies on Arland, since not all are simulated at a time
the activating and deactivating should be processed by the component
not the AI itself
So if i set Permanent LOD to 0, the AI wont deactivate
Hello how can i making wandering npc in workbench ??
hello everyone how can I make perceived faction work for players, e.g. similar to FF you can wear enemy clothes to hide yourself
Add waypoints to the group.
Not sure how FF does it.
However there is a disguise feature in vanilla.
If i got this right, there is a PerceivedFactionOverride() methode, which can be used to change a characters perceived faction.
i think we can set the faction affiliation on the group or character?
I mean if we wear enemy clothes we will not be attacked. Not static faction key.
for some reason it acts not correctly
I managed to get it somewhat working.... once. But when I did it was over the top, wearing a disguise you could stand next to hostiles shooting them and they'd just refuse to see you as an enemy
Check the SCR_CharacterFactionAffiliationComponent > SetPerceivedFactionForAI methode.
Esp. m_PerceivableComponent.SetPerceivedFactionOverride(faction);
I think this feature is broken in vanilla, at least i wasn't able to get it to work for quite some time.
But you should be able to just try and cheat it by using this way i guess.
Not sure about the group but character it's possible.
From how i understand, you can kind of temporary change the perceived faction to whatever, by using the override methode.
yeah it is somewhat broken in vanilla
Because we can assign it via gm?
there should be api somewhere
Oh okay.
Yes i wasn't thinking about this.
I am thinking about add a component or mod someone to force override player perceived faction online.
Well you would have to make it like they does it in vanilla.
I haven't fully studied it yet but i think the core thing is to synchronize the perceived faction override to get it work in MP.
yep. I do not fully understand how the override works in vanilla. Need further investigation
btw do we have any possible logic to let AI automatically go into buildings?
The SetPerceivedFactionOverride will simply change how the character is seen by keeping his original faction.
So if you have an US character and you use SetPerceivedFactionOverride(USSR); the US character will be seen as USSR.
So far to my knowledge the best way to detect buildings is by using the QueryEntitiesBySphere and in the callback check the entities for Building or SCR_DestructibleBuildingEntity class.
Once it found a building, you can use the building boundingBox, to get the buildings dimensions and create a position out of the buildings origin and the boundingBox data.
Thank you sir. I am working on perceived faction now. Vanilla version has some shortcomings: AI will not treat you as enemy even shot at them when you perceived as friendly. AND you will not get perceived faction updated if you are already naked.
I am thinking about modify the danger reactions (weapon fired) and the rising weapon events in character controller
Np. π
Yes you can still get the original faction and use this, if the override was used.
Maybe the SCR_AIDamageTaken_Reaction or directly inside the SCR_DamageManagerComponent would be easier to get this done, to reveal it only if someone was shot/killed.
All of a sudden AI no longer move. No changes to the map, was working fine 3 days ago. WTF Id hold off on that Patch maybe do more research or something ..BI and get it together so the people who actually spend money to host this game don't get screwed
Sounds like a mod issue or no nav mesh
Yes, I have no idea what happened, it sent the navmesh files for this new map somewhere else, I searched for the .NavData and moved the necessary files to the proper location. Perhaps when it crashed recently something got mixed around.
If I recall navmeshes have a default save point for some reason, and itβs outside the project architecture
Strange
Is that why? Bro I was like WTF is it doing here when I found it. My mistake was first only transferring the primary cfg's and it was looking for the .NavData folder
Im rebuilding a NavMesh for a map that I've edited and its increasing the mod size to like 550MB from 50MB. Any solutions on how to compress that size?
I am only rebuilding the Soldiers and BTRlike
NavMeshes jump up quite a bit, lowRes is the smallest one. There is a rebuild tile function
You need all 3 if you want AI working properly on your map.
Don't regenerate the entire navmesh, use partial regeneration where it's needed
Is there an up to date guide on the wiki for that? I think it was a bit clunky to operate last time I tried it
Is the partial / tile generation possible for e.g. the basegame conflict/combatops navmesh files, or do you have to generate a new one, then "patch" that? Sorry to butt in have always had issues with project size too so jw
It briefly explains, I haven't used it in a long time and don't know if it changed. Rebuild Tile just pertains to the tile that the camera is over. Regenerate Changed has a tiled map, looking at it yesterday briefly the tile count never changes on selection, so perhaps it goes off of actual change
does your regenerated tile save? i found it just wouldn't save for me. maybe that was an old bug or something.
I've only used rebuild tile(camera), so im not sure
ok ok thanks for the feedback π
I'm watching @serene fossil scenario cration guide from 7months ago im on the Adding Tasks video (spawning 1 ai and then enabling respawn) ive follwed the steps but my respawns come in and USSR non combatants what am i doing wrong
.
AFAIK repeated respawning is broken. There's a rather old feedback ticket on it, I think π
Is there someone at BI that can offer me some AI behavior tree tech support for my specific AI case
Or general pointers on how to structure behavior trees such that things that take a long time to run (like Move tasks) can be easily interrupted by other, more important things
guard your long tasks
Can Road Network be generated from Custom Mesh? like using the Road Entity or Road Component or something similar to it? Like creating Underpass or Overpass bridge?
if the Bridge intersect with road bellow, it automatically merge?
when doing pathfinding around it
Hi. Has anyone encountered the problem that the AI ββin modded vehicles (RHS, WCS) with turrets can only shoot in the direction it's physically facing. It's as if the bot is looking through its own eyes, not the turret's optics. And since it sits statically on modded turrets, it can only target enemies within the gunner's line of sight, not the turret's. I tried increasing the AI's FOV, and it gave a positive result, but it doesn't solve the problem.
How can I get AI infantry to sweep through every building in a radius on a loop?
Is there a way to make AI do Search and Destroy where it keeps moving everywhere? I notice the AI will tend to find a spot then sit there until holding time is done.
Is Petr or Karolina on here to give further details on this?
Can one tell me how to spawn a basic BTR with AI and defending a certain position? Cant get the stuff together.
didnt find any good tutorial on this
I could get the AI entering on nearest yes, but its not patroling around defending position
Question, do things like weather affect the AI vision? Like if I make a really deep fog, will that automatically affect the visibility for AI? Or do I need to implement a system that changes the distance the AI can see depending on how much fog there is?
Hey @tawny parrot !
How this mod work?
https://reforger.armaplatform.com/workshop/67327DF387A86E4C-OnlyEnemyAutonomous
Hi, dosen't work, was only an initial test, but not work
ok. thx
When can we have AI not bug out when dismounting urals? They just blob up a traffic jam at the exit of the truck and then refuse to get out
I am legit trying to script a work around for this by splitting the driver/crew from the original AI group and drive around the getout waypoint but then he gets out after 1-2 wait waypoints. The leftover passengers still sit in the ural.
Can we please have AI properly dismount so QRF mounted infantry AI actually work?
It's ridiculous that I have to script fixes because AI don't dismount properly
I don't want AI running on foot from military bases across the map
also AI should at the very least move to open spaces in the get out waypoint and not cause traffic jams for multiple transports going to the same get out waypoint, and the driver shouldn't get out until all his passengers get out
The AI is very lazy and coded in a way that the vehicle just stops when it first hits the edge of the get out waypoint.
It's very hard for me scripting my own workaround for broken dismounting AI as I do not know how AI groups, SlotAI/entities, compartments, etc, work with the waypoint system and how to separate the driver dynamically in a scripted way
I really should not have to do this
what is the different between the black and blue lines for waypoints? https://imgur.com/a/B6dSYbG
How can I make AI behaviour (or even specific AI mods) only affect specific factions
How do you even spawn ai vehicles can you Tell Me? All i tried didn't work
i use the qrf dispacher action, there might be a way outside it
Is this a mod or what? Didn't read anything about this. Tbh the documentation of arma is one of the baddest I saw
Scenario Framework | QRF Dispatcher
Show how to use QRF Dispatcher.
I see. I am using conflict mode for pve Map, not sure if this is working there
Thank you for your input
Hopefully you can resolve your problem
U are saving my day thanks
driver breaking from AI crowding the vehicle
: Frame
SCRIPT : <0x0000020203E7E070> SCR_AIGroup: Move failed with result STUCK
SCRIPT : <0x0000020203E7E070> SCR_AIGroup: Move failed with result STUCK from <118.881,2.62378,222.722> to location <113.162,1,229.364>, retrying without vehicle.
it worked, but the waypoints didnt, thank you very much
followed the screenshot but the btr is not moving, its manned, thats a huge win
show the waypoints of slotai
same like on screenshot
but i cant see which wps he is using there
try putting slotwaypoint.et instead
okay
put 1 cycle and rest as move waypoints and set the 3rd waypoint of the ai to cycle only
where all waypoints are under the same layer
which one do you mean with 3rd waypoint?
layer 2
of screenshot?
yeah
its the name of the layer where the waypoints are stored, so its a name only
so not the parent layer?
yeah set it to slowaypoints 1, which is set as cycle
ok
2 3 4 as moves
take a look at these videos https://www.youtube.com/@blackheart_six-framework/videos
You DO NOT have to watch the videos in order. The playlists are organized to the contents listing on the left side of the page.
Each playlist contains 5 sections for better channel formatting. This channel is for those using the scenario framework with Arma Reforger Tools to create scenarios and other items. Enjoy the channel, hope it helps in ...
like this?
thank you π
the btr is moving, thank you very, very much.
ok fireteam is exiting the btr at some point
and patroling without him
nvm its working, forgot wp 4
is there dynamic respawn possible?
you would have to check the videos, i haven't gone too much into this but try #enfusion_scenario
kk thank you very much, you helped me so much
Can y'all fix the horn usage? When AI is driving and sees an enemy (I think is the cause) they lay on the horn and never stop. This has been an issue since 1.6 I believe, was sad to see it's still in 1.7.
hey folks!
A quick question here. Is this possible to make an AI character shoot once at specific directory with his current weapon without diving deep into behaviour scripts?
found only:
class DebugShootComponent: ScriptComponent
{
proto external void Fire(vector dir, vector mat[], IEntity projectile, IEntity owner);
}
but it's not the thing I really need
What is the correct way to set a group's formation via script after they spawn in? I think I managed to set it, but they are either changing it to something else, or completely ignoring it.
I have a group that is larger than the Wedge formation has positions for, so I created a WedgeLarge group, however they seem to keep reverting to the regular Wedge formation that is too small so I end up with a Wedge with a straight line of AI right behind the leader instead of an additional wedge behind the first one like my WedgeLarge is supposed to be.
It will be taken out. Thank you for bringing it up.
Well you can simply mod the default AIGroup and put bigger formation there? It shouldn't break anything and should work.
It's strange if t would fail trough script call but on prefab it would be without problem.
The issue is that with such a large group, I want them to spawn in one formation (set in prefab), but when they start moving, switch to another formation. Do I need to call update or something like that to activate the change in script?
If I want a vehicle containing AI to drive into a town and patrol for players to attack, what would be the best waypoint to select? Defend? Patrol? Search & Destroy?
It seems like all of these make the AI exit the vehicle when they get to the point.
Well and how do you setup different formation? Trough Formation component itself or snearioFramewrok?
I don't think we would have covered such you case. Most problematic for it is that they should pick random pints but ideally just on roadnetwork. So for that you would needd to write some custom logic, eventualy cusotm waypoint which would be doing something similat as search and destroy but points would be picked with help of RoadNetworkManager
I actually did an override of the SCR_AIWorld.et prefab.
I ended up creating a cycle waypoint and added a group of random patrol waypoints picked from the road points within a defined area. Did checks between points and the base itself so they are not too close. It seems to be working ok so far!
Sure you add new one there but than somehow you need to pick the new formation for given Group right?
One way would be directly on formation component(that should work easy), another some script APIs(there can be issues as group create movement handlers and formations can be assigned to each handler etc.) or there is something in scenario framework I'm not familiar with and I'm not sure if that works correctly.
Hello, Iβm currently preparing a campaign for an RP server, and Iβd like to know if itβs possible through the Workbench to place decorative characters that can also play animations, just to make certain areas feel more alive.
Iβm specifically talking about a Game Master game mode, not Scenario Framework (SF).
Thanks in advance to anyone who can help me out π
Well 100% its possible. But it would take some time to implement it.
Yes i can take Time, no problem
Do you have the solution ?
Ready to use? No.
But im curious how you image it work in game.
Like ai walking around and doing some random animation? Walking around and making specific animation in specific areas? Or standing in one position and sometimes playing animation?
all this
Check smart actions. On some compositions are objects that make ai use them for like sitting, when they safe.
Okay thank you
Do AmbientPatrolSpawnPoints work in GM scenarios?
is there documentation or a tutorial from bi explaining the ai systems?
What are you trying to do?
make a ai chaaracter thats a dragon flies about etc

Only on youtube, else you have to find on your own
i believe on youtube was how to add task via script
CMIIW
fanks
just in case https://youtu.be/SsL8arV1lMA?si=3iSHX9igP3qYfafh
But I guess you already found it.
AI Loot & Supply Waypoints Example Mod: https://reforger.armaplatform.com/workshop/6514CBB55F20D6E0-AILoot%2526Supplywaypoints
This Modding Boot Camp seminar was originally held on the Arma Discord Server on April 30th, 2025.
In this session, Senior Technical Designer Petr "Zeli" OndrΓ‘Δek and Technical Designer KarolΓna KomΓ‘rkovΓ‘ show how...
whats the diffference between AI agent and Chimmera AI agent?
SCR_ChimeraAIAgent is inherited from AIAgent. It has a few more functions than regular AIAgent does. I can't say I've ever used SCR_ChimeraAIAgent, usually AIAgent has everything I need in it already.
okie dokie, im not sure if im on the right path aas im using a a custom rig but i know i neeed a bt, anim graph that im slowwly working on
cos anims take up alot of time
i need help getting the Ai in the truck, can someone maybe share a video that explain how it works or leave a info how i make it π
Yo I can help you get the AI mounted in the truck properly, itβs usually a setup issue with compartments seat proxies or the group behavior in Reforger
Iβve done similar stuff before
Has anyone else noticed that after the 1.7 update, you cap a base and then the bots spawn there like 10 minutes later?
1st π₯³
2nd
3rd
4th... contact... man... 100m
5th . . . contact . . . MRAP . . . half a click . . . North . . .
ai? this channel was made for me
6th in le funny game engine chat
007 π
009
AI cannot drive ?
Enemy man
100 meters
north
Don't have their license yet
What I can tell you is that their slowmo dying animation are very funny! BI being like = "Lets make vehicle physics 10 times better, and soldier physics 10 times worst!" Or even better: "lets give them no ragdoll/physics at all so if players shoot them on their backs they still fall backwards looking completely awkward"
AI's pathfinding is much more refined than A3's
that I can tell you
But they've got some things that need to be improved.
tactics mainly
I just want a way to have them respawn in gamemaster
And continue their last objective
the most refined thing I've seen is AI not clipping through a wall but still walking against it trying to reach me
def
they literally don't do that period
they'll have hiccups trying to climb things though
they'll climb things and somehow while climbing be walking backwards so they fall back down behind what they were vaulting.
never seen them actually navigate a building actually
I wonder how's that gonna be different than arma's pathway lods
it's pretty decent
but they're very reluctant to maneuver buildings
they also don't have good "memory"
they'll timeout on searching for a contact after a fairly short time.
I was being surrounded up a building and they just got stuck at the ground floor
yeah
same, Man enter building...man enter building....man enter building....man enter building....2-1 on it
going upstairs in buildings is their biggest issue
if there's a person on a rooftop and there's a ladder to the rooftop they'll do it easy
but stairs? too scary
stairs are scary, you couldβ¦fall
The ai seem worse than arma 3 π
I mean, Arma 3's AI wasn't so hot during Alpha so uh.... I really don't wanna judge.
I'd love to see LAMBS come over to Reforger. That would be awesome.
I don't get it why people compare this to Arma 3 Alpha. I mean this has been in development for over 5 years with far more resources and far more experience under the devs belts. They also have much better tools and hardware now and at least twice the amount of employees.
"Dev for 5 years" Yes and no. New engine and DayZ took a chunk of time. Gotta keep in mind BI isn't just "the ARMA guys" anymore using an engine from 2001.
Different teams completely
Okay. My point still stands. Dismissed.
Actually, you just confirmed it is the other way around. You can't compare Arma 3 Alpha to Reforger release.... you just can't
Dismissed.
Ai is an engine thing not a Reforger thing... the Reforger thing is the game mode and the assets not the engine features. So what matter is how long has the engine been in dev and not the "Assets". Any modder can make Reforger assets but not an Ai from scratch
some ai things are engine things
some aint
otherwise you couldnt mod AI in say arma 3 for example lol
You mod on top of what the engine has... you can't mod what the engine doesn't have
i know that because i've worked on ai in other games
yes things like pathfinding and such are engine functions
of course
So I am pretty sure you did the DayZ Ai from scratch then, wait you can't because the engine has almost no support there!
but like the frontend of AI are usually part of the game
smh sarcasm isnt really needed

for example danger.fsm is frontend
kek
not backend
really depends on what you are touching about tho i guess in terms of the AI feature in-question
Well the whole argument was that we can't compare Arma 3 Alpha to Reforger because the variables regarding the development of both games are completely different. Then we got derailed onto if Ai is an engine feature or a "release specific" feature which I honestly don't care. I care about the end product and if it is moving the franchise forward, backwards or represents no improvement. I think we can all agree that at this stage the Ai for Reforger is certainly not bringing the Ai forward in terms of features while it does some things better like not going though walls or consuming too many CPU resources.
They will obviously improve upon it but trying to justify things by saying that things were "worst" before AKA Arma 3 Alpha is not the way forward. First we must admit that in order to improve upon it.
it seems like it
Nillers did say theres a lot more AI Improvements coming so
i guess we'll see
Nillers?
yeah CM
OH. Right.
Ai does not seem to be able to drive around currently, or fire mounted weapons unfortunately :(
Thank.
Anyone figured out how to actually use the Behaviour part of Workbench yet? I'm not able to link nodes beyond route and can't figure out whats required or not
Arma 3 alpha took 12 years to get to that point. So I'll reserve judgement for another 7 years.
What you are adding Arma 1 and Arma 2 dev time into the dev time of Arma 3? Then we must add DayZ SA dev time into the Reforger Dev time which is at least 8 years + the team 2x or 3x what it was developing the rev engine so....
how to reduce AI detect range?
If I understand it correctly so far, you cannot directly pipe outputs into inputs, you always need to have a variable to store stuff in. (ENodeResult sounds nice for example)
the variable types not being searchable is a huge PITA π
Thanks Troubble, if I figure anything out I'll post a diagram somewhere
I'm just randomly clicking stuff together and don't actually know how I would test anything π
it's only game.
Back on topic. Was playing last night and AI crawled up a ladder and eliminated my whole squad camped out on top of a building. We thought it was a player.
AI isn't completely brainded
they have their moments
Probably being zeuzed to death... this is my experience with Ai = https://www.youtube.com/watch?v=JM0fSoEnDns
#ArmaReforger #Arma4 #BohemiaInteractive
π Become an Elite Regulator today!
https://www.youtube.com/channel/UCComSKpk3c2ncwsW4wqSKeg/join
πΈAffiliates
https://www.humblebundle.com/?partner=vtechguy
https://www.gamivo.com?glv=8ok44gw3
https://www.instant-gaming.com/igr/vtechguy
Epic Games creator code "VTECHGUY"
πMerch
http://tee.pub/lic/r4vzn1...
at least the ai push, in my experience arma 3 ai kinda just stay put while being under fire, plus the reforger ai can jump and i think that's so cool, i think the new ai needs a little bit better path finding though
yes and this is the first iteration in the new engine
arma 4 will be awesome
you can script them to move while under fire
thats cool, didnt know that
Is the Reforger AI less or more braindead than A3
And, modders, how much of the AI is given to you?
still wrapping my head around all the code that ships with the workbench stuff, but it appears most of the AI stuff is implemented in enforce
By this do you mean its modifiable
should be
Have you seen any indications that it can be easily modified client side for singleplayer? Or is it a server side thing
my guess is it's shared code
I have not used enforce or SQF
and contextually dependent
yeah I'm still wrapping my head around enforce and familiarizing myself with the code that ships with the tools
they're text files as best as I can tell
Would you say its easier to approach as a new person than SQF or more difficult? I heard it was like C#
but they ship an IDE for dealing with scripts for all the syntax highlighting etc
SQF is literally the worst programming language ever, programming the bits by hand with a magnet would be easier than SQF
Can you tell me by chance how mods are like loaded and run on the client? Is it like server scripts like Arma 3?
still figuring that out myself, currently rifling through the documentation
and playing around with the workbench tool
Gotcha
BI has some samples up on their github though
so that's probably a good place to start
If you get the chance do clarify on this because I am a avid follower of AI programming
in Arma
I donβt even own Reforger
I am waiting a few months for the ecosystem to mature π just seen videos
well I can't speak to the full extent of what's there, but it looks like all the code you would need to create custom actions and extend AI behaviors is right there in enforce script
Thatβs good, the real question is, can you stop BIβs AI behavior from happening and use your own π like Danger.fsm
I'm sure you could, right now it's more a matter of figuring out how all of that is currently structured
thatβs good
the tools are "available" via steam if you're willing to dig with steamcmd
but the documentation is still quite sparse
I dont own Reforger so I assume I donβt get the engine
well you can just dl the engine from steam via steamcmd, but I'm not sure how much good that would do you if you don't have reforger
yeah probably a lot of shared assets
it's already possible to publish mods and stuff with it
it's just that unless you were doing dayz scripting or something this is all new
Iβll see if I can get it in a few months, Iβve never modded a game before and it would be a learning experience. If the language is not SQF perhaps I have a chance π
yeah I didn't even bother with arma 1-3 scripting, SQF was a no-go
this new scripting language is much, much better from the looks of it though
still a bit weird, but I'll take it over SQF
Is it documented at all online?
lol well, there's some documentation online currently
Ah, Iβll wait a few months π
if you're newer to programming it's probably better to wait for a bit more documentation yeah
new language + new project structure for modding could be pretty overwhelming without docs
in the meantime if you want to learn the general concepts, C# is mega close to enfusion's language
Iβve dabbled a bit with C# but I havenβt had a use until now, I am pretty familiar with the concepts
then you probably won't have any big problems with enfusion besides the same struggles everyone else is having right now
Thatβs true, I just havenβt had a lot of experience working in a game engine or dealing with.. well.. features in game engines π
They are using a Behaviour Tree model for most of their AI. If you've used it before in any engine or as a custom tool, it's very similar to how most BTs are implemented. You can also create your own BTs or extend the nodes of existing ones as well.
Correct.
Its not fair to compare reforger with Arma 3 Alpha.
Reforger is built on a new engine that basically started at a zero point a couple years back.
While Arma 3 Alpha was built on (at that time) over 10 years of effort that was already done and didn't have to be made from scratch and instead was just improved upon. Like alot of the AI code for example.
To my understanding, all the AIs have a controller that drives their logic. This is also very similar design if you worked with engines like Unreal. I've been trying to find out how to possess/attach a controller to an entity though. Any help in that regard is appreciated π
Yeah, I would love that too, because then I could actually test stuff π
You are also correct, nothing more to add from me. All in all this new engine will be amazing in time π
Ok, AI does not know how to climb ladders
or drive, since none of them want to get in the driver seat π
"2, driver, get in that vehicle" 2: negative "2, driver, get in that vehicle" 2: negative "2, driver, get in that vehicle" 2: deep voice No
How are the group and individual AI load balanced, in other words, how are the intensive checks for the AI sequenced through enfusion?
Does anyone have any idea about scalability of the AI?
Youtuber Dslyecxi said in his recent video that he ran 100 AI without a big problem
The current AI are simplistic, I am talking about the engine capability to handle and balance more complex calculations on the AI, how does it balance them?
I have noticed in conflict there is a pretty good AI system, I am not sure if it is the base AI or if it is in the mission. When ever you're spotted you are immediately suppressed and then the closest group pushes to your last known location. The only thing that is a little off is their ability to spot instantly and their accuracy when firing full auto.
In some scenarios I have been flanked too, not sure if that is intentional but they are a pretty tough enemy solo.
I'm getting pretty bad performance with lots of ai, comparable to arma 3
Is this on a dedicated server with both client and server running on different machines? I'd imagine that still will make the biggest difference.
we were playing with 15 players and 150 AI without any performance issues
the AI is pretty good at moving and shooting, but thats all it can do now it seems. no driving, not responding to suppression, no flanking, etc
ive seen some of them sometimes enter buildings but im not sure why or when.. they dont always do it
No docs on load balancing that I'm aware of, but based on how their networking model looks like it's done now, I'd be surprised if we saw something like headless clients return - I think it's all done on the server now.
Headless clients were also most commonly used on the same machine as the server process and if the engine has been optimized (multithreaded) there is a much lower need for something like that as they were a hack to get around the cruft of the RV engine, in my opinion at least.
Well the script interpreter is only running on the main thread, I wonder if the AI is also running on one thread, and if it is the same as the script interpreter or a separate thread.
Huh, I saw there was a "thread" keyword for parallel processing. Do we know if that's an actual thread or still just schedules it on the single-threaded interpreter?
https://community.bistudio.com/wiki/Arma_Reforger:Scripting:_Keywords#thread
Ah, sweet, thanks for clearing that up
Script interpreter single-threaded in Enfusion as well? That's a major let-down.. forget creating large missions without having to hack around performance penalties then π¦
You can make large coop missions... against the Zerg
if A3 is any metric, 50AI's and performance goes to shit with single-threaded script engine.
I was really hoping for fully multi-threaded scripting engine being implemented
we can even get naked in the showers now
okay based? But we didn't get denise richards in the shower 
yes enforce script is single threaded
forget creating large missions without having to hack around performance penalties then
it's much faster than sqf though
in my measurements i got like 40-100x times faster
there is a danger event when smth lands close which increases their threat level and they choose their stance according to that
It's based on LOD, there is AIAgent.SetLod and AIAgent.GetLod, but I am not sure what is setting the LOD level π€ and if it's done by c++ or script.
I guess until someone makes a FSM to add complex squad/fireteam/platoon based battle drills both in A3 and in Reforger and compare the server FPS, we will not know for certain
There are behavior trees now, FSMs are in the museum π
yeah that, i had forgotten the name
So the AI is worse than A3?
And performance is just better because of how simple they are right now
it's 100x more moddable
but at current stage they don't have super complex behaviors
also since they use behavior trees now, more interesting behaviors are easier to implement
What about for LOD check at distance? The cost of a command to action is cheaper, but what about particular commands that will probably always be expensive? Line intersects, LOD check, etc
I was talking about pure computation like add/multiplication
just script VM is much faster
if c++ code is heavy then it's same
Yeah
if c++ code is heavy then it's same
well except that overhead of VM is smaller too
Right but if you took time to calc line intersect for example, it would be faster but not say 10x as fast
So we still have to be careful about costs of things for nodes/scripts and think about ways to do methods over multiple frames
yes, there is no magic
Yes, I think some people are getting too ambitious with what they want to add right off the bat. Need to know the limits and how to properly balance things before going crazy with AI complexity
It would be nice to repeatedly check for long line intersects all around AI but π
I think the improvement on the script side will mostly be the array equivalent handling now right? I mean arrays in RV were cursed
Yes, I think some people are getting too ambitious with what they want to add right off the bat. Need to know the limits and how to properly balance things before going crazy with AI complexity
I did quite insane things with AI in arma 3, just by using caching wherever possible and carefully tuning things to not take too much time, and that was with sqf which was slow as hell π
Yes caching and being careful with frame exec timing
Cba frame handling framework... passing vars through local frame handlers to quicken things up...
And of course the cba statemachine
But again a lineintersect command is slower on sqf than enscript but is it that much slower?
I didn't measure
you can test it if you like, command is called GetGame().GetWorld().TraceMove(...)
but also... how much more is geometry complex here than it was in arma 3? Is line trace in a3 implemented in same way as here? too many different things that it probably doesn't make much sense to compare.
Yeah I only really care about the practical effect that the command costs have in calculating things for the AI
Not a 1 to 1 engine comparison battle
Iβm still interested it it were possible to multithread this stuff
we already have zombie ai
its basically what they do currently
all go in line, no formations
on rare occasions they do have their moments
This game needs to be modified from ai rather than adding a 3d model
How so?
does anyone know of a simple AI spawn script
@marble grail @haughty ivy
Enforce being single threaded doesn't really matter, the benefit is that the game can now leverage threading and multicore a lot better, this means that there is more resources for the scripts to run even if they only get one thread
Who knows, maybe they will have multiple threads by time A4 comes out, I think that the performance boost i've heard about now is good enough
I hope in a few months once the ecosystem gets better, I can learn the basics of enfusion and then go to modding
It would be nice to see, if someone can run a direct comparison of a logic system in A3 and Enfusion and compare the performance
the benefit is that the game can now leverage threading and multicore a lot better, this means that there is more resources for the scripts to run even if they only get one thread
That is also true.
My personal opinion is that, first, introducing multithreading to our scripts will just introduce 10e6 bugs caused by improper usage of muiltithreading, which noone will ever figure out where they came from. Multithreading is not a tool for for average scripter.
And second, all investments into custom script require a big budget & time, which is not the case unless you are Microsoft π
So for now it's easier to go the way of using scripts carefully and for light tasks, glue logic, UI.
True, and AI
I feel like the performance people are saying it has is enough to run AI logic
Yes, and AI. Currently script in AI is used carefully to ensure it is not used for anything heavy.
It would be nice if someone could implement some features like breaching and cohesive squad manuevering
for me few dozen AI's noticeably affected game's fps by just being around
I am sure that can be fixed in the future, but how much of an effect was it
from 100+ to 40's
Hmm, I have noticed different results from people who placed a lot
essentially like Arma3
My personal experience on a incredibly powerful rig in Arma 3 was that placing more than 20-30 units will cause you to go into 30fps
I have seen people place like 50-60 and still be in the high 80fps
Perhaps there are some optimizations that need to be made
You should make a youtube video and publish it, im sure modders and devs would appreciate it
everything possible should be multithreaded. It is the way forward and something that would be hard to re-do later
There is no benchmark, testing performance doesn't seem like a priority.
I feel like there could be some constraints having AI split between multiple threads especially syncing them
I don't think there is a point to comparing a 20+ year old engine with a new one. We should be looking for ways to improve the new one.
The performance bottlenecks will only become apparent once people script in more and more complex AI, so it really isn't a good indication of any sort of performance comparison now anyways
How would you imagine to multithread script vm without adding extra overhead? Like, when it needs to access some component of entity, it would need to synchronize anyway.
And I wonder if such thing exists somewhere already?
There are plenty of UE multithreaded AI applications
they typically separate between individual/immediate AI calculations with cheap and fast running machines vs slower running more complex higher level decision making
so the sync between them only needs to be periodic in nature and consists of layers of AI - think level 0 individual, level 1 group, level 2 whole side/larger group
whole threaded application for pathing requests
But these use are C++ code, correct?
not only, you can do it in the flow interface
scripted
the synchronisation is automatic
so does it have some scripted language? or only flow? and flow nodes are C++ nodes, yes?
I didn't look into this so I don't know
It can, it doesn't have to be
typically you want it to be anyways if it's your game
but what specifically prevents a script interpreter/VM from syncing things?
yes it would have overhead costs for unnecessary things synced all the time, but that wouldn't prevent a method of controlling that
so is there an example of such configuration, where these flow nodes are multithreaded and use a multithreaded scripting language?
yes, and that's the problem I think, because most of script is also used for things like UI and game logic, where you don't want this overhead.
but why not have scripted AI nodes on a completely separate thread
basically run a separate VM for it
I think it's because scripted VM accesses components from the game world (from the other thread which you suggest). And we get again to the problem of multithreaded script itself.
I don't think that is a problem with multithreaded scripting. UE5 takes any regular task and gives you the ability to throw it to a worker on a separate thread, but you are easily able to access things running on the other workers/threads. That is through blueprints. Of course there is C++ given to make that possible but I don't get how that would discount it; it's not like the script interpreter lacks C++.... I don't really see that as an impossible challenge to achieve, and the potential benefits especially to an ArmA game would have been enormous.
Instead we have a system with which I am very hesitant to work with because it seems like there will be a bottleneck on the complexity/cost of AI calc, exacerbated by having the rest of the scripts running on the same thread.
I guess we will just have to wait and see how bad the bottleneck is when people start properly loading it
@elder wave I just discussed AI scripting in #reforger_feedback with a developer, read up on it.
They are asking developers to use Behavior Trees (implemented in C++) instead of scripts because they unnecessarily slow down performance since all scripts run on one thread, whereas it seems like behavior trees are utilizing multithreading and multicore, you can read what he said and interpret it for yourself
I should be responding here indeed.
Not sure if you saw my question or didn't want to answer it, but, do you know what scale BT's can handle?
are behaviour trees multithreaded? I believe it was stated earlier they were not and ran on MT
Let me grab the quote
There is some misunderstanding here.
AI functions do run multithreaded, including perception.
AI behaviours don't, because they use scripted nodes a lot. And scripts run on main thread.``` - klamacz
Scripted behaviours are quicker to write, so they are not going away anytime soon. Also for modders it's only scripts anyway.
Heavy logic like pathfinding, movement, steering, aiming, perception is already as CPP components.
We will optimizing some current AI systems to CPP when they mature enough.
As you all noticed, AI is pretty rudimentary
I asked if behavior trees were a CPP component and he did say yes
at least implemented in C++
I am pretty sure the behavior tree themselve is an abstract model but its actual execution is done in C++, I would need him to explain more but I don't want to waste his time lol
AFAIK that means that the only multi threading side of AI will be from BI on their C++. and not possible from a modder's side of things. It's good that some core expensive things are multithreaded, but what about if a modder wants to alter pathfinding component?
I don't know why a modder would want to modify the pathfinding component itself (how to calculate paths) if its flexible enough, but actually using pathfinding I would expect to be in the behavior tree itself, which the modder can modify
but what about if a modder wants to alter pathfinding component?
it's not accessible to change that of course, enforce script is not meant for such things, that's a job for C++ code
They have exposed the actual connection between "if x happens then y" but not "y"
In A3 if I remember you can make FSM's for the AI logic but you can't actually modify the components the FSM actually executes
sort of like that
but higher performance
Oh yes definitely.
But solution depends on what you trying to do. If someone will want to mod in insects, then BTs are overkill.
If you want to do HQ level commander AI, then BTs are your solution.
If you want to do smart guided missile - then scripted component with simple FSM inside will be sufficient.
For typical AI as we have now - BTs.
``` - to when I asked if you should use behavior trees primarily
If you want to do HQ level commander AI, then BTs are your solution.
But these have to be carefully balanced with the rest of the script demand in the MT, right?
you need your nodes to be quick and return fast
Of course there is C++ given to make that possible but I don't get how that would discount it; it's not like the script interpreter lacks C++....
and it exactly means multithreading script core itself - adding synchronization logic to basic things like 'call some method on an object'. As far as my knowledge goes, then we would have to acquire a lock on every single method call. And not doing that for the user(= scripter) authomatically would mean that I can create a mod, spawn a new thread, call some method on some object - while the object gets destroyed - and crash the game.
I don't claim to be entirely correct here of course.
Yeah I mean I recognise it's basically an impossible task now unless it was built with that capability in mind. But having true async worker threads would have made the scripting insanely powerful. It's much faster than SQF but to me I see a ceiling, will yet to be seen where exactly that ceiling is when modders start putting intensive load on things
I'm not going to directly compare games with completely different target environments but in one currently developed on game all AI is currently scripted in blueprint and they are using additional threads on the server for different levels of AI from individual to small group -> big group
let the devs work on the simple stuff first then move to the higher level while naturally offloading the higher level tasks to additional threads
I appreciate the data types and the inherent increase in speed in enScript but it doesn't magically make intensive commands faster... and with no scheduling and no async it seems like AI modding is going to be a pain, kind of seems like things are best left to BI with access to the C++ and leave it at that
@elder wave They haven given the devs a tool specific for modding the behavior tree of the AIs and it seems like it has enough information to deal with HQ level activities , what more can you ask for?
I am sure you can call some small enfusion script methods in the FSM for unique functions like door breaching
the issue is with enscript functions running their own βstate machineβ that block the game
Perhaps I just missed that, are BT running separate from the MT?
yes
yes? I thought opposite?
There is some misunderstanding here.
AI functions do run multithreaded, including perception.
AI behaviours don't, because they use scripted nodes a lot. And scripts run on main thread.
that's your quote of Klamacz quote
I asked him if behavior trees were implemented in C++ he said yes
AI behaviours don't << meaning Behavior Trees
so I assume some multithreading
why assume that
exactly
Well Iβm not sure but I assume if they have it in C++ they would be using multi threading or at least utilizing it internally
Honestly we will just have to see and test it out ourselves
He said he was going to offer advice to AI modders when they do push stuff
it seems like AI modding is going to be a pain, kind of seems like things are best left to BI with access to the C++ and leave it at that
I think we will know the limits once someone tries to do something
that's exactly it. And I hate to be so pessimistic, but if the system is looking like how I perceive it to be, I don't see much point for modders to be working on AI at this stage.
I'd say the opposite actually, we should be trying to do as much as possible to introduce new behaviors for AI because that can infer to BI what to improve within the base AI logic.
I would like to see an all in one package sometime soon:
Company level organization and logistics and objectives
Platoons that base goals on company objectives and manage supplies
Squad level fire and manuever, patrol, garrison and support roles
I think this is possible with behavior trees and some script
But the biggest thing will be speed, cost of calc. Anyone can make cool AI but it can easily be expensive and slow, or non responsive due to scheduling the expensive stuff out
If there is proper documentation and tutorials for EnScript and the engine sometime soon, I would like to start learning
I feel like the behavior trees being in C++ (including pathfinding, moving and aiming) will increase speed a lot because its much faster than calculating in SQF
yall just go and find out
like try implementing some things
While that is true, the base concept and behavior would be there and BI would be able to re-implement and optimize various aspects of modded behavior utilizing C++ and MT
If bohemia has an already decent AI then not much is needed to build on top of it
Like, if the squad and individual level AI is good enough, only the higher abstractions need to be fully implemented
And you can make minor adjustmenets
that arenβt as performance heavy
Exactly, that's why we need to try to help fill the gaps and BI can then move those into the engine and fully optimize them
Do you know enscript @frank hound
Does anyone really fully know it yet? π
I am not interested in modelling or animations or effecrs or stuff, is it worth learning EnScript just to do the Ai programming
I saw the engine and it looked tedious to navigate
I don't see much point for modders to be working on AI at this stage
Seriously? Even with behavior tree editor? And new OOP scripting language which is many 10s times faster? Therefore people should sit and cry that it doesn't have MT therefore noone should do anything? I am sure that there are far less people who would be able to utilize multithreading in a meaningful way for AI than people who can make new interesting behaviors.
Guys worst case scenario, 40x performance increase, who cares if its not MT?
We can still simulate a lot
And faster
not all commands are 40x faster
yeah but
Enscript is tedious in certain aspects, but yes in general it would be useful to know but I'm coming from learning programming from years ago so it was fairly easy to pick up on
Heyo, new to arma modding here. has anyone managed to get a ai soldier to get in and never leave a sentry turret?
I know C, like C full stop, and some Python, do you think I have a chance? I know a little C#
Meh give it a week and I'll probably change my mind
I think the hardest aspect of Enscript would be learning OOP and how that fits into the grand design of the engine (and how various aspects interact with each other)
sure, but most important is knowing OOP principles.
in a way Enforce Script should be easy for you because it doesn't have namespaces or complex ways to include 'modules' or 'include files' π
If its just βclasses exist, inheritance exists, you reference classes and objects β I understand*
understand
Doesn't have namespaces... yet /s π
Like if its simply dealing with game objects then sure
Stuff like polymorphism and complex inheritance stuff and creating design patterns is a little annoying for me
From an AI programming standpoint it really doesn't have much to do with the language. Its a lot more about logic, flow, and how that all integrates within the knowledge the game has about the state of things.
yup, felt responsiveness
it's what the users care about anyways
terrible languages with good AI in some older games heh
*scripting languages even
Well, if the game is already providing pathfinding and knowledge I shluld be fine
I just care about what I can do to make the GM not tear their hair out because this fireteam won't stop standing still and does nothing to pull out their AT to blow up the tank that's shooting them π
Also, behavior trees... are a language of their own.
My issue is βlets implement Pathfinding from scratch β
well thats just flowcharting
lol
no no it's quite complex

sequence is rather simple, but there are also selectors
and decorators with abort conditions
Well thats alright
Yeah i mean it's simple to make dumb pathfinding
did u try defend waypoint?
Hmh, so first getin waypoint and then defend waypoint?
defend wp should order them to get into static guns π€
oh, I'll give it a shot
Nah, he only walks ontop of the gun then and waits
I get this warning:
No clue what it actually means though
π€ maybe you could try it with another tripod? if this specific one is broken.
Giving up on that part. Even when using gamemaster to order him to get in he only does so if there are no enemies nearby π
omg I did nothing other than remaking a defend waypoint and now it suddenly works
hey guys! im making a zombie mod and have been progressing really well with it, i was wondering if any AI enthusiasts were interested in making a better AI behavior tree for this purpose?
the mod is going to be open source obv and the current system has the AI run up to the player before attacking them at point blank range, im not an AI person so its def not the best implementation
PM me if interested
hello could somebody help me (total mod noob) with creating a scenario with AI that respawns ?
ive been working on this aswell. havent found a way yet. π¦ ive downloaded mods with respawns off the workshop and am currently disecting them to see what i can find.
Which mods have you downloaded for research? AR nightops 1985?
ai sandbox
Alright I'm gonna look at AR nightops 1985, supposedly is able to spawn AI dynamically. Let's keep eachother updated @wanton hollow
fasho
yea i got nothing, the thing i thought it couldhave been- it is not lmao
Aw shuck. I'm struggling with the workbench too.. Too bad there doesn't seem to be good documentation out there
not yet haha were definetly the forunners
cou could potentially join useless fodder's (yt) discord ive been more active there, and have had more information available there
hes also got a decent vod of him playing in reforger
Okay cool i'll check that out. Thanks for sharing
Anyone managed to disable AI movement or such?
I tried using the AI Settings on the AIWorld but it does nothing
i had some success setting the navmesh to none
AIControlComponent has an 'Enable AI' property that makes them go dumb and not react to anything or move, but it doesn't make them stop current actions. for example, if you toggle it dynamically while they're running they will just keep running past their waypoint until you re-enable it
Thanks, i found that and made a small compoment to disable it on spawn
yeah it's not ideal but better than nothing i guess
has anyone tried to add animal ai yet?
I have been in the Arma community since 2016 and since 3DENs release I've been mostly playing SP and fiddling around with AI mods. My hobby is Arma, specifically simulating larger scale conflicts. I've had to resort to pen and paper scenarios for logistics and "big picture" stuff, because A3 even modded still was difficult to get a major simulation really "going". I am also not a good scripter, so I have to use mods to my advantage.
What I would like to see somehow be implemented by a mod (or multiple mods) is something like this:
- Chain of command with batallion level HQ at the top giving orders
- Autonomous company/platoon that receives orders from AI high command and factors in environmental variables to determine best way to approach an objective
- Logistics between companies/platoons, ammo sharing, fire support (including mortar, armor, air, etc), medevac
- Fire and manuever organization within a platoon (One squad is providing suppressive fire while another moves toward an objective)
- Squad level suborganization (buddy system) to navigate complex terrain
- Reconnaisance system that travels up the chain of command
I know this is quite difficult to accomplish when it comes to implementation, but if we look at DCO & ALIVE + Lambs/VCOM, it's definitely possible if its put together
I think with behavior trees this can be accomplished, combined with some Enscript routines. I am not experienced enough in programming or design to actually do any of the programming, but if anyone here has a team interested in working on this, I would be interested in joining you in testing the system out. I am unfamiliar with Workbench
ultimately it comes down to what the player notices ... a lot can be virtualized instead of represented with animations and entities
the survival time for bots against players is quite low. if you increase their skill and survivability to the extent they can pull off things like medevac, the players leave the server and no one sees it π
so all the nice complex 'smart tasks' have to be done in the few minutes between first contact and the bot getting killed
chain of command and strategic level has more flexibility for design, but is also less visible so the question needs to be asked how much complexity is necessary since the player cant see it
we also dont really know the AI budget yet either. in A3 it was about 125-200 , depending on player count/server/bandwidth
There wasn't any AI budget in A3 afaik
These sort of systems aren't for player "fun" factor, its for immersion and milsim being reflected on to the AI... The ability to disrupt operations and do information warfare, mods like ALiVE and Hetman were popular for that reason..
i mean, how many AI you can have in scene before server performance would choke
I am pretty sure the new engine has alleviated a lot of the performance issues with bots
I maxed out my budget which seems to be there only for testing purposes in Reforger and still had maximum performance on my machine
The chain of command/squad strategy wouldn't immediately make it unfun because they are too smart, if anything, giving them more options other than "fight or run away" creates more dynamic AI, which decreases predictibility, requiring more strategy and mindfulness ingame, which is the point of a title like Arma
If you do something that makes the AI literally perceive better or aim better, that can result in immersion breaking because you have god bots that can kill you instantly, but if the AI's follow more realistic suppressive fire, calling for support, and fire/manuever you have difficulties determining the difference between players/bots
yep
the fire support stuff was relatively easy, suppressive fire was nice but never worked well in A3 without performance killing fire loop
the maneuvering should be interesting, it looks like the bots dont stop in combat like A3 bots did
Yes but, it seems like the AI are a lot more flexible resource wise, so I think suppressive fire would work well
they are using a different method of logic for the AI, behavior trees vs finite state machines
theres some exploration to do first . to have them behave like players you need them to be able to move as fast as players... in A3, you could script "retreat/fall back" all you like, but they could never disengage fast enough
The thing that makes me think Bohemia does see a lot in AI is purely the fact that it seems so flexible by nature.
Like they want to build a lot on.
if we can get them to move as fast as players then they will be dangerous/fun, even with low unit level accuracy values
Especially considering the fine detail of jumping over walls.
The AI automatically retreat when they run out of ammo
That's why i never liked the skill system in A3.
Didn't make sense at all imo
I think adding some more options and strategic interaction between squads (instead of pretending like infantry are autonomous) would make immersion good, basic things for vanilla. Like, logistic support, ammo sharing, medevac, joint tasks
Like, if there is a sniper team and a rifle squad who are sharing similar objectives, the rifle squad can communicate with the sniper team, and ask them (in some way or another) to provide covering fire or reconnaisance of the area, because they are more mobile (2 units vs 8-10 + a vehicle)
this is possible with AI
very much so nowadays
yea. i scripted behaviours like that, but treated it as another form of fire support, same as calling in mortars/CAS but instead its just a group to go and watch a certain area, called in by a group in combat
Doesn't necessarily need to be scripted, they gave us behavior trees that can handle that type of stuff
if thats what u meant
if cas unavailable > if mortars unavailable > if armored vehicle unavailable > call nearby squad
behaviour trees are just scripts presented in a visualizer , it eventually just goes back to if (...) { stuff
Not necessarily, if you scripted it in the .c files you would be running EnScript, the behavior tree execution is implemented in C++
id better have a look at that π
I can find a message from here earlier, one of the devs listed some scenarios
here let me get it
@wanton wigeon I dm'ed you the message from the programmer
let me get the other one where he talked abt cpp
ty
there you go
From what it seems like, the behavior tree system is for AI logic, implemented in C++ and runs in C++ internally, and EnScript is for scripted behaviors, which are slower and general purpose
You can't as far as I know, I don't think Enfusion supports loading external .dlls at all yet. What I recall the dev saying was that AI is currently all running as scripts, which all run on a single thread in the engine. Later, when things are not changing so much, they may port the AI logic to the actual C++ game code to improve performance
I encourage you to write out a list of criteria and decision nodes that can achieve your 2nd point there. It's easy to say "platoon receives orders and factors in environmental variables," but that sentence captures an absolutely vast problem space that your AI algorithms need to be able to explore. Ideally they need to be able to solve it in a believable and performance-efficient manner, but that's a concern for later. What you'll find is that the decisions quickly blur into very nebulous qualitative characterizations of the situation.
If you try this exercise, ping me and I will help you narrow the decision nodes into things that are actually actionable in game code
You'll find that even solving simple problems involving environmental conditions are not easy. For example, say you have two AI soldiers 300m apart, shooting at each other. If one soldier is near a vehicle, it's pretty easy to tag that object as "cover" and tell the AI to go stand behind it.
Now consider the same situation where the vehicle is halfway between the soldiers. It can still serve as perfectly serviceable cover, and the soldier should use it to break line of sight. But how do you characterize its viability as cover? You have to calculate the "shadow" of the vehicle from the enemy's perspective to understand the volume that can be used as cover behind it even if you're not close to it. You have to do this for every object nearby that might meet these criteria. If there are multiple enemies that are spread out, you have to perform this calculation for each one of them. You end up with a combinatorial explosion of very complicated computational geometry that every AI soldier has to compute against potentially many other AI soldiers.
Not that these sorts of problems aren't solvable, I'm sure there are clever solutions to them
But the complexity stacks up reeeaal quickly so it's no surprise that nobody has really solve this problem yet, in any meaningful way
Is there a way to set follow distance for the follow waypoint?
Can I change the AI's EOnContact method so that it doesn't shoot at the player if he is wearing the same clothes as the AI faction?
Or even simpler, sitting in a vehicle that belongs to the AI faction?
I want to script the AI so that it opens a gate to the player when he sits in an enemy vehicle π
Does anyone have experience with this?
Im wanting to do something very similar to this and am trying to look into it now. Can you tell me where the EOnContact method is?
Im actually wanting a more complex GTA-like wanted system for my "overthrow" mod
I honestly don't know myself xD I added a script to the AI that overrides the function.
But I just looked, I think the definition takes place in IEntity.c -> [core/scripts/Core/generated/Entities/IEntity.c]
but I see there that this is the wrong approach for both of us. The method **EOnContact **is an event that is triggered when a character touches something.
But I found the file SCR_ChimeraAIAgent.c -> [ArmaReforger/scripts/Game/AI/SCR_ChimeraAIAgent.c].
There are methods like **IsEnemy **etc. maybe we can do something with it π
ok thanks, ill have a look and report back any findings π
ye same
IsFactionEnemy seems like a better place to look
what I might do is to extend SCR_CampaignFaction and override that method to implement my system
and make a WantedSystem component that goes on soldier entities to store my data (wanted level etc)
where does the method come from?
SCR_*Faction
scripts/Game/Faction/*
depending on which type of faction is in your FactionManager
ah thx tho
Has anyone made the AI not hyper vision thermal scanners yet?
Staying in this chat, I have come to know about certain terms like backend, frontend, C++, D--, Java and stuff
Dβ? What is
Glad to see you got more experience
Check perceptionComponent properties on character. There are senses for hearing and seeing.
Also, ChimeraAIAgent prefab, main entity has danger event range - that's reaction to distant shots for example.
PerceptionManager has a curve which defines how well AI should see with ambient light of (for day/night cycle)
Rest in behaviors
What is the reasoning behind βChimeraβ, why the separation?
My guess is that "Chimera" references the morphing visual nature of the entity according to equipment/personalization. π
Chimera is code name for Arma Reforger
Chimera prefix informs you its code which is specialized from generic Enfusion solution.
Engine has AI Library which is generic
Game has Chimera AI which is game-specialized.
Can you elaborate on what you mean by βgame specializedβ ?
Generic AI solutions are like FindEntity, Move, Aim
Specialized game AI solutions are like FindVehicle, CharacterMove, GetInTurret and so on.
Basically in BT and in components you will find different layers of solutions. If you want your AI to work with game assets and game features, you should be using Chimera classes, Character nodes and generally specialized components from ArmaReforger/scripts.
On the other hand, if you want some very different AI from typical characters, then you better use lower level AILib from Enfusion.
not to beat a dead horse, and just so I am understanding, Chimera AI is just a prefab of AI Library with more components added in, so I could make my own AI prefab then, right?
more or less. Yes, you can make your own prefab. You can use any level of AIAgent/AIGroup/ChimeraAIAgent and any component in it. Just some combinations wont work because they depend on game features.
If you want to mod AI soldiers - you should follow ChimeraAIAgent and Character_base prefabs.
Speaking of Chimera AI, the perception component is an external DLL so it's impossible to see what it's actually doing. I just want to know how it discerns a target being friendly or hostile, because at the moment it just seems different faction = hostile and that is extremely limiting
Arma 3 was a bit more involved and allowed you to flag a unit as captured (and effectively civ)
It calls IsFactionFriendly or IsFactionEnemy on factions, which can be scripted and you can have some more logic there
If you want civilians, unassign the faction. I consider FactionLess being closest to civilians logic.
If it does not work, let me know, we'll fix it π
Ok thanks I'll look into that
One more question, is there an easy way to tell if an AI entity can "see" another entity with clear line of sight
I have sorta done it with a trace but it seems like it would be handy to have a method on the perception component to do this and use perception settings etc for a more accurate result
There's BaseTarget.GetTimeSinceSeen() π€
Hmm might do it
Have a bit of snippet, from a code which I was experimenting some time ago.
How to get factionless targets from perception and analyze them for your behavior or script
Ok cheers
any way to have the AI perform a user action (in bt) like melee? i spent some time poking around and it seems that the only implementation of this is for players
i assume it will take a custom script being imported into the bt but im not sure how to go about doing that, also side note: are there any examples of ScriptedCommand scripts in the bt?
There is aitask request action
Check available actions in input config.
AI can do all actions just like player
Inherit from ScriptedAITask
Create your own bt
Mod the character or aiagent
cant seem to unassign the faction.. have tried:
FactionAffiliationComponent.SetFactionAffiliation(null)
FactionAffiliationComponent.SetFactionAffilicationByKey("")
FactionAffiliationComponent.Deactivate(ent)
they keep shooting at me
so how does PerceptionComponent choose ETargetCategory.FACTIONLESS?
could be useful for some of the external code to be on github imo just so we can see what its doing
its possible the spawner is re-enabling the affiliation component
because SCRIPT : SCR_RespawnComponent::PlayerFactionSet response received: OK
Thanks very much
@timid light did you make your own prefab for character? or just running script on typical loadout. Yes, I think respawn system may be setting the faction on spawn.
@stone sapphire To my understanding the SetMeleeAttack does not take in an int action value and also it just generally isnt performing the attack but the debug message appears
my own FIA prefab, and then in gamemode.OnPlayerSpawned im trying to unset the faction
basically I need a way for the player to be "CIV" until theyre seen as a danger (holding a gun etc, as per your snippet)
I assume perception component is ignoring whether or not the FactionAffiliationComponent.IsActive()
and just getting the faction
or maybe I can mod SCR_ChimeraAIAgent.GetFaction() to check
will try that
that may be a bug, let me check
Action name = CharacterMelee
and it works for me, good luck
not having any luck in returning null from GetFaction @stone sapphire. The method only seems to be called when checking who fired a shot. Its never called on the player
Is perception component just accessing the FactionAffiliationComponent directly?
or maybe SCR_ChimeraCharacterClass.GetFaction is where I need to be
seems like it is, trying there
no that isnt called either
can't get it to work :/ ik u guys are busy af but if you get a chance, can you send me the file or two that you overrode to get it to work for studying purposes? it hurts how i can work on this for days and you geniuses can do it in minutes lol
either way, β€οΈ u
I worked it out. SetFactionAffiliationByKey("") was right the whole time, I was just causing a null pointer exception in my own scripts
thanks for your help
If anyone is interested (including @dark sable) this is what I implemented
Does anybody know how to recalculate the navmesh or use the nasmesh tool? i added some disturbing objects and the ai does not know how to go around stuff xD
You need to select navmesh tool, click connect, click generate, leave default parameters, when it's done you need to save it. Then in AIWorld in your world you need to change the selected navmesh to the one you generated.
Note that navmesh for Eden is around 700mb and might take a lot of time (~an hour) to generate...
So what occurs with navmesh when we generate new objects in runtime?
There is some solution for that in game master
so you can maybe call that one too. Forgot the method name, let me check.
AIWorld.RequestNavmeshRebuild
but there is no nice solution to such problem at the moment
like, you could modify a prefab which is spread all over the island, but it's not handled atm
Also destructible components, when destroyed, invoke navmesh regeneration
surely it isn't rebuilding the entire navmesh when things are destroyed, only a relevant reconstruction right?
yes
so why not have a relevant reconstruction event built into spawning an object with collision?
I guess it's also a possible solution.
Well, it's handled when you spawn compositions with game master, but not when you add something in world editor.
but what about spawned via scripting?
π€ I am not sure if it's done
what about vehicles moving around?
they don't regenerate navmesh
btw you can look around navmesh with AI -> Navmesh -> Show Navmesh
yeah I know they get stuck at vehicles
Thats great thx it works or better is generating xD
How to get the right coordinates for just building the mesh for one city? the numbers are not Positions xD
π€ π€
I am not 100% sure but it might be tile IDs
wait a sec
Could you try these numbers? you need to enable navmesh debug (debug menu -> ai -> navmesh -> show navmesh) while in play mode.
althouogh... if it had 12 thousand tiles, no, it makes no sense, sorry
i got it and if i understand ir right this should explain how: !!! Make sure to use the position tab not the index tab xD !!!!
so these numbers are just positions in meters in the end, yes?
Those numbers are tile indexes
so horizontal id and vertical id?
yeah
meaning there are 12000 tiles horizontally?
well there are two tabs, first is index second is positions
Do you also now why the mash stays 1GB even if i just make a small city? otherwise the mod will at least be 1Gb xD
I would suspect that you didn't saved or it tried to save to original locked navmesh which shouldn't be posible
Also as far as I remember if you create only partial navmesh it will just replace the tiles that you created but won't erase tiles around, would have to take a look tho
Befor i did the hole eden terrain so you maybe right. I closed the hole workbench and maybe now i can only saved the new navmesh π
Thanks yes you where right now its 20 Mb π
π great π
At this moment, modding of navmesh is limited. So if you build up new city on Everon, you have to save whole navmesh into your scenario.
You can do partial navmesh (check NavmeshWorldComponent for parameters of loaded areas or Tutorial map for reference). This means that your scenario can have AI movement in the area you built, but then nowhere else.
We are working on improvements in this area, but they will hit only in next major update (probably)
@patent grove - here is example BT with bunch of actions that AI character can do.
Override this in AIControlComponent - behavior tree on any active AI and they should do bunch of actions like stances, leans, firing, reloading, firemodes, safety, melee. There are also gadgets but they don't seem to work, problem of that BT, as in game they do work.
Hoping that the base AI will be less herd/packing up logic in the next update
Melee still not functioning in that example, its a good resource though!
Someone look at the LAMBS Danger.FSM and recreate it in BTs lol
This best AI mod as a base easily hands down
You can see the FSM and model it, anyone can
Yeh me stupid tho
Hi, if I place a new building and give the AI the a waipoint where the building is in the way it will get stuck on it and try to run through it.
How do i fix that?
Hey, to make it work you need to regenerate navmesh around the new building. It can be done in world using Navmesh tool.
Remember to save navmesh as new file, also regenerating whole navmesh of eden can take while, so try to regenerate only parts that were changed.
Ah thanks I found the tool but how do I use it? I selected it but clicking or dragging anywhere does nothing.
It was discussed above, check starting from this message
#enfusion_ai message
Thank very much worked wonderfully. But now I have to remove some AI because now they act too smartπ
in the SCR_AIWorld.ET
Am I correct that "Initialize Road Network" will create nav points for roads (road curvature etc) in the nav mesh when enabled?
Yes and no, it would use roads to create graph that can be used for AI navigation but it is WIP
Can you elaborate on what "Load balancing FPS" and "AI budget" is?
AI budget limits amount of AIs that can be spawn in the world.
Specifically, the AI budget tab in the navmesh component? If I raise this, can I spawn in more?
Do you mean this on AIWorld?
Yes
yeah this one limits how many AIs can be there at maximum, if you try to spawn more they won't be spawned.
Okay, I had thought the actual engine was capped out at 200 AI
Since the game master mode lol
Hi guys, what is the Line of sight layer and its different presets actually doing within the PerceptionManager component?
Preset using my tracing to dectect if there is object between the owner and the target
which means if there is, it influences how much visibility the AI can see. So AI can't see through walls for example. Bushes can reduce visibility or completely blocking it
@inner vine Ok neat, I see as default on my perception manager that only perception is being used.
So if these layers are not selected then they can perceive the enemy through a wooded forest the same as in an open wheat field?
Perception layer should be used, that one collides with ViewGeo, which is how visibility colliders are done. If you change layers, yeah, you can achieve some effects, but they will be mostly inproper.
@stone sapphire Brilliant thanks.
One other question.
The Ai Detection at time curve. Is the X axis referring to the time of day?
I have been playing with the curve assuming that 0.5 on the X axis is midday 12 noon but this doesn't seem to be the case when put into practice
day/night setup (0.0-0.5 daytime, 0.5-1.0 nighttime)
Basically it means that whatever time sunrise or sunset is - the curve will be scaled accordingly. Sunrise is at 0, sunset is at 0.5, sunrise again at 1
This is made such, so if you have daytime which is not typical (lets say map in arctic circle) - perception still can scale the values properly in time.
Gotcha, that makes a lot of sense now π
can a dev comment on how AI are going to navigate around vehicles moving around? And I am aware that the GM gamemode has an EH for rebuilding navmesh around buildings, but what are the limitations of that? Is it an async method that will eventually rebuild the navmesh? What if multiple buildings are created at the same time?
Some of you also saw this error?:
NULL pointer to instance. Variable 'm_fDirectionOvershootPercentage'
Class: 'SCR_CompassComponent'
Function: 'CalculateConstants'
Stack trace:
Scripts/Game/Components/Gadgets/SCR_CompassComponent.c:263 Function CalculateConstants
Scripts/Game/Components/Gadgets/SCR_CompassComponent.c:361 Function OnPostInit
Scripts/Game/Entities/SCR_AIGroup.c:543 Function SpawnGroupMember
Scripts/Game/game.c:466 Function OnUpdate
When multiple buildings are created, navmesh should be recreated under and around all of them
I could remove this error by removing the compass from the ai but i also saw that the compass on the map view does not work xD So i would love to fix the problem xD
Vehicles are not solved, AI can get stuck on them atm.
Whenever GM builds something, or compositions are built in Conflict - script calls AIWorld.RequestNavmeshRebuild - with area which was changed. Those requests are of course processed asynchronously. We also do it automatically for opening doors. So AI does not get stuck on gates in HQ bases for example.
If multiple buildings are spawned on the same time, AIWorld will process all the tiles that were requested in a queue. At the moment some tiles may be done more than once if there was multiple changes on same tile and they were requested multiple times.
For example, if you want to use it and you spawn a town - use one request instead of 1 for each building π This will be optimized in the future, though.
repro please, step by step
There where 2 Map Entitys :
- one inside of Eden(default)
- one inside my sub map.
I romved the one inside my submap and restartet the hole workbench. Now its gone. im not 100% sure cause i also did other stuff but could it be that?
It could be indeed
Now(after removing the MapEntity in the sub scene) randomly(fix with restart) if i start the workbench with this project and press play i get this error per AI:
SCRIPT (E): SCR_AIGroup<0x000001DC2A77A5D0> :
AI/BehaviorTrees/Chimera/Group/BoundingOverwatch.bt
SCR_AI Get Enemy To Fireteam : ID 4
PositionOut has to be vector
Function: 'NodeError'
Stack trace:
Scripts/Game/AI/Utils/NodeError.c:9 Function NodeError
Scripts/Game/AI/ScriptedNodes/Fireteams/SCR_AIGetEnemyForFireteam.c:29 Function OnInit
Scripts/Game/Coop/SCR_AISpawnerComponent.c:108 Function DoSpawn
Scripts/Game/Coop/SCR_AISpawnerComponent.c:197 Function DoSpawnDefault
@tame fjord can you like pack your things and send it over to me? Its hard to try to repro issues without your data. Also I'm too lazy to make myself a mod every time I want to help you debug stuff π Can be PM
thanks did that π
let's continue the navmesh story here @lapis flax if you like
(prev. discussion here: #enfusion_scripting message)
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
well, I was talking more the use case of a community that plays multiple missions in a day. These missions are designed to work with the community framework and structure. Putting these missions on the BI workshop is not ideal because the admins needs to have handy list of available missions, their versions and know if they are tested.
Is there some reason why AI character prefabs cannot do orders or move?
They have the ability to get waypoints set in workbench
individual ai characters without group don't work atm, you must put a group for now
Okay, so the only solution for having fine tuned AI placement is one man group?
for now, yes
Ok
When im done with KOTT i will make a mission mod with a mission per city with random spawns. With that you would be able to make one mission after another π (not map rotation just diffrent scenarios in one mod)
The mesh of the map is about 1 GB if you just use the Navmesh regenerate (#enfusion_ai message) for the city thats played on startup than you would not have to pack it in the mod if i'm right xD
Hey guys
How would I start modding Behavior Trees?
(Where in the engine do I access them, and how do I apply them?)
You need to open Behavior Editor.
Behavior Trees are run by AI agents. In the group there are two kinds of them now, group and soldier ai agents.
Ah okay, thought that was what I needed..
and other question, is there anyone who has decoded BI's existing Behavior Trees? Like, the syntax?
e.g what is a sequence, selectors, flow control, etc
well they are same as in other BTs...
you can check description of BTs in Unreal Engine
it's somewhat related but a bit different
So there's no documentation for how to make your own currently?
I'm new to the concept of behavior trees
I understand the data structure itself, just not the actual sequence of events
No public documentation (yet?). But BTs are quite a well known concept in AI.
Okay, I guess I'll just have to fiddle around and see BI's examples to pick up on it
There are also multiple scripted components related to BTs
I think I'll take a look at BT's somewhere else then wait for some more documentation on BI, esp since I am not an AI programmer
I quite like this article, I found it a few years ago
https://www.gamedeveloper.com/programming/behavior-trees-for-ai-how-they-work
esp since I am not an AI programmer
it's more of an AI design, you don't need to know programming much to try BTs π
*but being conscious of the cost of conditions/actions (usually conditions) is very important
play around with how much AI complexity affects performance π
Does anybody know how I should configure the navmesh generation parameters and that on a custom terrain? I've tried a couple of different things but each time I try to generate the navmesh it crashes me straight to desktop
Copy properties from GM or Conflict setup. You need to have actual terrain on your map for navmesh to work btw.
Thanks for that I've got it working now
Morning. How can I get an AI group to respawn on a timer or wave? Couldn't figure it out
Not sure but in case no one else answers, download a related mod on the workshop and you can open it in workbench to see how they did it (learn not copy π )
that's a good idea actually, I forget you can do that
create a class that keeps track of all your groups. listen on the onEmpty event when a group is fully killed/empty. when x groups are dead iterate over your groups and respawn the dead ones.
the coop example from @ebon shell should have most of the code you need for that.
whats the mod called?
