LarpingApp — Features
LarpingApp is a worldbuilding and LARP (Live Action Role-Playing) campaign management application for Nextcloud. It provides a complete rule engine for managing characters, players, skills, items, conditions, and events, with a stat calculation engine that applies effects in a deterministic order. Data is stored in OpenRegister (using _register.json auto-import) and characters can be exported as PDF character sheets via the DocuDesk integration.
LarpingApp has no direct GEMMA component mapping — it is a domain-specific application for LARP organizations and worldbuilding communities.
Standards Compliance
LarpingApp is a niche domain application with no applicable government or interoperability standards. It inherits platform-level compliance from Nextcloud and OpenRegister.
| Standard | Status | Description |
|---|---|---|
| WCAG 2.1 AA | Via platform | Accessibility via Nextcloud and NL Design app |
| GDPR / AVG | Via platform | Data subject rights via OpenRegister |
| NL Design System | Via platform | Government theming via nldesign app |
| Schema.org | Gedeeltelijk | Character → schema:Person; Ability → schema:PropertyValue; Skill → schema:Action |
Features
| Feature | Description | Docs |
|---|---|---|
| Character Management | Full CRUD for characters (PCs, NPCs); stat calculation engine; currency system (gold/silver/copper); approval workflow | character-management.md |
| RPG System / Game Mechanics | Skills (with prerequisites), Items, Conditions, Effects, Abilities — interconnected rule engine | rpg-system.md |
| Events & Players | Event management with date ranges, locations, and effect application to participating characters; player profiles | events-players.md |
| PDF Export | Character sheet PDF export via DocuDesk integration; Twig templates scoped to LarpingApp | pdf-export.md |
| Admin Settings | Per-entity data source config: internal DB or OpenRegister register+schema per object type | admin-settings.md |
| Register Config Auto-Import | larpingapp_register.json bootstraps all schemas and registers on install via repair step | register-config-json.md |
| Object Service | RegisterObjectFetcher resolves OpenRegister mappers per object type from IAppConfig | object-service.md |
| Dashboard | App landing page with ApexCharts infrastructure for campaign analytics | dashboard.md |
| Larping Skill Widget | Nextcloud Dashboard Widget showing skill usage distribution as a pie chart via GraphQL faceting | larping-skill-widget.md |
| Deep Link Registration | Registers URL templates for all entity types in OpenRegister's unified search provider | deep-link-registration.md |
| User Settings | Personal preferences: event reminders, character update notifications, default view | user-settings.md |
| Search Service | Utility methods for MongoDB/MySQL filter construction and query string parsing (legacy inherited code) | search-service.md |
Architecture
LarpingApp uses a pure OpenRegister data model. All entity types (Character, Player, Ability, Skill, Item, Condition, Effect, Event) are stored as register objects, with schemas defined in larpingapp_register.json (OpenAPI 3.0 format) and auto-imported on app install.
Key architectural components:
RegisterObjectFetcher— Central data access service resolving OpenRegister mappers per type fromIAppConfigCharacterService— Stat calculation engine: applies effects from skills, items, conditions, and events in deterministic order- DocuDesk integration — PDF generation delegated to DocuDesk's
PdfService; gracefully degrades when DocuDesk is not installed
GEMMA Mapping
| GEMMA Component | LarpingApp Role |
|---|---|
| N.v.t. | Domain-specific LARP / worldbuilding campaign management |