# LunaticChat Contribution Guidelines ## Looking for Support? For instructions on using LunaticChat, see the [official documentation](https://lc.m1sk9.dev). For questions, see the [discussion](https://github.com/m1sk9/LunaticChat/discussions). ## Reporting Bugs / Requesting Features Before reporting a bug or requesting a feature, please search the [issues](https://github.com/m1sk9/LunaticChat/issues). If your issue is not already reported, please create a new issue using the provided template. Be sure to include as much detail as possible, including steps to reproduce the issue if applicable. ## Contributing Code We welcome contributions to LunaticChat! LuckPerms adheres to the [Kotlin Coding Conventions](https://kotlinlang.org/docs/coding-conventions.html). It also uses Ktlint. Merging pull requests into the main branch requires passing Ktlint checks. When submitting a pull request, remember to run `./gradlew ktlintFormat`. When making major changes that break backward compatibility, please discuss them beforehand via an issue or discussion. Such changes often cause confusion when made without prior discussion. ### Project Structure LunaticChat uses a multi-module Gradle setup. - `engine`: Contains code shared across all platforms. - `platform-paper`: Contains code specific to the Paper platform. - `platform-velocity`: Contains code specific to the Velocity platform. ### Debugging LunaticChat comes with a Docker environment that can be launched as a debug server. Running `./x start` will launch a Paper server with LunaticChat installed.