Skip to content

feat: add UE4SS mod loader - #913

Draft
lhw wants to merge 2 commits into
thijsvanloef:mainfrom
lhw:feat/ue4ss-mod-loader
Draft

feat: add UE4SS mod loader#913
lhw wants to merge 2 commits into
thijsvanloef:mainfrom
lhw:feat/ue4ss-mod-loader

Conversation

@lhw

@lhw lhw commented Jul 29, 2026

Copy link
Copy Markdown

Context

Bundle the Linux UE4SS build for amd64 servers, arm64 is disabled for now (needs patched Box64)
Implementation for #906 and potentially #885, though it does not use steam workshop mods yet and is native instead of wine/windows.

Choices

Native should always be preferable, but tbh I also didn't check that there was already work being done.
For arm64/Box64 support I already have something local but there are some issues with the standard box64 binary, mostly that it doesn't have enough callback entries in it's table, ue4ss seems to request 32. But I will look into if there is an easier/better option to make it work.

Test instructions

I did include a small test Lua mod to show that the loading works fine. General mod support depends on the mod itself though. I only tried two so far.

Checklist before requesting a review

  • I have performed a self-review/test of my code
  • I've added documentation about this change to the docs.
  • I've not introduced breaking changes.
  • My changes do not violate linting rules.

AI Usage Disclosure

Please read the AI Usage Guidelines for Contributors before submitting this PR.
If you used an AI tool to assist in writing or refactoring code for this PR, please disclose it below.

  • I used OpenAI Codex to assist in modifications for this PR.
  • I have manually reviewed the generated code and tested the container build locally.

Bundle the x86-64 Linux UE4SS build for amd64 servers.
ARM64 is disabled for now (needs patched Box64) and logs a warning on boot.

- New UE4SS_ENABLED env var (default false)
- Downloads and installs libUE4SS.so at image build time
- LD_PRELOAD on amd64, warns and continues on arm64
- Compose, Kubernetes, and README/docs updated
- CI smoke test for Lua mod loading
@lhw
lhw force-pushed the feat/ue4ss-mod-loader branch from a12b13d to 2386f04 Compare July 29, 2026 17:35
@lhw

lhw commented Jul 29, 2026

Copy link
Copy Markdown
Author

Ah damn for proper steam workshop support palschema needs to be compiled for linux. A little bit of extra work but definitely doable.

@lhw

lhw commented Aug 1, 2026

Copy link
Copy Markdown
Author

I tried to get PalSchema to compile for ue4ss-linux and while I can find most of the symbols to hook into, some important ones are missing or would need to be identified during runtime. So I think it makes sense for now to focus on the wine/proton + windows server approach and I'll update if I can find a reasonably good approach to get all the symbols at any time I'll update the PR.

Note that the PR as is works fine for LUA mods, just not cpp ones

@lhw
lhw marked this pull request as draft August 1, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant