
Publisher: Fireshine Games, bilibili






2

CrossOver
v26.1.0 (build 39808)
Hardware: MacBook Pro M2 Max, 96 GB RAM
macOS: Tahoe 26.4.1 (build 25E253)
Tool: CrossOver 26.1.0 (build 39808)
Game version: Core Keeper 1.2.1.2-d0b8
Bottle: win10_64
Performance: HIGH (smooth in single-player; no FPS bottleneck observed on M2 Max — game CPU/GPU load is minimal for a 2D Unity title)
Mode tested: Single-player only
Multi-player: Not viable in default config (see Bug 1)
Bug Reports + Workarounds
Bug 1: Multiplayer backend fails to initialize
Symptom: "Connection to multiplayer backend lost" when entering any world,
even in solo mode (each world spins up a local server in 1.0+).
Cause: Pug's crossplay backend uses Microsoft Game Stack modules
(XAuth/XLive lineage) that don't initialize under Wine.
Fix: In-game Options → Gameplay → Crossplay → "Steam Only".
Forces networking onto Steam Datagram Relay, which works under Wine.
Side-effect: no cross-play with consoles/mobile (irrelevant for solo).
Bug 2: First save of a brand-new world doesn't persist
Symptom: Create new world, play, Save & Exit, restart game → world is gone
from the world list. Layer-2 atomic-rename in Pug's
StandaloneFilesystem.Write fails under Wine with 0x80070006
(ERROR_INVALID_HANDLE).
Detail: Pug's atomic-write writes <file>.pugbackup, then <file>.pugtmp,
then renames .pugtmp → final. Step 1 fails (likely LockFileEx +
CreateFile race in Wine's POSIX flock emulation). Step 2 succeeds
(real ~38 KB world data is in .pugtmp). Step 3 never runs.
Fix: Manual rename via shell script after the first Save & Exit:
- mv worlds/<W>.world.gzip.pugtmp → worlds/<W>.world.gzip
- mv worldinfos/<W>.worldinfo.pugtmp → worldinfos/<W>.worldinfo
- mv worldgenparams/<W>.json.pugtmp → worldgenparams/<W>.json
- mv maps/<C>/<M>.mapparts.gzip.pugtmp → maps/<C>/<M>.mapparts.gzip
- cp each → .pugbackup twin
From the second save onwards (OPEN_EXISTING path), Pug's save
cycle works normally — script only needed once per new world.
Bug 3 (resolved): Steam Cloud Sync destroys saves with empty stub files
Was a side-effect of older Reddit guides recommending touch-based stub
files to bypass Bug 2. Empty 0-byte stubs were uploaded by Cloud
Conflict-Resolution, overwriting real cloud saves. With the script-based
workflow above (which only produces full files), this is no longer an
issue — Cloud Sync can stay enabled.
Bug 4 (cosmetic): "Write failed: Erfolg" misleading log line
Pug's GetLastError + FormatMessage path under Wine localizes 0x80070006
to "Erfolg" (Success) on German systems — Wine FormatMessage HRESULT
off-by-one. The actual error is ERROR_INVALID_HANDLE. Cosmetic only,
doesn't affect gameplay.
Setup Steps
1. Install CrossOver, install Steam in a fresh win10_64 bottle, install
Core Keeper from Steam.
2. Set Crossplay to "Steam Only" in-game (fixes Bug 1).
3. For each new world:
a. Create world in-game, enter it.
b. Immediately Save & Exit (do not build anything yet — would be lost).
c. Quit Core Keeper completely.
d. Run a shell script that renames all .pugtmp files in:
~/Library/Application Support/CrossOver/Bottles/Core Keeper/
drive_c/users/crossover/AppData/LocalLow/Pugstorm/Core Keeper/
Steam/<STEAM_ID>/
to their original names (and copies them to .pugbackup twins).
e. Restart Core Keeper, load world, now play normally — subsequent
Save & Exit cycles work without intervention.
4. Optional: cloud-restore old worlds from
https://store.steampowered.com/account/remotestorageapp/?appid=1621690
Steam prepends directory names with underscore, e.g.
"worlds/0.world.gzip" downloads as "worlds_0.world.gzip".
Map files (maps/<C>/<M>.mapparts.gzip) are NOT cloud-synced — only
world data, worldgenparams, worldinfos, and char saves are.
5. Cloud Sync can stay enabled — the script-based workflow doesn't
create empty stub files, so Steam's conflict-resolution has no
trigger to upload junk over real cloud saves.

CrossOver
v25.0.1
multi- player won't connect but you can play in single player, Im looking for a solution