TerrainCustomiser Fix
Community rebuild of Snosz-TerrainCustomiser 0.3.2 for PEAK 1.65.a+/v2.4.x. Custom biome maps restored, with old-save and multiplayer fixes. | TerrainCustomiser 0.3.2 社區修復重建版,適配 PEAK 1.65.a+/v2.4.x,含舊
模組介紹 作者原文
TerrainCustomiser
English | 中文
Community-fixed rebuild of Snosz-TerrainCustomiser 0.3.2, compatible with PEAK 1.65.a and later (verified baseline v2.4.c).
Create custom variants for each biome with the in-game level editor, then play your creation with friends. The map syncs to everyone in the lobby, so only the host needs the save file — but every player must have this mod installed.
The original mod has been broken since PEAK 1.65.a. This is an unofficial maintenance rebuild that restores it on current game versions, including old map saves.
Requirements
- BepInExPack_PEAK
- Snosz-UBImGui
- Snosz-PhotonCustomPropsUtils
- The same version installed on every player in the lobby
Usage
Map saves live in AppData\LocalLow\LandCrab\PEAK\TerrainCustomiser\Map Saves.
Opening the airport kiosk menu shows the TerrainCustomiser UI with Play / Editor modes (Editor is offline-only).
Play Mode
- Select the map save to use, then set the seed and whether the lobby should bake lightmaps. The LightMap option is only available when every player has EnableLightMapBaking enabled in the plugin config.
- Press Play — the map data syncs to all players and the custom map loads.
Editor Mode
- Hold right-click for FreeCam (WASD to move, scroll wheel for FOV).
- Use Swap to pick a biome for the area, then C to pick a variant template to work from.
- Select the created segment to edit it through the Hierarchy / Inspector / Resource windows.
What this rebuild fixes
- PEAK 1.65.a+ compatibility: adapted to the async terrain pipeline (RunAll/Execute/SpawnNew, PropSpawner subclasses, LightVolume in LightVolume.Runtime.dll, Unity 6). Resource bundles ship as embedded.bundle files.
- Custom maps initialize fully: spawn tracking, respawn statue, segment disabling, wallNext and hasFinishedStartRoutine all run; generation failures block the run instead of leaving a broken map; empty saves regenerate a vanilla island.
- Old map saves load again: out-of-range indexes are skipped safely, missing RespawnChest falls back, name-based prop/material/Transform references resolve, saved random-scale values keep explicit entries while missing multipliers default to 1 (props no longer shrink to zero), dead prop references are skipped instead of failing the map, and nested segments such as the volcano pair are discovered.
- Multiplayer hardened: room properties use TC_-prefixed keys so they no longer fight TerrainRandomiser's keys; prop ViewIDs stay host-allocated; online IDs bind only after the local view collection completes and retry on early or mismatched batches; a crash from an empty lobby RunId is guarded.
- Lightmaps: baking goes through the official LightVolume pipeline with compression skipped, eliminating the HDR-compression log spam; one bake after generation while all segments are still active.
- TerrainRandomiser coexistence: the unused visibilitycompute bundle is no longer loaded at startup, removing the CAB identity conflict that broke TerrainRandomiser 1.2.0's startup.
- Diagnostics: [TC]-tagged logs for skipped save entries, rebuild warnings and segment/prop statistics.
Compatibility & known issues
- Coexists with TerrainRandomiser, but both hook map generation — disable random-terrain features during custom-map sessions.
- Do not install together with TerrainCustomiserCN: the GUIDs are declared mutually exclusive. For a Chinese UI, use the separate TerrainCustomiser_ZH patch instead.
- UBImGui 1.0.0 is an old build; if ImGui rendering itself breaks it needs a separate fix.
- Baking is asynchronous over a few frames; players spawning during those seconds could briefly see all segments active (same semantics as 0.3.2).
- The mid-generation bake was dropped; modifiers that sample the lightmap during generation now read the previous scene lightmap.
- Unity asset references in save fields (e.g. MeshCollider.sharedMesh) may fail to restore; [TC] Rebuild warnings in the log help locate them.
- The whole map is stored in Photon room properties; ve
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。
下面這些內容需要先安裝,否則該模組不會生效: