DnA

File Patching

41 posts in this topic

Hi community! In update 1.50 we are planning to make changes to the file patching system in the interest of security. Please see SITREP #00114 for more details, and let us know here whether you have concerns or other feedback. Thanks!

Edited by DnA

Share this post


Link to post
Share on other sites

This will affect mod's configuration through editing .sqf files that reside on the mod's folder (ie. ASR_AI), am I right?

Share this post


Link to post
Share on other sites
This will affect mod's configuration through editing .sqf files that reside on the mod's folder (ie. ASR_AI), am I right?

No. ASR_AI processes those files at each mission start via scripting commands.

This change only affects file patching when you have the same folder structure in the core game as the $PBOPREFIX$ namespace of a pbo. Mods don't do customizing like that (at least I haven't yet seen any) and if any mod is relying on filepatching for customisation purposes, the authors should be given a stern talking to.

For example, as it is currently, ASR_AI3 has the namespace of x\asr_ai3\addons\main so if you had that folder structure in your Arma 3 directory, and a file inside it called "fnc_canCover.sqf" it would overwrite the existing ASR_AI3 script, unless you had -noFilePatching. BI is changing it so that instead of having to disable it with -noFilePatching, you have to explicitly enable it with -filePatching.

This shouldn't affect the general user and is really a good change as it's mostly a tool for addon authors. For the mod devs who use file patching, it will now be necessary to explicitly enable it via -filePatching.

I'd actually argue that the dev branch should follow the same default of no filepatching by default as the stable, for consistency's sake. It's not like it's a critical thing to have active by default there to catch errors and launching the game with same params, if anything, it can provide false positives and whatnot.

More information on how to work with unpacked data is on the BIKI already.

Edited by Sniperwolf572

Share this post


Link to post
Share on other sites
This will affect mod's configuration through editing .sqf files that reside on the mod's folder (ie. ASR_AI), am I right?

I doubt that. Loading external files from addons is a very different thing than file patching.

Share this post


Link to post
Share on other sites
;2966443']Disable filepatching by default and add command -filePatching

https://dev.withsix.com/issues/27011

yes Kju, guess who is pushing hard and crossing features as done off MP improvement list ;)

I'm sorry it took so long

Share this post


Link to post
Share on other sites

Since last Monday, noFilePatching is the default state in the development branch. This means the game won't load unpacked data (also know as local data) until the startup parameter -filePatching is used. In addition, the server administrators have now the possibility to reject clients using unpacked data.

 

A new parameter has been introduced to the server configuration - allowedFilePatching

  • allowedFilePatching = 0; prohibiting every clients using filePatching to connect to the server (default value);
  • allowedFilePatching = 1; only the Head Clients will be allowed to use filePatching
  • allowedFilePatching = 2; every clients are allowed to use filePatching (not recommended)

 

Note: this modification will be effective on the main branch with the upcoming update 1.50.

 

Links:

Share this post


Link to post
Share on other sites

So just wondering, if i am in a preview of a mission that i am making and want to test a script then i will execute it manually, then change the script if needed and execute it again to see the changes.

If -nofilepatching is to be default then will that stop the method above from working without -filepatching?

Share this post


Link to post
Share on other sites

loading of scripts - that's next on the menu -  for now this covers mainly rest of game datas ;)

Share this post


Link to post
Share on other sites

Will this also affect unpacked campaign folders in Arma 3\Campaigns?

Share this post


Link to post
Share on other sites

I saw in SITREP00121 that there will be some modifications to the #include behaviour. Please take into account what I posted in the Feedback Tracker about it. The issue is resolved in 1.50 (didn't have time to test), so I am just trying to make sure it will not be broken by future updates (possibility of referencing files relative to the root folder of the mission (or through relative path ..\..\..\etc), eg file <mission root>\functions\fn_myfunc_1.sqf includes file <mission root>\includes\file_1.sqf, where fn_myfunc_1.sqf is a function file referenced in CfgFunctions)

Share this post


Link to post
Share on other sites

Please can you confirm whether it still works via the 1.52 RC?

 

It's also important to know that the following change will be in 1.52:

  • "Changed: Script commands loadFile*, htmlLoad, prepocessFile*, exec* now consider file patching settings"

Share this post


Link to post
Share on other sites

does this function affect the server ?

 

As i read the filepatching is for client but i can't use loadfile with a sqf file from the server directory.

 

To do a loadfile on the server i had to use option 2 of the allowedFilePatching.

 

 

is it normal or i'm doing something wrong ?

Share this post


Link to post
Share on other sites

does this function affect the server ?

 

As i read the filepatching is for client but i can't use loadfile with a sqf file from the server directory.

 

To do a loadfile on the server i had to use option 2 of the allowedFilePatching.

 

 

is it normal or i'm doing something wrong ?

That sounds like a bug.

Share this post


Link to post
Share on other sites

does this function affect the server ?

 

As i read the filepatching is for client but i can't use loadfile with a sqf file from the server directory.

 

To do a loadfile on the server i had to use option 2 of the allowedFilePatching.

 

 

is it normal or i'm doing something wrong ?

Test it yourself:

diag_log isFilePatchingEnabled

Share this post


Link to post
Share on other sites

isFilePatchingEnabled is true on server and false on my client and my HC

and the option  must be 2 in my server cfg if i want to load a sqf file on my server.

Share this post


Link to post
Share on other sites

isFilePatchingEnabled is true on server and false on my client and my HC

and the option  must be 2 in my server cfg if i want to load a sqf file on my server.

if you start server with command-line parameter

-FilePatching

then you should not need server.cfg's setting allowedFilePatching , unless you use Headless Client with unpacked data

Share this post


Link to post
Share on other sites

Thank you Dwarden,

I have -Filepatching option in my startup parameters.

 

will try -allowedFilePatching

 

edited...

 

Doesn't work... still need to allow for all clients in the server.cfg file and option -Filepatching

 

Boring.....

Share this post


Link to post
Share on other sites

To fix this issue server-side, you need to do 2 things

 

  1. server commandline parameter: -filepatching
  2. servercfg entry:  allowedFilePatching = 1;

 

 

This now allows me to execvm a script locally on the server that is in the Dedicated servers userconfig file

Share this post


Link to post
Share on other sites

Will read your sitrep soon. What does it affect? execvm? includes? My mods aren't working any more. Basically, I use the pbo only as a loader for loading external sqfs ASAP. I hope I do not have to put too much stuff into pbo's, because there is a massive advantage for debugging. If code is inside pbo, I have to restart ArmA at any code change. With outside scripts, only restart mission. Or I have to tell users to use -filepatching

 

Seems like I have to read and understand: https://forums.bistudio.com/topic/183049-file-patching/#entry2889614

Share this post


Link to post
Share on other sites

How do htmlLoad works now? I can not understand. My htmls placed in "myMod/textures/" folder. I call _ctrl htmlLoad "myMod/textures/myHtml.html" -  it do not work now. What should I do now?

And another.

  • Changed: Disabled support for absolute paths in the pre-processor

O, my God! Why?!

With 1.52 all my 2 years work went down the drain.

Please help with htmlLoad at leastI'm desperate.

Share this post


Link to post
Share on other sites

How do htmlLoad works now? I can not understand. My htmls placed in "myMod/textures/" folder. I call _ctrl htmlLoad "myMod/textures/myHtml.html" -  it do not work now. What should I do now?

And another.

  • Changed: Disabled support for absolute paths in the pre-processor

O, my God! Why?!

With 1.52 all my 2 years work went down the drain.

Please help with htmlLoad at leastI'm desperate.

 

What is that you are doing that you need absolute path support?

Share this post


Link to post
Share on other sites

What is that you are doing that you need absolute path support?

All data (scripts, textures, html, config files) used in all missions are placed in mod folder wich contains a different non-pbo simple folders like "Scripts", "Textures" etc. Paths to these ones are "\@Mod\...". I used this way since OFP, ie more than ten years. I have started the game yesterday and ups... game over. I was shocked. Do you know any other way to launch scripts, html placed in "\@Mod\..." (not missions) folders? I will be very grateful to you for help.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now