Reported by a player (plorant) on the RiftLauncher ModDB page on 2026-10-01. Their logs are in a document they shared publicly: https://docs.google.com/document/d/1pi-qv_1OIG3AyuGQLzdbC1Y82A4YbOMToiwW73drkVc/edit
Environment
- Windows (win32), Vintage Story 1.22.7, Optimum 0.3.19
- Installed by RiftLauncher 1.7.0-beta.12 from the win-x64 overlay: the four assemblies patched in place, the game started through the vanilla executable
- No third-party mods: the server log lists
game, creative, survival only
What happens
Creating a new world or entering an existing one fails every time. The same install runs fine once Optimum is removed.
The integrated server starts normally. Its log opens with Game Version: v1.22.7 (Stable) + Optimum v0.3.19, world generation runs (the Optimum worldgen pass timing lines are there), and then:
[Event] Begin game ticking...
[Notification] Entering runphase RunGame
[Notification] Server stop requested, begin shutdown sequence. Stop reason: Exception thrown by server during startup or process
That stop is the consequence, not the cause. The client is what dies. RiftLauncher's verbose log captured the game's output:
Unhandled exception. System.Exception: Coding error: Mods must not get assets before AssetsLoaded stage - do not load assets in a Start() method!
at Vintagestory.Client.NoObf.TextureAtlasManager.LoadBitmap(ClientMain game, AssetLocationAndSource textureLoc)
at Vintagestory.Client.NoObf.TextureAtlasManager.LoadCompositeBitmap(ClientMain game, AssetLocationAndSource compositeTextureLocation, Dictionary`2 cache)
at Vintagestory.Client.NoObf.TextureAtlasManager.LoadBitmaps(BakedBitmap[] bitmaps)
at Vintagestory.Client.NoObf.TextureAtlasManager.<>c__DisplayClass66_0.<PopulateTextureAtlassesFromTextures>b__0()
at Vintagestory.API.Util.AsyncHelper.Multithreaded.OnWorkerThread(Action task)
at Vintagestory.API.Util.AsyncHelper.Multithreaded.<>c__DisplayClass3_0.<StartWorkerThread>b__0()
at Vintagestory.API.Common.TyronThreadPool.<>c__DisplayClass11_0.<QueueTask>b__0(Object _)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
at System.Threading.Thread.StartCallback()
What I could and could not check
- The trace is on a worker thread inside
PopulateTextureAtlassesFromTextures, so it reads like texture loading running before the asset manager has flagged its assets as loaded. With no mod in the picture, the message's own advice (a mod loading assets in Start()) does not apply.
- I have not reproduced it. A Windows test on our side applied and removed Optimum 0.3.19 through the same launcher without an error, but that run did not enter a world, so it says nothing about this path.
- The same player could not build Optimum with its own installer either (their two earlier comments on the Optimum page, MSB4025 on 0.3.18 and CS0246 on 0.3.19), so there is no run of the packaged build on that machine to compare with.
Questions
- Can the atlas population race the asset stage, on some machines only (core count, disk speed)?
- Does an overlay-patched folder started through the vanilla executable miss anything Optimum's own launcher sets up before the game starts?
If the second is true, every RiftLauncher install of Optimum is exposed, and the fix or a guard belongs on the launcher side as well.
Reported by a player (plorant) on the RiftLauncher ModDB page on 2026-10-01. Their logs are in a document they shared publicly: https://docs.google.com/document/d/1pi-qv_1OIG3AyuGQLzdbC1Y82A4YbOMToiwW73drkVc/edit
Environment
game, creative, survivalonlyWhat happens
Creating a new world or entering an existing one fails every time. The same install runs fine once Optimum is removed.
The integrated server starts normally. Its log opens with
Game Version: v1.22.7 (Stable) + Optimum v0.3.19, world generation runs (theOptimum worldgen pass timinglines are there), and then:That stop is the consequence, not the cause. The client is what dies. RiftLauncher's verbose log captured the game's output:
What I could and could not check
PopulateTextureAtlassesFromTextures, so it reads like texture loading running before the asset manager has flagged its assets as loaded. With no mod in the picture, the message's own advice (a mod loading assets inStart()) does not apply.Questions
If the second is true, every RiftLauncher install of Optimum is exposed, and the fix or a guard belongs on the launcher side as well.