A Lua modding framework for Schedule I that aims to expose the game's functionality to Lua scripts, enabling custom gameplay mechanics, automation, and new features. ScheduleLua is currently in beta development, and the only features that are known to be working properly are the ones in the example scripts. I and or other contributors cannot guarantee that everything will work or be available, especially after the game updates.
ScheduleLua is a MelonLoader mod that integrates the MoonSharp Lua interpreter with Schedule I, providing an easy to learn, flexible scripting environment. The framework exposes core game systems through a Lua API, allowing modders to create custom gameplay experiences without direct C# coding.
- Robust Lua Environment: Built on MoonSharp for .NET integration
- Hot Reloading: Edit scripts while the game is running for rapid development
- Event System: Subscribe to game events like day changes, player status updates, etc.
- ScheduleOne API: Access to player, NPCs, and more
- Error Handling: Detailed error reporting and script isolation
- Mod Configuration: Configurable settings via MelonPreferences
- Install MelonLoader for Schedule I
- Download the latest ScheduleLua release zip from Thunderstore
- Extract the zip file and drag the
ModsandUserLibsfolders into your Schedule I game directory - Launch the game
For a comprehensive guide on getting started with ScheduleLua, visit our online documentation.
Edit settings in UserData/MelonPreferences.cfg:
[ScheduleLua]
EnableHotReload = true
LogScriptErrors = true
We welcome contributions to ScheduleLua! This guide will walk you through the process of contributing to the project.
-
Fork the Repository
- Visit ScheduleLua GitHub repository
- Click the "Fork" button in the top right corner
- This creates a copy of the repository in your GitHub account
-
Clone Your Fork
git clone https://github.com/YOUR-USERNAME/ScheduleLua.git cd ScheduleLua -
Add the Original Repository as Upstream
git remote add upstream https://github.com/ScheduleLua/ScheduleLua-Framework.git
-
Create a Feature Branch
git checkout -b feature/your-feature-name
- Use a descriptive branch name related to your changes
- Prefix with
feature/,bugfix/,docs/, etc. as appropriate
-
Make Your Changes
- Implement your feature or fix
- Follow the existing code style and conventions
- Add or update documentation as needed
-
Test Your Changes
- Ensure your changes work as expected
- Test with the game to verify functionality
- Check for any unintended side effects
-
Commit Your Changes
git add . git commit -m "Add a descriptive commit message"
- Use clear and descriptive commit messages
- Reference issue numbers in commit messages when applicable
-
Keep Your Branch Updated
git fetch upstream git rebase upstream/main
-
Push to Your Fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Select your feature branch
- Click "Create Pull Request"
- Fill in the PR template with details about your changes
- Reference any related issues
-
Respond to Feedback
- Be responsive to comments and feedback
- Make requested changes and push to your branch
- The PR will update automatically
- Code Style: Follow the existing code style in the project
- Documentation: Update documentation when adding or changing features
- Commits: Keep commits focused and logically separate
- Testing: Test your changes thoroughly before submitting
- Issues: Create an issue before working on major changes
Thank you for contributing to ScheduleLua!
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- MelonLoader for the mod loader
- MoonSharp for the Lua interpreter
- TVGS for making Schedule 1
- nica.0355 For their contributions to adding more lua bindings
- All contributors and the modding community
