#arma3_tools
1 messages ยท Page 4 of 1
I hope i make myself understandabl. I ahve problem sometimes to understand wtf im even doing
Llano, depends on the involved computers if marshalling is needed or not. E.g. if you have low endian and big endian systems, the simple byte array will break as the byte is interpreted differently. But if it's all Windows systems (which C# seems to imply), you might get away with it
As for now, it will only run on Windows
So what would be the best way of solving this if the client will run on a Linux server for example
on linux you'll have problems with C# ;)
endianness is generally not really an issue with arma as it is exclusively running on x86 stuff
Yes probably :)
something something pure c
The client btw is a dll file called by Arma
HEMTT 1.8.0
https://github.com/BrettMayson/HEMTT/releases/tag/v1.8.0
Thank you to everyone that provided feedback during the RCs! Please continue to provide your feedback and feature suggestions!
Is there anything more advanced than #monitords for server side performance logging?
What about client side? Anyone wrote a framework to log stuff to rpt you can visualize?
In regards to profiling - (when not about unscheduled) is arma3profiling.exe still the best way to go for server and cient?
some gamemodes like liberation had an script that told how many groups, ai , scripts (execvms and spawns ), and fps the server has every a few seconds... its quite easy to do actually
What information you want to track?
@fierce swift can give more context ๐
Neat, a visualization for all those stats is on my list of things to implement in the webui thing I created (that + websocket live updates of the ui to make it live)
We do quite extensive checking (opt-in) with ingame display already: https://pastebin.com/fkD1g1my
However you need also decent external visualization, and correlation with other data (ie #mointords - but preferably same from client).
Yet important would be also more detail on simulation, rendering, AI, sound, visibility computation and such via https://community.bistudio.com/wiki/diag_captureFrame and https://community.bistudio.com/wiki/logEntities.
Exporting that might also need to be done via an extension to have it more efficient and without stalling the game.
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Was made aware of that neat webservice - pretty nice already. Havent asked yet if its extendable/supports custom data.
Useful probably would be also a combination with 2d map visualization (unit positioning and movement, + heat maps) [done already by others].
@dusty walrus has a log view that we use in Antistasi
for error/issues, or performance data focused?
Both, but it is somewhat antistasi specific at the moment. Not much but would need some changes
Cant post images, but it can plot a lot of things by parsing the logs, it is generalized enough to be able to plot whatever you put into a special stats log call
Being able to resolve sqf variable references is a game changer ๐ฎ
now just have to get rename refactoring working ... and start parsing params and other variable providing operators
Thanks for these insights!
Are you able to share some problems/design mistakes/lessons-learnt or other insights you and your team was able to make from that?
it kinda does, the main effort went into merging the mismatched timeseries from all the different players (they sent their FPS + other data to the server every 5 minutes) into one big dataframe.
That's what I do manually, we run ocap aswell so if there's anything weird in the graphs I try and find some correlation to ingame fighting.
automatically parsing diag_captureFrame and logEntities would be pretty nice. My programming skillz sadly end with python and some basic sqf stuff so that's where I stopped ๐
Will pick up the task of server stats soonโข๏ธ as I am also in need of well done and as complete as possible statistics
Need to finish some other stuff first tho (namely the sqf-vm language server)
C# works great on mono.
;)
Well.. console programs.
I woulden't dare to try a visual one.
hehehe
this is fun
available in the preview release of the sqfvm language server for vscode: https://marketplace.visualstudio.com/items?itemName=SQF-VM.sqf-vm-language-server
that button in vscode allows to switch to the preview release
aaaand now also added the missing sqlite3.dll to that extension so that the language server actually does start (0.2.2)
@orchid shadow Indeed, that's something you want to avoid by any means necessary ^^
Does it need any extra stuff to be installed. Or is it "install extension with one click -> all good" ?
One click install
Executables required are bundled
But windows only (as of now)
Happy to receive any bug report or recommendation on the preview
I've just installed the preview version in my VSCode Insider edition and I don't see anything happen? ๐
Tried it by copying the sample file that visible in thte VSCode marketplace and typing in it.
huh?
https://i.imgur.com/0EerpOV.png
according to that gif visible here https://marketplace.visualstudio.com/items?itemName=SQF-VM.sqf-vm-language-server I should see something in the problems tab?
aparrently the released version did not pack the langauge server .... -.-
checking and releasing fix with the binaries packed
just found the logs, yup ๐
2023-08-11 13:21:34.684 [error] Activating extension SQF-VM.sqf-vm-language-server failed due to an error:
2023-08-11 13:21:34.684 [error] URIError: Cannot find the language server module.
funny enough, they are there
wtf ๐
probably forgot to save prior to calling the publish process ...
really need to setup CD
mhh ...
or something is wrong with vcse
as the newly packaged version still holds the old js file
ahhhh .... must do yarn run compile first (which gets back to the point that i need to setup CD)
fix is available in ~15 minutes (vscode extensions page indexing) live
report invalid error reports at https://discord.gg/eP4QgTr in #language-server please ๐
will try to have fixed all of them by end of the week
further suggestions will need to wait till end of the month (holidays planned for then so plenty of dev time)
Well, i will probably only focus on windows for now :)
Could we also have people not use mikeros obsfucation option?
Why you might ask?, because i don't want to implement workarounds in Swifty for thoes files.
If they are obfuscated, it probably means the author doesn't want any alteration
yea thats a crazy thing to ask people to do @orchid shadow
The obsfucation is so useless tho
Some shiet pbopackers crash other show the content.
But you can beat them in a whooping 4 steps
with a texteditor and find + replace
Hey everyone. I would like to announce sqf-analyzer, a VS code extension for sqf, https://marketplace.visualstudio.com/items?itemName=SQF-analyzer.sqf-analyzer
sqf-analyzer is written in the Rust (programming language) and supports
- preprocessor language (so, comments, #if, etc.)
- the SQF language
- the config/description.ext language
In VS code, it offers diagnosis (errors), semantic syntax highlighting, go to definition, type and parameters annotations.
it is quite fast (all antistasi's core's ~600 files are processed in under 3s) and natively supports Windows, Mac, and Linux.
It is still in its early stages, but I believe that it is sufficiently useful (at least for me) to share it here. Hope you enjoy using it, and
I am of course happy to help.
Its vision is to offer the same functionality and UX that rust-analyzer offers for Rust.
Sweet. Some of the Antistasi guys certainly will check it out.
could you clarify what do you mean what extension flags mean? Regardless the example you are showing seems a bug on the analyzer - could you share the code so I can fix it?
I have multiple extension for SQF active - i disabled all others that seems to do error checking of some form.
Unless I would disable all others, I am not sure what extension is bringing up errors/warnings. Hence asking if there is a way to tell (ie tooltip or some detail view)
this which you can add yourself or use the other new function
In theory, there should be error codes provided by the language server extensions
How is it that there's suddenly now two new sqf analyzers out there ๐
Ohh boy, just wait until I announce that my public server mission is ready for the public (aka: happens a lot when one starts to release something)
Thank you for the explanations! This is now implemented in version 0.1.3.
I maybe release a pbo encryption :)
We or You? :)
I promise you.
If people start releaseing more shit like that, i'l make it my point to defeat it at every point ;)
@smoky halo you can have mine if you want ^^
@glossy inlet what method are you using?
hooking windows ReadFileScatter and decrypting if pattern was detected in filename
well I am talking about creating ebos
im also working on that currently but im not really getting that far
like 0% so far ^^ or maybe 1%
is the idea the 1%? :)
no i got some code which is producing some kind of encrypted pbos.. but... arma cant read them and i cant eigther ^^
some kind?
well im using aes but i dont know what part to encrypt when and if the header needs to include some key... I would need to do some more research
where you got the code?
reverse engineering
aes is used for header encryption
only for header? i thought for all files?
ebos use acr4 afaik
Anyone know why bundling a VS code extension with esbuild breaks it? And how to undo the bundling (lol)
It seems to be some weird problem of npm acting crazy on Linux
this can be due to many reasons, without the specific error it is difficult to tell. sqf-analyzer uses esbuild, but pnpm instead of npm, https://github.com/sqf-analyzer/sql-analyzer-lsp/blob/be4f056cb0405dec57bb6a5363450b3161587af9/client/package.json#L65
Something about developer (me) taking too long about implementing new fancy intrinsics
solved with SQF-VM Language Server for VSCode
(upcoming)
hello, my pbo project error Skeleton has unpaired bones who to fix please?
Ask in #arma3_model
@dawn palm hey so question, I've been using the old pboproject v2.95, and decided to update to the latest version 3.82 as well as every other tools.
Question 1: Is it intentional that a TexHeaders.bin is no longer produced during packing in the newer versions?
Question 2: It looks like in the newer versions rapification comes after binarize.exe, but this way binarize.exe tends to throw error popups when using an #include inside a config array which is not accepted by the BIS binarize.exe, but perfectly processed by Rapify. This creates a weird behavior where the error message box halts the packing process until pressed "OK", but the PBO still packs fine. Is there any chance this could be reversed in a later update? (if not I'll obviously just resort to a more conventional #include use)
Why is your config not accepted by binarize but by rapify?
I'm pretty sure he said why when he said:
binarize.exe tends to throw error popups when using #include inside a config array which is not accepted by the BIS binarize.exe
but at least that's where I'm grasping onto where he said why could be wrong ๐คท๐ปโโ๏ธ
#include is just a copy-paste, and it happens before the config parser. So that should not be a problem.
Even if it were, its probably a bad idea to try to depend on doing things that the game itself doesn't support
doesn't because it needs linebreak before the #
Well yes, but binarize.exe still errors out on it, CfgConvert.exe too
And that's why I asked
Since Rapify happily accepts it and turns it into valid rap format, what the game gets is what it accepts
So yeah
My question is not whether or not it's a good practice, the question is if it's intentional that now binarization comes before rapification
I'd like to know of that bug and how it happens, so I can fix it
here is a sample zip
That should indeed work. Thank you, I'll take a look at that. Maybe its the whitespace infront
@nocturne basin do you know if whitespace before preprocessor thing should be ignored?
With this
magazines[] = {
#include "list_mags.hpp"
};
i tried removing tabs and left it like this and it still chokes up
For me this works.
But I don't use any fancy tools
Assuming all # operations are evaluated the same, yes, whitespace is ignored
Do you know what specific error CfgConvert gives for that?
Alternative problem could be the #line markers, but config doesn't need them so.. I would expect it not to have them
it complains that it encountered a # in the include file instead of a , which as you saw in the config and Hpp isnt true.
Binarize throws an Error 3 and refuses to elaborate further
is #pragma supported by now for the preprocessor in arma for config and sqf?
yes, it's ignored.
27-01-2021 Size: ~ 26 MB TOOLS Publisher Changed: To avoid confusion, the Custom Compositions are not longer displayed(*) Binarize Added: New predefined Preprocessor Macros (see CfgConvert changes) Fixed: An issue that would prevent Binarize to promptly exit once all the operations were performed...
neat
could not quite remember if i just dreamed that being added or not
This + macro resolving on hover is live now in latest pre release of sqf-vm language server 
i'm trying to make a dll for a3. i'm going of of kk's tutorial (http://killzonekid.com/arma-scripting-tutorials-how-to-make-arma-extension-part-1/) but i'm having some issues.
https://streamable.com/dymdce This is how i've been setting it up, what i notice is that i have 2 errors instead of one wich is what kk had and said to ignore
Hard to say, at first glance, but I'd check using https://github.com/lucasg/Dependencies/releases if you're exporting the right functions in that dll
Then, by the way, it's always good to have another exe that basically takes the place of Arma3 and does a LoadLibrary on your extension, so that you can test your extension in 0.1s rather than 1 min. This also usually helps catch a lot of issues
Great for uint testing extensions
from just a quick look at the video (didn't see the code very well):
your extension is 64 bit
so its name should end in _x64.dll
appreciate it, well do that first thing tmrw morning
also you can remove the DLLMain fnc
on my more recent attempts i had that removed, but this is optional right?
and you don't need to click run. there's a build button 
or you can add a launch task to the build target so that it launches Arma for you but that's a bit complicated
yes
you can keep it if you want to handle loading and unloading of the DLL
i'll prob remove unitl i might need it, i'm trying to get the hint form kk's example to work and then build of that example and learn/ experiment more
thanks for the help
also I think in your video I only saw 1 function being exported?
afaik you need at least 2: one for version, one for ... entry?
don't remember its name
RVExtensionVersion and RVExtension iirc
tho not 100% sure. maybe just RVExtension is enough
The Extension is required to contain at least the entry point in a form of a method named RVExtension or RVExtensionArgs. Everything else is optional.
https://community.bistudio.com/wiki/Extensions
nvm
RVExtensionVersion should be optional, AFAIK
If you're ok with using Rust to make it, https://github.com/brettmayson/arma-rs
the best way to make extensions, unbiased
If you're ok with using Python to make it,
https://github.com/overfl0/Pythia
the best way to make extensions, unbiased
KK provides such a tool on his blog
Sqf-vm may also be used for that
cough C# da best ๐
Didnโt support Linux server before, but at least thatโs doable now
until you want higher than .net 4.8
pls no .net framework ๐ฌ
don't hate on non Windows users, we also like C# and dotnet core
mono is a bit more of a mixed bag
MS's speech to text stuff doesn't work on .NET core for some reason
(and doesn't exist on linux anyways
)
Yes
Why write your own dll with no dependencies, when you can have c# with alot of dependencies?
Because you actually can find people which develop for it
function from callExtension is literally just a string, right?
dotnet supports AOT and unmanaged exports by now
the only downside is limited reflection support
yeah couldn't figure out how to get them to work
which is not necessarily a bad thing ๐
prevents you from easy using of webapi and stuff though ๐
i am not entirely sure what about entity framework
it might run fine
still you need to watch out with dependency injection based frameworks
pretty sure automapper doesn't run as well
code generation from api definition file ๐
they changed it with minimal api? As i once looked at the code the used reflection to gather all controllers
at least for the ms web sdk
at this point i would rather run the extension with a .net 4.8 extension then callback into that and use that callback to callback into arma lmao
still bonkers why no reflection is possible on Native AOT compilation...
Like, seriously, it ain't hard to just stick in the same mechanism they use in dotnet
IL linker breaks on AOT for reflection, because it has issues trying to remove unnecessary code
But that's the point, no need to shove things off. With cpp is is mandatory because otherwise you live in utter template hell, having binaries in the gigabytes.
With c, one could leave that code in, but for what benefit?
With dotnet tho? Nobody is going to use it in microprocessor architecture, expecting the code to fit in few kb of a binary and hek, it could also be just optional, period. Like, optionally add --trim to reduce binary size...
Hia! I am looking into extensions and am curious. Im not entirely sure what my question is xD
I suppose- can it manipulate the ingame world, or is it more for handling data? If- if that makes any sense xD
Oh, what about, can I get data (position, rotation, etc) to spawn, then do the actual spawning of a house from the extension, or can I only get the data to spawn a house and then give the data to SQF so SQF spawns the house.
You can only pass strings between extension and game
Unless you go for Intercept plugins
inb4 Cheat Engine
Ah ok so my idea isnt possible. Was wondering if I could make a house thats considered terrain object x3
Well thanks anyway! Maybe I could use it later but not rn. :P
do any of you have a .net 6.0+ aot example? never managed to get it working myself
it is possible, with Intercept
But Intercept can also only execute script commands for you
it would still be a regular object and not terrain object though?
not that there's a big difference when using simple object etc
ye
i dont understand. Nobody forces you to use callback when using dotnet AOT (net6 and onwards)
You can use the normal return of functions as always
But is much simpler to do async code with callbacks that runs fast
that callback suff ist completly optional
i do not know how to get aot to work properly lmao
here you go:
using System.Runtime.InteropServices;
using System.Text;
using static System.String;
namespace ArmaExtensionFolders;
public class Extension
{
[UnmanagedCallersOnly(EntryPoint = "RVExtension")]
public static unsafe void RVExtension(char* output, int outputSize, char* function)
{
var method = Marshal.PtrToStringAnsi((IntPtr)function) ?? "";
var result = "";
switch (method)
{
default:
result = "Method not implemented";
break;
}
byte[] byteFinalString = Encoding.ASCII.GetBytes(result);
Marshal.Copy(byteFinalString, 0, (IntPtr)output, byteFinalString.Length);
}
[UnmanagedCallersOnly(EntryPoint = "RVExtensionArgs")]
public static unsafe int RVExtensionArgs(char* output, int outputSize, char* function, char** argv, int argc)
{
var method = Marshal.PtrToStringAnsi((IntPtr)function) ?? "";
var parameters = new List<string>();
for (int i = 0; i < argc; i++)
{
var tmp = Marshal.PtrToStringAnsi((IntPtr)argv[i]) ?? "";
tmp = tmp.Replace("\"", "");
parameters.Add(tmp);
}
string result = "";
switch (method)
{
case "getFiles":
if (parameters.Count == 0) break;
result = GetFilesFromFolder(parameters[0]);
break;
default:
result = "Method not implemented";
break;
}
int byteCount = Encoding.ASCII.GetByteCount(result) + 1;
var memory = new Memory<byte>(new byte[byteCount]);
Span<byte> byteFinalString = memory.Span;
Encoding.ASCII.GetBytes(result, byteFinalString);
byteFinalString[byteCount - 1] = 0; // Null terminator
MemoryMarshal.Cast<byte, char>(byteFinalString).CopyTo(new Span<char>(output, outputSize));
return 0;
}
[UnmanagedCallersOnly(EntryPoint = "RVExtensionVersion")]
public static unsafe void RVExtensionVersion(char* output, int outputSize)
{
var versionString = "0.1";
byte[] byteFinalString = Encoding.ASCII.GetBytes(versionString + '\0');
Marshal.Copy(byteFinalString, 0, (IntPtr)output, byteFinalString.Length);
}
private static string GetFilesFromFolder(string path)
{
if (!Directory.Exists(path)) return Empty;
var files = Directory.GetFiles(path);
return '[' + string.Join(',', files.Select(x => $"\"{Path.GetFileName(x)}\"")) + ']';
}
}
compile with: dotnet publish /p:NativeLib=Shared -c Release -r win-x64
i can show you the callback stuff as well
if you want to debug use -c Debug to get the pdb file as well
Yes please, intent is for a voice to text plugin that does callback into arma
add:
namespace ArmaExtensionFolders;
public class Extension
{
public static unsafe delegate* unmanaged<string, string, string, int> Callback;
[UnmanagedCallersOnly(EntryPoint = "RVExtensionRegisterCallback")]
public static unsafe void RvExtensionRegisterCallback(delegate* unmanaged<string, string, string, int> callback)
{
Callback = callback;
Console.WriteLine("Loaded Callback");
}
/* rest of the code *&
}
Legendary, thank you ๐
you can than just call Callback("ExtensionNameIngameEventhandler", "functionName", "some data as string here");
be aware, you need to make sure to call the delegate only when initialized. So build a wrapper or make it nullable
i have no clue what building a wrapper is so ill just nullable it
It has come to my attention that there is some weird padding atm when castin the string to output. There can be some weird characters in the return of RVExtension/Args after your data
Havent really looked into it
by wrapper i meeant building an abstraction layer - so a static class for example that handles all calls to the delegate and does a check before passing and possible queue the returns
There is a fixed limit of callbacks call per frame
ah gotcha
and it costs performance still. so you might want to queue and only call n numbers per second to callback
always depends on the payloadsize
i mean it only calls back when you finish a sentence so
yeah dont worry in that case
iirc it cuts off sentences already as well if theyre too long
its literally just pushing the string into a callback thing, all i needed was the wrapper stuff; once ive got this working ill write something up for the biki page
You can do your dependency injection build like in asp.net if you want too. I created an Application class builder like thingy and hooked it to rvextensionversion. It will be called upon loading your extension, so it is the best place to start background logic
Yep, its a speech engine so gets initialised then and just does callback on every finished sentence, it's easy enough
https://github.com/TaskForce47/TF47-Prism-Sharp/tree/master/TF47-Prism-Sharp for reference - but it is old code prototype stuff - still should work and give you an idea of what i meant
Thanks, think the most I'll likely struggle with is compilation tbh; rest of it is quite straightforward
Developer Command Prompt, right?
you need to add this to the csproj file:
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> in the property group
because the delegate is open pointer stuff
Yep, already did that, thanks ๐
any powershell or cmd will be fine as long you are in the projects folder
Roger, only cmd knowledge comes from symlinks lmao so that's another thing to learn
i think if done right you can even configure the csproj file to build this the old way
you just literally have to copy paste and reuse the compile string i gave you xD
Ya, should be able to figure it out more or less, thank you ๐
for reference my property group looked like:
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PublishAot>true</PublishAot>
<StripSymbols>true</StripSymbols>
<OptimizationPreference>Size</OptimizationPreference>
<Optimize>true</Optimize>
</PropertyGroup>
will reduce the final output by a lot
final hint, if you want to compile for linux, you will need to do it on a linux host. So you will need a VM. Docker and WSL will do just fine too.
Meh, linux users will simply have to cope
it did matter for me because code i wrote had to work on linux servers that are more common than linux players ๐
yeah the only use i have for this atm is tfar/acre subtitles and conversation system, of which linux users will simply not be allowed to communicate
just to check too, i don't need to handle destroying anything thats done by the extension, right? arma should clear all that up on closing?
i am not sure about it. For normal c# on a runtime yes, but for AOT code idk
gotchu, figure i'll just find out anyways; thanks for the help ๐
i can be blocking the closing until depending threads are closed or a sigkill form taskmgr kills it
i already have something which can check for arma process running or not so shouldnt be that hard
if you do some background stuff just remember to pass a CanncelationToken on which you can rely to stop anything backgroundtask related
ok should be my last question, how on earth am i supposed to await in unsafe context
callback wont work if its not unsafe but await is required for the entire thing to work
which doesnt work if its unsafe
im a goober just wrap callback in unsafe lmao
Is there any limit to the length of string that can be passed back by extensioncallback?
Yes
what is that limit
Since Arma 3 v1.67 it is possible to pass array of arguments to extensions. The array of arguments could be anything and all elements will be converted to strings, however you might want to only send simple types like Booleans, Strings, Numbers and Arrays of all of the above. There is currently a limit on how many arguments can be sent and it is 2048 (since Arma 3 v1.92; previous limit: 1024). However an argument could be an Array itself, in this case extension maker will have to provide additional methods for parsing such arguments.
``` https://community.bistudio.com/wiki/callExtension
AFAIK this applies there as well (correct me if I'm again wrong here) ๐
Yeah saw that, wanted to check; figure it's either 1024 or 2048 -- I should be able to work with that though
10240
Ah, thanks brett ๐
That limit does not apply to callbacks
I think there is no limit for callbacks.
So several megabytes should be fine, maybe don't try to push it beyond that
oh callbacks
Oh, so the limit actually does not apply. Interesting! Is it accidental design choice or made so on purpose?
I guess both.
We'd also like to have no limit on normal RVExtension return, but we can't because we need to allocate the buffer beforehand
with callbacks we can allocate the buffer after and know how much we need
arma-rs Version 1.10.0
https://github.com/BrettMayson/arma-rs
https://crates.io/crates/arma-rs
Now with:
Persistent State! Global and Group scoped!
https://github.com/BrettMayson/arma-rs#persistent-state
2.11 Call Context
https://github.com/BrettMayson/arma-rs#call-context
Btw I have plans to expand CallContext in 2.16
I don't know if that warn there for too many args would print every time or just once?
The warn in arma-rs? It'd be every call, as it is called before each
" bool Rmd(this FtpClient ftpClient, FtpPath path) removes the directory
bool Dele(this FtpClient ftpClient, FtpPath path) removes the file
bool Delete(this FtpClient ftpClient, FtpPath path) removes the entry, whenever it is a file or directory"
Whoever wrote these functions should die
Good stuff @nocturne basin
ty dude
but i think i fucked up something with the object structure change ... just came up in my head when i was in bed
nope
all fine
phew ^^
@cyan crow released some related it seems too
https://github.com/NouberNou/carma2
https://github.com/NouberNou/carma2#array--accessors
ha, yea, rewrites can be both a gift and a butthurt :P
yep
i know
also talked with him
he solved his problems without a new lang. that brings in type safety and instead using arma locations as namespaces
so that you simply can do
_obj getVariable "whatever"
yea good stuff, interesting difference in approach
yup
i rly find his approach interesting and thought about maybe doing the same for some test release
but in the end OOS has the big benefit of being type safe ==> less shit you can fuck up ^^
yea, thats definitely valuable, one of the best things moving from dynamically typed languages to statically typed.
I personally am a big fan of TypeScript that gives you opt-in type safety :)
type safety makes things easier :P
its always worth using it
yea most def :) Got some release announces of my own in the meantime ..
We released Sync, incl all source code for frontend and apis :)
https://forums.bistudio.com/topic/185902-sync-discover-publish-and-synchronize-mods-public-beta-release/
https://community.withsix.com/topic/80/focus-on-our-core-features-going-open-source-and-becoming-lean
Has something recently been changed/updated? I've never noticed that kind of load before.
*SQFVM Language Server
that is weird
new one should not have even close to that load
tho ... then again, might be that the SQLite DB is currently in memory (tho 7GB still is way too large)
Can you ZIP the project and send it to me?
Also what happens when you close/reopen vscode?
If there is a change then, what did you do for ~ how long?
(feel free to ping me next time btw. ๐ or post in the SQF-VM discord server)
@junior beacon (mention to make sure you see this)
Can't share the repository unfortunately.
My log shows around 6k entries. As it seems mostly issues with includes it can't find. No clue how to fix that.
But I am also running other swf extensions so I just wanna make sure it's not them causing it.
Works fine on small repositories though.
Might be just that (the 6k messages, there was some endlessly growing bug)
Fixed a bug which is caused by pp being not done, exiting early (tonight after the initial message of yours)
So that may fix it
It still shouldn't hold that much memory for the extension itself
So the interesting question to me is, whether the amount of memory grows when you are using it over time and if yes, what you are doing as I was unable to reproduce
I'll try to answer these questions when I am back from work.
How do I get Mikero's MakePBO to not to exclude HPP files when making a PBO mission file? -X launch param seems to work the opposite way
Again: better to export the mission via the editor
I'm trying to automate a complicated multi-mission setup, that's why I'm trying to avoid the manual method @nocturne basin ๐
Alright, I gave up eventually and did like you told ๐ Seems to work so far so yeah
No automation for me I guess 
-X is everything you do not want in the pbo, so provide everything but the file format you do not want in it.
simple pwsh script:
$excludeList = "*.h,*.hpp,*.png,*.cpp,*.txt,thumbs.db,*.dep,*.bak,*.log,*.pew,source,*.tga,*.bat,*.psd,*.cmd,*.mcr,*.fbx,*.max,*.7z,*.zip,*.rar"
$pboProject = "C:\Program Files (x86)\Mikero\DePboTools\bin\pboProject.exe";
$pboProjectArgs = @(
$sourceDir,
"+M=$outDir",
"-X=$excludeList",
"-P", # do not pause
"+Engine=Arma3",
# "+Clean", # full build
"+Stop" # stop on error
)
$p = Start-Process -NoNewWindow -Wait -PassThru -FilePath $pboProject -ArgumentList $pboProjectArgs
if ($p.ExitCode -ne 0) {
Throw "pboProject build failed with exit code $($p.ExitCode)"
}
Neat script indeed ๐ ๐
I'm still not sure how the -X launch param would help since I'm not excluding anything with it now and it still excludes .hpp files. But I got it working by simply exporting via ingame editor like X39 told me to do ๐
Is it possible to read the server console output via stdout or anything else?
I'm guessing the only way possible is to just read the log, if the server is configured that way?
The Windows Server should log automatically to a rpt file.
Im creating a simple web app for HTML preset merging (e.g. if you'd like to add client side addons from a different preset quickly)
Is there documentation for the launcher preset requirements?
Or is it possible to get a more verbose error than that one ๐ ?
Nevermind, found the place with logs and it seems that ive missed the encoding part
Left is mine, right is the one generated by launcher
You can use xhtml or xml validator
true, true
https://merger.anteriam.pl/ here it is in case someone need this very specific thing xd
oh neat
Does is display addons that the main has but the secondary doesn't?
uhmm
no but thats a cool feature request
if you have e.g. 2 of the same mods on either of the lists it wont tell you as of now
Oh, mine was the addon is present on the main preset. But secondary doesn't have it.
So if ya are wondering what addons were removed from previous modlist versions- :P
unless ya just were saying another idea as well as mine x3
ill probably add some more stuff but im done for now (other stuff to do), feel free to contribute if you know basic nextjs/ts/js https://github.com/anthonybartczak/nextjs-arma3-preset-merger
You can do xml tree diff to get the added, removed etc
the html is parsed into an array of objects but yeah, it could be done before i do the parsing and tag the "overlapping" mods in the object
(just fyi this app is very very basic as of now, just wanted an easy win when it comes to adding client side mods)
im doing the dif feature now and while testing i have used a preset from couple of months ago that i got from some arma group
what's weird - most of the workshop URL are http and not https
whats the reason for such thing?
The reason was that someone years ago wrote it like that.
I fixed that recently
gotcha, ill leave the code handling those 2 cases just for backward compat
Normalize to just the id
Steam workshop urls also support having the id as last path in addition to being a query parameter
but this is not something that is exported by the launcher right?
official launcher now, third party generators 
first case can be dealt with by
new URL("https://steamcommunity.com/workshop/filedetails/?id=450814997").searchParams.get("id")
works regardless of scheme
I was splitting the string after ${protocol}steamcommunity.com/sharedfiles/filedetails/?id= to get the id, thats why ive asked about the protocol
yeah, i guess that your approach is better
thanks
the other one you can get with
new URL("https://steamcommunity.com/workshop/filedetails/450814997").pathname.split("/").splice(-1)[0]
or you can do all cases with regex
tru tru
/\d+/.exec("https://steamcommunity.com/workshop/filedetails/?id=450814997")[0]
@pearl rune / @kindred abyss added a duplicate detection functionality
Just tiny headsup of what SQF-VM Language Server now can do:
Also fixed invalid #include errors popping up in various community projects due to $PBOPREFIX$ not being trimmed or wrong casing is being used ๐
(did i mention that you can write your very own analyzer stuff in SQF with this too? eg. want every variable prefixed? Possible with this language server ๐ )
That macro resolving is a godsent for working with ACE style mods
Just wait until I have the full page preprocessing done 
(need to get open document and other things ready first)
Ohh
And just in case somebody knows how to make a vscode extension language server also be a debug adapter, hit me up please, as I don't have the time to figure that out (but debugging using sqf-vm, aka: no game start needed, would be very nice)
Ohh
And if somebody has ideas for quick fixes, feel free to suggest them 
very good
This is so awesome. Thanks a lot for your effort!
Can I publish addons through PublisherCmd? I cannot open ArmA 3 Publisher
Or are there any alternatives?
Why not just try Yes?
I already did
It says net framework 4.7.2 is already installed
Same issue as the a3 launcher
Have you tried to fix/reinstall .NET Framework?
yes
I've tried all of the things, I kinda solved and got the main game running with mods with a bat file but the publisher is a no go
Just to make sure, verifying Arma 3 Tools?
I did
While it is a wild suggestion, but checking for dotnet version can be wonky and possibly, it is not actually 4.7.2 (which should be shipped with windows anyways)
Chances are, another dotnet framework version is required (eg. 4.8 or 4.7.3/4.7.1)
Try installing those from Microsoft page
Alright I'll see
@nocturne basin
Is it possible that numbers inside macros can cause issue?
For example IDD_DISPLAY3DEN
If I replace the 3 it's showing the same error for the second macro and if I remove the 3 from the 2nd one it's all fine
Also, I guess some "magicVars" need some special handling
It is more that this is a followup error
So at some spot, somewhere, a problem exists
Not all are added yet, yup
Feel free to report any finding (please minify as much as possible) to the GitHub issues of the language server ๐
Ohh... And the preprocessor is not yet supporting the newer preprocessor stuff dedmen added (I still kinda feel like he did it on purpose, somehow knowing that I just finished implementing things in the preprocessor back then)
I created an issue for the magic variables.
Funny thing is, the issue with the macro containing a number is gone now
both of them says that my system isn't compatible or unsupported
guess im fucked
What Windows version are you using? XP?
Did you download the arm64 installers?
But it got stuck whilst updating once and had to go to a shop to get it sorted
naice
Does SQF-VM not have syntax highlighting?
Went to try it out over the current SQF extension I use (SQF Language) and noticed that it didn't have any highlighting
https://marketplace.visualstudio.com/items?itemName=SQF-VM.sqf-vm-language-server Did you install the correct one?
Because this one is the one i was talking about
I'll double check in a bit
Ah yep, had a different one installed. Similar name but it was just "SQF-VM"
Does seem to give a lot of warnings and errors that are seemingly just wrong though
It is currently not checking what type of scope is overriding the value
is there still any service to track server/players stats for Arma 3?
if not, is anyone interested to build one using our EMM crawler by @karmic niche
written in python yet data could be also exposed via json to use anything else
I've seen a few attempts on github
But most I am aware of is closed source unit intern stuff
EMM == Multiplayer Menu from Prairie Fire and Spearhead CDLCs
It is planned as part of a project of mine
Just don't have the time to continue there
(aka: as per usual, my day would have to have 90h to actually do what I do)
is it possible to publish Arma 3 missions also via publisher command line?
or is it still the old format/system and you have to upload missions from inside the game
It uses old UGC system which is why publisher doesn't let you edit missions
no, but other cmd tools
thanks! i do remember that one now - will forward
Hello, I am new to the forum and I am making a map for my clan X-Ray Division to be a main base on the server, the problem I have is that when generating the layers, in the data-layers folder, each *. The colors appear changed compared to the mask, and when I want to see the bulldozer, the map is...
Better ask your question there #arma3_terrain
Does anyone have a good way of generating Inventory icons? Or can recommend a tool?
Follow instructions and email them
Allegedly it will also get whitelistes automatically if enough people use it
But u won't find any battleye devs here
than attempt the latter approach and include it. It may kick people a few times but i think it will work soon enough
Do they need to enable BE?
If they don't enable BE, then BE will not know anything about the use of your extension - that's for sure
DM me if it's urgent and explain why it's urgent
Any ideas on this error we got when trying to publish cba
2023-10-17 13:53:13,245 [ERROR] 16 (:0): Publisher.Steam.PublishingWorker+<PublishImplCoreAsync>d__1b.MoveNext - Publisher.PublishingCopyToTempDirFailedException: Could not find a part of the path 'C:\Users\x\AppData\Local\Temp\!Publisher_CBA_A3_847349fb-698a-4748-8540-b78ea4d01113\optionals\@CBA_A3_jr_disable_long_scopes_on_short_mg_rail\addons\cba_jr_disable_long_scopes_on_short_mg_rail.pbo.cba_3.16.0.231017_cba_jr_disable_long_scopes_on_short_mg_rail.bisign'. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\x\AppData\Local\Temp\!Publisher_CBA_A3_847349fb-698a-4748-8540-b78ea4d01113\optionals\@CBA_A3_jr_disable_long_scopes_on_short_mg_rail\addons\cba_jr_disable_long_scopes_on_short_mg_rail.pbo.cba_3.16.0.231017_cba_jr_disable_long_scopes_on_short_mg_rail.bisign'.
Seems like it's erroring out due to very long path
HEMTT 1.9.1
https://github.com/BrettMayson/HEMTT/releases/tag/v1.9.1
1.9.0 Changelog will contain the important info: https://github.com/BrettMayson/HEMTT/releases/tag/v1.9.0
yes, the default max path in windows is 260 characters, that's at least 267 characters plus your username
you might be able to use long paths, https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later
i still remember the good old days when you could not delete an accidentially merged folder because NTFS allows for the length of the path but Win32 does not ...
had one music folder i accidentially moved some albums in another albums folder
the files in there got lost to eternity
hello, i want to reduce the waight of the mods in the server, my idea is to change all .paa/jpg/png to a white 16x16 image, and in case of sounds reduce it weigt, but i dont know if will have some effect if i reduce it length to 0.1 seconds
any one tryed something like this?
It might have an effect
For our server files we also shrink sounds by reducing bitrate and for wss files using delta4 encoding
paa to white image could cause problems
some things in game use the color of textures
The idea is to use this on mods, not the bis server files
Yea, I guess reducing the size of the image will do the trick
you might be interested in https://github.com/Marcin648/pboServerOptimizer
yep that will work ๐
Thankyou
Currently running an Arma 3 server on docker using Arma Server Manager though the tool is... wonky and the UI uses a fair bit of memory, any alternatives that offer the easy installation of mods (Linux)
https://GitHub.com/BrettMayson/arma3server
No UI or anything, just runs the server
is that the java one? there's another web ui one using nodejs
This tool is erroring out randomly for some reason..
Yes it is the java one, I did see the nodejs one too but didn't promise the same modding convenience
the nodejs one has a separate branch with steam integration
there should be a premade docker image with that branch
or maybe docker decided to remove it ๐
Seems pretty standard now adays
https://github.com/Dahlgren/arma-server-web-admin this one?.. yours lol
Ah I see the branch
it's actually mentioned as inspiration in the java readme ๐
we use a different steam client for our servers but I haven't migrated the public one to use it
Well the public branch for steam workshop mods seems to be a bit behind
Could try to pr it into a fork and pick out the conflicts if any
likely a lot of conflicts ๐
rip me
it should be fine in it's current state, it just lacks some of the newer ui features and spe support
adding spe would be easy
Also regarding this, would you know anything about this error perhaps?
Even gave cmd administrator and it keeps getting tangled in itself
This thing has no 'ideal' error handling lol, I guess my best is to sift through it
'obfuscated pbo' 
You could just ignore any failing PBOs
Best would be to not unpack and just make a clone PBO with replaced files
That should actually be a lot easier
And can be done multi platform easily as well
Iโll see if I can make something, we have a similar tool but with different output for CI usage
Im forced to used it in windows here because it requires Arma 3 Tools, was there a linux port for those? ๐ค
isn't needed, just a pbo reader and writer
Found a pbo library, https://github.com/Dahlgren/python-pbo-fuse i'll try to see if I could do anything with python again ๐
Oh what it's yours too haha
your tools seem to be well known

Yeah none of these tools i'm looking at can modify pbos rip (atleast in python)
I think yapbol might be able to but i'm not sure
totally untested with actual server but can create a mirror of a pbo structure with empty paa files, https://github.com/Dahlgren/arma-server-minifier
it should insert a proper paa instead of a zero byte file but it's 3 am here
code is horrible, I can clean it up later
atm it only processes pbos, it should copy all but process PBOs
Oh cool! I'll have a look in a bit
ace addons goes from 181,5MB to 30,4MB
Jeez. Quick question, why would the server need to render anything in the world anyways?
Only delved into arma a week ago lol
did a quick fix so it will copy all files and minify PBOs
it doesn't
but forcing every mod author to make a minified version would be quite time consuming
and you would need to either publish every mod twice, have both versions published in the same or as it is now, force server admins to make their own minified
Sounds right about the peak of pain considering steam workshop
I'd also expect singleplayer players to someway download the minified mod lol
it takes two args atm, <input_folder> <output_folder> i.e ./arma-server-minifier "@ace3" "@ace3_minified"
I'll test it with actual server tomorrow or during the weekend, likely it will require a bit more magic with the paa replacement
Yeah wow that is effective.. CUP Vehicles 12.3 GB -> 1.7 GB
Brettโs PBO library does most of the work ๐
It seems to error on certain mods, can't figure out which lol, might add in some prints
I guess it should just copy anything that fails to process and then print the error
It just fully stops, I checked out the pbo and it doesn't have a paa in it, could that be the cause ๐ค
If you want to reproduce it it's 1300954018\addons\BLU_AI.pbo from https://steamcommunity.com/sharedfiles/filedetails/?id=1300954018
Why do you need a minified version of that, is it even 1MB? ๐
I just slapped my whole steam workshop folder in der just to see it as a poc
My guess is its made with pbomanager or something and the pbo is corrupt
but yeah, I slapped a paa in there and it worked fine
(with pbomanager (forked version))
๐ฑ
Yeah nvm
broken pbo it seems
The paa was just a placebo, pbomanager re-exported or something lol
It should fallback to just copy those then
But such PBOs cannot be properly signed and verify signatures wont work
well
BE whitelist time takes ages
10 days 

hey, when trying to use eliteness to view a texheaders.bin file it says "subscribers only" even though i'm subscribed... anybody have any clue why?
reinstall the subscriber edition of the tool
i thought i did
Does optimizing pbos for the server do anything for performance or is it just to save storage. Because i'm having issues with managing memory lol
Even though I'm not a professional about it, but if a PBO is readable by any means, it stores it (at least config and such) into the memory so PBO itself is not a concern. I'd say amout of your files/assets/configs are
Is there some sort of debugger then to see what is slurping it up the most perhaps?
Well, "see what is stored into RAM" could be a "reverse engineering" and even if there is a way I am not the one who is smart at it so...
Easiest and "confirmed" way is to remove Mods, especially big ones
I guess but, if there was some way to tap into the memory allocation then it'd be kind of convenient
While my certified answer is "I really don't know" but I also am sure if helps the hardware very hard, everyone even Bohemian would suggest to do
I found https://community.bistudio.com/wiki/BIS_fnc_codePerformance but this only shows the cpu ms time I believe.. rip, time for manual testing ig
No, only storage.
But, server caches some assets in memory. But it should anyway only load the lowest resolution textures/models
In case where that "should" doesn't work, shrinking files could lead to lower memory usage
can someone let me know why this is happening with Arma3P?
terrain builder is installed
run arma tools launcher 1 time to get it write the install registry entries
just start it and close it
we've done that already though...
it's been fixed but not updated script is not released yet
replace derapdos -p "%%A" %BOOTDRV%\dta with derap -p "%%A" %BOOTDRV%\dta in arma3p.cmd
BI uses this for the server package
Arguments used:
Usage: pal2pace [options] <source> [<destination>]
Options:
-size=<n>```
Is this where I can post issues I am having with Arma Tools?
I am having trouble getting Arma Publisher to boot up
"Application settings are corrupted and will be reseted."
I tried verifying, reinstalling, nothing
Nothing of the usual works
Is there a way to reset the settings?
C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\Logs
maybe the logs have something useful
this does not work, we're still having the same problem
it says you haven't started terrain builder to create registry entries
we're still trying to figure this out so if anybody has a solution that would be great
make sure HKEY_CURRENT_USER\Software\Bohemia Interactive\TerrainBuilder exists with string value path in your registry
Prolly not the right channel for this but i'll ask cuz it's slightly related, certain mods are not signed for some unholy reason, so if I sign them using dssign would I need to send that over to my clients?
yes, clients will need to have the bisign file(s)
Yikes, what would the best approach here. Reupload them to the steam workshop orโฆ maybe a pack? ๐ค
ah ok this seems to be where the problem lies. There is no registry for any of the required applications that were installed (mikero tools included). Which is strange because we have started the applications.
(This is a problem with my friend, and I have seen the applications getting started on stream)
what seems to be the problem? why cant the applications create registries?
would it be an issue that the applications are not in the C hard drive?
@limpid sky my tools are hardwired to only work on the c drive. they are in fact wired to a specfic folder too because while each of my tools can be installed individually, as and if required, most inter-act with each other so require one, common path= statement. K I S S
hi, i've an error while paking AddonBuilder CLI
AddonBuilder.exe "path\to\addons\OPFOR_BG" "path\to\dest\OPFOR_BG.pbo" -clear -sign="path\to\sign\file.biprivatekey" -toolsDirectory="E:\SteamLibrary\steamapps\common\Arma 3 Tools\"
it shows
[ERROR]: Invalid value for argument specified. [ArgumentName]=directoryPath, Directory does NOT exists.
what is wrong in my console command?
path\to\ is been replaced.
oh, i removed back slash in Arma 3 Tools\. it solved.
Hey, anyone know why this keeps happening in pboProject?
There is nothing else accessing the file.
Do you have a binarize crash .mdmp file somewhere?
Arma generates a .rpt log file each time it's run, which contains a lot of information like the loaded mods, or any errors that appear, this log file can be very useful for troubleshooting problems.
To get to your RPT files press Windows+R and enter %localappdata%/Arma 3
Additionally see the wiki page for more info: https://community.bistudio.com/wiki/Crash_Files
To share an rpt log here, please use a website like https://sqfbin.com/ to upload the full log, that way the people helping you can take a look at it and try to figure out the problem you're having together with you.
Note: RPT logs can hold personal information relevant to your system, the game or others.
I've looked everywhere I can't find it; I've tried restarting my computer, checking what else is opening (avails nothing), and addon packer returns an error too; 1073741819
Welp, I don't know if/where binarize writes its crashdumps.
But if it crashed I could use that to check why
I don't know if this is any use to you?
cpu: 13th Gen Intel(R) Core(TM) i9-13900KF
graphics: No
resolution: 160x120x32
Addons:
Version 2.13.150584
Fault time: 2023/11/16 13:32:46
Fault address: 00DBB7D9 01:00B8A7D9ll C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\Binarize\binarize.exe
file:
world:
Prev. code bytes: 68 78 AE 73 01 E8 3D BA 49 00 83 C4 04 5B 33 F6
Fault code bytes: 39 B7 30 01 00 00 7E 71 85 F6 78 08 3B B7 30 01
Registers:
EAX:00000064 EBX:00000000
ECX:01770B64 EDX:01770BB5
ESI:00000000 EDI:00000000
CS:EIP:0023:00DBB7D9
SS:ESP:002B:02DF23CC EBP:01770BAC
DS:002B ES:002B FS:0053 GS:002B
Flags:00010246```
usually it says somewhere nere there "dump file was generated"
I need more info than whats in there, so that doesn't help enough
IIRC binarize was writing the bumps next to the exe

yes should be it, I'll try
NITRO ๐
da frick
you have 150584.
The debug files I have, only go back to 150632
which is may
I don't know what that means, but yes 
I'll give you a newer exe and then you can reproduce with that?
Yes ofcourse
I'm slow https://s.arma3.io/binarize.exe
Do I need to replace the binarize_x64exe with anything? As I believe pboProject uses that to binarize?
the one that crashed was the non _x64 one
C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\Binarize\binarize.exe
I assume it will keep using the same
Nope it's still doing the same thing ๐ฆ Maybe I should've mentioned it's only doing it on some mod directories, and others pack fine... Is there anything I should look for in models.. etc.. that would cause this?
Oh hang on the x64.mdmp has generated an MDMP now too.. But its 700mb, where should I upload it?
MDMPs ZIP quite nicely
Oh yes ๐
probably nowhere because that exe will also be too old so I cannot use it
150584 jup, cannot use
I would like to make an Megaphone mod and given that i want it to be compatible with TFAR and i'm not an expert at Teamspeak API, i decided to code it in c# with DirectX. In order to do this i made a voice recorder and a voice modifier. But, in order for other players to receive the voice data, i made a kind of daemon in charge of receiving and playing the voice on the receiving computer. I know Arma 3 throws a warning when a dll takes too much time to execute but would it be better for that daemon to be in the dll or in a separated executable file ?
I would put it in the dll because thats easier to install
And yeah it throws a warning when it takes too long, so just make it not take too long, async stuff
Ok i'll put the daemon and everything in the dll, but it will necessarily take throw warnings because it will have to be executed at least for as long as someone speaks
Do you mean the thread will keep executing after dll stop executing ?
the dll only stops when you exit the game
Oh ? That's the first time i ever hear about that. Ok i'll try that things will be more simple then
is object builder plugin compatible with blender 4.0.1?
got this error when import a MLOD p3d
Did you update to new release with blender 4 support?
no,
where is the new release?
I did not find any new release on github
(it's not the exact same plugin but the other one is based on this one)
Any reason i get a status access violition error when i use Directx Xaudio2 in a dll ? I'm still working on my megaphone mod and everything works well, i can hear my voice, SourceVoices a being recycled every 10 buffers, everything is perfect but at a moment the game crashes and i get a status access violation code. It doesn't happen always at the same moment, sometimes it take more time but it always happens. This is what shows up in my RPT file:
Fault address: ED1A9000 01:00018000ll C:\WINDOWS\SYSTEM32\xaudio2_9.DLL
file: tempMissionMP
world: Stratis
Prev. code bytes: 48 8D 4B 20 48 8D 57 14 4A 8D 0C 89 4A 8D 14 4A
Fault code bytes: 0F BF 42 EC 89 45 20 0F BF 42 EE 89 45 24 0F BF
=======================================================
note: Minidump has been generated into the file C:\Users\Eric\AppData\Local\Arma 3\Arma3_x64_2023-11-21_12-19-31.mdmp```
have you checked the dump for any crashes within your dll?
I catch and log any error in the dll. If there was an error, it would be logged in my log file
if the error can be catched ๐
best to check if dump contains backstack to your dll
What do you mean exactly by "dump" ?
Ok i'll give it a try just to be sure but when i execute the dll code in an exe application, everything goes fine
i cannot open this project in VS to build the dll
I read this page, Vs dump option is for exe applications, not for dlls
The .exe file the dump was created for, and other binaries (such as DLLs) that the dump process used.
Maybe i'm mising something but on this page, i can read "While stopped at an error or breakpoint during debugging, select Debug > Save Dump As" which means the process needs to be running in visual studio. That's not the case of my dll
you can import dump files generated elsewhere
But how to generate this dump file without Visual Studio ? I tried to open Dedmen's project but it's not working in VS 2022
your message there has path to a minidump file ๐
Here is the dump file, how can it help me ?
That is outdated, not sure if it still works.
The new way is running profiling build with a specific start parameter that enables full dump.. I think.. Or maybe I did it with -debug parameter.. I forgot
Its a crash in XAudio thread.
But that doesn't mean its Arma's XAudio thread. There could be hundreds of things that you might be doing wrong inside your code. That causes your XAudio thread to crash
"MatrixMixFromInt16DiagonalAvx"
I would say you deleted your source voice, or your buffer before XAudio was done with it.
Yes its not Arma.
Arma is running XAudio2.7, and its audio thread is still running fine in that dump.
There is a second audio thread with XAudio2.9, and that one is crashing. So its a bug in your code.
Good luck
you can use your dlls pdb files to symbolicate the dump and inspect in visual studio
probably not working anymore, last update was 2.08 ๐ . Good to know that it's built into the game now ๐
- Tweaked: "Full dump" dialog only shows when the game is ran with -debug
ah yeah there. When you run with -debug you'll get a popup asking if you want fulldump. Not sure if profiling build only or performance too.
I'd expect both, and dev branch
Thank you very much for your help ! ๐ I think i solved the problem, i was indeed destroying a voice inside it's bufferEnd event which was causing the error. I also had a wrong buffer issue. These errors were not raising error in my code
By the way, how to call a dll which is inside a mod ?
I mean, when you create a dll you can put it in Arma 3 folder or in your mod pbo. I tried to put the dll in the mod pbo but it doesn't work when i try to call it.
no you can't put it into pbo
you put it into your mod folder
next to your addons folder
Same as ACE/TFAR/ACRE and other mods with extensions do it
Ok, my bad thanks for your help. But what happen if 2 differents mods have the same dll name ?
hmm...ok i'll put a prefix on my dll name
pbos with same prefix would have same issue
but it will reduce the chances of match
I don't think I've ever seen a dll name conflict
People usually give their dll's quite unique names
Yeah, just don't create a myextension.dll and you should be fine ๐
steam_api64.dll 
HEMTT Browser Extensions
https://addons.mozilla.org/en-US/firefox/addon/hemtt/
https://chromewebstore.google.com/detail/hemtt/glhbbnnlagbnmkclalflihdnfhbjmmip
Coverts .paa files on GitHub for easy viewing!
FYI @rough grove for the security reason you cannot have text with a link but only plain URL
Ye
Would it be possible to put that in the #rules or #info_help_tips since it's a discord feature and I can't find anywhere it's noted not to do that?
@prisma dragon ^
Leopard20, advanced developer tools is making the game slower by about 10 fps every time I run code performance on a single createVehicleLocal command. Not sure whats happening with that
well the diag thingy runs the code
10k times
so you're creating 10k objects every time.



๐ฅ๏ธ
you should test it like this to avoid creating thousands of objects:
deleteVehicle ("???" createVehicleLocal [0,0,0])
1 cycle most likely won't tell you how slow it is
(p.s: if you need me just ping me. I only saw this by accident...)
append into array, deletevehicle all elements of array after ๐
๐ค Have anyone tried to document any OFP/ARMA file format using Kaitai structure yaml? I tried for basic OFP-like PBO. But I do struggle a little with linking those 2 sections (entries, data) together.
meta:
id: pbo
file-extension: pbo
endian: le
title: "Packed Bank Object"
seq:
- id: entries
type: entry
repeat: until
repeat-until: _.file_name == ""
instances:
file_bodies:
type: file_body(_index)
repeat: expr
repeat-expr: entries.size
types:
entry:
seq:
- id: file_name
type: strz
encoding: ASCII
- id: mime_type
size: 4
- id: original_size
type: u4
- id: offset
type: u4
- id: timestamp
type: u4
- id: datasize
type: u4
file_body:
params:
- id: i
type: s4
instances:
body:
size: _parent.entries[i].datasize
file_name:
value: _parent.entries[i].file_name
mime:
value: _parent.entries[i].mime_type
I've used Kaitai to parse Steam packets, so technically it wasn't really Arma. However, at the end, I had to resort to using a custom structure (when you implement a method directly in the programming language that you want to eventually use) to make it work the way I wanted to.
What exactly is your issue? Maybe I can help
(and I was considering using Kaitai for pbo at some point but ditched the idea as it was purely a read-only parser generator at the time)
There is no simple way to peek for next iteration and skip if not matching.
but there is workaround
as I found out finally
it is possible to peek forward using instances like I do for next_signature and next_mipmap_width
I think this can fix also my PBO problem ๐.
yes, palette is not complete, no need to mention ๐
My usecase is simple, I would like to finally start documenting all formats for OFP (and OFP: Resistance) for OFP archive in some generic way. I don't really care about generator of reader/writer. If I'll need, I'll write Rust library around using this YAML as a reference. Biki is sometimes messy with all exceptions collected over the years for different engines. If reference specification can handle all OFP and OFP: Resistance original files, it is ok IMHO for my archiving purpose.
new version (8.58) of the dll, fixes dayz and arma paa obfuscation
any one else got issues with AddonBuilder not moving dependencies to the temp folder
Hi the tool makers. I am working on FASTER and hoping to get some help on implementing the below.
class AdvancedOptions
{
LogObjectNotFound = true; // logging enabled
SkipDescriptionParsing = false; // parse description.ext
ignoreMissionLoadErrors = false; // do not ingore errors
queueSizeLogG = 1000000; // if a specific players message queue is larger than 1MB and #monitor is running, dump his messages to a logfile for analysis
};```
the way it is set is:
public class ServerCfg : INotifyPropertyChanged
{
private bool LogObjectNotFound = true; // logging enabled
private bool SkipDescriptionParsing = false; // parse description.ext
private bool ignoreMissionLoadErrors = false; // do not ingore errors
private int queueSizeLogG = 1000000; // if a specific players message queueis larger than 1MB and '#monitor' is running, dump his messages to a logfile for analysis
public bool logObjectNotFound
{
get => LogObjectNotFound;
set
{
LogObjectNotFound = value;
RaisePropertyChanged("logObjectNotFound");
}
}
public bool skipDescriptionParsing
{
get => SkipDescriptionParsing;
set
{
SkipDescriptionParsing = value;
RaisePropertyChanged("skipDescriptionParsing");
}
}
public bool IgnoreMissionLoadErrors
{
get => ignoreMissionLoadErrors;
set
{
ignoreMissionLoadErrors = value;
RaisePropertyChanged("IgnoreMissionLoadErrors");
}
}
public int QueueSizeLogG
{
get => queueSizeLogG;
set
{
queueSizeLogG = value;
RaisePropertyChanged("QueueSizeLogG");
}
}
}```
I tried Wrapping them in class AdvancedOptions
class AdvancedOptions
{
private bool LogObjectNotFound = true;
private bool SkipDescriptionParsing = false;
private bool ignoreMissionLoadErrors = false;
private int queueSizeLogG = 1000000;
}
But didn't get any effect from that
if you have something about this pls ping me
What is "faster"?
true/false in config aren't a thing. You'll want 1 or 0
You are actually setting them to a string instead of a boolean
Dedmen that makes so much sence i can't belive i didn't even try that
. Do you know if i would still need to wrap it in a class AdvancedOptions ?
I don't know how Faster works. How you configure things
Hello, I just want to create a font with Arabic characters with the FontToTGA tool. I tried a few times to make sure that I added all the charts of Arabic characters to make it show in Arma 3. but there are some keys that when I press it not show in Arma 3 and I config FontToTga.cfg like this : c...
maybe someone can assist the guy further
I don't think it's possible in Arma. afaik it doesn't support ligatures
Is there a chance to update Object Builder to work better with HiDPI Windows settings? It seems to mess up mouse movement distances and you either rotate the view very slowly or it jumps by a large angle, very annoying to use.
Veeeery low. So basically, no
Have you got "Use Direct3D" switched on in OB? Without it the viewport update is terrible as you describe.
I ended up disabling HiDPI scaling so whole application is now blurry by at least rotation works better
But yeah, it is even smoother with D3D enabled
Just tested it with HiDPI enabled, same issues in D3D mode, rotation jumps around
Not really sure where to ask this, does anyone have any thoughts on docker build containers or a way to automate build/deployment of workshop mods? I'm a long time software developer, somewhat new to ARMA 3 work, and I'd like to be able to build an automation pipeline so I can rapidly test/check/deploy updates for our unit modpack
Specifically, wondering if there's a way to assemble PBO's in Linux for docker containers, but open to other suggestions
There should be a GitHub action for installing Mikero's Tools for Linux
And another one for steamcmd
Check this: https://github.com/arma-actions
Interesting - I'd seen the Mikero PBO one, but the linux side seemed to only contain depbo. Then again, if these are run in the cloud, that would probably still work - I was assuming this would be something I'd have to assemble myself. Thanks!
depbo.tar.gz contains all mikero tools for linux
if you have any p3d or wrp that needs binarization then you'll need to run windows binarize.exe
Fair enough! Thank you!
HEMTT works and releases for both Windows & Linux, and the GitHub action for it works on both, but still only WIndows has binarization
btw. if somebody wants to know how OOS looks like
https://github.com/X39/XInsurgency/tree/OOS_Insurgency/InsurgencyModule/src
started a "little" rewrite of my insurgency mission (planned that for ages now and finally found the perfect time for it :))
Ugh im not fan of syntax
created my first working ebo :)
fucking life kids
@orchid shadow ?
Hmm?
Your previous statement about life kids?
The only would want a ebo is life servers i hope.
Oh, okay.
just quickly ... what was an "ebo" again?
I suspect encrypted pbo, used by BI for the DLC
Indeed.
So they can steal people's mods, charge for access, and you can't prove anything :D
I could provide decryption in these cases ;)
sounds....pointless encrypting them in the first place then
I would not hand out the data of course
@smoky talon thats the whole thing
it is pointless ...
the client has to know how to decrypt
the server has to know it too
now ... expect who is the only one who is not allowed to get it easily ...
you, the end user
for DLC pbos, OK
for all other types of PBOs --> ๐ซ
did bohemia release tools to do ebo's or are people reverse engineering it?
reverse engineer
aka buy encryption tool, BI update engine, everything custom encryption goes broken, let's blame BI ;)
thats how it usually works @prisma dragon
one has to be at the very end
and that is most of the time that one who is not able to speak for himself easily
is there a decent guide to pboproject somewhere?
cant get things to work cxause i get the weirdest errors and google doesnt help
Well you can just try to post your error
i get this error with it, and i ;
warnings are errors
and i dont understand at all
You can disable this, but pboProject prefers #define someThing uppercase so #define SOMETHING
Huh? I dont even know what that define thing is
id use normal arma 3 tools addon builder but it doesnt include .rvmats in binarized pbos
As I said you can disable that error, but the error suggests you have one
Do i need an P:\ Drive for Pboproject?
ah, shit
thanks for help, ill guess ill go an p drive
pboproject prefers that full caps are kept for those define things
It reads to me like its telling you the opposite though.
You used full upper case, but its telling you that's wrong because thats only allowed for macros
just skipped the error and everything works anyhow
thats what i said
Anyone using pboproject or HEMTT on GitHub Actions can now benefit from faster builds for public projects
AddonBuilder, HEMTT, makepbo, pboproject
Someone recently posted a thing where you throw a mod html in, and it gives you a mod command line out.
But I don't know where that was. Might've been for DayZ
maybe this? #server_tools message
do alternate client launchers exist? didnt find anything googling (except some linux stuff)
Well for what reason?
am I right you cant launch multiple client instances using the official launcher?
just sometimes has problems if theyre the same profile
But shouldn't be a big concern if the intention is just to test MP
oh yeah somehow I didnt realize that
still though if you launch clients with different parameters you have to switch the settings back and forth
@glossy stratus take the parameters from rpt and put into a batch file
This makes me to wish a way to copy and paste what is the commandline that is going to happen if I click PLAY in Launcher
that's what I have done so far
yep would be nice
Yeah Arma 3 Launcher is nearly perfect, but few things I still miss...
You can get the params from Windows process list
ArmA3Sync works very well.
http://www.sonsofexiled.fr/wiki/index.php/ArmA3Sync_Wiki_English
By the [S.o.E] Team - Sons of Exiled
Weblaunch would be one of those things, being able to eliminate the process for people to load the correct modset ... that quite literally ruins quite a lot of game starts with new people
looks nice! ๐
hello,
i am currently working on a rtm debinarizer for personal use, currently i am decompressing the entire frame data then taking the first two bytes and reinterpret_casting it to a short, before dividing it by 16384 as specified in the documentation. and for the location data its the same but using the convert function given in the documentation. ive been working for weeks on this and i am unable to get the data to correctly match the debinarized version. after i get the double back i run it through the directx math XMMatrixRotationQuaternion function to get the mattrix back to check against the debinarized version however the data is always wrong. i would like some guidance on how to get the data from its compressed array form to the mattrix used in the debinarized file. the file was run through the arma 3 binarize tool and those are the files i am comparing against
Please reply to the message with an @ so i can pay attention and see this faster ty
you won't find any support here for debinarising rtms especially not when you've got screenshots of ripped assets on your steam profile
ripped assets?
take your debinarising assets elsewhere
its not getting done here
that photo is over a year old and since i have left that group of people
i literally did nothing except download the mods they told me to, to play ops
if anyone else could help me with this issue plz ty
I think the screenshot things a little harsh, people cant be expected to go through and check the validity of every mod they need to download in order to play with a group. Most people dont even know how.
In regards to the debinarizing of rtm's, that won't be supported here because its sole purpose is to steal or modify someone elses work. Its almost identical to why p3d debinarization is very much not allowed. I imagine that topic has already been discussed more at length and you can try and find it if you want more details as to why its not allowed.
ok thanks
https://www.bohemia.net/community/licenses/arma3-end-user-license
you may not, in whole or in part, copy, duplicate, reproduce, translate, reverse-engineer, modify, disassemble, decompile, derive source code
Mikeros Dos tools has obfuscation which locks the pbo
https://bytex.market/products/item/weodpphdknnzm70o0h8q/Mikero's Dos Tools
It's not locked, just not human readable.
There isn't really any way to lock pbo
aight but what could cause that
someone says me thats a locked pbo
i want to lock my own stuffs like that
Ya thats the obfuscation. HorribleGoat is right, its not technically locked, but afaik there isnt a software that can read the contents in the way you normally would
okay then mikero's pboproject tool has obfuscation setting but i cant activate this how to activate that setting
Its only the paid version that offers it I believe, Ive never used it
alright thanks for information
np
Mine can, last I tried.
I just double click pbo, and it opens. No matter if Mikeros obfuscation is on it. And theres also some "harder" obfuscation used on DayZ side..
Its just making it a bit harder for people to look into it. Never impossible.
give it to the infringements team so they can attend my report about a server violating monetization rules xD
where can i find a download link for a pbo manager? specifically want to edit template to add items to a "arms dealer"
Itโs not possible to lock a pbo, it is always possible to read the contents. Otherwise the game would fail as well
i know yes i actually mean obfuscation
Not sure if this is the right place, but anyone know how big the ui image for gear needs to be in the inventory?
Resolution doesn't really matter. Aspect ratio is
K
Keep getting this error when I pack my pbo via PBOProject : "M53_Mask.p3d DeP3d:premature EOF" followed by ".preprocessing files produced an error"
Anyone know what could be causing it?
Note, I do not have DeP3d
@orchid shadow you there?
pboproject has the following error;
!copy returned error 2: No such file or directory
---------------------------------------------
Copy of file p:\kar_rk\data\rk62_d2_co.paa -> P:\temp\p:\kar_rk\data\rk62_d2_co.paa fail with: The filename, directory name, or volume label syntax is incorrect.
!copy returned error 2: No such file or directory
---------------------------------------------
Error (saving file) p:\kar_rk\data\rk62_d2.rvmat -> P:\temp\p:\kar_rk\data\rk62_d2.rvmat
C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\CfgConvertFileChng\CfgConvertFileChange.exe returned error 2: No such file or directory
---------------------------------------------
Error (saving file) p:\kar_rk\data\handguard_d.rvmat -> P:\temp\p:\kar_rk\data\handguard_d.rvmat
C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\CfgConvertFileChng\CfgConvertFileChange.exe returned error 2: No such file or directory
=== Binarize end: KARRK62.p3d ===
which i dont understand cause the files and their directories exist?
your RVMAT has invalid paths
It does in your source folder. But not in your PBO
oh
RV engine is not going to recognize your local drive's file (sorta)
would be my guess at least 
does your p3d and/or rvmat contain p:\ in their references?
i.e. something like p:\kar_rk\data\rk62_d2.rvmat
simple mistake, sometimes the picker can also add it in the wrong way
can you check the bulk renamer view?
which one is that?
if you mean the mass texture material renaming, then that is that view
ok, then the path is wrong
I think that renaming solves it
with or without initial \
in Object builders settings need this set so it culls the P: out of the paths and works with paths with no P: on them
I think once it was that by default
but seeing how new makers dont have it, Im either mistaken that it newer was there by default or the defaults have changed at some point
Also object builder is kind enough to save its settings in the registry so its not easy to make a plug and play settings package ๐
or at least some of settings and UI layout
its been a while since I looked if I could make some sort of easy to plug in layout and settings fixer but thats beyond my skills
If it's in registry it can be put into a reg file.
My build keeps getting https://gyazo.com/cefc30dba35e1bd82160e1547713a43f
even though im doing everything right, here is my folder for it https://gyazo.com/4667a7485d79547f57cc99258d8fc712
and here is inside addons https://gyazo.com/19d9c5d48504fc7436628267596d5eb3
could it be broken?
- Don't output into your source folder
- AB is yeah indeed a broken software
- But you may want to tell if it is your config or assets (P3Ds, PAAs or such) fault
when im in addon builder the first one tells me to choose my source directory which would be my mod folder camo correct?
Then for the second bit destination directory i choose addons because it has my pbo right?
Your source is not the location where you should to put your PBO. It may confuse the pack process
so the source is where it goes once its finished packing correct?
Let me rephrase: don't put your PBO output folder within your source folder
source > packing process > output (destination)
Where is the source
camo folder you have
Your camo folder doesn't look good anyways. It only contains irrelevant files for a PBO
Sorry, I can see the addon source directory but I assume you're not talking about that, where abouts is this "source > Packing process" options on the addon builder
What are the irrelevant files and what should it look like?
mod.cpp does not belong to a PBO. PBO should not be included into a PBO unless you know what you're doing. I assume keys folder have bisign related files, but are also not a thing for a PBO. One thing I can see is a PAA, but I see no config.cpp
So far, what you've shown made zero sense. What exactly you're doing?
Its been a while since i've done this so im struggling the mod.cpp is just my config from what i understand here it is
name = "camo";
description = "Main mod";
picture = "Logo.paa";
author = "Big G";
im trying to upload a mod with several videos
here is my pbo file https://gyazo.com/c26034e4f60ca4feeab2d15d40141061
i just used filebank to make it into a pbo
is that the way to do it
also yes key folders have the key stuff in there
Are you sure your source is 100% correct then? Because I cannot see any of such OGVs in your folder
wait are the ovgs ment to be just in the folder not done with a pbo?
I'm not saying so
I'm saying I cannot see OGVs in your source folder picture you post
they are in the medias.pbo i thought thats how its ment to go
I see none of OGVs there?
Also your PBOManager shows no config too
is there a tutorial that goes over this. Feel like im missing some fundamentals here
I think I want to clarify that, is the PBO yours? Did you pack the PBO?
And why you wanted to pack a PBO into a PBO?
wait i thought i had to do that to upload it to the workshop
A PBO is already a PBO. PBO is the file to work with Arma 3 (RV Engine). PBO within a PBO does nothing/no point to do unless you know what you're doing
Sorry Hang, on im trying something
Ok ive been dumb thought you had to pbo it twice. Ive managed to upload the mod to the workshop and also added a config.cpp file that looks like this. because i saw thats what another video mod did. its uploaded successfully but https://gyazo.com/a3f10ae9dade530fa4b851a8be89d8e9
but now my current issue is media/radio_1.ogv not found here is my code unsure if its the code in the game or the code from the config.cpp file
[
"media\Radio_1.ogv",
[
safezoneX + 0.03,
safezoneY + 0.03 ,
22 * pixelGrid * pixelW,
31 * pixelGrid * pixelH
]
] spawn BIS_fnc_playVideo;
Thanks for all the help so far and putting up with me
Isn't it medias not media
no i ended up changing it to media
Then where do you put that script
i put the play script script on a trigger in my world
config is inside the media pbo
And how the script isn't working
Then it does mean your file path is wrong
Make sure your PBOPREFIX is media
Check it up in the gear icon on PBO Manager
is there a way to expand the pbo properties because i cant see the full path
nvm just realised you can hover over it
That means your PBO is recognized as that, by the game
That path should either be "media" or be completely removed (being media is better)
It should not be users/...
That is the path your pbo gets loaded at in game.
So your file is now at
Users\Wolf\Desktop...\radio_1.ogv
HEMTT 1.11.0
https://github.com/BrettMayson/HEMTT/releases/tag/v1.11.0
Exciting new SQF features! Check the release for downloads and notes.
Want the latest info on HEMTT, come follow development and get access to release candidates at https://acemod.org/discord
I find it so funny that I was just looing for a build tool I can easily use with Github actions and boom. First thing when I open this channel.
Would I setup a build for mission files any differently via HEMTT or is it strictly a addon type structure?
I have a project called packer that builds mission files on GitHub actions, but it is not configurable currently
I'm trying to use the vscode armaDev extension (https://marketplace.visualstudio.com/items?itemName=ole1986.arma-dev) and it keeps telling me there is No $PBOPREFIX$ file found when it's in there. Does anyone know what I'm doing wrong?
Asks for $PBOPREFIX$ but you have $PREFIX$?
I thought I tried that but I must've typoed because yeah that was it
Annnoyingly their docs say either
@remote pumice make a report on github, so the dev can address it ๐
AFAIK there isnt any and there wont. Basically have enough people use the dll often enough with BE active.
@smoky halo interesting
want to test it?
What is the cause of the white texture on the bulldozer?
I show the paths correctly in ObjectBuilder, but white texture appears in Bulldozer
no P drive setup/no correct pathing/ no P:\ defined as root of texture folders so paths work right
is that wrong
no this is right
So why doesn't bulldozer show the texture?
When I remove the D:\ extension it doesn't show the texture.
When I add it, it shows the texture in bulldozer.
I think there is nothing wrong here
so you dont have P drive set up?
I installed
@smoky halo I'm interested :^)
@inland flare send me a pbo then. :)
They had to go and make Task Force radio such a fun mod to download and set up automatically.
release 9.45
new FREE version of Mikero's tools.
(dayz edds files in mod.cpp has been fixed at this release)
Contains an EXACT replica-snapshot of all the basic
tools of the subscriber version. This 'exactness' averages about a week, until something gets updated.
Perhaps obviously, obfuscation is disabled in the free version.
All basic tools (such as makepbo) are carefully selected so that you have no reason to be a subscriber to get your work done, but, with savage error checking. Specialist exes that save you dozens of hours of spliiting up wrp layers eg, or moving data from one pbo to another one are subscriber only.
Enjoy
pboProject 3.90 Updated (free and subscriber) to fix edds issues in a mod.cpp (credit Helkhiana )
Sry when this is not the correct channel for this:
So I want to update my mod so that if you join a server the requirement shows the newest version of the mod. So far I tried updating the BI keys from the PBOs and rechecked the new keys with the checking tool. Everything looks okay and no error. But steam still does not recognize they key in the server so you are able to load other steam workshop mods that were using the same previous key instead of my newly updated one. How or what do I have to change / update that I can get a new key for server and SW that forces the users to load my specific mod if you want to join my server?
@wooden fable what do you mean with "steam still does not recognize they key" exactly - when is this shown?
Not directly shown, it is rather more proven by not only my mod being displayed in the launcher to select on server join, and instead all other versions of the mod being selectable as well.
The GitHub Edition is my mod, that I want a new key for. But even tho that this mod is on my server and I created a new sign & key for the PBOs it still shows the other mods.
does it have a new, unique bikey name? is the meta.cpp correct? and latest on both client+server?
Well so far I got the signing right so that the server requires the version I want when forcing signature. But stragely even tho the server and client have the same files & keys I can't join and get the error that a PBO is patched.
hm interesting. not familiar with that message
filePatching shouldnt be it (but best to double check)
did you compare the hashes of both pbos yet?
and doubled checked via rpt both client and server do load the pbo version you want
(and not from another modfolder an older version)
you where right, it was indeed stupid me forgetting to disable file patching. 
happens to all of us ๐
i'm having an issue with paths while trying to pack pbos. as a test/demonstration, i unpacked cup_basedata.pbo from the @CUP Weapons mod using Eliteness, then tried to re-pack it without modifying any files or folder structures using pboProject. for some reason, pboProject thinks all the files referenced in the .rvmat files are missing. If i change the all the paths to use / instead of \, it no longer thinks the files are missing. that seems wrong . it's like windows or the tools are expecting linux-style paths and not windows-style. has anyone seen this before? is there a setting somewhere that i messed up?
for example, i changed surfaceInfo = "CUP\BaseConfigs\CUP_BaseData\Data\Penetration\armour_plate_45mm.bisurf"; to surfaceInfo = "CUP/BaseConfigs/CUP_BaseData/Data/Penetration/armour_plate_45mm.bisurf"; in order to get pboProject to be happy
you are not supposed to repack any other mods
if you want to use something from another mod, you do it by making the other mod a required addon
doing what you do will get CUP to dmca your work
I realize that, Iโm just trying to show an example of the problem I have. same thing happens with my own mod. i figured i would try to re-pack a mod that i know was correctly packed at some point in order to see if it was something in my mod creating the problem. i assumed anything from cup would work safely.
not good way to check
and its not properly cup anymore since youve changed things
best to ask the questions related to your actualy problem
than a test mashup
and if something dont seem to work, then first simplify into the very basic building blocks until those work
then add new parts in small batches and test
@smoky halo There you go: tom4897.info/depot/arma_3/addons/misc/test_legacyfatigue.pbo
ok, i set up an extremely simple test case to illustrate the problem. this is my mod, not CUP unpacked. pboProject still complains about the files missing as i described above. when paths use \, pboProject thinks there are missing files, but when paths use /, it sees the files and does not think they're missing. the 2 screenshots above show my test mod failing to pack and then successfully packing after changing "Test\Data\test.bisurf" to "Test/Data/test.bisurf"
in $PBOPREFIX$.txt i have the following: prefix=Test;
what version of pboProject you run?
it's 3.90, the latest version
yes
it happens with any path, not just in rvmats
i'm beginning to wonder if it's a problem with my windows environment or something
possibly
how do you mount P drive?
mounted it using Arma 3 Tools
that could be the issue
the launcher mount method is a bit hit and miss to work rightg
it seems to do things win10 does not like
you can mount P drive with very simple .bat file
ah. ok, i'll try that. thanks for the reply man
if you mounted via the launcher you need to disable that first and restart so the old mounting dont interfere