Schedule I

Details

Last Updated
last month
First Uploaded
last month
Downloads
1.4K
Likes
0
Size
103KB
Dependency string
SirTidez-NoMoreTrash-1.0.0
Dependants

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

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.