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
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
The "big progress" was installing msvc-wine
for building UE or other things?
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
tried running UE through wine but i dont think i can bypass this

And the mere thought of running VS through wine made my entire body shudder in pain.
That would be the goal of msvc-wine
Or, at least the compiler, if not the IDE
Yeah, I was thinking about VS
I'm attempting this
At the moment, I'm going through VirtualBox with a Virtual Machine.
Is that virtual machine running Windows?
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.
I feel the virtual GPU might be an issue but it should otherwise work
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.
You might as well just build UE-CSS directly
If I do, I may just make a .deb package of it.
Please ask Mircea before doing that
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.

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
Distributing that deb outside of github forks or the UE marketplace is against the EULA
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.
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:

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 @SymaxThe 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:
I guess I need to stick to the Sample project as a template.
You have to do as per the docs
i.e. download the starter project, integrate wwise, etc
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
I know
For Linux, you have to use VS Code for Linux.
I'm still trying to figure the rest out.
You need MSVC (compiler), vscode doesn't have that
I know there will have to be some sort of conversion in the long run for Linux dev work
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?
You still need MSVC to compile for Windows. But it's convenient to have an IDE
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!
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
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...Wwise is a requirement to work on the game, you can't run without it
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?
Some of your Alpakit files are missing. Please redownload the folder /Build/Alpakit.Automation/ from the repo
-# Responding to
missingalpakit
triggered by @devel>remove crash missingaplakit
Crash could not be found!
>remove crash missingalpakit
Crash removed!
Can you send the full log?
Did you build UE from source?
yes 08d00ee44347101896506246689e3b779bc1bc16
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?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.
Wdym compiler newer than prebuilt? UE doesn't ship with a compiler
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.
Am I understanding this correctly?
Did you manage to get the mod dev enviornment working on Linux?
Yes. I can't build things that depend too much on Wwise, but the dev env is usable enough.
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
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.
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?
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
Has anyone translated the multiplayer launch scripts to use them on Linux?
not that I'm aware of
Ok sooo... does anyone have a step-by-step guide of what to do and what currently breaks?
I think @Zvh recently tried to get it working on a Mac and may have some insights
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
This is the best result I got from the SMD :
https://docs.ficsit.app/satisfactory-modding/latest/CommunityResources/AssetToolkit.html#_troubleshooting_compile_errors
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...
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...
is that what you were looking for?
ah i see
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
I see no linux bin in the github releases
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
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?)
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
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.
@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
this is from devel's work
I encountered the same issue
ah
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?
Ak
... smells of Wwiseyeah I know. I can't seem to figure out what I'm missing

send full build log?
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
I think they have powershell for linux, perhaps that could be installed to avoid needing 2 versions of the patches?
Wow, I just looked it up, indeed they do
huh
where are those? did I miss part of the regular docs?
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
link bot was hungry
https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux?view=powershell-7.5
Install PowerShell on Linux - PowerShell
This article lists the Linux distributions and package managers that are supported for installing PowerShell.
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
updated the bot rule to hopefully not eat any microsoft links now
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?
It's in the .uproject
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
that much is fair, but can't powershell run a bastardized version of bash?
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
let's use python instead :trol:
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.
Yeah, but that was before we got the wwise patches from CSS
Or the wwise you extracted was already patched
how would that be possible
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
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 CRLFDid you manage to get anything working or not yet?
no, sorry. got busy with school shit
Fair enough
poked at this very quickly as I was finally able to properly install powershell - installing powershell is not an option to resolve this

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
seems to work
building now
got some very weird errors about the comma operator :borked:
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
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)

still getting
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
I found this:


Seems like renaming the file to PlatformFileManager.h (with a capital M) worked in these two cases
Maybe worth a shot?
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.
this makes SML buildable on linux, but now I can't launch UE for whatever reason
Found this thread on the Unreal Forums, looks like you may need to manually install renderdoc


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.
I shouldn't have to though right? it launched before with no issues.
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
my notes were just general steps for later
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
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
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?
Maybe you have a newer version of clang or something
Because crosscompiling for linux server is still clang
Or older, idk
Oh
It uses a builtin clang
Hmm


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
what about the other things i had to patch
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
fantastic
So wait, what else (aside from Wwise it seems) is there to figure out then?
I'm missing RenderDocPlugin for some reason
Is it just erroring, or is it straight up missing?
.
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?
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?
it should have compiled itself though
I want to figure out why it didn't, I just don't have the time right now
it not compiling itself is probably™️ a sign of something bigger going wrong, but that is something you could try
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
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
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?
UE5 itself
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)
just
make
which compiles all

UnrealEngine/Engine/Source/ThirdParty/RenderDoc/
@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 thatHm, so it is building UnrealEditor
and I'm launching unrealeditor
I am doing so from a symlink in the top level dir though, would that fuck it
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 finedid not work for me
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 ../
fewerhow do I do the equivalent of make clean with ubt
Maybe there's a Clean.sh or something
There isn't
Maybe
Build.sh clean
there's a Clean.bat...
So adapting that would be
Build.sh -Clean
I guess-Clean
wants a target, what is the equivalent of allNot sure all is a thing
i cleaned fe linux dev and am rebuilding
computer go brr
yep still no renderdoc
Can you send your log?
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)why did THAT fix it?!
opened the uproject like suggested and it opened properly
now compiling 4.5k shaders
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...
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
now it's complaining about no alpakit and I probably missed a step for that to happen
You're missing the
LD_LIBRARY_PATH
From thishow do I add that if I'm launching from the uproject file
Will fix that soon ™️ (maybe tomorrow)
LD_LIBRARY_PATH=stuff /path/to/UnrealEditor /path/to/FactoryGame.uproject
I did not receive this prompt
Yeah, not sure why that happens (prompt not showing)
and also no the fuck they weren't
i just built them
make
vs Build.sh
with -Project
(which is what the vs project passes to Build.bat
)

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

Mh, it failed, I believe because of this https://github.com/mstorsjo/msvc-wine/pull/96

I mean, still being able to develop on Linux, only needing Windows to compile is still a pretty good step I’d say
Depends on what you mean by develop, because you still need to build for windows to test your mod
That’s true, I more meant get far enough to add things
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

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
[sending a message, cause Discord has hidden the thread in the channel list for me]
it's the Hide After Inactivity setting, I will increase it some for this forum as a whole
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?
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
Ah, fair enough
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)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.
When I say "seems to be slow" I mean

And there's like 100 paths in each json, and 1.6k jsons
I see, that kind of slow
Yeah no, that's fair
Maybe nocaseglob + sed + realpath is the solution


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)
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
Nice (hopefully)
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
I've changed the timeout for this thread from 3d to 1w so this doesn't leave my radar
[Thread timed out for me again]
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...
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
am I correct that we can probably finally have this ready after 1.1 compat?
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
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
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.
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)
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 recommendGood to know
I guess a split zip archive could work?
(Like .zip.001, .zip.002, etc.)
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
Then again, just an archive with the engine files works fine too, I personally don't mind it
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
It can definitely do this lol

That seems slightly suboptimal
Yeah, I compressed a 400kb file just to see if it works, so I had to go for a small chunk size
Ah
Nice


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?)
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
Alright, fair enough.
I wish you good luck with the exams then!
They definitely have priority
@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
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
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
DnD Night tonight and my mother's tomorrow... so weekend testing for me.
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:
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)Any suggestions for CI for build/packaging mods? That is something I can test until the weekend.
Also what's roughly the estimated install size? Just cause I'm currently reorganising my data and wanna plan accordingly.
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)
I have terrible internet and no free drive space in my Linux boxes.
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.
msiextract
seems to be part of msitools
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
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 applyTo 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?
Yes, that's a problem
You don't have the UE_WINE_MSVC env var available there
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"
🤣Huh, interesting
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
[
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
I don’t have any system right now :(
But yeah, once I get around to a new system I’ll take a look
Best of luck, it felt wrong to leave you out of the ping so I still mentioned you, haha
Yeah, that’s fair
Something not covered in the WWisePatches, pretty confident it will come back to bite.
I'm just letting it cook
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...
Logs, I did mean the output file UE created...
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 possibleSorry I can't give much more... otw to dinner and disaster (D&D)... XD
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 betterNTFS = Not Trustable File System
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
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.
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
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?
It is just you
That might be something to target then to understand all the strangeness... What flavor of linux are you messing with?
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
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
I mean, I did not actually test that git command, I just assumed it clones the right thing
-# CSS be like "I use Archengius btw"
Just in case there was any doubt, not that I think there would, but full transparency and all...
Yeah, I'm not
git gud
git: 'gud' is not a git command. See 'git --help'
-# Responding to gitgud
triggered by @DarthPorisiusMh, 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/windowsI figured, yeah, its there... I can get you the full file if you want.
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
cat /home/chris/msvc-wine/msvc_install_dir/bin/x64/cl
File exists, attached
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
what
It wasn't there before, but now is...


msvctricks wasn't there either, hmm
Nope
Welp, I guess we'll never know why that happened the first time
Yeah, sorry, I shutdown my PC at night, so I lost the readout
No worries. If it's actually a common issue we'll run into it again, otherwise let's just call it spontaneous file disappearance
or as @Robb (Extra Busy) would say...
#blameDarth, lol

So what all does that mean? How much does it matter?
A lot I assume, but a mega amount or not too horribly?
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 errorWaiting on
FactoryGameSteam
to finishThe file should already exist
Hmmm... still got the error on
make FactoryGameSteam-Win64-Shipping
, but the file does exist...
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 itJust 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
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
Would appear... here's a sample of the output from running that same command again...
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 fileHere's what I got... I'm going to go through it later, I just got some crap with deal with first.
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
Do you think it would be viable to get all this inside a docker container or similar down the line?
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
container that includes a bunch of pre built scripts to guide you through the process of setting everything up? 🤠
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
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
Yeah, it works the same as over ssh. Rider should work too
But by editor I was referring to UE
I mean for Linux CI builds of mods, editor UI from docker does sound hard yeah
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)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
Yes, you can still do that
With the docker version you'd do that through build args
I don't think I understand enough about CI caching to understand why this situation prevents using it
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
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
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 fromWell, 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
Sorry, today's b/s making me wanna dumb... but still, it doesn't exist
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
Sorry, I missed that message... but this was interesting.
One sec to check that folder before I possibly nuke it.
And I forgot about that...
Yeah, its there. All interesting
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 eitherI didn't dump the full contents of that folder, if it matters
Don't want ya to be confused
Fixed the context, XD
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"
Output:
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 againJust 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: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)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... lolIt'll be in the same dir as that .cpp, yes. The .rsp I was referring to is the one in the cl command
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?Upload it here
I saw a few
rm -rf
to the /tmp
folder
For time stamp references, it is 14:19 currently on July 25th 2025.
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
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?
It all looks fine unfortunately
Yeah, a rsp file is an argument list, and can include other rsp files (
@file.rsp
)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
I'll try to reproduce it in a VM on my end
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.
I'll try to set up a VM to test this, is there a certain distro I should try?
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.
Got off, I haven’t done too much with Linux, so I’ll check out Debian, or maybe Ubuntu
If you are not experienced with Linux, Ubuntu/Debian based is the one I would recommend getting comfortable with first.
Good news, I could reproduce it

Bad news, my laptop can barely run this VM lol, it keeps freezing if I leave it on for too long
Hmmm

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.3And on 10.2 I have no idea what's going on but nothing is compiling, it's just stuck on this

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
So we need bloody wine then (bleeding edge)
Or whatever non-stable is
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
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
I gave it a quick lunch (maybe like 10) minutes
But all other wine versions ran immediately
I know i was concerned at first, then gave it a bit (not 10 min, was way shorter than that) and it ran
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
@Borketh
Safety Jim
Reminder - #36782
oooo
Reminder set on
unfortunately I just removed my GPU for RMA yesterday
checks the test vm
What GPU?
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
This comment:
https://discord.com/channels/555424930502541343/1296257928038453349/1398686479336865802
makes me believe you are the best person for the job for the comment...
https://discord.com/channels/555424930502541343/1296257928038453349/1398686328647843935
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
"accidentally"
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)
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.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
Well, I guess we now have a SML devcontainer

Too soon to repeat myself... XD
That dev container though, what all does it contain? WWise, UE, the SML project?
UE, msvc, wwise-cli, and some scripts to make things easier
The project gets mounted to the devcontainer
You mad lad...
Okay, all the necessities...
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)
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?
Does it contain any lizard doggos for petting? /j
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
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
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 (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)
Yeah, that's not doing what you think it does
Why is that file committed in the first place?
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
Would it make sense to have a template file checked into Git, and copy it manually (or through some script) to the desired location?
Because it can be part of the SML repo, how all devcontainer configs are part of the repo they serve
Hmmmmm
And the way it's configured right now, it assumes SML is the project it is on
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
)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
Sounds like that would work
But then again, besides the wine version issue, is a devcontainer useful for this?
¯\_(ツ)_/¯
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
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)
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
also secret q#5: how hard is it for us to maintain?
and where does SMEI fit into all this (replaced?)
I have years of Linux, just all headless... XD
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
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.
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


Does task manager show any info about the SKU of the GPU in there? Couldn't find anything online
It doesn't, but this is from the AMD Software. I don't think that is what you are looking for.

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/

All that just for a heh, let's see what happens test
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
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'. ...
based on the messages you have sent elsewhere, I am guessing you are trying to compile UE by mistake, see the directions here:
>modding
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!
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
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
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
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
I'm not seeing a prebuilt version anywhere
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
It's in my wall of text "tutorial" here
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:
I haven't managed to get the precompiled version downloaded yet as I keep getting network errors (but I'm still trying)
Try using a download manager
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?
Don't think so, but you could check if sizes match
they do seem to
This is a 4-part Zstandard compressed thing so make sure you have zstd installed
3x 2.0GB and 1x 1.9GB
I'll try extracting it via the commandline
@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
Also added a checksums file
Thank you for the quick response!
Everything seemed to extract properly this time.
Interesting
You can double check the checksums now that we have them
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 extractionI meant checking the checksums against those Mircea provided
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
Ah yes, have a lizard doggo to pet: :doggo:
nawww, thanks

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?
I haven't modify the files at all.
I'm just running
./UnrealEngine
Have you used UE before on this computer?
Not on this computer
Hmmm, okay
On Windows I usually start UE by opening the .uproject for SatisfactoryModLoader
Not sure if you can do something similar on Linux

Okay, that means you first have to build the project
Which is this (see pinned messages)
Well, some section of that
apparently sdk-version "10.0.18362" isn't valid. Should I used the closest version or the latest?
Try the closest version that is newer than 10.0.18362
Where do you get that?
From UE or msvc-wine setup?
I got most things built now. This is the latest error popup

Running this:
./vsdownload.py --accept-license --dest "$UE_WINE_MSVC" --msvc-version "17.4" --sdk-version "10.0.18362"
so msvc-wine
Also, the Wwise integration step isn't working for me:
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
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
But IIRC the Bridge and Megascans plugins are editor-time only
Same error
Is that running from the source build or the prebuilt?
It's the prebuilt. But I copy pasted it into the source git repo
Running the prebuilt copy I didn't move i get this

Check
~/.config/Epic/UnrealEngine/Install.ini
, it should list a path for UE_5.3.2-CSS
it lists both:
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 happeningit doesn't seem to have any new info:
Maybe I'll try deleting everything I've done so far and starting again to make sure I did things right
Uhhhhhhhhhh
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:

Did you reclone the project too?
yes
Then send the FactoryGame.log again, the previous one seemed to be from the other error
Mh, only logs the message box text
From what I can tell reading UE code on my phone, it really should have logged something
hmmm, that's weird. anywhere else the logs might be output to?
Terminal probably, but nothing more than what's already logged to the file
New day, time to try new random shit and hope it works
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
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.
The VM might need GPU passthrough for the editor to launch
Back on linux,
make FactoryEditor
is failing for me 🙁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 reintegratingI'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.
Are you sure you're on the linux-editor branch of SML?
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
Those look like warnings?
very last line
make: *** [Makefile:52: FactoryEditor-Linux-Development] Error 6
Run make again to see just the errors
That means there was an error earlier
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
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.
Alpakit, from within the Unreal Editor
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
Can I compile using the make file? Or do I need to do it within UE
compiling for development editor and shipping can probably done with the makefile? packaging a mod must be done from the UE editor
Alright thanks.
UE editor will compile shipping for you while packaging if needed
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.
what features? haha
Support for a schematic to unlock other schematics
hope the MTG qualifier goes well, good luck
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.
I even tried setting it to /home/rebec/msvc/bin
but that didn't fix things.
Any ideas?Is that msvc dir the install dir or the source dir?
install. source is at `/home/rebec/.clones/msvc-wine/
Does it look like this

yes

And you're launching UE from that same terminal?
yes. just tried again explicitly and still same error
Maybe it's the windows SDK version thing then
Hmm, there's no maximum or banned version for the windows SDK
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 thingsNo 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.
I tried building using this command
It gives the same output as through the UE gui
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
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:
Allowed Sdk Range: 10.0.00000.0-10.9.99999.0Which SDK version do you have?
10.0.18362.0
Hmmm, okay, version shouldn't be an issue
Was neither of these logged?
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
tooWhere should that BuildUBT.sh file be copied?
Same path
It's just stripped in the installed build because normally you don't need to build UBT there
Is this the sort of change to make to set if logging is working? Because I can't see any of these logs anywhere


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?
ahhh shit. I edited the wrong file, that'll be why no logs
Ah lol


so looks like the env value isn't being set

Is that env var exported?
I mean, I guess technically before it's exported it's just a shell variable?
No 🤦♀️
it seems to have found the sdk now
So, was the issue that
UE_WINE_MSVC
wasn't being passed to the script for some reason?So far yeah, the env var wasn't exported
Okay, just trying to mentally note down others' snags to try to remember them in the future
I had this

not this

Perfect, thank you!
Where was this located, inside the shell's config file? (e.g.
.bashrc
)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 varsRe 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 issueI'm running into an error trying to compile ContentLib

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 @BlueBekaThe 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?)
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
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 completeOh woops. I am on the main branch XD
Can you please change the default branch in your fork to
dev
? It's a recurring issue...
Not sure if you have tried it out yet Goose
Also discord mobile moment it won't let me ping you haha
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
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.
The guide is this
Alright, I’ll try giving it a shot sometime this weekend
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)
Is the intended purpose of the container to be a turnkey solution for other modders or is it just related to infrastructure you maintain?
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)
Alright, I’d be willing to try it out then
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
We are so back

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
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
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 bitOh, that
Yeah
We can swap that for an https link for the docs
Was about to say
It's a public repo
I just copy pasted the URL from
git remote get-url origin
You can use the URL from https://github.com/mircearoata/msvc-wine:
https://github.com/mircearoata/msvc-wine.git

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
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?
In what way?
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
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
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
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
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
👍
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)
Big autosave

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
Do you have a high-resolution or high-DPI monitor?
Yeah, 1440p ultrawide as my main monitor
I like to dock the Alpakit windows to the main editor so that they're tabs in there, not sure if it matters
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...]
The concept of "home" directory applies to both OSes
Yeah, but it's still neat that it did it that way, I just wasn't expecting that
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.Yes
Yes it does
How do you go about Generating Sound Banks on linux?
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
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)
Apparently you need to add the linux platform in wwise, it's not enabled by default


Ahh, next time I'm on windows I try doing this
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.

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)
I did in fact clone main, that's my bad lol
Huh? I didn't touch that file github

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
👍
built
Getting an error 6 when trying to package the Asset Dumper as a mod.
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 GooseLots of "[filename].h is not exporting types so we are ignoring the dependency"
I may or may not have forgot to test building for windows after the changes
lmao
Pushed the fix
#blamemircea
#praisemircea
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
It has been attached to this message.
-# Responding to
Crash found in FactoryGame.log
triggered by @The Urban GooseAh, 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)
Going through command-line is useful to avoid having to change the Steam launch args twice
But yes
twice?
You mean once before, and once you're done?
Once to use the asset dumping magic args, once to go back to your regular args
Yeah, fair
I... dunno how I'll run the powershell script
Make files manually then run command from terminal?
I mean, you can install powershell on linux
But for asset dumping you don't need any powershell script
But for asset generating I do
Ah, we do have one indeed
Also yeah, I knew that, wasn't sure if that'd work.
It does work though, so...

Gonna let that do it's thing
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
so it means somehow the popup is considered a separate applmao, 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.
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
Linux QuickStart / FAQs | Unreal Engine Community Wiki
stuff to know that get asked frequently

I will try this out
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 issueAh, I had already set it to this

Yeah, I had it set to that too, and was confused by the fact that it was receiving all keyboard events except latin characters
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
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
UE wants an i5 or an i7 it seems /s :wonke:
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
coming in 20xx: plasma-wayland mod to make UE editor work right /s
glad you were able to track down that weirdness
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
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
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
satisfactory modding nixos variant coming... as soon as Vilsol would want to make it, I guess
Apparently you can run it nested, and yes it looks like a VM

Just use funchook
Any news on this topic?
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
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
Did you merge the linux-editor branch?
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)
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

Some more fixes later

Not sure why it's missing the icon
Built with Github Actions (act) on linux
Oh? Does this mean we’re getting close to compiling mods for Windows from Linux?
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
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?
Very
The only way to break it would be engine updates that hardcode more windows stuff