# People Playground Mod Development Project ## Project Overview This is a comprehensive mod development project for People Playground v1.27. The project serves as both a learning resource and development toolkit for creating mods in the People Playground game. It includes complete documentation, code snippets, example mods, and extracted wiki content to facilitate mod development. ## Technology Stack - **Programming Language**: C# (.cs files) - **Game Engine**: Unity (UnityEngine namespace) - **API**: ModAPI (People Playground's modding API) - **Documentation Tools**: Python scripts for web scraping and content extraction - **Asset Formats**: PNG images for sprites and thumbnails ## Project Structure ### Core Directories - **`ppg-snippets/`** - Code snippet library containing reusable C# code examples for common modding tasks (https://github.com/mestiez/ppg-snippets) - **`extracted_wiki_content/`** - Complete documentation extracted from the official People Playground wiki (https://wiki.studiominus.nl/) - **`parsing_docs/`** - Python utilities for extracting and processing documentation from the wiki (used only for generating `extracted_wiki_content/`) - **`SledgeHammer/`** - Example mod implementation demonstrating basic mod structure ### Key Files - **`How-To-Mod-In-People-Playground.md`** - Comprehensive tutorial for creating mods (sourced from Steam Community) - **`mod.json`** - Mod configuration file (JSON format) defining metadata, entry point, and assets - **`script.cs`** - Main mod script file containing the C# implementation ## Mod Configuration (mod.json) The `mod.json` file serves as the mod manifest with the following structure: ```json { "Name": "Mod Name", "Author": "Author Name", "Description": "Mod description", "ModVersion": "0.1", "GameVersion": "1.27.5", "ThumbnailPath": "thumb.png", "EntryPoint": "Mod.Mod", "Tags": ["Fun"], "Scripts": ["script.cs"] } ``` - **EntryPoint**: Must follow namespace.class format (e.g., "Mod.Mod") - **Scripts**: Array of C# script files to load - **GameVersion**: Target People Playground version compatibility ## Code Organization ### Namespace Convention All mod code uses the `Mod` namespace: ```csharp namespace Mod { public class Mod { public static void Main() { // Mod initialization code } } } ``` ### ModAPI Usage Patterns - **Item Registration**: Use `ModAPI.Register()` with `Modification()` objects - **Asset Loading**: Use `ModAPI.LoadSprite()` for textures - **Category/Item Discovery**: Use `ModAPI.FindCategory()` and `ModAPI.FindSpawnable()` ## Development Workflow ### Asset Requirements See `CUSTOM-SETTINGS.md` for detailed asset style guidelines and visual requirements. **Folder Structure:** Use `sprites/` and `sfx/` subfolders for organization: ``` mod_folder/ ├── sprites/item.png └── sfx/impact.wav ``` ### Mod Installation Path ``` C:\Program Files (x86)\Steam\steamapps\common\People Playground\Mods ``` ### Important Development Notes - Disable Steam Cloud for People Playground to prevent file recreation issues - File naming within mod folders affects load order (alphabetical) - All script files must use .cs extension (C#) - Only mod.json uses JSON format, all other logic in C# ## Notes - The `parsing_docs/` folder is used exclusively for generating the `extracted_wiki_content/` documentation and should not be considered part of the main mod development project ## Code Snippets Library The `ppg-snippets/` directory contains examples for: - Basic mod entry points - Adding simple items and weapons - Creating humans and entities - Spawning particle effects - Event handling and activation - Environment modification - Debug visualization - Texture assignment for multi-sprite objects ## Documentation Sources - **Extracted Wiki Content**: Complete API documentation from official wiki - **Steam Community Tutorial**: Step-by-step mod creation guide - **Code Snippets**: Practical examples for common modding scenarios ## Build and Test Process 1. Create mod folder in People Playground Mods directory 2. Develop mod.json configuration file 3. Implement C# script logic 4. Create and import sprite assets 5. Test in-game via mod loading system 6. Debug using in-game console and visual feedback ## Security Considerations - Mods run with full file system access within game directory - Steam Cloud synchronization can restore deleted files - Asset paths are relative to mod directory - No sandboxing - mods can access Unity engine fully