-
-
Notifications
You must be signed in to change notification settings - Fork 2
Compatibility
Optimum is client-only. It connects to any Vintage Story server running a matching game version (1.22.5, or 1.22.6 with the experimental build described below). The server does not need any modification. From the server's perspective, Optimum looks like a standard client.
Each Optimum build targets one Vintage Story version. Running Optimum built for 1.22.5 against a 1.22.2 or 1.23.x server will fail at the version handshake, same as vanilla. Check the release notes for the supported version.
When Vintage Story updates, Optimum's cache auto-invalidates on the next launch and re-patches against the new DLLs. If a game update changes an internal API that Optimum patches, the patcher reports the failure, restores built-in vanilla mods, and exits before game startup.
Starting with 0.3.5, Vintage Story 1.22.6 is supported experimentally, ahead of Anego publishing matching open source updates for the affected fork repos. Optimum reconstructs the confirmed 1.22.6 source changes as patches on top of the pinned 1.22.5 refs, since the real upstream source is not published yet. This is a stopgap, not a full port: 1.22.5 remains the default and the platform where testing is most thorough. Install Vintage Story 1.22.6 first (Optimum does not update your Vintage Story install), then point the Optimum installer at that version. See Installation for how each platform picks the version.
Most client-side mods work with Optimum. Mods that add items, blocks, recipes, or UI elements through the standard modding API load without issues.
Mods that may conflict:
- Mods using Harmony to patch the same methods Optimum transplants via Cecil. The patched DLL already contains the optimization, so a Harmony patch targeting the same code path may hit unexpected IL.
- Mods that hook into entity rendering internals (custom renderers, shader injection).
- Mods that replace the frame-limiting or game-loop logic.
If a mod causes problems, disable it and test. Most issues are detectable at startup (crash or log error on method resolution).
| Mod | Status | Notes |
|---|---|---|
| OptiTime | Overlaps | Optimum is the successor. Disable OptiTime. |
| Eco Machina | Compatible | Optimum preserves IL slot layout in CalculateVisibleFaces
|
| VS Roofing | Compatible | LOD gate respects canChisel attribute |
| SmithingPlus | Compatible | Creative search cache crash is contained |
| Waypoint icon packs | Compatible | SVG reload fix prevents icon loss |
| Mods using Harmony/MonoMod | Partially incompatible | MonoMod's JIT hook layer references .NET 6 assemblies (e.g. PresentationFramework 6.0.2.0) that don't exist on the .NET 10 runtime Optimum ships. Harmony patches to gameplay code generally apply fine; the failure surfaces specifically when a MonoMod-hooked path tries to load a missing .NET 6 assembly, most visibly the WPF-based error dialog. |
Optimum does not modify save formats, world generation, or block/item data. You can open the same world folder with Optimum and vanilla interchangeably.
Other players cannot tell you're using Optimum. No protocol changes, no gameplay differences, no server-side detection. The only change is client-side: less redundant CPU/GPU work per frame.
If a required patch, assembly validation, or JIT preflight fails, Optimum prints an error and exits. The launcher invalidates incomplete cache data, restores built-in vanilla mods, records Launch aborted in Logs/optimum-launcher.log, and returns a nonzero exit code. It does not launch Vintagestory.exe as a fallback. Your data path, worlds, and account remain intact. Optimum stores its settings in .optimum/optimum.json, which vanilla ignores. Launch Vintagestory.exe yourself when you need an independent vanilla run.
Optimum never modifies vanilla files. The patched DLL lives in .optimum/cache/ — a separate directory. Uninstalling Optimum or verifying game integrity leaves vanilla in the exact state it was before.