Loadout Planner

Find the lightest gear for each slot. Filter by requirements.

{% for t_id, t_label in [('guns','Guns'),('armor','Armor'),('helmets','Helmets'),('headwear','Headwear'),('backpacks','Backpacks'),('rigs','Rigs'),('plates','Plates'),('builder','Build Builder')] %} {{ t_label }} {% endfor %}
{# =============================== GUNS TAB =============================== #} {% if tab == "guns" %}
Must have slot: {% for label, nameid in slot_filters %} {% endfor %} {% if requires %}clear{% endif %}
{% if requires %}

"Lightest build" = gun base weight + lightest compatible mod per required slot. Guns without all required slots are hidden.

{% endif %} {% for gun in guns %} {% else %} {% endfor %}
Name Caliber Ergo Recoil Base weight {% if requires %}Lightest build{% else %}Slots{% endif %}
{% if gun.grid_image_url %} {% endif %} {{ gun.short_name or gun.name }} {% if gun.short_name and gun.short_name != gun.name %} {{ gun.name }} {% endif %} {{ gun.caliber or '—' }} {{ gun.ergonomics or '—' }} {{ gun.recoil_vertical or '—' }} {% if gun.weight_kg is not none %}{{ "%.3f"|format(gun.weight_kg) }} kg{% else %}—{% endif %} {% if requires %} {% if gun.lightest_build_weight is not none %}{{ "%.3f"|format(gun.lightest_build_weight) }} kg{% else %}—{% endif %} {% else %} ▶ expand {% endif %}
No guns found matching those requirements.
{% endif %} {# =============================== ARMOR TAB =============================== #} {% if tab == "armor" %}
{% for item in armor %} {% else %} {% endfor %}
NameClass DurabilityMaterialZonesWeight
{% if item.grid_image_url %}{% endif %} {{ item.short_name or item.name }} {% if item.short_name and item.short_name != item.name %}{{ item.name }}{% endif %} {% if item.wiki_url %}wiki{% endif %} {% if item.armor_class %} {{ item.armor_class }} {% else %}—{% endif %} {{ item.durability | int if item.durability else '—' }} {{ item.material or '—' }} {{ item.zones or '—' }} {% if item.weight_kg is not none %}{{ "%.3f"|format(item.weight_kg) }} kg{% else %}—{% endif %} {% if item.id in carrier_ids_with_open_slots %}
no plates{% endif %}
No armor found.
{% endif %} {# =============================== HELMETS TAB =============================== #} {% if tab == "helmets" %}
{% for item in helmets %} {% else %} {% endfor %}
NameClass DurabilityHead zonesDeafeningWeight
{% if item.grid_image_url %}{% endif %} {{ item.short_name or item.name }} {% if item.short_name and item.short_name != item.name %}{{ item.name }}{% endif %} {% if item.wiki_url %}wiki{% endif %} {% if item.armor_class %} {{ item.armor_class }} {% else %}{% endif %} {{ item.durability | int if item.durability else '—' }} {{ item.head_zones or '—' }} {{ item.deafening or '—' }} {% if item.weight_kg is not none %}{{ "%.3f"|format(item.weight_kg) }} kg{% else %}—{% endif %}
No helmets found.
{% endif %} {# =============================== HEADWEAR TAB =============================== #} {% if tab == "headwear" %}

Face masks, armored masks, and non-helmet head protection. Does not cover the top of the head.

{% for item in headwear %} {% else %} {% endfor %}
NameClass DurabilityHead zonesWeight
{% if item.grid_image_url %}{% endif %} {{ item.short_name or item.name }} {% if item.short_name and item.short_name != item.name %}{{ item.name }}{% endif %} {% if item.wiki_url %}wiki{% endif %} {% if item.armor_class %} {{ item.armor_class }} {% else %}{% endif %} {{ item.durability | int if item.durability else '—' }} {{ item.head_zones or '—' }} {% if item.weight_kg is not none %}{{ "%.3f"|format(item.weight_kg) }} kg{% else %}—{% endif %}
No headwear found.
{% endif %} {# =============================== BACKPACKS TAB =============================== #} {% if tab == "backpacks" %}
{% for item in backpacks %} {% else %} {% endfor %}
NameCapacity (slots)Weight
{% if item.grid_image_url %}{% endif %} {{ item.short_name or item.name }} {% if item.short_name and item.short_name != item.name %}{{ item.name }}{% endif %} {% if item.wiki_url %}wiki{% endif %} {{ item.capacity or '—' }} {% if item.weight_kg is not none %}{{ "%.3f"|format(item.weight_kg) }} kg{% else %}—{% endif %}
No backpacks found.
{% endif %} {# =============================== RIGS TAB =============================== #} {% if tab == "rigs" %}
{% for item in rigs %} {% else %} {% endfor %}
NameClassCapacity (slots)ZonesWeight
{% if item.grid_image_url %}{% endif %} {{ item.short_name or item.name }} {% if item.short_name and item.short_name != item.name %}{{ item.name }}{% endif %} {% if item.wiki_url %}wiki{% endif %} {% if item.armor_class %} {{ item.armor_class }} {% else %}{% endif %} {{ item.capacity or '—' }} {{ item.zones or '—' }} {% if item.weight_kg is not none %}{{ "%.3f"|format(item.weight_kg) }} kg{% else %}—{% endif %} {% if item.id in carrier_ids_with_open_slots %}
no plates{% endif %}
No rigs found.
{% endif %} {# =============================== PLATES TAB =============================== #} {% if tab == "plates" %}

Armor plates that slot into plate carriers. Carrier shell weight does not include plates — add them separately when building your loadout.

{% for item in plates %} {% else %} {% endfor %}
NameClass DurabilityMaterialZonesWeight
{% if item.grid_image_url %}{% endif %} {{ item.short_name or item.name }} {% if item.short_name and item.short_name != item.name %}{{ item.name }}{% endif %} {% if item.wiki_url %}wiki{% endif %} {% if item.armor_class %} {{ item.armor_class }} {% else %}—{% endif %} {{ item.durability | int if item.durability else '—' }} {{ item.material or '—' }} {{ item.zones or '—' }} {% if item.weight_kg is not none %}{{ "%.3f"|format(item.weight_kg) }} kg{% else %}—{% endif %}
No plates found.
{% endif %} {# =============================== BUILD BUILDER TAB =============================== #} {% if tab == "builder" %}
Total loadout weight
0.000 kg
{% set slot_defs = [ ('gun', 'Primary Weapon', builder_guns, false), ('armor', 'Body Armor', builder_armor, true), ('helmet', 'Helmet', builder_helmets, false), ('rig', 'Chest Rig', builder_rigs, true), ('backpack', 'Backpack', builder_backpacks, false), ] %} {% for slot_id, slot_label, items, has_plates in slot_defs %}

{{ slot_label }}

{% if has_plates %}
{% endif %}
{% endfor %}
{% endif %}