#enfusion_scripting

1 messages · Page 29 of 1

lean moth
#

I don’t see why you couldn’t hook the input action either, which would skip the polling

red cedar
#

the script get the sight comp of another character which is why my var have the m_target prefix

lean moth
#

Reading the code would help I suppose 😂

#

Iirc this requires .acp sound work

#

Separate event for your subsonic round

red cedar
spark otter
#

Anyone know where it's decided that the player needs to go into the player queue? Is that even exposed to script?

tranquil shard
#

I don't think its a script ingame

spark otter
#

Yeah maybe its a backend thing? I was trying to look into this new bug in 1.7: when the client crashes and tries to rejoin, they now get put into a join queue until the reconnect timer runs out and then it allows the player to join again, pretty much making the reconnect component useless. It worked yesterday so this is new as of todays update.

tranquil shard
#

I'm sure there's someone smarter in the deal that can explain it better but from my understanding and again I could be wrong it's not something that can be edited, was just trying to save you some headache searching around 😆 hope you get this figured out my friend

spark otter
#

I think I may have found a link to the persistence system? IDK Im digging around a bit more. I think I need to look at what happens when a player gets disconnected.

restive island
#

Where can I see what the IEntity types are?

void OnInit(IEntity owner)
{
  string ownertype = owner.Type().ToString();
  return ownertype;

/* Types.c >> proto native external typename Type();
        Man player = g_Game.GetPlayer();
        typename type = player.Type();
        Print(type.ToString());

        >> 'Man'            <---------------- Where is this defined?
*/
}
icy oyster
#

I can help with this shoot me a dm

craggy jolt
#

Man player is where Man comes from

#

It would be ChimeraCharacter in Reforger

#
        IEntity player = GetGame().GetPlayerController().GetControlledEntity();
        typename type = player.Type();
        Print(type.ToString()); // SCR_ChimeraCharacter
craggy jolt
#

Really wish there was an option for script editor to only scroll the tabs with mousewheel rather than selecting them. Hate seeing flashing scripts when all I need is to scroll the tabs to find one I need.

craggy jolt
#

I like "Append Closing Bracket" but I hate that typing {} ends up with {}}, most other editors solve this by ignoring } right after it autocompletes the bracket, why not the Script Editor?

pliant ingot
#

I hope to see this in change log someday:
Engine

  • Added: A3-like scheduler into scripts meowawww
ocean kernel
#

Engine:

  • Added: Try/Catch to the engine so it doesnt crash every 3 seconds
minor agate
ocean kernel
#

Idk I feel like if you wrap ural truck animations in try/catch then the whole server wont crash when there's a bug in its door animations

minor agate
#

Not things coming from CPP

ocean kernel
#

Ah so it's not implemented because devs dont know c++ has try/catch

minor agate
#

I meant, Script Try Catch would only work for VMEs

#

not for CPP to Scripts

ocean kernel
#

Yeah I just mean the engine sorry

dire sinew
#

You can't try/catch seg faults 😅

sweet badger
#

try/crash

restive gull
#

Scripting is obviously single-threaded, but before you could lean on extensions for heavy number crunching. Now with Enfusion, are we really stuck with just HTTP/WS?

#

I'd have to write the computation as a standalone tool just to call it over an API? And then there's the extra overhead on top of that.

sage meteor
ocean kernel
#

Ok but I didnt mean script?

restive island
#

Why do some vehicles iterate through SCR_FuelNode.c multiple times for the same fuel tank? This looks excessive for **one **heli spawn

#

I get it if there's two fuel tanks, for like fuel trucks~~ and command truck.~~ actually I dont even know why command truck has >1 fuel tank, unless it uses the extra to power its spawn beacon

restive island
minor agate
#

Or SweetPotatoh's option

craggy jolt
#

Imagine that in the browser, its gonna be super annoying

restive island
#

i just noticed that it's backwards 😄

minor agate
inland bronze
#

Questions about weapons: they have a chamber separate from the magazine, right? Or does it pull straight from the magazine? Is there a way to force chamber a bullet through script or is it just adding to the magazine's ammo count?

torn bane
inland bronze
torn bane
#

Then maybe I forgot to do that. Sadly it means it will take some time until it becomes available to you. Maybe a later 1.7 patch maybe 1.8

shut shard
#

Hey everyone! I'm working on a mod for Arma Reforger using the ArmST framework and I'm trying to create a farming mechanic where a player approaches an object, holds an interaction key for a few seconds, and receives money (using ARMST_MONEY_COMPONENTS).
I've created a custom class CashAction : SCR_ScriptedUserAction with PerformAction, CanBeShownScript and CanBePerformedScript all returning true. The class compiles fine and appears in the Workbench editor.
I added it to a GenericEntity with these components:

  • MeshObject
  • RigidBody
  • RplComponent
  • ActionsManagerComponent (with UserActionContext + CashAction)
    But when I play, no prompt appears at all when approaching the object. The Remote Console shows no output from my script, meaning PerformAction is never called.

Has anyone successfully created a custom SCR_ScriptedUserAction on a GenericEntity? What am I missing for the action prompt to appear? Any working example would be hugely appreciated!

restive island
gloomy lynx
#

canbeshown is broken

#

remove the canbeshown and canbeperformed, get it to work, then add them back

restive island
#

Can I use these values for unique prefab IDs? eg 0x20000000F10 {} like below

modded class SCR_FuelNode : BaseFuelNode
{    
    override void OnInit(IEntity owner)
    {
        super.OnInit(owner);    
        Print(owner.GetID().ToString());
        // returns this for vehicle 1 prefab: 0x2000000000000F7F {}
        // returns this for vehicle 2 prefab: 0x2000000000000F81 {}

#

oh wait i can probably just use GetName() since that increments the number in its output

restive island
restive island
humble pine
#

hi! how do i get the total character weight with weapons?
GetTotalWeight() of SCR_CharacterInventoryStorageComponent returns only gear and inventory weight as i understand (probably not all actually). perfectly i would like to get number that shown at top-right in inventory UI.

torn bane
torn bane
torn bane
latent heath
#

Arkensor, do you know if it would be possible for launcher and UGLmuzzles to be edited to allow the signal of Switchmode to be sent to the player and not just the weapon like it is currently?

Momo mentioned if its not doing it currently then its possibly a backend issue. #enfusion_animation message

shut shard
shut shard
#

If this help by any chance.

restive crown
#

has CanPlace in SCR_ContentBrowserEditorComponent been changed in the newest experimental update? i cant see any mention on any changes in the changelog related to it but my script has broken after the update

open pier
# shut shard If this help by any chance.

Little tip when spawning items, make sure the spawning is happening server sided only. Without other configs set/methods returning the correct bool, pretty sure this code will run on client and server, which you don't want clients spawning anything

#

You'll get yelled at in the logs

shut shard
#

ok i will try thanks bro keep you in touch

open pier
# shut shard If this help by any chance.

knew there was something wrong, you need to set the Position and some other stuff, try to duplicate what i got here, the "Y" for position might differ, when you click on it it'll show you some arrows to move around

#

That should atleast make the action viewable
also due to habit the naming is done through script:

override bool GetActionNameScript(out string outName)
    {
        outName = "Action Name";
        return true;
    }
shut shard
#

@open pier @restive island@gloomy lynxguys thank u so much !!!!!!!!!!!!!!!! all works fine goose thankssss

visual atlas
#

can someone check a crash guid for me pls ❤️ 58764f4e-e312-4df2-be91-bbcb38b2a4ed

restive island
torn bane
restive island
restive island
torn bane
#

yes until it is deleted at runtime, not the same between client and server, not the same across multiple restarts

restive island
#

How can i get it from the server?

torn bane
#

Call the same methond on the server, it is just like a memory address id, it is local to each machine

visual atlas
# torn bane vanilla issue we need to fix

ah damn, thank you for looking. same with these? 3616537c-41ea-44e5-9f20-4dbe13503837 acb64d6e-775c-4e0f-afd3-4c5aa304bbe1 crashing a lot in the last day or so

is it some vanilla system we are opting into? or something generic

amber moat
#

@torn bane a custom transport aircraft kinematic flight, openable ramp/doors, walkable interior, passengers riding mid-flight, would you build it as a full Reforger vehicle (compartment manager + AGR + the vehicle stack), or a lighter custom entity? What does the vehicle framework give for free that we’d otherwise re-implement?

#

I mean I have a ton of questions honestly but that’s the main one

#

It’s my first time touching vehicles with proper animations and models

#

The other ones I have are just props that I fly via script not real vics

#

this will be both

spark otter
#

How do I force a vehicle to spawn in, I'm assuming it's out of streaming range? It will spawn in if I go to it in GM, but not before I do that. I want it to spawn in without me having to do that.

thick helm
amber moat
#

i already hit the wall btw, it needs to be A vic

amber moat
#

ride it only

thick helm
thick helm
amber moat
#

i basicallyneed a flying prop with animations that lets people sit in it

#

but ill take a look at your model if u dont mind

amber moat
#

also how are u gonna work out your ramp collider? thats what im working on and redline team has had same issue too. for now only good example of proper ramps is coltons

#

The issue is that u guys chose to use a standalone Vic animation comp but that’s not gonna work u need the whole sim system

thick helm
amber moat
#

when i close it the collider doesnt move with it

#

(my model) but ive seen r3d they have same issue (?)

thick helm
amber moat
#

wait

#

it works i lost 2 days on this

thick helm
plucky folio
#

I'm trying to start up the dedicated server tool, it's been fine in the past but now I get this error.. Any ideas on how to fix?

polar surge
#

Question regarding timing and CallQueue:

I am contemplating implementing one or more custom CallQueues into my mission, to not use the global queue.

  • would it be a good idea to have multiple singleton queues with different priorities? Background would be that e.g. spawning groups is not as time-sensitive as updating game states or player flags etc. ?
  • if I just use Call() in the queue with a time offset, how is that different to just loading up the global queue? Any way to defer low-priority calls to later?
  • is there a proper way to load balance this?
  • is there a way to properly profile my method calls? Or do I just measure deltatimes?

Any hints welcome

torn bane
# polar surge Question regarding timing and CallQueue: I am contemplating implementing one or...

Using the global call queue provided by the game which 90% of vanilla content uses makes sense if it should tick even if the gametime is paused and you usually have millisecond accuracy. ScenarioFramework has it's own because it should not tick while the game is paused and other conditions. There isn't much to be gained from using a custom call queue instance unless you either have thausands of calls to tick and or all of them only really make sense to advance once every few seconds or so you can avoid some internal checking cycle if you know your times are in the order of minutes or hours.

red cedar
#

Ok here is some yappter because i'm pissed at my blind self for not seeing it before but also i feel like this should throw a compilation error :

{
  [...]
    // Invoker and rank are inverted however it still compiles, would be cool to force casting to the correct enum type instead of allowing to pass int as enums
        bool success = SetRankToPlayer(playerId,invoker, rank, false);
  [...]
}
[...]
private bool SetRankToPlayer(int playerId, SCR_ECharacterRank rank, int invoker, bool allowDemotion = true)
#

i know this is on me, but still it is really irritating that i wasted so much time rewriting my setrank method while the issue were the params order

river imp
red cedar
#

I have just been losing my mind for a solid hour because of this silly mistake

river imp
#

Regardless, "would be cool to force casting to the correct enum type instead of allowing to pass int as enums' will never be a thing because you don't cast an int to an int.

red cedar
#

Watch me

river imp
#

It doesn't matter how you do it, you're still always gonna be able to pass enums as ints, and vice versa.

#

So do extra stuff for no reason if you want, and I'll watch you accomplish nothing. lool

red cedar
#

However

#

Being able to store an IENTITY var into an int without casting is pretty insane to me

river imp
#

What?

red cedar
#

Yeah

river imp
#

I have no idea what you're talking about

river imp
red cedar
#

Was at the mechanic i'll send the thing in a sec

red cedar
# river imp elaborate
{
[...]
  int masterPiece = FindPlayer(search)
[...]
}

private IEntity FindPlayer(string search)
    {
        search.ToLower();
        PlayerManager pm = GetGame().GetPlayerManager();
        array<int> playerIds = {};
        pm.GetPlayers(playerIds);
        foreach(int playerId : playerIds)
        {
            
            string playerName = pm.GetPlayerName(playerId);
            playerName.ToLower();
            string uid = KE_Helper.GetPlayerUID(playerId);
            if(playerName.Contains(search) || uid == search)
            {
                return pm.GetPlayerControlledEntity(playerId);
            }
        }
        return null;
    }

This should not compile, yet it does

ocean kernel
#

Why not? Does it throw a syntax error when you cast int to int?

red cedar
river imp
#

If that were the case you would be able to do it with any IEntity and not just a player.

red cedar
#

the variable was called playerId because i was not paying attention

#

but it didn't store one (changed the var name)

river imp
#

It only works because you're specifically getting a player from the player manager.

red cedar
#

oh

river imp
river imp
red cedar
#

fair enough

red cedar
river imp
#

It's weird that you're declaring masterPiece as an int and setting it to a IEntity lol

#

It's also weird that workbench isn't yelling.

#

But, you're declaring it as an int and it seems to be returning it as a bool (null or not) which is an int.

minor agate
#

Ah that seems to be broken now

#

lol

#

It will return 1

minor agate
# pliant ingot Why?

It seems it was used before as implicit implementation for if (instance) or any other conditional to resolve to anything other than 0x0 when it actually is stored somewhere

#

But now it just goes into what bool is internally

minor agate
#

in other words 0x0

#

but on conditionals when dealing with numbers, anything other than 0x0 returns true

#

@river imp @red cedar It's totally valid code due to the above

#

No bug or crash will happen with it

spark otter
#

Is the weird compilation issue going to come to stable? o.O I just had another instance of this I believe in 1.7.

#

Simply changed the order of overrides and now its working instead of calling the vanilla method.

minor agate
#

Stop using statics worry

spark otter
#

actually it was a little different this time. I had to override the function that calls what Im overriding to get it to work.

#

I personally dont use them that much, but mods that I mod do use them more often.

minor agate
spark otter
#

@dire sinew ^^^

minor agate
#

@torn bane made a method not be static anymore by overddiing it without adding static on the override lol

#

(This is fixed for a while now)

#

Thing is that there were no moddability on statics before

#

But it was added as I placed high modding risk on it due to codecs being static

#

But modding itself kinda breaks OOP and general thought of it. So certain normal behaviors kinda break with modded

#

This one escaped us

#

But the change for this one is a bit convoluted so it will take a while as it's not that big of a problem

spark otter
#

yeah at least there is a way around it for now

#

not ideal, but it works!

dire sinew
red cedar
#

Truthnuke

bronze pasture
#

does anyone know how air drag and side drag work for projectiles? I'm trying to integrate complex trajectories

restive island
#

How can I add a component to a prefab composition via script?

dire sinew
maiden goblet
red cedar
#

If you just put it within the class you're modding then you'll have the same method appear 250 times within your project , it would also be a hell to maintain

maiden goblet
red cedar
#

Oh those

#

But they'd still have to be static wouldn't they?

maiden goblet
minor agate
#

@red cedar @maiden goblet Do not do that lol

#

You will clutter global namespace (More name collisions and intellisense will confuse you)

#

And they are not moddable

pliant ingot
minor agate
#

But if you place gameplay logic on them

#

Modders will like to mod it or be forced

#

And that is where you land into the issue @spark otter ran into

#

So do not use static methods for gameplay logic

red cedar
bronze pasture
dire sinew
bronze pasture
dire sinew
bronze pasture
#

thanks

amber moat
#

What’s the actual runtime bridge between AnimationControllerComponent.SetFloatVariable (or SignalsManagerComponent.SetSignalValue + AnimVariables) and the AGR’s variable space on a VehicleAnimationComponent-only entity (no wheeled sim layer)?

storm bobcat
#

Does anyone have a mod for linking discord and BI accounts?
I do know it requires external software, i can handle that.

amber moat
#

linking in what sense?

storm bobcat
#

This bi identity is connected to this discord id, which is a user in my community discord.

red cedar
storm bobcat
#

And then, yes they have to do it in game.

open pier
amber moat
#

I connect discord, Argus, game profiles and all are synced

#

You’ll need discord bot, backend, functions and mod

storm bobcat
#

Im aware. I can handle the backend easily. I already have a player database. Linking is pretty easy. 1 new table and a API for the server mod to call that adds the data to the DB.

storm bobcat
red cedar
#

if he mentioned using a discord bot he's likely linking his acc using discord

amber moat
#

unfortunately not

red cedar
#

or a website

red cedar
storm bobcat
#

Playstation players cant easily use typed / external tools. Im going for ease of use

amber moat
#

i can help u though

storm bobcat
# amber moat i can help u though

If you dont mind helping me a bit with the UI, i could use some help next week. Ill be reviewing the UI tutorial before then. But also some pointers on properly setting up serverside code could be some help.

amber moat
#

yes of course!! just shoot me a dm

amber moat
storm bobcat
#

Im not sure what im looking at, but it sounds cool.

I was looking to set up event tracker with a map for my server using the event api from Server Admin Tools and a website.

amber moat
#

u dont need server admin tools

open pier
storm bobcat
#

Some testing, i understand it well enough.

#

Thats the easiest part of what I want to do.

tough cave
#

do you think you have to detect gun shots (proximity) or will the audio system tell you the loudness / output volume of all sound effects? so, loudness in dB.

open pier
#

Like their ingame, open some ui, type in their discord account and it links it?

storm bobcat
#

Yeah. So Client Request, Rpc to Server -> server to backend for code -> send code to client

Player then goes to discord to register code with a command

open pier
#

Ahh gotcha, nvrm in what I was getting to, which was verification

storm bobcat
#

It all happens through systems that (should be) are trusted as for their account authentication.
This also keeps registration minimal and easy to understand.

I think back to the name and bi identity spoofing.

#

But i also want to have in-game rewards like XP tokens/modifiers as rewards for events or compensation.

#

Eventually player profiles and stat tracking.

open pier
vivid bison
#

Afternoon all, does anyone have any idea where I can look to find how action options are added to the side menu? Specifically I'm interested in adding a prompt to these options. These prompts show when holding tab on keyboard when a weapon is equipped. Thanks 🙂

vivid bison
storm bobcat
# open pier I have the opposite setup, go in discord and use a command with your Bohemia uid...

So that can't be trusted per say. You have to trust they put in the correct one or not put in the ID for another player. This can be a concern for cross platform bans.

Say I get the ID of a player I dont like. Go into discord. Link their account, then start saying heinous stuff. Now I can get another player banned from the arma server.

I as a server owner have the IDs of all players on my server... I wont abuse that, but do we trust all other communities? I dont let my admins even see the IDs. I have a ban system that keeps it hidden from them

red cedar
#

and if you're looking for the code that displays it SCR_AvailableActionsWidget.c

open pier
vivid bison
red cedar
vivid bison
storm bobcat
open pier
red cedar
open pier
#

You know, just realized you're talking about the ingame command. That's all access

red cedar
#

i only touch conditions, action and name

vivid bison
storm bobcat
red cedar
vivid bison
#

Yeah, overrode it

red cedar
#

hm

#

if you did that and restarted your WB then it should work

vivid bison
#

Still not there sadly, i just wanted to see if i could make it where it would hoist the weapon to the chest by having a separate bind and action. I assume i duplicated the correct action in the conf but it might not be? I'll just change the strings in some and see if anything changes

tough cave
# storm bobcat What are you talking about?

it was a general question I was throwing out there about loudness of game audio. I was asking if anyone knew a way to detect if explosions, gun fire sounds were blasting around you.

storm bobcat
#

Look into signals component

desert escarp
#

Is there an example on how to properly use the EntitySlotInfo attach entity

#

Currently it works fine for connected player but any JIPs do not see the item as attached

#

I've got it now that the server attaches it to the slot and then broadcasts to all clients to attach it

#

It seems like just attaching it from the the auth doesn't cause it to attach for proxies

desert escarp
#

The solution was to use SCR_EquipmentStorageComponent as that slot in there seems to actually be properly replicated using the same exact methods

wintry sundial
#

Hey guys,

I'd like to implement visible holstered pistols on the character's hip — similar to how rifles are visually slung on the back or chest when not in hand. Would anyone happen to have any idea about this?

wooden shale
river imp
#

Just untick Holstered Hidden on the CharacterWeaponSlotComponent for the secondary slot

river imp
#

Regardless, he wasn't asking how to holster them into holsters but, how to simply have them not hidden when holstered.

wintry sundial
toxic lake
river imp
toxic lake
#

Where is that then if base game doesn't support it? Confused lol

river imp
#

What are you confused about.

#

Guy asked how to not have pistols hidden when they are holstered.

#

That's how you do it.

#

Another guy commented about holsters.

#

Holsters in vanilla game don't do anything.

toxic lake
#

I read this set of messages as there was a way to do it vanilla lol

river imp
#

To not have them hidden when holstered. Yes

#

You do it how I posted in the screenshot.

#

"Holstered" doesn't mean "in a holster" in this sense.

toxic lake
river imp
#

Holsters can easily be done as I've got the functionality floating around somwhere. Just weird that it isn't vanilla functionality.

toxic lake
#

Yeah I've always found it odd, it's been a thing since at least A2 and they didnt put it in reforger

wooden shale
#

I was just replying trying to help. I’ve asked many questions in here that have been jumped over and not responded to so I am just trying to assist.

river imp
#

Questions do get drowned here.

#

If you're asking a question no one has answered it's probably because the thing you're doing is unique to you and now one else has tried to do the thing so they don't have an answer.

wooden shale
#

I’m honestly surprised people can learn enfusion I find it really undocumented and pretty confusing 😂 I’ve been writing code for 12 years and it makes me feel meh 😂

river imp
#

There aren't many like myself who will go out of their way to try to do the thing just to come up with an answer.

river imp
wooden shale
#

As unfortunate as it makes my brain feel

river imp
#

Exact reason I have like 250+ unreleased mods.

wooden shale
wooden shale
river imp
#

So you have OOP experience. You should be able to do this blindfolded.

wooden shale
toxic lake
#

Pro tip: it doesnt

river imp
#

It does.

toxic lake
river imp
#

Duh

wooden shale
#

Idk why it’s beating me up as much as it is to be honest. Just is what it is learning something new

lean lagoon
# wooden shale I’m honestly surprised people can learn enfusion I find it really undocumented a...

Documentation is very minimal, api reference pages are useful, but I hope they set up a system similar to Arma 3’s function documentation on the bi wiki… perhaps with more options for community input & examples. It would definitely save us a lot of time and reduce the amount of questions on here. The boot camp videos are nice general tutorials, but it’s difficult to find an explanation of something specific you’re looking for in a video.

solid hearth
#

Only confusing thing I found was knowing the relations between Proxy, Authority, Owner etc. Knowing what is running where (on a proxy, or authority) and what can be done on X. Once you get past that hurdle it's more or less smooth sailing. Anything you could really want to know you just need to use the search function in the editor.

river imp
#

The best documentation for the game is the game itself.

#

Most everything functionality wise exists from scripts.

#

Meaning if you wanna know how something works you just look at the scripts.

#

The odds that there will ever be complete documentation for every function that exits on every single entity/component is very very low.

#

This isn't sqf where there are 2654 functions.

storm bobcat
lean lagoon
#

I get that, I’m just saying reading something like this

https://community.bistudio.com/wiki/Post_Process_Effects

is easier/quicker than going through the code base…

If there was an equivalent for reforger, it would be very helpful for new modders and people who dont have as much time to mind meld with the source code

storm bobcat
#

One of us could set up a wiki.

wooden shale
storm bobcat
#

With community help

#

As tax

wooden shale
#

I feel like now a days when game devs make moddable platforms you see a lot of document generators based on code comments that it can auto generate from but as Zelik said there is so much in here I could see a lot of it not being documented just out of time sake. Especially from having classes and embedded methods inside those classes and different attribute properties and the list goes on and on.

#

I will just have to start opening the SCR_ files and see how they work.

river imp
#

Regardless of how helpful it would be, it simply isn't gonna happen. This isn't A3 where someone with absolutely has 0 experience can just "be a modder".

storm bobcat
#

There arent a lot of code comments in the complex systems. I think all base classes have them, although they sometimes feel sparse for detail or nuance

lean lagoon
river imp
#

You're expected to know things, specifically game development things. Your number one resource would be knowing how to debug.

wooden shale
solid hearth
#

If not for this I'd be lost worryPray

river imp
#

My best friend

solid hearth
#

But with the text search you can snag some dev comments that better fit your search ammmyea

river imp
#

I don't care about the comments

#

I care about what the function is doing.

solid hearth
#

Most poweful things in the script editor are symbol search, search in general and The watch tab for debugging. Yet so many overlook it PepeSad

red cedar
storm bobcat
#

A3 is the same, in a different way. The biggest challenge is the knowledge, not scripting

lean lagoon
# river imp You're expected to know things, specifically game development things. Your numbe...

Obviously knowing OOP and being competent in debugging are prerequisites for this, but it is still just a fun hobby for people on their free time… Improving/centralizing the resources/documentation and involving the community would certainly be ideal, albeit cumbersome… the mods are a big selling point for the game and I think something of the sorts would result in more cool mods.

river imp
#

You can't swim as a hobby if you don't learn how to swim first lol. Just like you can't game dev as a hobby if you know nothing about game development. Every hobby has an entry level. And the entry level for modding this game isn't one that allows for 0 experience in game development.

lean lagoon
#

Yes thats is irrelevant to what i am talking about.

The idea isn’t to make something that teaches people how to code or other foundational knowledge. It’s generally not in anyone’s interest to do that.

I simply want a platform that makes the information quicker to consume and easier to digest. Bi did it for A3, i dont see why it cant be done again, it’s not really that different when you think about it. “Functions, classes, etc are constantly being added and updated”… yeah that happened for arma 3 too lol, the wiki has never been perfect, yet it has always been a key resource for modders. There wouldn’t be even half the mods you love on the steam workshop if it werent for that…

river imp
#

It isn't, because you're expecting things to be documented in a way that anyone can just read them and do anything regardless of experience.

#

And it's just not that simple anymore.

storm bobcat
#

I think thats where A3 modding excels. Its so easy to start with. You can just start scripting stuff.

Double click a player and write _playerPos = getPos _this; _playerPos set [1, (_playerPos select 1) + 100]; _this setPos _playerPos; and you can teach them about gravity. You can make that a one liner when you learn about vectorAdd and this can written, ran, and tested in a live game.

Reforger doesnt have the easy gateway into scripting.

river imp
#

I assume you mean doesn't.

#

And it's more than likely never going to.

storm bobcat
#

Nope

river imp
#

Because you're expected to have prior experience.

lean lagoon
river imp
#

That will be the best you get in regards to documentation.

lean lagoon
#

Yeah I mentioned this documentation earlier, it is helpful, but it could be made better with a simple addition of community comments & examples. That way there is a centralized hub that just… makes everything easier.

Seeing examples of stuff being used in different ways adds insight and fuels creativity

#

People would also be able to explain edge cases where things dont work, like the community notes that i have seeen on the a3 wiki

lean moth
#

Probably a bit into A4, we’ll see the same community created repositories that outshined the Biki. It’s felt like a wasted effort for the amount of things that constantly change, I’d imagine that’s why the wiki is in its state as well

minor agate
#

You can also recompile scripts while any of these are running and take effect without having to relaunch

#

On top of that you can use all debugging on these

lean lagoon
#

Yeah hopefully hosted by bi though… while i can see community hosted ones potentially being more informative/thorough, it just wouldn’t get the same quantity of input. Site traffic is a key factor, because realistically only 1% or less of users would actually contribute something. Fracturing the community of modders into a separate service might be detrimental to the point of a centralized hub.

restive island
restive island
lean lagoon
storm bobcat
minor agate
#

And also change code and make it take effect without reloading the game or server

storm bobcat
#

Are you talking about peer tools?

minor agate
#

But it works on that as well

#

It's one of the reason why you have Diag exe for server

#

and diag exe for client

#

You would not be able to do this to a normal version (Non-Diag) of the game due to opening things for hacking

storm bobcat
#

Okay. So I don't enough

minor agate
#

But if both parties use the Diag exes then it will work

storm bobcat
#

Diag clients? Are those with experimental or in regular install? (im AFK by 1100 miles rn)

minor agate
storm bobcat
#

And is there a video/tutorial on using them?

minor agate
#

I think I used them in the replication bootcamps

#

also I think that I used it on the 2nd bootcamp video and the animation scripting one iirc

storm bobcat
#

Noted

restive island
#

Is this left arrow or backspace? It's longer than the others

minor agate
#

backspace

toxic lake
#

It would be nice if those shortcut keys didn't conflict with windows controls

lean lagoon
toxic lake
lean lagoon
#

Yup

toxic lake
#

Especially when i'm tabbing between substance, blender etc

#

It could be easily fixed as well by making it press to toggle the menu not hold those keys down

minor agate
spark otter
#

Can anyone tell me where the launching of a rocket launcher is handled? (More specifically, launched by AI)

restive island
minor agate
#

This is for 3D scene querying

#

It's not a dictionary

#

If you have some really heavy handling of entities that you need to query in 3D into the world every frame or so

#

and you have many of them then better to do it in isolation with the TagManager

#

Than to do actual world spherical query/trace or so

#

Beware that this is a mask, and by so it is limited to 32 for the whole game including all mods

#

In any case it is more recommended that in order to avoid compatibility issues to just use the GridMap mentioned after

#

TagManager is basically the same thing

toxic lake
restive island
#

Why is it in powers of 2 and limited to 32 max?

minor agate
restive island
#

faster than just doing bit shifting?

minor agate
#

It says powers of two for non programmers reading it

ocean kernel
#

I just use flags as strings in CSV with a custom parser

red cedar
#

Hey @minor agate can I get some more details on the following crash if possible ? GUID : 0bb1899f-dc33-4c8c-8b40-b66fca52090b

winter jay
#
WORLD        : UpdateEntities
RPL          : rpl::Pip::ProcessNetToGame

RPL       (E): Item was removed from replication on local machine but there are still RPCs targeting it. 
This may be sign of very serious issues! itemId=0x8000B725, 
identity=0x00000000, rpc='Rpc_ProxyIncrementalUpdateCtrl_BCNO'

RPL       (E): Item was removed from replication on local machine but there are still RPCs targeting it. 
This may be sign of very serious issues! itemId=0x8000B742, 
identity=0x00000000, rpc='Rpc_ProxyIncrementalUpdateAnim_BCNO'

How to pinpoint which mod/prefab generate it?

blissful steeple
#

Hey all,
I'm stuck trying to get a custom keybind to open a custom UI in my mod. I just want the I-key to open a custom ChimeraMenuBase (or even just a widget via Workspace.CreateWidgets).

I've tried the following:

Overriding chimeraInputCommon.conf with a new Action and adding it to the IngameContext via additive ActionRefs.

AddActionListener and GetActionValue don't fire for my action (but vanilla actions work fine with the same code).

Creating a custom context and calling inputManager.ActivateContext("MyCtx", priority) every frame via CallQueue - still nothing.

inputManager.CreateUserBinding().AddBinding(...) programmatically - it logs success but polling always returns 0.

As a fallback I rebinding the vanilla TasksOpen action - that works, but Reforgers Objectives overlay opens at the same time.

Is there a standard / recommended way to make a mod-registered action actually fire in Reforger?
Or should I just mod the vanilla TasksDisplay to hide itself when my menu is open? I saw @red cedar tip about only activating context for one frame, but the loop didn’t help me either.

Any help would be greatly appreciated!

red cedar
#

I don't appreciate being pinged for that

blissful steeple
#

Oops sorry again

dire sinew
ocean kernel
#

How many flags do you need

red cedar
#

67

restive island
#

If I make a custom class1 and have it inherit from class2, why do I get "class3 (inherited by class2) is private?"

#

This happens when I make an object for class2 within class1

torn bane
red cedar
minor agate
#

It crashed during evaluation of animation graph

red cedar
#

okk ty

minor agate
red cedar
#

that's fair, thing is it happened right as someone was toying with some feature of my mod so i was wonderring wether it could've been caused by my mod or not

#

that's why there was a bunch of pageDown logs before the crash, funny timing

minor agate
#

I do not know your mods so I can't give a guess

#

But it seems it's just due to anim graph corruption

red cedar
#

my mods doesn't toy with animations so i'm not sure how it could've initiated the crash tbh

minor agate
#

or spawn prefabs?

red cedar
#

i do spawn a single prefab locally which is a camera then i move it around

minor agate
#

Anything dealing with entities that are animated can initiate it

#

but again it would not be the root cause

red cedar
minor agate
red cedar
#

would it cause a similar anim graph crash too ?

minor agate
red cedar
#

oh fair enough

minor agate
red cedar
#

sure

blissful steeple
latent elbow
blissful steeple
# latent elbow Did you register your menu layout in chimera menu.conf? Did you register your ke...

Yea, my menu is registered in chimeraMenus.conf (inherited from vanilla), layout file exists, opens fine via Workspace.CreateWidgets().

Keybind tried it, that's the part that's broken for me. Added a new action in chimeraInputCommon.conf (both standalone and inherited), added it to IngameContext via ActionRefs - InputManager just never picks it up at runtime. GetActionValue() returns 0 forever.

I just want a keypress to open the menu. Nothing fancy, no menu stack, no HUD. Press I → menu opens, press I → closes.

ancient axle
#

anyone know what this is

#

nevr had this issue

#

now i am

#

nothings changed since last publish

latent elbow
# blissful steeple Yea, my menu is registered in chimeraMenus.conf (inherited from vanilla), layout...

class MyMenuComponentClass : ScriptComponentClass {}

class MyMenuComponent : ScriptComponent
{
override void OnPostInit(IEntity owner)
{
super.OnPostInit(owner);
InputManager input = GetGame().GetInputManager();
////CHANGE THIS TO YOUR INPUT NAME
input.AddActionListener("UseKillstreak", EActionTrigger.DOWN, OnKeyPressed);

}

protected void OnKeyPressed()
{
    if (GetGame().GetPlayerController() != GetOwner()) return;

//CHANGE THIS TO YOUR CHIMERAMENU ENTRY
GetGame().GetMenuManager().OpenMenu(ChimeraMenuPreset.HFS_Shop);
}
}

Place this on the player controller

Under context in chimera input find ingamecontext add a new action ref with same name as your input.

make sure to reload your workshop when changing chimerainput as that gets loaded at start.
i could be wrong, but i tested and it works for me.

blissful steeple
# latent elbow class MyMenuComponentClass : ScriptComponentClass {} class MyMenuComponent : Sc...

Perfect, thanks man. Just have a few questions:

ChimeraMenuPreset.HFS_Shop - how did you register that enum entry? Did you add it in chimeraMenus.conf or somewhere in script? I have my menu working via Workspace.CreateWidgets() directly, not through MenuManager i was wondering if I need to convert it?

"Place this on the player controller" do you mean as a child entityin the player controller prefab in Workbench? Or modded class onto SCR_PlayerController? Just want to make sure I'm attaching it the right way.

Again thanks man!

latent elbow
# blissful steeple Perfect, thanks man. Just have a few questions: ChimeraMenuPreset.HFS_Shop - h...

you can create a modded class MOD_ChimeraMenuBase.c
modded enum ChimeraMenuPreset : ScriptMenuPresetEnum
{
HFS_Shop,

};

Override the playercontroller ({6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et)
Add your menu script to this controller as a component, this will allow the player to open the menu

do you just want a widget to pop up or have a functioning menu? meaning you want players to click a button?
If you just want some information to pop up, its far simpler

blissful steeple
latent elbow
#

yeah follow my guide and wire it through the menu, i wouldnt use Workspace.CreateWidgets() for this as it wont function as a menu, i went through the same issue in the beginning where it would pop up a widget but i could still move around xD

latent elbow
blissful steeple
blissful steeple
# latent elbow Hope this helps, lmk if any issues

Is "UseKillstreak" in your example a CUSTOM action you defined in your mod's chimeraInputCommon.conf? Or is it a vanilla Reforger action that already exists in the game?

I've replicated your setup 1:1 in my mod:

  • Action "My_OpenInventory" defined in mod chimeraInputCommon.conf
    (inheriting from vanilla via ActionManager : "{795184CF...}")
  • InputSourceSum > Sources > InputSourceValue with keyboard:KC_I (no filter)
  • ActionRef "My_OpenInventory" added to IngameContext
  • modded class SCR_PlayerController with AddActionListener("My_OpenInventory",
    EActionTrigger.DOWN, callback) in OnInit

The listener registers successfully (my log fires on player spawn), but the
callback NEVER fires on I-tap. Same code works fine for vanilla actions like
"MenuOpen"

Again thanks man!

latent elbow
# blissful steeple Is "UseKillstreak" in your example a CUSTOM action you defined in your mod's chi...

did you reload tools? chimera input does not update unless workshop is fully closed and re opened, i found out the hard/long way. UseKillstreak is my own action, players press a key to use a killstreak they have bought from a shop but i modified it to open a menu so i could give you some context. My shop menus are opened via an action instead of a keybind. Also, add a filter. that determines is pressed, is held etc

blissful steeple
# latent elbow

I will try tomorrow, been at it for a few hours now. I really appreciate you taking your time, to help

blissful steeple
latent elbow
blissful steeple
#

That is 100% the problem then hahaha

storm bobcat
#

I sent that earlier, and then saw how many messages yall sent and was like "oh i bet this is useless now, i doubt this is it" 😂😂

storm bobcat
fringe prairie
# storm bobcat Btw, you can inherit. But then you need to replace the reference to the original...

Inherit is not safer lol. Prefabs, etc. where your implementation should grow with the original, yes, but configs that must have your stuff in it, override is just inherit but you are adding to it directly. The runaround of replacing the reference with your inherited version likely will create problems with any mod that tries doing the same thing, your actions would be missing depending on load order, etc. Unless that isn't what you were saying lol.

storm bobcat
#

Inherit is safer when you have multiple mods that modify the same file.you guarantee your changes are last.

#

Now if everyone did an inherit pattern, you instead would have to compat everything by merging all the changes, the solution to the problem you point. So yes, Override has its place. But its downside is you deal with conflicts where two mods have conflicting changes. Load order would decide whose mod has final say

fringe prairie
red cedar
fringe prairie
#

Because all an override is doing is adding your entries, or modifying existing entries - the order shouldn't really matter at all unless there is a conflict, if you inherit that config, then point the game to your version, you undercut anyone also doing inheritance, you will probably be fine yourself because everyone else is doing override, so your inherited config you are pointing the game to is still inheriting their overrides. If two people do inherit pattern, whatever mod loads last would win and the other mod loses their config entries. So to your point you will still run into conflicts with config changes override or not, but I think the consequences of inherit/repoint at for configs is greater issue

#

If one mod checks disable on something, and another mod checks enable - yeah there might be a conflict there, but I haven't run into the issue with that. What I have seen is GUID copies, like duplicating without changing name, causing the vanilla config to be overridden by the duplicate and preventing other mod configs from overriding successfully, but really all of these are preventable mistakes and I'd rather not have my keybinds not work because some mod took ownership of an inherited file.

red cedar
#

I despise those who don't add prefixed to their classes/configs

#

But i've ran into a bunch of conflicts issues, had someone use the same variable in the same class (so i was hammering his api with http requests)

A mod changed which config to read from to a duplicated version, etc

night lagoon
#

Can you un-override something? Like say mod A overrides two things, but you only want one thing and for the other to remain vanilla so Mod B can override it without having to be later in the load order because for reasons it needs to be earlier

#

Or at that point do you just have to make a compat

solid hearth
#

You could use the keyword vanilla instead of super to execute the non-modded method but it'd still be load-order dependent depending on what exactly you're trying to achieve (i.e stopping the override of another mod)

fringe prairie
#

Going insane:

Say I have a vehicle which is animated via vehicle animation component.
I have a slot on the vehicle which the animation component animates via graph.
I wish to swap the model at runtime

The game crashes with each attempt I have tried. Understand that the base game does black magic rotor head swapping, trying to replicate a similar feature. Not sure if the issue is animation graph getting extremely mad, rigid body being mad, or something else.

minor agate
#

config override creates new config with inheritance that make the inherited config behave as the original one but with the added or modified entires

#

config inheritance creates new config with inheritance, which you then have to make anything in the game that needs it point to it. this is problematic for modding when dealing with multiple mods trying to add things to the game

#

config duplicate creates a new 1:1 config from snapshot of the original of the time at creation.

#

Best one for modding is config override. Doing the others is like not calling super on scripts

storm bobcat
#

I'm just fine. Also that's a great analogy. Idk why agent is on a rant.

blissful steeple
latent elbow
storm bobcat
minor agate
#

Your mod changes will then be not taken into account if loaded before, or the mod from the other mod will not be taken into account if yours is loaded after

#

That is where it breaks when doing it with inherit

#

It's not the same result on this environment of multiple mods targeting the same file

rose coral
#

I have 3 Factions in my FactionManager, only US IsPlayable, there's a ConflictMilitaryBase at 3 different points, all the faction info is set on the various parts of the CMB. When spawning in, sometimes the "FIA" base is an option for US spawn? I've double and triple checked the Faction Affiliation settings and they are all correct for their respective factions...

#

I used the Game Mode Setup plugin with Conflict.conf

thick helm
#

Would it be possible in the future to have more exposed methods for interacting with CharacterAnimationComponent linking system? A method to force a link would be nice

willow flame
#

im working on a scoreboard mod and this may not be the place to ask, but i figured someone here would have the answer. i had it working in workbench as a widget set to hold F3. it would show on press and hide on release. now when i uploaded it and attached it to the gamemode in a dedicated server, it did nothing. the client and server arent communicating. the server shows its tracking data, but nothing writes when i push the hotkey. this may be a simple fix, maybe not. anything helps. i would like to change it to a menu in order to be able to add a keybind to the settings if that makes this more simple.

ocean kernel
#

Since you appear to be logging the data serverside, how are you sending it to the player?

scarlet perch
#

Is it possible to access locked entities via script and change properties? I am trying to create a script that turns off all street lamps within a certain radius, but it doesn't seem to work.

I might be doing things wrong, but I wanted to check if it's even possible

willow flame
remote oar
#

Which class type has inherited behavior of a unit versus being a skeleton or template? Like how CAMan != Man

#

B_NATO_F was just a rifleman I believe but had things like the uniformClass primaryWeapon uniformItems array list vestItems, etc but inherited functionality from the Man class.

#

Basically my question is: which base class can I make soft modifications to have a global affect on all units

#

Iirc we don’t need a signed mod for game data modification through enforce scripts now right?

torn bane
scarlet perch
lean moth
scarlet perch
#

Is it possible to script regular lights and lamps too?

For example I copied the ceiling lamp from the villa on Kolguyev which has lighting built in. I can access the LightEntity via script and turn it on/off, but the emissive texture of the lamp mesh stays lit, obviously.

How does Bohemia do this? Does the emissive texture act like a StreetLampComponent and automatically turn emissive when it's dark? I found nothing in the components that would suggest any way to control it.

The lamp prefab is completely identical to the regular, non-lit version: except for the texture being a "_on" version, which is emissive at night, but not during day.

I want to be able to turn lights on and off inside a building.

fickle widget
tulip sun
#

Hi everyone. I need some help with my vehicle. My vehicle has 2 rear passenger seats and one gunner station on the M2. The gunner station has a hatch that I animated using .siga and .pap files, and I added the action to the vehicle to open it. I would like to know if it is possible to make the 'switch seat' action appear for the two rear seats to move to the gunner position only if the hatch is open

copper wyvern
scarlet perch
#

Those are for the InteractiveLights though? I am talking about the chandeliers-type ceiling lights in the villa of Kolguyev, as an example. Those aren't player-interactive

river imp
#

ParametricMaterialInstanceComponent allows changing the emissive at runtime.

#

Which is what the "interactive" lights use.

fringe prairie
#

Are scripts cached anywhere in workbench for a project? Deleted the scripts folder after hours of troubleshooting a crash, restarting computer, etc. To find out the crash happens with the scripts folder removed from the addon. I need to nuke it from orbit.

craggy jolt
#
        Resource holder = BaseContainerTools.LoadContainer(m_sCommandingMapMenuConfigPath);
        if (!holder || !holder.IsValid())
            return;

        BaseContainer container = holder.GetResource().ToBaseContainer();

This is a typical pattern of ResourceName->BaseContainer aquisition I see in vanilla scripts, I assume its not worth it checking if GetResource() or ToBaseContainer() is null and its guaranteed that you'll have these if you have valid Resource, right?

amber moat
#

I had to publish a new mod

#

Have u deleted the rdb file?

#

And re tried ?

scarlet perch
#

Another issue: I wrote a custom ScriptedUserAction that I use in the ActionManagerComponent to trigger my script (turning steet lamps off in x radius). It works when I walk up and interact.

When in GM mode, I can see the interaction and it shows up correctly when right clicking. However it doesn't execute the PerformAction() method.

What do I need to do to the ScriptedUserAction so I can interact via GM?

amber moat
#

when u enter gm mode

#

so youll need some wiring for that too

ivory cobalt
#

hey big ask im sure I can do it myself but has anyone got doppler effect working as a sound for engines etc yet?

#

saw some talk from a few years ago in audio figured worth shot to poke here too

amber moat
#

compute relativeVel = (planeVel - listenerVel) · (listener-to-plane direction) per frame, derive a pitch ratio, push it as a new signal into SignalsManager and add a Doppler curve to each loop in the .acp.

#

or check for vanilla flags (I did not find it)

brazen sphinx
# scarlet perch Another issue: I wrote a custom ScriptedUserAction that I use in the ActionManag...

GM is a player's role with special permissions, like - to open the editor screen.
Usually from GM you access not ScriptedUserAction but a child of SCR_BaseContextAction.
Do I get it right, that your lamp has the ActionManagerComponent with ScriptedUserAction and that action is accessible from GM? Just out of curiosity - have you tried to run this action from GM when your actual character stands near that lamp?

amber moat
#

imean server ok, but gm?

#

sorry if its a dumb question, itssomething i just observerd never digged

brazen sphinx
#

wait, what do you mean by 'server see the entity'? Server admin or the actual dedicated server process?

#

it's not dumb, just naming things is hard

latent elbow
# ivory cobalt Thanks man amazing ❤️

Let me know if you get this working, its something i could never figure out if it was possible on the audio graph without writing a custom script. i dont remember ever seeing a Doppler curve/pitch manipulation node.

amber moat
#

example, i have a server owned entity, a plane, earlier during development i did some testing, and by mistake i set it as only server visible (maybe streaming settings, cant remember) (non visible for clients). when i then tested it in a live server when i was in gm camera, i could see the plane perfectly, but as player i couldnt (which i guess for normal client players is correct) thats why my question. and why i thought when switching to gm u act like server.

#

which could be 100% wrong

#

but tl;dr i set a entity only server visible, and i u are a player client, and switch to gm, u see it

ivory cobalt
latent elbow
ivory cobalt
#

lets collab 😄 send me a dm

#

my shahed flight physics are pretty solid in peer now to. just need to replicate for real plane but anims everythign working nice 🙂

amber moat
#

no no

#

wait

brazen sphinx
#

or you're setting up flags in scripts?

amber moat
#

no in this case i used .et editor

#

like normal components setup

#

let me find it

#

GhostNetwork/Prefabs/Vehicles/Aircraft/GHOST_C17.et starts with bare Vehicle { — no parent prefab inheritance. Every vanilla boardable vehicle (Mi8, UH1H, M923 …) inherits from Prefabs/Vehicles/Core/Vehicle_Base.et, which provides a properly-configured RplComponent. I did not.

The C-17's RplComponent was an empty {} block, which defaults to a static / editor-placed replication mode:

  • GM camera uses a different streaming policy (or idk) it sees the entity
  • Normal player client streaming filters it out as if it were a never-placed editor entity so invisible

And the streaming layer never registers a dynamically-spawned vehicle that isn't already in the streaming DB, so even with the right "Rpl State Override" the entity gets gated by PVS/distance and never reaches clients.

#

i fixed it but just curious how gm camera sees it if its client controlled???

#

when i am literaly not streaming it to clients

#

i also set Streamable Disabled later on so i can spawn it kilometers from world bounds

scarlet perch
# brazen sphinx GM is a player's role with special permissions, like - to open the editor screen...

This is how my entity is set up. TTT_ToggleLight is my "ScriptedUserAction" script that searches for all streetlamps and destroys them.

It works fine when I walk up as a player and interact.

When i am in GM, I can see the interaction and click it, but nothing happens. It never executes the "PerformAction" method. It does however call the "CanPePerformed" method when hovering over it or clicking it.

latent elbow
scarlet perch
scarlet perch
tulip sun
#

Hi everyone. I need some help with my vehicle. My vehicle has 2 rear passenger seats and one gunner station on the M2. The gunner station has a hatch that I animated using .siga and .pap files, and I added the action to the vehicle to open it. I would like to know if it is possible to make the 'switch seat' action appear for the two rear seats to move to the gunner position only if the hatch is open. Is it possible? Thanks in advance to those who will help me.

pliant ingot
#

Who is this genius who forbade variables in methods and in classes to have the same names?

coarse bane
#

Is anyone having issues with the scr_spinningwidgetcomponent and scr_scenariouicommon? The error message only shows question marks.

coarse bane
fringe prairie
pliant ingot
ocean kernel
#

Can I use singletons to create bootleg namespaces

opaque sand
dusk pollen
#

Anyone know if you can have an AI placed in world editor or whatever entity but have it disabled upon game start but then have it enabled (spawned) via a script?
I don't want to spawn an entity because there are various properties that need to be set so instead i want to enable/disable an entity.

restive island
#

why not just spawn them in via script, what are the properties scripting cannot set?

pliant ingot
#
error: Unknown type 'SCR_AutotestCaseBase'

💀

pliant ingot
#

It returns:

scripts/Autotest/Game/TestFramework/SCR_AutotestHarness.c(218): warning: 

Or random garbage in error text, looks like someone miss with string pointer in formatter xD

#
scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c(786): warning: �b,�
pliant ingot
dusk pollen
proven beacon
#

Is this where all the cool kids hang out.

pliant ingot
#
Test `V30_...` did not set result after all main steps completed.

Someone forgot to set first successfull result inside AssertTrue...

#

Find Symbol is broken... sometimes it can't find symbol whose code I'm literally looking at in script editor.

red cedar
pliant ingot
red cedar
#

Hmm

#

Gemini then?

#

I'm just spitballing idea to push you to the next level

pliant ingot
#

Why it can't find TestBase which is vanilla class?

proven beacon
#

@pliant ingot what is the issue maybe I can get an answer for you

#

I'll research this — Vlad is hitting issues with BI's autotest framework after the 1.7.0.41 update. Let me check what
classes exist in the new docs.

#

SCR_AutotestCaseBase exists in 1.7.0.41. Let me check its inheritance and look for TestBase.

proven beacon
#

who codes?

#

lol

pliant ingot
#

BIS

proven beacon
#

thats so 2025

#

1 sec.

red cedar
#

Just curious

ocean kernel
#

ChatGPT says to do it

pliant ingot
proven beacon
#
  1. SCR_AutotestCaseBase still exists in 1.7.0.41.
    File path shown by Doxygen: Autotest/Game/TestFramework/SCR_AutotestCaseBase.c. Inherits from native TestBase. If his
    addon now says "Unknown type", BI almost certainly split the autotest framework into its own script module in 1.7
    (matches his "new autotest script module" complaint). He needs to add the autotest module as a script dependency in
    his addon's .gproj / addon config. The class hasn't moved namespaces — only the bin it compiles into.
#

ill msg you

red cedar
proven beacon
#

Message sent..

proven beacon
#

ok

#

let me double check

pliant ingot
#

I solved it

#

your chatgpt skills too low

proven beacon
#
  1. The class HTML page exists in the 1.7 Doxygen ship:
#

ArmaReforgerScriptAPIPublic\html\interfaceSCR__AutotestCaseBase.html

#

Page title at line 9 of that file:
<title>Arma Reforger Script API: SCR_AutotestCaseBase Interface Reference</title>

And at the bottom of the same page (line 363-365) Doxygen lists the actual source file:
The documentation for this interface was generated from the following file:
Autotest/Game/TestFramework/SCR_AutotestCaseBase.c

#

The class is referenced by other public APIs in the same Doxygen — meaning BI's own 1.7 framework still uses it as a public type:

From interfaceSCR__AutotestHarness.html line 143:
static void Begin (notnull SCR_AutotestCaseBase testCase, bool autorun=false, bool verboseLog=false)

SCR_AutotestHarness.Begin(...) takes a SCR_AutotestCaseBase parameter. If the class didn't exist, this signature wouldn't appear in the shipped 1.7 Doxygen.

#
  1. It's in the class hierarchy. From hierarchy.html line 7943-7944:
    TestBase
    └─ SCR_AutotestCaseBase "Base game test class"

  2. Four concrete examples ship in the 1.7 Doxygen extending it (visible in the inheritance map of the class page):

  • SCR_TEST_Example1Subject_Counter_CountsToFive
  • SCR_TEST_Example1Subject_GetFive_ReturnsFive
  • SCR_TEST_Example1Subject_NoResultExample
  • SCR_TEST_Example1Subject_TimeoutExample

All four exist as their own Doxygen interface pages under interfaceSCR__TEST__Example1Subject__*.html.

#

What this means practically: BI's 1.7.0.41 Tools ship publicly documents the class as existing, with a known source path of Autotest/Game/TestFramework/SCR_AutotestCaseBase.c. If Vlad's
compiler says "Unknown type", his addon isn't pulling in the script bin that compiles that path. In 1.7 BI seems to have moved autotest into its own module (which Vlad noticed). He needs to
add the autotest addon as a script dependency. Same way ArmaReforger/Game was a dependency in 1.6 — except now there's a separate autotest module that has to be listed.

Ask him to paste his addon's dependency list (.gproj dependencies block) — that's almost certainly where it's missing.

pliant ingot
#

You're just an idiot trying to be cool.

proven beacon
#

its fine..

#

explain more and maybe I can help more.

pliant ingot
#

You're not even close to solution

proven beacon
#

1 sec

#

let me pivot.. sorry.. im living in reforger world these days

red cedar
#

Is this a skit?

#

Am i missing the joke?

proven beacon
#

I shot you over another message. not sure if it helps.. but I tried..

pliant ingot
#

Man pls stop spamming

#

I have already solved everything, and you are not even close

proven beacon
#

I offered to track down the information for you and send it over. Sorry for trying.

#

@pliant ingot you building anything cool in Enfusion engine? What stuff are you working on

#

sorry, i dont frequent here much. Just trying to get into the community chats more :/

ocean kernel
#

Blindly copy pasting things between here and chatgpt will not get you bonus points lol

proven beacon
#

Sorry, i have spent a lot of time on documenting reforger , engine and api bugs for my project so was just trying to help.

red cedar
#

Please stop ragebaiting

proven beacon
#

I was going to put together my bug list for BI but honestly it seems like a lot of attitude around here

#

Was just trying to help.

red cedar
#

Honestly 9/10 ragebait. I fell for it

ocean kernel
proven beacon
#

But serious, if you guys do have questions just ping me on discord, i can always try to help.

red cedar
#

Yeah sure i'll keep that in mind

proven beacon
#

Sorry for pasting in some information. I was just using my local resources to help out. Next time I'll use personal chat more. Apologies.

ocean kernel
proven beacon
#

I hope to share some information. Thats why I'm here. Just trying out new things, new ideas, iterating over and over trying to find out how stuff works.

ocean kernel
proven beacon
#

no but im almost done with my single mod a3 wasteland remake

ocean kernel
#

Please

proven beacon
#

im close..

#

cookies. .ill try

#

ill put bacon cookies in the mod for yah.. 😉

#

question: what channel is the best for Just Reforger scripting/modding. is there another that most people chat in to discuss code etc?

proven beacon
#

or is it just a mashup of all enfusion programmers together

red cedar
#

Don't confuse programmer and vibecoder please

#

It's like confusing an oven for a microwave

proven beacon
#

Ooh you're one of those

red cedar
#

I am

proven beacon
#

i see

#

are you still waterfall programming

#

going for perfection..

opaque sand
#

any ideas on how to fix this or do i just wait for bi

proven beacon
#

So much hate for the AI

ocean kernel
#

Depends on how good the cookie recipes are

proven beacon
#

They are okay cookies. Not the best.. Not perfect like a chef will make... but we have lots of cookies to eat. All sorts of cookies , fun cookies.. but if you want perfect cookies you may want to check with the others in this chat I guess.

clever marlin
#

this has been a fantastic read

#

excuse me while i go attempt to suck start my shotgun

minor agate
pliant ingot
#

But now I can't repeat it

minor agate
#

Its on its own module now. So if you have it in game before then it wont work

#

But i am not sure if that is the case 1.7. But thats direction autotest is taking

#

Reason for that is that we do not want autotest classes to clutter game module

#

And cause issues with compilation, and autocompletion and the likes

clever oxide
clever oxide
#

i think Tuple2 class scripts not loaded because you have other error. I got 47 script error but needed fix only first 6 and all ok

proven beacon
#

@opaque sand any errors before that in the WB ?

opaque sand
clever oxide
#

What changed on visualization in WB? i see new _WB_GetAfterWorldUpdateSpecs thing, and added to my code but _WB_AfterWorldUpdate never runs.
Do i need enable visualization or debug in WB somewhere for it?

#ifdef WORKBENCH
  override int _WB_GetAfterWorldUpdateSpecs(IEntity owner, IEntitySource src)
  {
      return EEntityFrameUpdateSpecs.CALL_WHEN_ENTITY_VISIBLE;
  }
  
  override void _WB_AfterWorldUpdate(IEntity owner, float timeSlice)
  {
    // this never runs
  }
#endif
fervent dawn
#

if you guys have your own custom systems, just adding in systems conf is not good enough. Need to register using:

override static void InitInfo(WorldSystemInfo outInfo)
    {
        outInfo
            .SetAbstract(false)
            .SetLocation(WorldSystemLocation.Server)
            .AddPoint(WorldSystemPoint.PostFrame);
    }
#

I was kicking myself in the nuts over why this thing wasn't being detected...

#

Also my mod's toxic players killing eachother in spawn because our customized spawn protection system was no longer working

storm shore
#

Removed: SetActionDuration removed. Configure it via config only
Sorry to interrupt, but I presume this means I can no longer dynamically set the duration of a userAction, or is there another way that isn't hardcoded in a config?

torn bane
clever marlin
#

@minor agate idk if peer tool launch delay was in the works or if it was added from that thread i requested it in but thank you thank you thank you thank you thank you thank you

river imp
clever marlin
sterile nymph
#

Could today's update have removed a mode script when opening Workbench, or am I just imagining things?

restive island
fringe prairie
red cedar
#

wasn't 1.7 supposed to be the magical update that would bring performance and stability to refrogger ?

#

they did do a cool trailer tho so i guess it's okay

restive island
river imp
#

They do and have for literal years.

#

Unless that's specifically something that 1.7 broke.

fringe prairie
river imp
#

no

river imp
#

It prioritizes the game addon directory

fringe prairie
restive island
#

This is for Arma Reforger game:

river imp
#

Just don't have a downloaded copy of the mod in your game addon folder and you won't get mismatch errors.

fringe prairie
#

I have just had issues with mygames folder being unkillable regardless of how I set my options, maybe it is a skill issue after all, but I am very much aware of how they should work, and have seen it not work because you can load a mod from one directory with mods from another directory in the workbench itself, while peers do not seem to like that

river imp
restive island
river imp
#

That is redundant.

#

Those are the default locations...

restive island
#

incorrect, look at the drive path

river imp
#

Redundant for him, unless he specifically has them somewhere other than the default location.

fringe prairie
#

Had one, until the game decided mods I deleted were not deleted and couldn't update or clear anything

restive island
river imp
#

Requiring him to move all of his files right?

fringe prairie
#

personally have had few issues with one drive, but digress - I reported an issue a while back and wondering if anyone wants to help repro - game crashes when a turret that worked in 1.6 is spawned

restive island
river imp
#

Sounds like a way more effort than simply deleting a single mod from the games addon folder.

restive island
zenith pilot
#

Quick question if i wonna create a trigger and set it radius and i wonna show that radius in debug view in editor how can i do that ?

zenith pilot
#

Also is it possible to show debug shpere in the view after the game has started ?

clever marlin
#

@river imp try removing -nobackend if you use it

river imp
solid hearth
past sequoia
#

Hi all i have a problem that has just popped up tonight and i have never had before i get the following error on my script componet -

SCRIPT : SCRIPT : Compiling Game scripts
INIT : Workbench Create Game
SCRIPT : Compiling Game scripts
SCRIPT (E): @"Scripts/Game/LGTW/AI/LGTW_CounterAttackVehicleSpawnComponent.c,1": Unknown code
SCRIPT (E): @"Scripts/Game/LGTW/AI/LGTW_CounterAttackVehicleSpawnComponent.c,2": Broken expression (missing ';'?)
SCRIPT (E): @"Scripts/Game/LGTW/AI/LGTW_CounterAttackVehicleSpawnComponent.c,2": Broken expression (missing ';'?)
SCRIPT (E): Can't compile "Game" script module!

Scripts/Game/LGTW/AI/LGTW_CounterAttackVehicleSpawnComponent.c(1): Unknown code
SCRIPT (W): Failed to load
PROFILING : Compiling Game scripts took: 465.858100 ms
ENGINE (E): Unable to initialize a game/gamelib. Some workbench features will not work.
SCRIPT (W): Initializing default GameLib's game class.
INIT : Creating game instance(Game), version 1.7.0.41 built 2026-05-11 20:04:25 UTC.
ENGINE : Game successfully created.
PROFILING : Workbench Create Game took: 633.247300 ms
DEFAULT : Using thumbnail cache directory: C:/Users/tyler/AppData/Local/Temp/Arma Reforger Workbench/Projects/LetsGoToWarPVEFramework/thumbnails
BACKEND : Attempting online Game Config instead.
DEFAULT : Using autosave directory: C:/Users/tyler/AppData/Local/Temp/Arma Reforger Workbench/Projects/LetsGoToWarPVEFramework/autosaves
PROFILING : Workbench startup took: 6966.654200 ms
DEFAULT : Checking pending workshop invites...

past sequoia
#

Disregard my post everyone i had another file that was incomplete

latent elbow
boreal swan
#

How do I "drag a Layer" and "drop it on the area in the Hierarchy panel in order to have it as a child entity of the area"?

lean moth
lean moth
#

Ah, it does say Layer. That is going to be a prefab in your resource browser. The yellow/blue/red layers are organizational hierarchies for world builder. Look for layer.et

boreal swan
#

Oh lol, I just realized that as well 😂 Was very confused for a moment! Thanks 😄

rose coral
#

I'm working on a script based addon. Is there a way to make my addon wait for the game to load and settle before initializing?

#

I just don't want to pound the server as it's trying to start.

#

I could have sworn I've seen it done, but can't recall where and my google fu is weak apparently.

storm bobcat
#

@gleaming lily
Dont mean to @ you normally, and I am not sure where to report this. This will be affecting vanilla gameplay. I am hearing that players will disconnect when killed by FIA in order to prevent them from scavenging their gear.

restive island
clever marlin
minor agate
#

use feedback tracker please

clever oxide
#

WB Events

hollow oak
#

howdy folks!
Quick question here. Seems like my WB has been corrupted somehow.
It shows errors like this.

Is there a way to fix it? thanks in advance

#

It marks AudioSystem.PlaySound as unknown method 😮

#

and also

#

since when they are unrelated?

torn bane
# hollow oak and also

We have made some first round of changes to serialization contexts, and 1.8 will include another big refactor to offer more features at less runtime cost and less code. Ideally in your code you only want to refer to Save/LoadContext as well as the concrete types such as JsonLoadContext

hollow oak
#

oof. No backward compatibility then =((((

#

each time you guys release updates I need to deal with depression 😄

torn bane
# hollow oak oof. No backward compatibility then =((((

We have provided a full file in the release to make it as backwards compatible as possible. If it does not work for you then you were probably referencing things by more or less internal types which should not have been used in the first place.

hollow oak
#

Hopefully I'm not using serialization widely

#

I'm wondering what's wrong with AudioSystem.Playsound method

hollow oak
#

But I still don't get why I can't use AudioSystem.PlaySound in CallLater function anymore =(((((

torn bane
hollow oak
torn bane
#

JsonSaveContext context(); context.Write(xxx); context.SaveToString()

hollow oak
pliant ingot
#

HOW???

class MyClass {
    protected int value;

    static void F() {
        auto value = new MyClass();
        value.value = 0;
    };
};
scripts/Game/MyScript.c(6): error: Trying to access non-static member 'value' from static method 'F'
red cedar
#

They're the most convenient and elegant way of serializing object

torn bane
red cedar
#

🥺

torn bane
pliant ingot
torn bane
#

No we do not force anything, but you can not expect ambiguity to work.

pliant ingot
torn bane
#

That would allow you to explicitly favor a class member over a local variable, but you named the instance of the class the same as the local variable and then the class member is also the same. this will not help you

hollow oak
#

conventions are conventions

pliant ingot
hollow oak
#

In script editor im not getting a single error. But in Main workbench log it says:
Types 'KUZ_ScenesEntry' and 'KUZ_Task' are unrelated for the code below:

    KUZ_Task GetTaskByTitle(string title)
    {
        foreach (KUZ_Task task : m_Tasks)
        {
            if (task.m_sTaskName == title)
                return task.GetTask();
        }
        
        return null;
    }

GetTask is a function from KUZ_Task:

    KUZ_Task GetTask()
    {
        return this;
    }

And as I said, no errors in script editor.

And I can't load my world because of instant crashing =(((

#

sorry for annoying questions, but could someone point me where to find a solid tutorial on how to detect crash reason of Workbench?
thank you in advance

ps. I've been working on my mod for more than a year. So it makes me really sad that a single update can ruin the whole work 🙁

pliant ingot
pliant ingot
pliant ingot
#

need more code to figure out

hollow oak
#

it's very strange though

#

Script editor throws no errors

storm bobcat
# torn bane That would allow you to explicitly favor a class member over a local variable, b...

Regarding the issue that vlad pointed out, it seems to me the engine is either confusing contexts or is performing a Class vs. Static scope check too early.
Im not sure whether the scope check is performed on value. or .value, but it is out of order somehow.

class MyClass {
    protected int value;

    static void F() {
        auto value = new MyClass();
        // value. is in local scope
        // .value is in instance/object scope

        // value. should match first with local scope, not Class vs. Static scope. I am guessing it incorrectly prechecks here
        // .value should use the instance/object scope, so it shouldn't even perform a static/class check.
        value.value = 0;
    };
};
#

@pliant ingot Does this only happen when using auto value = ...? or does it happen when using MyClass value = ... also?

#

I wouldn't be surprised if the auto type somehow causes the engine to skip or misorder the scope checks.

pliant ingot
hollow oak
#

yeah. The crashing reason is all about Types 'KUZ_ScenesEntry' and 'KUZ_Task' are unrelated

but I don't get what's wrong with this code =(((

Also, after the recent update I can't use GetGame().GetCallqueue().CallLater with AudioSystem.PlaySound anymore

storm bobcat
# pliant ingot Doesn't matter, problem in thing introduced in language with 1.7, so function ar...

There is an issue here, but after thinking about it... You would only run into this issue if you are naming your variables poorly.

In the given example, i would have this clear naming convention:

MyClass parentMyClass = new MyClass();
MyClass childMyClass = parentMyClass.myClass;

You found an engine issue, but its easily fixed by renaming your variables OR avoided by naming your variables well the first time.

pliant ingot
hollow oak
#

hm, I could just return task without the GetTask func..

One problem less 🙂

Now only CallLater with PlaySound error remains

ocean kernel
#

Bro's screenshot is only missing comic sans to be super cursed

restive island
#

i dunno if it's the issue bc you didnt provide the line numbers, but seeing there's name conflicts in 1.7: WB might throw a fit at lines 27 and 88 (KUZ_ScenesEntry)

hollow oak
#

and now there is a new problem =(((((


Reason: Failed move from <3827.89,4.36141,1435.78> to waypoint <3826.46,3.054,1445.15>

<0x00000290EA8EA130> SCR_AIGroup : AI/BehaviorTrees/Chimera/Group/ActivityMove.bt
AI/BehaviorTrees/Chimera/Group/MoveToLocation.bt (RunBT : ID 21) 
AI/BehaviorTrees/Chimera/Group/Group.bt
 (RunBT : ID 18) 

AI/BehaviorTrees/Chimera/Group/MoveToLocation.bt
SCR_AI Process Failed Movement Result : ID 25

Function: 'NodeError'
Stack trace:
Scripts/Game/AI/Utils/NodeError.c:8 Function NodeError
Scripts/Game/AI/ScriptedNodes/Groups/SCR_AIProcessFailedMovementResult.c:228 Function NodeErrorOnce
Scripts/Game/AI/ScriptedNodes/Groups/SCR_AIProcessFailedMovementResult.c:99 Function EOnTaskSimulate
#

Scientists have confirmed that every new Reforger update takes 10 years off your life

(but fps became much much better tbh)

trim aurora
hollow oak
jovial umbra
#

does anyone know how to find the actual thingy

#

im making a new project

#

and for the life of me i can't find it in script editor

#

i cant find the folder to make a new script in

trim aurora
hollow oak
restive island
boreal swan
#

After struggling with the modding tools for the whole day, I finally managed to create a scripted test action that works parrot

restive island
#

how do we launch game from WB to see our new code and test it without needing to restart the game? Mario mentioned this is possible, is it just starting the debug version of the game?

hollow oak
#

I thought I managed to fix all issues. But then I've added a single line, just Print() into scripts, and now, each script reloading ends with crash

restive island
#

Print() cannot be null IIRC

#

Put in like Print("\n");

hollow oak
#

I even removed this Print line from the code, but it still crashing

restive island
#

what does the crash error say in the console output

#

not those logs

hollow oak
restive island
#

Or here in number 3

hollow oak
#

maybe some memory issue

restive island
hollow oak
# restive island

nothing here. Crash happens only when I reloading scripts, while my world is loaded

restive island
#

oh i see what you mean, it just crashes the whole WB

pliant ingot
hollow oak
#

I have this, but I just ignore it

restive island
hollow oak
#

and I tried to compile while world is loaded. And it allowed me to compile once 🙂

I guess it's an OOM issue, probably

restive island
#

my droog, the solution is simple: cast WB back to the land of crystals 😄 Not sure what it could be, especially if it recompiled OK

hollow oak
#

thanks anyway!

restive island
#

You could ask Arkensor or MarioE when they're around, might be a new bug?

jovial umbra
#

its

#

where is it???

latent elbow
jovial umbra
#

my stuff is in resource browser

jovial umbra
#

but it doesnt show up in projects in the script editor

restive island
# jovial umbra i dont... see it

from the World Editor menu, or within Script Editor in one of the left window tabs. Your_Mod/scripts/GameCode/ is the directory the game will watch

hollow oak
#

but maybe after the recent update OOM issue became more important

jovial umbra
#

in file explorer

restive island
#

you can make it inside Workbench in the resource browser

jovial umbra
#

but

restive island
jovial umbra
#

SE still doesn't recognize it

restive island
jovial umbra
#

it should be called ace_medical_temperature

restive island
#

You're trying to make a new .c file for that mod, and using the mod as a dependency?

pliant ingot
#

open gamecode

jovial umbra
pliant ingot
#

not game

jovial umbra
restive island
#

GameCode holds the actual .c scripts you are creating

jovial umbra
#

so should the folder be called game or gamecode

hollow oak
#

@minor agate sorry for disturbing, but if possible, could you please provide some info regarding this crash. Thanks in advance! 4b07244b-64a6-4c93-a9fa-63e0df032eb3

jovial umbra
#

im really sorry im not the brightest

restive island
#

GameCode. The Game folder is for other items

jovial umbra
#

okay

#

how do i create a new script in the gamecode folder

#

as currently it still doesn't show up in SE

restive island
#

open GameCode/ and right click > new .c file or whatever the option is

jovial umbra
#

and this has to be done in a file explorer???

restive island
#

no, workbench resource browser is fine

jovial umbra
#

theres no create new c file though 😭

hollow oak
#

click on free space in resourse browser

jovial umbra
#

OH

#

okay

#

thank you

hollow oak
#

and script

jovial umbra
#

i have made a script

#

oh jesus christ this was the first step

hollow oak
#

it's ok. You just need to get used to the new IDE

restive island
jovial umbra
restive island
#

ok, was about to say need to pour some wine or bourbon and start learning 😄

hollow oak
#

It was not easy for me to switch from GoLand to this

jovial umbra
#

tysm for helping couldnt find a single useful piece of documentation or a tutorial 😭

restive island
#

you didnt watch the bootcamp?

#

theyre on YT, itll show you general use of WB including SE

latent elbow
jovial umbra
#

i just didnt see a tutorial for like scripting specifically

hollow oak
#

ok, it keeps crashing just too much for me in different ways. I hope devs will deploy a hotfix soon

restive island
#

so enfusion script is like a mix of c++ and java, not everything in those languages will carry over directly

hollow oak
#

Attributes make it looks more like C#

hollow oak
#

I load my world. It's being loaded just fine. Right after this I'm trying to load it again - and it crashes 😮

pliant ingot
restive island
latent elbow
jovial umbra
#

thanks for your input

hollow oak
#

yep. Just tried to load Cain twice. On the second try there was crash

#

most errors I have are like
Wrong GUID/name for resource @"{536BF67B2052B869}material/metal.gamemat" in property "UTM_CityMap"
but i don't think that it's the reason

hollow oak
pliant ingot
hollow oak
latent elbow
hollow oak
river imp
latent elbow
hollow oak
latent elbow
pliant ingot
hollow oak
#

There's only three times in code I'm triggering OnPostInit

#

I was able to reload my world three times in a row this time 😄
Before it has been crashed

river imp
pliant ingot
jovial umbra
#

How do I pull from the character in a script?

#

like

#

how do i make it so it takes the character as an input

river imp
pliant ingot
hollow oak
jovial umbra
river imp
#

Read the basics of scripting

restive island
latent elbow
# hollow oak oh, I have a lot of custom scripts. But I will check if I'm triggering OnPostIni...

Its hard to diagnose without understanding the full context of the system you have built, it may just be a workbench issue but the fact it doesnt crash when you spam reload with no mods makes me think something in your mod is causing the issue. Start by disabling your custom components in your world. But you did mention it did the same thing when loading cain which shouldnt have any of your assets loaded in. Most likely its a gamemode component you have overridden or something similar.

hollow oak
latent elbow
hollow oak
#

emptycain for example

UPD. tried to reload emptyCain for several times. No crashes, yet

I'll try to load my world but completely empty

latent elbow
hollow oak
hollow oak
latent elbow
hollow oak
minor agate
#

Game folder is purely scripted

#

Gamecode folder contains generated scripts from CPP

#

Both are reforger specific

#

Gamelib is from.enfusion and it is game agnostic utilities

#

Core is from enfusion and it is engine utilities

hollow oak
#

CallLater and AudioSystem.PlaySound issue is very annoying =(((

Right after the recent update - it suddenly stopped working 🙁

minor agate
minor agate
#

I think there was confusion on those docs when being written and they meant gamelib instead of game

#

And game instead of gamecode

hollow oak
restive island
restive island
#

Would it be easier to manually increase the fuel level of a gas tank by checking its fuel every 10 seconds and += if its fuel level is less than an amount, or using SCR_ResourceComponent

#

do not browse the doxygen in a dark room and hit ESC

river imp
#

Why not use the script invoker?

#

Unless the thing you're talking about doesn't use a SCR_FuelManagerComponent

restive island
#

It will regenerate fuel at MOB in a designated depot if its <200g

#

SCR_ResourceComponent looks uh, like a PITA

jovial umbra
#

Is there any way to check the location of a given entity?

#

For example the height of a player

restive island
#

enfusion vector =/= c++ vector

jovial umbra
#

tysm

jovial umbra
#

is there any way to check how bright the ground is?

#

looking for something that changes as the ground gets brighter/dimmer below the player

#

or alternatively how illuminated the player is