Ga naar hoofdinhoud

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.

StandardStatusDescription
WCAG 2.1 AAVia platformAccessibility via Nextcloud and NL Design app
GDPR / AVGVia platformData subject rights via OpenRegister
NL Design SystemVia platformGovernment theming via nldesign app
Schema.orgGedeeltelijkCharacter → schema:Person; Ability → schema:PropertyValue; Skill → schema:Action

Features

FeatureDescriptionDocs
Character ManagementFull CRUD for characters (PCs, NPCs); stat calculation engine; currency system (gold/silver/copper); approval workflowcharacter-management.md
RPG System / Game MechanicsSkills (with prerequisites), Items, Conditions, Effects, Abilities — interconnected rule enginerpg-system.md
Events & PlayersEvent management with date ranges, locations, and effect application to participating characters; player profilesevents-players.md
PDF ExportCharacter sheet PDF export via DocuDesk integration; Twig templates scoped to LarpingApppdf-export.md
Admin SettingsPer-entity data source config: internal DB or OpenRegister register+schema per object typeadmin-settings.md
Register Config Auto-Importlarpingapp_register.json bootstraps all schemas and registers on install via repair stepregister-config-json.md
Object ServiceRegisterObjectFetcher resolves OpenRegister mappers per object type from IAppConfigobject-service.md
DashboardApp landing page with ApexCharts infrastructure for campaign analyticsdashboard.md
Larping Skill WidgetNextcloud Dashboard Widget showing skill usage distribution as a pie chart via GraphQL facetinglarping-skill-widget.md
Deep Link RegistrationRegisters URL templates for all entity types in OpenRegister's unified search providerdeep-link-registration.md
User SettingsPersonal preferences: event reminders, character update notifications, default viewuser-settings.md
Search ServiceUtility 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 from IAppConfig
  • CharacterService — 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 ComponentLarpingApp Role
N.v.t.Domain-specific LARP / worldbuilding campaign management