You are viewing a potentially older version of this package. View all versions.
khalil-ItemSpawnerPremium-2.5.0 icon

ItemSpawnerPremium

Standalone item spawner for PEAK (F5). Spawn for any teammate or yourself. Localized item names, pinyin search (Chinese UI), multi-tag categories, right-click favorites, hide-unused toggle, two UI styles. Only BepInEx required.

Date uploaded 2 weeks ago
Version 2.5.0
Download link khalil-ItemSpawnerPremium-2.5.0.zip
Downloads 3807
Dependency string khalil-ItemSpawnerPremium-2.5.0

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301

README

ItemSpawnerPremium

A standalone item spawner for PEAK. Press F5 to open the browser and spawn any item in hand. Only BepInEx is required — no other mods.

Multiplayer note: items are network-instantiated by the room host, so anything you spawn is visible to everyone in the room. Use it in your own lobby, or check with your teammates first.

A continuation of the original quackandcheese-ItemSpawner, rebuilt as a single-DLL standalone mod.

Later game updates may still add or rename items.

Features

  • Localized item names — the UI is translated into all 15 game languages. Item names come from the game's own localization table; if that table has no column for your language the English name is shown, if it has no entry for the item at all the internal item name (or the prefab name) is shown, and a small number of items that the game never localized use a name bundled with this mod.
  • Smart search + Pinyin (full spelling and initials, e.g. regouchang / rgc matches the Chinese name of Hot Dog Sausage). Pinyin matching is enabled when the game language is Simplified or Traditional Chinese.
  • Multi-tag categories: All / Tools / Food / Mystical / Equipment / Consumables / Misc.
  • Related items stay together: colour variants and product lines are grouped in the grid (all four clusterberries in a row, all crispberries, all rope launchers, all packs, and so on) instead of being scattered by name.
  • Spawn for any teammate: the target chip next to the search box offers Smart target (yourself while alive, the Scout you are spectating after death) or any Scout in the room. The list refreshes every second, so players joining or leaving are picked up without reopening the panel. Names with rich-text color codes are shown as plain names, and a thin scrollbar appears when the list is longer than six entries. Items are still created by the room host through PEAK's own spawn RPC.
  • Favorites: right-click to toggle, heart marker, config persistence, favorites filter.
  • Hide-unused toggle (default on): hides chess pieces, torn guidebook pages, _Prop/_TEMP/_UNUSED/_Hidden prefabs, and a short list of template/placeholder prefabs. Favorites are preserved when toggling.
  • Two UI styles: HandDrawn (warm kraft paper, default) / Transparent.
  • Single DLL: TinyPinyin and all 15 localization JSONs are bundled; only BepInEx is required.

Installation

  1. Install BepInExPack_PEAK.
  2. Put plugins/ItemSpawnerPremium.dll into BepInEx/plugins/.
  3. Launch the game and press F5. Use the chip to the right of the search box to pick who receives the item — Smart target by default (yourself, or the Scout you are spectating after death).

Configuration

BepInEx/config/com.itemspawnerpremium.ItemSpawnerPremium.cfg:

Section Key Default Description
General ToggleKey F5 Key to open/close the spawn menu (UnityEngine.KeyCode).
General Style HandDrawn UI style: HandDrawn / Transparent.
General HideUnused true Hide decorative/unused items; set false to show everything.
Favorites ItemNames [] Favorite prefab names (JSON array).

Building

Prerequisites: .NET SDK (targets net472), and a PEAK install.

  1. Point GameDir at your PEAK root (the folder containing BepInEx and PEAK_Data) — either pass -p:GameDir="X:\path\to\PEAK", set a GameDir environment variable, or edit the default in Directory.Build.props. The build fails fast with a clear message if the path is wrong.
  2. Run dotnet build ItemSpawnerEnhancement.csproj -c Release.
  3. Output: bin/Release/ItemSpawnerPremium.dll (Debug goes to bin/Debug/, so the two never overwrite each other).

Releasing

pack.ps1 assembles dist/ItemSpawnerPremium/ from a clean Release build. It refuses to run unless the git working tree is clean and all four version strings agree (csproj, Plugin.cs, package/manifest.json, CHANGELOG.md), it runs the unit tests, and it verifies the ItemCatalog.cs invariants via verify_catalog.py. Zipping is opt-in (-Pack). See the comment header in pack.ps1 for the full release order.

Tests

tests/ItemSpawnerPremium.Tests is a net8.0 NUnit project with no Unity or BepInEx dependency: it source-links only the pure-logic files (SearchText.cs, SearchRanking.cs, ItemCatalog*.cs, ItemGrouping.cs, TargetSelection.cs, FavoriteCodec.cs, Localization/Loc.cs, Localization/LocalizationCatalog.cs, TinyPinyin/*) and embeds the 15 language JSONs under the same resource names the shipped DLL uses, so the real marker parsing and English fallback chain are exercised. Localization/GameLanguage.cs is deliberately not linked — it references the game's LocalizedText type.

dotnet test tests/ItemSpawnerPremium.Tests/ItemSpawnerPremium.Tests.csproj

Covered: search normalisation and pinyin conversion (including a sweep of the whole BMP Han range asserting no character throws during decode), ranking tiers and culture-independence, the catalog sort's total-order properties, hidden rule vs. category table complementarity, favorite JSON round-trips and corrupt-input recovery, and localization key completeness across all 15 languages.

Project structure

  • Plugin.cs — BepInEx entry point, config, F5 polling, GUIManager patch.
  • ItemSpawnerPremiumWindow.cs — the MenuWindow subclass (pure-code UI).
  • ItemListView.cs — list view, object pool, favorites, Unity lifecycle.
  • TargetSelection.cs — pure-logic target resolution (manual → spectated → local) and dropdown labels.
  • PlayerTargets.cs — captures room characters and spawns through the chosen target's CharacterItems.
  • TargetSelector.cs — the target chip and its hand-built dropdown.
  • SearchText.cs / SearchRanking.cs — pure-logic search normalisation, ranking and catalog ordering.
  • UiEnhancer.cs — UI builder (two styles, SDF-baked sprites).
  • ItemCatalog.cs / ItemCatalogMethods.cs — item catalog data + category logic.
  • FavoriteStore.cs / FavoriteCodec.cs — favorites persistence and its pure-logic codec.
  • Warmup.cs — panel warmup + render priming.
  • TinyPinyin/ — bundled pinyin library (MIT, locally modified).
  • Localization/ — 15 embedded language JSONs.
  • package/ — canonical manifest.json and icon.png used to build the release folder.
  • tests/ — unit tests (excluded from the mod DLL via Compile Remove).
  • pack.ps1 / verify_catalog.py — release assembly and catalog invariant checks.

Acknowledgements

  • Original mod author: quackandcheese — quackandcheese-ItemSpawner (0.1.4).
  • Code reference: ItemSpawnerEnhanced by lllei — the localization catalog and language-code mapping in this mod are derived from it (MIT; see the notices file).
  • Teammate spawning reference: the "spawn for any teammate" code was also written with reference to ItemSpawnerEnhanced by lllei — specifically its PlayerTargetService / TargetResolver / PlayerTargetController target-selection design and spawn flow (MIT; see the notices file).
  • TinyPinyin: TinyPinyin.Net (MIT, © 2017 Jay.M.Hu).

License

MIT — see LICENSE. Third-party notices in THIRD_PARTY_NOTICES.md.

CHANGELOG

Changelog

[2.5.0] - 2026-10-22

Added

  • Items can now be spawned directly for a teammate: a new "Spawn for" selector sits to the right of the search box, offering "Smart target" or any Scout in the room. Smart target gives the item to you while you are alive, and to the Scout you are spectating after death. With a teammate selected manually, spawned items appear directly in that player's hands (if their inventory is full, the game's own rules drop the item at their feet). The target list refreshes every second, so teammates joining or leaving are picked up without reopening the panel.

Improved

  • Target names now hide rich-text color codes (for example <color=#FF79BC>), so players using colored names are shown by their visible name instead of raw markup.
  • The target dropdown now shows a thin scrollbar on the right when the list has more than six rows, making it clear that the list can be scrolled.
  • New 256x256 cover art showing both the Chinese and English mod names.

[2.4.0] - 2026-09-10

This version improves catalog ordering (related items stay together) and fixes the issue where Green Clusterberry could not be spawned.

Changed

  • Related items are now grouped together: variants of the same item are displayed next to each other instead of being separated by unrelated items. This covers the four clusterberries, four crispberries, five shroomberries, four berrynanas and four berrynana peels, eight mushrooms, five eggs, four backpacks, five Scout charms, four rope tools, four light sources, five tool fungi, three winterberries, three kingberries, two prickleberries, two coconuts, two lollipops, two drinks, two compasses, two balloons, two bugles, and more.
  • Category buttons no longer respond while the search box has text: searching always covers all items, and the previous category returns when the search is cleared. This removes the confusion of "Tools selected but food shown in results".

Fixed

  • Fixed Green Clusterberry being impossible to spawn: its internal name carries an "_UNUSED" suffix and was therefore hidden as an unused item. It is actually the fourth clusterberry (structurally identical to Black, Red, and Yellow Clusterberry), spawns normally in the game, and can be eaten normally.

[2.3.0] - 2026-08-30

This version fixes several problems that could make the mod genuinely unusable (panel lock-up, host-side crash, gamepad inoperability, and panels full of missing-glyph boxes in some languages), and removes an ineffective "missing-glyph fix" from the previous version.

Fixed

  • Fixed Scout Cookies (both variants) being incorrectly placed in the Consumables category (food stays in Food even when it has limited uses).
  • Fixed the character being permanently unable to move and the panel becoming impossible to close when an error occurred while opening the panel (the lock is now always released, no matter which step fails).
  • Fixed clicking an item being able to crash the host: spawning is now refused with a message when the local character's data is not ready yet, or when the item comes from another mod whose assets are not packed with the game.
  • Fixed gamepad players being unable to leave the search box with the stick or D-pad and being forced to type (gamepad now focuses the first category button by default, with a visible focus highlight).
  • Fixed item names remaining as missing-glyph boxes until the language was changed manually when the panel was opened at certain moments in Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, or Ukrainian.
  • Fixed the panel opened with F5 during a loading screen being closed automatically about half a second later, which looked like "F5 works only sometimes" (the toggle key is now ignored while loading).
  • Fixed Climbing Chalk and Basketball showing English names in Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish, Portuguese, Polish, and Turkish (all 15 languages are now complete).
  • Fixed mushroom guidebook pages being incorrectly placed in Food when "Hide unused items" was turned off.
  • Fixed dark edges on panel cards and the heart marker.
  • Fixed the "Hide unused items" change occasionally being discarded when the toggle was switched.

Changed

  • Climbing Chalk and Scoutmaster Soul are now hidden by default (neither has any actual use in the game; turning "Hide unused items" off still shows them).
  • Basketball (formerly "Space Basketball"): the new name states what it does - throwing it teleports you to where it lands.
  • The Ukrainian label for Favorites now follows the usual UI convention.
  • Updated the required BepInEx version to 5.4.75301, the version actually in use.

Removed

  • Removed the 0.25-second cooldown between item clicks; clicks now spawn as fast as you click.
  • Removed the "decorative font coverage probe" added in the previous version: the game's UI font and the hand-drawn decorative font are the same font asset, so the probe could never change what was displayed. It only ran a useless glyph scan and logged a message that contradicted reality on every language change. Multilingual glyphs were always provided by the game font's fallback chain, and rendering is unaffected.

[2.2.0] - 2026-08-29

This version focuses on stability, multilingual rendering, and interaction details.

Fixed

  • Fixed an extreme case where failing to open the panel left the character unable to act and the panel impossible to close.
  • Fixed some text showing as missing-glyph boxes in Polish, Turkish, German, French, Spanish, and Portuguese.
  • Fixed rapid repeated clicks leaving a large number of uncollected items in the room.
  • Fixed items appearing in batches and then suddenly reordering the first time the panel was opened.
  • Fixed category button text overflowing and overlapping in some languages.
  • Fixed item icons ignoring the game's entomophobia and colorblind accessibility settings.
  • Fixed the panel possibly breaking when switching UI styles.
  • Fixed category button text being forced to uppercase in Russian and Ukrainian (now matches the game's typography).
  • Fixed the search box not receiving input focus automatically after opening the panel (keyboard and mouse).
  • Fixed items in the rightmost column being covered by the scrollbar and becoming unclickable.
  • Fixed favorite data being deleted by mistake in certain cases (unrecognized favorites are now kept and reported in the log instead of being removed automatically).
  • Fixed clicking an item during a loading screen spawning it into a scene that was about to unload.
  • Fixed the toggle key still firing when set to a letter key while the search box had focus (function keys such as F5 are unaffected and can always close the panel).
  • Fixed right-dragging an item card and releasing it toggling the favorite by mistake.

Improved

  • Faster search response (lower per-keystroke cost).
  • Unified the Misc category name across English, Japanese, and Korean.
  • Aligned the left and right edges of the search box and category buttons.
  • Other stability and compatibility improvements.

[2.1.0] - 2026-08-27

This version focuses on stability and category accuracy.

Fixed

  • Fixed favorites of hidden items being permanently deleted when toggling "Hide unused items" (favorite pruning no longer depends on display filtering).
  • Fixed item ordering and grid layout possibly becoming corrupted when toggling the option.
  • Fixed toggling the option while the list was being built being silently ignored until the game was restarted.
  • Fixed the list staying permanently empty and F5 being unable to recover after a catalog rebuild failure.
  • Fixed clicking an item doing nothing and showing no message when not in a room.
  • Fixed a card getting stuck in the pressed color and affecting other items when the list refreshed while an item was held.
  • Fixed same-named items changing grid positions randomly after a language change.
  • Fixed Russian and Ukrainian UI text possibly showing as missing-glyph boxes.
  • Fixed stretched corners and outlines on the scrollbar.
  • Fixed resource-ordering hazards when switching UI styles.

Changed

  • Renamed the "Scenes" category to "Misc" to better match its actual contents.
  • Corrected item categories: Healing Mushroom, whole Coconut, and Scout Cookies.
  • Made automatic categorization stricter for items not in the catalog, so ordinary props with cooking components are no longer misclassified as food.

[2.0.1] - 2026-08-18

Changed

  • Panel size aligned with the original ItemSpawner (vertical range expanded from 0.18-0.82 to 0.107-0.895, about 79% of screen height).

[2.0.0] - 2026-08-18

First release of ItemSpawnerPremium: a standalone single-DLL item spawner mod that requires only BepInEx (no longer depends on the original ItemSpawner / AutoHookGenPatcher).

Features

  • F5 opens the item spawner; click an item to spawn it in your hand.
  • Localized in all 15 game languages (item names and UI text).
  • Smart search + Pinyin (full spelling and initials).
  • Multi-tag categories: All / Tools / Food / Mystical / Equipment / Consumables / Misc.
  • Favorites: right-click to favorite, heart marker, config persistence, favorites filter.
  • Hide-unused toggle (on by default; turn it off to show everything): hides chess pieces, torn guidebook pages, and other decorative/unused items by default.
  • Two UI styles: HandDrawn (default) / Transparent.