# Graffiti Mod for Schedule I This mod introduces a graffiti system to Schedule I, allowing players to spray paint on designated walls, purchase spray cans, and undertake graffiti missions for rewards. ## Version 1.0.0 (Corresponds to current development state) ## Installation 1. **MelonLoader:** Ensure you have MelonLoader installed (version 0.5.7 or newer recommended). 2. **Mod File:** Place `GraffitiMod.dll` into your `MelonLoader/Mods` folder. 3. Place the GraffitiJobMod folder into your `UserData/` folder. If the `GraffitiJobMod` folder 4. **Start Game:** Launch Schedule I. ## Features * **Spray Cans:** Purchase spray cans from in-game shops (e.g., Dan's Hardware Store). * **Graffiti Mechanics:** * Equip a spray can. * Look at a designated graffiti wall (objects named starting with "Graffiti" or tagged appropriately). * Hold the **Left Mouse Button** to spray. * A paint level UI will show remaining paint. * A custom cursor indicates when you can spray. * **Police System:** Be wary! If police officers see you spraying, they will be alerted and may initiate a pursuit. * **Mission System:** * After completing a random number of graffiti tags (1-6), you may receive a phone call offering a mission. * Answer a ringing payphone to see the mission offer. * A UI will appear allowing you to **Accept (Y key)** or **Decline (N key)** the mission. * Accepted missions have objectives (tag a specific location), a reward, and a time limit (default 5 in-game hours). * An active mission display will show the mission title, hint for the target location, and remaining time. * **Saving:** Graffiti tags on walls are saved and will persist across game sessions. Active missions are NOT currently saved. ## Customization (Optional) You can customize graffiti assets by placing your own `.png` files in the specified location. The mod will attempt to load these: * **Graffiti Textures:** Place `.png` files in `UserData/GraffitiJobMod/`. These will be randomly selected when tagging. If custom files are not found, the mod may use defaults or operate without them where appropriate (e.g., no custom icon). ## Controls * **Left Mouse Button:** Spray graffiti (while spray can is equipped and aimed at a valid wall). * **Y Key:** Accept a mission offer when the UI prompt is visible. * **N Key:** Decline a mission offer when the UI prompt is visible. * **Toggle Debug Info (Default F3 in MelonLoader):** The mod setting `showDebugInfo` (true by default in `GraffitiJobMod.cs`) can enable more detailed logging or visual cues for wall paths if you need to troubleshoot. ## Configuration (MelonPreferences) The mod creates the following preferences that can be adjusted in your MelonLoader preferences file or through a configuration manager if you use one: * `MaxSprayDistance` (Default: 5f): Maximum distance from a wall to spray. * `SprayTime` (Default: 3f): Time in seconds required to complete a graffiti tag. * `GraffitiFadeTime` (Default: 10f): Time in *in-game minutes* before graffiti *would* fade (Note: current implementation primarily saves/loads state, explicit fading over time may not be fully active beyond visual reset). * `GraffitiRewardAmount` (Default: 10): Money rewarded for completing a non-mission graffiti tag. * `MissionTimeLimitMinutes` (Default: 300): Time limit in *in-game minutes* for graffiti missions (e.g., 300 minutes = 5 in-game hours). ## Known Issues * Full inventory integration for the spray can (beyond shop purchase and equipping) is basic. * Active missions are not saved if you quit the game. * The visual "fading" of graffiti over extended time is not the primary mechanic; persistence is handled by saving/loading tagged states. ## Troubleshooting 1. Check the MelonLoader console or `MelonLoader/Latest.log` for errors related to "GraffitiJobMod". 2. Ensure the `spraycan_assets` bundle is correctly placed in `UserData/GraffitiJobMod/assets/`. 3. Verify texture paths if using custom textures/icons. ## Credits Created by Rage.Modz