

Summit Supply Shop
An attempt at making a magical instant shop that uses coins found when opening luggageDetails
๐ช Summit Supply Shop
Summit Supply Shop transforms your PEAK runs with a dynamic in-game shop system that lets you spend coins found in luggage on essential mountain gear. Earn coins by opening luggage, then spend them on items that spawn directly into your inventory or above your head when your slots are full!
Any bugs, feedback, or hype can be launched directly into the PEAK modding discord
Find it in #mod-releases under the same name!
๐ What's Here!
โจ Smart Inventory Management
- Intelligent Item Placement: Items automatically go to your inventory first, then backpack slots
- Backpack Auto-Equip: Buying a backpack without one equipped automatically equips it
- Fallback Spawning: When inventory is full, items spawn above your head like ItemSpawner
- Special Backpack Handling: Prevents backpack-in-backpack issues
๐ Performance Optimizations
- Coroutine-Based Input: Replaced Update() with efficient coroutine system (10fps input detection)
- UI Caching: All expensive UI calculations cached and only recalculated when needed
- Cursor State Management: Optimized cursor handling to prevent flickering
- Memory Optimization: Cached item icons, fonts, and biome detection
๐ต Enhanced Audio System
- Coin Collection Sounds: Audio feedback when finding coins in luggage
- Spending Sounds: Audio feedback when purchasing items
- Retry System: Automatic audio reloading if initial load fails
- Configurable Volume: Adjustable audio volume settings (untested)
๐ Robust Multiplayer Support
- Host Handshake System: Reliable host detection and permission management
- Config Synchronization: All clients automatically receive host's shop settings
- PhotonCustomPropsUtils Integration: Uses proven networking system for stability
- Automatic Retry: Multiple handshake attempts ensure reliable multiplayer sync (hopefully)
๐ง Core Features
๐ฐ Coin Economy System
- Luggage Mining: Open luggage to find coins based on configurable min/max values
- Biome-Based Rewards: Different luggage types can give different coin amounts in different biomes
- Visual Feedback: Coin notifications show how many coins you found
- Persistence Options: Choose whether coins carry over between runs
๐ Dynamic Shop Interface
- Scrollable Grid: Clean, organized item display with icons and prices
- Real-Time Affordability: Button colors change based on your coin balance
- Responsive Design: Automatically adapts to screen size and item count
๐ฆ Smart Item Delivery
- Inventory Priority: Items go to hands/pockets first, then backpack slots
- Backpack Intelligence: Special handling for backpack purchases
- Overflow Protection: Items spawn above head when inventory is completely full
โ๏ธ Configuration Options
Shop Access
Key | Default | Description |
---|---|---|
OpenSummitSupplyShop |
F9 | Key to open/close the shop |
UseModifierKey |
false | Require modifier key to open shop |
ModifierKey |
LeftControl | Modifier key when required |
Coin System
Key | Default | Description |
---|---|---|
PersistCoinsBetweenRuns |
true | Keep coins when returning to airport |
CoinVolume |
0.5 | Volume for coin collection/spending sounds |
Luggage Rewards (Per Luggage Type)
Key | Default | Description |
---|---|---|
LuggageMin_[Type] |
1-5 | Minimum coins from each luggage type |
LuggageMax_[Type] |
3-10 | Maximum coins from each luggage type |
Item Pricing (Per Item)
Key | Default | Description |
---|---|---|
ItemPrice_[ItemName] |
5-50 | Cost in coins for each item |
ItemEnabled_[ItemName] |
true | Whether item appears in shop |
UI Settings
Key | Default | Description |
---|---|---|
ItemWidth |
200 | Width of item buttons in shop |
ItemHeight |
200 | Height of item buttons in shop |
ItemIconSize |
128 | Size of item icons |
Spacing |
2 | Spacing between item buttons |
๐ฆ Installation
- Download via Thunderstore manually
- Extract the
.dll
file to:/PEAK/BepInEx/plugins/
- Run the game to generate a config file
๐ฅ Recommended: Use Thunderstore Mod Manager for easy installation and updates! ๐ฅ
Dependencies: Requires PhotonCustomPropsUtils for multiplayer functionality.
๐ฎ How to Play
Basic Usage
- Start a Run: Begin any PEAK run (solo or multiplayer)
- Find Luggage: Open luggage containers to collect coins
- Open Shop: Press your configured key (default: F9) to open the shop
- Browse Items: Scroll through available items with icons and prices
- Purchase: Click "Buy" on items you can afford
- Receive Items: Items automatically go to your inventory or spawn above you
Multiplayer Behavior
- Host Controls: Only the host can modify shop settings
- Automatic Sync: All players receive the host's shop configuration
- Fair Play: Everyone uses the same item prices and availability
- Reliable Connection: Multiple handshake attempts ensure stable multiplayer
Smart Item Management
- Inventory First: Items try to go to your hands/pockets first
- Backpack Second: If inventory is full, items go to backpack slots
- Overflow Spawning: When everything is full, items spawn above your head
- Backpack Special: Buying a backpack auto-equips it if you don't have one
Debug Features
- Debug Mode: Press PageDown to toggle debug mode and add 10 coins
- Comprehensive Logs: Check BepInEx console for detailed operation logs
- Error Recovery: System automatically handles and recovers from errors
๐ ๏ธ Technical Features
Performance Optimizations
- Coroutine Input: 10fps input detection instead of 60fps Update()
- UI Caching: Expensive calculations cached and only updated when needed
- Memory Management: Cached item icons, fonts, and biome detection
- Efficient Rendering: Optimized GUI drawing with minimal per-frame overhead
Reliability Systems
- Error Handling: Comprehensive try-catch blocks with detailed logging
- Retry Mechanisms: Automatic retry for audio loading and network operations
- State Validation: Extensive null checks and state verification
- Graceful Degradation: System continues working even if some features fail
Multiplayer Architecture
- PhotonCustomPropsUtils: Uses proven networking system for stability
- Host Authority: Clear host/client role separation
- Config Serialization: Efficient string-based config data transmission
- Event-Driven Updates: Real-time synchronization of shop changes
๐จโ๐ผ Author
Made by tony4twenty
Check out my other PEAK mods