A desktop character creation tool for Shadowrun 3rd Edition, built with Avalonia UI.
SR3Generator is a cross-platform desktop application that guides players through the Shadowrun 3rd Edition character creation process. It covers the full priority-based creation system including attributes, skills, magic, gear, contacts, and more, with real-time validation and a reactive UI.
Just download one of the AppImage (for Linux) or EXE files (for most versions of Winders) and run it! No installer or wizards involved, it just runs.
If you liked this app and want to throw a tip my way:
The solution is organized into 4 core projects plus test projects, with dependencies flowing inward from the UI to the data layer.
| Project | Purpose |
|---|---|
| SR3Generator.Data | Core domain models (Character, Attributes, Skills, Gear, Magic, Contacts) |
| SR3Generator.Database | SQLite data access with Dapper ORM, static lookup tables for game rules |
| SR3Generator.Creation | CharacterBuilder fluent API with creation logic and validation |
| SR3Generator.Avalonia | Desktop UI built with Avalonia 11.3 using MVVM and DI |
| SR3Generator.Creation.Test | xUnit tests for character building |
| SR3Generator.Database.Test | xUnit tests for database queries |
SR3Generator.Data (no dependencies)
↑
SR3Generator.Database (depends on Data)
↑
SR3Generator.Creation (depends on Database, Data)
↑
SR3Generator.Avalonia (depends on Creation, Database, Data)
- Builder Pattern:
CharacterBuilderprovides fluent, chainable methods for constructing a character with validation at each step. - MVVM: The Avalonia UI uses CommunityToolkit.Mvvm source generators (
[ObservableProperty],[RelayCommand]) for reactive bindings. - Service Facade:
CharacterBuilderServicewraps the builder and broadcasts aCharacterChangedevent so all tab ViewModels stay in sync. - Query/Handler Pattern: CQRS-like data access (e.g.,
ReadSkillsQuery→ReadSkillsQueryHandler). - Options Pattern:
DbConnectionFactoryusesIOptions<DatabaseOptions>for configuration.
- .NET SDK 10.0
From the repository root:
dotnet run --project SR3Generator.AvaloniaThis launches the Shadowrun 3rd Edition character generator.
To automatically rebuild and reload while developing:
dotnet watch run --project SR3Generator.Avaloniadotnet watch monitors source files and restarts the app when changes are detected.
dotnet build # Build the solution
dotnet test # Run all testsSelf-contained, single-file builds for distribution — no .NET runtime required:
dotnet publish SR3Generator.Avalonia -p:PublishProfile=win-x64
dotnet publish SR3Generator.Avalonia -p:PublishProfile=linux-x64
dotnet publish SR3Generator.Avalonia -p:PublishProfile=osx-x64Output lands in artifacts/<rid>/.
dotnet publish SR3Generator.Avalonia -p:PublishProfile=linux-x64-appimageRequires appimagetool on PATH. The target builds an AppDir at artifacts/appimage/AppDir/ and wraps it into artifacts/appimage/SR3Generator-x86_64.AppImage. If appimagetool isn't installed, the AppDir is left ready for manual wrapping.
Duplicate linux-x64.pubxml → linux-arm64.pubxml and swap the RuntimeIdentifier:
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>This project is a fan work for Shadowrun 3rd Edition. Shadowrun is a registered trademark of The Topps Company, Inc. This project is not affiliated with or endorsed by Catalyst Game Labs or The Topps Company.