protonscr

Space Engineers 2 - Mod SDK

protonopen appid 3578990Game compatibility - Unofficial
ValveSoftware/Proton#9322 · opened 2025-12-18 by CaptainPicarl · updated 2026-02-10 · 1 comments · github · game page · search this game
CCaptainPicarl 2025-12-18 github

Compatibility Report

  • Name of the game with compatibility issues: Space Engineers 2 Mod SDK
  • Steam AppID of the game: 3578990

System Information

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

Proton Log:
steam-3578990_redacted18DEC2025.log

Symptoms

When attempting to launch the Mod SDK - the application now crashes, whereas it would previously launch without issue!

Reproduction

-Start with a new prefix/bottle (deleting the old bottle entirely).
-Install .NET 9.0.11 (per software requirement)
-Observe that the application will crash, and a minidump is generated in %appdata%/local/

I have also attempted the above with an included step of "Install .NET Framework 4.8", and that also fails.

The following appears to be a consistent crash that I'm seeing:

4518.073:0174:0178:fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub
4518.073:0174:0178:fixme:advapi:ReportEventW (00000000CAFE4242,0x0001,0x0000,0x00000402,0000000000000000,0x0001,0x00000000,000000000019BA50,0000000000000000): stub
4518.073:0174:0178:err:eventlog:ReportEventW L"Application: VRAGE3.ModHUB.exe\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"CoreCLR Version: 9.0.1125.51716\n"
4518.073:0174:0178:err:eventlog:ReportEventW L".NET Version: 9.0.11\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"Description: The process was terminated due to an unhandled exception.\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"Stack:\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.Library.Diagnostics.Profiler+Native.RegisterStaticTag(System.String)\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.Library.Diagnostics.Profiler+Native.RegisterStaticTag(System.String)\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.Library.Diagnostics.Profiler..cctor()\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.Library.Diagnostics.Profiler.InitThread(System.String)\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.Core.VRageCore..ctor(Keen.VRage.Core.CoreSettings ByRef, System.String[])\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.ModHUB.Engine.HUBVRageHost`1[[System.__Canon, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..ctor(Keen.VRage.Core.CoreSettings ByRef, Keen.VRage.ModHUB.App.IApplicationDriverFactory`1<System.__Canon>, System.String[])\n"
4518.073:0174:0178:err:eventlog:ReportEventW L"   at Keen.VRage.ModHUB.Program.Main(System.String[])\n"
4518.073:0174:0178:fixme:advapi:DeregisterEventSource (00000000CAFE4242) stub

Steam Runtime Diagnostics, with sensitive information redacted, available here:
https://gist.github.com/CaptainPicarl/65c066b395a290313d86292c3f369951

FFriedrich-S 2026-02-10 github

For future reference: I got this working by following the instructions posted by a user in the official discord:
https://discord.com/channels/125011928711036928/630756768435142668/1465447414088601767

Should the link break, here is the source code they posted:

#define OPTICK_API extern "C" __declspec(dllexport)
#define OPTICK_CALL __stdcall

#include <windows.h>

OPTICK_API long OPTICK_CALL StartCpuFrame(const char*, long) { return 0; }
OPTICK_API bool OPTICK_CALL Event(int, void*, int, void*, unsigned int) { return false; }
OPTICK_API long OPTICK_CALL Begin(int, void*, int, void*, unsigned int) { return 0; }
OPTICK_API void OPTICK_CALL End() {}

OPTICK_API void OPTICK_CALL RegisterThread(const char*) {}
OPTICK_API void OPTICK_CALL UnRegisterThread() {}

OPTICK_API void OPTICK_CALL TagS(int, void*, const char*) {}
OPTICK_API void OPTICK_CALL TagF(int, void*, float) {}
OPTICK_API void OPTICK_CALL TagI(int, void*, int) {}

OPTICK_API void OPTICK_CALL CustomStorageEvent(
    void*, int, void*, int, void*, unsigned long long, unsigned long long, unsigned int) {}

OPTICK_API void* OPTICK_CALL RegisterCustomStorage(const char*, int, const char*) { return nullptr; }
OPTICK_API void* OPTICK_CALL RegisterCounter(const char*, int) { return nullptr; }
OPTICK_API void* OPTICK_CALL SetCounter(void*, float) { return nullptr; }

OPTICK_API void OPTICK_CALL TagICustomStorage(void*, long, int, void*, int) {}
OPTICK_API void OPTICK_CALL TagFCustomStorage(void*, long, int, void*, float) {}
OPTICK_API void OPTICK_CALL TagSCustomStorage(void*, long, int, void*, const char*) {}

OPTICK_API void OPTICK_CALL AttachStaticTag(int, long, float) {}
OPTICK_API int  OPTICK_CALL RegisterStaticTag(const char*) { return 0; }

OPTICK_API void OPTICK_CALL StartCapture() {}
OPTICK_API void OPTICK_CALL StopCapture() {}
OPTICK_API void OPTICK_CALL SaveCapture(const char*) {}

They are essentially building a fake Optick.dll file and replacing the existing one in the Editor folder in the SDK installation with it.
This does not seem like a super solid fix, but it makes it work on my end for now without any issues.

Additionally, they mention that setting the PROTON_HIDE_NVIDIA_GPU=1 is still necessary to get it to run.

Launch options

DLLs