PlushieSwap
Replaces the BingBong plush with a cartoon Miffy or Zichao Xiong. Switch between the vanilla bear and both replacements in game with F7. Models, shading and icons are embedded in the DLL.
| Date uploaded | 2 weeks ago |
| Version | 1.1.0 |
| Download link | khalil-PlushieSwap-1.1.0.zip |
| Downloads | 49 |
| Dependency string | khalil-PlushieSwap-1.1.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_PEAK
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301README
Plushie Swap
Replaces the BingBong plush in PEAK with a cartoon Miffy (米菲兔) or Zichao Xiong (自嘲熊), and lets you switch between those and the original bear at any time.
Features
- Three forms, cycled in game with F7:
Vanilla->Miffy->ZichaoXiong(the default is Zichao Xiong). - The plush keeps its screen-space constant-width ink outline, drawn from the model itself, so the line stays crisp at any distance.
- Name and inventory icon follow the chosen plush.
- The model inherits the game's own squeeze animation when you hold primary fire.
- Models, baked shading and icons are embedded in the DLL: one file, no loose assets.
Configuration
BepInEx\config\com.zhuanban.peak.plushieswap.cfg
| Option | Default | Meaning |
|---|---|---|
Plushie |
ZichaoXiong |
Which form to use: Vanilla, Miffy or ZichaoXiong |
Cycle Plush Hotkey |
F7 |
In-game hotkey that cycles the forms (a single key, no modifiers) |
World Scale |
1.0 |
Size multiplier while held or lying in the world |
Backpack Scale |
1.0 |
Extra size multiplier while inside a backpack |
Hold Height Offset |
0.0 |
Extra up/down nudge while held |
Rename Item |
true |
Rename the item to match the chosen plush |
Replace Icon |
true |
Replace the inventory icon |
Outline Width (pixels) |
5.0 |
Ink line width in screen pixels; 0 hides it |
Shader Override |
(empty) | Only needed if the model renders with wrong colours (needs a restart) |
Verbose Logging |
false |
Write detailed diagnostics to the BepInEx log |
Changes made in the in-game mod settings apply immediately (the one exception is
Shader Override, which is cached per variant and needs a restart). Editing the config
file by hand is not hot-reloaded: restart the game to pick it up.
Installing
- Install BepInExPack PEAK if you have not already.
- Drop this package in with your mod manager, or unzip it so that
plugins/PlushieSwap/PlushieSwap.dlllands inside the game'sBepInExfolder.
Credits and licensing
Thanks to ScallionMiku by
xiaofe12 (published on Thunderstore as
Thanks/ScallionMiku), the only other
mod in the PEAK community that replaces the plush model. It was the reference this mod was
built against: hiding the vanilla renderers, leaving the original mainRenderer alone, and
validating the vanilla visibility every frame all came from studying it. It is not bundled
here, and the two mods cannot be installed together (they patch the same nine game methods).
Source code: https://github.com/qaz111ex/PlushieSwap (MIT).
Both replacement models are third-party 3D printing models. They were reprocessed here (decimated, re-oriented, fitted to the vanilla silhouette, baked shading, generated outline shell) but they are not original to this mod, and all rights remain with their authors.
Zichao Xiong (自嘲熊) — "坐姿自嘲熊(多色一体)"
- Source: https://makerworld.com.cn/zh/models/2666015-zuo-zi-zi-chao-xiong-duo-se-yi-ti
- Author: 夜夜椰子冰 (MakerWorld UID
2431656860), per theDesignerfield embedded in the 3MF. - Licence: Standard Digital File License (the licence selected when it was uploaded).
- The same model is also published on MakerWorld's international site
(https://makerworld.com/en/models/3154227), credited there to Lorensi
(UID
495168789). Title, cover image, creation date and licence all match, so these are two uploads of one model; which came first could not be established, so both are listed.
Miffy (米菲兔) — "米菲兔 经典艺术 白剪纸"
- Source: https://makerworld.com.cn/zh/models/2032846-miffy-mi-fei-tu-jing-dian-yi-zhu-bai-jian-zhi-chi
- Author: 再也不打没用的东西了 (MakerWorld
@user_3189506737) - Licence: not stated. The supplied 3MF has empty
Designer/Licence/Titlefields and the page states no licence.
This is a non-commercial fan project. It charges nothing and claims no rights over
either model. The Miffy character itself is the property of Dick Bruna / Mercis bv,
independently of whoever modelled it. If you are an author or rights holder and would
like the attribution changed, a licence clarified, or your model removed, please get in
touch via the release page and it will be done in the next version — the mod will then
keep only the Vanilla option, or ship without the geometry and let users generate it
locally.
CHANGELOG
Changelog
1.1.1
Fixed
- The ink outline no longer looks too thick on a distant plush. The line was held at a
fixed number of screen pixels at every distance, so a plush across the room — far smaller
on screen — wore exactly the same 5-pixel line as one in your hands, and read as a heavy
black border instead of an outline. The line is now part of the model: it is extruded once
in the plush's own space, so it scales with the plush (and with
World Scale) and gets proportionally thinner with distance, the way a drawn line should.
Changed
- A pile of plushies no longer costs frames. The outline shell was rebuilt on the CPU every frame for every instance — about 15k vertices each, plus a fresh vertex-buffer upload each frame — so a dozen plushies in view meant tens of thousands of vertex transforms per frame. That work is gone completely: the shell is extruded once when the model is built, and re-extruded only when the outline width changes. Nothing in the outline runs per frame now, and the line at normal holding distance is the same as before.
Outline Width (pixels)is nowOutline Width. It is a multiple of the width the models are baked with (0.75% of the plush's height) rather than a pixel count, because the line scales with the plush. An existing value is carried over, and the default of5is the baked width, so the look at normal holding distance does not change.- A width of
0now switches the outline object off instead of collapsing the shell onto the body, which removes the depth fight between two coincident surfaces.
1.1.0
Fixed
- The in-game plush hotkey can now actually be set in game. It was bound as a
BepInEx
KeyboardShortcut, which the game's settings panel has no control for, so the row was silently skipped and the key could only be changed by editing the config file. It is a plain key now (single keys; modifier combinations are no longer accepted). - Switching back to the vanilla plush restores the vanilla inventory icon. The slot refreshes only the name and the cook amount when it still holds the same prefab, and the icon was only ever overwritten with a replacement, so returning to vanilla left the previous plush's icon on screen until the item was dropped and picked up again. The icon is now reconciled to whatever the selected variant should show, vanilla included.
- The inventory icon follows an in-game plush switch immediately. The widget cached the icon and skipped refreshing it while the slot still held the same prefab, so after pressing F7 every visible slot kept the previous plush until the item was dropped and picked up again.
- The plush name follows a language change immediately. The Chinese/English choice was cached and only invalidated when cycling the plush, so switching the game language to Chinese left the names in English until F7 or a restart.
- Cooking tint no longer fights other mods' highlights. The cook colour was written by replacing the renderer's whole property block, which erased the cleanup highlight another mod writes to the same renderer; only the two cook keys are touched now.
- The outline no longer disappears at long range. Its mesh bounds were padded by a fixed amount, which was too small past roughly 9 m (and past ~1.2 m at small model scales); the padding is now recomputed every frame from the offset actually applied.
- A corrupt or truncated model file now falls back to the embedded copy instead of being parsed into garbage. Sizes in the file are validated before allocating, so a bad file can no longer request an enormous allocation.
- A missing game method is now reported by name at startup, instead of only a generic "hooks failed" line. The patch-target check names the exact method.
- A variant that failed to load is retried on a hard refresh rather than staying broken for the rest of the session.
Changed
- The release zip is now reproducible (identical bytes for identical input), and the
packaging step refuses to build from a
dist/that does not match the current commit. - The build records
-dirtyin its build info when the working tree has uncommitted changes, so a deployed DLL can be traced to what actually produced it. - The asset checks now also detect a change to the generator or its parameters, not just to the model files.
1.0.0
- Initial release.
- Replaces BingBong with Miffy or Zichao Xiong, switchable in game with F7.
- Screen-space constant-width ink outline.
- Inventory name and icon follow the selected plush.
- Inherits the game's squeeze animation while held.