#enfusion_ai

1 messages Β· Page 8 of 1

high obsidian
#

<@&105621371547045888> (not atim, was flagging a crypto shill bot)

high obsidian
shy lake
#

Oh okay. πŸ˜‰

#

πŸ‘

high obsidian
#

yeah that does kinda look like I was pointing out your post

shy lake
#

lol yeah that's why i asked. πŸ˜…

frozen quarry
#

anyone else having trouble using CRX ai? my units no longer excecute a defend order

shy lake
frozen quarry
#

@shy lake I couldn't post in there its read only for me

#

The update today seems to have fixed it though!

woeful venture
#

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.

woeful venture
#

πŸ‘€

high obsidian
#

90% of the time when AI won't attack when it should its because that's missing

woeful venture
#

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

shy lake
frozen quarry
#

!verify

fallow obsidianBOT
frozen quarry
#

@shy lake tysm

woeful venture
outer axle
woeful venture
outer axle
woeful venture
outer axle
#

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

shy lake
#

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.

urban furnace
#

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

shy lake
#

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.

daring jackal
#

Is there anyone who knows a script or component that allows random spawning from the "Character_USSR_Randomized.et" file?

alpine lotus
#

Hey guys, anyone here able to help me with the EE_Dynamic AI spawner?

halcyon bridge
#

how do I debug a BT that is ran through RunBT node lol

shy lake
#

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.

halcyon bridge
#

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

rich turret
#

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

idle grove
rich turret
urban furnace
idle grove
#

i didn't test it though

rich turret
halcyon bridge
#

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

halcyon bridge
#

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

urban furnace
#

what you trying to achive?

shy lake
halcyon bridge
#

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 πŸ˜„

shy lake
echo roost
#

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

shy lake
#

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.

echo roost
#

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

halcyon bridge
severe leaf
#

Please teach me how to adjust the AI ​​settings to make it more skilled and formidable. Where do I need to make changes?

shy lake
halcyon bridge
#

They still drive to the waypoint just not using pathfinding it's quite funny

#

I don't use any vanilla AI behavior trees

shy lake
#

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.

halcyon bridge
#

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.

shy lake
#

I think waypoints are using different move task.
"Move To Waypoint".
Check in vanilla .bt "Chimera/Group/MoveToLocation.bt".
🀐

halcyon bridge
#

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

#

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

halcyon bridge
#

Oh I fixed it by disabling behavior tree component in the AI group prefab

#

Thanks for coming to my ted talk

urban furnace
#

its because the WP got WP Attached on it?

halcyon bridge
#

group AI was messing with it, didnt bother investigating

urban furnace
#

intresting

acoustic sky
outer axle
#

Any way (in vanilla) to ambient spawn an AI group within a polyline instead of just a set radius?

Like SCR_AISpawnerGroupFaction, but polyline?

shy lake
#

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:

urban furnace
#

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
shy lake
urban furnace
#

Yep, SetAllowance(true, true, true);

#

I found the issue, it was the WP Prefab

#

When i use the GetInNearest it works

#

Magically

shy lake
#

Fair enough. πŸ˜‰

urban furnace
#

But the position they occupy is different from before πŸ€·β€β™‚οΈ

shy lake
#

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.

urban furnace
#

Yep, the getInSelected is not working also, so GetInNearest is the only way to go

shy lake
#

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.

urban furnace
#
    {
        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 coolfrog

shy lake
#

Which compartments are they getting in?
Are there any specific they never use?

urban furnace
#

It should be all compartment i believe, Pilot, turret and Cargo?

shy lake
#

Jus but do they avoid some?
Like driver or gunner?

#

Like they all go into cargo or smth?

urban furnace
#

Nope

#

They not avoiding anything

shy lake
#

So they use driver and gunner but some just don't go into cargo?

urban furnace
#

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

shy lake
#

Hmm...

#

Strange.

urban furnace
#

if using GetInNearest, then they will go regardless number of group

#

but if use Other GetInWP then meh

#

Trey to use US_RifleSquad

shy lake
#

Well at this point it's probably the best to debug the ActivityGetIn > GetInVehicleInProperOrder .bts to see where it fails.

urban furnace
#

True

#

it looks like i cant even press this

shy lake
#

No need to press something.
Just add the breakpoint to the node.

urban furnace
#

I found the solve

#

board.SetCompletionRadius(15);

Set the completion radius to 15

shy lake
#

Good. πŸ‘

urban furnace
#

and the completion type to leader only

shy lake
#

Yep makes sense.

urban furnace
#

The radius is too small and the completion radius by default is all

#

Soo

#

whata mystery

shy lake
#

Yeah a typical Arma thing.

halcyon bridge
#

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

urban furnace
halcyon bridge
#

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?

idle grove
#

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

halcyon bridge
#

Is there a way to take known targets from one AI agent and copypaste them to another?

urban furnace
#

use groupperception?

#

in the past i use that as information sharing

halcyon bridge
#

They are not in the same group

#

Was hoping for scripted wifi data transfer

urban furnace
#

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

halcyon bridge
#

Yeah my agents dont really have groups

urban furnace
#

Well coolfrog

#

Store it on Utility Comp, then modify the EvaluateAction?

halcyon bridge
#

Yeah I guess I have to do some jank

inner mantle
#

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

inner mantle
#

(sorry, that's not the right tooltip)

halcyon bridge
#

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

halcyon bridge
#

wtf

#

I dunno man

inner mantle
#

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

prisma axle
#

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

urban furnace
#

Why sometimes AI Ignore the Move WP placed from scripts?

hallow viper
#

Im doing such a massive update and itll finally work

hallow viper
#

like combat, danger

urban furnace
#

But they are idle

hallow viper
#

or its js navmesh issues if its a modded map

shy lake
#

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.

https://www.youtube.com/watch?v=1y387lsCr-c

#

All vanilla.

shy lake
#

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.

halcyon bridge
#

How often is LastSeenMax updated in AI targeting/target detection?

#

Also what is Aimpoint Checked?

urban furnace
#

m_FormationComponent.SetFormation("StaggeredColumn"); This is not Working? on SCR_AIGroup

shy lake
urban furnace
#

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

urban furnace
#

Well the issue are when i set the Dynamicsim LastLod Distance to 0

halcyon bridge
urban furnace
halcyon bridge
#

This cheat is how I can run 2000 zombies on Arland, since not all are simulated at a time

urban furnace
#

it didnt happen before

#

So im curious

urban furnace
#

not the AI itself

urban furnace
#

So if i set Permanent LOD to 0, the AI wont deactivate

dense reef
#

Hello how can i making wandering npc in workbench ??

left owl
#

hello everyone how can I make perceived faction work for players, e.g. similar to FF you can wear enemy clothes to hide yourself

shy lake
shy lake
urban furnace
left owl
left owl
echo roost
#

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

shy lake
# left owl for some reason it acts not correctly<:meowsweats:707626030613135390>

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.

shy lake
left owl
urban furnace
#

there should be api somewhere

shy lake
#

Oh okay.
Yes i wasn't thinking about this.

left owl
shy lake
left owl
shy lake
# left owl yep. I do not fully understand how the override works in vanilla. Need further i...

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.

left owl
shy lake
warm harness
#

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

maiden ruin
warm harness
# maiden ruin 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.

maiden ruin
#

Strange

warm harness
light magnet
#

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

maiden ruin
#

NavMeshes jump up quite a bit, lowRes is the smallest one. There is a rebuild tile function

halcyon bridge
#

You need all 3 if you want AI working properly on your map.

wise pebble
halcyon bridge
#

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

echo roost
#

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

maiden ruin
amber estuary
maiden ruin
amber estuary
#

ok ok thanks for the feedback πŸ™‚

dim zodiac
#

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

echo roost
# dim zodiac .

AFAIK repeated respawning is broken. There's a rather old feedback ticket on it, I think πŸ™‚

halcyon bridge
#

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

urban furnace
#

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

digital rain
#

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.

unique talon
#

How can I get AI infantry to sweep through every building in a radius on a loop?

unique talon
#

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?

grim laurel
#

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

arctic elk
#

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?

eager bison
tawny parrot
unique talon
#

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

unique talon
tropic harness
#

How can I make AI behaviour (or even specific AI mods) only affect specific factions

grim laurel
unique talon
grim laurel
grim laurel
#

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

unique talon
grim laurel
#

followed the screenshot but the btr is not moving, its manned, thats a huge win

unique talon
#

show the waypoints of slotai

grim laurel
#

same like on screenshot

#

but i cant see which wps he is using there

unique talon
grim laurel
#

okay

unique talon
#

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

grim laurel
unique talon
#

layer 2

grim laurel
#

of screenshot?

unique talon
#

yeah

grim laurel
#

its the name of the layer where the waypoints are stored, so its a name only

unique talon
#

you can set it to the slotai entity name

#

err

#

slotwayoint entity name

grim laurel
unique talon
#

yeah set it to slowaypoints 1, which is set as cycle

grim laurel
#

ok

unique talon
#

2 3 4 as moves

#
grim laurel
grim laurel
#

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?

unique talon
#

you would have to check the videos, i haven't gone too much into this but try #enfusion_scenario

grim laurel
#

kk thank you very much, you helped me so much

regal terrace
#

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.

proper star
#

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

regal terrace
#

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.

regal terrace
#

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.

random owl
random owl
regal terrace
regal terrace
#

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?

regal terrace
#

It seems like all of these make the AI exit the vehicle when they get to the point.

random owl
random owl
regal terrace
regal terrace
random owl
# regal terrace I actually did an override of the SCR_AIWorld.et prefab.

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.

daring hawk
#

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 πŸ˜„

vale burrow
daring hawk
#

Do you have the solution ?

vale burrow
#

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?

vale burrow
# daring hawk all this

Check smart actions. On some compositions are objects that make ai use them for like sitting, when they safe.

light magnet
#

Do AmbientPatrolSpawnPoints work in GM scenarios?

tight falcon
#

is there documentation or a tutorial from bi explaining the ai systems?

glacial cypress
tight falcon
glacial cypress
urban furnace
random owl
# tight falcon is there documentation or a tutorial from bi explaining the ai systems?

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...

β–Ά Play video
tight falcon
#

whats the diffference between AI agent and Chimmera AI agent?

regal terrace
tight falcon
#

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

restive pewter
#

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 πŸ˜…

inner moss
languid helm
#

Has anyone else noticed that after the 1.7 update, you cap a base and then the bots spawn there like 10 minutes later?

plucky escarp
#

1st πŸ₯³

tacit raft
#

2nd

random isle
#

3rd

dreamy cloak
#

4th... contact... man... 100m

rough spruce
#

5th . . . contact . . . MRAP . . . half a click . . . North . . .

spiral sparrow
#

ai? this channel was made for me

haughty ivy
#

6th in le funny game engine chat

ocean sigil
#

007 😎

molten ibex
#

009

vivid prawn
#

AI cannot drive ?

oblique star
#

Enemy man
100 meters
north

daring lotus
#

Guy

#

The AI is good?

gentle gorge
gleaming sandal
# daring lotus The AI is good?

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"

untold tartan
#

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.

sacred reef
#

tactics mainly

weary spade
#

I just want a way to have them respawn in gamemaster

#

And continue their last objective

bleak dagger
untold tartan
#

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.

bleak dagger
#

never seen them actually navigate a building actually
I wonder how's that gonna be different than arma's pathway lods

untold tartan
#

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.

bleak dagger
#

I was being surrounded up a building and they just got stuck at the ground floor

untold tartan
#

yeah

dapper fossil
#

same, Man enter building...man enter building....man enter building....man enter building....2-1 on it

untold tartan
#

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

sand dock
harsh spoke
#

The ai seem worse than arma 3 πŸ˜†

umbral elbow
#

I'd love to see LAMBS come over to Reforger. That would be awesome.

gleaming sandal
oak cairn
#

reforger itself hasnt been in development for 5 years

#

lol

umbral elbow
gleaming sandal
umbral elbow
gleaming sandal
gleaming sandal
oak cairn
#

some aint

#

otherwise you couldnt mod AI in say arma 3 for example lol

gleaming sandal
oak cairn
#

i know that because i've worked on ai in other games

oak cairn
#

of course

gleaming sandal
oak cairn
#

but like the frontend of AI are usually part of the game

oak cairn
#

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

gleaming sandal
#

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.

oak cairn
#

lol fair

#

The AI is probably a lot more flexible hopefully

gleaming sandal
#

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.

oak cairn
#

it seems like it

#

Nillers did say theres a lot more AI Improvements coming so

#

i guess we'll see

oak cairn
#

yeah CM

umbral elbow
#

OH. Right.

unique dagger
#

Ai does not seem to be able to drive around currently, or fire mounted weapons unfortunately :(

swift summit
#

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

earnest urchin
gleaming sandal
safe helm
#

how to reduce AI detect range?

winter yarrow
#

the variable types not being searchable is a huge PITA πŸ˜„

swift summit
#

Thanks Troubble, if I figure anything out I'll post a diagram somewhere

winter yarrow
#

I'm just randomly clicking stuff together and don't actually know how I would test anything πŸ˜„

earnest urchin
#

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

winter yarrow
gleaming sandal
# earnest urchin AI isn't completely brainded

Probably being zeuzed to death... this is my experience with Ai = https://www.youtube.com/watch?v=JM0fSoEnDns

haughty ivy
#

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

tropic pasture
#

yes and this is the first iteration in the new engine

haughty ivy
#

arma 4 will be awesome

haughty ivy
#

Is the Reforger AI less or more braindead than A3

#

And, modders, how much of the AI is given to you?

wise escarp
#

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

haughty ivy
wise escarp
#

should be

haughty ivy
# wise escarp should be

Have you seen any indications that it can be easily modified client side for singleplayer? Or is it a server side thing

wise escarp
#

my guess is it's shared code

haughty ivy
#

I have not used enforce or SQF

wise escarp
#

and contextually dependent

haughty ivy
#

Is it in a fsm like format?

#

or something different?

wise escarp
#

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

haughty ivy
wise escarp
#

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

haughty ivy
wise escarp
#

still figuring that out myself, currently rifling through the documentation

#

and playing around with the workbench tool

haughty ivy
#

Gotcha

wise escarp
#

BI has some samples up on their github though

#

so that's probably a good place to start

haughty ivy
#

in Arma

haughty ivy
wise escarp
#

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

haughty ivy
wise escarp
#

I'm sure you could, right now it's more a matter of figuring out how all of that is currently structured

haughty ivy
#

that’s good

wise escarp
#

the tools are "available" via steam if you're willing to dig with steamcmd

#

but the documentation is still quite sparse

haughty ivy
#

I dont own Reforger so I assume I don’t get the engine

wise escarp
#

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

haughty ivy
#

yeah probably a lot of shared assets

wise escarp
#

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

haughty ivy
#

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 πŸ˜„

wise escarp
#

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

haughty ivy
#

Is it documented at all online?

wise escarp
#

lol well, there's some documentation online currently

haughty ivy
#

Ah, I’ll wait a few months πŸ˜„

wise escarp
#

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

onyx hedge
#

in the meantime if you want to learn the general concepts, C# is mega close to enfusion's language

haughty ivy
onyx hedge
#

then you probably won't have any big problems with enfusion besides the same struggles everyone else is having right now

haughty ivy
#

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 πŸ˜„

eternal shard
onyx hawk
eternal shard
#

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 πŸ˜…

winter yarrow
gleaming sandal
winter yarrow
#

Ok, AI does not know how to climb ladders

#

or drive, since none of them want to get in the driver seat πŸ˜„

mortal pike
#

"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

elder wave
#

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?

eternal shard
elder wave
#

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?

hollow hill
#

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.

jolly forge
frank hound
#

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.

sullen anchor
#

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

sharp oasis
frank hound
#

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.

elder wave
#

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.

sharp oasis
elder wave
#

Coroutines

#

All on the main thread

sharp oasis
#

Ah, sweet, thanks for clearing that up

haughty ivy
lapis flax
haughty ivy
#

if A3 is any metric, 50AI's and performance goes to shit with single-threaded script engine.

lapis flax
#

ooh we could turn this into a starship troopers game

#

that would be cool

haughty ivy
#

I was really hoping for fully multi-threaded scripting engine being implemented

lapis flax
#

we can even get naked in the showers now

elder wave
marble grail
#

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

marble grail
marble grail
lapis flax
#

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

marble grail
#

There are behavior trees now, FSMs are in the museum πŸ˜„

lapis flax
#

yeah that, i had forgotten the name

stiff pagoda
#

So the AI is worse than A3?

#

And performance is just better because of how simple they are right now

marble grail
#

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

elder wave
marble grail
#

I was talking about pure computation like add/multiplication

#

just script VM is much faster

#

if c++ code is heavy then it's same

elder wave
#

Yeah

marble grail
#

if c++ code is heavy then it's same
well except that overhead of VM is smaller too

elder wave
#

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

marble grail
#

yes, there is no magic

elder wave
#

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

marble grail
#

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 πŸ˜„

elder wave
#

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?

marble grail
#

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.

elder wave
#

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

arctic canyon
idle wigeon
#

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

safe helm
#

This game needs to be modified from ai rather than adding a 3d model

arctic canyon
scarlet surge
#

does anyone know of a simple AI spawn script

haughty ivy
#

@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

marble grail
#

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.

haughty ivy
#

I feel like the performance people are saying it has is enough to run AI logic

marble grail
#

Yes, and AI. Currently script in AI is used carefully to ensure it is not used for anything heavy.

haughty ivy
#

It would be nice if someone could implement some features like breaching and cohesive squad manuevering

haughty ivy
#

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

solemn blaze
#

There is no benchmark, testing performance doesn't seem like a priority.

haughty ivy
elder wave
#

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

marble grail
#

And I wonder if such thing exists somewhere already?

elder wave
#

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

marble grail
#

But these use are C++ code, correct?

elder wave
#

not only, you can do it in the flow interface

#

scripted

#

the synchronisation is automatic

marble grail
#

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

elder wave
#

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

marble grail
marble grail
elder wave
#

but why not have scripted AI nodes on a completely separate thread

#

basically run a separate VM for it

marble grail
#

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.

elder wave
#

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

haughty ivy
#

@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

stone sapphire
#

I should be responding here indeed.

haughty ivy
elder wave
haughty ivy
#
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

elder wave
#

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?

haughty ivy
marble grail
#

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

haughty ivy
#

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
elder wave
#

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

marble grail
#

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.

elder wave
#

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

haughty ivy
#

@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

elder wave
#

Perhaps I just missed that, are BT running separate from the MT?

haughty ivy
#

yes

marble grail
#

yes? I thought opposite?

haughty ivy
#

that is what I inferred

#

from him

marble grail
#
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

haughty ivy
#

I asked him if behavior trees were implemented in C++ he said yes

marble grail
#

AI behaviours don't << meaning Behavior Trees

haughty ivy
#

so I assume some multithreading

elder wave
#

why assume that

marble grail
#

exactly

haughty ivy
#

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

marble grail
#

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

elder wave
frank hound
#

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.

haughty ivy
#

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

elder wave
#

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

haughty ivy
#

If there is proper documentation and tutorials for EnScript and the engine sometime soon, I would like to start learning

haughty ivy
#

yall just go and find out

#

like try implementing some things

frank hound
haughty ivy
#

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

frank hound
#

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

haughty ivy
#

Do you know enscript @frank hound

frank hound
#

Does anyone really fully know it yet? πŸ˜†

haughty ivy
#

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

marble grail
# elder wave that's exactly it. And I hate to be so pessimistic, but if the system is looking...

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.

haughty ivy
#

Guys worst case scenario, 40x performance increase, who cares if its not MT?

#

We can still simulate a lot

#

And faster

elder wave
#

not all commands are 40x faster

haughty ivy
#

yeah but

frank hound
haughty ivy
#

we should figure that out

#

lol

river sail
#

Heyo, new to arma modding here. has anyone managed to get a ai soldier to get in and never leave a sentry turret?

haughty ivy
elder wave
frank hound
marble grail
#

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' πŸ˜„

haughty ivy
#

If its just β€œclasses exist, inheritance exists, you reference classes and objects β€œ I understand*

#

understand

frank hound
haughty ivy
#

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

frank hound
#

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.

elder wave
#

yup, felt responsiveness

#

it's what the users care about anyways

#

terrible languages with good AI in some older games heh

#

*scripting languages even

haughty ivy
#

Well, if the game is already providing pathfinding and knowledge I shluld be fine

frank hound
#

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 πŸ˜†

marble grail
#

Also, behavior trees... are a language of their own.

haughty ivy
#

My issue is β€œlets implement Pathfinding from scratch β€œ

#

well thats just flowcharting

#

lol

marble grail
#

no no it's quite complex

elder wave
marble grail
#

sequence is rather simple, but there are also selectors

#

and decorators with abort conditions

haughty ivy
#

Well thats alright

elder wave
#

Yeah i mean it's simple to make dumb pathfinding

stone sapphire
river sail
#

Hmh, so first getin waypoint and then defend waypoint?

marble grail
#

defend wp should order them to get into static guns πŸ€”

river sail
#

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

marble grail
#

πŸ€” maybe you could try it with another tripod? if this specific one is broken.

river sail
#

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 πŸ™ƒ

river sail
#

omg I did nothing other than remaking a defend waypoint and now it suddenly works

small iris
#

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

unkempt lichen
#

hello could somebody help me (total mod noob) with creating a scenario with AI that respawns ?

wanton hollow
unkempt lichen
wanton hollow
#

ai sandbox

unkempt lichen
#

Alright I'm gonna look at AR nightops 1985, supposedly is able to spawn AI dynamically. Let's keep eachother updated @wanton hollow

wanton hollow
#

fasho

wanton hollow
#

yea i got nothing, the thing i thought it couldhave been- it is not lmao

unkempt lichen
wanton hollow
#

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

unkempt lichen
golden plaza
#

Anyone managed to disable AI movement or such?

#

I tried using the AI Settings on the AIWorld but it does nothing

hot summit
#

i had some success setting the navmesh to none

rustic bear
# golden plaza Anyone managed to disable AI movement or such?

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

golden plaza
#

Thanks, i found that and made a small compoment to disable it on spawn

rustic bear
#

yeah it's not ideal but better than nothing i guess

haughty ivy
#

has anyone tried to add animal ai yet?

haughty ivy
#

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

wanton wigeon
#

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

haughty ivy
#

There wasn't any AI budget in A3 afaik

haughty ivy
wanton wigeon
#

i mean, how many AI you can have in scene before server performance would choke

haughty ivy
#

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

haughty ivy
#

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

wanton wigeon
#

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

haughty ivy
#

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

wanton wigeon
#

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

oak cairn
#

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.

wanton wigeon
#

if we can get them to move as fast as players then they will be dangerous/fun, even with low unit level accuracy values

oak cairn
#

Especially considering the fine detail of jumping over walls.

haughty ivy
oak cairn
#

Didn't make sense at all imo

haughty ivy
#

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

wanton wigeon
#

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

haughty ivy
#

Doesn't necessarily need to be scripted, they gave us behavior trees that can handle that type of stuff

#

if thats what u meant

wanton wigeon
#

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

haughty ivy
#

Not necessarily, if you scripted it in the .c files you would be running EnScript, the behavior tree execution is implemented in C++

wanton wigeon
#

id better have a look at that πŸ˜„

haughty ivy
#

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

wanton wigeon
#

ty

haughty ivy
#

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

elder wave
#

Where has someone said that?

#

How can we add C++ as a modder?

sour atlas
# elder wave How can we add C++ as a modder?

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

sour atlas
# haughty ivy I have been in the Arma community since 2016 and since 3DENs release I've been m...

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

mighty turret
#

Is there a way to set follow distance for the follow waypoint?

dark sable
#

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?

timid light
#

Im actually wanting a more complex GTA-like wanted system for my "overthrow" mod

dark sable
# timid light Im wanting to do something very similar to this and am trying to look into it no...

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 πŸ˜„

timid light
#

ok thanks, ill have a look and report back any findings πŸ™‚

dark sable
#

ye same

timid light
#

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)

dark sable
timid light
#

scripts/Game/Faction/*

#

depending on which type of faction is in your FactionManager

dark sable
#

ah thx tho

proud coral
#

Has anyone made the AI not hyper vision thermal scanners yet?

haughty ivy
#

Staying in this chat, I have come to know about certain terms like backend, frontend, C++, D--, Java and stuff

haughty ivy
stone sapphire
# proud coral Has anyone made the AI not hyper vision thermal scanners yet?

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

haughty ivy
rough ginkgo
#

My guess is that "Chimera" references the morphing visual nature of the entity according to equipment/personalization. 😁

stone sapphire
#

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.

haughty ivy
stone sapphire
# haughty ivy 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.

ionic plover
#

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?

stone sapphire
timid light
#

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)

stone sapphire
timid light
#

Yes but not per unit

#

Only per faction

stone sapphire
#

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 πŸ™‚

timid light
#

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

marble grail
#

There's BaseTarget.GetTimeSinceSeen() πŸ€”

timid light
#

Hmm might do it

stone sapphire
#

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

timid light
#

Ok cheers

patent grove
#

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?

stone sapphire
stone sapphire
timid light
#

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

stone sapphire
#

@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.

patent grove
#

@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

timid light
#

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

stone sapphire
stone sapphire
timid light
#

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

patent grove
#

either way, ❀️ u

timid light
#

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

timid light
tame fjord
#

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

marble grail
#

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...

elder wave
#

So what occurs with navmesh when we generate new objects in runtime?

marble grail
#

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

elder wave
#

surely it isn't rebuilding the entire navmesh when things are destroyed, only a relevant reconstruction right?

marble grail
#

yes

elder wave
#

so why not have a relevant reconstruction event built into spawning an object with collision?

marble grail
#

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.

elder wave
#

but what about spawned via scripting?

marble grail
#

πŸ€” I am not sure if it's done

elder wave
#

what about vehicles moving around?

marble grail
#

they don't regenerate navmesh

elder wave
marble grail
#

btw you can look around navmesh with AI -> Navmesh -> Show Navmesh

#

yeah I know they get stuck at vehicles

tame fjord
tame fjord
marble grail
#

πŸ€” πŸ€”

#

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

tame fjord
marble grail
#

so these numbers are just positions in meters in the end, yes?

tame fjord
#

dont know if its metter or what ever sry

#

but the navmesh file stays that big 😦

outer furnace
marble grail
#

so horizontal id and vertical id?

outer furnace
#

yeah

marble grail
#

meaning there are 12000 tiles horizontally?

outer furnace
#

well there are two tabs, first is index second is positions

tame fjord
outer furnace
#

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

tame fjord
#

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 πŸ˜„

tame fjord
outer furnace
#

😊 great πŸ™‚

stone sapphire
#

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.

haughty ivy
#

Hoping that the base AI will be less herd/packing up logic in the next update

patent grove
haughty ivy
#

Someone look at the LAMBS Danger.FSM and recreate it in BTs lol

keen gale
haughty ivy
#

You can see the FSM and model it, anyone can

keen gale
#

Yeh me stupid tho

ember bridge
#

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?

outer furnace
#

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.

ember bridge
marble grail
ember bridge
haughty ivy
#

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?

outer furnace
haughty ivy
outer furnace
#

AI budget limits amount of AIs that can be spawn in the world.

haughty ivy
outer furnace
#

Do you mean this on AIWorld?

haughty ivy
outer furnace
#

yeah this one limits how many AIs can be there at maximum, if you try to spawn more they won't be spawned.

haughty ivy
#

Since the game master mode lol

proud coral
#

Hi guys, what is the Line of sight layer and its different presets actually doing within the PerceptionManager component?

inner vine
#

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

proud coral
#

@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?

stone sapphire
proud coral
#

@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

stone sapphire
#

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.

proud coral
#

Gotcha, that makes a lot of sense now πŸ‘

elder wave
#

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?

tame fjord
#

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

outer furnace
#

When multiple buildings are created, navmesh should be recreated under and around all of them

tame fjord
#

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

stone sapphire
# elder wave can a dev comment on how AI are going to navigate around vehicles moving around?...

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.

stone sapphire
tame fjord
# stone sapphire 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?

tame fjord
# stone sapphire 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

stone sapphire
marble grail
lapis flax
#

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.

haughty ivy
#

Is there some reason why AI character prefabs cannot do orders or move?

#

They have the ability to get waypoints set in workbench

marble grail
#

individual ai characters without group don't work atm, you must put a group for now

haughty ivy
marble grail
#

for now, yes

haughty ivy
#

Ok

tame fjord
# lapis flax well, I was talking more the use case of a community that plays multiple mission...

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

haughty ivy
#

Hey guys

#

How would I start modding Behavior Trees?

#

(Where in the engine do I access them, and how do I apply them?)

marble grail
#

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.

haughty ivy
#

e.g what is a sequence, selectors, flow control, etc

marble grail
#

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

haughty ivy
#

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

marble grail
#

No public documentation (yet?). But BTs are quite a well known concept in AI.

haughty ivy
marble grail
#

There are also multiple scripted components related to BTs

haughty ivy
marble grail
#

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 πŸ™‚

elder wave
#

*but being conscious of the cost of conditions/actions (usually conditions) is very important

#

play around with how much AI complexity affects performance πŸ‘

wanton hare
#

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

stone sapphire
wanton hare
#

Thanks for that I've got it working now

maiden tide
#

Morning. How can I get an AI group to respawn on a timer or wave? Couldn't figure it out

patent grove
#

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 πŸ˜‰ )

maiden tide
#

that's a good idea actually, I forget you can do that

ember bridge
#

the coop example from @ebon shell should have most of the code you need for that.

ember bridge