Clone the Repository
First, clone the platform repository:Verify Nix Setup
Before entering the development shell, verify that Nix flakes are working correctly:Enter the Development Shell
The development shell (devshell) contains all tools needed for development:The first time you run
nix develop, it may take several minutes to download and build all dependencies. Subsequent runs will be much faster.What’s Included?
The development shell automatically provides:- Java Development Kit (JDK) - For building Kotlin/Java plugins
- Gradle - Build automation tool
- gradle2nix - Tool for generating Nix expressions from Gradle dependencies
- Node.js - For web application development
- Terraform - Infrastructure as code tool
Project Structure
The Oyasai Server Platform is a monorepo containing plugins, infrastructure, and web applications:Available Plugins
The platform currently includes these plugins:- DynamicProfile - Dynamic player profile management
- EntityPose - Entity pose manipulation
- OyasaiAdminTools - Administrative utilities
- OyasaiPets - Pet system with custom features
- OyasaiUtilities - General utility functions
- PaintTools - Painting and art tools
- SocialLikes3 - Social interaction system
- SocialVotes - Voting system
- TPswitch - Teleportation switching
- Vertex - Vertex manipulation tools
Verify Your Setup
To ensure everything is working correctly, try running these commands from within the devshell: All commands should execute successfully without “command not found” errors.Code Formatting
The project enforces code formatting standards. Unformatted code will not be accepted in pull requests. To format all code:Dependency Management
Gradle Dependencies
The platform usesgradle2nix to convert Gradle dependencies into Nix expressions. This ensures reproducible builds.
If you modify dependencies in any build.gradle.kts file, regenerate the lockfile:
gradle.lock to reflect your dependency changes.
Maven Repositories
The project uses these Maven repositories:- Maven Central - Standard Java/Kotlin libraries
- Purpur MC -
https://repo.purpurmc.org/snapshots - Frengor Nexus -
https://nexus.frengor.com/repository/public/ - Scarsz Nexus -
https://nexus.scarsz.me/content/groups/public/
Next Steps
With your development environment configured, you can:- Learn about Building the project
- Explore Deployment options
- Start contributing by following the guidelines in
CONTRIBUTING.md