Professional dedicated server framework for Schedule I - Run authoritative, headless servers with full multiplayer support, admin management, and extensive modding capabilities.
DedicatedServerMod transforms Schedule I into a multiplayer-ready game with dedicated server support. It provides a complete framework for:
- Headless Server Operation: Run servers without graphics/UI overhead
- Client-Server Architecture: Authoritative server with synchronized clients
- Admin & Permission System: Operators, admins, and granular command permissions
- TCP Remote Console: Manage servers remotely via telnet/SSH
- Custom Messaging API: Build server and client mods with bidirectional communication
- Save/Load Management: Automated saves, backup systems, and persistence
- Time & Sleep Systems: Server-controlled time progression and sleep cycling
- Extensive Configuration: JSON-based config with command-line overrides
- 🖥️ True Dedicated Server: Headless operation with minimal resource usage
- 👥 Multi-Player Support: Up to 16 players (configurable)
- 🔐 Advanced Permissions: Three-tier system (operators, admins, players)
- 📡 TCP Console: Remote server management and monitoring
- 💾 Auto-Save System: Configurable intervals with player event triggers
- ⏰ Time Management: Never-stop time option with multiplier control
- 🌙 Sleep Cycling: Server-controlled sleep with ghost host support
- 🔌 Master Server Integration: Optional server list registration
- 📊 Performance Monitoring: Built-in metrics and logging
- 🎮 Seamless Connection: Connect to dedicated servers like normal multiplayer
- 🖼️ Enhanced UI: Dedicated server indicators and admin console
- 📨 Custom Messaging: Bidirectional communication with server mods
- 🛠️ Admin Tools: In-game admin console for permitted players
- 🔄 Server Data Sync: Automatic sync of server configuration and state
- 📦 Server Mod API:
IServerModinterface with lifecycle callbacks - 🎨 Client Mod API:
IClientModinterface for client-side extensions - 🔌 Custom Messaging: Type-safe message passing between server/client mods
- 💾 Save/Load Hooks: Integrate custom data persistence
- 🎯 Event System: Subscribe to player connect/disconnect, server events
- OS: Windows Server 2019+, Windows 10/11, or Linux (Wine/Proton)
- CPU: 2+ cores recommended
- .NET: .NET Standard 2.1 (included with MelonLoader)
- RAM: 2GB minimum, 4GB recommended
- Storage: 500MB for game + saves
- Schedule I: Latest version (matches server version)
- MelonLoader: 0.6.x or 0.7.0/0.7.2+ (avoid 0.7.1)
You can disable the MelonLoader console window to run the server completely headless:
- Navigate to
Schedule I/UserData/ - Open
MelonLoader.cfgin a text editor (may be namedLoader.cfgin older MelonLoader versions) - Find the
[Console]section - Set
HideConsole = true(orhide_console = truein older versions) - Restart the server
The server will now run without any visible windows. Use the TCP console or log files for monitoring.
- Getting Started Guide: Detailed setup instructions
- Server Modding: Complete server mod API reference
- Client Modding: Complete client mod API reference
- Configuration Reference: All config options explained
- Commands System: Understanding permissions and commands
- Custom Messaging: Building server-client communication
If you host a public server, enable ticket authentication so clients must prove Steam identity before they can run server commands.
{
"requireAuthentication": true,
"authProvider": "SteamGameServer",
"authTimeoutSeconds": 15,
"authAllowLoopbackBypass": true,
"steamGameServerLogOnAnonymous": true,
"steamGameServerQueryPort": 27016,
"steamGameServerMode": "Authentication"
}authProvidersupportsNone,SteamGameServer, andSteamWebApiSteamGameServeris the recommended provider for dedicated hosting and Docker deployments- Keep
authAllowLoopbackBypassenabled so the dedicated server host loopback connection is not blocked - Set
steamGameServerLogOnAnonymoustofalseand providesteamGameServerTokenwhen using a persistent GSLT SteamWebApiconfiguration fields exist, but Web API ticket validation is not yet fully implemented
We welcome contributions! Please read our Contributing Guide and Coding Standards before submitting PRs.
- Clone the repository
- Copy
local.build.props.exampletolocal.build.props - Configure your game paths in
local.build.props - Build with:
dotnet build -c Mono_Server
See BUILD_SETUP.md for detailed build instructions.
- Check
MelonLoader/Latest.logfor errors - Verify
server_config.jsonis valid JSON - Ensure no port conflicts (default 38465)
- Check server firewall allows port 38465
- Verify server is running (
netstat -an | findstr 38465) - Ensure client and server versions match
- If auth is enabled, verify
authProviderand Steam server login settings inserver_config.json
- Check your Steam ID is in operators/admins list
- Verify
server_config.jsonsaved correctly - Reload config:
/reload(if already operator)
- Check logs in
UserData/admin_actions.log - Enable debug mode:
"debugMode": truein config - Join our Discord: [Link Here]
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
This is an alpha/beta release. Expect bugs and incomplete features. Use in production at your own risk. Always backup your save files before using with a dedicated server.
This mod is not officially affiliated with or endorsed by the developers of Schedule I.
Made with ❤️ for the Schedule I community