Current EFT / PvE compatibility investigation for SPT 4.1.x-dev #1192
Replies: 2 comments
|
I wanted to help with the development in some way, and if needed, I'll try to upload all the files that were changed as a result of the tests. |
|
SPT has no intentions of moving to Tarkov 1.0+, as per the announcement in the SPT Discord:
|
Uh oh!
There was an error while loading. Please reload this page.
Current EFT / PvE compatibility investigation for SPT 4.1.x-dev
Hi. I spent some time investigating what is currently needed to move SPT closer to the current EFT PvE client shape. This is not a finished port and not a working current-client launch, but it produced several concrete server/data findings, repeatable probes, and a small compatibility patch that may save upstream time.
The short version:
2022.3.43f2and IL2CPP.Assembly-CSharp.dllpatch/module path is no longer applicable as-is.GameAssembly.dllin a local SPT-style launch. It stops before IL2CPP/BepInEx withThe required BattlEye service is not running.Environment Tested
Current EFT client facts:
This means the existing SPT Mono-era client module/delta model cannot be reused directly against the current client layout.
Server/Data State Reached Locally
The local SPT C# server was brought to a clean state for the tested bootstrap flow:
Factory raid-data validation generated both static and dynamic loot for:
Important caveat: this was a local research tree. Some current EFT metadata restored into SPT tables used compatibility fallback/inference for handbook/category/price/localization coverage. It should be reviewed before being treated as authoritative live economy/localization data.
Current PvE Route Compatibility Patch
I prepared a small server-side patch against
server-csharp4.1.x-dev.The handoff package is available here:
Google Drive: SPT current EFT/PvE handoff package
Inside the package, the patch is:
The same package also includes the changed C# files, probe scripts, compact reports, and the longer handoff notes.
Validation:
The patch adds a conservative compatibility router/callback for current PvE endpoints observed during local route probing:
It also adds bodyless request tolerance for existing early-bootstrap endpoints:
Files added/changed by the patch:
Implementation choices were intentionally conservative:
falsePvE Route Extraction / Probe Result
From available official client logs, I extracted:
The early PvE route probe against the local server currently reports:
Representative early PvE routes observed:
Client Launch Blocker
The main launch blocker is not currently server data or route compatibility.
I tested multiple local launch shapes:
Tested against both:
Observed in all tested variants:
Static observations:
Interpretation:
GameAssembly.dllbefore any runtime adapter can workThis was treated as a hard boundary. I did not attempt to patch
UnityPlayer.dll,GameAssembly.dll, BattlEye service checks, signatures, or launcher behavior.Offline Launcher / Runtime Adapter Contract
Because the current official client does not reach runtime, I built a local offline host/stub contract to keep server work testable.
The local launcher core:
/launcher/v2/pingThe offline stub successfully reaches:
I also defined a simple runtime state contract for a future legitimate offline runtime adapter:
Current official-client launches land at:
This is a terminal state for that run. The status file/contract does not try to convert a blocked official-client launch into an adapter-ready runtime.
Developer Mode / Command Bridge Idea
A local-only developer command bridge was prototyped as a contract for a future in-game console/overlay.
The command bridge:
AdapterReadyExample command categories:
This is intended as a safe architecture boundary: the server/launcher can expose development tooling now, while any in-game overlay waits for a legitimate runtime adapter.
Launcher UI Prototype
I also made a small SPT Launcher-like offline launcher prototype for the local test flow. It is not the actual game client.
Current features:
server\user\profilesVerified local profile paths include:
Both reached
/client/match/local/startfor Factory in the offline stub flow.Useful Reproduction Commands
Server/data checks:
Current-PvE route compatibility:
Factory raid-data validation:
Client entrypoint blocker probe:
Overall readiness:
Expected readiness shape:
{ "missingFiles": [], "serverGreen": true, "clientReachesIl2cppRuntime": false, "nextBlocker": "client_pre_runtime_battleye_guard" }What Seems Useful Upstream
The parts that seem directly useful to SPT:
GameAssembly.dllThe parts that look like dead ends for this exact official client:
Boundary
This work is intended for local/offline PvE SPT research and mod-development support.
It does not include instructions or code to bypass, disable, patch, spoof, or otherwise defeat BattlEye. The blocker diagnosis is included so time is not wasted debugging server routes or BepInEx setup when the process never reaches IL2CPP.
Suggested Next Steps
All reactions