Injuries
Overview
Injuries represent lasting harm that fighters sustain during campaign play. When a fighter suffers a serious wound in a battle, the result is tracked as an injury on their fighter card. These injuries persist across battles and can affect a fighter's stats, availability, and long-term viability in a campaign. A list represents a user's collection of fighters (called a "gang" in Necromunda).
The injury system in the content library defines what injuries exist, how they are organized into groups, and what happens to a fighter when they receive each type of injury. Content administrators configure injury groups and individual injuries here; users then apply those injuries to their fighters during campaign play through the application's injury management interface.
Injuries are a campaign-mode feature. They cannot be added to fighters outside of campaign mode. Each injury can optionally carry stat modifiers that change a fighter's profile for as long as the injury is active, reflecting the lasting mechanical consequences of serious wounds.
Key Concepts
Injury Group -- A named collection of related injuries. Groups control which fighter categories and houses can receive the injuries they contain. For example, a "Vehicle Damage" group might be restricted to vehicles only, while "Lasting Injuries" applies to most fighter types.
Injury -- A specific type of lasting harm, such as "Humiliated", "Eye Injury", or "Spinal Injury". Each injury belongs to a group and has a default outcome that determines what state the fighter should be placed into when the injury is applied.
Default Outcome -- The fighter state that an injury suggests when it is applied. For example, a minor injury might leave the fighter Active, while a critical injury might put them into Convalescence or mark them as Dead. The user can override this suggestion when adding the injury.
Modifier -- A stat modification attached to an injury. When a fighter has an active injury with modifiers, those modifiers are applied to the fighter's statline. For example, a leg injury might worsen the fighter's Movement stat.
Fighter State -- The availability status of a fighter in campaign mode. Injuries drive state changes, but the state is tracked on the fighter itself, not on the injury. See the "Fighter States and Availability" section below for details.
Models
ContentInjuryGroup
ContentInjuryGroupRepresents a group of related injuries. Injury groups serve two purposes: they organize injuries into logical categories for display, and they control which fighters can receive the injuries in the group through category and house restrictions.
Fields
name
CharField (max 100, unique)
The display name for this group, such as "Lasting Injuries" or "Vehicle Damage".
description
TextField (blank)
Optional description of the group.
restricted_to
MultiSelectField
If set, only fighters with one of the selected categories can receive injuries from this group. When blank, all fighter categories are eligible.
unavailable_to
MultiSelectField
If set, fighters with any of the selected categories cannot receive injuries from this group, even if they match restricted_to.
restricted_to_house
ManyToManyField to ContentHouse
If set, only fighters belonging to one of the selected houses can receive injuries from this group. When empty, no house restriction applies.
How Restrictions Work
The restricted_to and unavailable_to fields use the fighter category system. The available categories include Leader, Champion, Ganger, Juve, Crew, Exotic Beast, Hanger-on, Brute, Hired Gun, Bounty Hunter, House Agent, Hive Scum, Dramatis Personae, Prospect, Specialist, Stash, Vehicle, Ally, and Gang Terrain.
The restriction logic follows this order:
If
restricted_tois set, the fighter's category must be in that list.If
unavailable_tois set, the fighter's category must not be in that list. This takes effect even if the category passes therestricted_tocheck.If
restricted_to_househas any entries, the fighter's house must be one of them.
When all restriction fields are left blank, the group's injuries are available to all fighters.
Admin Interface
The Injury Group admin page displays a list of groups with columns for name, description, restricted houses, restricted fighter categories, and unavailable fighter categories. Each group's detail page includes an inline table of all injuries belonging to that group, letting you manage injuries directly from the group page.
ContentInjury
ContentInjuryRepresents an individual injury type that can be applied to a fighter.
Fields
name
CharField (max 255, unique)
The name of the injury, such as "Humiliated", "Eye Injury", or "Spinal Injury".
description
TextField (blank)
A text description of the injury and its effects. This is shown to users when they view injury details.
phase
CharField (labelled "Default Outcome")
The suggested fighter state when this injury is applied. Uses the ContentInjuryDefaultOutcome choices (see below). Defaults to no_change.
injury_group
ForeignKey to ContentInjuryGroup (nullable)
The group this injury belongs to. This determines which fighters can receive the injury based on the group's restrictions.
group
CharField (max 100, blank)
Deprecated: The group CharField is deprecated in favour of the injury_group ForeignKey. Do not use the group field for new injuries.
modifiers
ManyToManyField to ContentMod
Stat modifiers that are applied to a fighter's profile when this injury is active. See "Injury Modifiers and Stats" below.
Admin Interface
The Injury admin page supports searching by name and description, and filtering by phase (Default Outcome). The list view shows columns for name, description, default outcome, and modifier count.
Each injury's detail page includes an inline section for managing the modifiers associated with that injury. You can add, edit, or remove modifiers directly from the injury detail page.
ContentInjuryDefaultOutcome
ContentInjuryDefaultOutcomeAn enumeration of the possible default outcomes for injuries. These values map to the fighter states used in campaign mode.
no_change
No Change
The injury does not suggest changing the fighter's current state.
active
Active
The fighter remains available for battles.
recovery
Recovery
The fighter is temporarily unavailable and must recover before participating in battles.
convalescence
Convalescence
The fighter is out for an extended period and cannot participate in battles.
dead
Dead
The fighter is killed. Dead fighters cannot participate in battles and their equipment is hidden from the fighter card.
in_repair
In Repair
Used for vehicles. The vehicle is damaged and must be repaired before it can be used again.
When a user adds an injury to a fighter, the form automatically suggests the injury's default outcome as the new fighter state. The user can override this selection before confirming.
How It Works in the Application
Fighter States and Availability
Every fighter in campaign mode has an injury_state field that tracks their current availability. This state determines whether the fighter can participate in battles:
Active -- The fighter is available and can participate in battles.
Recovery and Convalescence -- The fighter is temporarily unavailable and cannot participate.
Dead -- The fighter is permanently out. Dead fighters remain on the list but their wargear is hidden from the fighter card.
In Repair -- Vehicles only. The vehicle is out of action until repaired.
The fighter's state is displayed as a colour-coded badge on their card: green for Active, yellow for Recovery/Convalescence/In Repair, and red for Dead.
Adding an Injury
When a user (the list owner or the campaign arbitrator) adds an injury to a fighter, the application:
Presents a form showing only the injuries available to that fighter, filtered by the fighter's category and house against the injury group restrictions.
Groups the available injuries by their injury group in the dropdown.
Pre-selects the fighter state based on the chosen injury's default outcome (unless the outcome is
no_change).Creates a
ListFighterInjuryrecord linking the fighter to the content injury, along with the date and any notes.Updates the fighter's
injury_stateto the selected state.Logs the event to the campaign action log.
If the selected state is Dead, the user is redirected to a kill confirmation page.
Injury Modifiers and Stats
When an injury has modifiers attached, those modifiers are applied to the fighter's calculated statline in campaign mode. For full details on how modifiers work and the different modifier types, see Modifiers. The modifier system supports several types of changes relevant to injuries:
Fighter Stat Modifiers (
ContentModFighterStat) -- Change a specific stat value. For example, an eye injury might worsen Ballistic Skill by 1, or a leg wound might worsen Movement.Fighter Rule Modifiers (
ContentModFighterRule) -- Add or remove rules from the fighter.
Modifiers use a mode of improve, worsen, or set to determine how they change the stat value. The modifiers are applied in real time: as soon as the injury is added to the fighter, the stat changes appear on the fighter card. When the injury is removed, the modifiers are removed as well.
Removing an Injury
Users can remove injuries from fighters when they recover. Removing an injury:
Deletes the
ListFighterInjuryrecord.If the fighter has no remaining injuries, automatically resets the fighter's state to Active.
Logs the recovery to the campaign action log.
Immediately removes any stat modifiers that were applied by the injury.
Injuries on Fighter Cards
In campaign mode, fighter cards display an "Injuries" row in the statline area. This row lists the names of all active injuries. If the list owner or campaign arbitrator is viewing the card, an "Edit" link appears next to the injuries, or an "Add" link if the fighter has no injuries yet. Outside of campaign mode, the injuries row is not shown.
Custom Terminology
Different fighter categories may use different terminology for injuries. For example, vehicles use "Damage" instead of "Injury". The application handles this through the term_injury_singular and term_injury_plural properties on fighters, which pull from category-specific term configuration. All templates use these dynamic terms rather than hard-coding "Injury" or "Injuries".
Common Admin Tasks
Creating a New Injury Group
Go to the Injury Groups section in the admin.
Click "Add Injury Group".
Enter the group name (for example, "Lasting Injuries" or "Vehicle Lasting Damage").
Optionally add a description.
If this group should only apply to certain fighter types, select the appropriate categories in
restricted_to. For vehicle damage, you would select "Vehicle".If this group should be excluded from certain fighter types, select those categories in
unavailable_to. For example, you might exclude "Exotic Beast" from standard lasting injuries.If the group is house-specific, select the relevant houses in
restricted_to_house.Save the group.
Adding Injuries to a Group
You can add injuries directly from the injury group's detail page using the inline injury table at the bottom.
Open the injury group.
In the inline injuries section, fill in the name, description, and default outcome for each injury.
Save the group.
Alternatively, you can create injuries individually through the Injuries admin section and assign them to a group using the injury_group dropdown.
Attaching Modifiers to an Injury
Go to the Injuries section in the admin and open the injury you want to modify.
In the "Modifiers" inline section, click "Add another Modifier".
Select the appropriate modifier. These are shared
ContentModobjects, so you need to have already created the modifier (for example, a Fighter Stat Modifier that worsens Movement by 1). See the Modifiers documentation for details on creating modifiers.Save the injury.
The modifier will now be applied to any fighter who receives this injury during campaign play.
Setting Up Vehicle Damage
Vehicles use a separate set of injuries with different terminology. To configure vehicle damage:
Create an injury group named something like "Vehicle Lasting Damage".
Set
restricted_toto "Vehicle" so only vehicles can receive these injuries.Add injuries with appropriate default outcomes. Use
in_repairas the default outcome for damage that takes the vehicle out of action.Attach any relevant stat modifiers (for example, worsening the vehicle's Handling or Movement).
Migrating from the Deprecated Group Field
The group CharField on ContentInjury is a legacy text field that stored the group name as plain text. It has been replaced by the injury_group ForeignKey, which provides a proper relationship to ContentInjuryGroup.
If you encounter injuries that have a value in the group text field but no injury_group set, you should:
Find or create the appropriate
ContentInjuryGroup.Set the
injury_groupForeignKey on the injury to point to that group.The
grouptext field can be left as-is; it is retained for backward compatibility but is not used by the application logic.
Last updated