NoMoreTrash
Automatically clears trash to keep your game clean! No more overflowing trash bins - trash is cleared after you sleep and with a configurable hotkey.NoMoreTrash
Automatically clear trash in Schedule I to keep your dispensary clean!
A MelonLoader mod for Schedule I that automatically clears trash after you sleep and provides a hotkey for manual cleanup. Never worry about overflowing trash bins again!
🎯 What Does It Do?
NoMoreTrash automatically executes the cleartrash console command to remove all trash from your dispensary. This happens:
- Automatically after you wake up from sleeping
- Manually when you press the hotkey (default:
P)
No more tedious trash management - focus on running your business while this mod keeps things tidy!
✨ Features
- 🛏️ Auto-clear after sleep: Automatically clears trash when you wake up
- ⌨️ Manual hotkey: Press a configurable key to instantly clear trash anytime
- ⚙️ Fully configurable: Customize hotkey, enable/disable features via MelonPreferences
- 🔄 Dual backend support: Works with both IL2CPP (main branch) and Mono (alternate branch)
- 🛡️ Robust fallback: If sleep event detection fails, uses timed interval (24 minutes)
- 📝 Clean logging: Informative messages about when trash is cleared
📥 Installation
Requirements
- Schedule I (Steam)
- MelonLoader v0.7.0 or newer
Steps
-
Install MelonLoader on your Schedule I installation
- Download from MelonLoader releases
- Run the installer and select your Schedule I game folder
-
Download NoMoreTrash
- Get the latest release from Releases
- Download the version matching your game branch:
NoMoreTrash-IL2CPP.dllfor main/beta branchNoMoreTrash-Mono.dllfor alternate/alternate-beta branch
-
Install the mod
- Place the downloaded
.dllfile inSchedule I/Mods/folder - Launch the game - you should see NoMoreTrash initialization messages in the console
- Place the downloaded
⚙️ Configuration
Configuration is done through MelonPreferences, located in Schedule I/UserData/MelonPreferences.cfg
Settings
| Setting | Default | Description |
|---|---|---|
Hotkey |
P |
Key to manually clear trash |
HotkeyEnabled |
true |
Enable/disable hotkey trash clearing |
SaveEventEnabled |
true |
Enable/disable automatic clearing after sleep |
Command |
cleartrash |
Console command to execute (advanced) |
How to Change Settings
Edit config file
- Close the game
- Open
Schedule I/UserData/MelonPreferences.cfg - Find the
[NoMoreTrash]section - Change values (e.g.,
Hotkey = "O"for the O key) - Save and restart the game
### Available Hotkeys
You can use any Unity KeyCode value. Common examples:
- Letters: `A`, `B`, `C`, etc.
- Numbers: `1`, `2`, etc.
- Function keys: `F1`, `F2`, etc.
- Special: `Delete`, `Insert`, `Home`, `End`, etc.
[Full KeyCode list](https://docs.unity3d.com/ScriptReference/KeyCode.html)
---
## 🔧 How It Works
### Automatic Cleanup
**Primary Method (Preferred):**
- Hooks into the game's sleep/wake cycle via `TimeManager.Instance.onSleepEnd`
- When you wake up, trash is automatically cleared
- Seamless integration with game events
**Fallback Method:**
- If event hooking fails, uses a 24-minute timer (game's full day cycle interval)
- Ensures trash still gets cleared even if events aren't available
- Check console logs to see which method is active
### Manual Cleanup
Press the configured hotkey (default: `P`) anytime during gameplay to instantly clear trash.
### Cross-Backend Support
The mod uses conditional compilation to support both game backends:
- **IL2CPP** (main branch): Uses IL2CPP-compatible event handlers
- **Mono** (alternate branch): Uses native C# event handlers
Both versions function identically from the user's perspective.
---
## 🎮 Usage Guide
### First Time Setup
1. Launch the game with the mod installed
2. Check the console for: `"NoMoreTrash - Automatic trash cleanup initialized!"`
3. You'll see: `"Ready to keep things clean! Press [P] to manually clear trash."`
4. Play normally - trash will auto-clear when you sleep
### Testing the Mod
**Test manual clearing:**
1. Generate some trash in your dispensary
2. Press `P` (or your configured hotkey)
3. Console shows: `"✓ Trash cleared successfully!"`
**Test automatic clearing:**
1. Generate trash before sleeping
2. Sleep in the game
3. When you wake up, trash is automatically cleared
4. Console shows: `"✓ Trash cleared successfully!"`
---
## 🐛 Troubleshooting
### Trash isn't clearing automatically
**Check these:**
1. Look for this message on startup: `"Automatic trash cleanup enabled - clearing after sleep"`
2. Verify `SaveEventEnabled = true` in config
3. Make sure you're actually sleeping (not just waiting/skipping time)
**If you see: "cleaning every 24 minutes" instead:**
- The mod is using fallback mode (still works, just timed)
- Trash will clear every 24 in-game minutes instead of after sleep
### Hotkey doesn't work
1. Check console for: `"Ready to keep things clean! Press [X]"` - verify the key shown
2. Ensure `HotkeyEnabled = true` in config
3. Try a different key in case of conflicts with other mods
4. Make sure you're in-game (not in menus)
### Mod not loading
1. Verify MelonLoader is installed correctly (console shows MelonLoader version on startup)
2. Check you have the right version:
- **IL2CPP** build for main/beta branch
- **Mono** build for alternate/alternate-beta branch
3. Look for errors in `Schedule I/MelonLoader/Latest.log`
### Console shows errors
If you see `"Failed to clear trash:"` messages:
- Game console might not be available yet (try again in a moment)
- The `cleartrash` command might have changed in a game update
- Check `Latest.log` for detailed error information
---
## 🔄 Compatibility
### Game Versions
- ✅ IL2CPP (main branch / beta branch)
- ✅ Mono (alternate branch / alternate-beta branch)
### Other Mods
NoMoreTrash should be compatible with most other mods. It:
- Uses a simple hotkey (easily changed if conflicts occur)
- Doesn't modify game files or assets
- Only executes a console command that already exists in the game
- Properly cleans up on scene changes
**Potential Conflicts:**
- Mods that also use the `P` key (solution: change hotkey)
---
## 📊 Performance
NoMoreTrash is lightweight and has minimal performance impact:
- Event-based (no polling or constant checking)
- Executes only when needed (after sleep or hotkey press)
- Clean memory management (unsubscribes events on scene changes)
- No continuous coroutines (unless using fallback mode)
---
## 🗺️ Roadmap / Future Features
Potential enhancements for future versions:
- [ ] Custom command delays/scheduling
- [ ] Visual feedback/notifications
- [ ] Hotkey for other console commands
Feature requests are welcome! Open an issue on GitHub.
---
## 📝 Changelog
### Version 1.0.0 (Current)
- ✅ Initial release
- ✅ Automatic trash clearing after sleep
- ✅ Manual hotkey clearing
- ✅ Full configuration via MelonPreferences
- ✅ IL2CPP and Mono backend support
- ✅ Fallback timer mechanism
- ✅ Clean logging and error handling
See [CHANGELOG.md](CHANGELOG.md) for detailed version history.
---
## 💬 Support & Feedback
### Getting Help
- **Issues/Bugs**: [Open an issue](../../issues) on GitHub
- **Questions**: Ask in the [Schedule I Modding Discord](https://discord.gg/9Z5RKEYSzq)
- **Documentation**: This README and inline code comments
### Reporting Bugs
Please include:
1. Game version and branch (IL2CPP or Mono)
2. MelonLoader version
3. NoMoreTrash version
4. What you expected vs. what happened
5. Relevant console output or `Latest.log` excerpts
6. Steps to reproduce
### Feature Requests
Open an issue with the `enhancement` label and describe:
- What feature you'd like
- Why it would be useful
- How you imagine it working
---
## 👨💻 For Developers
### Building from Source
**Requirements:**
- .NET SDK 6.0 or newer
- Visual Studio, Rider, or VS Code
- Schedule I game installation (both branches for full testing)
**Build Steps:**
```bash
# Clone the repository
git clone <repository-url>
cd NoMoreTrash
# Build IL2CPP version
dotnet build -c "Debug IL2CPP"
# Build Mono version
dotnet build -c "Debug Mono"
Project Structure:
NoMoreTrash/
├── MainMod.cs # Main mod logic
├── Helpers/
│ ├── ModLogger.cs # Centralized logging
│ └── Utils.cs # Utility methods
├── vision.md # Technical design document
└── README.md # This file
Architecture
The mod uses:
- Conditional Compilation: Full
#if MONO/#elseseparation for backends - Event-Driven: Subscribes to
TimeManager.Instance.onSleepEnd - Fallback Pattern: Graceful degradation to timer if events fail
- MelonPreferences: Persistent configuration storage
- ModLogger: Centralized logging with debug support
See vision.md for detailed technical documentation.
📜 License
This mod is released under MIT License (or your chosen license).
Feel free to modify, redistribute, or use as reference for your own mods!
🙏 Credits
Created by: SirTidez
Built with:
- MelonLoader - Mod loading framework
- Schedule I - The game by Two Star Games
Special Thanks:
- Schedule I modding community
- k073l for the S1MelonMod template
- Everyone who provides feedback and bug reports
🗑️ Keep It Clean!
Tired of trash piling up? Let NoMoreTrash handle it automatically. Focus on what matters - running your dispensary!
Download now and never worry about trash again! ✨
Made with ❤️ for the Schedule I community
