Hey! You! Here to update something that's out of date? Follow these easy steps:
- Open the relevant Horizontal Partition and click "Edit Source" on the top right of the page.
- Use Ctrl +F to find the data for the weapon.
- Find the number/string that's wrong.
- Change the number/string and save the page.
That's it! After you've done that, the data will proliferate out to all the relevant pages.
If you're adding new data instead of just changing existing data, try to use an example of how things are entered if you're not quite sure what to do.
(Oh, order doesn't matter, but spelling and capitalization do. For example, it doesn't matter if Disposition is first or last)
Thanks, you're awesome!
- Last updated: Sat, 13 Jan 2024 01:58:17 +0000 (UTC) by User:Cephalon Scientia
Horizontal Partitions (and where to update data)
- Module:Weapons/data/primary - primary guns
- Module:Weapons/data/secondary - secondary guns
- Module:Weapons/data/melee - melee weapons
- Module:Weapons/data/archwing - Archguns and Archmelees
- Module:Weapons/data/companion - robotic and hound weapons
- Module:Weapons/data/railjack - Railjack turrets and ordnances
- Module:Weapons/data/modular - Amps, Zaws, and Kitguns
- Module:Weapons/data/misc - everything else
Attack Data Schema
{
AttackName = "Normal Attack",
AmmoCost = 1,
BurstCount = 1,
Damage = { Impact = 1, Puncture = 1, Slash = 1 },
CritChance = 0.1,
CritMultiplier = 1,
StatusChance = 0.1,
FireRate = 1.0,
Falloff = { StartRange = 400, EndRange = 600, Reduction = 0.2 },
ShotType = "Hit-Scan",
ShotSpeed = 1,
Trigger = "Semi-Auto"
},
Key/Column Name | Arsenal EN L10n | Public Export Equivalent | Internal Equivalent | Data Type | Required? | Explanation/Description | Example(s) |
---|---|---|---|---|---|---|---|
AttackName |
Varies | N/A | N/A | String | ❌ | Name of attack; defaults to "Normal Attack" | "Normal Attack" or "AoE Explosion"
|
AmmoCost |
N/A | N/A | ammoRequirement |
Number (float) | ✔️ | Ammo consumed on a single attack input; defaults to nil | 0.5 or 10
|
AmmoType |
N/A | N/A | ammoType |
String | ❌ | Type of ammo pickups that replenishes ammo reserves; "None" for battery weapons and "Energy" for those that use Warframe energy | "Primary"
|
BurstCount |
N/A | N/A | NumShots |
Number (integer) | ❌ | For burst-fire weapons, the number of shots per burst; omit for attacks that shoot bursts that scale off magazine size (e.g Pandero) | 4
|
BurstDelay |
N/A | N/A | BurstDelay |
Number (float) | ❌ | For burst-fire weapons, the time in seconds between shooting each individual shot in a burst. | 0.061
|
BurstReloadDelay |
N/A | N/A | N/A | Number (float) | ❌ | Only for burst-fire attacks that scale off magazine size (e.g Pandero), the time after a burst before an automatic reload commences. This value is derived from the inverse of internal fire rates of burst attacks (1 ÷ fireRate). | 0.2
|
Damage |
Damage | damagePerShot and totalDamage |
AttackData |
Table (map of floats) | ✔️ | Table of damage types that the weapon deals and their individual damage values. Possible keys: Impact, Puncture, Slash, Cold, Electricity, Heat, Toxin, Blast, Corrosive, Gas, Magnetic, Radiation, Viral, Void, and MinProgenitorBonus (random element for Kuva/Tenet weapons) | { Impact = 100, Puncture = 25, Slash = 30 }
|
ChargeTime |
Charge Rate | N/A | ChargeTime |
Number (float) | ❌ | For charged attacks, the base charge time for a fully charged attack | 0.5
|
CritChance |
Critical Chance | criticalChance |
CriticalChance or criticalHitChance |
Number (float) | ✔️ | Attack's base critical chance as a decimal | 0.25
|
CritMultiplier |
Critical Multiplier | criticalMultiplier |
CriticalMultiplier or criticalHitDamageMultiplier |
Number (float) | ✔️ | Attack's base critical hit multiplier as a scalar | 2.2
|
EffectDuration |
N/A | N/A | N/A | Number (float) | ❌ | For special attacks, the time in seconds that a special effect lasts for (e.g. Pox's toxin clouds or Zenistar's disc) | 5
|
ExplosionDelay |
Embed Delay | N/A | EmbedTime |
Number (float) | ❌ | For AoE attacks, the time in seconds between initial shot and explosion; the same as "Embed Delay" stat in-game | 0.5
|
ExtraHeadshotDmg |
N/A | N/A | N/A | Number (float) | ❌ | Additional bonus damage on headshots for weapons such as Cernos Prime | 0.5
|
Falloff |
Falloff | N/A | damageFallOff and damageFallOffMinDamage or ExplosionFallOff and DamageRadius |
Table (map of floats) | ❌ | Attack's base Damage Falloff stats; includes starting distance in meters when falloff multiplier comes into play, ending distance in meters when falloff multipler is at max reduction, and the maximum damage reduction as a decimal | { StartRange = 0, EndRange = 5, Reduction = 0.5 }
|
FireRate |
Fire Rate | fireRate |
fireRate (stored as a whole number representing number shots per minute, have to divide by 60s to get arsenal Fire Rate) |
Number (float) | ✔️ | Attack's base Fire Rate or Attack Speed multiplier | 6.5
|
ForcedProcs |
N/A | N/A | ForcedProcs |
Table (array of strings) | ❌ | Attack's forced procs, if any | { "Impact", "Slash" }
|
IsSilent |
Noise | noise |
IsSilenced or SilentProjectile |
Boolean | ❌ | Whether or not an attack has a silent Noise Level; defaults to false | true
|
MaxSpread |
N/A | N/A | AIMED_ACCURACY.Spread.SHOOTING.range[1] |
Number (float) | ❌ | Attack's maximum spread range. Arsenal accuracy is calculated as the inverse of the average spread multiplied by 100. | 16
|
MinSpread |
N/A | N/A | AIMED_ACCURACY.Spread.SHOOTING.range[0] |
Number (float) | ❌ | Attack's minimum spread range. Arsenal accuracy is calculated as the inverse of the average spread multiplied by 100. | 6
|
Multishot |
Multishot | multishot |
fireIterations |
Number (integer) | ❌ | Attack's base Multishot value; defaults to 1 | 10
|
PunchThrough |
Punch Through | N/A | PunctureDepth or tracePunctureDepth |
Number (float) | ❌ | Attack's base Punch Through value in meters; defaults to 0 | 1.5
|
Range |
Range | N/A | traceDistance or DamageRadius |
Number (float) | ❌ | For maximum range of a particular attack in meters. For AoE attacks, the base radius of area of effect in meters. | 40
|
ShotType |
N/A | N/A | HitType |
String | ✔️ | Attack's shot type (e.g. "Hit-Scan", "Projectile", and "AoE" for area of effects) | Projectile
|
ShotSpeed |
N/A | N/A | KinematicMaxSpeed or ForwardVel |
Number (integer) | ❌ | For projectile attacks, the attack's maximum projectile speed in meters per second (not initial or minimum speed) | 50
|
StatusChance |
Status | procChance |
ProcChance |
Number (float) | ✔️ | Attack's base status chance as a decimal | 0.2
|
SyndicateEffect |
N/A | N/A | N/A | String | ❌ | For Syndicate weapons, the Syndicate Radial Effect that it has | "Entropy"
|
Trigger |
Trigger | trigger |
FireModes |
String | ❌ | For weapons with multiple Trigger Types, attack's trigger type | "Semi-Auto"
|
Gun Entry Schema
["Long Gun Weapon Name"] = {
_IgnoreEntry = true,
_TooltipAttackDisplay = 1,
Accuracy = 100,
AmmoMax = 540,
AmmoPickup = 1,
Attacks = {
{
AttackName = "Normal Attack",
AmmoCost = 0.5,
BurstCount = 1,
Damage = { Impact = 1, Puncture = 1, Slash = 1 },
CritChance = 0.1,
CritMultiplier = 1,
StatusChance = 0.1,
FireRate = 1.0,
Falloff = { StartRange = 400, EndRange = 600, Reduction = 0.2 },
ShotType = "Hit-Scan",
ShotSpeed = 100,
Trigger = "Semi-Auto"
}
},
Class = "Sniper Rifle",
Conclave = false,
Disposition = 0.5,
ExilusPolarity = "V",
Family = "",
Image = "Weapon.png",
Introduced = "",
Link = "Page Name",
Magazine = 1,
Mastery = 1,
MaxRank = 30,
Name = "Weapon Name",
Polarities = {},
Reload = 1,
ReloadStyle = "Regenerate",
SellPrice = 7500,
Slot = "Primary",
SniperComboMin = 1,
SniperComboReset = 1,
Spool = 5,
Trigger = "Semi-Auto",
Traits = { "Grineer" },
Users = { },
Zoom = { "2.0x", "4.0x" }
},
Key/Column Name | Arsenal EN L10n | Public Export Equivalent | Internal Equivalent | Data Type | Required? | Explanation/Description | Example(s) |
---|---|---|---|---|---|---|---|
Accuracy |
Accuracy | accuracy |
N/A | Number (float) | ✔️ | Gun's base Accuracy value | 100
|
AmmoMax |
Ammo Maximum | N/A | AmmoCapacity |
Number (integer) | ✔️ | Gun's base maximum reserve ammo (this excludes magazine size) | 210 or 0 (represents infinite ammo, for weapons that don't use ammo)
|
AmmoPickup |
Ammo Pickup | N/A | AmmoPickUpCount |
Number (integer) | ❌ | Amount of ammo recovered after walking over an ammo pickup | 1
|
Attacks |
N/A | N/A | AttackData , ExplosiveAttack , RadialDamage , EmbedAttack |
Table | ✔️ | Contains attack data for the weapon | See #Attack Data Schema |
Class |
N/A | productCategory |
IsAbilityWeapon for Exalted Weapons, otherwise no direct equivalent |
String | ✔️ | Weapon class for modding or a subclass of the weapon in its equip slot; in the case of Exalted Weapons, it is just "Exalted Weapon" | "Sniper Rifle"
|
CodexSecret |
N/A | codexSecret |
CodexSecret |
Boolean | ❌ | Whether or not the weapon has an entry in the Codex before the player acquires it; defaults to false | false
|
CompatibilityTags |
N/A | N/A | CompatibilityTags |
Table (array of strings) | ❌ | Tags that denote item compatibility. In other words, items with these tags can/cannot have a particular mod installed with the same tag. | { "POWER_WEAPON" }
|
Conclave |
N/A | N/A | AvailableOnPvp |
Boolean | ❌ | Whether or not the weapon can be used in Conclave | false
|
DefaultUpgrades |
N/A | N/A | DefaultUpgrades [1] |
Table (array of strings) | ❌ | Additional upgrades that are innate to the weapon | { "/Lotus/Weapons/Grineer/KuvaLich/Upgrades/InnateDamageRandomMod" }
|
Disposition |
Riven Disposition | omegaAttenuation |
OmegaAttenuation |
Number (float) | ✔️ | Riven Mod Disposition value | 0.5
|
ExilusPolarity |
N/A | N/A | ArtifactSlots |
String | ❌ | Polarity on Exilus slot | "Madurai"
|
Family |
N/A | N/A | N/A | String | ❌ | Weapon family that it belongs to, corresponding to the Riven Mod compatibility | "Latron"
|
IncarnonImage |
N/A | N/A | N/A | String | ❌ | Image file name of the weapon in its Incarnon Form as uploaded to the wiki | "Ack&BruntIncarnon.png"
|
Image |
N/A | textureLocation |
Icon |
String | ✔️ | Image file name of the weapon as uploaded to the wiki | "CrpBFG.png"
|
InternalName |
N/A | uniqueName |
TypeName |
String | ✔️ | The full unique name of a weapon formatted as a file path | "/Lotus/Weapons/MK1Series/MK1Paris"
|
Introduced |
N/A | N/A | N/A | String | ✔️ | The game version in which the weapon was first introduced in the global build of WARFRAME | "30.5" or "Specters of the Rail"
|
IsLichWeapon |
N/A | N/A | IsKuva |
Boolean | ❌ | Denotes whether or not a weapon is a Kuva or Tenet weapon | true
|
Link |
N/A | N/A | N/A | String | ✔️ | Page/article link to the weapon on the wiki | "Artemis Bow (Weapon)"
|
Magazine |
Magazine | magazineSize |
AmmoClipSize |
Number (integer) | ✔️ | Gun's base magazine size | 45 or 0 (no magazine)
|
Mastery |
N/A | masteryReq |
RequiredLevel |
Number (integer) | ✔️ | Mastery Rank requirement | 5
|
MaxRank |
N/A | N/A | LevelCap |
Number (integer) | ❌ | Weapon's maximum rank | 30
|
Name |
N/A | name |
LocalizeTag |
String | ✔️ | Weapon's name | "Primary Vermisplicer Chamber"
|
Polarities |
N/A | N/A | ArtifactSlots |
Table (array of strings) | ✔️ | Full names of the weapon's non-Universal polarities | { "Naramon", "Madurai" }
|
Reload |
Reload | reloadTime |
reloadTime or reloadEndTime , reloadLoopTime , reloadStartTime for by shell reloads |
Number (float) | ✔️ | Gun's base reload time in seconds | 3.5
|
ReloadDelay |
N/A | N/A | HeavyBatteryRegenDelay |
Number (float) | ❌ | For rechargeable/battery weapons, the time in seconds after firing before magazine 'recharges' or is replenished. For Vectis and Exergis, the time in seconds after firing before reload animation starts. | 0.5
|
ReloadDelayEmpty |
N/A | N/A | HeavyBatteryRegenDelayFromEmpty |
Number (float) | ❌ | For rechargeable/battery weapons, the time in seconds after fully depleting magazine before magazine 'recharges' or is replenished | 1
|
ReloadRate |
N/A | N/A | HeavyBatteryRegenRate |
Number (float) | ❌ | For rechargeable/battery weapons, the rate at which magazine 'recharges' or is replenished per second | 40
|
ReloadStyle |
N/A | N/A | N/A | String | ❌ | Gun's unique reload type for weapons like Cycron or Corinth | "Regenerate" or "ByRound"
|
SellPrice |
N/A | N/A | SellingPrice |
Number (integer) | ❌ | For sellable weapons, the sell price in Credits when removed from the player's inventory | 25000
|
Slot |
N/A | slot |
InventorySlot |
String | ✔️ | The weapon slot that the weapon can be equipped on; in the case of Exalted Weapons, it is just their modding class | "Primary"
|
SniperComboMin |
N/A | N/A | HitReqNextTierOperator |
Number (integer) | ❌ | For sniper rifles, the minimum number of hits to gain combo bonus | 1
|
SniperComboReset |
N/A | N/A | TimeBetweenHits |
Number (integer) | ❌ | For sniper rifles, the number of seconds after last hit before combo number goes down | 3
|
Spool |
N/A | N/A | ContinuousMaxShots |
Number (integer) | ❌ | For auto-spool weapons, number of shots until weapon reaches max fire rate | 5
|
Tradable |
N/A | N/A | TradeCapability |
Number (integer, enum) | ❌ | Whether or not a weapon is tradable to other players.
|
2
|
Trigger |
Trigger | trigger |
FireModes |
String | ✔️ | Gun's Trigger Type | "Auto" or "Auto / Burst"
|
Traits |
N/A | N/A | N/A | Table (array of strings) | ❌ | Gun's categorical traits | { "Grineer", "Wraith" }
|
Users |
N/A | N/A | N/A | Table (array of strings) | ❌ | Name of NPCs that use this weapon | { "Stalker", "Shadow Stalker" }
|
Zoom |
N/A | N/A | ZoomLevels |
Table (array of strings) | ❌ | The levels of zoom that the gun offers | { "2.0x", "4.5x" }
|
Melee Entry Schema
["Melee Weapon Name"] = {
_IgnoreEntry = true,
_TooltipAttackDisplay = 1,
Attacks = {
{
AttackName = "Normal Attack",
Damage = { Impact = 1, Puncture = 1, Slash = 1 },
CritChance = 0.1,
CritMultiplier = 2,
StatusChance = 0.1,
FireRate = 1
}
},
BlockAngle = 55,
Class = "Two-Handed Nikana",
ComboDur = 5,
Conclave = false,
Disposition = 0.5,
Family = "Tatsu",
FollowThrough = 0.7,
HeavyAttack = 1284,
HeavySlamAttack = 1070,
HeavySlamRadius = 8,
Image = "Tatsu.png",
Introduced = "",
Link = "Page Name",
Mastery = 1,
MaxRank = 30,
MeleeRange = 3,
Name = "MeleeName",
Polarities = { "Madurai" },
SellPrice = 7500,
SlamAttack = 642,
SlamElement = "Heat",
SlamForcedProcs = { "Heat" },
SlamRadius = 7,
SlideAttack = 1,
Slot = "Melee",
StancePolarity = "Madurai",
SweepRadius = 0.25,
Traits = { "Tenno" },
WindUp = 0.7
},
Key/Column Name | Arsenal EN L10n | Public Export Equivalent | Internal Equivalent | Data Type | Required? | Explanation/Description | Example(s) |
---|---|---|---|---|---|---|---|
Attacks |
N/A | N/A | AttackData , ExplosiveAttack , RadialDamage , EmbedAttack |
Table | ✔️ | Contains attack data for the weapon | See #Attack Data Schema |
BlockAngle |
Blocking Angle | blockingAngle |
ParryAngle |
Number (integer) | ✔️ | Melee's base blocking angle in degrees | 90
|
Class |
N/A | productCategory |
parent , parents , or MeleeStyle |
String | ✔️ | Weapon class for modding or a subclass of the weapon in its equip slot; in the case of Exalted Weapons, it is just "Exalted Weapon" | "Nikana"
|
CodexSecret |
N/A | codexSecret |
CodexSecret |
Boolean | ❌ | Whether or not the weapon has an entry in the Codex before the player acquires it; defaults to false | false
|
ComboDur |
Combo Duration | comboDuration |
TimeBetweenHits |
Number (integer) | ❌ | Melee's base combo duration in seconds | 5
|
CompatibilityTags |
N/A | N/A | CompatibilityTags |
Table (array of strings) | ❌ | Tags that denote item compatibility. In other words, items with these tags can/cannot have a particular mod installed with the same tag. | { "POWER_WEAPON" }
|
Conclave |
N/A | N/A | AvailableOnPvp |
Boolean | ❌ | Whether or not the weapon can be used in Conclave | false
|
DefaultUpgrades |
N/A | N/A | DefaultUpgrades |
Table (array of strings) | ❌ | Additional upgrades that are innate to the weapon | { "/Lotus/Weapons/Grineer/KuvaLich/Upgrades/InnateDamageRandomMod" }
|
Disposition |
Riven Disposition | omegaAttenuation |
OmegaAttenuation |
Number (float) | ✔️ | Riven Mod Disposition value | 0.5
|
Family |
N/A | N/A | N/A | String | ❌ | Weapon family that it belongs to, corresponding to the Riven Mod compatibility | "Machete"
|
FollowThrough |
Follow Through | followThrough |
N/A | Number (float) | ✔️ | Melee's base follow through multiplier as a decimal | 0.6
|
HeavyAttack |
Heavy Attack | heavyAttackDamage |
N/A | Number (float) | ✔️ | Melee's base heavy attack damage. For Kuva/Tenet weapons include minimum +25% Progenitor bonus in damage value. | 1284
|
HeavySlamAttack |
Slam Attack | heavySlamAttack |
N/A | Number (float) | ✔️ | Melee's base heavy slam direct hit damage. For Kuva/Tenet weapons include minimum +25% Progenitor bonus in damage value. | 1070
|
HeavySlamElement |
N/A | N/A | N/A | String | ❌ | Melee's base heavy slam damage type | "Heat"
|
HeavySlamForcedProcs |
N/A | N/A | N/A | Table (array of strings) | ❌ | Melee's base heavy slam attack forced proc(s) | { "Heat" }
|
HeavyRadialDmg (depreciated on Update 35.5 (2024-03-27)) |
Slam Radial Damage | heavySlamRadialDamage |
N/A | Number (float) | ✔️ | Melee's base heavy slam radial attack damage. For Kuva/Tenet weapons include minimum +25% Progenitor bonus in damage value. | 1070
|
HeavySlamRadius |
Slam Radius | heavySlamRadius |
N/A | Number (integer) | ✔️ | Melee's base heavy slam radius in meters | 8
|
IncarnonImage |
N/A | N/A | N/A | String | ❌ | Image file name of the weapon in its Incarnon Form as uploaded to the wiki | "Ack&BruntIncarnon.png"
|
Image |
N/A | textureLocation |
Icon |
String | ✔️ | Image file name of the weapon as uploaded to the wiki | "Ankyros.png"
|
InternalName |
N/A | uniqueName |
TypeName |
String | ✔️ | The full unique name of a weapon formatted as a file path | "/Lotus/Weapons/MK1Series/MK1Furis"
|
Introduced |
N/A | N/A | N/A | String | ✔️ | The game version in which the weapon was first introduced in the global build of WARFRAME | "30.5" or "Specters of the Rail"
|
IsLichWeapon |
N/A | N/A | IsKuva |
Boolean | ❌ | Denotes whether or not a weapon is a Kuva or Tenet weapon | true
|
Link |
N/A | N/A | N/A | String | ✔️ | Page/article link to the weapon on the wiki | "Exalted Blade (Weapon)"
|
Mastery |
N/A | masteryReq |
RequiredLevel |
Number (integer) | ✔️ | Mastery Rank requirement | 5
|
MaxRank |
N/A | N/A | LevelCap |
Number (integer) | ❌ | Weapon's maximum rank | 30
|
MeleeRange |
Range | range |
N/A | Number (float) | ✔️ | Melee's base attack range in meters | 2
|
Name |
N/A | name |
LocalizeTag |
String | ✔️ | Weapon's name | "Galatine Prime"
|
Polarities |
N/A | N/A | ArtifactSlots |
Table (array of strings) | ✔️ | Full names of the weapon's non-Universal polarities | { "Naramon", "Madurai" }
|
SellPrice |
N/A | N/A | SellingPrice |
Number (integer) | ❌ | For sellable weapons, the sell price in Credits when removed from the player's inventory | 25000
|
SlamAttack |
Slam Attack | slamAttack |
N/A | Number (float) | ✔️ | Melee's base normal slam direct hit damage. For Kuva/Tenet weapons include minimum +25% Progenitor bonus in damage value. | 642
|
SlamElement |
N/A | N/A | N/A | String | ❌ | Melee's base normal slam damage type | "Heat"
|
SlamForcedProcs |
N/A | N/A | N/A | Table (array of strings) | ❌ | Melee's base normal slam attack forced proc(s) | { "Heat" }
|
SlamRadialDmg (depreciated on Update 35.5 (2024-03-27)) |
Slam Radial Damage | slamRadialDamage |
N/A | Number (float) | ✔️ | Melee's base normal slam radial damage. For Kuva/Tenet weapons include minimum +25% Progenitor bonus in damage value. | 214
|
SlamRadialElement (depreciated on Update 35.5 (2024-03-27)) |
N/A | N/A | N/A | String | ❌ | Melee's base normal slam radial attack damage type | "Heat"
|
SlamRadialProcs (depreciated on Update 35.5 (2024-03-27)) |
N/A | N/A | N/A | Table (array of strings) | ❌ | Melee's base normal slam radial attack forced proc(s) | { "Heat" }
|
SlamRadius |
Slam Radius | slamRadius |
N/A | Number (integer) | ✔️ | Melee's base normal slam radius in meters | 7
|
SlideAttack |
Slide Attack | slideAttack |
N/A | Number (float) | ✔️ | Melee's base slide attack damage. For Kuva/Tenet weapons include minimum +25% Progenitor bonus in damage value. | 100
|
SlideElement |
N/A | N/A | N/A | String | ❌ | Melee's base slide attack damage type | "Toxin"
|
Slot |
N/A | slot |
InventorySlot |
String | ✔️ | The weapon slot that the weapon can be equipped on; in the case of Exalted Weapons, it is just their modding class | "Melee"
|
StancePolarity |
N/A | N/A | ArtifactSlots |
String | ✔️ | Polarity on Stance slot | "Madurai"
|
SweepRadius |
N/A | N/A | SweepRadius |
Number (float) | ✔️ | Melee's sweep attack's (i.e. normal and heavy attacks) base hitbox radius in meters | 0.25
|
Tradable |
N/A | N/A | TradeCapability |
Number (integer, enum) | ❌ | Whether or not a weapon is tradable to other players.
|
2
|
Traits |
N/A | N/A | N/A | Table (array of strings) | ❌ | Gun's categorical traits | { "Grineer", "Wraith" }
|
Users |
N/A | N/A | N/A | Table (array of strings) | ❌ | Name of NPCs that use this weapon | { "Stalker", "Shadow Stalker" }
|
WindUp |
Wind Up | windUp |
N/A | Number (float) | ✔️ | Heavy attack wind-up time in seconds | 0.5
|
For Module Use
Key/Column Name | Data Type | Required? | Explanation/Description | Example(s) |
---|---|---|---|---|
_IgnoreEntry |
Boolean | ❌ | For module use, indicates that this weapon table entry is special and should ignored when parsing table entries | true
|
_IgnoreInCSV |
Boolean | ❌ | For module use, indicates that this weapon table entry should be ignored when outputting CSV (via Module:Weapons/csv) | true
|
_IgnoreInMasteryCount |
Boolean | ❌ | For module use, indicates that this weapon table entry should be ignored when tallying up mastery totals | true
|
_TooltipAttackDisplay |
Number | ❌ | For module use, tells what table entry in Attack table to use when processing weapon tooltips and comparing weapon variants in Comparison sections; 1 will be used if no value is assigned |
4
|
Preprocessed Data
If you want data on the relative stat rankings (percentile-based) of each weapon for each weapon stat, see Module:Weapons/ppdata.
Export Data
Since this database is horizontally partitioned, if you want all the weapon table entries at once, go to Special:ExpandTemplates and run {{#invoke:LuaSerializer|serialize|Weapons/data}}
. This will run the script on this page and return plaintext that contains a executable prettified Lua table with all the weapon table entries.
Alternatively, you can use MediaWiki's Action API to get the executed contents of this module:
- Special:ApiSandbox:
https://warframe.fandom.com/wiki/Special:ApiSandbox#action=scribunto-console&format=json&title=Module%3AWeapons&content=return%20require('Module%3ALuaSerializer')._serialize('Weapons%2Fdata')&question=%3Dp&clear=1
https://warframe.fandom.com/wiki/Special:ApiSandbox#action=scribunto-console&format=json&title=Module%3AWeapons&content=return%20require('Module%3AWeapons%2Fdata')&question=%3Dp&clear=1
- Raw endpoints:
https://warframe.fandom.com/api.php?action=scribunto-console&format=json&title=Module%3AWeapons&content=return%20require(%27Module%3ALuaSerializer%27)._serialize(%27Weapons%2Fdata%27)&question=%3Dp&clear=1
https://warframe.fandom.com/api.php?action=scribunto-console&format=json&title=Module%3AWeapons&content=return%20require(%27Module%3AWeapons%2Fdata%27)&question=%3Dp&clear=1
- JavaScript:
var url = new URL('https://warframe.fandom.com/api.php?'); var searchParams = new URLSearchParams({ action: 'scribunto-console', format: 'json', title: 'Module:Weapons', // Alternatively, run "return require('Module:LuaSerializer')._serialize('Weapons/data')" // If you want to convert Lua tables to native JSON, run "return require('Module:JSON').stringify(require('Module:Weapons/data'))" content: "return require('Module:Weapons/data')", question: '=p', clear: 1 }); fetch(url + searchParams) .then(data => data.json()) .then(json => console.log(json.return));
- See https://warframe.fandom.com/api.php for auto-generated documentation on this wiki's version of the API
Weapon Edge Cases
Some weapons have complicated mechanics or behaviors that are not currently compatible with the wiki's weapon entry schema:
- Tenet Diplos's lock-on mechanic while aiming has a ~0.5 second delay after the burst ends before being able to lock-on again. This delay is affected by Fire Rate bonuses. This delay is not the same as
BurstDelay
orBurstReloadDelay
. Can be thought as the "delay between bursts that is not the reciprocal of Fire Rate".
Where To Source Weapon Data
Some notes on where editors can source weapon data:
- In-game:
- Outside of the game (without the need to launch the game):
- Public Export's
ExportWeapons
manifest - https://overframe.gg/, go create a "New Build" and F12 to HTML source to find some internal JSON data on weapon. See the below section for more details.
- Public Export's
Where To Find Weapon Metadata
The in-game UI does not thoroughly present all the data and interactions that is provided from a weapon. Here are some methods and sources to get more insight on the internal mechanics on weapons:
- https://overframe.gg/ has access to more metadata than what Digital Extremes provide to the public. This JSON data is cached locally on the client in these tags:
<script id="__NEXT_DATA__" type="application/json"></script>
- For example, for more metadata on Kuva Bramma, go create a new build https://overframe.gg/build/new/4245/kuva-bramma/ and inspect the HTML element on the page using your browser's development tools. The relevant metadata should be under the
<script id="__NEXT_DATA__" type="application/json"></script>
tags. If not, hard refresh the browser's cache so the underlying data is updated to reflect on the actual item."data": { "AmmoCapacity": 5, "AmmoClipSize": 1, "ArtifactSlots": ["AP_UNIVERSAL", "AP_UNIVERSAL", "AP_UNIVERSAL", "AP_ATTACK", "AP_UNIVERSAL", "AP_UNIVERSAL", "AP_UNIVERSAL", "AP_UNIVERSAL", "AP_TACTIC", "AP_UNIVERSAL"], "Behaviors": [{ "fire:LotusWeaponProjectileFireBehavior": { "AIMED_ACCURACY": { "Spread": { "SHOOTING": { "range": [0, 12], "type": "ST_EXPONENTIAL" } } }, "IgnoreFireIterations": 0, "IsMeleeBehavior": 0, "IsSilenced": 0, "RoundUpAmmoConsumption": 0, "ScaleAmmoRequirement": 0, "UseAmmo": 1, "ammoRequirement": 1, "ammoType": "/Lotus/Weapons/Ammo/RifleAmmoEx", "chargedProjectileType": { "AttackData": { "Amount": 187, "HitType": "DHT_PROJECTILE", "ProcChance": 0.21, "Type": "DT_IMPACT" }, "BounceOnAvatars": 0, "CanStick": 1, "ClusterProjectiles": { "AttackData": { "Amount": 49, "HitType": "DHT_PROJECTILE", "ProcChance": 0.21, "Type": "DT_IMPACT" }, "BounceOnAvatars": 0, "CanStick": 1, "CriticalChance": 0.35, "CriticalMultiplier": 2.1, "DamageRadius": 3.5, "DealDamageThroughImpactBehavior": 1, "EmbedAttack": { "Amount": 0, "Type": "DT_POISON" }, "EmbedDeathAttack": { "Amount": 35, "Type": "DT_EXPLOSION" }, "EmbedTime": [0.5, 0.5], "ExplosionFallOff": 0.5, "ExplosionIgnoreSource": 1, "ExplosiveAttack": { "Amount": 57, "HitType": "DHT_RADIAL", "ProcChance": 0.21 }, "MaxLife": 2 }, "CriticalChance": 0.35, "CriticalMultiplier": 2.1, "DamageRadius": 8.3, "DealDamageThroughImpactBehavior": 1, "EmbedAttack": { "Amount": 0, "Type": "DT_POISON" }, "EmbedDeathAttack": { "Amount": 175, "HitType": "DHT_RADIAL" }, "ExplosionFallOff": 0.9, "ExplosiveAttack": { "Amount": 839, "HitType": "DHT_RADIAL", "ProcChance": 0.21 }, "MaxLife": 5, "NumClusterProjectiles": 3 }, "fireIterations": 1, "projectileType": { "AttackData": { "Amount": 187, "HitType": "DHT_PROJECTILE", "ProcChance": 0.21, "Type": "DT_IMPACT" }, "BounceOnAvatars": 0, "CanStick": 1, "ClusterProjectiles": { "AttackData": { "Amount": 49, "HitType": "DHT_PROJECTILE", "ProcChance": 0.21, "Type": "DT_IMPACT" }, "BounceOnAvatars": 0, "CanStick": 1, "CriticalChance": 0.35, "CriticalMultiplier": 2.1, "DamageRadius": 3.5, "DealDamageThroughImpactBehavior": 1, "EmbedAttack": { "Amount": 0, "Type": "DT_POISON" }, "EmbedDeathAttack": { "Amount": 35, "Type": "DT_EXPLOSION" }, "EmbedTime": [0.5, 0.5], "ExplosionFallOff": 0.5, "ExplosionIgnoreSource": 1, "ExplosiveAttack": { "Amount": 57, "HitType": "DHT_RADIAL", "ProcChance": 0.21 }, "MaxLife": 2 }, "CriticalChance": 0.35, "CriticalMultiplier": 2.1, "DamageRadius": 8.3, "DealDamageThroughImpactBehavior": 1, "EmbedAttack": { "Amount": 0, "Type": "DT_POISON" }, "EmbedDeathAttack": { "Amount": 175, "HitType": "DHT_RADIAL" }, "ExplosionFallOff": 0.9, "ExplosiveAttack": { "Amount": 839, "HitType": "DHT_RADIAL", "ProcChance": 0.21 }, "MaxLife": 5, "NumClusterProjectiles": 3 } }, "fire:Type": "/Lotus/Types/Game/LotusWeaponProjectileFireBehavior", "impact:LotusWeaponImpactBehavior": { "AttackData": { "Amount": 10, "DT_IMPACT": 0.33333, "DT_PUNCTURE": 0.33333, "DT_SLASH": 0.33333, "HitType": "DHT_NONE", "ProcChance": 0.1, "Type": "DT_PHYSICAL", "UseNewFormat": 0 }, "PlayerDamageMultiplier": 1, "PvpDamageMultiplier": 1, "criticalHitChance": 0.2, "criticalHitDamageMultiplier": 1.5, "radius": 0 }, "impact:Type": "/Lotus/Types/Weapon/LotusWeaponImpactBehavior", "state:ChargedRemoteMineStateBehavior": { "AutoFireWhenChargeCompleted": 0, "ChargeModifier": "WEAPON_FIRE_RATE", "ChargeTime": 0.4, "ClipSizeAffectsChargeTime": 0, "DamageMultiplier": 1, "IsAlternateFire": 0, "LocTag": "/Lotus/Language/Menu/Loadout_TriggerCharge", "MinChargeRatio": 1, "MinDamageMultiplier": 1, "fireRate": 40, "reloadTime": 0.6 }, "state:Type": "/Lotus/Types/Weapon/ChargedRemoteMineStateBehavior" } ], "CompatibilityTags": ["PROJECTILE", "AOE", "SNIPER_AMMO", "SINGLESHOT", "GRNBOW"], "EquipTime": 1.8, "GripType": "BOW", "HasClip": 0, "Icon": "/Lotus/Interface/Icons/StoreIcons/Weapons/PrimaryWeapons/Weapons/KuvaGrnBow.png", "InventorySlot": "SLOT_2", "IsKuva": 1, "LevelCap": 40, "LocalizeDescTag": "/Lotus/Language/Weapons/KuvaGrnBowDesc", "LocalizeTag": "/Lotus/Language/Weapons/KuvaGrnBowName", "MarketMode": "MM_HIDDEN", "OmegaAttenuation": 0.6, "PVPAmmoClipSize": 1, "PremiumPrice": 225, "ProductCategory": "LongGuns", "RequiredLevel": 15, "SellingPrice": 7500, "ZoomLevels": [{} ] }, "id": 4245, "parent": "/Lotus/Weapons/Tenno/Bows/LotusLongBow", "parents": ["/Lotus/Weapons/Tenno/Bows/LotusLongBow", "/Lotus/Weapons/Tenno/Bows/LotusBow", "/Lotus/Weapons/Tenno/Rifle/LotusRifle", "/Lotus/Weapons/Tenno/LotusLongGun", "/Lotus/Weapons/Tenno/LotusBulletWeapon"], "path": "/Lotus/Weapons/Grineer/Bows/GrnBow/GrnBowWeapon", "storeData": { "DisplayRecipe": "", "PremiumPrice": 225, "ProductCategory": "LongGuns", "SearchTags": ["/Lotus/Language/Game/DT_EXPLOSION_NoIcon", "/Lotus/Language/Game/DT_IMPACT_NoIcon", "/Lotus/Language/Items/BowCategoryName", "/Lotus/Language/Items/RifleCategoryName", "/Lotus/Language/Items/SniperCategoryName"], "SellingPrice": 7500, "ShowInMarket": 0 }, "storeItemType": "/Lotus/StoreItems/Weapons/Grineer/Bows/GrnBow/GrnBowWeapon", "tag": "Weapon", "texture": "/Lotus/Interface/Icons/Store/KuvaGrnBow.png", "texture_new": "/Lotus/Interface/Icons/StoreIcons/Weapons/PrimaryWeapons/Weapons/KuvaGrnBow.png" }
- For example, for more metadata on Kuva Bramma, go create a new build https://overframe.gg/build/new/4245/kuva-bramma/ and inspect the HTML element on the page using your browser's development tools. The relevant metadata should be under the
Data Validation
Validate data types of key-value pairs
p.validateDataTypes(frame): There are a total of 9 key-value errors
- "Destreza" contains an unsupported key
HeavSlamElement
- "Dual Ether" contains an unsupported key
HeavuSlamElement
- "Hate" contains an unsupported key
lamForcedProcs
- "Ironbride" contains an unsupported key
SlamRadialDmg
- "Pugil" contains an unsupported key
SlamRadialDmg
- "Pugil" contains an unsupported key
SlamRadialProcs
- "Pugil" contains an unsupported key
SlamRadialElement
- "Silva & Aegis" contains an unsupported key
SlamForcedProc
- "Unarmed" contains an unsupported key
SlamRadialDmg
Checking missing keys
p.checkForMissingData(frame): There are a total of 17 key-value errors
- "Dargyn"
Attacks[1].CritChance
is nil - "Dargyn"
Attacks[1].StatusChance
is nil - "Dargyn"
Attacks[1].CritMultiplier
is nil - "Ebisu Spear"
Attacks[1].CritChance
is nil - "Garuda Prime Talons" does not have
Disposition
key - "Garuda Prime Talons" does not have
Mastery
key - "Garuda Talons" does not have
Disposition
key - "Garuda Talons" does not have
Mastery
key - "Lanzo Fishing Spear"
Attacks[1].CritChance
is nil - "Peram Fishing Spear"
Attacks[1].CritChance
is nil - "Rampart"
Attacks[1].CritChance
is nil - "Rampart"
Attacks[1].StatusChance
is nil - "Rampart"
Attacks[1].CritMultiplier
is nil - "Shockprod Fishing Spear"
Attacks[1].CritChance
is nil - "Spari Spear"
Attacks[1].CritChance
is nil - "Stunna Fishing Spear"
Attacks[1].CritChance
is nil - "Tulok Fishing Spear"
Attacks[1].CritChance
is nil
Validate Attack
tables
p.validateAttacks(frame): There are a total of 0 key-value errors
Validate required weapon table keys
p.validateRequiredKeys(frame): There are a total of 449 key-value errors
- "Apoc" AmmoPickup must be a value greater than or equal to 0
- "Apoc" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Apoc MK I" AmmoPickup must be a value greater than or equal to 0
- "Apoc MK I" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Apoc MK II" AmmoPickup must be a value greater than or equal to 0
- "Apoc MK II" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Apoc MK III" AmmoPickup must be a value greater than or equal to 0
- "Apoc MK III" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Artax" AmmoPickup must be a value greater than or equal to 0
- "Burst Laser" AmmoPickup must be a value greater than or equal to 0
- "Burst Laser Prime" AmmoPickup must be a value greater than or equal to 0
- "Cantic Prism" AmmoPickup must be a value greater than or equal to 0
- "Carcinnox" AmmoPickup must be a value greater than or equal to 0
- "Carcinnox" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Carcinnox MK I" AmmoPickup must be a value greater than or equal to 0
- "Carcinnox MK I" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Carcinnox MK II" AmmoPickup must be a value greater than or equal to 0
- "Carcinnox MK II" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Carcinnox MK III" AmmoPickup must be a value greater than or equal to 0
- "Carcinnox MK III" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Catchmoon (Primary)" Image should be in the form of "WeaponName.png"; current value: Catchmoon.png
- "Catchmoon (Primary)" Magazine must be a value above 0
- "Catchmoon (Primary)" Missing reload time or reload time has to be above 0
- "Catchmoon (Secondary)" Image should be in the form of "WeaponName.png"; current value: Catchmoon.png
- "Catchmoon (Secondary)" Magazine must be a value above 0
- "Catchmoon (Secondary)" Missing reload time or reload time has to be above 0
- "Cerata" Heavy attack must be greater than 0
- "Cortege" AmmoPickup must be a value greater than or equal to 0
- "Cortege (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Cortege (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Cortege.png
- "Corvas" AmmoPickup must be a value greater than or equal to 0
- "Corvas (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Corvas (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Corvas.png
- "Corvas Prime" AmmoPickup must be a value greater than or equal to 0
- "Corvas Prime (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Corvas Prime (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: CorvasPrime.png
- "Cryophon" AmmoPickup must be a value greater than or equal to 0
- "Cryophon" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Cryophon MK I" AmmoPickup must be a value greater than or equal to 0
- "Cryophon MK I" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Cryophon MK II" AmmoPickup must be a value greater than or equal to 0
- "Cryophon MK II" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Cryophon MK III" AmmoPickup must be a value greater than or equal to 0
- "Cryophon MK III" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Cryotra" AmmoPickup must be a value greater than or equal to 0
- "Cyngas" AmmoPickup must be a value greater than or equal to 0
- "Cyngas (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Cyngas (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Cyngas.png
- "Dargyn" AmmoPickup must be a value greater than or equal to 0
- "Dargyn" Disposition must be between 0.5-1.55; default should be 0.5
- "Dargyn" Image should be in the form of "WeaponName.png"; current value: GrnSkiffMissile.png
- "Dargyn" Missing InternalName
- "Dargyn" Missing mastery rank unlock and mastery has to between 0 and 16 inclusive
- "Deconstructor" AmmoPickup must be a value greater than or equal to 0
- "Deconstructor Prime" AmmoPickup must be a value greater than or equal to 0
- "Deth Machine Rifle" AmmoPickup must be a value greater than or equal to 0
- "Deth Machine Rifle Prime" AmmoPickup must be a value greater than or equal to 0
- "Dissic Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Dual Decurion" AmmoPickup must be a value greater than or equal to 0
- "Dual Decurion (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Dual Decurion (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: DualDecurion.png
- "Exard Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Falcor" Heavy attack must be greater than 0
- "Fluctus" AmmoPickup must be a value greater than or equal to 0
- "Fluctus (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Fluctus (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Fluctus.png
- "Galvarc" AmmoPickup must be a value greater than or equal to 0
- "Galvarc" Image should be in the form of "WeaponName.png"; current value: OrdnanceGalvarc.png
- "Galvarc MK I" AmmoPickup must be a value greater than or equal to 0
- "Galvarc MK I" Image should be in the form of "WeaponName.png"; current value: OrdnanceGalvarc.png
- "Galvarc MK II" AmmoPickup must be a value greater than or equal to 0
- "Galvarc MK II" Image should be in the form of "WeaponName.png"; current value: OrdnanceGalvarc.png
- "Galvarc MK III" AmmoPickup must be a value greater than or equal to 0
- "Galvarc MK III" Image should be in the form of "WeaponName.png"; current value: OrdnanceGalvarc.png
- "Garuda Prime Talons" Disposition must be between 0.5-1.55; default should be 0.5
- "Garuda Prime Talons" Missing mastery rank unlock
- "Garuda Talons" Disposition must be between 0.5-1.55; default should be 0.5
- "Garuda Talons" Missing mastery rank unlock
- "Gaze (Primary)" Image should be in the form of "WeaponName.png"; current value: Gaze.png
- "Gaze (Primary)" Magazine must be a value above 0
- "Gaze (Primary)" Missing reload time or reload time has to be above 0
- "Gaze (Secondary)" Image should be in the form of "WeaponName.png"; current value: Gaze.png
- "Gaze (Secondary)" Magazine must be a value above 0
- "Gaze (Secondary)" Missing reload time or reload time has to be above 0
- "Glaive" Heavy attack must be greater than 0
- "Glaive Prime" Heavy attack must be greater than 0
- "Glazio MK I" AmmoPickup must be a value greater than or equal to 0
- "Glazio MK I" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Glazio MK II" AmmoPickup must be a value greater than or equal to 0
- "Glazio MK II" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Glazio MK III" AmmoPickup must be a value greater than or equal to 0
- "Glazio MK III" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Granmu Prism" AmmoPickup must be a value greater than or equal to 0
- "Grattler" AmmoPickup must be a value greater than or equal to 0
- "Grattler (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Grattler (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Grattler.png
- "Grimoire" Magazine must be a value above 0
- "Grimoire" Missing reload time or reload time has to be above 0
- "Halikar" Heavy attack must be greater than 0
- "Halikar Wraith" Heavy attack must be greater than 0
- "Hand Grenade" AmmoMax must be a value greater than or equal to 0
- "Hand Grenade" AmmoPickup must be a value greater than or equal to 0
- "Hand Grenade" Magazine must be a value above 0
- "Hand Grenade" Missing reload time or reload time has to be above 0
- "Hand Grenade" Missing trigger type of weapon
- "Helstrum" AmmoPickup must be a value greater than or equal to 0
- "Imperator" AmmoPickup must be a value greater than or equal to 0
- "Imperator (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Imperator (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Imperator.png
- "Imperator Vandal" AmmoPickup must be a value greater than or equal to 0
- "Imperator Vandal (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Imperator Vandal (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: ImperatorVandal.png
- "Kestrel" Heavy attack must be greater than 0
- "Klamora Prism" AmmoPickup must be a value greater than or equal to 0
- "Klebrik Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Kuva Ayanga" AmmoPickup must be a value greater than or equal to 0
- "Kuva Ayanga (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Kuva Ayanga (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: KuvaAyanga.png
- "Kuva Grattler" AmmoPickup must be a value greater than or equal to 0
- "Kuva Grattler (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Kuva Grattler (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: KuvaGrattler.png
- "Laith MK I" AmmoPickup must be a value greater than or equal to 0
- "Laith MK I" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Laith MK II" AmmoPickup must be a value greater than or equal to 0
- "Laith MK II" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Laith MK III" AmmoPickup must be a value greater than or equal to 0
- "Laith MK III" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Larkspur" AmmoPickup must be a value greater than or equal to 0
- "Larkspur (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Larkspur (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Larkspur.png
- "Larkspur Prime" AmmoPickup must be a value greater than or equal to 0
- "Larkspur Prime (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Larkspur Prime (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: LarkspurPrime.png
- "Laser Rifle" AmmoPickup must be a value greater than or equal to 0
- "Lavan Apoc MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Apoc MK I" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Lavan Apoc MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Apoc MK II" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Lavan Apoc MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Apoc MK III" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Lavan Carcinnox MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Carcinnox MK I" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Lavan Carcinnox MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Carcinnox MK II" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Lavan Carcinnox MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Carcinnox MK III" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Lavan Cryophon MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Cryophon MK I" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Lavan Cryophon MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Cryophon MK II" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Lavan Cryophon MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Cryophon MK III" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Lavan Glazio MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Glazio MK I" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Lavan Glazio MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Glazio MK II" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Lavan Glazio MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Glazio MK III" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Lavan Laith MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Laith MK I" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Lavan Laith MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Laith MK II" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Lavan Laith MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Laith MK III" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Lavan Photor MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Photor MK I" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Lavan Photor MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Photor MK II" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Lavan Photor MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Photor MK III" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Lavan Pulsar MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Pulsar MK I" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Lavan Pulsar MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Pulsar MK II" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Lavan Pulsar MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Pulsar MK III" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Lavan Talyn MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Talyn MK I" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Lavan Talyn MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Talyn MK II" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Lavan Talyn MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Talyn MK III" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Lavan Vort MK I" AmmoPickup must be a value greater than or equal to 0
- "Lavan Vort MK I" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Lavan Vort MK II" AmmoPickup must be a value greater than or equal to 0
- "Lavan Vort MK II" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Lavan Vort MK III" AmmoPickup must be a value greater than or equal to 0
- "Lavan Vort MK III" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Lega Prism" AmmoPickup must be a value greater than or equal to 0
- "MK1-Braton" Image should be in the form of "WeaponName.png"; current value: Braton.png
- "MK1-Furis" Image should be in the form of "WeaponName.png"; current value: Furis.png
- "MK1-Kunai" Image should be in the form of "WeaponName.png"; current value: Kunai.png
- "MK1-Paris" Image should be in the form of "WeaponName.png"; current value: Paris.png
- "MK1-Strun" Image should be in the form of "WeaponName.png"; current value: Strun.png
- "Mandonel" AmmoPickup must be a value greater than or equal to 0
- "Mandonel" Missing InternalName
- "Mandonel (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Mandonel (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Mandonel.png
- "Mandonel (Atmosphere)" Missing InternalName
- "Mausolon" AmmoPickup must be a value greater than or equal to 0
- "Mausolon (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Mausolon (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Mausolon.png
- "Milati" AmmoPickup must be a value greater than or equal to 0
- "Milati" Image should be in the form of "WeaponName.png"; current value: OrdnanceMilati.png
- "Milati MK I" AmmoPickup must be a value greater than or equal to 0
- "Milati MK I" Image should be in the form of "WeaponName.png"; current value: OrdnanceMilati.png
- "Milati MK II" AmmoPickup must be a value greater than or equal to 0
- "Milati MK II" Image should be in the form of "WeaponName.png"; current value: OrdnanceMilati.png
- "Milati MK III" AmmoPickup must be a value greater than or equal to 0
- "Milati MK III" Image should be in the form of "WeaponName.png"; current value: OrdnanceMilati.png
- "Morgha" AmmoPickup must be a value greater than or equal to 0
- "Morgha (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Morgha (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Morgha.png
- "Mote Amp" AmmoPickup must be a value greater than or equal to 0
- "Multron" AmmoPickup must be a value greater than or equal to 0
- "Orvius" Heavy attack must be greater than 0
- "Parazon" AmmoMax must be a value greater than or equal to 0
- "Parazon" AmmoPickup must be a value greater than or equal to 0
- "Parazon" Magazine must be a value above 0
- "Parazon" Missing reload time or reload time has to be above 0
- "Parazon" Missing trigger type of weapon
- "Pathocyst" Heavy attack must be greater than 0
- "Pencha Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Phaedra" AmmoPickup must be a value greater than or equal to 0
- "Phaedra (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Phaedra (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Phaedra.png
- "Phahd Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Photor" AmmoPickup must be a value greater than or equal to 0
- "Photor" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Photor MK I" AmmoPickup must be a value greater than or equal to 0
- "Photor MK I" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Photor MK II" AmmoPickup must be a value greater than or equal to 0
- "Photor MK II" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Photor MK III" AmmoPickup must be a value greater than or equal to 0
- "Photor MK III" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Prime Laser Rifle" AmmoPickup must be a value greater than or equal to 0
- "Prisma Burst Laser" AmmoPickup must be a value greater than or equal to 0
- "Prisma Dual Decurions" AmmoPickup must be a value greater than or equal to 0
- "Prisma Dual Decurions (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Prisma Dual Decurions (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: PrismaDualDecurions.png
- "Propa Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Pugil" AmmoMax must be a value greater than or equal to 0
- "Pugil" AmmoPickup must be a value greater than or equal to 0
- "Pugil" Missing InternalName
- "Pugil" Magazine must be a value above 0
- "Pugil" Missing reload time or reload time has to be above 0
- "Pugil" Missing trigger type of weapon
- "Pulsar" AmmoPickup must be a value greater than or equal to 0
- "Pulsar" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Pulsar MK I" AmmoPickup must be a value greater than or equal to 0
- "Pulsar MK I" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Pulsar MK II" AmmoPickup must be a value greater than or equal to 0
- "Pulsar MK II" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Pulsar MK III" AmmoPickup must be a value greater than or equal to 0
- "Pulsar MK III" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Rahn Prism" AmmoPickup must be a value greater than or equal to 0
- "Rampart" AmmoPickup must be a value greater than or equal to 0
- "Rampart" Disposition must be between 0.5-1.55; default should be 0.5
- "Rampart" Missing InternalName
- "Rampart" Missing mastery rank unlock and mastery has to between 0 and 16 inclusive
- "Raplak Prism" AmmoPickup must be a value greater than or equal to 0
- "Rattleguts (Primary)" AmmoPickup must be a value greater than or equal to 0
- "Rattleguts (Primary)" Image should be in the form of "WeaponName.png"; current value: Rattleguts.png
- "Rattleguts (Primary)" Magazine must be a value above 0
- "Rattleguts (Primary)" Missing reload time or reload time has to be above 0
- "Rattleguts (Secondary)" AmmoPickup must be a value greater than or equal to 0
- "Rattleguts (Secondary)" Image should be in the form of "WeaponName.png"; current value: Rattleguts.png
- "Rattleguts (Secondary)" Magazine must be a value above 0
- "Rattleguts (Secondary)" Missing reload time or reload time has to be above 0
- "Razorflies" AmmoMax must be a value greater than or equal to 0
- "Razorflies" AmmoPickup must be a value greater than or equal to 0
- "Razorflies" Image should be in the form of "WeaponName.png"; current value: Panel.png
- "Razorflies" Magazine must be a value above 0
- "Razorflies" Missing reload time or reload time has to be above 0
- "Razorflies" Missing trigger type of weapon
- "Shraksun Scaffold" AmmoPickup must be a value greater than or equal to 0
- "Shwaak Prism" AmmoPickup must be a value greater than or equal to 0
- "Sirocco" AmmoPickup must be a value greater than or equal to 0
- "Soaktron" AmmoPickup must be a value greater than or equal to 0
- "Soaktron" Missing InternalName
- "Soaktron" Missing reload time or reload time has to be above 0
- "Sporelacer (Primary)" Image should be in the form of "WeaponName.png"; current value: Sporelacer.png
- "Sporelacer (Primary)" Magazine must be a value above 0
- "Sporelacer (Primary)" Missing reload time or reload time has to be above 0
- "Sporelacer (Secondary)" Image should be in the form of "WeaponName.png"; current value: Sporelacer.png
- "Sporelacer (Secondary)" Magazine must be a value above 0
- "Sporelacer (Secondary)" Missing reload time or reload time has to be above 0
- "Stinger" AmmoPickup must be a value greater than or equal to 0
- "Sweeper" AmmoPickup must be a value greater than or equal to 0
- "Sweeper Prime" AmmoPickup must be a value greater than or equal to 0
- "Talyn MK I" AmmoPickup must be a value greater than or equal to 0
- "Talyn MK I" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Talyn MK II" AmmoPickup must be a value greater than or equal to 0
- "Talyn MK II" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Talyn MK III" AmmoPickup must be a value greater than or equal to 0
- "Talyn MK III" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Tazicor" AmmoPickup must be a value greater than or equal to 0
- "Tombfinger (Primary)" Image should be in the form of "WeaponName.png"; current value: Tombfinger.png
- "Tombfinger (Primary)" Magazine must be a value above 0
- "Tombfinger (Primary)" Missing reload time or reload time has to be above 0
- "Tombfinger (Secondary)" Image should be in the form of "WeaponName.png"; current value: Tombfinger.png
- "Tombfinger (Secondary)" Magazine must be a value above 0
- "Tombfinger (Secondary)" Missing reload time or reload time has to be above 0
- "Tunguska Cannon" AmmoPickup must be a value greater than or equal to 0
- "Tunguska Cannon" Image should be in the form of "WeaponName.png"; current value: DomeCharge.png
- "Tunguska Cannon" Missing InternalName
- "Tycho Seeker" AmmoPickup must be a value greater than or equal to 0
- "Tycho Seeker" Image should be in the form of "WeaponName.png"; current value: OrdnanceTychoSeeker.png
- "Tycho Seeker MK I" AmmoPickup must be a value greater than or equal to 0
- "Tycho Seeker MK I" Image should be in the form of "WeaponName.png"; current value: OrdnanceTychoSeeker.png
- "Tycho Seeker MK II" AmmoPickup must be a value greater than or equal to 0
- "Tycho Seeker MK II" Image should be in the form of "WeaponName.png"; current value: OrdnanceTychoSeeker.png
- "Tycho Seeker MK III" AmmoPickup must be a value greater than or equal to 0
- "Tycho Seeker MK III" Image should be in the form of "WeaponName.png"; current value: OrdnanceTychoSeeker.png
- "Unarmed" AmmoMax must be a value greater than or equal to 0
- "Unarmed" AmmoPickup must be a value greater than or equal to 0
- "Unarmed" Image should be in the form of "WeaponName.png"; current value: Blank.png
- "Unarmed" Missing InternalName
- "Unarmed" Magazine must be a value above 0
- "Unarmed" Missing reload time or reload time has to be above 0
- "Unarmed" Missing trigger type of weapon
- "Velocitus" AmmoPickup must be a value greater than or equal to 0
- "Velocitus (Atmosphere)" AmmoPickup must be a value greater than or equal to 0
- "Velocitus (Atmosphere)" Image should be in the form of "WeaponName.png"; current value: Velocitus.png
- "Verglas" AmmoPickup must be a value greater than or equal to 0
- "Verglas Prime" AmmoPickup must be a value greater than or equal to 0
- "Vermisplicer (Primary)" Image should be in the form of "WeaponName.png"; current value: Vermisplicer.png
- "Vermisplicer (Primary)" Magazine must be a value above 0
- "Vermisplicer (Primary)" Missing reload time or reload time has to be above 0
- "Vermisplicer (Secondary)" Image should be in the form of "WeaponName.png"; current value: Vermisplicer.png
- "Vermisplicer (Secondary)" Magazine must be a value above 0
- "Vermisplicer (Secondary)" Missing reload time or reload time has to be above 0
- "Vidar Apoc MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Apoc MK I" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Vidar Apoc MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Apoc MK II" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Vidar Apoc MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Apoc MK III" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Vidar Carcinnox MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Carcinnox MK I" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Vidar Carcinnox MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Carcinnox MK II" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Vidar Carcinnox MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Carcinnox MK III" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Vidar Cryophon MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Cryophon MK I" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Vidar Cryophon MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Cryophon MK II" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Vidar Cryophon MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Cryophon MK III" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Vidar Glazio MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Glazio MK I" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Vidar Glazio MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Glazio MK II" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Vidar Glazio MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Glazio MK III" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Vidar Laith MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Laith MK I" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Vidar Laith MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Laith MK II" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Vidar Laith MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Laith MK III" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Vidar Photor MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Photor MK I" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Vidar Photor MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Photor MK II" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Vidar Photor MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Photor MK III" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Vidar Pulsar MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Pulsar MK I" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Vidar Pulsar MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Pulsar MK II" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Vidar Pulsar MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Pulsar MK III" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Vidar Talyn MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Talyn MK I" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Vidar Talyn MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Talyn MK II" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Vidar Talyn MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Talyn MK III" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Vidar Vort MK I" AmmoPickup must be a value greater than or equal to 0
- "Vidar Vort MK I" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Vidar Vort MK II" AmmoPickup must be a value greater than or equal to 0
- "Vidar Vort MK II" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Vidar Vort MK III" AmmoPickup must be a value greater than or equal to 0
- "Vidar Vort MK III" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Vort MK I" AmmoPickup must be a value greater than or equal to 0
- "Vort MK I" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Vort MK II" AmmoPickup must be a value greater than or equal to 0
- "Vort MK II" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Vort MK III" AmmoPickup must be a value greater than or equal to 0
- "Vort MK III" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Vulcax" AmmoPickup must be a value greater than or equal to 0
- "Vulklok" AmmoPickup must be a value greater than or equal to 0
- "Xoris" Heavy attack must be greater than 0
- "Zetki Apoc MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Apoc MK I" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Zetki Apoc MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Apoc MK II" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Zetki Apoc MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Apoc MK III" Image should be in the form of "WeaponName.png"; current value: TurretApoc.png
- "Zetki Carcinnox MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Carcinnox MK I" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Zetki Carcinnox MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Carcinnox MK II" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Zetki Carcinnox MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Carcinnox MK III" Image should be in the form of "WeaponName.png"; current value: TurretCarcinnox.png
- "Zetki Cryophon MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Cryophon MK I" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Zetki Cryophon MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Cryophon MK II" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Zetki Cryophon MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Cryophon MK III" Image should be in the form of "WeaponName.png"; current value: TurretCryophon.png
- "Zetki Glazio MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Glazio MK I" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Zetki Glazio MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Glazio MK II" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Zetki Glazio MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Glazio MK III" Image should be in the form of "WeaponName.png"; current value: TurretGlazio.png
- "Zetki Laith MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Laith MK I" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Zetki Laith MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Laith MK II" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Zetki Laith MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Laith MK III" Image should be in the form of "WeaponName.png"; current value: TurretLaith.png
- "Zetki Photor MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Photor MK I" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Zetki Photor MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Photor MK II" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Zetki Photor MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Photor MK III" Image should be in the form of "WeaponName.png"; current value: TurretPhotor.png
- "Zetki Pulsar MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Pulsar MK I" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Zetki Pulsar MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Pulsar MK II" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Zetki Pulsar MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Pulsar MK III" Image should be in the form of "WeaponName.png"; current value: TurretPulsar.png
- "Zetki Talyn MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Talyn MK I" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Zetki Talyn MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Talyn MK II" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Zetki Talyn MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Talyn MK III" Image should be in the form of "WeaponName.png"; current value: TurretTalyn.png
- "Zetki Vort MK I" AmmoPickup must be a value greater than or equal to 0
- "Zetki Vort MK I" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Zetki Vort MK II" AmmoPickup must be a value greater than or equal to 0
- "Zetki Vort MK II" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
- "Zetki Vort MK III" AmmoPickup must be a value greater than or equal to 0
- "Zetki Vort MK III" Image should be in the form of "WeaponName.png"; current value: TurretVort.png
Weapon Data
- ↑ As of Hotfix 32.0.12 (2022-10-12), this may not be accurate (last checked 2022-11-01 and first noticed a weapon data schema change ~2 months ago). This key is absent on most weapons and if it is present, then equivalent data is under
UpgradeType
key like for Tatsu Prime (see script tag with id "__NEXT_DATA__" under HTML source on https://overframe.gg/build/new/5979/tatsu-prime/). Treat this information as speculation however.
--- WARFRAME weapon database to be used on the wiki.
--
-- @module weapons/data
-- @alias data
-- @attribution [[User:FINNER|FINNER]]
-- @attribution [[User:Cephalon Scientia|Cephalon Scientia]]
-- @attribution Everyone who contributes to adding new data or updating existing values in database
--- @require [[Module:LuaSerializer]]
-- @release stable
-- <nowiki>
-- TODO: Since horizontal partitions are accessed programmatically, this means
-- that this module can be tailored to serve specific user localizations.
-- All we need to do is to add a locale flag in here set to mw.getCurrentFrame():preprocess('{{int:Custom-lang}}'),
-- a separate translation table (likely JSON) for mapping canonical internal names to localized names,
-- and replace the Name key/Trigger key/index key with the localized counterpart.
-- In theory, any database access by requiring this module should contain the
-- proper localization based on user's interface language setting.
local data = {}
local MODULE_LOCALIZATION = mw.site.namespaces[828].name
local COOP_SLOTS = { 'primary', 'secondary', 'melee', 'archwing', 'companion', 'railjack', 'modular', 'misc' }
local SLOTS_MAP = {
primary = 'primary',
secondary = 'secondary',
melee = 'melee',
archwing = 'archwing',
['archgun'] = 'archwing',
['archmelee'] = 'archwing',
['archgun (atmosphere)'] = 'archwing',
companion = 'companion',
['robotic'] = 'companion',
['hound'] = 'companion',
railjack = 'railjack',
['railjack turret'] = 'railjack',
['railjack ordnance'] = 'railjack',
modular = 'modular',
['amp'] = 'modular',
['kitgun'] = 'modular',
['zaw'] = 'modular',
misc = 'misc',
['emplacement'] = 'misc',
['gear'] = 'misc',
['nech-melee'] = 'misc',
['unique'] = 'misc',
['vehicle'] = 'misc',
}
-- Defining default metatable values
local dbMetatable = {
-- Page title of database
_pageName = 'Weapons/data'
}
dbMetatable._pageTitle = MODULE_LOCALIZATION..':'..dbMetatable._pageName
--- Defining custom looping behavior with pairs() to iterate over multiple
-- partitions while acting as one database table.
-- @function data.__pairs
-- @param {table} self Table self-reference
-- @return {function} Iterator function
-- @return {table} Contains key-pair values of slot names to corresponding horizontal partition
dbMetatable.__pairs = function(self)
local temp = {}
local slots = COOP_SLOTS
for i, slot in ipairs(slots) do
temp[i] = mw.loadData(getmetatable(self)._pageTitle..'/'..slot)
end
function next(t, key)
return pairs(t)(t, key)
end
function __next(t, key)
if not key then
return next(t[1])
else
for i = 1, #t - 1 do
if t[i][key] then
if next(t[i], key) then
return next(t[i], key)
else
return next(t[i + 1])
end
end
end
return next(t[#t], key)
end
end
return __next, temp, nil
end
--- Supporting indexing by slot name (returns array of weapon entries) or weapon name
-- (returns a weapon entry).
-- @function data.__index
-- @param {table} self Table self-reference
-- @param {string} key Index key
-- @return {table}
dbMetatable.__index = function(self, key)
if (type(key) == 'number') then return nil end
-- Indexing by slot
if key and SLOTS_MAP[key:lower()] then
return mw.loadData(getmetatable(self)._pageTitle..'/'..SLOTS_MAP[key:lower()])
end
local slots = COOP_SLOTS
-- Indexing by weapon name
local weapon
for _, slot in ipairs(slots) do
weapon = mw.loadData(getmetatable(self)._pageTitle..'/'..slot)[key]
if weapon then
return weapon
end
end
return nil
end
--- For changing which type of database to pull data from.
-- If you want to switch to a different database in the same script, must require()
-- a new instance of M:Weapons/data.
-- @function __call
-- @usage require('Module:Weapons/data')(true)
-- @param {table} self Table self-reference
-- @param {table} args Argument table
-- @return {table} Database table
dbMetatable.__call = function(self, args)
-- Define logic for additional named arguments before the return statement
-- TODO: We can take advantage of calling a database table by adding additional arguments
-- for filtering out content.
return self
end
--- Serializes database tables into a single string with no functions and metatables.
-- @function __tostring
-- @param {table} self Table self-reference
-- @return {string} Serialized database
dbMetatable.__tostring = function(self)
return require('Module:LuaSerializer')._serialize(getmetatable(self)._pageName)
end
setmetatable(data, dbMetatable)
return data