Contributing

3 minutes read

Getting Started

  1. Fork the repository
  2. Clone your fork
  3. Install prerequisites: .NET 10 SDK, Node.js 20+
  4. Run dotnet build to build everything (including frontend)
  5. Run dotnet run to launch

Development Workflow

  1. Create a feature branch from main
  2. Make changes following Coding Standards
  3. Test: dotnet build must complete with 0 errors
  4. For frontend changes, also verify cd Frontend && npx tsc --noEmit
  5. Commit with clear messages
  6. Open a Pull Request

Linux packaging icon note

Adding a New Feature

Checklist

  1. Add/update .NET service in Services/{Core|Game|User}/
  2. Register in Bootstrapper.cs if new service
  3. Add IPC handler + @ipc annotation in IpcService.cs
  4. Add @type annotation if new TypeScript type is needed
  5. Regenerate: node Scripts/generate-ipc.mjs (or dotnet build)
  6. Create React component/page in Frontend/src/
  7. Add route in App.tsx if new page
  8. Update documentation in Docs/
  9. Verify: dotnet build passes with 0 errors

Adding an IPC Channel

See IPC Code Generation for the full guide.

Adding a Built-in Mirror

See Adding a Mirror for the full guide on adding a community mirror to the default set.

Critical Files

FileImpactRule
ClientPatcher.csGame integrityNever modify without explicit instruction
Program.csApp entry pointChanges affect entire startup
Bootstrapper.csDI setupBreaking changes affect all services
IpcService.csIPC bridgeMust stay in sync with frontend
preload.jsSecurity boundaryMinimal changes only

Documentation

Every change must include documentation updates:

Both English and Russian docs should be updated.

Code Review Guidelines