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

FactoryGame
FactoryPreEarlyLoadingScreen
FactoryDedicatedServer
FactoryDedicatedClient
AbstractInstance
InstancedSplinesComponent
GameplayEvents
SignificanceISPC
OnlineIntegration
OnlineIntegrationEditor
OnlineIntegrationEOSExtensions

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

FactoryGame
FactoryPreEarlyLoadingScreen
FactoryDedicatedServer
FactoryDedicatedClient
AbstractInstance
InstancedSplinesComponent
GameplayEvents
SignificanceISPC
OnlineIntegration
OnlineIntegrationEditor
OnlineIntegrationEOSExtensions

Would you like to rebuild them now?: Missing FactoryGame Modules: No is implied.
LogCore: Engine exit requested (reason: EngineExit() was called)
LogExit: Preparing to exit.
LogVirtualization: UE::Virtualization was shutdown
I did not receive this prompt
Mircea
Mircea4w ago
Yeah, not sure why that happens (prompt not showing)
Borketh
Borketh4w ago
and also no the fuck they weren't i just built them
Mircea
Mircea3w ago
make vs Build.sh with -Project (which is what the vs project passes to Build.bat)
No description
No description
Mircea
Mircea3w ago
And it looks like the makefile is missing that because it expects the editor target to be FactoryGameEditor Which was fixed in 5.5 https://github.com/EpicGames/UnrealEngine/commit/e89c9499ed78cd97cf71017975c8ef160ccd800c, so we can just cherry pick that Commited (not pushed yet) fixes for all of the issues (makefile not building FactoryEditor, RPATH for mods not being created, compile errors in both the engine and the project)
Mircea
Mircea3w ago
Right now I'm potentially making UE support crosscompiling for windows on linux using https://github.com/mstorsjo/msvc-wine, we'll find out if it worked hopefully in about an hour
No description
Mircea
Mircea3w ago
Mh, it failed, I believe because of this https://github.com/mstorsjo/msvc-wine/pull/96
No description
MinoDab492
MinoDab4923w ago
I mean, still being able to develop on Linux, only needing Windows to compile is still a pretty good step I’d say
Mircea
Mircea3w ago
Depends on what you mean by develop, because you still need to build for windows to test your mod
MinoDab492
MinoDab4923w ago
That’s true, I more meant get far enough to add things
Mircea
Mircea3w ago
I downgraded msvc to the version recommended by the docs, and also patched UE's response file generation to output wine paths. I don't really like it, but it does seem to be working this time. If it finishes successfully I'll undo the UE patch and see if it still works (probably not unless wine itself converts paths in its windows APIs) Ok, it doesn't work with linux paths, maybe a patch to msvc-wine would be cleaner than the UE patch. The directx SDK in the windows SDK seems to not be the right one (it's missing some types, but seems to be generated the same way), I'll have to check tomorrow where the real one is on windows. And I've previously disabled ispc because UE's build of ispc for linux does not allow compiling for windows, but it's necessary for one of the project plugins, so I guess that also has to run in wine But for good news, I've updated wwise-cli to fix the missing files, and also added linux support For the directx thing, apparently it's supposed to be using the bundled directx library from UE, so maybe it's still related to some path not being converted so msvc-wine was not finding the file there It was trying to use that, but Epic didn't even try to write paths with case sensitivity in mind. There apparently should have also been a warning about it, but I guess it got swept in between the other case sensitivity warnings about .libs that I was ignoring because it said it should still be fine
Mircea
Mircea3w ago
No description
Mircea
Mircea3w ago
The resulting SML also loads sucessfully on windows I'll look into converting the (kinda intrusive) UE wine path patches to be handled in msvc-wine, and also look into whether the changed file detection is breaking because of something, or if this is just how it's supposed to behave, because it always recompiled everything, even when all I did was ctrl+C and run the same command again. Though probably this is not going to happen today Re the recompiling thing, I believe it is because the dependency files are generated by the compiler (I thought it was the other way around), so they have wine paths that UE can't find, so that's another thing on the list of stuff msvc-wine has to pre/post-process
The Urban Goose
[sending a message, cause Discord has hidden the thread in the channel list for me]
Robb
Robb3w ago
it's the Hide After Inactivity setting, I will increase it some for this forum as a whole
The Urban Goose
Have you been able to make any progress on this? If not, what's currently causing issues? Anything I could maybe help with in any way?
Mircea
Mircea2w ago
I'm busy with uni stuff for a couple more days, but I did have some time last night to implement the msvc-wine patches, haven't tested them yet though, maybe I can do that tonight
The Urban Goose
Ah, fair enough
Mircea
Mircea2w ago
Did a quick test, the dependencies json it generated all-lowercase, so fixing it is a bit harder than I thought. But the rest seems to be working, I didn't let it run till the end, just the first few actions, but it does correctly remap response files, and it would generate a valid dependencies json if it wasn't all-lowercase (might need to actually winepath that, but winepath seems to be very slow)
The Urban Goose
Personally I'd be happy with a slow, but functional solution, even just temporarily. I've got a few ideas for mods I'm itching to make, and I refuse to use Windows on my personal machine out of principle at this point. Obviously no rush, it's my choice after all, if it takes time it takes time, I fully get that.
Mircea
Mircea2w ago
When I say "seems to be slow" I mean
No description
Mircea
Mircea2w ago
And there's like 100 paths in each json, and 1.6k jsons
The Urban Goose
I see, that kind of slow Yeah no, that's fair
Mircea
Mircea2w ago
Maybe nocaseglob + sed + realpath is the solution
No description
No description
The Urban Goose
Did the maths real quick. If it's the "real" value that matters, and it's 0.1s on average, it's about 04:30 hours Question: Is the upgrade to 1.1 gonna delay/affect the development of Linux support, or is it something that can be worked on alongside/as part of the process in some way? (Just asking out of curiosity, not trying to be passive aggressive)
Mircea
Mircea2w ago
I've done all of that on a separate branch, and all things considered the linux patches are quite small, so besides not being able to test them until I set everything up for 1.1, it shouldn't affect anything
The Urban Goose
Nice (hopefully)
DarthPorisius
DarthPorisius2w ago
Hey Mircea, if you need your favorite test dummy, I have a VM that I am testing on for migrating from Winblows to Linux. I'll gladly toss it out there to do a from-scratch setup of the SME
Borketh
Borketh2w ago
I've changed the timeout for this thread from 3d to 1w so this doesn't leave my radar

Did you find this page helpful?