Content
Necromunda is a complex game. The content application within the Django project captures the static content library from which gangs can be built, campaigns can be run, and battles can be fought.
The Django models within the content application are all prefixed with Content to help us distinguish them. The most important models are ContentHouse, ContentFighter, ContentEquipment, and ContentWeaponProfile.
There's a range of supporting models that help with default equipment assignments, equipment list items, weapon accessories, links between equipment and fighters to support exotic beasts, house additional rules for game concepts like legendary names, modifications that can allow equipment to modify weapon stats and fighter stats, page references that support linking game concepts to their rulebook entry, Psyker models around the disciplines and default assignments of powers, the rules and skills that are built into the game, and weapon accessories and traits.
Extending the core content models is one of the more complex aspects of developing Gyrinx because it requires time spent designing how to accurately capture all the possible and complex scenarios that can crop up within Necromunda.
Managing the content library
The actual content library itself is managed directly within the Django admin application on Gyrinx. In many ways, when using Gyrinx, this is the critical part that users find valuable. A large amount of the Gyrinx team's time is spent updating content and copying information in from the rulebooks.
Content Library Principles
The content library follows these key principles:
Accuracy - Content should match the rulebooks as closely as possible
Completeness - All options available to players should be represented
Consistency - Similar concepts should be modelled in similar ways
Testability - Content models should be covered by automated tests
For questions about content modelling or to report content issues, please open a GitHub issue or discuss in the #development Discord channel.
Extending Support for New Content Types
Adding support for new content types (e.g., new gang types, equipment categories, or game mechanics) requires:
Discussion - Open a GitHub issue or Discord thread to discuss the approach
Design - Document the proposed model changes and their implications
Implementation - Create the Django models with appropriate tests
Content Entry - Add the actual game content via the admin interface
See the Contributing Guide for more details on the development process.
Last updated