SideHustle
| Latest release | 2.4.0 |
| Download | GitHub · Thunderstore |
| Requires | MelonLoader 0.7.3, S1API Forked 3.1.1, Sideload 1.13.0, WhatsDab 1.0.2 |
| API | Reference |
🛟 Need help or found a bug? Get support at support.doodesch.de/sidehustle.
Side Hustle adds a single entry to the Schedule I main menu that lists every installed “gamemode” mod and launches it straight from the menu - no savegame required. It is the shared entry point that gamemode mods (like an in-game tattoo editor) plug into. Built on S1API.
🌐 Is anyone playing right now? Every public lobby is listed live at SideHustle.doodesch.de - who is hosting, which gamemode, how full it is, and the exact mods that session runs. Check before you launch; you still join from inside the game.
What it is
Section titled “What it is”Side Hustle is a hub, not a gamemode by itself. On its own it just adds a Side Hustle button to the main menu. Install gamemode mods that build on it and they appear in the list; pick one and it launches immediately in its own self-contained session. Gamemodes never load or touch a normal savegame, so they stay cleanly separated from your real playthrough.
If you installed Side Hustle as a dependency of another mod, you do not have to do anything - that mod registers itself and shows up under the Side Hustle entry.
Features
Section titled “Features”- One menu entry for every gamemode. A single “Side Hustle” button on the main menu lists all installed gamemode mods with their name, description, author and a Singleplayer / Multiplayer badge.
- No savegame. Gamemodes launch in their own session and never load or alter your saves.
- Singleplayer, host or join. Singleplayer gamemodes launch instantly; multiplayer gamemodes show a Singleplayer / Host / Join choice, all in the native menu style.
- Configure before you host. Hosting opens a native-style setup form: set the exact player count (up to the lobby cap), choose a public or private (friends-only) lobby with an optional password, and adjust any settings the gamemode exposes (sliders, toggles, choices, text) - all handed to the gamemode when it starts.
- Public server browser. Find and join open sessions for a gamemode, shown as cards with the host, player count and a lock for password-protected lobbies; filtered so each gamemode only lists its own lobbies. Bigger lobbies (well past the vanilla 4 players) come built in - no extra lobby mod needed.
- Play with anyone, not just friends. Schedule I normally kicks joiners who aren’t on the host’s Steam friends list. While you host a Side Hustle gamemode that kick is lifted, so anyone can join your public or password-protected lobbies. Normal co-op outside Side Hustle is unaffected.
- Custom display name. Each gamemode has its own “Your name” field on its Host / Join screen. Fill it in and other players see that name - the in-game nametag over your character, scoreboards and the server browser - instead of your Steam name. A privacy option for public matches; per gamemode, per session, and never saved.
- Discover what’s being played. The menu also lists gamemodes you don’t have installed that have live public lobbies right now, with a “Download Mod” button so you can go get them. Toggle it off in the settings; gamemode authors can opt their gamemode out of being advertised.
- Host controls + friend invites. The host can kick a player from the session, and every lobby member - not just the host - can invite Steam friends from the pause-menu panel.
- World gamemodes. Gamemodes that need the actual game world get a throwaway session booted for them, outside your save slots, so your real saves are never touched.
- Conflict-free mod sets (optional, the host’s choice). A gamemode can declare which other mods it works with. When you host it, the setup form lets you keep your full set (“Current installed mods”, the default) or run only the gamemode’s mods (“Required mods only”) in a temporary, isolated profile - after a confirmation that lists exactly what changes. Nothing in your real Mods folder is ever disabled, renamed, moved or deleted (it uses junctions/hardlinks, no admin needed), so your mod manager stays in sync; leaving the gamemode restarts back to your full set, and a normal launch always loads everything.
- Load-order independent API. Gamemode mods register themselves whether they load before or after Side Hustle.
- Stays out of the way. A single toggle hides the entry without uninstalling.
New in 2.0: Profiles and Sync
Section titled “New in 2.0: Profiles and Sync”- Join a gamemode you don’t have installed. A public gamemode lobby lists the mod files a joiner needs. Pick “Join (installs the mods)”, choose a session, and Side Hustle installs the gamemode (Thunderstore automatically, anything else via the checklist with a direct Nexus link), restarts and joins that lobby. Your own mods stay put.
- Mod Profiles (in-game mod manager). A separate “Mod Profiles” main-menu entry keeps isolated sets of mods you can switch between (the game restarts into the one you pick). Build a profile from your installed mods or browse and install straight from Thunderstore with dependencies resolved. Your real Mods folder is never managed, so external managers keep working. A short startup prompt lets you pick the profile to load (or the full set).
- Vanilla Co-op with mod sync. Host your own savegame as a public lobby (from the menu, or when you click
Continue). When someone joins, Side Hustle compares mods and offers to set up a matching profile automatically -
download from Thunderstore or a mod’s GitHub releases, restart, rejoin - so you can play modded co-op with anyone
without hand-matching mod lists. Mods that still need a browser download (e.g. Nexus) get a guided checklist:
open the link, download the file, and Side Hustle picks it up from your Downloads folder (or Vortex’s), verifies
it and installs it on its own. Optionally require synced clients. Downloads only ever come from Thunderstore’s
CDN or GitHub releases, every file is hash-verified, and mods are never sent between players directly.
The build published on Thunderstore downloads nothing (
-p:StoreBuild=thunderstore), because Thunderstore does not allow a package to fetch executable code - not from GitHub and not from Thunderstore either. There, every mod takes the checklist route, and “Add from Thunderstore” is absent from Mod Profiles; the package index and mod icons are still fetched, being JSON and PNGs. The GitHub and Nexus builds are unchanged. - Lobby browser on the web - see every open public lobby at SideHustle.doodesch.de without starting the game.
- Sync mod settings (optional). A host can apply chosen mods’ settings to everyone in the session only, never touching their real settings; anything that looks like a secret is off by default.
- Lobby chat on the phone. Side Hustle carried its own messenger until 2.1; that app is now WhatsDab, a mod of its own and a requirement of this one. Same idea, more of it: group and one-to-one threads, unread badges, notifications, and both orientations. Nothing to set up - install and it is on the phone.
Requirements
Section titled “Requirements”| Component | Version / Source |
|---|---|
| Schedule I | IL2CPP (current Steam public build) |
| MelonLoader | 0.7.3+ |
| S1API | ifBars/S1API_Forked |
| WhatsDab | 1.0.2+ - the lobby chat app, pulled in as a dependency |
Installation
Section titled “Installation”Recommended: a Thunderstore mod manager
Section titled “Recommended: a Thunderstore mod manager”Install with a mod manager (r2modman / Gale) from the Schedule I community; the dependencies (MelonLoader, S1API) are pulled in automatically.
Manual
Section titled “Manual”- Install MelonLoader 0.7.3 for Schedule I.
- Install S1API (its DLLs go in
Mods/andPlugins/per its own instructions). - Drop
SideHustle.dllinto your Schedule IMods/folder. - Install one or more gamemode mods that use Side Hustle.
Configuration
Section titled “Configuration”Settings live in UserData/MelonPreferences.cfg
under SideHustle_01_Main.
| Setting | Default | What it does |
|---|---|---|
Enabled | true | Show the Side Hustle menu entry. Off hides it without uninstalling (return to the main menu to apply). |
ShowUninstalledGamemodes | true | Also list gamemodes you don’t have installed that currently have live public lobbies, with a Download link. Off shows only your installed gamemodes. |
For mod authors
Section titled “For mod authors”Make your mod show up as a gamemode in a few lines. Reference SideHustle.dll, declare it as an
optional dependency so your mod still loads if Side Hustle is absent, and register from your
OnInitializeMelon:
[assembly: MelonOptionalDependencies("SideHustle")]
SideHustle.API.Register(new GamemodeDescriptor{ Id = "you.yourmode", // stable, unique DisplayName = "Your Mode", Description = "What your gamemode does.", Author = "You", Support = GamemodeSupport.Singleplayer, // or Multiplayer / Hybrid Surface = GamemodeSurface.MenuSpace, // overlay on the menu (no save), or World OnLaunchSingleplayer = ctx => { /* start your gamemode */ }, OnExitToHub = ctx => { /* clean up when the player backs out */ }});For a multiplayer gamemode set Support to Multiplayer or Hybrid and add OnHostMultiplayer /
OnJoinMultiplayer. Side Hustle creates and tracks the lobby and (for World gamemodes) boots the
session, then hands you a LaunchContext with the host/client role, lobby id, player count and the
host’s settings. Registration replaces by Id, so re-registering is safe. Call ctx.ReturnToHub()
from your gamemode when it finishes to return to the menu.
Roadmap
Section titled “Roadmap”Side Hustle 1.1.0 adds multiplayer (Host / Join), the public server browser, and world gamemodes - so both singleplayer and multiplayer gamemodes launch straight from the menu. See the wiki for the full roadmap and API reference.
Compatibility
Section titled “Compatibility”- IL2CPP build only (current Steam public branch).
- Works alongside any other MelonLoader/S1API mod. Side Hustle only adds a main-menu entry and the registration API; it does not touch gameplay or saves.
Credits
Section titled “Credits”- DooDesch - mod author.
- ifBars/S1API - the modding API this is built on.
License
Section titled “License”Provided as-is under the MIT License.