Equipment Availability & Restrictions
Overview
This documentation explains how to configure fighter-specific equipment lists and restrictions for the equipment system documented in Equipment & Weapons.
The equipment availability and restrictions system controls which equipment each fighter type can access, and at what cost. A list represents a user's collection of fighters (called a "gang" in Necromunda). In Necromunda, different fighter types have access to different equipment lists with varying prices -- a Leader might buy a Power Sword for 40 credits while a Ganger pays 50, and some equipment categories are entirely off-limits to certain fighter types.
This area of the content library lets you configure all of these rules. It includes fighter-specific equipment lists with custom pricing, category-level restrictions that limit which fighter types can browse certain equipment groups, availability presets that control default Trading Post filters, and linking models that connect equipment items to fighters or other equipment for automatic creation.
When a user opens the weapons or gear page for one of their fighters, the application combines all of these configurations to determine exactly which items appear, what prices are shown, and which categories are visible. Getting this configuration right is essential for an accurate game experience.
Key Concepts
Equipment List -- The set of equipment items available to a specific fighter type, as published in the rulebook. Each fighter type (e.g. "Goliath Forge Boss") has its own equipment list with potentially different costs for the same items.
Equipment List Cost Override -- When an equipment item appears on a fighter's equipment list at a price different from the base Trading Post price, that fighter-specific price is an equipment list cost override (stored on ContentFighterEquipmentListItem.cost).
Fighter Category -- The broad classification of a fighter (Leader, Champion, Ganger, Juve, etc.). Category restrictions operate at this level rather than on individual fighter types.
Availability -- Each equipment item and weapon profile has an availability type (Common, Rare, Illegal, Exclusive, Unique) and optionally an availability level (a numeric value representing the dice roll needed). These control what appears in the Trading Post.
Equipment List Mode vs Trading Post Mode -- When a user browses equipment for a fighter, they can toggle between "Equipment List" mode (showing only items from the fighter's equipment list) and the full Trading Post view (showing all equipment filtered by availability). Availability presets control the defaults for Trading Post mode.
Can Buy Any -- A flag on ContentHouse that, when enabled, gives all fighters in that house access to the full Trading Post by default rather than just their equipment list.
Models
ContentFighterEquipmentListItem
ContentFighterEquipmentListItemRepresents a single entry on a fighter's equipment list. This is the primary model for defining which equipment items a fighter type can buy and at what price.
Each record links a ContentFighter to a ContentEquipment item, optionally specifying a particular weapon profile and an equipment list cost override. When a user views their fighter's equipment in "Equipment List" mode, these records determine what appears.
fighter
ForeignKey to ContentFighter
The fighter type this equipment list entry belongs to
equipment
ForeignKey to ContentEquipment
The equipment item available to this fighter
weapon_profile
ForeignKey to ContentWeaponProfile (optional)
A specific weapon profile with its own cost override. Leave blank when setting the base equipment cost.
cost
Integer
The fighter-specific cost for this item. This overrides the equipment's base Trading Post cost.
Relationships:
Belongs to a
ContentFighterand aContentEquipmentOptionally references a
ContentWeaponProfilefor profile-level cost overridesReferenced by the equipment views to build the "Equipment List" filter and to annotate fighter-specific costs
Validation rules:
The combination of
fighter,equipment, andweapon_profilemust be uniqueIf a
weapon_profileis specified, it must belong to the specifiedequipmentequipmentis required
Admin interface:
Searchable by fighter type, equipment name, and weapon profile name
fighterandequipmentuse autocomplete fields for faster data entryThe weapon profile dropdown is filtered to show only profiles belonging to the selected equipment, and only those with a cost greater than zero (since zero-cost profiles are "standard" and don't need overrides)
Supports the "Copy to another Fighter" bulk action
How equipment list cost overrides work:
When you create a ContentFighterEquipmentListItem without a weapon_profile, the cost field overrides the base price of the equipment for that fighter type. When you include a weapon_profile, the cost field overrides the price of that specific profile. This allows you to set both an equipment-level override and individual profile-level overrides for the same weapon on the same fighter.
For example, for a Boltgun that costs 55 credits at the Trading Post:
A record with fighter=Goliath Leader, equipment=Boltgun, weapon_profile=null, cost=45 means the Leader buys the base Boltgun for 45 credits
A record with fighter=Goliath Leader, equipment=Boltgun, weapon_profile=Rapid Fire, cost=30 means the Leader buys the Rapid Fire profile for 30 credits
ContentFighterEquipmentListWeaponAccessory
ContentFighterEquipmentListWeaponAccessoryDefines which weapon accessories are available to a fighter type and at what cost. This works the same way as ContentFighterEquipmentListItem but for weapon accessories rather than equipment.
fighter
ForeignKey to ContentFighter
The fighter type this accessory is available to
weapon_accessory
ForeignKey to ContentWeaponAccessory
The weapon accessory
cost
Integer
The fighter-specific cost for this accessory
Relationships:
Belongs to a
ContentFighterand aContentWeaponAccessoryReferenced when a user adds accessories to an assigned weapon
Validation rules:
The combination of
fighterandweapon_accessorymust be uniqueCost cannot be negative
Admin interface:
Searchable by fighter type and weapon accessory name
fighterandweapon_accessoryuse autocomplete fieldsSupports the "Copy to another Fighter" bulk action
ContentFighterEquipmentListUpgrade
ContentFighterEquipmentListUpgradeDefines fighter-specific cost overrides for equipment upgrades. When an equipment item has upgrades (like cyberteknika upgrades or genesmithing options), this model lets you set different prices per fighter type.
fighter
ForeignKey to ContentFighter
The fighter type this upgrade cost applies to
upgrade
ForeignKey to ContentEquipmentUpgrade
The specific equipment upgrade
cost
Integer
The fighter-specific cost for this upgrade
Relationships:
Belongs to a
ContentFighterand aContentEquipmentUpgradeReferenced when calculating upgrade costs on a fighter's equipment assignment
Validation rules:
The combination of
fighterandupgrademust be uniqueCost cannot be negative
Admin interface:
Searchable by fighter type, upgrade name, and parent equipment name
fighterandupgradeuse autocomplete fieldsFilterable by equipment upgrade mode (Single or Multi)
Supports the "Copy to another Fighter" bulk action
ContentEquipmentCategoryFighterRestriction
ContentEquipmentCategoryFighterRestrictionControls which fighter categories can access equipment from a given equipment category. If no restrictions are set on a category, all fighter categories can access it. When one or more restrictions exist, only the listed fighter categories can see equipment from that category.
equipment_category
ForeignKey to ContentEquipmentCategory
The equipment category being restricted
fighter_category
CharField (choices)
A fighter category that is allowed to access this equipment category
Relationships:
Belongs to a
ContentEquipmentCategoryManaged as an inline on the
ContentEquipmentCategoryadmin page
Validation rules:
The combination of
equipment_categoryandfighter_categorymust be unique
How restrictions work in practice:
If the "Heavy Weapons" equipment category has two restriction records -- one for LEADER and one for CHAMPION -- then only Leaders and Champions will see Heavy Weapons when browsing equipment. Gangers, Juves, and other categories will not see that category at all.
If an equipment category has no restriction records, it is available to all fighter categories.
This model works in conjunction with ContentFighterEquipmentCategoryLimit, which can impose numeric limits on how many items from a restricted category a specific fighter type can take.
ContentFighterEquipmentCategoryLimit
ContentFighterEquipmentCategoryLimitSets per-fighter-type limits on how many items from a given equipment category can be assigned. This only works for categories that already have fighter category restrictions (via ContentEquipmentCategoryFighterRestriction).
fighter
ForeignKey to ContentFighter
The specific fighter type this limit applies to
equipment_category
ForeignKey to ContentEquipmentCategory
The equipment category being limited
limit
PositiveInteger
Maximum number of items from this category the fighter can have (default: 1)
Relationships:
Belongs to a
ContentFighterand aContentEquipmentCategoryManaged as an inline on both the
ContentEquipmentCategoryadmin page and theContentFighteradmin page
Validation rules:
The combination of
fighterandequipment_categorymust be uniqueThe equipment category must have at least one fighter category restriction before a limit can be set
Admin interface:
On the
ContentEquipmentCategorypage, appears as an inline with fighters grouped by houseOn the
ContentFighterpage, appears as an inline with equipment categories filtered to only show those that have fighter restrictions, grouped by category group
ContentAvailabilityPreset
ContentAvailabilityPresetDefines default availability filter settings for the Trading Post view. When a user opens the equipment browsing page in Trading Post mode, the system looks up the most specific matching preset to pre-populate the availability type checkboxes and maximum availability level.
Presets can be defined at three levels of specificity, and they stack: a preset for a specific fighter takes precedence over a preset for a fighter category, which takes precedence over one for a house.
fighter
ForeignKey to ContentFighter (optional)
Specific fighter type this preset applies to
category
CharField (optional)
Fighter category (Leader, Champion, etc.) this preset applies to
house
ForeignKey to ContentHouse (optional)
House this preset applies to
availability_types
MultiSelectField
Which availability types to show by default (Common, Rare, Illegal, Exclusive, Unique)
max_availability_level
Integer (optional)
Maximum availability level (rarity roll). Leave blank for no limit.
fighter_can_buy_any
Boolean
If checked, this fighter defaults to showing all equipment (full Trading Post view) similar to the house-level can_buy_any flag
Specificity matching:
When the system looks up a preset, it finds all presets where every non-null field matches the current fighter/category/house combination. It then picks the most specific match (the one with the most non-null fields). In case of a tie, the most recently created preset wins.
For example, with these presets:
Category=Leader, availability_types=[C, R, I]
Category=Leader, House=Goliath, availability_types=[C, R]
Fighter=Goliath Forge Boss, availability_types=[C, R, I], max_availability_level=9
A Goliath Forge Boss would match preset 3 (most specific). A Goliath Leader (who is not a Forge Boss) would match preset 2. An Escher Leader would match preset 1.
Validation rules:
At least one of
fighter,category, orhousemust be specifiedThe combination of
fighter,category, andhousemust be uniquemax_availability_levelmust be at least 1 if set
Admin interface:
Searchable by fighter type and house name
Filterable by category and house
fighterandhouseuse autocomplete fields
ContentEquipmentFighterProfile
ContentEquipmentFighterProfileLinks an equipment item to a fighter type for automatic fighter creation. When a user assigns the linked equipment to one of their fighters, the application automatically creates a new ListFighter of the specified type and links it as a child of the equipment assignment. This is used for Exotic Beasts and Vehicles -- equipment items that, when purchased, create an associated fighter on the list.
equipment
ForeignKey to ContentEquipment
The equipment item that triggers fighter creation
content_fighter
ForeignKey to ContentFighter
The fighter type to create when this equipment is assigned
Relationships:
Belongs to a
ContentEquipmentand aContentFighterManaged as an inline on the
ContentEquipmentadmin pageWhen the linked equipment is assigned to a
ListFighter, the system automatically creates a new childListFighterWhen the equipment assignment is deleted, the child fighter is also deleted
Validation rules:
The combination of
equipmentandcontent_fightermust be uniqueEach equipment item should have at most one fighter profile (the system raises an error if multiple exist)
The fighter profile must not point to the same fighter type as the one equipping it
Admin interface:
Searchable by equipment name and fighter type
equipmentandcontent_fighteruse autocomplete fieldsThe fighter dropdown is grouped by house
ContentEquipmentEquipmentProfile
ContentEquipmentEquipmentProfileLinks an equipment item to another equipment item for automatic assignment. When the main equipment is assigned to a fighter, the linked equipment is automatically assigned as well. This is used for items that come bundled together, such as a weapon that includes specific ammunition types.
equipment
ForeignKey to ContentEquipment
The main equipment item
linked_equipment
ForeignKey to ContentEquipment
The equipment item to auto-assign alongside the main item
Relationships:
Belongs to two
ContentEquipmentinstancesManaged as an inline on the
ContentEquipmentadmin pageThe auto-assigned equipment is tracked as a "linked child" of the parent assignment
When the parent equipment assignment is deleted, all linked child assignments are also deleted
Validation rules:
The combination of
equipmentandlinked_equipmentmust be uniqueAn equipment item cannot link to itself
The linked equipment cannot itself have equipment-equipment links (no chaining)
Admin interface:
Searchable by both equipment names
Both fields use autocomplete
How It Works in the Application
Equipment browsing
When a user navigates to the weapons or gear page for one of their fighters, the application builds the list of available equipment through several filtering stages:
Base equipment query -- All equipment is fetched (weapons or non-weapons depending on the page), annotated with fighter-specific costs from
ContentFighterEquipmentListItem.Category restrictions -- The system checks
ContentEquipmentCategoryFighterRestrictionrecords. Any equipment category that has restrictions but does not include the current fighter's category is excluded entirely. Categories with no restrictions remain available to all.Equipment list vs Trading Post mode -- In Equipment List mode, only items that appear in
ContentFighterEquipmentListItemrecords for the fighter are shown. In Trading Post mode, all equipment passing the category filter is shown, filtered by availability type and level.Availability presets -- When in Trading Post mode, the system looks up a
ContentAvailabilityPresetto determine default filter values. If the house hascan_buy_anyenabled or the preset hasfighter_can_buy_anyset, the view defaults to Trading Post mode with the preset's availability filters applied.Weapon profile filtering -- For weapons, profiles are filtered by availability type and level. Profiles with zero cost (standard profiles) always appear. Profile-specific cost overrides from
ContentFighterEquipmentListItemrecords with aweapon_profileset are applied.
Cost display
Throughout the application, equipment costs displayed on fighter cards and equipment browsing pages reflect the fighter-specific override when one exists. The priority for cost resolution is:
Expansion cost override (from Equipment List Expansions, if applicable)
Equipment list cost override (from
ContentFighterEquipmentListItem)Base equipment cost (from
ContentEquipment.cost)
The same priority applies to weapon profile costs and upgrade costs, using their respective override models.
Auto-creation from equipment links
When a user assigns equipment that has a ContentEquipmentFighterProfile, the system automatically creates a new fighter on the list. For example, assigning an Exotic Beast equipment item creates the corresponding Exotic Beast fighter. The child fighter appears on the list and is linked to the equipment assignment -- removing the equipment also removes the fighter.
When a user assigns equipment that has ContentEquipmentEquipmentProfile links, the linked equipment items are automatically assigned to the same fighter. For example, assigning a weapon that comes with specific ammunition automatically adds that ammunition as a separate equipment assignment. These linked assignments are tracked and deleted together with the parent.
Legacy fighters and combined equipment lists
When a ListFighter has a legacy content fighter assigned (via the legacy_content_fighter field), the system considers equipment lists from both the base content fighter and the legacy content fighter. Cost overrides are checked against both, and in Equipment List mode, items from both fighters' equipment lists are shown. This means legacy fighters effectively have access to a combined equipment list.
Common Admin Tasks
Setting up a new fighter's equipment list
Create the
ContentFighterrecord with its house, category, and stats.For each item on the fighter's equipment list in the rulebook, create a
ContentFighterEquipmentListItemrecord linking the fighter to the equipment with the correct cost.For weapons with non-standard profiles at different costs, create additional
ContentFighterEquipmentListItemrecords with theweapon_profilefield set.For any weapon accessories available to this fighter, create
ContentFighterEquipmentListWeaponAccessoryrecords.For equipment with upgrades that have fighter-specific pricing, create
ContentFighterEquipmentListUpgraderecords.
Copying an equipment list to another fighter
When multiple fighter types share the same or similar equipment lists, use the "Copy to another Fighter" admin action:
Go to the Equipment List Items admin page.
Filter or search for the source fighter's equipment list items.
Select all the items you want to copy.
Choose "Copy to another Fighter" from the actions dropdown.
Select one or more target fighters and confirm.
This creates duplicate records for the target fighters. You can then edit individual costs as needed. The same action is available on ContentFighterEquipmentListWeaponAccessory and ContentFighterEquipmentListUpgrade.
Copying a fighter to another house
When adding a new house that shares fighter types with an existing house, use the "Copy to another House" action on the ContentFighter admin page. This copies the fighter and all of its associated data -- equipment list items, weapon accessories, upgrades, default assignments, skills, and rules -- to the target house.
Restricting an equipment category to certain fighter types
Go to the Equipment Categories admin page and select the category.
In the "Fighter Category Restrictions" inline section, add records for each fighter category that should have access.
Once restrictions are added, only the listed categories will see equipment from this category.
If you also need per-fighter limits (e.g. "Leaders can take at most 2 Heavy Weapons"), add ContentFighterEquipmentCategoryLimit records in the "Fighter Equipment Category Limits" inline on the same page, or from the fighter's own admin page.
Configuring Trading Post defaults for a house
Determine what availability types and levels are appropriate for the house's fighter types.
Create
ContentAvailabilityPresetrecords at the desired level of specificity:House-level: set only
houseto apply defaults to all fighters in that houseCategory-level: set
category(and optionallyhouse) to apply defaults to a fighter categoryFighter-level: set
fighterfor the most specific control
Set the
availability_types(e.g. Common and Rare) and optionallymax_availability_level.If a specific fighter or category should default to showing all equipment, check
fighter_can_buy_any.
Setting up equipment that creates a fighter (Exotic Beasts, Vehicles)
Create the
ContentEquipmentrecord for the item (e.g. "Phyrr Cat").Create the
ContentFighterrecord for the fighter type it produces (e.g. the Phyrr Cat fighter with its stats).On the equipment's admin page, add a
ContentEquipmentFighterProfileinline record linking the equipment to the fighter type.When a user assigns this equipment to one of their fighters, a new fighter of the linked type is automatically created on their list.
Setting up equipment that auto-assigns other equipment
Create both
ContentEquipmentrecords (the main item and the linked item).On the main equipment's admin page, add a
ContentEquipmentEquipmentProfileinline record pointing to the linked equipment.When a user assigns the main equipment, the linked equipment is automatically assigned to the same fighter.
Note that the linked equipment cannot itself have equipment-equipment links -- only one level of linking is supported.
Last updated