Linux mod development?

Has anyone successfully set up modding/development environment on linux? I'm asking this because i don't want to spend a long time compiling the custom version of unreal engine just to find out something later on is blocking this from being possible. In particular i don't know if Wwise will work on linux, they have some documentation for linux but there isn't a clear way to get the sdk since there isn't an official installer and i wan't able to find other means of downloading the sdk.
634 Replies
Robb
Robb12mo ago
I think a few people have tried over the years, but I haven't heard of anyone finishing/it succeeding I know Vilsol and Mircea were interested in making it work, and made it sound like they made some pretty big progress, but got "distracted" by 1.0
Mircea
Mircea12mo ago
The "big progress" was installing msvc-wine
𝗱avid𝗼n.𝘁op
for building UE or other things?
Mircea
Mircea12mo ago
The goal was building UE But never got to actually test it And also msvc-wine says building debug instead of release doesn't really work, and I would assume Development uses debug
𝗱avid𝗼n.𝘁op
tried running UE through wine but i dont think i can bypass this
No description
Rex
Rex12mo ago
And the mere thought of running VS through wine made my entire body shudder in pain.
Mircea
Mircea12mo ago
That would be the goal of msvc-wine Or, at least the compiler, if not the IDE
Rex
Rex12mo ago
Yeah, I was thinking about VS
Symax
Symax12mo ago
I'm attempting this At the moment, I'm going through VirtualBox with a Virtual Machine.
Rex
Rex12mo ago
Is that virtual machine running Windows?
Symax
Symax12mo ago
Correct. I'm using Windows 10 Pro within the VM. Getting the initial VisualStudio installer was a bit of a chore. After that, everything started flowing. I'm still in the process of setting up the environment.
Rex
Rex12mo ago
I feel the virtual GPU might be an issue but it should otherwise work
Symax
Symax12mo ago
I haven't gotten to that point yet. If it becomes an issue, I'll proceed with my plan on building a native version of the base Unreal Engine and then start comparing the CSS differences and add them in. Looking at the Unreal Engine documentation in relation to cross compiling gives clues as to what compilers and versions should be installed on Linux Native. I'm currently using Ubuntu 22.04 as recommended in the docs. I may consider upgrading to 24.04 for the proper llvm-clang toolchain that comes with 24.04 if I can't get it compiled on 22.04 I may just create a special repo on Launchpad.net to get llvm-toolchain compiled for 22.04. It will probably generate less headaches.
Rex
Rex12mo ago
You might as well just build UE-CSS directly
Symax
Symax12mo ago
If I do, I may just make a .deb package of it.
Rex
Rex12mo ago
Please ask Mircea before doing that
Symax
Symax12mo ago
I have no idea who that is. I tend to create .deb packages of items I choose to install. They typically don't get distributed.
Rex
Rex12mo ago
No description
Rex
Rex12mo ago
But if you're not distributing the .deb package (you only use it for yourself) I think it's fine It's mainly about respecting Unreal Engine's license
Mircea
Mircea12mo ago
Distributing that deb outside of github forks or the UE marketplace is against the EULA
Symax
Symax12mo ago
If you want the fruits of my .deb creation work, all you would have to do is create a {base_dir}/debian folder and put the packaging stuff in there, then commit that to the repo. Similarily for RedHat, you would have a text file called {base_dir}/unrealengine.srpm that lays out how to create an RPM package. At least that is how I remember it from my RedHat days.
Symax
Symax12mo ago
So far, This is as far as I have gotten. I was able to get the Unreal Engine - CSS up and running. I created a blank project, then I got this error:
No description
FICSIT-Fred
FICSIT-Fred12mo ago
It looks like you're getting a crash when trying to open the Unreal Editor - are you sure you downloaded our custom engine version as described in the docs? Is the EngineAssociation in the uproject file set to the correct engine version? Make sure to grab the Aspiring Modder role in https://discord.com/channels/555424930502541343/555442202780762143 if you haven't yet. -# Responding to editorenginemodulecompilefailure triggered by @Symax
Symax
Symax12mo ago
The release I grabbed was UnrealEngine-5.3.2-css-66 and I made sure to grab the .EXE, as well as the -1 and -2 files. EngineAssociation in the .uproject file is:
{
"FileVersion": 3,
"EngineAssociation": "5.3.2-CSS",
"Category": "",
"Description": "",
"Plugins": [
{
"Name": "ModelingToolsEditorMode",
"Enabled": true,
"TargetAllowList": [
"Editor"
]
}
]
}
{
"FileVersion": 3,
"EngineAssociation": "5.3.2-CSS",
"Category": "",
"Description": "",
"Plugins": [
{
"Name": "ModelingToolsEditorMode",
"Enabled": true,
"TargetAllowList": [
"Editor"
]
}
]
}
I guess I need to stick to the Sample project as a template.
Rex
Rex12mo ago
You have to do as per the docs i.e. download the starter project, integrate wwise, etc
𝗱avid𝗼n.𝘁op
won't work even with native compiled UE for linux it will still complain about missing visual studio 2022 when atempting to open the sf starter project
Rex
Rex12mo ago
I know
Symax
Symax12mo ago
For Linux, you have to use VS Code for Linux. I'm still trying to figure the rest out.
Rex
Rex12mo ago
You need MSVC (compiler), vscode doesn't have that
Symax
Symax12mo ago
I know there will have to be some sort of conversion in the long run for Linux dev work
The Urban Goose
The Urban Goose12mo ago
Gonna assume y'all already know this, but in case you don't: You can also use JetBrains Rider as an IDE for UE5, which is available on Linux. Rider has quite recently been made free for personal use. Maybe that could work in some way?
Rex
Rex12mo ago
You still need MSVC to compile for Windows. But it's convenient to have an IDE
bspkrs
bspkrs11mo ago
Has anyone made any progress on this that can be shared? I just started looking into setting up a modding environment for Satisfactory and I don't have a Windows machine to use, so I started looking into using my Steam Deck which runs a modified version of Arch Linux. I saw a few mentions of JB's Rider, which I have access to use. Any update is appreciated!
Robb
Robb11mo ago
Not that I have head. But even if you do, the specs and storage space of a steam deck will make compiling the project very slow
devel
devel10mo ago
The 5.3.2-css-64 compiles natively (just one typo to fix). Launching ./Engine/Binaries/Linux/UnrealEditor: the Starter Project needs Wwise plugin. No idea if it's even possible to to get it on Linux. Even in Proton, the Wwise Windows Launcher fails to install Wwise SDK: Can't recognize '"C:\users\steamuser\AppData\Local\Temp\WwiseLauncher\runAsAdmin.lnk"' as an internal or external command, or batch script. By removing Wwise from the FactoryGame.uproject: there is an UnrealEditor's error "The modules are missing or built with a different engine version" for a ton (63+) of modules like FactoryGame, FactoryPreEarlyLoadingScreen, FactoryDedicatedServer...
Robb
Robb10mo ago
Wwise is a requirement to work on the game, you can't run without it
devel
devel10mo ago
trying without it is to check faster whether there is anything else blocking ok, basically you install msvc into wine with the microsoft's vs_BuildTools.exe installer. Wwise launcher is bugged, the best it can do is to download archives that can be extracted into Plugins dir of the project. UnrealEditor works in wine. It's about 90% there, I'm getting an Alpakit packaging error: Failed to find command PackagePlugin (in \Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 258). Looks like some of the Alpakit's functions haven't loaded themselves. Any ideas?
FICSIT-Fred
FICSIT-Fred10mo ago
Some of your Alpakit files are missing. Please redownload the folder /Build/Alpakit.Automation/ from the repo -# Responding to missingalpakit triggered by @devel
Mircea
Mircea10mo ago
>remove crash missingaplakit
FICSIT-Fred
FICSIT-Fred10mo ago
Crash could not be found!
Mircea
Mircea10mo ago
>remove crash missingalpakit
FICSIT-Fred
FICSIT-Fred10mo ago
Crash removed!
Mircea
Mircea10mo ago
Can you send the full log?
Mircea
Mircea10mo ago
Did you build UE from source?
devel
devel10mo ago
yes 08d00ee44347101896506246689e3b779bc1bc16
Mircea
Mircea10mo ago
Source built UE ignores -ScriptsForProject because reasons https://github.com/satisfactorymodding/UnrealEngine/blob/5.3.2-CSS/Engine/Source/Programs/Shared/EpicGames.Build/System/CompileScriptModules.cs#L164 (Yes, the comment above that says exactly the opposite) Did the release not work under wine?
devel
devel10mo ago
ok, with a prebuilt UECSS it works: can make and run the wood crafting example from the wiki. Lost half of my day trying to install the compiler version that's newer than in the prebuilt. Had to disable the compiler version check for now.
Mircea
Mircea10mo ago
Wdym compiler newer than prebuilt? UE doesn't ship with a compiler
devel
devel10mo ago
This check: https://github.com/satisfactorymodding/UnrealEngine/blob/08d00ee44347101896506246689e3b779bc1bc16/Engine/Source/Programs/UnrealBuildTool/Platform/Windows/UEBuildWindows.cs#L1045 Solved that. Got rid of the second compiler by starting from scratch with a cleaned up list of the msvc components.
The Urban Goose
The Urban Goose9mo ago
Am I understanding this correctly? Did you manage to get the mod dev enviornment working on Linux?
devel
devel9mo ago
Yes. I can't build things that depend too much on Wwise, but the dev env is usable enough.
The Urban Goose
The Urban Goose9mo ago
Would you mind giving me a rundown on how I could get that working on my end? My mods don't do anything with audio, so I should be fine
devel
devel9mo ago
Build a native Unreal-CSS to use for mod editing. Use the prebuilt Unreal-CSS in Wine to build mods. There are some notes in the zip about installing MSVC and Wwise plugin.
devel
devel9mo ago
UnrealEditor that's built from source doesn't add a skeleton to the list of available skeletons if the skeleton asset is in the mod content directories (same with input actions). Is there a source code that corresponds to the prebuilt engine? Why are they different?
Mircea
Mircea9mo ago
The prebuilt is the same code The only difference between the prebuilt and source build is that the prebuilt one strips the temporary/unnecessary files after it builds from source, and adds the InstalledEngine.txt marker file that the IsEngineInstalled thing checks, to determine whether or not it should allow compiling the engine when building the project
devel
devel9mo ago
Has anyone translated the multiplayer launch scripts to use them on Linux?
Robb
Robb9mo ago
not that I'm aware of
Borketh
Borketh7mo ago
Ok sooo... does anyone have a step-by-step guide of what to do and what currently breaks?
Robb
Robb7mo ago
I think @Zvh recently tried to get it working on a Mac and may have some insights
Borketh
Borketh7mo ago
if we can get a guide together that would be awesome assuming we have everything actually working now I'll do my best to contribute because I'm invested in this now >docsearch compile unreal engine
FICSIT-Fred
FICSIT-Fred7mo ago
Unreal Engine Asset Toolkit :: Satisfactory Modding Documentation
The Asset Toolkit has not yet been fully tested on UE5 or the 1.0 release. This article is a work-in-progress. Please contact u...
GrahamKracker
GrahamKracker7mo ago
Project Setup :: Satisfactory Modding Documentation
Now that you’ve installed all of the prerequisite software and got a copy of the starter project, it’s time to start setting the...
GrahamKracker
GrahamKracker7mo ago
is that what you were looking for?
GrahamKracker
GrahamKracker7mo ago
ah i see
Robb
Robb7mo ago
we don't currently have any docs on compiling UE itself because in theory no one should need to do that since our CI already does it https://github.com/satisfactorymodding/UnrealEngine/actions
Borketh
Borketh7mo ago
I see no linux bin in the github releases
Robb
Robb7mo ago
correct, because linux mod development is not currently supported by us sorry, I don't mean to say we already build engine for linux I am explaining why we don't have any docs on building engine
Borketh
Borketh7mo ago
I am taking notes as I figure it out is there a way to avoid this? cc @Feyko (didn't you have a fake wwise at some point?)
Mircea
Mircea7mo ago
There's the wwise-cli I made, but they changed the name of a component or split it or something, so it's not downloading everything anymore Didn't have time to look into it
The Urban Goose
The Urban Goose7mo ago
I shall be paying close attention to this thread I ditched Windows last September, and haven't looked back since to the point where having to use Windows is the main thing keeping me from having the motivation to get back to modding.
Robb
Robb7mo ago
@Borketh (silly) is that the only required build on linux change? wow @The Urban Goose if you check out bork's branch, sounds like you should be able to build editor on linux
Borketh
Borketh7mo ago
this is from devel's work I encountered the same issue
Robb
Robb7mo ago
ah
Borketh
Borketh7mo ago
basically right now you can build two separate versions of unreal to use one that edits (native) one that builds mods (wine) this is less than ideal especially for disk usage Error: Unable to find 'class', 'delegate', 'enum', or 'struct' with name 'EAkMeteringFlags' no fred?
Robb
Robb7mo ago
Ak... smells of Wwise
Borketh
Borketh7mo ago
yeah I know. I can't seem to figure out what I'm missing
Borketh
Borketh7mo ago
No description
Robb
Robb7mo ago
send full build log?
Mircea
Mircea7mo ago
You're missing the css patches I don't think I ended up writing a bash version of the patch script, because it ended up being way bigger than I expected
Robb
Robb7mo ago
I think they have powershell for linux, perhaps that could be installed to avoid needing 2 versions of the patches?
The Urban Goose
The Urban Goose7mo ago
Wow, I just looked it up, indeed they do huh
Borketh
Borketh7mo ago
where are those? did I miss part of the regular docs?
Mircea
Mircea7mo ago
It's a set of patches that get applied by a powershell script ran as a UE pre-build task Normally you never interact with any of that, it just happens automatically, so it's not in the docs, but on linux there's no pre-build step calling a bash script set up They are in Mods/WwisePatches/Patches or something like that For a quick fix you can just apply them manually, the script is meant to keep track of what's already been applied, like a git from wish
Robb
Robb7mo ago
Install PowerShell on Linux - PowerShell
This article lists the Linux distributions and package managers that are supported for installing PowerShell.
Mircea
Mircea7mo ago
But if you feel like it, you could also port the powershell script to bash, because the existing powershell script probably won't run out of the box on linux anyway
Robb
Robb7mo ago
updated the bot rule to hopefully not eat any microsoft links now
Borketh
Borketh7mo ago
going to take a crack at this because I don't expect linux devs to want to have to install that anything I need to do to make sure the UE build step runs the right script?
Mircea
Mircea7mo ago
It's in the .uproject
Robb
Robb7mo ago
is it that big of a deal to install it? other scripts in the community are already powershell formatted, would rather not have to have 2 versions of each script to update
Borketh
Borketh7mo ago
that much is fair, but can't powershell run a bastardized version of bash?
Mircea
Mircea7mo ago
Not for the commands we have to run on windows And yeah, powershell overall is kinda weird, I don't think anyone actually wants to install it on linux
Borketh
Borketh7mo ago
let's use python instead :trol:
devel
devel7mo ago
as far as I remember, I didn't have to touch any powershell. Only extracted some wwise plugins at the right place and that's it.
Mircea
Mircea7mo ago
Yeah, but that was before we got the wwise patches from CSS Or the wwise you extracted was already patched
Borketh
Borketh7mo ago
how would that be possible
devel
devel7mo ago
ok, rollback to 3.9.0 or try applying the patches that started to appear immediately after 3.9.0 powershell and *.exe for that part are just repulsive
Mircea
Mircea7mo ago
Potentially working ™️ bash version. It did work for me, but it's very hacky because the wwise files are CRLF, so the patches must be too, but patch ignores CR by default, and in general linux doesn't like CRLF
The Urban Goose
The Urban Goose7mo ago
Did you manage to get anything working or not yet?
Borketh
Borketh7mo ago
no, sorry. got busy with school shit
The Urban Goose
The Urban Goose7mo ago
Fair enough
Borketh
Borketh7mo ago
poked at this very quickly as I was finally able to properly install powershell - installing powershell is not an option to resolve this
No description
Mircea
Mircea7mo ago
I mean, the windows-only commands could be wrapped in an if, but the powershell script still references the patch.exe which you don't need on linux Try the bash version
Borketh
Borketh7mo ago
seems to work building now got some very weird errors about the comma operator :borked:
Borketh
Borketh7mo ago
c++ doesn't have tuples right? why are there double parens around the FVector constructor arguments? these files are generated by UHT, so is it borked or is it given bad data
Borketh
Borketh7mo ago
this should fix it maybe, but those are generated files so this isn't a permanent fix (you should add the minus character to the 2nd capture group, this is not quite complete)
No description
Borketh
Borketh7mo ago
still getting
In file included from /home/two/SatisfactoryModding/SatisfactoryModLoader/Mods/Alpakit/Intermediate/Build/Linux/x64/UnrealEditor/Development/Alpakit/Module.Alpakit.cpp:18:
/home/two/SatisfactoryModding/SatisfactoryModLoader/Mods/Alpakit/Source/Alpakit/Private/ModWizardDefinition.cpp:8:10: fatal error: 'HAL/PlatformFilemanager.h' file not found
#include "HAL/PlatformFilemanager.h"
In file included from /home/two/SatisfactoryModding/SatisfactoryModLoader/Mods/Alpakit/Intermediate/Build/Linux/x64/UnrealEditor/Development/Alpakit/Module.Alpakit.cpp:18:
/home/two/SatisfactoryModding/SatisfactoryModLoader/Mods/Alpakit/Source/Alpakit/Private/ModWizardDefinition.cpp:8:10: fatal error: 'HAL/PlatformFilemanager.h' file not found
#include "HAL/PlatformFilemanager.h"
no idea there question: why are UHT-generated files committed to the repo? I know nothing about the inner workings but that doesn't seem right well, back to work. please poke me if there's anything I missed
The Urban Goose
The Urban Goose7mo ago
I found this:
No description
No description
The Urban Goose
The Urban Goose7mo ago
Seems like renaming the file to PlatformFileManager.h (with a capital M) worked in these two cases Maybe worth a shot?
Borketh
Borketh7mo ago
Engine/Source/Runtime/Core/Public/HAL/PlatformFileManager.h seems to already be named correctly... oh the include is what's misnamed ok, in theory, it's built I can't launch unrealeditor anymore :borked: LogPluginManager: Error: Plugin 'RenderDocPlugin' failed to load because module 'RenderDocPlugin' could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.
Borketh
Borketh7mo ago
this makes SML buildable on linux, but now I can't launch UE for whatever reason
The Urban Goose
The Urban Goose7mo ago
Found this thread on the Unreal Forums, looks like you may need to manually install renderdoc
No description
The Urban Goose
The Urban Goose7mo ago
No description
The Urban Goose
The Urban Goose7mo ago
Epic Games Developer
Using RenderDoc with Unreal Engine | Unreal Engine 5.5 Documentati...
RenderDoc is a standalone open-source graphics debugger that you can use to perform single-frame captures and inspect them in Unreal Engine.
Borketh
Borketh7mo ago
I shouldn't have to though right? it launched before with no issues.
The Urban Goose
The Urban Goose7mo ago
No clue, tbh, I was just sharing what I was able to find on the topic. I mean this error message says that Unreal isn't able to launch, cause it can't find the plugin. So my first course of action would be to make sure the RenderDoc plugin is still there, and the engine is launching with it enabled. I found out that the RenderDoc plugin is part of the UE5 source code, so my guess would be that it may have needed to be built along with the engine, but something went wrong along the way? (Keep in mind I have no clue about building UE5 from source, and am just making suggestions based on what limited knowledge I have in this topic) Did you end up taking notes, and would you be able to share them? I've got some time on my hands atm, and if I can get to the same point you're at right now, I could try and see if I can figure out something
Borketh
Borketh7mo ago
my notes were just general steps for later
MinoDab492
MinoDab4927mo ago
Is any of this being committed to any GutHub branch right now? I’d be so down to edit on Linux, I just had some things I wanted to get working before I switched over
Mircea
Mircea7mo ago
I just now noticed that this is in our FG stubs, not in UE's source... Spot the issue https://github.com/satisfactorymodding/UnrealProjectGenerator/blob/EarlyAccess/GenerationScripts/defaultValues.py#L166
Borketh
Borketh7mo ago
lmao, implicit tuple my beloved so why did this issue only appear now that we try to compile on linux? does vs overlook what clang says nuh uh to?
Mircea
Mircea7mo ago
Maybe you have a newer version of clang or something Because crosscompiling for linux server is still clang Or older, idk
Borketh
Borketh7mo ago
Using toolchain located at '/home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/clang++) version 'clang version 16.0.6 (github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin' (string), 16 (major), 0 (minor), 6 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar (/home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar) version 'LLVM (http://llvm.org/):
LLVM version 16.0.6
Optimized build. (string)'
Using fast way to relink circularly dependent libraries (no FixDeps).
Using toolchain located at '/home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/clang++) version 'clang version 16.0.6 (github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin' (string), 16 (major), 0 (minor), 6 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar (/home/two/SatisfactoryModding/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar) version 'LLVM (http://llvm.org/):
LLVM version 16.0.6
Optimized build. (string)'
Using fast way to relink circularly dependent libraries (no FixDeps).
Mircea
Mircea7mo ago
Oh It uses a builtin clang Hmm
Mircea
Mircea7mo ago
No description
No description
Mircea
Mircea7mo ago
Not 100% sure that those get added when cross-compiling, as opposed to using clang to compile for windows, because this function is only called from VCToolchain But it would explain it
Borketh
Borketh7mo ago
what about the other things i had to patch
Mircea
Mircea7mo ago
The filename case one it's just because windows is case insensitive, though I think at some point we did have warnings about stuff like this And the other one is also disabled in the same function
Borketh
Borketh7mo ago
fantastic
MinoDab492
MinoDab4927mo ago
So wait, what else (aside from Wwise it seems) is there to figure out then?
Borketh
Borketh7mo ago
I'm missing RenderDocPlugin for some reason
MinoDab492
MinoDab4927mo ago
Is it just erroring, or is it straight up missing?
Borketh
Borketh7mo ago
.
MinoDab492
MinoDab4927mo ago
Ah, sorry must’ve missed that Based on what it seems to do, would disabling it be an option? Or maybe it could be copied over from base 5.3?
The Urban Goose
The Urban Goose7mo ago
This may be a stupid suggestion, but... Couldn't you just put the plugin files into the correct folder? Like copying them out of another version of the engine, just to try it out? IDK if CSS would've made any modifications to that plugin, but if not, would that not be a possible temporary fix?
Borketh
Borketh7mo ago
it should have compiled itself though I want to figure out why it didn't, I just don't have the time right now
Robb
Robb7mo ago
it not compiling itself is probably™️ a sign of something bigger going wrong, but that is something you could try
The Urban Goose
The Urban Goose7mo ago
Well yeah, obviously it's a problem that the plugin isn't compiling, but if a drop-in replacement works, then that'd mean it's just the renderdoc plugin that's the issue
Mircea
Mircea7mo ago
The plugin is disabled when building the project So you should run UE with the project argument, otherwise it will enable the plugin as it is a default plugin, but it will be missing Or maybe add the build all modules param that we added to fix a similar issue before
Borketh
Borketh7mo ago
I'm just compiling it with make renderdoc doesn't appear anywhere in the makefile. is it part of the sml project or ue itself?
The Urban Goose
The Urban Goose7mo ago
UE5 itself
Mircea
Mircea7mo ago
But are you compiling FactoryEditor or the default UnrealEditor? The makefile is just a wrapper, like .vs and everything else All the building happens through UE's C# stuff (UBT)
Borketh
Borketh7mo ago
just make which compiles all
No description
The Urban Goose
The Urban Goose7mo ago
UnrealEngine/Engine/Source/ThirdParty/RenderDoc/
Mircea
Mircea7mo ago
@Borketh (silly) can you check what .target files you have in Engine/Binaries/Linux/? Not sure what exactly make compiles, but if it somehow compiles using the FactoryGame.uproject, the .target will have the wrong name, and the installed build script fixes that
Borketh
Borketh7mo ago
floof@vitesse/h/t/S/U/E/B/Linux $ ls | grep .target
.rw-r--r-- 70k floof 12 Mar 23:53 CrashReportClient-Linux-Shipping.target
.rw-r--r-- 70k floof 12 Mar 23:54 CrashReportClientEditor-Linux-Shipping.target
.rw-r--r-- 1.0k floof 12 Mar 23:15 DotNetPerforceLib-Linux-Debug.target
.rw-r--r-- 1.0k floof 12 Mar 23:15 DotNetPerforceLib-Linux-Shipping.target
.rw-r--r-- 8.1k floof 13 Mar 19:08 EpicWebHelper-Linux-Shipping.target
.rw-r--r-- 93k floof 12 Mar 23:55 ShaderCompileWorker.target
.rw-r--r-- 812k floof 19 Mar 20:02 UnrealEditor.target
.rw-r--r-- 106k floof 12 Mar 23:58 UnrealFrontend.target
.rw-r--r-- 108k floof 13 Mar 00:26 UnrealInsights.target
.rw-r--r-- 8.2k floof 12 Mar 23:56 UnrealLightmass.target
.rw-r--r-- 70k floof 12 Mar 23:14 UnrealVersionSelector-Linux-Shipping.target
floof@vitesse/h/t/S/U/E/B/Linux $ ls | grep .target
.rw-r--r-- 70k floof 12 Mar 23:53 CrashReportClient-Linux-Shipping.target
.rw-r--r-- 70k floof 12 Mar 23:54 CrashReportClientEditor-Linux-Shipping.target
.rw-r--r-- 1.0k floof 12 Mar 23:15 DotNetPerforceLib-Linux-Debug.target
.rw-r--r-- 1.0k floof 12 Mar 23:15 DotNetPerforceLib-Linux-Shipping.target
.rw-r--r-- 8.1k floof 13 Mar 19:08 EpicWebHelper-Linux-Shipping.target
.rw-r--r-- 93k floof 12 Mar 23:55 ShaderCompileWorker.target
.rw-r--r-- 812k floof 19 Mar 20:02 UnrealEditor.target
.rw-r--r-- 106k floof 12 Mar 23:58 UnrealFrontend.target
.rw-r--r-- 108k floof 13 Mar 00:26 UnrealInsights.target
.rw-r--r-- 8.2k floof 12 Mar 23:56 UnrealLightmass.target
.rw-r--r-- 70k floof 12 Mar 23:14 UnrealVersionSelector-Linux-Shipping.target
Mircea
Mircea7mo ago
Hm, so it is building UnrealEditor
Borketh
Borketh7mo ago
and I'm launching unrealeditor I am doing so from a symlink in the top level dir though, would that fuck it
Mircea
Mircea7mo ago
The executable is always named unrealeditor Probably not Ok, so, I compiled UE from source on linux too (no incredibuild, so it took a while), and nothing from make seemed to be compiling what I wanted it to, so I compiled UE using ./Engine/Build/BatchFiles/Linux/Build.sh -Target="FactoryEditor Linux Development -Project=\"$(pwd)/FactoryGame/FactoryGame.uproject\"", which did result in the same issue, but when I compiled the project using a similar command (pointing to the real .uproject, not the one in the UE dir), everything worked fine
Borketh
Borketh7mo ago
did not work for me
Mircea
Mircea7mo ago
Also, I found the reason why the LD_LIBRARY_PATH is required, our fix for the RPATH specifically builds the path with FactoryGame, instead of just having one ../ fewer
Borketh
Borketh7mo ago
how do I do the equivalent of make clean with ubt
Mircea
Mircea7mo ago
Maybe there's a Clean.sh or something There isn't Maybe Build.sh clean
Borketh
Borketh7mo ago
there's a Clean.bat...
Mircea
Mircea7mo ago
So adapting that would be Build.sh -Clean I guess
Borketh
Borketh7mo ago
-Clean wants a target, what is the equivalent of all
Mircea
Mircea7mo ago
Not sure all is a thing
Borketh
Borketh7mo ago
i cleaned fe linux dev and am rebuilding computer go brr yep still no renderdoc
Mircea
Mircea7mo ago
Can you send your log?
FICSIT-Fred
FICSIT-Fred7mo ago
There is currently a bug that keeps the editor from loading properly if you launch it from a desktop shortcut. To avoid this, directly open a uproject file instead of going through the shortcut. Alternatively, enable "Always load last project on startup" and the shortcut will work correctly. -# Responding to editorlocationservices triggered by @Borketh (silly)
Borketh
Borketh7mo ago
why did THAT fix it?! opened the uproject like suggested and it opened properly now compiling 4.5k shaders
FICSIT-Fred
FICSIT-Fred7mo ago
Something is preventing this mod from loading. Troubleshooting ideas: - Try closing and reopening the mod manager - Try turning mods off and back on again in the Mod Manager - Are you playing on Experimental? Check the compatibility info to find out if that mod supports it. - Are you using the most recent version of the mentioned mod? If you are, be patient. Mod support for new versions is an ongoing effort by authors in their spare time. If you absolutely need this mod, you can play something else or start a fresh save while you wait for an update! -# Responding to failedtoload triggered by @Borketh (silly)
Frequently Asked Questions :: Satisfactory Modding Documentation
You can find answers to frequently asked questions on the modding discord (and about modding in general) here. Consider using your browser...
Mircea
Mircea7mo ago
That's... what I suggested too Oh, or I guess I didn't But yeah, the cause is technically different, but the issue is the same as what fred said
Borketh
Borketh7mo ago
now it's complaining about no alpakit and I probably missed a step for that to happen
Mircea
Mircea7mo ago
You're missing the LD_LIBRARY_PATH From this
Borketh
Borketh7mo ago
how do I add that if I'm launching from the uproject file
Mircea
Mircea7mo ago
Will fix that soon ™️ (maybe tomorrow) LD_LIBRARY_PATH=stuff /path/to/UnrealEditor /path/to/FactoryGame.uproject
Borketh
Borketh7mo ago
LogLinux: Warning: MessageBox: The following modules are missing or built with a different engine version:

FactoryGame
FactoryPreEarlyLoadingScreen
FactoryDedicatedServer
FactoryDedicatedClient
AbstractInstance
InstancedSplinesComponent
GameplayEvents
SignificanceISPC
OnlineIntegration
OnlineIntegrationEditor
OnlineIntegrationEOSExtensions

Would you like to rebuild them now?: Missing FactoryGame Modules: No is implied.
LogCore: Engine exit requested (reason: EngineExit() was called)
LogExit: Preparing to exit.
LogVirtualization: UE::Virtualization was shutdown
LogLinux: Warning: MessageBox: The following modules are missing or built with a different engine version:

FactoryGame
FactoryPreEarlyLoadingScreen
FactoryDedicatedServer
FactoryDedicatedClient
AbstractInstance
InstancedSplinesComponent
GameplayEvents
SignificanceISPC
OnlineIntegration
OnlineIntegrationEditor
OnlineIntegrationEOSExtensions

Would you like to rebuild them now?: Missing FactoryGame Modules: No is implied.
LogCore: Engine exit requested (reason: EngineExit() was called)
LogExit: Preparing to exit.
LogVirtualization: UE::Virtualization was shutdown
I did not receive this prompt
Mircea
Mircea7mo ago
Yeah, not sure why that happens (prompt not showing)
Borketh
Borketh7mo ago
and also no the fuck they weren't i just built them
Mircea
Mircea7mo ago
make vs Build.sh with -Project (which is what the vs project passes to Build.bat)
No description
No description
Mircea
Mircea7mo ago
And it looks like the makefile is missing that because it expects the editor target to be FactoryGameEditor Which was fixed in 5.5 https://github.com/EpicGames/UnrealEngine/commit/e89c9499ed78cd97cf71017975c8ef160ccd800c, so we can just cherry pick that Commited (not pushed yet) fixes for all of the issues (makefile not building FactoryEditor, RPATH for mods not being created, compile errors in both the engine and the project)
Mircea
Mircea7mo ago
Right now I'm potentially making UE support crosscompiling for windows on linux using https://github.com/mstorsjo/msvc-wine, we'll find out if it worked hopefully in about an hour
No description
Mircea
Mircea7mo ago
Mh, it failed, I believe because of this https://github.com/mstorsjo/msvc-wine/pull/96
No description
MinoDab492
MinoDab4927mo ago
I mean, still being able to develop on Linux, only needing Windows to compile is still a pretty good step I’d say
Mircea
Mircea7mo ago
Depends on what you mean by develop, because you still need to build for windows to test your mod
MinoDab492
MinoDab4927mo ago
That’s true, I more meant get far enough to add things
Mircea
Mircea7mo ago
I downgraded msvc to the version recommended by the docs, and also patched UE's response file generation to output wine paths. I don't really like it, but it does seem to be working this time. If it finishes successfully I'll undo the UE patch and see if it still works (probably not unless wine itself converts paths in its windows APIs) Ok, it doesn't work with linux paths, maybe a patch to msvc-wine would be cleaner than the UE patch. The directx SDK in the windows SDK seems to not be the right one (it's missing some types, but seems to be generated the same way), I'll have to check tomorrow where the real one is on windows. And I've previously disabled ispc because UE's build of ispc for linux does not allow compiling for windows, but it's necessary for one of the project plugins, so I guess that also has to run in wine But for good news, I've updated wwise-cli to fix the missing files, and also added linux support For the directx thing, apparently it's supposed to be using the bundled directx library from UE, so maybe it's still related to some path not being converted so msvc-wine was not finding the file there It was trying to use that, but Epic didn't even try to write paths with case sensitivity in mind. There apparently should have also been a warning about it, but I guess it got swept in between the other case sensitivity warnings about .libs that I was ignoring because it said it should still be fine
Mircea
Mircea7mo ago
No description
Mircea
Mircea7mo ago
The resulting SML also loads sucessfully on windows I'll look into converting the (kinda intrusive) UE wine path patches to be handled in msvc-wine, and also look into whether the changed file detection is breaking because of something, or if this is just how it's supposed to behave, because it always recompiled everything, even when all I did was ctrl+C and run the same command again. Though probably this is not going to happen today Re the recompiling thing, I believe it is because the dependency files are generated by the compiler (I thought it was the other way around), so they have wine paths that UE can't find, so that's another thing on the list of stuff msvc-wine has to pre/post-process
The Urban Goose
The Urban Goose7mo ago
[sending a message, cause Discord has hidden the thread in the channel list for me]
Robb
Robb7mo ago
it's the Hide After Inactivity setting, I will increase it some for this forum as a whole
The Urban Goose
The Urban Goose7mo ago
Have you been able to make any progress on this? If not, what's currently causing issues? Anything I could maybe help with in any way?
Mircea
Mircea7mo ago
I'm busy with uni stuff for a couple more days, but I did have some time last night to implement the msvc-wine patches, haven't tested them yet though, maybe I can do that tonight
The Urban Goose
The Urban Goose7mo ago
Ah, fair enough
Mircea
Mircea7mo ago
Did a quick test, the dependencies json it generated all-lowercase, so fixing it is a bit harder than I thought. But the rest seems to be working, I didn't let it run till the end, just the first few actions, but it does correctly remap response files, and it would generate a valid dependencies json if it wasn't all-lowercase (might need to actually winepath that, but winepath seems to be very slow)
The Urban Goose
The Urban Goose7mo ago
Personally I'd be happy with a slow, but functional solution, even just temporarily. I've got a few ideas for mods I'm itching to make, and I refuse to use Windows on my personal machine out of principle at this point. Obviously no rush, it's my choice after all, if it takes time it takes time, I fully get that.
Mircea
Mircea7mo ago
When I say "seems to be slow" I mean
No description
Mircea
Mircea7mo ago
And there's like 100 paths in each json, and 1.6k jsons
The Urban Goose
The Urban Goose7mo ago
I see, that kind of slow Yeah no, that's fair
Mircea
Mircea7mo ago
Maybe nocaseglob + sed + realpath is the solution
No description
No description
The Urban Goose
The Urban Goose7mo ago
Did the maths real quick. If it's the "real" value that matters, and it's 0.1s on average, it's about 04:30 hours Question: Is the upgrade to 1.1 gonna delay/affect the development of Linux support, or is it something that can be worked on alongside/as part of the process in some way? (Just asking out of curiosity, not trying to be passive aggressive)
Mircea
Mircea7mo ago
I've done all of that on a separate branch, and all things considered the linux patches are quite small, so besides not being able to test them until I set everything up for 1.1, it shouldn't affect anything
The Urban Goose
The Urban Goose7mo ago
Nice (hopefully)
DarthPorisius
DarthPorisius7mo ago
Hey Mircea, if you need your favorite test dummy, I have a VM that I am testing on for migrating from Winblows to Linux. I'll gladly toss it out there to do a from-scratch setup of the SME
Borketh
Borketh7mo ago
I've changed the timeout for this thread from 3d to 1w so this doesn't leave my radar
The Urban Goose
The Urban Goose6mo ago
[Thread timed out for me again]
BoswenMcBastok
BoswenMcBastok6mo ago
Hi, all! New to SF modding and curious if I can build some kind of a development container so that maybe someday new modders can download and install just one single thing and jump right into modding within minutes (depending on their internet speed, of course) instead of hours ... or days. Trying to get my environment setup for the first time and I can't help but wonder if there is a way to do this with Ansible, or a Docker container, or etc... It looks like (as of October) one of the main sticking points was trying to get Wwise to work in some flavor of Linux? Well I had a crazy idea -- do we actually need to have Wwise installed in order for the modding editor to compile? Or do we just need to have files present that Wwise puts there -- e.g. whatever gets done in the background when we follow the steps to "Integrate Wwise with the Project" and "Generate Sound Banks" in the related sections here: https://docs.ficsit.app/satisfactory-modding/latest/Development/BeginnersGuide/project_setup.html ? Because if we just need the files Wwise makes and running the compiler doesn't actually invoke Wwise, then maybe we can run the install on a Windows OS and then just copy of the files to our Linux partition? Just brainstorming here, so apologies if this idea has already been tried recently... Been trying to read over the absolute TREASURE trove of knowledge all of this Discord but I haven't nearly gotten thru all of it yet!
Project Setup :: Satisfactory Modding Documentation
Now that you’ve installed all of the prerequisite software and got a copy of the starter project, it’s time to start setting the...
Mircea
Mircea6mo ago
We do need the entire wwise UE plugin, making stubs for it is not feasible, and also legally questionable. But Wwise is actually a solved issue, I've made a wwise-cli tool years ago for CI, and it also works on linux
Borketh
Borketh6mo ago
am I correct that we can probably finally have this ready after 1.1 compat?
DarthPorisius
DarthPorisius6mo ago
Curious to see if there will be a long engine CI build in the future... because 12.5 GB to upload wasn't enough, XD
Mircea
Mircea6mo ago
Definitely after all of 1.1 is dealt with, but yeah. I have to patch msvc-wine some more, extracting some functionality to a reusable script (so it can be used for ispc too) The build time shouldn't be that much higher, only Linux Editor would be added, but the upload will double, yeah. Besides doubling storage space it doesn't seem to be that big of an issue for uploads, it took like 4 minutes out of the ~4h run
DarthPorisius
DarthPorisius6mo ago
With the CI's server network speeds? Yeah, I managed to get my CI to work the night before the SFM's did, and yeah, my girl got smoked.
The Urban Goose
The Urban Goose6mo ago
Just curious cause I haven't used unreal on Linux yet: How is the editor installed? I'm assuming it's just similar to windows: Folder structure with all the default plugins and all that, just with a Linux executable instead of a windows exe (basically like the Linux native versions of Beam.NG Drive or ETS2)
Mircea
Mircea6mo ago
Yeah, it's exactly the same engine, but linux executables for the editor. UnrealVersionSelector still handles registering the engine version (in a dotfile instead of the registry) and file associations (desktop entries), so you can use it basically the same as you would on windows Probably will be just an archive, no deb/rpm/stuff, because I don't think those can be split to <2GB chunks to be accepted as github release artifacts (though I guess anything can be split if you just merge it back after you download the parts), and probably annoying to do on the windows CI You could also build the engine from source, but that takes a while, and when you compile the project you're compiling the engine too, so you can accidentally recompile the engine Oh, and because Rider can't fix a bug in 2 years, if you want to use Rider you have to generate visual studio project files (-visualstudio or something added to the generate project files command from the docs) and open that in Rider instead of the .uproject as they recommend
The Urban Goose
The Urban Goose6mo ago
Good to know I guess a split zip archive could work? (Like .zip.001, .zip.002, etc.)
Mircea
Mircea6mo ago
I tried to add a workaround for their bug (basically the generated Rider project files do list mod plugins, but Rider just doesn't display them) by marking mods as plugins in the project file, but that didn't seem to work either
The Urban Goose
The Urban Goose6mo ago
Then again, just an archive with the engine files works fine too, I personally don't mind it
Mircea
Mircea6mo ago
It'll have to be more compressed than a zip, but yeah I wonder if 7z can just do that for .tar.gz by default, it definitely can for .7z
Mircea
Mircea6mo ago
It can definitely do this lol
No description
The Urban Goose
The Urban Goose6mo ago
That seems slightly suboptimal
Mircea
Mircea6mo ago
Yeah, I compressed a 400kb file just to see if it works, so I had to go for a small chunk size
The Urban Goose
The Urban Goose6mo ago
Ah
Mircea
Mircea6mo ago
Nice
No description
No description
The Urban Goose
The Urban Goose4mo ago
Nice So now that 1.1 is out and mod support is there, can you estimate a timeframe when Linux dev will be up and running, or is it still just "when there is time to get it done"? (Is there maybe a partially functional early build I could potentially use to update my mods?)
Mircea
Mircea4mo ago
I'd say either in 2 weeks from now (which would be the exam week, but I have no courses that require exams, just document writing for one of the courses), or in 4 weeks from now (exam week with the final presentation and document submission will be over, and I'll have enough time) And re a partially functional build, not really, because the msvc-wine was still pretty broken
The Urban Goose
The Urban Goose4mo ago
Alright, fair enough. I wish you good luck with the exams then! They definitely have priority
Robb
Robb3mo ago
@The Urban Goose @DarthPorisius(Remote Monitoring) @BoswenMcBastok @Borketh @Feyko @MinoDab492 @devel @GrahamKracker @bspkrs @Rex [they/them] @davidon.top @symax Think I got everyone? Phone isn't showing me the list Ready to test: #modding-info-feed
Mircea
Mircea3mo ago
The testing can actually wait a few more minutes, I was writing a quick setup guide and found more stuff to fix. Making a new installed build now
The Urban Goose
The Urban Goose3mo ago
I'll wait for the quick setup guide then, but I'll definitely be installing this soon, need to finally update all my mods, and I had ideas for one or two new ones as well
DarthPorisius
DarthPorisius3mo ago
DnD Night tonight and my mother's tomorrow... so weekend testing for me.
Mircea
Mircea3mo ago
Prerequisites: * git * msitools (for msiextract, used by vsdownload.py of msvc-wine) * tar and zstd (for decompressing the engine archive) * dos2unix (for the wwise patches, used by the SML project) Engine setup: 1. set up MSVC:
git clone --branch ue-patches https://github.com/mircearoata/msvc-wine.git
cd msvc-wine
./vsdownload.py --accept-license --dest "<msvc_install_dir>" --msvc-version "17.4" --sdk-version "10.0.18362" --channel "release.ltsc.17.4"
./install.sh "<msvc_install_dir>"
git clone --branch ue-patches https://github.com/mircearoata/msvc-wine.git
cd msvc-wine
./vsdownload.py --accept-license --dest "<msvc_install_dir>" --msvc-version "17.4" --sdk-version "10.0.18362" --channel "release.ltsc.17.4"
./install.sh "<msvc_install_dir>"
2. Set the env var UE_WINE_MSVC=<msvc_install_dir>. This will have to be set both for commands and for the editor itself, so probably best to place it in /etc/environment or ~/.profile or something 3. Download the engine * You can source build from the 5.3.2-CSS-linux branch of https://github.com/satisfactorymodding/UnrealEngine (on my PC I think a source build takes around 2 or 3 hours) * Or you can download an installed build (like how we currently provide for windows) - for now I've made one for testing, https://files.mircearoata.me/UE_Linux/, but we will have the CI build one for the github releases too * Extract: cat UE_Linux_no_debug.tar.zst.* | zstd -d | tar -xf - (will extract to the current dir, there's no UnrealEngine root dir in the archive) 4. Register the engine: <ue_dir>/Engine/Binaries/Linux/UnrealVersionSelector -register -unattended 5. chmod +x <ue_dir>/Engine/Source/ThirdParty/Intel/ISPC/bin/Linux/ispc.sh because my git config had core.filemode=false for some (partition shared with windows) reason Project setup: 1. Clone/download the project as per the docs, but the linux-editor branch 2. Download wwise using wwise-cli * ./wwise-cli download --sdk-version "2023.1.3.8471" --filter Packages=SDK --filter DeploymentPlatforms=Windows_vc160 --filter DeploymentPlatforms=Windows_vc170 --filter DeploymentPlatforms=Linux --filter DeploymentPlatforms= * ./wwise-cli integrate-ue --integration-version "2023.1.3.2970" --project "<project_dir>/FactoryGame.uproject" 3. IDE 3a. Rider still doesn't list Mods when opening the .uproject, so a VS project has to be generated instead. However, even with that, it still can't build the project, so a Makefile is still needed in this case * <ue_dir>/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="<project_dir>/FactoryGame.uproject" -game -2022 * <ue_dir>/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="<project_dir>/FactoryGame.uproject" -game -Makefile * In Rider settings, under Toolset and Build, make sure .NET CLI executable path points to the UE-bundled dotnet (if it's not listed there, <ue_dir>/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet) 3b. VSCode also seems to be working fine (after a patch) * <ue_dir>/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="<project_dir>/FactoryGame.uproject" -game -VSCode * Open the .code-workspace, not the folder itself (VSCode will prompt you about the workspace if you do) * In the workspace settings, set add <ue_dir>/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux to omnisharp.dotNetCliPaths 3c. See this for other (not tested by me) project file options 4. Compile * For Rider with Makefile, make FactoryEditor * For VSCode ctrl+shift+P, Run Task, FactoryEditor Linux Development Build 5. Launch the editor as normal, everything should work the same as on windows from this point onwards Potential issues: * I've seen UnrealVersionSelector mention for me that file associations could not be created. I did already have the file associations from registering the source build, so maybe that's why, but worth checking * If you're using any custom materials, check the cook log for anything mentioning shader compilation failures (or missing materials at runtime) * I've patched UE's window spawning on linux so that stuff like alpakit and separate blueprint windows show up as separate windows in the taskbar, but the patch was not marking them as modals/transient. It did fix the issue for me, but idk if it breaks anything else (the comment around that code is that it changes how windows get foreground when they request it, but I think only notifications do that anyway)
DarthPorisius
DarthPorisius3mo ago
Any suggestions for CI for build/packaging mods? That is something I can test until the weekend.
The Urban Goose
The Urban Goose3mo ago
Also what's roughly the estimated install size? Just cause I'm currently reorganising my data and wanna plan accordingly.
Mircea
Mircea3mo ago
8GB engine download, ~28GB engine extracted, 6GB msvc-wine, and for the project my current project dir is 68GB, but idk why it's that big (12.3GB are windows editor related, so maybe 50ish GB for the project)
Rex
Rex3mo ago
I have terrible internet and no free drive space in my Linux boxes.
DarthPorisius
DarthPorisius3mo ago
Running on a fresh debian 13 VM just because that's what I got available to me from work... thoughts on why this error? I do have build-essentials This is the ./vsdownload.py --accept-license --dest "msvc_install_dir" --msvc-version "17.4" --sdk-version "10.0.18362" step.
Unpacking Microsoft.VC.14.34.17.4.ATL.ARM64.base
Unpacking Win10SDK_10.0.18362
Extracting Application Verifier arm External Package-arm_en-us.msi
Traceback (most recent call last):
File "/home/chris/msvc-wine/./vsdownload.py", line 881, in <module>
extractPackages(selected, cache, unpack)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/msvc-wine/./vsdownload.py", line 730, in extractPackages
unpackWin10SDK(dir, p["payloads"], dest)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/msvc-wine/./vsdownload.py", line 667, in unpackWin10SDK
subprocess.check_call(cmd, stdout=log)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/subprocess.py", line 414, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/lib/python3.13/subprocess.py", line 395, in call
with Popen(*popenargs, **kwargs) as p:
~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/subprocess.py", line 1039, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass_fds, cwd, env,
^^^^^^^^^^^^^^^^^^^
...<5 lines>...
gid, gids, uid, umask,
^^^^^^^^^^^^^^^^^^^^^^
start_new_session, process_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/subprocess.py", line 1972, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'msiextract'
Unpacking Microsoft.VC.14.34.17.4.ATL.ARM64.base
Unpacking Win10SDK_10.0.18362
Extracting Application Verifier arm External Package-arm_en-us.msi
Traceback (most recent call last):
File "/home/chris/msvc-wine/./vsdownload.py", line 881, in <module>
extractPackages(selected, cache, unpack)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/msvc-wine/./vsdownload.py", line 730, in extractPackages
unpackWin10SDK(dir, p["payloads"], dest)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/msvc-wine/./vsdownload.py", line 667, in unpackWin10SDK
subprocess.check_call(cmd, stdout=log)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/subprocess.py", line 414, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/lib/python3.13/subprocess.py", line 395, in call
with Popen(*popenargs, **kwargs) as p:
~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/subprocess.py", line 1039, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass_fds, cwd, env,
^^^^^^^^^^^^^^^^^^^
...<5 lines>...
gid, gids, uid, umask,
^^^^^^^^^^^^^^^^^^^^^^
start_new_session, process_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/subprocess.py", line 1972, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'msiextract'
Mircea
Mircea3mo ago
msiextract seems to be part of msitools
DarthPorisius
DarthPorisius3mo ago
yup, it liked that... I'll put that in my notes I am trying to do all my testing from the perspective of a fresh brand new modder just like I was Add dos2unix to the list... going the rider route
[FactoryEditor] FactoryGame: IsPublicBuild: 1 WithCheats: 0
/home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseReconcile/WwiseReconcile.Build.cs: warning: Modules must specify an explicit precompiled header (eg. PrivatePCHHeaderFile = "Public/Widgets/SWwiseReconcile.h") from UE 4.21 onwards.
xargs: dos2unix: No such file or directory
find: ‘standard output’: Broken pipe
find: write error
Checking if patch can be applied: patch -N -s -p1 -d "/home/chris/SatisfactoryModLoader" -i "/tmp/tmp.7dxVgavAnE" --dry-run
patch unexpectedly ends in middle of line
[FactoryEditor] FactoryGame: IsPublicBuild: 1 WithCheats: 0
/home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseReconcile/WwiseReconcile.Build.cs: warning: Modules must specify an explicit precompiled header (eg. PrivatePCHHeaderFile = "Public/Widgets/SWwiseReconcile.h") from UE 4.21 onwards.
xargs: dos2unix: No such file or directory
find: ‘standard output’: Broken pipe
find: write error
Checking if patch can be applied: patch -N -s -p1 -d "/home/chris/SatisfactoryModLoader" -i "/tmp/tmp.7dxVgavAnE" --dry-run
patch unexpectedly ends in middle of line
Mircea
Mircea3mo ago
dos2unix will also be necessary regardless of the IDE choice, it was the easiest way to deal with the CRLF wwise files and the LF patches to apply
DarthPorisius
DarthPorisius3mo ago
To those who are devs, it probably is a no-brainer... those who are !devs, it would be handy for. By the way, would the message about Some Platforms were skipped due to invalid SDK setup: Win64. going to be a problem?
chris@linuxbuildserver:~$ ./ue/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/home/chris/SatisfactoryModLoader/FactoryGame.uproject" -game -MakeFile
Setting up bundled DotNet SDK
Running command : dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll -projectfiles -project=/home/chris/SatisfactoryModLoader/FactoryGame.uproject -game -MakeFile
Log file: /home/chris/.config/Epic/UnrealBuildTool/Log_GPF.txt
Project file formats specified via the command line will be ignored when generating
project files from the editor and other engine tools.

Consider setting your desired IDE from the editor preferences window, or modify your
BuildConfiguration.xml file with:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<ProjectFileGenerator>
<Format>Make</Format>
</ProjectFileGenerator>
</Configuration>


Some Platforms were skipped due to invalid SDK setup: Win64.
See the log file for detailed information


Generating Make project files:
Discovering modules, targets and source code for project...
chris@linuxbuildserver:~$ ./ue/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project="/home/chris/SatisfactoryModLoader/FactoryGame.uproject" -game -MakeFile
Setting up bundled DotNet SDK
Running command : dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll -projectfiles -project=/home/chris/SatisfactoryModLoader/FactoryGame.uproject -game -MakeFile
Log file: /home/chris/.config/Epic/UnrealBuildTool/Log_GPF.txt
Project file formats specified via the command line will be ignored when generating
project files from the editor and other engine tools.

Consider setting your desired IDE from the editor preferences window, or modify your
BuildConfiguration.xml file with:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<ProjectFileGenerator>
<Format>Make</Format>
</ProjectFileGenerator>
</Configuration>


Some Platforms were skipped due to invalid SDK setup: Win64.
See the log file for detailed information


Generating Make project files:
Discovering modules, targets and source code for project...
Mircea
Mircea3mo ago
Yes, that's a problem You don't have the UE_WINE_MSVC env var available there
DarthPorisius
DarthPorisius3mo ago
UE_WINE_MSVC=/home/chris/msvc-wine/msvc_install_dir Its there, just not in effect apparently... in the ~/.profile and I logged out and back in to make sure it took. XD I'll try rebooting. should have been UE_WINE_MSVC="/home/chris/msvc-wine/msvc_install_dir" 🤣
Mircea
Mircea3mo ago
Huh, interesting
DarthPorisius
DarthPorisius3mo ago
FactoryServer: [Upgrade]
FactoryServer: [Upgrade] Using backward-compatible build settings. The latest version of UE sets the following values by default, which may require code changes:
FactoryServer: [Upgrade] bLegacyPublicIncludePaths = false => Omits subfolders from public include paths to reduce compiler command line length. (Previously: true).
FactoryServer: [Upgrade] ShadowVariableWarningLevel = WarningLevel.Error => Treats shadowed variable warnings as errors. (Previously: WarningLevel.Warning).
FactoryServer: [Upgrade] PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs => Set in build.cs files to enables IWYU-style PCH model. See https://docs.unrealengine.com/en-US/Programming/BuildTools/UnrealBuildTool/IWYU/index.html. (Previously: PCHUsageMode.UseSharedPCHs).
FactoryServer: [Upgrade] bLegacyParentIncludePaths = false => Omits module parent folders from include paths to reduce compiler command line length. (Previously: true).
FactoryServer: [Upgrade] CppStandard = CppStandardVersion.Default => Updates C++ Standard to C++20 (Previously: CppStandardVersion.Cpp17).
FactoryServer: [Upgrade] WindowsPlatform.bStrictConformanceMode = true => Updates MSVC strict conformance mode to true (Previously: false).
FactoryServer: [Upgrade] Suppress this message by setting 'DefaultBuildSettings = BuildSettingsVersion.V4;' in FactoryServer.Target.cs, and explicitly overriding settings that differ from the new defaults.
FactoryServer: [Upgrade]
Determining max actions to execute in parallel (8 physical cores, 8 logical cores)
Executing up to 8 processes, one per physical core
------ Building 1236 action(s) started ------
FactoryServer: [Upgrade]
FactoryServer: [Upgrade] Using backward-compatible build settings. The latest version of UE sets the following values by default, which may require code changes:
FactoryServer: [Upgrade] bLegacyPublicIncludePaths = false => Omits subfolders from public include paths to reduce compiler command line length. (Previously: true).
FactoryServer: [Upgrade] ShadowVariableWarningLevel = WarningLevel.Error => Treats shadowed variable warnings as errors. (Previously: WarningLevel.Warning).
FactoryServer: [Upgrade] PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs => Set in build.cs files to enables IWYU-style PCH model. See https://docs.unrealengine.com/en-US/Programming/BuildTools/UnrealBuildTool/IWYU/index.html. (Previously: PCHUsageMode.UseSharedPCHs).
FactoryServer: [Upgrade] bLegacyParentIncludePaths = false => Omits module parent folders from include paths to reduce compiler command line length. (Previously: true).
FactoryServer: [Upgrade] CppStandard = CppStandardVersion.Default => Updates C++ Standard to C++20 (Previously: CppStandardVersion.Cpp17).
FactoryServer: [Upgrade] WindowsPlatform.bStrictConformanceMode = true => Updates MSVC strict conformance mode to true (Previously: false).
FactoryServer: [Upgrade] Suppress this message by setting 'DefaultBuildSettings = BuildSettingsVersion.V4;' in FactoryServer.Target.cs, and explicitly overriding settings that differ from the new defaults.
FactoryServer: [Upgrade]
Determining max actions to execute in parallel (8 physical cores, 8 logical cores)
Executing up to 8 processes, one per physical core
------ Building 1236 action(s) started ------
Did the trick Just realized that it will fail... Because my dumbass forgot to put FRM in the mods folder To compile for shipping, this is my hacked together theory. Mircea, I am sure you can blow me out of the water faster can you can read it, but I do try. /home/chris/ue/Engine/Build/BatchFiles/RunUAT.sh -ScriptsForProject="/home/chris/SatisfactoryModLoader/FactoryGame.uproject" PackagePlugin -Project="/home/chris/SatisfactoryModLoader/FactoryGame.uproject" -dlcname=FicsitRemoteMonitoring -build -server -clientconfig=Shipping -serverconfig=Shipping -platform=Win64 -serverplatform=Linux+Win64 -nocompileeditor -installed -merge -utf8output So far, so good... just wanted to send along progress [259/1243] Link [x64] FactoryServer-WwiseProcessing-Win64-Shipping.lib Creating library z:/home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryServer/Shipping/WwiseProcessing/FactoryServer-WwiseProcessing-Win64-Shipping.lib and object z:/home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryServer/Shipping/WwiseProcessing/FactoryServer-WwiseProcessing-Win64-Shipping.exp [260/1243] Link [x64] FactoryServer-WwiseProcessing-Win64-Shipping.dll Creating library z:/home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryServer/Shipping/WwiseProcessing/FactoryServer-WwiseProcessing-Win64-Shipping.sup.lib and object z:/home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryServer/Shipping/WwiseProcessing/FactoryServer-WwiseProcessing-Win64-Shipping.sup.exp [
Mircea
Mircea3mo ago
You can run the alpakit UAT task as usual, yeah, just the .sh instead of the .bat, so assuming the rest of the command is correct, that should work
MinoDab492
MinoDab4923mo ago
I don’t have any system right now :( But yeah, once I get around to a new system I’ll take a look
Robb
Robb3mo ago
Best of luck, it felt wrong to leave you out of the ping so I still mentioned you, haha
MinoDab492
MinoDab4923mo ago
Yeah, that’s fair
DarthPorisius
DarthPorisius3mo ago
Something not covered in the WWisePatches, pretty confident it will come back to bite.
[59/943] Compile [x64] Module.AkAudio.4.cpp
[60/943] Compile [x64] Module.AkAudio.7.cpp
z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h(30): fatal error C1083: Cannot open include file: 'AkAcousticPortal.generated.h': No such file or directory
[61/943] Compile [x64] Module.AkAudio.9.cpp
[62/943] Compile [x64] Module.AkAudio.7.cpp
z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h(30): fatal error C1083: Cannot open include file: 'AkAcousticPortal.generated.h': No such file or directory
[63/943] Compile [x64] Module.AkAudio.6.cpp
[59/943] Compile [x64] Module.AkAudio.4.cpp
[60/943] Compile [x64] Module.AkAudio.7.cpp
z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h(30): fatal error C1083: Cannot open include file: 'AkAcousticPortal.generated.h': No such file or directory
[61/943] Compile [x64] Module.AkAudio.9.cpp
[62/943] Compile [x64] Module.AkAudio.7.cpp
z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h(30): fatal error C1083: Cannot open include file: 'AkAcousticPortal.generated.h': No such file or directory
[63/943] Compile [x64] Module.AkAudio.6.cpp
I'm just letting it cook
DarthPorisius
DarthPorisius3mo ago
First attempt failed, I did not get the logs as I was trying to get all the erros to line up then it decided to do other things... Here's my current attempt...
DarthPorisius
DarthPorisius3mo ago
Logs, I did mean the output file UE created...
Mircea
Mircea3mo ago
Does SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/FactoryGameSteam/Inc/AkAudio/UHT/AkAcousticPortal.generated.h exist? Or rather, it probably doesn't, where does that path stop existing AkAcousticPortal.h is untouched, so if anything UE just decided not to run UHT on it, which I don't think is possible unless it doesn't run on the whole module, which again, shouldn't be possible
DarthPorisius
DarthPorisius3mo ago
Sorry I can't give much more... otw to dinner and disaster (D&D)... XD
Mircea
Mircea3mo ago
That's fine, I'll be heading to bed soon too Ran make FactoryGameSteam-Win64-Shipping just now and it compiled fine But also unusual in your log that it still has 940 actions after already compiling almost everything in the first 2 runs Also successfully ran PackagePlugin now, and running it again UBT didn't recompile anything Maybe it's some weirdness with the VM setup? My UE and SML are on my shared NTFS partition, but if anything I'd expect NTFS to make things worse, not better
Rex
Rex3mo ago
NTFS = Not Trustable File System
Mircea
Mircea3mo ago
I mean, it managed not to corrupt itself after 3 or 4 forced shutdowns (thank you nvidia) in the same day, so it's already working better than I expected
DarthPorisius
DarthPorisius3mo ago
Maybe in the Win2000/2003 days, last filesystem issue i have had was xfs Possible maybe I should have redone the WWise after I fixed the wine issue. I dont know if it was trying to compile Win64 or not. These are problems other will run into, so I am glad I can creating future possible scenarios.
Mircea
Mircea3mo ago
Must have been Win64 because of the z: that msvc-wine missed in its log conversion But I don't think the wine env var issue is the reason, UBT skipped Win64 entirely that time, so the second attempt is as if it was building a fresh project
DarthPorisius
DarthPorisius3mo ago
Mircea, is it just me, or does when you attempt a rebuild, it acts like it does it all over again and not kick off where it left off/etc?
Mircea
Mircea3mo ago
It is just you
DarthPorisius
DarthPorisius3mo ago
That might be something to target then to understand all the strangeness... What flavor of linux are you messing with?
Mircea
Mircea3mo ago
Arch btw But honestly shouldn't matter Oh Are you sure you're using the correct branch of msvc-wine (i.e. my repo, ue-patches)? My patches include fixing up the files that list which source files each action depends on, so without that it will look for windows paths and mark as "unknown" status and recompile
DarthPorisius
DarthPorisius3mo ago
What about Archengius? XD /s I get it, Arch-Linux, couldn't resist... and yeah, I am pretty sure I made sure to copy and paste one line at a time
Mircea
Mircea3mo ago
I mean, I did not actually test that git command, I just assumed it clones the right thing
Rex
Rex3mo ago
-# CSS be like "I use Archengius btw"
DarthPorisius
DarthPorisius3mo ago
Just in case there was any doubt, not that I think there would, but full transparency and all... Yeah, I'm not git gud
chris@linuxbuildserver:~/SatisfactoryModLoader$ cd ../msvc-wine/
chris@linuxbuildserver:~/msvc-wine$ git pull
Already up to date.
chris@linuxbuildserver:~/msvc-wine$ git info
git: 'info' is not a git command. See 'git --help'.

The most similar commands are
init
mailinfo
chris@linuxbuildserver:~/msvc-wine$ git branch --show-current
ue-patches
chris@linuxbuildserver:~/msvc-wine$ git status
On branch ue-patches
Your branch is up to date with 'origin/ue-patches'.

Untracked files:
(use "git add <file>..." to include in what will be committed)
msvc_install_dir/

nothing added to commit but untracked files present (use "git add" to track)
chris@linuxbuildserver:~/msvc-wine$ git log
commit 23d26e4fdee55c5a16979aa3d2fce804487ed993 (HEAD -> ue-patches, origin/ue-patches)
Author: mircearoata <mircearoatapalade@gmail.com>
Date: Tue Jul 22 18:18:05 2025 +0200

fix: ignore /Yc argument for path normalization

commit b91a58fdba59b3e18e67beda5442572f2909c06a
Author: mircearoata <mircearoatapalade@gmail.com>
Date: Mon Mar 31 00:52:30 2025 +0200

wrappers: rewrite arguments in response files

commit 6a503308eae086b28a8939ad98c2d899b9b4a1b2
Author: mircearoata <mircearoatapalade@gmail.com>
Date: Mon Mar 31 00:51:49 2025 +0200

wrappers: post-process /sourceDependencies json
chris@linuxbuildserver:~/SatisfactoryModLoader$ cd ../msvc-wine/
chris@linuxbuildserver:~/msvc-wine$ git pull
Already up to date.
chris@linuxbuildserver:~/msvc-wine$ git info
git: 'info' is not a git command. See 'git --help'.

The most similar commands are
init
mailinfo
chris@linuxbuildserver:~/msvc-wine$ git branch --show-current
ue-patches
chris@linuxbuildserver:~/msvc-wine$ git status
On branch ue-patches
Your branch is up to date with 'origin/ue-patches'.

Untracked files:
(use "git add <file>..." to include in what will be committed)
msvc_install_dir/

nothing added to commit but untracked files present (use "git add" to track)
chris@linuxbuildserver:~/msvc-wine$ git log
commit 23d26e4fdee55c5a16979aa3d2fce804487ed993 (HEAD -> ue-patches, origin/ue-patches)
Author: mircearoata <mircearoatapalade@gmail.com>
Date: Tue Jul 22 18:18:05 2025 +0200

fix: ignore /Yc argument for path normalization

commit b91a58fdba59b3e18e67beda5442572f2909c06a
Author: mircearoata <mircearoatapalade@gmail.com>
Date: Mon Mar 31 00:52:30 2025 +0200

wrappers: rewrite arguments in response files

commit 6a503308eae086b28a8939ad98c2d899b9b4a1b2
Author: mircearoata <mircearoatapalade@gmail.com>
Date: Mon Mar 31 00:51:49 2025 +0200

wrappers: post-process /sourceDependencies json
FICSIT-Fred
FICSIT-Fred3mo ago
git: 'gud' is not a git command. See 'git --help' -# Responding to gitgud triggered by @DarthPorisius
Mircea
Mircea3mo ago
Mh, yeah, that looks right Check SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json All the paths there should be native, not wine/windows
DarthPorisius
DarthPorisius3mo ago
I figured, yeah, its there... I can get you the full file if you want.
chris@linuxbuildserver:~$ ls SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json
SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json
chris@linuxbuildserver:~$ cat SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json
{
"Version": "1.2",
"Data": {
"Source": "z:\\home\\chris\\satisfactorymodloader\\intermediate\\build\\win64\\x64\\factorygameegs\\shipping\\engine\\sharedpch.engine.cpp17.cpp",
"ProvidedModule": "",
"Includes": [
"z:\\home\\chris\\satisfactorymodloader\\intermediate\\build\\win64\\x64\\factorygameegs\\shipping\\engine\\sharedpch.engine.cpp17.h",
"z:\\home\\chris\\satisfactorymodloader\\intermediate\\build\\win64\\x64\\factorygameegs\\shipping\\engine\\shareddefinitions.engine.cpp17.h",
"z:\\home\\chris\\ue\\engine\\source\\runtime\\engine\\public\\enginesharedpch.h",
"z:\\home\\chris\\ue\\engine\\source\\runtime\\slate\\public\\slatesharedpch.h",
"z:\\home\\chris\\ue\\engine\\source\\runtime\\coreuobject\\public\\coreuobjectsharedpch.h"
...
chris@linuxbuildserver:~$ ls SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json
SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json
chris@linuxbuildserver:~$ cat SatisfactoryModLoader/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/Engine/SharedPCH.Engine.Cpp17.h.dep.json
{
"Version": "1.2",
"Data": {
"Source": "z:\\home\\chris\\satisfactorymodloader\\intermediate\\build\\win64\\x64\\factorygameegs\\shipping\\engine\\sharedpch.engine.cpp17.cpp",
"ProvidedModule": "",
"Includes": [
"z:\\home\\chris\\satisfactorymodloader\\intermediate\\build\\win64\\x64\\factorygameegs\\shipping\\engine\\sharedpch.engine.cpp17.h",
"z:\\home\\chris\\satisfactorymodloader\\intermediate\\build\\win64\\x64\\factorygameegs\\shipping\\engine\\shareddefinitions.engine.cpp17.h",
"z:\\home\\chris\\ue\\engine\\source\\runtime\\engine\\public\\enginesharedpch.h",
"z:\\home\\chris\\ue\\engine\\source\\runtime\\slate\\public\\slatesharedpch.h",
"z:\\home\\chris\\ue\\engine\\source\\runtime\\coreuobject\\public\\coreuobjectsharedpch.h"
...
Mircea
Mircea3mo ago
Well, fuck cat /home/chris/msvc-wine/msvc_install_dir/bin/x64/cl ls /home/chris/msvc-wine/msvc_install_dir/bin/process_sourcedependencies.exe
DarthPorisius
DarthPorisius3mo ago
cat /home/chris/msvc-wine/msvc_install_dir/bin/x64/cl File exists, attached
chris@linuxbuildserver:~$ ls /home/chris/msvc-wine/msvc_install_dir/bin/process_sourcedependencies.exe
ls: cannot access '/home/chris/msvc-wine/msvc_install_dir/bin/process_sourcedependencies.exe': No such file or directory
chris@linuxbuildserver:~$
chris@linuxbuildserver:~$ ls /home/chris/msvc-wine/msvc_install_dir/bin/process_sourcedependencies.exe
ls: cannot access '/home/chris/msvc-wine/msvc_install_dir/bin/process_sourcedependencies.exe': No such file or directory
chris@linuxbuildserver:~$
Mircea
Mircea3mo ago
Oh Do you still have the log from install.sh? Or just run it again, should be safe Yeah, that exe missing is what's causing the recompiling
DarthPorisius
DarthPorisius3mo ago
chris@linuxbuildserver:~/msvc-wine$ ./install.sh "msvc_install_dir"
Using SDK version 10.0.18362.0
Using MSVC version 14.34.31933
Build msvctricks ...
Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31948 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

msvctricks.cpp
Microsoft (R) Incremental Linker Version 14.34.31948.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:msvctricks.exe
msvctricks.obj
Build msvctricks done.
Build process_sourcedependencies ...
Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31948 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

process_sourcedependencies.cpp
Microsoft (R) Incremental Linker Version 14.34.31948.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:process_sourcedependencies.exe
process_sourcedependencies.obj
Build process_sourcedependencies done.
chris@linuxbuildserver:~/msvc-wine$ cd msvc_install_dir/bin
chris@linuxbuildserver:~/msvc-wine/msvc_install_dir/bin$ ls -la
total 392
drwxrwxr-x 6 chris chris 4096 Jul 24 13:33 .
drwxrwxr-x 8 chris chris 4096 Jul 24 13:33 ..
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 arm
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 arm64
-rwxrwxr-x 1 chris chris 90624 Jul 24 13:33 msvctricks.exe
-rwxrwxr-x 1 chris chris 282112 Jul 24 13:33 process_sourcedependencies.exe
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 x64
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 x86
chris@linuxbuildserver:~/msvc-wine/msvc_install_dir/bin$
chris@linuxbuildserver:~/msvc-wine$ ./install.sh "msvc_install_dir"
Using SDK version 10.0.18362.0
Using MSVC version 14.34.31933
Build msvctricks ...
Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31948 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

msvctricks.cpp
Microsoft (R) Incremental Linker Version 14.34.31948.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:msvctricks.exe
msvctricks.obj
Build msvctricks done.
Build process_sourcedependencies ...
Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31948 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

process_sourcedependencies.cpp
Microsoft (R) Incremental Linker Version 14.34.31948.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:process_sourcedependencies.exe
process_sourcedependencies.obj
Build process_sourcedependencies done.
chris@linuxbuildserver:~/msvc-wine$ cd msvc_install_dir/bin
chris@linuxbuildserver:~/msvc-wine/msvc_install_dir/bin$ ls -la
total 392
drwxrwxr-x 6 chris chris 4096 Jul 24 13:33 .
drwxrwxr-x 8 chris chris 4096 Jul 24 13:33 ..
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 arm
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 arm64
-rwxrwxr-x 1 chris chris 90624 Jul 24 13:33 msvctricks.exe
-rwxrwxr-x 1 chris chris 282112 Jul 24 13:33 process_sourcedependencies.exe
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 x64
drwxrwxr-x 2 chris chris 4096 Jul 24 13:33 x86
chris@linuxbuildserver:~/msvc-wine/msvc_install_dir/bin$
Mircea
Mircea3mo ago
what
DarthPorisius
DarthPorisius3mo ago
It wasn't there before, but now is...
No description
No description
Mircea
Mircea3mo ago
msvctricks wasn't there either, hmm
DarthPorisius
DarthPorisius3mo ago
Nope
Mircea
Mircea3mo ago
Welp, I guess we'll never know why that happened the first time
DarthPorisius
DarthPorisius3mo ago
Yeah, sorry, I shutdown my PC at night, so I lost the readout
Mircea
Mircea3mo ago
No worries. If it's actually a common issue we'll run into it again, otherwise let's just call it spontaneous file disappearance
DarthPorisius
DarthPorisius3mo ago
or as @Robb (Extra Busy) would say... #blameDarth, lol
SirDigby
SirDigby3mo ago
No description
DarthPorisius
DarthPorisius3mo ago
So what all does that mean? How much does it matter? A lot I assume, but a mega amount or not too horribly?
Mircea
Mircea3mo ago
For msvctricks it's technically not necessary, but helps with stdin, stdout and stderr, I think to avoid the wine stderr output And the sourcedependencies exe is my patch for converting the paths in those jsons Because microsoft decided that saving the paths as is wasn't enough, they also made them lowercase, so sed isn't enough Also, for the other issue, check FactoryGameEGS and FactoryServer too Because I think only 2 targets showed that error
DarthPorisius
DarthPorisius3mo ago
Waiting on FactoryGameSteam to finish
Mircea
Mircea3mo ago
The file should already exist
DarthPorisius
DarthPorisius3mo ago
Hmmm... still got the error on make FactoryGameSteam-Win64-Shipping, but the file does exist...
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/FactoryGameSteam/Inc/AkAudio/UHT/AkAcousticPortal.generated.h
-rw-rw-r-- 1 chris chris 7795 Jul 23 22:18 SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/FactoryGameSteam/Inc/AkAudio/UHT/AkAcousticPortal.generated.h
chris@linuxbuildserver:~$
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/FactoryGameSteam/Inc/AkAudio/UHT/AkAcousticPortal.generated.h
-rw-rw-r-- 1 chris chris 7795 Jul 23 22:18 SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/FactoryGameSteam/Inc/AkAudio/UHT/AkAcousticPortal.generated.h
chris@linuxbuildserver:~$
Mircea
Mircea3mo ago
I think you can add WindowsPlatform.bShowIncludes = true; in the .Target.cs to trace includes, but idk what that will print Or where it will print it
DarthPorisius
DarthPorisius3mo ago
Just to be sure, which .Target.cs? I want to think that it is EGS, Steam, and Server... but it could could just be FactoryGame.Target.cs
Mircea
Mircea3mo ago
Any of them The two launcher ones inherit FactoryGame I guess doing just the Steam one will result in the least stuff getting recompiled later
DarthPorisius
DarthPorisius3mo ago
Would appear... here's a sample of the output from running that same command again...
[3/309] Compile [x64] Module.WwiseUtils.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryGameSteam/Shipping/WwiseUtils/Definitions.WwiseUtils.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/Wwise/Stats/Global.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/Wwise/Stats/Global.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/Wwise/Stats/Memory.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/Wwise/Stats/Memory.h
Note: including file: /home/chris/ue/Engine/Source/Runtime/Core/Public/HAL/LowLevelMemStats.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/Wwise/Stats/NamedEvents.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/Wwise/Stats/NamedEvents.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/WwiseUnrealHelper.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/WwiseUnrealHelper.h
[3/309] Compile [x64] Module.WwiseUtils.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryGameSteam/Shipping/WwiseUtils/Definitions.WwiseUtils.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/Wwise/Stats/Global.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/Wwise/Stats/Global.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/Wwise/Stats/Memory.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/Wwise/Stats/Memory.h
Note: including file: /home/chris/ue/Engine/Source/Runtime/Core/Public/HAL/LowLevelMemStats.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/Wwise/Stats/NamedEvents.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/Wwise/Stats/NamedEvents.h
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Private/WwiseUnrealHelper.cpp
Note: including file: /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseUtils/Public/WwiseUnrealHelper.h
Running make doesn't log to UBT-.txt, which makes sense... I stopped it and switched over to RunUBT.sh that is writting to the log file
DarthPorisius
DarthPorisius3mo ago
Here's what I got... I'm going to go through it later, I just got some crap with deal with first.
Mircea
Mircea3mo ago
I'll probably look at it tomorrow, tried opening it on my phone and it fully crashed chrome Looks like fred wasn't happy with the zip either lol Maybe it's a coincidence, but both files on which it errors are the first (ish, SMB shows the .gen.cpp before the .generated.h) in the UHT dir And it finds other .generated.h in the same folder just fine Try (in the SML dir) wine cmd, dir Plugins/Wwise/Intermediate/Build/Win64/FactoryGameEGS/Inc/WwiseResourceLoader/UHT and see if WwiseAcousticTextureCookedData.generated.h is listed And I guess another thing to try would be wiping Plugins/Wwise/Intermediate/Build
Robb
Robb3mo ago
Do you think it would be viable to get all this inside a docker container or similar down the line?
Mircea
Mircea3mo ago
No, we cannot redistribute msvc Or wwise So all the docker image could contain is the engine, but that part is fine already as an archive
airbreather
airbreather3mo ago
container that includes a bunch of pre built scripts to guide you through the process of setting everything up? 🤠
Mircea
Mircea3mo ago
I mean, yeah, we could have just a Dockerfile for people to build and it should still be reproducible But then idk how to deal with the editor GUI in docker
airbreather
airbreather3mo ago
VSCode is working with a patch? I haven't had a great reason to try this myself before, but there's supposedly a nice streamlined way to get your local VSCode to interact with a different instance of VSCode running in a container with a first-party supported extension
Mircea
Mircea3mo ago
Yeah, it works the same as over ssh. Rider should work too But by editor I was referring to UE
Robb
Robb3mo ago
I mean for Linux CI builds of mods, editor UI from docker does sound hard yeah
Mircea
Mircea3mo ago
The main issue is still the storage space for CI For CI the install process is pretty much 4 commands And with an image you have to build on the CI, you'd have to build it on every run without cache, to make sure you get the latest engine and project, so you'd also be missing out on any CI caching when you run it on self-hosted runners (e.g. downloading msvc-wine and the engine to $TOOLCACHE/$tool/$version in github actions, so you only need to download them on engine upgrades)
Robb
Robb3mo ago
But you don't want latest engine and project all the time, you want a specific pinned version of engine and project. It should still be able to build stuff one version behind for exp for example
Mircea
Mircea3mo ago
Yes, you can still do that With the docker version you'd do that through build args
Robb
Robb3mo ago
I don't think I understand enough about CI caching to understand why this situation prevents using it
Mircea
Mircea3mo ago
If you pin the versions then yes, you can cache the built image But if we want to support unpinned versions, the links would just be "/releases/latest/whatever.zip", so docker will have no idea if something needs to be rebuilt
Robb
Robb3mo ago
Could we maintain some sort of record for what pinned versions go together, so it knows what to use and what needs to be rebuilt? Alternatively we can not offer unpinned versions... They seem to be a convenience at the cost of being less reproducible later and susceptible to breaking outside of your control
Mircea
Mircea3mo ago
The unpinned version would more be a side effect of building a dockerfile locally, instead of having a registry. Unless you pin through args you just go with latest, so the only image tag that makes sense is latest, and that's where the no cache thing comes from
DarthPorisius
DarthPorisius3mo ago
Well, probably didn't like the 25+ MB files in there if I had to guess I did wipe out the whole project before I did that build, and there is just something not right with the WWise part... z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h(30): fatal error C1083: Cannot open include file: 'AkAcousticPortal.generated.h': No such file or directory
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h
ls: cannot access 'SatisfactoryModLoaderPluginsWwiseSourceAkAudioClassesAkAcousticPortal.h': No such file or directory
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
-rwxrwxr-x 1 chris chris 13815 Jul 23 22:12 SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
chris@linuxbuildserver:~$
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader\Plugins\Wwise\Source\AkAudio\Classes\AkAcousticPortal.h
ls: cannot access 'SatisfactoryModLoaderPluginsWwiseSourceAkAudioClassesAkAcousticPortal.h': No such file or directory
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
-rwxrwxr-x 1 chris chris 13815 Jul 23 22:12 SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
chris@linuxbuildserver:~$
Sorry, today's b/s making me wanna dumb... but still, it doesn't exist
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.generated.h
ls: cannot access 'SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.generated.h': No such file or directory
chris@linuxbuildserver:~$
chris@linuxbuildserver:~$ ls -la SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.generated.h
ls: cannot access 'SatisfactoryModLoader/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.generated.h': No such file or directory
chris@linuxbuildserver:~$
Mircea
Mircea3mo ago
Oh Ah, wait no That's the wrong path Do this, just so it's consistent with msvc, under wine The .generated.h isn't in the Source dir, but deep under Intermediate
DarthPorisius
DarthPorisius3mo ago
Sorry, I missed that message... but this was interesting.
chris@linuxbuildserver:~/SatisfactoryModLoader$ wine cmd
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first. as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32:i386"
0048:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0048:err:winediag:nodrv_CreateWindow L"The explorer process failed to start."
0048:err:systray:initialize_systray Could not create tray window
Microsoft Windows 10.0.19043

Z:\home\chris\SatisfactoryModLoader>
chris@linuxbuildserver:~/SatisfactoryModLoader$ wine cmd
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first. as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32:i386"
0048:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0048:err:winediag:nodrv_CreateWindow L"The explorer process failed to start."
0048:err:systray:initialize_systray Could not create tray window
Microsoft Windows 10.0.19043

Z:\home\chris\SatisfactoryModLoader>
One sec to check that folder before I possibly nuke it. And I forgot about that...
Z:\home\chris\SatisfactoryModLoader>dir Plugins/Wwise/Intermediate/Build/Win64/FactoryGameEGS/Inc/WwiseResourceLoader/UHT
Volume in drive Z has no label.
Volume Serial Number is 5a00-0000

Directory of Z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Intermediate\Build\Win64\FactoryGameEGS\Inc\WwiseResourceLoader\UHT

07/23/2025 10:17 PM <DIR> .
07/23/2025 10:17 PM <DIR> ..
07/24/2025 04:05 PM 3,037 Timestamp
07/23/2025 10:17 PM 14,696 WwiseAcousticTextureCookedData.gen.cpp
07/23/2025 10:17 PM 1,421 WwiseAcousticTextureCookedData.generated.h
...
Z:\home\chris\SatisfactoryModLoader>dir Plugins/Wwise/Intermediate/Build/Win64/FactoryGameEGS/Inc/WwiseResourceLoader/UHT
Volume in drive Z has no label.
Volume Serial Number is 5a00-0000

Directory of Z:\home\chris\SatisfactoryModLoader\Plugins\Wwise\Intermediate\Build\Win64\FactoryGameEGS\Inc\WwiseResourceLoader\UHT

07/23/2025 10:17 PM <DIR> .
07/23/2025 10:17 PM <DIR> ..
07/24/2025 04:05 PM 3,037 Timestamp
07/23/2025 10:17 PM 14,696 WwiseAcousticTextureCookedData.gen.cpp
07/23/2025 10:17 PM 1,421 WwiseAcousticTextureCookedData.generated.h
...
Yeah, its there. All interesting
Mircea
Mircea3mo ago
Ok, it's even weirder Module.WwiseResourceLoader.1.cpp includes it successfully Module.WwiseResourceLoader.2.cpp does not The path isn't close to 260 characters either
DarthPorisius
DarthPorisius3mo ago
I didn't dump the full contents of that folder, if it matters Don't want ya to be confused Fixed the context, XD
Mircea
Mircea3mo ago
Try, in the linux terminal, in <ue_dir>/Engine/Source, <msvc_install_dir>/bin/x64/cl @"/home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/WwiseResourceLoader/Module.WwiseResourceLoader.2.cpp.obj.rsp"
DarthPorisius
DarthPorisius3mo ago
Mircea
Mircea3mo ago
At least it's consistent Try moving the WwiseAcousticThing include in /home/chris/SatisfactoryModLoader/Plugins/Wwise/Intermediate/Build/Win64/x64/FactoryGameEGS/Shipping/WwiseResourceLoader/Module.WwiseResourceLoader.2.cpp to the bottom of the include block And then run the cl command again
DarthPorisius
DarthPorisius3mo ago
Just verifying, you mean Line #11 #include /home/chris/SatisfactoryModLoader/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseAcousticTextureCookedData.cpp to the bottom of the include block, correct? I did that and ran the cl and got this:
Mircea
Mircea3mo ago
Ok, this makes no sense Everything that's not erroring is because it was already included earlier in the compilation Send WwiseResourceLoader.Shared.rsp from the same dir as the other .rsp And if, as it's quite likely, that doesn't show any immediate issue, edit ~/msvc-wine/msvc_install_dir/bin/x64/wine-msvc.sh, on line 23 change the rm -rf into an echo, and send the files in that dir printed at the end of compilation (they are the .rsp files preprocessed to convert paths to windows)
DarthPorisius
DarthPorisius3mo ago
This is the other .rsp you are referring to right? https://discord.com/channels/555424930502541343/1296257928038453349/1398316658103418941 The wine-msvc.sh change is done. Switching between this and doing POs is not a smart thing for me to be doing... lol
Mircea
Mircea3mo ago
It'll be in the same dir as that .cpp, yes. The .rsp I was referring to is the one in the cl command
DarthPorisius
DarthPorisius3mo ago
Sorry, I've been in a meeting for the last 2 hours. Pardon the desire to get back on track here... Send you mean through the cl command, or do you want me to upload it here?
Mircea
Mircea3mo ago
Upload it here
DarthPorisius
DarthPorisius3mo ago
I saw a few rm -rf to the /tmp folder
DarthPorisius
DarthPorisius3mo ago
chris@linuxbuildserver:~/ue/Engine/Source$ cd /tmp
chris@linuxbuildserver:/tmp$ touch file
chris@linuxbuildserver:/tmp$ ls -la
total 4
drwxrwxrwt 20 root root 440 Jul 25 14:18 .
drwxr-xr-x 19 root root 4096 Jul 23 13:41 ..
srwxrwxr-x 1 chris chris 0 Jul 25 11:01 code-64e5081a-dc3e-4cfa-816e-861d5752ca06
drwxrwxrwx 3 chris chris 60 Jul 23 14:22 .dotnet
-rw-rw-r-- 1 chris chris 0 Jul 25 14:18 file
drwxrwxrwt 2 root root 40 Jul 23 14:20 .font-unix
drwxrwxrwt 2 root root 40 Jul 23 14:20 .ICE-unix
drwxrwxrwx 3 chris chris 60 Jul 23 14:23 NuGetScratch
drwx------ 2 root root 40 Jul 23 14:20 snap-private-tmp
drwx------ 3 root root 60 Jul 23 14:20 systemd-private-05d4dd8ac99841eb8189315aedcb6e8b-systemd-logind.service-zztTF4
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.fNVsVgLTZv
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.lopcHXqmey
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.NHkn5mQ16p
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.pdfmqoCyIb
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.VuJUVgAVll
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.z8d7En079z
drwxrwxr-x 3 chris chris 60 Jul 23 14:22 UAT
drwxrwxr-x 3 chris chris 60 Jul 23 14:22 UnrealBuildTool
drwxrwxr-x 3 chris chris 60 Jul 23 14:23 VBCSCompiler
drwx------ 2 root root 40 Jul 23 14:20 vmware-root_762-2998936571
drwxrwxrwt 2 root root 40 Jul 23 14:20 .X11-unix
drwxrwxrwt 2 root root 40 Jul 23 14:20 .XIM-unix
chris@linuxbuildserver:/tmp$
chris@linuxbuildserver:~/ue/Engine/Source$ cd /tmp
chris@linuxbuildserver:/tmp$ touch file
chris@linuxbuildserver:/tmp$ ls -la
total 4
drwxrwxrwt 20 root root 440 Jul 25 14:18 .
drwxr-xr-x 19 root root 4096 Jul 23 13:41 ..
srwxrwxr-x 1 chris chris 0 Jul 25 11:01 code-64e5081a-dc3e-4cfa-816e-861d5752ca06
drwxrwxrwx 3 chris chris 60 Jul 23 14:22 .dotnet
-rw-rw-r-- 1 chris chris 0 Jul 25 14:18 file
drwxrwxrwt 2 root root 40 Jul 23 14:20 .font-unix
drwxrwxrwt 2 root root 40 Jul 23 14:20 .ICE-unix
drwxrwxrwx 3 chris chris 60 Jul 23 14:23 NuGetScratch
drwx------ 2 root root 40 Jul 23 14:20 snap-private-tmp
drwx------ 3 root root 60 Jul 23 14:20 systemd-private-05d4dd8ac99841eb8189315aedcb6e8b-systemd-logind.service-zztTF4
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.fNVsVgLTZv
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.lopcHXqmey
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.NHkn5mQ16p
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.pdfmqoCyIb
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.VuJUVgAVll
drwx------ 2 chris chris 80 Jul 25 14:16 tmp.z8d7En079z
drwxrwxr-x 3 chris chris 60 Jul 23 14:22 UAT
drwxrwxr-x 3 chris chris 60 Jul 23 14:22 UnrealBuildTool
drwxrwxr-x 3 chris chris 60 Jul 23 14:23 VBCSCompiler
drwx------ 2 root root 40 Jul 23 14:20 vmware-root_762-2998936571
drwxrwxrwt 2 root root 40 Jul 23 14:20 .X11-unix
drwxrwxrwt 2 root root 40 Jul 23 14:20 .XIM-unix
chris@linuxbuildserver:/tmp$
For time stamp references, it is 14:19 currently on July 25th 2025.
Mircea
Mircea3mo ago
The z8d one should have the rsp files we're looking for They won't actually have the .rsp extension, but those are the files
DarthPorisius
DarthPorisius3mo ago
Hope that makes sense to you... I can understand a bit, but not enough The module file looks like a command, but the other one... more params to the command in module?
Mircea
Mircea3mo ago
It all looks fine unfortunately Yeah, a rsp file is an argument list, and can include other rsp files (@file.rsp)
DarthPorisius
DarthPorisius3mo ago
the more you know... thanks Oh how I hate that... XD You don't know how much I want to say for you to pass your public key and I'll drop my geofence. just so you can tinker around but I don't want to burden you like that
Mircea
Mircea3mo ago
I'll try to reproduce it in a VM on my end
DarthPorisius
DarthPorisius3mo ago
Curious to try a different flavor personnally... I was thinking of doing it on debian and fedora/rhel so that the bases are covered. I know a few use arch/arch-based, since that is my least experience linux distro, I would leave it to others.
MinoDab492
MinoDab4923mo ago
I'll try to set up a VM to test this, is there a certain distro I should try?
DarthPorisius
DarthPorisius3mo ago
I'd say one you are comfortable with... I went with Debian because that is is what Ubuntu is based on and is the recommended operating system per Epic for Unreal. https://dev.epicgames.com/documentation/en-us/unreal-engine/linux-development-quickstart-for-unreal-engine
Epic Games Developer
Linux Development Quickstart for Unreal Engine | Unreal Engine 5.6 ...
Get started developing with Unreal Engine on Linux.
MinoDab492
MinoDab4923mo ago
Got off, I haven’t done too much with Linux, so I’ll check out Debian, or maybe Ubuntu
DarthPorisius
DarthPorisius3mo ago
If you are not experienced with Linux, Ubuntu/Debian based is the one I would recommend getting comfortable with first.
Mircea
Mircea3mo ago
Good news, I could reproduce it
No description
Mircea
Mircea3mo ago
Bad news, my laptop can barely run this VM lol, it keeps freezing if I leave it on for too long
Mircea
Mircea3mo ago
Hmmm
No description
Mircea
Mircea3mo ago
Buuut I get the same errors (?) on my PC and it compiles just fine I managed to reproduce the issue in a debian container, but not in an arch container Both mounting the same home So the only difference is the wine version (and any dependencies of that) Alright, confirmed, the issue occurs on wine-stable (aka 10.0) It might actually be this https://github.com/EpicGamesExt/WineResources/blob/main/docs/patches.md#ntdlldll-update-ntquerydirectoryfile-to-align-with-current-windows-behaviour Though that sounds like wine would say files exist when they don't, which is the opposite of what we have It doesn't occur on 10.3
Mircea
Mircea3mo ago
And on 10.2 I have no idea what's going on but nothing is compiling, it's just stuck on this
No description
Mircea
Mircea3mo ago
Wine 10.1 does run and has the same error So it might just be Epic's patch from 10.3 that fixes it Also occurs in 9.22
Rex
Rex3mo ago
So we need bloody wine then (bleeding edge) Or whatever non-stable is
Mircea
Mircea3mo ago
Development There's also staging which is like a nightly Wine's versioning is kinda weird, 10.x is basically 11.0-beta.x, .0 releases are the only ones considered "stable", and there's one .0 per year
DarthPorisius
DarthPorisius3mo ago
Gotta give it a few minutes, then it will start... unless you did, and I'll stfu, XD If only there were ssh pub keys and VMs half a world away from you... XD
Mircea
Mircea3mo ago
I gave it a quick lunch (maybe like 10) minutes But all other wine versions ran immediately
DarthPorisius
DarthPorisius3mo ago
I know i was concerned at first, then gave it a bit (not 10 min, was way shorter than that) and it ran
Mircea
Mircea3mo ago
Looked over repology.org and only Alpine (>=3.22) and Fedora (>=40) have wine >=10.3 in their repos (rolling release distros aside) And then wine themselves provide repos for Ubuntu, Debian, and Fedora
Safety Jim
Safety Jim3mo ago
@Borketh
Safety Jim
Reminder - #36782
oooo
Reminder set on
Borketh
Borketh3mo ago
unfortunately I just removed my GPU for RMA yesterday
DarthPorisius
DarthPorisius3mo ago
checks the test vm What GPU?
Borketh
Borketh3mo ago
I might be able to try to set things up to troubleshoot how an idiot would do it. I still have the igp 7800XT. kept losing communication with the rest of the computer at random times, possibly thermal expansion fucking up a defect on the card. it's not the PCIe slot or the motherboard, because it still happened when I changed motherboards
Mircea
Mircea3mo ago
So, uhh, I might have made a docker image with UE, and used it with VSCode, and it accidentally also did X11 forwarding to my laptop remotely. Couldn't get it to forward to the local machine for some reason
Robb
Robb3mo ago
"accidentally"
Mircea
Mircea3mo ago
I mean, it really was accidental, I ran the wrong command and UE popped up Then I spent an hour fighting docker and nvidia to get the GPU detected in the container (I had to use both supported methods at the same time, plus some more env vars) But forwarding such a graphics heavy app over 50ms latency is never going to work, I couldn't get past 45% loading, just the text updating was slowing everything down (this was the same when forwarding the app over ssh a week ago)
DarthPorisius
DarthPorisius3mo ago
I hope you're sleeping, but the comment of forwarding the app over ssh. Is that the X11 Forwarding or something else? My first thought, dumb as it was, was about the SSH work I did, but that's no different that what the SML, FRM, FIN, and I'll assume RP's, as I cannot see it, what they all do with the CI. There's no user interaction on that.
Mircea
Mircea3mo ago
X11 forwarding, yes I am guessing that VSCode connected to a remote machine over SSH, and then in that instance connected again to a dev container is still doing the same x11 forwarding over the initial ssh connection, which is why it worked on my initial setup, but not on the local setup But I kinda expected it to do something custom that would work regardless of what environment you're connected to, since it's all provided by the same extension
Mircea
Mircea3mo ago
Well, I guess we now have a SML devcontainer
No description
DarthPorisius
DarthPorisius3mo ago
Too soon to repeat myself... XD That dev container though, what all does it contain? WWise, UE, the SML project?
Mircea
Mircea3mo ago
UE, msvc, wwise-cli, and some scripts to make things easier The project gets mounted to the devcontainer
DarthPorisius
DarthPorisius3mo ago
You mad lad... Okay, all the necessities...
Mircea
Mircea3mo ago
You can then mount your Mods/Whatever on top from somewhere else (the equivalent of symlinking), or just have them in the Mods folder on the host, whichever way you prefer The same docker image should also be usable for CI, it's the same Dockerfile from yesterday, just with the x11 stuff added in the devcontainer config Still thinking whether this is the best way to do it (or even useful), because these additional mounts, and any other changes you might want to make to the devcontainer are tracked by git, so you'd constantly have a changed file you shouldn't commit. For example I had to comment out some config for x11 between local vscode using the devcontainer and vscode remote over ssh using the devcontainer (local needs some x11 files mounted, remote doesn't)
The Urban Goose
The Urban Goose3mo ago
and any other changes you might want to make to the devcontainer are tracked by git, so you'd constantly have a changed file you shouldn't commit.
Couldn't you just add that file or the folder it's kept in to .gitignore?
Rex
Rex3mo ago
Does it contain any lizard doggos for petting? /j
Mircea
Mircea3mo ago
No, because it would already be commited. I'm not aware of any way to force git to ignore files that are already tracked If you count the one in the editor splash
Rex
Rex3mo ago
When doing the asset toolkit, what I do is make a local commit removing the original Content folder. This way it stops being tracked. I then have to cherry-pick stuff between branches while using a worktree to make PRs, but at least it works
The Urban Goose
The Urban Goose3mo ago
I'm not too familiar with git, but from my searches it does seem to be possible to remove tracked files without deleting with the use of
git rm --cached
git rm --cached
(and some other steps.) I'm on mobile rn, so I can't look into it any further, but it definitely looks to be possible. (I searched for "git remove tracked file without deleting" on Google)
Mircea
Mircea3mo ago
Yeah, that's not doing what you think it does
Rex
Rex3mo ago
Why is that file committed in the first place?
Mircea
Mircea3mo ago
That does remove the file from git without deleting it from the system But what we want is for it to exist on git, and the system, just make git not care that the files are different Which, thinking about it now, doesn't make sense for the purpose of git
Rex
Rex3mo ago
Would it make sense to have a template file checked into Git, and copy it manually (or through some script) to the desired location?
Mircea
Mircea3mo ago
Because it can be part of the SML repo, how all devcontainer configs are part of the repo they serve
Rex
Rex3mo ago
Hmmmmm
Mircea
Mircea3mo ago
And the way it's configured right now, it assumes SML is the project it is on
Rex
Rex3mo ago
Can devcontainer configs have an additional, optional config file? Reminds me of the Directory.build.props stuff I see in Oxygen Not Included modding. The usual setups need you to specify the path to the game files, which is user-dependent. So in order to allow changing those settings without upsetting Git, Directory.build.props will load Directory.build.props.user (which is gitignored) if it exists, otherwise it will load Directory.build.props.default instead (which is also used as a template for people to make Directory.build.props.user)
Mircea
Mircea3mo ago
Maybe not optional, but they can do docker-compose files, and I know you can use multiple compose files in a single command, and they can override settings of the previous files
Rex
Rex3mo ago
Sounds like that would work
Mircea
Mircea3mo ago
But then again, besides the wine version issue, is a devcontainer useful for this?
Rex
Rex3mo ago
¯\_(ツ)_/¯
Robb
Robb3mo ago
I think there are 4 important questions to ask 1. does it make it easier for Windows devs 2. does it make it easier for Linux devs 3. performance cost of being in Docker? 4. does it make it easier for CI
The Urban Goose
The Urban Goose3mo ago
If it's a case of 'download the container, and run it (with a few setup steps)' it'd be very helpful for those of us who are new to Linux because of Windows 10 EOL, and not 100% confident with all the commands and utilities (like me for example)
Mircea
Mircea3mo ago
The image is still built locally, because of non redistributable stuff like msvc and ue But for the user it's just one button click in VSCode and presumably Rider too
Robb
Robb3mo ago
also secret q#5: how hard is it for us to maintain? and where does SMEI fit into all this (replaced?)
DarthPorisius
DarthPorisius3mo ago
I have years of Linux, just all headless... XD
Mircea
Mircea3mo ago
1. For windows it's definitely not easier, because it needs WSL2 and Docker Desktop (which needs Windows 10/11 Pro at least), and would also have a huge performance impact from the windows-WSL filesystem translation (unless you do the thing where the project is cloned in WSL), and from the fact that you'd be using the linux editor, running through WSL, and msvc, running through wine, running through WSL 2. Kinda? Yes, it is one button click ™, and yes, it means no opportunity for packages to be out of date (wine on debian/ubuntu...), but it also means less integration with the host than you'd normally have, like access to the filesystem for Alpakit copy to game, or file associations for the .uproject 3. On linux should ™ be close to none, though idk how docker and AMD gpus work, mine is nvidia and that seems to be the only one that's documented. Now whether that means AMD just works out of the box (passing /dev/dri through or something), or if it's not supported at all, I have no idea 4. Yes, but that is separate from this. The image should ™ perfectly fine to use for headless (i.e. UAT), but do we also want to provide it for devcontainer use, and if yes in what form (current, where you bring your own SML project, or with a bundled SML project and you only bring the mods, something else) 5. For the dockerfile itself, in theory not that hard, nothing major should have to change between the versions, the dockerfile is basically 1:1 with my "quick setup guide" from this thread. For the devcontainer, we can probably never know if there's something missing until someone runs into it
DarthPorisius
DarthPorisius3mo ago
Ref 4: I have an integrated gpu that is AMD on my daily driver's motherboard. It wouldn't be hard for me to switch over to it and see. One of the other drives has Nobara, a Fedora 42 based, that would almost put a 1 to 1 if you didn't want me to test WSL on that box. Hell, I've use M$ RDP Video driver to run UE not using WSL, if that provides anything useful to know.
Mircea
Mircea3mo ago
Depends on what iGPU it is, UE requires quite a bit of vulkan features that my intel iGPU (whatever the i7 8700k has) doesn't support
DarthPorisius
DarthPorisius3mo ago
No description
No description
Mircea
Mircea3mo ago
Does task manager show any info about the SKU of the GPU in there? Couldn't find anything online
DarthPorisius
DarthPorisius3mo ago
It doesn't, but this is from the AMD Software. I don't think that is what you are looking for.
No description
DarthPorisius
DarthPorisius3mo ago
Did all the digging I could between dealing with a network move and SQL storage issues today... nothing for the SKU My MB's Tech Specs, if that helps? https://www.asus.com/us/motherboards-components/motherboards/tuf-gaming/tuf-gaming-b650-plus-wifi/techspec/
No description
DarthPorisius
DarthPorisius3mo ago
All that just for a heh, let's see what happens test
BlueBeka
BlueBeka2mo ago
Anyone had any success compiling UE? I tried following these steps but I'm getting an error when running make https://github.com/satisfactorymodding/UnrealEngine/blob/5.3.2-CSS/Engine/Build/BatchFiles/Linux/README.md Here's the error
...
[1953/1959] Compile Module.NiagaraEditorWidgets.cpp
[1954/1959] Link (lld) libUnrealEditor-NiagaraEditorWidgets.so
[1955/1959] Compile Module.FontEditor.cpp
[1956/1959] Link (lld) libUnrealEditor-FontEditor.so
Total time in Parallel executor: 5992.77 seconds
Total execution time: 6002.98 seconds
make: *** [Makefile:1683: UnrealEditor] Error 6
...
[1953/1959] Compile Module.NiagaraEditorWidgets.cpp
[1954/1959] Link (lld) libUnrealEditor-NiagaraEditorWidgets.so
[1955/1959] Compile Module.FontEditor.cpp
[1956/1959] Link (lld) libUnrealEditor-FontEditor.so
Total time in Parallel executor: 5992.77 seconds
Total execution time: 6002.98 seconds
make: *** [Makefile:1683: UnrealEditor] Error 6
And if I try an just launch UE despite the error. it just crashes right away with Fatal error: [File:./Runtime/Core/Private/Modules/ModuleManager.cpp] [Line: 1167] Unable to read module manifest from '/home/rebec/.clones/UnrealEngine/Engine/Binaries/Linux/UnrealEditor.modules'. ...
Robb
Robb2mo ago
based on the messages you have sent elsewhere, I am guessing you are trying to compile UE by mistake, see the directions here: >modding
FICSIT-Fred
FICSIT-Fred2mo ago
You seem to have questions about modding. You should grab the Aspiring Modder role from Discord's role selection page (<id:customize>) and then read the docs carefully (https://docs.ficsit.app/satisfactory-modding/latest/index.html#_for_developers). If you still have questions after that, please go to #help-writing-mods!
Robb
Robb2mo ago
if you are trying to compile and package mods from linux, the releases page has a prebuilt linux release you can try to use mircea has uploaded one above, but it's still wip ah, you have a linux path in that message, it is probably the second one then try to follow these directions then: https://discord.com/channels/555424930502541343/1296257928038453349/1397550518691172413
BlueBeka
BlueBeka2mo ago
Yeah, I'm on linux and really don't want to have to boot up windows. Was hoping to set up the modding environment to compile a mod and then maybe look into doing full modding stuff
Robb
Robb2mo ago
you will be helping to blaze some new trails then, as you can see from message timestamps, being able to do so is very recent, and I think only Mircea and Darth have working copies hopefully mircea can chime in with some solutions to the build errors
Mircea
Mircea2mo ago
Run make again so it only tries to compile the stuff that failed so we can see what the error is But also since it took 2 hours to compile one target for you, you should use the prebuilt version that robb linked
BlueBeka
BlueBeka2mo ago
I'm not seeing a prebuilt version anywhere
Robb
Robb2mo ago
Or you can download an installed build (like how we currently provide for windows) - for now I've made one for testing, https://files.mircearoata.me/UE_Linux/, but we will have the CI build one for the github releases too
Mircea
Mircea2mo ago
It's in my wall of text "tutorial" here
BlueBeka
BlueBeka2mo ago
I switched to the 5.3.2-CSS-linux branch and am trying to make using it. I'll update you in 2 hours 😛 I've been out until recently so only just looking into this again. I tried recompiling but I'm getting the same error again. Here's the error I'm getting in the log file:
CompilationResultException: Error: OtherCompilationError
at UnrealBuildTool.ActionGraph.ExecuteActionsAsync(BuildConfiguration BuildConfiguration, List`1 ActionsToExecute, List`1 TargetDescriptors, ILogger Logger, IActionArtifactCache actionArtifactCache) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/System/ActionGraph.cs:line 417
at UnrealBuildTool.BuildMode.BuildAsync(TargetMakefile[] Makefiles, List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 801
at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 411
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 252
at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.cs:line 659
WriteFileIfChanged() wrote 0 changed files of 0 requested writes.
CompilationResultException: Error: OtherCompilationError
at UnrealBuildTool.ActionGraph.ExecuteActionsAsync(BuildConfiguration BuildConfiguration, List`1 ActionsToExecute, List`1 TargetDescriptors, ILogger Logger, IActionArtifactCache actionArtifactCache) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/System/ActionGraph.cs:line 417
at UnrealBuildTool.BuildMode.BuildAsync(TargetMakefile[] Makefiles, List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 801
at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 411
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 252
at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in /home/rebec/.clones/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.cs:line 659
WriteFileIfChanged() wrote 0 changed files of 0 requested writes.
I haven't managed to get the precompiled version downloaded yet as I keep getting network errors (but I'm still trying)
Rex
Rex2mo ago
Try using a download manager
BlueBeka
BlueBeka2mo ago
I got it downloaded now but my archive manager is stating that archive is damaged. I tried extracting it anyway and launching it but i just get a Critical error. Are there any checksums available for the downloads so I can check my files are correct?
Rex
Rex2mo ago
Don't think so, but you could check if sizes match
BlueBeka
BlueBeka2mo ago
they do seem to
Rex
Rex2mo ago
This is a 4-part Zstandard compressed thing so make sure you have zstd installed
BlueBeka
BlueBeka2mo ago
3x 2.0GB and 1x 1.9GB I'll try extracting it via the commandline
Rex
Rex2mo ago
@Mircea (Area Actions) @DarthPorisius Does any of you have checksums of the files in https://files.mircearoata.me/UE_Linux/? Would be good to add
Mircea
Mircea2mo ago
bf1d737313dd463f5c2a0978a305c61c6acf69e7c4867d9fab8ee5a735053a70 UE_Linux_no_debug.tar.zst.00
974049c9824cc9a2dfa18e20a35c9aac70b4a9bbf928ddaa5e0dfb87fa7202b8 UE_Linux_no_debug.tar.zst.01
149d475fee430d21d6c0938d0747c7eaf8cec5e4cfadf5d529dcaf8f93908ab5 UE_Linux_no_debug.tar.zst.02
b4b4a86929f2882a776073cd3e413580fcc000ec60744c3219650b36002304d3 UE_Linux_no_debug.tar.zst.03
bf1d737313dd463f5c2a0978a305c61c6acf69e7c4867d9fab8ee5a735053a70 UE_Linux_no_debug.tar.zst.00
974049c9824cc9a2dfa18e20a35c9aac70b4a9bbf928ddaa5e0dfb87fa7202b8 UE_Linux_no_debug.tar.zst.01
149d475fee430d21d6c0938d0747c7eaf8cec5e4cfadf5d529dcaf8f93908ab5 UE_Linux_no_debug.tar.zst.02
b4b4a86929f2882a776073cd3e413580fcc000ec60744c3219650b36002304d3 UE_Linux_no_debug.tar.zst.03
Also added a checksums file
Rex
Rex2mo ago
Thank you for the quick response!
BlueBeka
BlueBeka2mo ago
Everything seemed to extract properly this time.
Rex
Rex2mo ago
Interesting You can double check the checksums now that we have them
BlueBeka
BlueBeka2mo ago
The MD5 checksum are as follows: UE_Linux_no_debug.tar.zst.00 - 42127d479f673abf2cc83cc9a1862b09 UE_Linux_no_debug.tar.zst.01 - a0734f27df90331a1fd5442c22ce6193 UE_Linux_no_debug.tar.zst.02 - c929b98b54c4aac702a6173269a3e9dc UE_Linux_no_debug.tar.zst.03 - 05fddd0774584622beaa8af2ea99a4f2 Let me know if you want other hashing algs and this is the commandline command I used cat UE_Linux_no_debug.tar.zst* | zstd -d > UE_Linux_no_debug.tar followed by a normal tar extraction
Rex
Rex2mo ago
I meant checking the checksums against those Mircea provided
BlueBeka
BlueBeka2mo ago
ahhh, I'm blind. I completely missed their message All the checksums passed UE seems to be working fine, but shaders are taking forever to compile so I can't say for sure yet
Rex
Rex2mo ago
Ah yes, have a lizard doggo to pet: :doggo:
BlueBeka
BlueBeka2mo ago
nawww, thanks
BlueBeka
BlueBeka2mo ago
No description
Rex
Rex2mo ago
Is that Quixel Bridge? Hold on I might be hallucinating No, that seems to be it. Did you add this plugin manually? Which project is it trying to open?
BlueBeka
BlueBeka2mo ago
I haven't modify the files at all. I'm just running ./UnrealEngine
Rex
Rex2mo ago
Have you used UE before on this computer?
BlueBeka
BlueBeka2mo ago
Not on this computer
Rex
Rex2mo ago
Hmmm, okay On Windows I usually start UE by opening the .uproject for SatisfactoryModLoader Not sure if you can do something similar on Linux
BlueBeka
BlueBeka2mo ago
No description
Rex
Rex2mo ago
Okay, that means you first have to build the project Which is this (see pinned messages) Well, some section of that
BlueBeka
BlueBeka2mo ago
apparently sdk-version "10.0.18362" isn't valid. Should I used the closest version or the latest?
Rex
Rex2mo ago
Try the closest version that is newer than 10.0.18362
Mircea
Mircea2mo ago
Where do you get that? From UE or msvc-wine setup?
BlueBeka
BlueBeka2mo ago
I got most things built now. This is the latest error popup
No description
BlueBeka
BlueBeka2mo ago
Running this: ./vsdownload.py --accept-license --dest "$UE_WINE_MSVC" --msvc-version "17.4" --sdk-version "10.0.18362" so msvc-wine
./vsdownload.py --accept-license --dest "$UE_WINE_MSVC" --msvc-version "17.4" --sdk-version "10.0.18362"
Install packages for x64 host architecture
Fetching https://aka.ms/vs/17/release/channel
Got toplevel manifest for 17.14.11
Loaded installer manifest for 17.14.11
WinSDK version 10.0.18362 not found
Available versions:
10.0.19041
10.0.22621
10.0.26100
./vsdownload.py --accept-license --dest "$UE_WINE_MSVC" --msvc-version "17.4" --sdk-version "10.0.18362"
Install packages for x64 host architecture
Fetching https://aka.ms/vs/17/release/channel
Got toplevel manifest for 17.14.11
Loaded installer manifest for 17.14.11
WinSDK version 10.0.18362 not found
Available versions:
10.0.19041
10.0.22621
10.0.26100
Also, the Wwise integration step isn't working for me:
Integrating Wwise 2023.1.3.2970 to UE project...
Error: could not integrate Wwise: failed to get engine root: failed to find engine
Integrating Wwise 2023.1.3.2970 to UE project...
Error: could not integrate Wwise: failed to get engine root: failed to find engine
Mircea
Mircea2mo ago
Mh, I wonder if Microsoft updated stuff again and that SDK version is no longer listed in the VS installer for that to grab Make sure you ran the unrealversionselector register thing, and if you did, run it again and send the output of it
Mircea
Mircea2mo ago
If you're trying to launch UE itself that might be why, we don't build the engine with any plugins not in the game, because you can't use them and they just make the engine install larger. Normally Instead you should launch the .uproject, and if file associations didn't work (also from the versionselector register), you can run path/to/UnrealEditor path/to/FactoryGame.uproject
Rex
Rex2mo ago
But IIRC the Bridge and Megascans plugins are editor-time only
BlueBeka
BlueBeka2mo ago
Same error
Mircea
Mircea2mo ago
Is that running from the source build or the prebuilt?
BlueBeka
BlueBeka2mo ago
It's the prebuilt. But I copy pasted it into the source git repo
BlueBeka
BlueBeka2mo ago
Running the prebuilt copy I didn't move i get this
No description
Mircea
Mircea2mo ago
Check ~/.config/Epic/UnrealEngine/Install.ini, it should list a path for UE_5.3.2-CSS
BlueBeka
BlueBeka2mo ago
it lists both:
[Installations]
UE_5.3.2-CSS=/home/rebec/.clones/UnrealEngine
UE_5.3.2-CSS=/home/rebec/Downloads/UE_Linux_no_debug
[Installations]
UE_5.3.2-CSS=/home/rebec/.clones/UnrealEngine
UE_5.3.2-CSS=/home/rebec/Downloads/UE_Linux_no_debug
Mircea
Mircea2mo ago
Comment out one of them, idk how UE even managed to do that For this one, check <projectdir>/Saved/Logs/FactoryGame.log, hopefully says more about why it failed to load it I vaguely remember seeing that before, but I can't remember why it was happening
BlueBeka
BlueBeka2mo ago
it doesn't seem to have any new info:
SourceControl: Revision control is disabled
SourceControl: Revision control is disabled
SourceControl: Revision control is disabled
LogInit: Warning: Incompatible or missing module: Bridge
LogInit: Warning: Incompatible or missing module: MegascansPlugin
LogInit: Initializing SDL.
LogInit: Initialized SDL 2.24.0 revision: (compiled against 2.24.0)
LogInit: Using SDL video driver 'x11'
LogInit: Display metrics:
LogInit: PrimaryDisplayWidth: 2560
LogInit: PrimaryDisplayHeight: 1440
LogInit: PrimaryDisplayWorkAreaRect:
LogInit: Left=0, Top=0, Right=2560, Bottom=1388
LogInit: VirtualDisplayRect:
LogInit: Left=0, Top=0, Right=5120, Bottom=1440
LogInit: TitleSafePaddingSize: X=0.000 Y=0.000 Z=0.000 W=0.000
LogInit: ActionSafePaddingSize: X=0.000 Y=0.000 Z=0.000 W=0.000
LogInit: Number of monitors: 2
LogInit: Monitor 0
LogInit: Name: DP-1 27"
LogInit: ID: display0
LogInit: NativeWidth: 2560
LogInit: NativeHeight: 1440
LogInit: bIsPrimary: true
LogInit: Monitor 1
LogInit: Name: HDMI-A-1 85"
LogInit: ID: display1
LogInit: NativeWidth: 2560
LogInit: NativeHeight: 1440
LogInit: bIsPrimary: false
LogCore: Engine exit requested (reason: EngineExit() was called)
LogExit: Preparing to exit.
SourceControl: Revision control is disabled
SourceControl: Revision control is disabled
SourceControl: Revision control is disabled
LogInit: Warning: Incompatible or missing module: Bridge
LogInit: Warning: Incompatible or missing module: MegascansPlugin
LogInit: Initializing SDL.
LogInit: Initialized SDL 2.24.0 revision: (compiled against 2.24.0)
LogInit: Using SDL video driver 'x11'
LogInit: Display metrics:
LogInit: PrimaryDisplayWidth: 2560
LogInit: PrimaryDisplayHeight: 1440
LogInit: PrimaryDisplayWorkAreaRect:
LogInit: Left=0, Top=0, Right=2560, Bottom=1388
LogInit: VirtualDisplayRect:
LogInit: Left=0, Top=0, Right=5120, Bottom=1440
LogInit: TitleSafePaddingSize: X=0.000 Y=0.000 Z=0.000 W=0.000
LogInit: ActionSafePaddingSize: X=0.000 Y=0.000 Z=0.000 W=0.000
LogInit: Number of monitors: 2
LogInit: Monitor 0
LogInit: Name: DP-1 27"
LogInit: ID: display0
LogInit: NativeWidth: 2560
LogInit: NativeHeight: 1440
LogInit: bIsPrimary: true
LogInit: Monitor 1
LogInit: Name: HDMI-A-1 85"
LogInit: ID: display1
LogInit: NativeWidth: 2560
LogInit: NativeHeight: 1440
LogInit: bIsPrimary: false
LogCore: Engine exit requested (reason: EngineExit() was called)
LogExit: Preparing to exit.
Maybe I'll try deleting everything I've done so far and starting again to make sure I did things right
Rex
Rex2mo ago
Uhhhhhhhhhh
BlueBeka
BlueBeka2mo ago
So I seem to be having more success now. I can successful launch UE. I can't however open to project. So hopefuly this is the last error I need to fix:
No description
Mircea
Mircea2mo ago
Did you reclone the project too?
BlueBeka
BlueBeka2mo ago
yes
Mircea
Mircea2mo ago
Then send the FactoryGame.log again, the previous one seemed to be from the other error
Mircea
Mircea2mo ago
Mh, only logs the message box text From what I can tell reading UE code on my phone, it really should have logged something
BlueBeka
BlueBeka2mo ago
hmmm, that's weird. anywhere else the logs might be output to?
Mircea
Mircea2mo ago
Terminal probably, but nothing more than what's already logged to the file
BlueBeka
BlueBeka2mo ago
New day, time to try new random shit and hope it works
Mircea
Mircea2mo ago
Looking at this log again, you were launching the FactoryGame.uproject that is in the UE repo. That is just a stub, used to compile the engine with the correct filenames for dlls in the release. You should really keep the project and UE separate from each other, and, thinking about it now, placing the UE prebuilt in the same dir as the source build will break stuff too, because UE will keep finding that stub FactoryGame.uproject (UE can handle projects being in the same dir as the engine, that's their internal workflow and CSS's too probably, but that's because they all compile it from source and have some caching for it; we don't, because we can't set it up, and mod devs don't need to modify the engine code, and using source builds of the engine risk accidentally causing it to recompile when you only wanted to compile the project) And with that in mind, the error about the module failing to initialize makes way more sense, because in the project stub embedded in UE none of the modules have any code, so no init function
BlueBeka
BlueBeka2mo ago
Ahhh, that makes a lot of sense. I'll try things again later with this in mind. I've just set up a VM to see how that goes. I'm going out soon so won't be able to look into this much right now. Thanks for all your help, I really appreciate it.
Mircea
Mircea2mo ago
The VM might need GPU passthrough for the editor to launch
BlueBeka
BlueBeka2mo ago
Back on linux, make FactoryEditor is failing for me 🙁
Mircea
Mircea2mo ago
You're missing wwise Or maybe you already had wwise integrated, but you integrated it again and wwise-cli doesn't handle that properly If it's the latter, rm <project>/Plugins/Wwise* and run wwise-cli again I'll have to look into that later, I think I ran into that before. We have some patches that get applied to wwise, but the status of those is stored separately, and I think wwise-cli doesn't delete the folders when reintegrating
BlueBeka
BlueBeka2mo ago
I'll try starting clean again when I get home in a few hours. I still seem to be getting that same error after doing a clean set up. removing the wwise plugins and reintegrating didn't fix it.
Mircea
Mircea2mo ago
Are you sure you're on the linux-editor branch of SML?
BlueBeka
BlueBeka2mo ago
ahh yeah. that seems to be the issue. I checked out the linux branch for the engine source, but not for SML building now Damn, the build is still failing
Rex
Rex2mo ago
Those look like warnings?
BlueBeka
BlueBeka2mo ago
very last line make: *** [Makefile:52: FactoryEditor-Linux-Development] Error 6
Mircea
Mircea2mo ago
Run make again to see just the errors
Rex
Rex2mo ago
That means there was an error earlier
Mircea
Mircea2mo ago
Ah That's the chmod thing I failed at git (had it configured to ignore file mode because windows) when I made the installed build, so you need to make ispc.sh executable again
BlueBeka
BlueBeka2mo ago
Alright, building again every seems to have worked this time UE is compiling shaders now UE laucnhed successfully. WOOO Thanks for all you help and being so patient with me Hopefully last little thing. How do I compile mods for win64 instead of linux so I can test them in game? I'm off to bed now. But I'm super happy with getting this much done so far. Again thanks for all your help.
Rex
Rex2mo ago
Alpakit, from within the Unreal Editor
Mircea
Mircea2mo ago
Yes, from Alpakit, assuming you have the UE_WINE_MSVC env var correctly set and available to UE If you set it in /etc/environment, you'll need to either relog or reboot for it to take effect. Or source it in the terminal and launch UE from that terminal
BlueBeka
BlueBeka2mo ago
Can I compile using the make file? Or do I need to do it within UE
Robb
Robb2mo ago
compiling for development editor and shipping can probably done with the makefile? packaging a mod must be done from the UE editor
BlueBeka
BlueBeka2mo ago
Alright thanks.
Robb
Robb2mo ago
UE editor will compile shipping for you while packaging if needed
BlueBeka
BlueBeka2mo ago
I'm adding features to contentlib btw, just need to do testing before I send you a PR. Hopefully it all works and I can send a PR tonight sometime. I'm at a MTG qualifier right now though so can't do any testing right now.
Robb
Robb2mo ago
what features? haha
BlueBeka
BlueBeka2mo ago
Support for a schematic to unlock other schematics
Robb
Robb2mo ago
hope the MTG qualifier goes well, good luck
BlueBeka
BlueBeka2mo ago
Thanks 🙂. I got the round 1 bye so I guess we're already winning. I keep getting Platform Win64 is not a valid platform to build. Check that the SDK is installed properly. UE_WINE_MSVC is set.
$ echo "$UE_WINE_MSVC"
/home/rebec/msvc
$ echo "$UE_WINE_MSVC"
/home/rebec/msvc
I even tried setting it to /home/rebec/msvc/bin but that didn't fix things. Any ideas?
Mircea
Mircea2mo ago
Is that msvc dir the install dir or the source dir?
BlueBeka
BlueBeka2mo ago
install. source is at `/home/rebec/.clones/msvc-wine/
Mircea
Mircea2mo ago
Does it look like this
No description
BlueBeka
BlueBeka2mo ago
yes
BlueBeka
BlueBeka2mo ago
No description
Mircea
Mircea2mo ago
And you're launching UE from that same terminal?
BlueBeka
BlueBeka2mo ago
yes. just tried again explicitly and still same error
Mircea
Mircea2mo ago
Maybe it's the windows SDK version thing then Hmm, there's no maximum or banned version for the windows SDK
BlueBeka
BlueBeka2mo ago
I thought that might be the issue so I downloaded the 10.0.18362.1 from here https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/index-legacy And modify the vsdownload.py script to use it. But that hasn't resolved things
No longer serviced Windows SDK and emulators
This page provides links to some legacy SDKs and emulators that are no longer being serviced. See Windows SDK for the latest SDK.
BlueBeka
BlueBeka2mo ago
I tried building using this command
$ ~/UE-CSS/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -Build -Cook -Stage -Package -Run -Project=/home/rebec/dev/SatisfactoryModLoader/FactoryGame.uproject -Platform=Win64
$ ~/UE-CSS/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -Build -Cook -Stage -Package -Run -Project=/home/rebec/dev/SatisfactoryModLoader/FactoryGame.uproject -Platform=Win64
It gives the same output as through the UE gui
Mircea
Mircea2mo ago
Try ~/UE-CSS/Engine/Build/BatchFiles/RunUBT.sh FactoryGameEGS Win64 Shipping -Project="/home/rebec/dev/SatisfactoryModLoader/FactoryGame.uproject" -verbose, see if that logs something about why the windows SDK is missing You should see some Found Windows 10 SDK version and Found Universal CRT version
BlueBeka
BlueBeka2mo ago
Alright, will try when I get back home again from the log message create from that, it suggest running: RunUAT Turnkey -command=InstallSdk -platform=Win64 -BestAvailable This command resports to succed but doesn't do anything There's some interesting information here but I don't know what to do with it:
$ ~/UE-CSS/Engine/Build/BatchFiles/RunUAT.sh Turnkey -command=ListPlatforms -platform=Win64

Running AutomationTool...

Fixing inconsistent case in filenames.
Setting up Mono
Setting up bundled DotNet SDK
Start UAT Interactively: dotnet AutomationTool.dll Turnkey -command=ListPlatforms -platform=Win64
/home/rebec/UE-CSS/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet
Starting AutomationTool...
Parsing command line: Turnkey -command=ListPlatforms -platform=Win64
Initializing script modules...
Total script module initialization time: 0.16 s.
Executing commands...


Platform Information:
Platform: Win64
Installed Manual Sdk: MinVersion_Sdk=10.0.00000.0, MaxVersion_Sdk=10.9.99999.0, CurrentVersion_Sdk=, Version_AutoSdk=10.0.18362.0, CurrentVersion_AutoSdk=
Installed Auto Sdk:
Allowed Sdk Range: 10.0.00000.0-10.9.99999.0
Valid Manual SDK(s) Installed? False
Valid Auto SDK Installed? False
AllVersions Installed:
NO MATCHING FULL SDK FOUND!
Allowed Device Software Range: Min=10.0.18362.0, Max=
Devices:
NO DEVICES FOUND!


Cleaning Temp Paths...
BUILD SUCCESSFUL
AutomationTool executed for 0h 0m 0s
AutomationTool exiting with ExitCode=0 (Success)
$ ~/UE-CSS/Engine/Build/BatchFiles/RunUAT.sh Turnkey -command=ListPlatforms -platform=Win64

Running AutomationTool...

Fixing inconsistent case in filenames.
Setting up Mono
Setting up bundled DotNet SDK
Start UAT Interactively: dotnet AutomationTool.dll Turnkey -command=ListPlatforms -platform=Win64
/home/rebec/UE-CSS/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet
Starting AutomationTool...
Parsing command line: Turnkey -command=ListPlatforms -platform=Win64
Initializing script modules...
Total script module initialization time: 0.16 s.
Executing commands...


Platform Information:
Platform: Win64
Installed Manual Sdk: MinVersion_Sdk=10.0.00000.0, MaxVersion_Sdk=10.9.99999.0, CurrentVersion_Sdk=, Version_AutoSdk=10.0.18362.0, CurrentVersion_AutoSdk=
Installed Auto Sdk:
Allowed Sdk Range: 10.0.00000.0-10.9.99999.0
Valid Manual SDK(s) Installed? False
Valid Auto SDK Installed? False
AllVersions Installed:
NO MATCHING FULL SDK FOUND!
Allowed Device Software Range: Min=10.0.18362.0, Max=
Devices:
NO DEVICES FOUND!


Cleaning Temp Paths...
BUILD SUCCESSFUL
AutomationTool executed for 0h 0m 0s
AutomationTool exiting with ExitCode=0 (Success)
Rex
Rex2mo ago
Allowed Sdk Range: 10.0.00000.0-10.9.99999.0
Which SDK version do you have?
BlueBeka
BlueBeka2mo ago
10.0.18362.0
$ pwd
/home/rebec/msvc/Windows Kits/10/bin
$ ll
total 0
drwxr-xr-x 1 rebec rebec 124 Aug 9 18:53 ./
drwxr-xr-x 1 rebec rebec 318 Aug 9 18:54 ../
drwxr-xr-x 1 rebec rebec 12 Aug 9 18:53 10.0.14393.0/
drwxr-xr-x 1 rebec rebec 12 Aug 9 18:53 10.0.15063.0/
drwxr-xr-x 1 rebec rebec 12 Aug 9 18:53 10.0.16299.0/
drwxr-xr-x 1 rebec rebec 52 Aug 9 18:53 10.0.18362.0/
drwxr-xr-x 1 rebec rebec 30 Aug 9 18:53 arm/
drwxr-xr-x 1 rebec rebec 30 Aug 9 18:53 arm64/
drwxr-xr-x 1 rebec rebec 50 Aug 9 18:53 x64/
drwxr-xr-x 1 rebec rebec 50 Aug 9 18:53 x86/
$ pwd
/home/rebec/msvc/Windows Kits/10/bin
$ ll
total 0
drwxr-xr-x 1 rebec rebec 124 Aug 9 18:53 ./
drwxr-xr-x 1 rebec rebec 318 Aug 9 18:54 ../
drwxr-xr-x 1 rebec rebec 12 Aug 9 18:53 10.0.14393.0/
drwxr-xr-x 1 rebec rebec 12 Aug 9 18:53 10.0.15063.0/
drwxr-xr-x 1 rebec rebec 12 Aug 9 18:53 10.0.16299.0/
drwxr-xr-x 1 rebec rebec 52 Aug 9 18:53 10.0.18362.0/
drwxr-xr-x 1 rebec rebec 30 Aug 9 18:53 arm/
drwxr-xr-x 1 rebec rebec 30 Aug 9 18:53 arm64/
drwxr-xr-x 1 rebec rebec 50 Aug 9 18:53 x64/
drwxr-xr-x 1 rebec rebec 50 Aug 9 18:53 x86/
Rex
Rex2mo ago
Hmmm, okay, version shouldn't be an issue
Mircea
Mircea2mo ago
Was neither of these logged?
BlueBeka
BlueBeka2mo ago
$ ~/UE-CSS/Engine/Build/BatchFiles/RunUBT.sh FactoryGameEGS Win64 Shipping -Project="/home/rebec/dev/SatisfactoryModLoader/FactoryGame.uproject" -verbose
Setting up bundled DotNet SDK
Skipping UBT build...
Log file: /home/rebec/.config/Epic/UnrealBuildTool/Log.txt
Using 'git status' to determine working set for adaptive non-unity build (/home/rebec/dev/SatisfactoryModLoader).
Creating makefile for FactoryGameEGS (no existing makefile)
Total execution time: 0.57 seconds
Platform Win64 is not a valid platform to build. Check that the SDK is installed properly.
$ ~/UE-CSS/Engine/Build/BatchFiles/RunUBT.sh FactoryGameEGS Win64 Shipping -Project="/home/rebec/dev/SatisfactoryModLoader/FactoryGame.uproject" -verbose
Setting up bundled DotNet SDK
Skipping UBT build...
Log file: /home/rebec/.config/Epic/UnrealBuildTool/Log.txt
Using 'git status' to determine working set for adaptive non-unity build (/home/rebec/dev/SatisfactoryModLoader).
Creating makefile for FactoryGameEGS (no existing makefile)
Total execution time: 0.57 seconds
Platform Win64 is not a valid platform to build. Check that the SDK is installed properly.
Mircea
Mircea2mo ago
Copy Engine/Build/BatchFiles/BuildUBT.sh from a source build (or just download it from the repo), and add some logging (Logger.LogInformation) around https://github.com/satisfactorymodding/UnrealEngine/blob/5.3.2-CSS-linux/Engine/Source/Programs/UnrealBuildTool/Platform/Windows/MicrosoftPlatformSDK.cs#L272-L277, and maybe in the foreach below it too When you then run RunUBT.sh, it should call BuildUBT.sh too
Rex
Rex2mo ago
Where should that BuildUBT.sh file be copied?
Mircea
Mircea2mo ago
Same path It's just stripped in the installed build because normally you don't need to build UBT there
BlueBeka
BlueBeka2mo ago
Is this the sort of change to make to set if logging is working? Because I can't see any of these logs anywhere
No description
BlueBeka
BlueBeka2mo ago
No description
Mircea
Mircea2mo ago
I'd add another one in that if that checks the env var But uhhhh... that should definitely have logged something Maybe it only goes in the log file?
BlueBeka
BlueBeka2mo ago
ahhh shit. I edited the wrong file, that'll be why no logs
Mircea
Mircea2mo ago
Ah lol
BlueBeka
BlueBeka2mo ago
No description
No description
BlueBeka
BlueBeka2mo ago
so looks like the env value isn't being set
BlueBeka
BlueBeka2mo ago
No description
Mircea
Mircea2mo ago
Is that env var exported? I mean, I guess technically before it's exported it's just a shell variable?
BlueBeka
BlueBeka2mo ago
No 🤦‍♀️ it seems to have found the sdk now
Rex
Rex2mo ago
So, was the issue that UE_WINE_MSVC wasn't being passed to the script for some reason?
Mircea
Mircea2mo ago
So far yeah, the env var wasn't exported
Rex
Rex2mo ago
Okay, just trying to mentally note down others' snags to try to remember them in the future
BlueBeka
BlueBeka2mo ago
I had this
No description
BlueBeka
BlueBeka2mo ago
not this
No description
Rex
Rex2mo ago
Perfect, thank you! Where was this located, inside the shell's config file? (e.g. .bashrc)
BlueBeka
BlueBeka2mo ago
yeah, in my .zshrc I don't know how I didn't notice this mistake when putting the data in as on the lines above I'm exporting a bunch of other vars
Mircea
Mircea2mo ago
Re this, added another msvc-wine patch that allows specifying historical manifest versions, so adding --channel release.ltsc.17.4 (or release.ltsc.17.10, both should theoretically work, but since we use MSVC 17.4 might as well use its ltsc) should fix the issue
BlueBeka
BlueBeka2mo ago
I'm running into an error trying to compile ContentLib
No description
FICSIT-Fred
FICSIT-Fred2mo ago
Note: the "exit code 6" message which appears in build logs is very vague - it indicates that building C++ failed for some other reason. If you'd like help with this error, make sure that you also share the rest of the build output as described here (or from the Alpakit Log tab if you're getting this at mod package time) https://docs.ficsit.app/satisfactory-modding/latest/Development/BeginnersGuide/project_setup.html#_the_command_exited_with_code_6 -# Responding to exitcode6moreinfoneeded triggered by @BlueBeka
BlueBeka
BlueBeka2mo ago
The mod does still seem to work despite the error though... Trying to set up the UEAssetToolkit, but I can't regenerate the project files. Running: ~/UE-CSS/Engine/Build/BatchFiles/Linux/Build.sh -projectfiles -project=/home/rebec/dev/SatisfactoryModLoader/FactoryGame.uproject -game -VSCode results in: /home/rebec/dev/SatisfactoryModLoader/Mods/UEAssetToolkit/AssetDumper/Source/AssetDumper/AssetDumper.Build.cs(8,7): error CS0246: The type or namespace name 'Tools' could not be found (are you missing a using directive or an assembly reference?)
Mircea
Mircea2mo ago
You have an old version of the asset dumper, probably the wrong branch But also, I'm pretty sure the asset dumper fails to compile for linux right now
BlueBeka
BlueBeka2mo ago
I'm on the dev branch I switched over to windows and got the same issue. I commented out the offending code in the AssetDumper.Build.cs file. I can now get past that step but the compiling fails around 400/425 actions complete
BlueBeka
BlueBeka2mo ago
Oh woops. I am on the main branch XD
Rex
Rex2mo ago
Can you please change the default branch in your fork to dev? It's a recurring issue...
Robb
Robb2mo ago
Not sure if you have tried it out yet Goose Also discord mobile moment it won't let me ping you haha
The Urban Goose
The Urban Goose2mo ago
All good, I'm here lol Yeah, I'm gonna get on that soon, I wanna get the mods updated as well. I'm currently on holiday, until Sunday, so no PC, but once I'm home I'll have time to get on it
UserError03
UserError032mo ago
I have a 9800X3D / 7900XT arch setup, but even after reading this whole thread I’m not sure I could attempt testing this without a dummy guide as I’d be brand new to game modding specifically. I do have some small experience in development though including using docker. So I could at least be an installation test / performance dummy.
Mircea
Mircea2mo ago
The guide is this
UserError03
UserError032mo ago
Alright, I’ll try giving it a shot sometime this weekend
Mircea
Mircea2mo ago
After that setup everything else is the same as on Windows, so you can read the docs (https://docs.ficsit.app/satisfactory-modding/latest/Development/BeginnersGuide/index.html), skipping the Installing Dependencies and Project Setup sections Also, since the message you replied was in the context of a devcontainer image, I can also send the devcontainer config here if you want to try that (which replaces the engine setup part of my guide, so you just need to get the project and add the devcontainer config to it)
UserError03
UserError032mo ago
Is the intended purpose of the container to be a turnkey solution for other modders or is it just related to infrastructure you maintain?
Mircea
Mircea2mo ago
Well... TBD... it can be both a turnkey solution for linux modding and just an image which can be used for build runners (both for us, and for modders if they want it). But to me at least the benefit of skipping the MSVC setup (which is realistically the only big difference between the Windows and Linux setup, but tbh it's easier than the Windows way) doesn't necessarily outweigh the disconnect between your desktop environment and the engine (no file associations, needing to mount the game dir in the container, which requires changes to the devcontainer config, other devcontainer config changes to get the editor GUI based on your environment, and probably other things I'm forgetting)
UserError03
UserError032mo ago
Alright, I’d be willing to try it out then
Mircea
Mircea2mo ago
Not sure exactly what state it's in right now, I think I was testing it with X11 forwarding, so you'll have to uncomment some lines in the devcontainer.json to get the editor GUI. You'll probably also have to change the nvidia stuff in the runArgs
The Urban Goose
The Urban Goose2mo ago
We are so back
No description
The Urban Goose
The Urban Goose2mo ago
Some (small) roadblocks I encountered while setting all this up. None of these were a big deal, but if editor setup on Linux is to be added to the docs, these may be useful to have some sort of info about in the docs: - GitHub SSH wasn't set up, so couldn't clone the project. I needed to generate a SSH key, add that to my GitHub profile, and set up ~/.ssh/config for github. This took me a while to figure out. - The commands to set up Rider don't accept the ~/ shorthand for your user directory in the project folder, so you have to write out /home/[user]/ - dos2unix isn't installed by default, so the makefile couldn't run. I just installed the dos2unix package to fix this. Other than that setup was pretty painless, just followed the guide and it worked
Rex
Rex2mo ago
w.r.t. GitHub SSH, you should only need it if you wanted to clone the private UnrealEngine repo (which is huge btw) Or if you wanted to clone a repo to contribute back to it
The Urban Goose
The Urban Goose2mo ago
As far as I could tell, it's cause the command specified by Mircea was git clone --branch ue-patches git@github.com:mircearoata/msvc-wine.git specifically the git@github.com bit
Rex
Rex2mo ago
Oh, that
The Urban Goose
The Urban Goose2mo ago
Yeah
Mircea
Mircea2mo ago
We can swap that for an https link for the docs
Rex
Rex2mo ago
Was about to say It's a public repo
Mircea
Mircea2mo ago
I just copy pasted the URL from git remote get-url origin
Rex
Rex2mo ago
You can use the URL from https://github.com/mircearoata/msvc-wine: https://github.com/mircearoata/msvc-wine.git
Rex
Rex2mo ago
No description
The Urban Goose
The Urban Goose2mo ago
All good, I managed to work it out. I honestly don't mind, this way I learned something new. That said, I do agree that the https link is the way to go for the docs
Mircea
Mircea2mo ago
Updated the pinned message with both the https git link and made a proper prerequisites list Btw, are the UE windows also not properly getting foreground for you too?
The Urban Goose
The Urban Goose2mo ago
In what way?
Mircea
Mircea2mo ago
Not sure if it's always or only when a new tab is added and they would be brought to foreground Open a blueprint, focus the main UE window, open another blueprint
The Urban Goose
The Urban Goose2mo ago
Oh yeah, I see what you mean Yeah, the window only pops up in the foreground when initially opened. When I open something else it opens a new tab in the same window but keeps it in the background
Mircea
Mircea2mo ago
Also when Alpakit is running, I think the notification in the bottom right somehow keeps stealing foreground too, I can't get the blueprint windows to show at all while that's running
The Urban Goose
The Urban Goose2mo ago
Haven't got that far, I'm still working on getting my mods in the project It's been over half a year since I last worked with UE Also, I am not certain I actually pushed every change I made to my mods (especially one that I never released), so I'm gonna just copy the folders over Right, that was it, I hadn't ticked show plugin content in the content browser It's complaining that the Wwise GeneratedSoundBanks folder doesn't seem to be set up correctly, any ideas? It seems to be working fine, and I'm not working with Audio, but still probably something that should be resolved
Mircea
Mircea2mo ago
That's a common wwise thing, we should just commit the files that it keeps generating As for actually working with wwise on linux, I have not looked into that, and wwise-cli only downloads the required SDK, not the wwise studio or whatever it's called I assume that if wwise-cli can download it, it should run fine under wine
The Urban Goose
The Urban Goose2mo ago
👍 Also yeah, it does that for me too. Could it have to do with the patches you applied for UE's window spawning? (Last of the potential issues you listed)
The Urban Goose
The Urban Goose2mo ago
Big autosave
No description
The Urban Goose
The Urban Goose2mo ago
Found another bug: When dragging off of a blueprint node you can only type in the search bar initially. If I untick "context sensitive" I can no longer type in the search bar. Ah, ok, worse than that. If I just right click in the BP editor, I am also unable to add nodes, so I can't easily add some nodes Again, something that can be worked around, but still a bit annoying
Rex
Rex2mo ago
Do you have a high-resolution or high-DPI monitor?
The Urban Goose
The Urban Goose2mo ago
Yeah, 1440p ultrawide as my main monitor
Rex
Rex2mo ago
I like to dock the Alpakit windows to the main editor so that they're tabs in there, not sure if it matters
The Urban Goose
The Urban Goose2mo ago
Cool but likely unintentional thing this did: I imported my old project files, and when I used the reimport function for meshes it actually opened the original file path the file was in, but the Linux equivalent. I had the file stored in /Documents/Blender/[etc...] on my Windows system, and when I clicked reimport it opened ~/Documents/Blender/[etc...]
Rex
Rex2mo ago
The concept of "home" directory applies to both OSes
The Urban Goose
The Urban Goose2mo ago
Yeah, but it's still neat that it did it that way, I just wasn't expecting that
Rex
Rex2mo ago
So, if anyone makes a mistake and tries adding a C++ class through UE, the editor will try compiling it and will basically shit a brick on itself, refusing to start up. What you want to do is delete the Binaries and Intermediate folders of the mod you added the C++ class to (or Build and Intermediates if you mistakenly added the C++ class to FactoryGame itself), then compile.
The Urban Goose
The Urban Goose2mo ago
Yes Yes it does
BlueBeka
BlueBeka2mo ago
How do you go about Generating Sound Banks on linux?
Mircea
Mircea2mo ago
You don't, at the moment I will look into running wwise on linux after I get back home on Monday But if you're just referring to the wwise popup in UE, just ignore it. Unless you're actively trying to do something with audio in your mods, you don't need wwise
BlueBeka
BlueBeka2mo ago
I copy and pasted the ones generated on a windows machine and that made the popup go away, but there's still a log message about them not existing for linux (only mac and windows seem to have been generated)
Mircea
Mircea2mo ago
Apparently you need to add the linux platform in wwise, it's not enabled by default
No description
No description
BlueBeka
BlueBeka2mo ago
Ahh, next time I'm on windows I try doing this
The Urban Goose
I was trying to run the asset dumper, and I'm getting an error while rebuilding the project. I think the last time I had an error like this it had to do with missing headers in the linux branch of the SML project, but I'm not sure, and wouldn't know how to fix that myself anyway.
No description
Mircea
Mircea5w ago
You probably have the master branch of the asset dumper, instead of dev Before you pull dev though, let me push the changes to make it compile on linux (for the editor)
The Urban Goose
I did in fact clone main, that's my bad lol
Mircea
Mircea5w ago
Huh? I didn't touch that file github
No description
Mircea
Mircea5w ago
Nvm I did actually touch it, I updated fbxsdk to the one UE uses, because I grabbed the linux library build from it Ok, pushed now
The Urban Goose
👍 built
The Urban Goose
Getting an error 6 when trying to package the Asset Dumper as a mod.
FICSIT-Fred
FICSIT-Fred5w ago
Note: the "exit code 6" message which appears in build logs is very vague - it indicates that building C++ failed for some other reason. If you'd like help with this error, make sure that you also share the rest of the build output as described here (or from the Alpakit Log tab if you're getting this at mod package time) https://docs.ficsit.app/satisfactory-modding/latest/Development/BeginnersGuide/project_setup.html#_the_command_exited_with_code_6 -# Responding to exitcode6moreinfoneeded triggered by @The Urban Goose
The Urban Goose
Lots of "[filename].h is not exporting types so we are ignoring the dependency"
Mircea
Mircea5w ago
I may or may not have forgot to test building for windows after the changes
The Urban Goose
lmao
Mircea
Mircea5w ago
Pushed the fix
Rex
Rex5w ago
#blamemircea #praisemircea
The Urban Goose
Works now, thank you 👍 Hmm Ok, so Alpakit can package the asset dumper, but the game crashes with it installed wait, I'm being dumb, just check the log
FICSIT-Fred
FICSIT-Fred5w ago
It has been attached to this message. -# Responding to Crash found in FactoryGame.log triggered by @The Urban Goose
The Urban Goose
Ah, wait, I forgot about the bit in the docs where it tells you to run the game with specific commands Yeah, that worked, that was entirely my bad (also adding the launch commands to the Steam commands seems to work fine, no need to launch through the commandline)
Rex
Rex5w ago
Going through command-line is useful to avoid having to change the Steam launch args twice But yes
The Urban Goose
twice? You mean once before, and once you're done?
Rex
Rex5w ago
Once to use the asset dumping magic args, once to go back to your regular args
The Urban Goose
Yeah, fair I... dunno how I'll run the powershell script
Rex
Rex5w ago
Make files manually then run command from terminal?
Mircea
Mircea5w ago
I mean, you can install powershell on linux But for asset dumping you don't need any powershell script
The Urban Goose
But for asset generating I do
Mircea
Mircea5w ago
Ah, we do have one indeed
The Urban Goose
Also yeah, I knew that, wasn't sure if that'd work. It does work though, so...
The Urban Goose
Gonna let that do it's thing
Mircea
Mircea5w ago
Some updates on UE bugs: * the notification thing and window not being brought to front thing were indeed because of my patch, and it turns out my patch shouldn't exist, because apparently UE expects all windows to be a child of the main one (on windows too), so when you click on any window on the taskbar (on windows) it brings the whole thing to front. The actual issue I was noticing was that on linux when you click on the thing in the taskbar it also raises windows that were previously minimized, but not having the windows show up in the taskbar does also make it harder to unminimize them * for the blueprint node search menu, it's because of (x)wayland, if I enable legacy x11 read keystrokes always in the plasma settings it works, so it means somehow the popup is considered a separate app
The Urban Goose
so it means somehow the popup is considered a separate app
lmao, of course it is And yeah, honestly the BP search thing has been the biggest annoyance so far. I've also noticed that when I try to drag a BP node, or try to resize one of the docked tabs in one of the editor window, sometimes it just grabs the whole window instead and moves that. Haven't figured out a reliable way of making that happen though.
Mircea
Mircea5w ago
Happened to me now too I tried to reproduce it with modifier keys, but that wasn't it But I did find out that alt+click on a pin clears its connections, and shift or ctrl drag from a pin moves that end of the connection
The Urban Goose
I will try this out
Mircea
Mircea5w ago
Turning the window type from POPUP_MENU to UTILITY seems to fix it, but I have no idea what the implications are. As far as I can tell, the only difference is that it doesn't get marked as override-redirect, whatever that means (there's an impressively low amount of documentation even remotely references it). It might mean the popup becomes a window of its own on tiling window managers, instead of being allowed to be positioned by the app That's the thing I mentioned as a workaroud too, I happened to run into that wiki when I was searching for something else, and it looks like it's a known issue
The Urban Goose
Ah, I had already set it to this
No description
Mircea
Mircea5w ago
Yeah, I had it set to that too, and was confused by the fact that it was receiving all keyboard events except latin characters
The Urban Goose
Yeah, turns out I can type in the right click field, if I hold ALT That's... curious and feels unintended... Yeah, for me it only accepts inputs if I hold ALT
Mircea
Mircea5w ago
Then spent almost all of yesterday trying to attach a debugger to kwin to see why the window is not considered part of the same app, I could only see that it's an unmanaged window (whatever that means) in the kwin debug menu. And today I just gave up and changed the window type and it turns out that fixed it I guess it's time for me to get stuck in i3 Worked fine But I think UE in general doesn't support i3/tiling WMs, because it kept teleporting my cursor to another monitor when I clicked on anything
Rex
Rex4w ago
UE wants an i5 or an i7 it seems /s :wonke:
Mircea
Mircea4w ago
Found the reason for the first bug: it's also a plasma-wayland-only (I only tested gnome and plasma, and confirmed in their source code) thing, and it's two issues combined: * plasma decided that all transient (read has a parent) windows should be skipped in the taskbar. They apparently intended to do that on x11 too, but because UE sets the transient property after the window creation, plasma doesn't catch that. But on wayland it actually listens for changes in the window's parent, so it manages to ignore the window * they also bring a transient window to the front when clicking a parent window in the taskbar, which makes sense in the case of dialogs, but not here. They also again intended to have that for x11 too, but doesn't work on UE for the same reason UE does use the transient flag as intended, to keep the child window above the parent, and to minimize the child if the parent is minimized, so it's just plasma's decision to skip transient windows that's the issue Raising the transient window (supposedly a dialog) also breaks if the dialog is not the first child window, and the only way to find it is by alt-tab So I guess this is just some plasma-wayland weirdness we'll have to live with
Robb
Robb4w ago
coming in 20xx: plasma-wayland mod to make UE editor work right /s glad you were able to track down that weirdness
Mircea
Mircea4w ago
I mean, the fix is commenting out a few lines, and I tested it and it works, but there's probably a reason why they did that
Robb
Robb4w ago
with the way window managers (?) are packaged, would it be useful to ship that patched version with our container? I don't know which side would be responsible for the gui when using the container you mentioned in the past
Mircea
Mircea4w ago
The window manager is responsible for it, and there's only one* window manager running in a session *You can have nested wayland compositors and stuff, but regarding your question you're not going to run another window manager because that would then be its own separate thing from your desktop environment, so what I think would happen is basically a VM-like window with an entire desktop environment (that is assuming kwin can run nested) Technically, it's not the window manager that would need to be patched, but plasma-workspace, which provides the taskbar, but that's still linked to the main system, so if there was a patched one in the container, the only way to display it would be to run a full plasma shell
Robb
Robb4w ago
satisfactory modding nixos variant coming... as soon as Vilsol would want to make it, I guess
Mircea
Mircea4w ago
Apparently you can run it nested, and yes it looks like a VM
No description
Rex
Rex4w ago
Just use funchook
Robb
Robb2w ago
Any news on this topic?
Mircea
Mircea2w ago
Which aspect of it specifically? I've found and fixed an issue with msvc-wine when multiple drives are configured in wine I've fixed the hot reload crash (wasn't linux specific, but we just haven't used hot reload since live coding was added) I'm now looking into why UBT doesn't seem to recompile the modules after a hot reload (and as a result leaves the project in an unlaunchable state) And also unrelated to linux but I found a way to clean up the engine AccessTransformers modified patch
Robb
Robb2w ago
Anything, just noticed there has been no messages for 2 weeks and figured it was not a case of "no news is good news" I still actively avoid live coding since it seems to make broken blueprint types for me relatively often
Rex
Rex2w ago
Did you merge the linux-editor branch?
Mircea
Mircea2w ago
Not yet Will do when my PC has internet again (I connected my PC directly to my laptop over ethernet to make an image of the laptop before wiping it and installing win 11)
Mircea
Mircea5d ago
Now, I know the goal was just to develop mods on linux, but just one UE patch later, here we are building the editor itself for windows on linux
No description
Mircea
Mircea4d ago
Some more fixes later
No description
Mircea
Mircea4d ago
Not sure why it's missing the icon Built with Github Actions (act) on linux
MinoDab492
MinoDab4923d ago
Oh? Does this mean we’re getting close to compiling mods for Windows from Linux?
Mircea
Mircea3d ago
That was already done ™ a couple weeks back, check the pins What this means is Vilsol can get rid of the windows VM that builds the engine, which keeps breaking because it's windows
Robb
Robb3d ago
I am still a little worried about doing that because it moves "only Vilsol can fix this" to "only Mircea can fix this" and you're both busy people. How stable do you expect this to be once it's set up?
Mircea
Mircea3d ago
Very The only way to break it would be engine updates that hardcode more windows stuff

Did you find this page helpful?