Skip to content

ScheduleLua/ScheduleLua-Framework

Repository files navigation

ScheduleLua

ScheduleLua Logo

Version License Status MelonLoader Lua C# Contributions

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.

Table of Contents

Overview

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.

Features

  • 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

Installation

MelonLoader Required Schedule I Latest Release

  1. Install MelonLoader for Schedule I
  2. Download the latest ScheduleLua release zip from Thunderstore
  3. Extract the zip file and drag the Mods and UserLibs folders into your Schedule I game directory
  4. Launch the game

Getting Started

For a comprehensive guide on getting started with ScheduleLua, visit our online documentation.

Configuration

Edit settings in UserData/MelonPreferences.cfg:

[ScheduleLua]
EnableHotReload = true
LogScriptErrors = true

Contributing

PRs Welcome Issues Contributors

We welcome contributions to ScheduleLua! This guide will walk you through the process of contributing to the project.

Getting Started

  1. 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
  2. Clone Your Fork

    git clone https://github.com/YOUR-USERNAME/ScheduleLua.git
    cd ScheduleLua
  3. Add the Original Repository as Upstream

    git remote add upstream https://github.com/ScheduleLua/ScheduleLua-Framework.git

Making Changes

  1. 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
  2. Make Your Changes

    • Implement your feature or fix
    • Follow the existing code style and conventions
    • Add or update documentation as needed
  3. Test Your Changes

    • Ensure your changes work as expected
    • Test with the game to verify functionality
    • Check for any unintended side effects
  4. 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

Submitting Your Contribution

  1. Keep Your Branch Updated

    git fetch upstream
    git rebase upstream/main
  2. Push to Your Fork

    git push origin feature/your-feature-name
  3. 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
  4. Respond to Feedback

    • Be responsive to comments and feedback
    • Make requested changes and push to your branch
    • The PR will update automatically

Contribution Guidelines

  • 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!

License

GPL-3.0 License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Acknowledgments

  • 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

About

A MelonLoader mod for Schedule 1 that aims to provide a Lua Scripting Framework to make modding more accessible

Topics

Resources

License

Stars

Watchers

Forks