SirTidez-NoMoreTrash icon

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.

Last updated a day ago
Total downloads 123
Total rating 0 
Categories Tools Misc Mono IL2CPP
Dependency string SirTidez-NoMoreTrash-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

LavaGang-MelonLoader-0.7.0 icon
LavaGang-MelonLoader

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

Preferred version: 0.7.0

README

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

Steps

  1. Install MelonLoader on your Schedule I installation

  2. Download NoMoreTrash

    • Get the latest release from Releases
    • Download the version matching your game branch:
      • NoMoreTrash-IL2CPP.dll for main/beta branch
      • NoMoreTrash-Mono.dll for alternate/alternate-beta branch
  3. Install the mod

    • Place the downloaded .dll file in Schedule I/Mods/ folder
    • Launch the game - you should see NoMoreTrash initialization messages in the console

⚙️ 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

  1. Close the game
  2. Open Schedule I/UserData/MelonPreferences.cfg
  3. Find the [NoMoreTrash] section
  4. Change values (e.g., Hotkey = "O" for the O key)
  5. 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/#else separation 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:

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