0a941f3ba6
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
EPM mod artifacts
Drop-in Content/Mods/EPM/ for Empyrion. Loaded by the dedicated server's
mod loader; opens a TCP listener on Settings.yaml.GameServerApiPort (we
ship 0.0.0.0:7028, panel-allocated to whatever EAH_API_PORT env says).
Files
EmpyrionNetworkRelayMod.dll— the mod (ModTargets: Dedi). Compiled fromEmpyrionNetworkConnectedMods/sample-empyrion-mod/Empyrion Mod/with one tweak:Configuration.cswas rewritten to manually parseSettings.yaml(key: value lines) instead of usingYamlDotNet. Reason: current Empyrion 1.16.x shipsYamlAssembly.dllrather than the oldAssembly-CSharp-firstpass.dllthat bundledYamlDotNet, so the upstream binary fails withTypeLoadExceptionatGame_Start.EPMConnector.dll— wire protocol library (TCP framing + protobuf-net message dispatch). Linked by both EPM and any C# client.EmpyrionNetworkRelayMod_Info.yaml— manifest. Per-DLL naming is required because there are two DLLs in the folder; with a single DLL,Info.yamlworks, but with multiple Empyrion's loader needs each main DLL to have a sibling<DllName>_Info.yaml.Settings.yaml— host+port for the TCP listener.0.0.0.0is fine inside the container (host networking limits exposure to the container port; opnfwd handles WAN forwarding).
Verified end-to-end on 2026-04-30
- EPM loads under Wine:
Loaded Mod 'EmpyrionNetworkRelayMod': "EPM". - TCP listener opens:
Now listening on port 7028. - C# probe (
/eah_probe/probe/Probe.cs) connects viaEPMConnector.Clientand gets typed protobuf-net responses forRequest_Get_Factions,Request_Player_List,Request_Playfield_List. Default Human faction came back deserialized intoEleon.Modding.FactionInfoList.
How to rebuild
- Open
C:\Users\dbledeez\AppData\Local\Temp\eah_probe\EmpyrionNetworkConnectedMods\sample-empyrion-mod\Empyrion Mod\(or re-clone fromMichaelGoulding/EmpyrionNetworkConnectedMods). - Replace
Configuration.cswith the YAML-free version (seefeedback_empyrion_yaml_dotnet_drop.mdfor the snippet). cdto that folder andcsc.exe @build.rsp. Output goes tobin\Release\EmpyrionNetworkRelayMod.dll.- Copy
EmpyrionNetworkRelayMod.dll+EPMConnector.dll+ the two yamls into this directory; commit.