#arma3_tools

1 messages ยท Page 4 of 1

worn anchor
#

So, i'm sending some data from a client over UDP to my server, both written in C#. Now, is there any benefit of creating a object of all the data i want to send and serializing it. Or is it better to just build upp a byte array with all the data in various range in the byte array?

#

I hope i make myself understandabl. I ahve problem sometimes to understand wtf im even doing

viscid verge
#

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

worn anchor
#

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

wide cedar
#

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

worn anchor
#

Yes probably :)

wide cedar
#

something something pure c

worn anchor
#

The client btw is a dll file called by Arma

rough grove
vague shard
#

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?

frozen meadow
#

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?

scenic canopy
#

@fierce swift can give more context ๐Ÿ™‚

nocturne basin
#

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)

vague shard
# frozen meadow some gamemodes like liberation had an script that told how many groups, ai , sc...

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.

vague shard
#

Useful probably would be also a combination with 2d map visualization (unit positioning and movement, + heat maps) [done already by others].

whole flume
vague shard
#

for error/issues, or performance data focused?

dusty walrus
#

Both, but it is somewhat antistasi specific at the moment. Not much but would need some changes

dusty walrus
#

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

nocturne basin
#

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

vague shard
fierce swift
fierce swift
#

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

nocturne basin
#

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)

orchid shadow
#

C# works great on mono.

#

;)

#

Well.. console programs.

#

I woulden't dare to try a visual one.

nocturne basin
#

hehehe
this is fun

nocturne basin
#

that button in vscode allows to switch to the preview release

nocturne basin
#

aaaand now also added the missing sqlite3.dll to that extension so that the language server actually does start (0.2.2)

inland flare
#

@orchid shadow Indeed, that's something you want to avoid by any means necessary ^^

glossy inlet
#

Does it need any extra stuff to be installed. Or is it "install extension with one click -> all good" ?

nocturne basin
#

Happy to receive any bug report or recommendation on the preview

fierce swift
nocturne basin
#

huh?

fierce swift
nocturne basin
#

aparrently the released version did not pack the langauge server .... -.-
checking and releasing fix with the binaries packed

fierce swift
#

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.
nocturne basin
#

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

nocturne basin
#

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)

worn anchor
#

Well, i will probably only focus on windows for now :)

orchid shadow
#

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.

inland flare
#

If they are obfuscated, it probably means the author doesn't want any alteration

full drift
#

yea thats a crazy thing to ask people to do @orchid shadow

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

forest trellis
#

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.

vague shard
#

is there a way to determine which extension flags something as error/warning?

lapis pilot
forest trellis
# vague shard

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?

vague shard
nocturne basin
fierce swift
#

How is it that there's suddenly now two new sqf analyzers out there ๐Ÿ˜„

nocturne basin
#

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)

forest trellis
smoky halo
#

I maybe release a pbo encryption :)

orchid shadow
#

Don't.

#

We really don't need them.

smoky halo
#

We or You? :)

orchid shadow
#

I promise you.

#

If people start releaseing more shit like that, i'l make it my point to defeat it at every point ;)

glossy inlet
#

@smoky halo you can have mine if you want ^^

smoky halo
#

@glossy inlet what method are you using?

glossy inlet
#

hooking windows ReadFileScatter and decrypting if pattern was detected in filename

smoky halo
#

well I am talking about creating ebos

glossy inlet
#

im also working on that currently but im not really getting that far

#

like 0% so far ^^ or maybe 1%

smoky halo
#

is the idea the 1%? :)

glossy inlet
#

no i got some code which is producing some kind of encrypted pbos.. but... arma cant read them and i cant eigther ^^

smoky halo
#

some kind?

glossy inlet
#

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

smoky halo
#

where you got the code?

glossy inlet
#

reverse engineering

smoky halo
#

aes is used for header encryption

glossy inlet
#

only for header? i thought for all files?

smoky halo
#

ebos use acr4 afaik

opal mist
#

Anyone know why bundling a VS code extension with esbuild breaks it? And how to undo the bundling (lol)

opal mist
#

It seems to be some weird problem of npm acting crazy on Linux

forest trellis
nocturne basin
#

Something about developer (me) taking too long about implementing new fancy intrinsics

#

solved with SQF-VM Language Server for VSCode

#

(upcoming)

wooden fulcrum
#

hello, my pbo project error Skeleton has unpaired bones who to fix please?

shut dawn
#

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

glossy inlet
#

Why is your config not accepted by binarize but by rapify?

cunning shore
glossy inlet
#

#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

nocturne basin
#

Well...

class fancy #include "fancy.cpp"```
#

That should not work but may?

glossy inlet
#

doesn't because it needs linebreak before the #

shut dawn
glossy inlet
#

I'd like to know of that bug and how it happens, so I can fix it

glossy inlet
#

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"
            };
shut dawn
junior beacon
#

But I don't use any fancy tools

nocturne basin
#

Assuming all # operations are evaluated the same, yes, whitespace is ignored

glossy inlet
#

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

shut dawn
glossy inlet
#

Ah! ok then it is the #line marker it inserts

#

It is true yeah, after preprocessing

nocturne basin
#

is #pragma supported by now for the preprocessor in arma for config and sqf?

neon flax
#

yes, it's ignored.

nocturne basin
#

neat
could not quite remember if i just dreamed that being added or not

nocturne basin
solar dew
karmic niche
#

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

torpid valve
#

so its name should end in _x64.dll

solar dew
#

appreciate it, well do that first thing tmrw morning

torpid valve
#

also you can remove the DLLMain fnc

solar dew
#

on my more recent attempts i had that removed, but this is optional right?

torpid valve
#

and you don't need to click run. there's a build button meowsweats

#

or you can add a launch task to the build target so that it launches Arma for you but that's a bit complicated

torpid valve
#

you can keep it if you want to handle loading and unloading of the DLL

solar dew
#

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

torpid valve
#

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

karmic niche
rough grove
karmic niche
scenic canopy
nocturne basin
#

Sqf-vm may also be used for that

opal mist
#

cough C# da best ๐Ÿ˜„

scenic canopy
#

Didnโ€™t support Linux server before, but at least thatโ€™s doable now

kindred abyss
scenic canopy
#

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

kindred abyss
#

MS's speech to text stuff doesn't work on .NET core for some reason

#

(and doesn't exist on linux anyways aviator)

whole flume
#

Yes

#

Why write your own dll with no dependencies, when you can have c# with alot of dependencies?

nocturne basin
#

Because you actually can find people which develop for it

kindred abyss
#

function from callExtension is literally just a string, right?

kindred abyss
#

perfect

#

i will now host a discord bot off of my server

gritty radish
#

the only downside is limited reflection support

kindred abyss
scenic canopy
gritty radish
#

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

scenic canopy
gritty radish
#

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

kindred abyss
#

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

nocturne basin
#

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

whole flume
nocturne basin
#

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

pearl rune
#

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.

glossy inlet
#

You can only pass strings between extension and game

#

Unless you go for Intercept plugins

robust vessel
#

inb4 Cheat Engine

pearl rune
#

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

kindred abyss
#

do any of you have a .net 6.0+ aot example? never managed to get it working myself

glossy inlet
scenic canopy
#

it would still be a regular object and not terrain object though?

#

not that there's a big difference when using simple object etc

glossy inlet
#

ye

gritty radish
#

But is much simpler to do async code with callbacks that runs fast

#

that callback suff ist completly optional

kindred abyss
gritty radish
#

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

kindred abyss
gritty radish
#

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 *&
}
kindred abyss
#

Legendary, thank you ๐Ÿ™‚

gritty radish
#

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

kindred abyss
#

i have no clue what building a wrapper is so ill just nullable it

gritty radish
#

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

gritty radish
#

There is a fixed limit of callbacks call per frame

kindred abyss
#

ah gotcha

gritty radish
#

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

kindred abyss
#

i mean it only calls back when you finish a sentence so

gritty radish
#

yeah dont worry in that case

kindred abyss
#

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

gritty radish
#

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

kindred abyss
#

Yep, its a speech engine so gets initialised then and just does callback on every finished sentence, it's easy enough

gritty radish
kindred abyss
#

Thanks, think the most I'll likely struggle with is compilation tbh; rest of it is quite straightforward

gritty radish
#

just remember to do it on the console

#

ah reminds me on something

kindred abyss
#

Developer Command Prompt, right?

gritty radish
#

you need to add this to the csproj file:
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> in the property group

#

because the delegate is open pointer stuff

kindred abyss
#

Yep, already did that, thanks ๐Ÿ™‚

gritty radish
kindred abyss
#

Roger, only cmd knowledge comes from symlinks lmao so that's another thing to learn

gritty radish
#

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

kindred abyss
#

Ya, should be able to figure it out more or less, thank you ๐Ÿ˜„

gritty radish
#

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.

kindred abyss
#

Meh, linux users will simply have to cope

gritty radish
#

it did matter for me because code i wrote had to work on linux servers that are more common than linux players ๐Ÿ˜„

kindred abyss
#

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?

gritty radish
#

i am not sure about it. For normal c# on a runtime yes, but for AOT code idk

kindred abyss
#

gotchu, figure i'll just find out anyways; thanks for the help ๐Ÿ™‚

gritty radish
#

i can be blocking the closing until depending threads are closed or a sigkill form taskmgr kills it

kindred abyss
#

i already have something which can check for arma process running or not so shouldnt be that hard

gritty radish
#

if you do some background stuff just remember to pass a CanncelationToken on which you can rely to stop anything backgroundtask related

kindred abyss
#

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

kindred abyss
#

Is there any limit to the length of string that can be passed back by extensioncallback?

neon flax
#

Yes

kindred abyss
#

what is that limit

opal mist
# kindred abyss 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) ๐Ÿ˜„
kindred abyss
#

Yeah saw that, wanted to check; figure it's either 1024 or 2048 -- I should be able to work with that though

kindred abyss
#

Ah, thanks brett ๐Ÿ™‚

glossy inlet
#

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

rough grove
#

oh callbacks

opal mist
#

Oh, so the limit actually does not apply. Interesting! Is it accidental design choice or made so on purpose?

glossy inlet
#

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

rough grove
glossy inlet
#

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?

rough grove
#

The warn in arma-rs? It'd be every call, as it is called before each

orchid shadow
#

" 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

echo slate
#

Good stuff @nocturne basin

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

echo slate
#

ha, yea, rewrites can be both a gift and a butthurt :P

nocturne basin
#

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"

echo slate
#

yea good stuff, interesting difference in approach

nocturne basin
#

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

echo slate
#

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 :)

nocturne basin
#

type safety makes things easier :P
its always worth using it

echo slate
junior beacon
#

Has something recently been changed/updated? I've never noticed that kind of load before.

#

*SQFVM Language Server

nocturne basin
#

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)

nocturne basin
#

@junior beacon (mention to make sure you see this)

junior beacon
#

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.

nocturne basin
#

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

junior beacon
#

I'll try to answer these questions when I am back from work.

opal mist
#

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

nocturne basin
#

Again: better to export the mission via the editor

opal mist
#

I'm trying to automate a complicated multi-mission setup, that's why I'm trying to avoid the manual method @nocturne basin ๐Ÿ˜…

opal mist
#

Alright, I gave up eventually and did like you told ๐Ÿ˜„ Seems to work so far so yeah

#

No automation for me I guess KEKSad

neon flax
#

-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)"
}
opal mist
#

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

steady ledge
#

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?

quick portal
#

The Windows Server should log automatically to a rpt file.

cunning star
#

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

scenic canopy
#

You can use xhtml or xml validator

cunning star
#

true, true

cunning star
kindred abyss
#

cc @pearl rune

#

didnt you need something literally like this yesterday

pearl rune
#

oh neat

pearl rune
cunning star
#

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

pearl rune
#

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

cunning star
scenic canopy
#

You can do xml tree diff to get the added, removed etc

cunning star
#

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)

cunning star
#

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?

glossy inlet
#

The reason was that someone years ago wrote it like that.
I fixed that recently

cunning star
#

gotcha, ill leave the code handling those 2 cases just for backward compat

scenic canopy
#

Normalize to just the id

#

Steam workshop urls also support having the id as last path in addition to being a query parameter

cunning star
scenic canopy
#

official launcher now, third party generators shrug

#

first case can be dealt with by
new URL("https://steamcommunity.com/workshop/filedetails/?id=450814997").searchParams.get("id")

#

works regardless of scheme

cunning star
#

yeah, i guess that your approach is better

#

thanks

scenic canopy
#

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

cunning star
#

tru tru

scenic canopy
#

/\d+/.exec("https://steamcommunity.com/workshop/filedetails/?id=450814997")[0]

cunning star
#

@pearl rune / @kindred abyss added a duplicate detection functionality

nocturne basin
#

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

glossy inlet
#

That macro resolving is a godsent for working with ACE style mods

nocturne basin
#

Just wait until I have the full page preprocessing done hmmyes

#

(need to get open document and other things ready first)

nocturne basin
#

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)

nocturne basin
#

Ohh
And if somebody has ideas for quick fixes, feel free to suggest them blobcloseenjoy

gritty radish
#

very good

junior beacon
sonic blaze
#

Can I publish addons through PublisherCmd? I cannot open ArmA 3 Publisher

#

Or are there any alternatives?

dense cove
#

Why not just try Yes?

sonic blaze
#

I already did

#

It says net framework 4.7.2 is already installed

#

Same issue as the a3 launcher

dense cove
#

Have you tried to fix/reinstall .NET Framework?

sonic blaze
#

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

dense cove
#

Just to make sure, verifying Arma 3 Tools?

sonic blaze
#

I did

nocturne basin
#

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

sonic blaze
#

Alright I'll see

junior beacon
#

@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

nocturne basin
#

It is more that this is a followup error

#

So at some spot, somewhere, a problem exists

nocturne basin
#

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)

junior beacon
#

I created an issue for the magic variables.

#

Funny thing is, the issue with the macro containing a number is gone now

sonic blaze
#

guess im fucked

nocturne basin
sonic blaze
#

Win 8

#

I've tried updating it

scenic canopy
#

Did you download the arm64 installers?

sonic blaze
nocturne basin
silent fable
#

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

nocturne basin
silent fable
#

I'll double check in a bit

silent fable
#

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

nocturne basin
#

It is currently not checking what type of scope is overriding the value

vague shard
#

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

gritty radish
#

I've seen a few attempts on github

#

But most I am aware of is closed source unit intern stuff

karmic niche
nocturne basin
#

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)

vague shard
#

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

glossy inlet
#

It uses old UGC system which is why publisher doesn't let you edit missions

vague shard
#

thanks

#

so uploading 10+ scenarios for game modes frequently = meh

scenic canopy
vague shard
#

thanks! i do remember that one now - will forward

smoky halo
gritty radish
trail pollen
#

Does anyone have a good way of generating Inventory icons? Or can recommend a tool?

gritty radish
#

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

gritty radish
#

than attempt the latter approach and include it. It may kick people a few times but i think it will work soon enough

karmic niche
#

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

glossy inlet
#

DM me if it's urgent and explain why it's urgent

tired crater
#

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

rough grove
scenic canopy
nocturne basin
#

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

frozen meadow
#

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?

glossy inlet
#

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

frozen meadow
#

The idea is to use this on mods, not the bis server files

frozen meadow
frozen meadow
spark urchin
#

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)

rough grove
scenic canopy
spark urchin
spark urchin
scenic canopy
#

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 ๐Ÿ˜›

spark urchin
#

Seems pretty standard now adays

#

Ah I see the branch

scenic canopy
#

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

spark urchin
#

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

scenic canopy
#

likely a lot of conflicts ๐Ÿ˜›

spark urchin
#

rip me

scenic canopy
#

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

spark urchin
#

Even gave cmd administrator and it keeps getting tangled in itself

scenic canopy
#

maybe the folder is in use?

#

or too long path name

spark urchin
#

This thing has no 'ideal' error handling lol, I guess my best is to sift through it

#

'obfuscated pbo' nootnoot

scenic canopy
#

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

scenic canopy
#

Iโ€™ll see if I can make something, we have a similar tool but with different output for CI usage

spark urchin
scenic canopy
#

isn't needed, just a pbo reader and writer

spark urchin
#

Oh what it's yours too haha

#

your tools seem to be well known

scenic canopy
#

it doesn't support writing, only reading

#

but I did a quick tool in rust

spark urchin
#

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

scenic canopy
#

code is horrible, I can clean it up later

#

atm it only processes pbos, it should copy all but process PBOs

spark urchin
#

Oh cool! I'll have a look in a bit

scenic canopy
#

ace addons goes from 181,5MB to 30,4MB

spark urchin
#

Jeez. Quick question, why would the server need to render anything in the world anyways?

#

Only delved into arma a week ago lol

scenic canopy
#

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

spark urchin
#

Sounds right about the peak of pain considering steam workshop

#

I'd also expect singleplayer players to someway download the minified mod lol

scenic canopy
#

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

spark urchin
#

Yeah wow that is effective.. CUP Vehicles 12.3 GB -> 1.7 GB

scenic canopy
#

Brettโ€™s PBO library does most of the work ๐Ÿ˜

spark urchin
#

It seems to error on certain mods, can't figure out which lol, might add in some prints

scenic canopy
#

I guess it should just copy anything that fails to process and then print the error

spark urchin
scenic canopy
#

Why do you need a minified version of that, is it even 1MB? ๐Ÿ˜›

spark urchin
#

I just slapped my whole steam workshop folder in der just to see it as a poc

scenic canopy
#

My guess is its made with pbomanager or something and the pbo is corrupt

spark urchin
#

but yeah, I slapped a paa in there and it worked fine

#

(with pbomanager (forked version))

scenic canopy
#

๐Ÿ˜ฑ

spark urchin
#

Yeah nvm

#

broken pbo it seems

#

The paa was just a placebo, pbomanager re-exported or something lol

scenic canopy
#

It should fallback to just copy those then

#

But such PBOs cannot be properly signed and verify signatures wont work

kindred abyss
#

BE whitelist time takes ages

scenic canopy
#

10 days sloth_laugh

zinc lynx
sick zephyr
#

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?

scenic canopy
sick zephyr
#

i thought i did

spark urchin
#

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

dense cove
#

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

spark urchin
#

Is there some sort of debugger then to see what is slurping it up the most perhaps?

dense cove
#

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

spark urchin
#

I guess but, if there was some way to tap into the memory allocation then it'd be kind of convenient

dense cove
#

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

spark urchin
glossy inlet
limpid sky
#

can someone let me know why this is happening with Arma3P?

#

terrain builder is installed

sly skiff
#

just start it and close it

limpid sky
scenic canopy
limpid sky
#

so there is no solution now>

#

?

scenic canopy
vague shard
runic haven
#

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?

vague shard
#

C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\Logs

#

maybe the logs have something useful

scenic canopy
#

it says you haven't started terrain builder to create registry entries

limpid sky
#

terrain builder has been started

#

we did it 2 times to make sure

limpid sky
scenic canopy
#

make sure HKEY_CURRENT_USER\Software\Bohemia Interactive\TerrainBuilder exists with string value path in your registry

spark urchin
#

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?

scenic canopy
spark urchin
#

Yikes, what would the best approach here. Reupload them to the steam workshop orโ€ฆ maybe a pack? ๐Ÿค”

limpid sky
#

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?

dawn palm
#

@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

limpid sky
#

๐Ÿ’€

#

thanks for the answer

fading thunder
#

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.

fading thunder
drowsy flame
#

Hey, anyone know why this keeps happening in pboProject?

There is nothing else accessing the file.

glossy inlet
drowsy flame
#

Where would that usually be located?

#

Nothing in the Binarize folder in A3 Tools

glossy inlet
#

I don't know

#

maybe in

#

!rpt

pastel ventureBOT
#
Arma RPT

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.

drowsy flame
# glossy inlet I don't know

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

glossy inlet
#

Welp, I don't know if/where binarize writes its crashdumps.
But if it crashed I could use that to check why

drowsy flame
# glossy inlet Welp, I don't know if/where binarize writes its crashdumps. But if it crashed I ...

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```
glossy inlet
#

usually it says somewhere nere there "dump file was generated"

#

I need more info than whats in there, so that doesn't help enough

neon flax
#

IIRC binarize was writing the bumps next to the exe

drowsy flame
#

I think this is it? Its quite big one second uploading

glossy inlet
#

314 MB :U

#

how does discord accept so large files ๐Ÿคฃ

drowsy flame
glossy inlet
#

yes should be it, I'll try

drowsy flame
#

NITRO ๐Ÿ˜„

glossy inlet
#

da frick

#

you have 150584.
The debug files I have, only go back to 150632

#

which is may

drowsy flame
#

I don't know what that means, but yes bean2

glossy inlet
#

I'll give you a newer exe and then you can reproduce with that?

drowsy flame
#

Yes ofcourse

glossy inlet
drowsy flame
glossy inlet
#

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

drowsy flame
#

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?

glossy inlet
#

yes its doing the same thing

#

but I get a mdmp that i can analyze

drowsy flame
neon flax
#

MDMPs ZIP quite nicely

drowsy flame
glossy inlet
#

150584 jup, cannot use

rancid lake
#

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 ?

glossy inlet
#

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

rancid lake
glossy inlet
#

I don't think so

#

run it in a thread

rancid lake
glossy inlet
#

the dll only stops when you exit the game

rancid lake
tulip coral
#

is object builder plugin compatible with blender 4.0.1?

#

got this error when import a MLOD p3d

scenic canopy
#

Did you update to new release with blender 4 support?

tulip coral
#

no,
where is the new release?
I did not find any new release on github

scenic canopy
scenic canopy
#

(it's not the exact same plugin but the other one is based on this one)

rancid lake
#

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```
scenic canopy
#

have you checked the dump for any crashes within your dll?

rancid lake
scenic canopy
#

if the error can be catched ๐Ÿ˜‰

#

best to check if dump contains backstack to your dll

rancid lake
scenic canopy
#

you might have to trigger a full dump instead of just the minidump

rancid lake
rancid lake
rancid lake
scenic canopy
rancid lake
scenic canopy
#

you can import dump files generated elsewhere

rancid lake
scenic canopy
rancid lake
glossy inlet
#

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

scenic canopy
scenic canopy
glossy inlet
#
  • 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
rancid lake
rancid lake
#

By the way, how to call a dll which is inside a mod ?

glossy inlet
#

I don't understand the question.
The same way. ?

#

Can you be more specific?

rancid lake
glossy inlet
#

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

rancid lake
glossy inlet
#

๐Ÿ‘€ uh..
I guess the first one found will win

#

probably by mod load order

rancid lake
scenic canopy
#

pbos with same prefix would have same issue

rancid lake
glossy inlet
#

I don't think I've ever seen a dll name conflict

#

People usually give their dll's quite unique names

karmic niche
#

Yeah, just don't create a myextension.dll and you should be fine ๐Ÿ™‚

scenic canopy
#

steam_api64.dll trollface_2

rough grove
dense cove
#

FYI @rough grove for the security reason you cannot have text with a link but only plain URL

rough grove
#

Ye

gray sinew
kindred abyss
#

@prisma dragon ^

thick matrix
#

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

neon flax
#

well the diag thingy runs the code

#

10k times

#

so you're creating 10k objects every time.

thick matrix
#

Ah, fun

#

Ill reduce it down to one cycle, cheers

sly skiff
#

7051_fire7051_fire7051_fire
7051_fire๐Ÿ–ฅ๏ธ7051_fire

torpid valve
torpid valve
#

(p.s: if you need me just ping me. I only saw this by accident...)

kindred abyss
#

append into array, deletevehicle all elements of array after ๐Ÿ˜„

empty kindle
#

๐Ÿค” 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
karmic niche
#

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)

empty kindle
#

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.

dawn palm
#

new version (8.58) of the dll, fixes dayz and arma paa obfuscation

loud sapphire
#

any one else got issues with AddonBuilder not moving dependencies to the temp folder

verbal lintel
#

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

nocturne basin
#

What is "faster"?

dense cove
glossy inlet
verbal lintel
glossy inlet
#

I don't know how Faster works. How you configure things

vague shard
#

maybe someone can assist the guy further

torpid valve
#

I don't think it's possible in Arma. afaik it doesn't support ligatures

wary verge
#

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.

glossy inlet
#

Veeeery low. So basically, no

sour hedge
wary verge
#

But yeah, it is even smoother with D3D enabled

#

Just tested it with HiDPI enabled, same issues in D3D mode, rotation jumps around

frozen folio
#

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

karmic niche
#

There should be a GitHub action for installing Mikero's Tools for Linux

#

And another one for steamcmd

karmic niche
frozen folio
#

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!

scenic canopy
#

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

frozen folio
#

Fair enough! Thank you!

rough grove
nocturne basin
orchid shadow
#

Ugh im not fan of syntax

smoky halo
#

created my first working ebo :)

orchid shadow
#

fucking life kids

grand dagger
#

@orchid shadow ?

orchid shadow
#

Hmm?

grand dagger
#

Your previous statement about life kids?

orchid shadow
#

The only would want a ebo is life servers i hope.

grand dagger
#

Oh, okay.

nocturne basin
#

just quickly ... what was an "ebo" again?

viscid verge
#

I suspect encrypted pbo, used by BI for the DLC

orchid shadow
#

Indeed.

silent trellis
#

So they can steal people's mods, charge for access, and you can't prove anything :D

smoky halo
#

I could provide decryption in these cases ;)

smoky talon
#

sounds....pointless encrypting them in the first place then

smoky halo
#

I would not hand out the data of course

nocturne basin
#

@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 --> ๐Ÿšซ

smoky talon
#

did bohemia release tools to do ebo's or are people reverse engineering it?

orchid shadow
#

reverse engineer

prisma dragon
#

aka buy encryption tool, BI update engine, everything custom encryption goes broken, let's blame BI ;)

nocturne basin
#

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

compact lake
#

is there a decent guide to pboproject somewhere?

cant get things to work cxause i get the weirdest errors and google doesnt help

dense cove
#

Well you can just try to post your error

compact lake
#

i get this error with it, and i ;

warnings are errors

and i dont understand at all

dense cove
#

You can disable this, but pboProject prefers #define someThing uppercase so #define SOMETHING

compact lake
#

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

dense cove
#

As I said you can disable that error, but the error suggests you have one

compact lake
#

Do i need an P:\ Drive for Pboproject?

dense cove
#

Irrelevant

#

Even though yes but irrelevant with the error

compact lake
#

ah, shit
thanks for help, ill guess ill go an p drive

kindred abyss
glossy inlet
#

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

compact lake
#

just skipped the error and everything works anyhow

scenic canopy
#

Anyone using pboproject or HEMTT on GitHub Actions can now benefit from faster builds for public projects

vale socket
#

does anyone know of any tools that make command lines?

#

Mod command lines

scenic canopy
glossy inlet
#

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

vague shard
glossy stratus
#

do alternate client launchers exist? didnt find anything googling (except some linux stuff)

dense cove
#

Well for what reason?

glossy stratus
#

am I right you cant launch multiple client instances using the official launcher?

dense cove
#

You can

#

Just click PLAY twice

kindred abyss
#

just sometimes has problems if theyre the same profile

dense cove
#

But shouldn't be a big concern if the intention is just to test MP

glossy stratus
#

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

vague shard
#

@glossy stratus take the parameters from rpt and put into a batch file

dense cove
#

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

glossy stratus
dense cove
#

Yeah Arma 3 Launcher is nearly perfect, but few things I still miss...

scenic canopy
nocturne basin
tired geyser
#

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

kindred abyss
#

you won't find any support here for debinarising rtms especially not when you've got screenshots of ripped assets on your steam profile

kindred abyss
#

take your debinarising assets elsewhere

#

its not getting done here

tired geyser
kindred abyss
#

dont care

#

take your asset debinarisation elsewhere

tired geyser
#

i literally did nothing except download the mods they told me to, to play ops

tired geyser
#

where else do i go

tired geyser
thick matrix
#

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.

scenic canopy
chrome vault
#

anyone know that how to lock pbo file

#

i mean which tool helps me to do that

thick matrix
sly skiff
#

It's not locked, just not human readable.

There isn't really any way to lock pbo

chrome vault
#

aight but what could cause that

#

someone says me thats a locked pbo

#

i want to lock my own stuffs like that

thick matrix
#

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

chrome vault
#

okay then mikero's pboproject tool has obfuscation setting but i cant activate this how to activate that setting

thick matrix
#

Its only the paid version that offers it I believe, Ive never used it

chrome vault
#

alright thanks for information

thick matrix
#

np

glossy inlet
zenith drift
analog wolf
#

where can i find a download link for a pbo manager? specifically want to edit template to add items to a "arms dealer"

scenic canopy
chrome vault
pastel schooner
#

Not sure if this is the right place, but anyone know how big the ui image for gear needs to be in the inventory?

dense cove
#

Resolution doesn't really matter. Aspect ratio is

pastel schooner
#

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?

full drift
#

@orchid shadow you there?

orchid shadow
#

Aye

#

@full drift

full drift
#

its fine i've figured it out

#

:P

orchid shadow
#

^^

#

btw edtftp sucks

compact lake
#

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?

scenic canopy
#

your RVMAT has invalid paths

dense cove
#

It does in your source folder. But not in your PBO

compact lake
#

oh

dense cove
#

RV engine is not going to recognize your local drive's file (sorta)

scenic canopy
#

would be my guess at least thinking_to_right

#

does your p3d and/or rvmat contain p:\ in their references?

#

i.e. something like p:\kar_rk\data\rk62_d2.rvmat

compact lake
#

ah yeah it was the p3d

#

i feel dumb

scenic canopy
#

simple mistake, sometimes the picker can also add it in the wrong way

compact lake
#

nvm that didnt fix it

#

this is the paths in p3d, and thats where all the files are

scenic canopy
#

can you check the bulk renamer view?

compact lake
#

which one is that?

scenic canopy
compact lake
#

if you mean the mass texture material renaming, then that is that view

scenic canopy
#

ok, then the path is wrong

#

I think that renaming solves it

#

with or without initial \

compact lake
#

removing initial \ gets another error

#

so that doesnt work

scenic canopy
#

that's still wrong

#

there shouldn't be any P:

compact lake
#

ah cheers

#

that worked finaly

sly skiff
#

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

neon flax
sly skiff
#

the ui layout may have also been screen resolution dependent ๐Ÿค”

#

its been few years

indigo shuttle
indigo shuttle
#

could it be broken?

dense cove
#
  1. Don't output into your source folder
  2. AB is yeah indeed a broken software
  3. But you may want to tell if it is your config or assets (P3Ds, PAAs or such) fault
indigo shuttle
dense cove
#

Your source is not the location where you should to put your PBO. It may confuse the pack process

indigo shuttle
#

so the source is where it goes once its finished packing correct?

dense cove
#

Let me rephrase: don't put your PBO output folder within your source folder

neon flax
#

source > packing process > output (destination)

indigo shuttle
dense cove
#

camo folder you have

#

Your camo folder doesn't look good anyways. It only contains irrelevant files for a PBO

indigo shuttle
#

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

indigo shuttle
dense cove
#

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?

indigo shuttle
#

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

#

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

dense cove
#

Are you sure your source is 100% correct then? Because I cannot see any of such OGVs in your folder

indigo shuttle
dense cove
#

I'm not saying so

#

I'm saying I cannot see OGVs in your source folder picture you post

indigo shuttle
dense cove
#

Also your PBOManager shows no config too

indigo shuttle
#

is there a tutorial that goes over this. Feel like im missing some fundamentals here

dense cove
#

I think I want to clarify that, is the PBO yours? Did you pack the PBO?

indigo shuttle
#

yes

#

i packed it with the file bank

dense cove
#

And why you wanted to pack a PBO into a PBO?

indigo shuttle
#

wait i thought i had to do that to upload it to the workshop

dense cove
#

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

indigo shuttle
#

Sorry Hang, on im trying something

indigo shuttle
# dense cove A PBO is already a PBO. PBO is the file to work with Arma 3 (RV Engine). PBO wit...

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

dense cove
#

Isn't it medias not media

indigo shuttle
#

no i ended up changing it to media

dense cove
#

Then where do you put that script

indigo shuttle
#

i put the play script script on a trigger in my world

#

config is inside the media pbo

dense cove
#

And how the script isn't working

indigo shuttle
#

this

dense cove
#

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

indigo shuttle
#

is there a way to expand the pbo properties because i cant see the full path

#

nvm just realised you can hover over it

dense cove
#

That means your PBO is recognized as that, by the game

glossy inlet
#

That is the path your pbo gets loaded at in game.
So your file is now at
Users\Wolf\Desktop...\radio_1.ogv

rough grove
wind coral
#

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.

wind coral
#

Would I setup a build for mission files any differently via HEMTT or is it strictly a addon type structure?

rough grove
#

I have a project called packer that builds mission files on GitHub actions, but it is not configurable currently

remote pumice
dense cove
#

Asks for $PBOPREFIX$ but you have $PREFIX$?

remote pumice
#

I thought I tried that but I must've typoed because yeah that was it

#

Annnoyingly their docs say either

vague shard
#

@remote pumice make a report on github, so the dev can address it ๐Ÿ™

vague shard
#

AFAIK there isnt any and there wont. Basically have enough people use the dll often enough with BE active.

loud sapphire
#

@smoky halo interesting

smoky halo
#

want to test it?

slim merlin
#

What is the cause of the white texture on the bulldozer?

#

I show the paths correctly in ObjectBuilder, but white texture appears in Bulldozer

sly skiff
slim merlin
#

is that wrong

sly skiff
#

no this is right

slim merlin
#

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

sly skiff
#

so you dont have P drive set up?

slim merlin
#

I installed

inland flare
#

@smoky halo I'm interested :^)

smoky halo
#

@inland flare send me a pbo then. :)

full drift
#

They had to go and make Task Force radio such a fun mod to download and set up automatically.

dawn palm
#

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

dawn palm
#

pboProject 3.90 Updated (free and subscriber) to fix edds issues in a mod.cpp (credit Helkhiana )

wooden fable
#

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?

vague shard
#

@wooden fable what do you mean with "steam still does not recognize they key" exactly - when is this shown?

wooden fable
vague shard
#

does it have a new, unique bikey name? is the meta.cpp correct? and latest on both client+server?

wooden fable
#

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.

vague shard
#

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)

wooden fable
vague shard
#

happens to all of us ๐Ÿ˜„

hazy cedar
#

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

sly skiff
#

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

hazy cedar
# sly skiff 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.

sly skiff
#

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

inland flare
hazy cedar
# sly skiff not good way to check

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;

sly skiff
hazy cedar
sly skiff
#

are you on windows?

#

are any paths you make affected or just paths in rvmats?

hazy cedar
hazy cedar
#

i'm beginning to wonder if it's a problem with my windows environment or something

sly skiff
#

possibly

hazy cedar
sly skiff
#

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

hazy cedar
sly skiff
#

if you mounted via the launcher you need to disable that first and restart so the old mounting dont interfere