Items - GnawingPrinter/W40k_IM_config_files GitHub Wiki
Items exist with different rarities, in order: common, uncommon, rare1, rare2 (=artificer), godlike (=Relic), ancient (=Ancient Relic), biggodlike (=Archeotech), morality. The terms in parentheses are the names as displayed in the english version of the game, but i'll be using the names from the game files.
Items have fixed stats and somewhat random enchants.
Stats are the fixed stats(!) attached to the item type, like psyker armors having allres and dmg reduction or signums having +dmg or neural implants having supression resistance. This stats amounts are somewhat random but increase with item level.
Enchants are the random things rolled on top of that, and items rarer than godlike have a main enchantment, displayed with an orange text ingame. An at least godlike item has 1 main enchant, and 2 to 4 random other enchants, with their stats increasing by level. Different item rarities behave differently:
rarity | item | reroallability | main enchant pool |
---|---|---|---|
Godlike | random item | fully modifyable | common pool |
ancient | completly pre build item with predefined main and secondary enchants. | unmodifyable | ancient pool |
biggodlike | hand crafted item, enchants are either (partly) set or random | except main enchant | biggodlike pool |
morality | somewhat random item, sometimes with a shrinked enchant pool | ? | morality pool |
Game files regarding all of this:
enchants.cfg starts with some item group definitions, then lists all possible enchants in this form:
Enchantment
{
Name=
ArtifactTypes=1 of {all_items, [list of item types/item groups]}
EnchantQuality=1 of{secondary,primary,godlike,morality}
[other props...]
}
Sometimes the "ArtifactTypes" field is set to an actuall set of items or item groups, sometimes it is set to "all_item". In the first case i gues its safe to assume, that the specified items can get that enchant, in the second case i guess there is some other mechanic to determin which item can get that enchant. The EnchantQuality indicates if the enchant is a main enchant ("godlike" or "morality") or not ("primary" or "secondary"). Main enchants from ancients and biggodlike items seem to have the "godlike" type. I dont know what the two not main implant specifiers actually mean, they seem to indicate some sort of "slot" mechanic for items, tho.
Inventoryitems.cfg lists all posible items including tarot cards, consumables and so on, and the actual items. For each item there exist different entries, one generic one for godlike items, and a lot of specific, handcrafted, ones for the ancient,biggodlike and morality items. If the lists for godlike enchantments (main enchants) are final i dont know jet! To demonstrate this here some examples from the aetherwalker armor:
Godlike:
aetherwalker_armour
{
Type=psyker_armor
Icon=Aetherwalker_Armour
Rarity=common,uncommon,rare1,rare2,godlike
Value=300
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
GodlikeEnchants=Bonus_Movement_speed_based_on_suppression,Cast_rosarius_force_field_when_stun_or_knockdown_suffered,Chance_to_cast_Fabricator_scatter_field_on_struck,Hp_regen_from_missing_hp,Movement_bonus_if_no_damage_received,Reflect_damage_based_on_missing_hp,Skill1_cost_reduction,Zeal_per_kill,Chance_to_reduce_warp_heat_cost,Damage_buff_to_next_spell,Movement_speed_after_spell_cast,Reflect_damage_based_on_warp_heat,Warp_heat_per_sec,Cooldown_reduction_after_teleport
}
Ancient:
aetherwalker_armour_a_Slow_Shock_armour
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=ancient
Value=300
AncientName=Slow_Shock_armour
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
FixEnchants=Godlike_Slow_Shock_duration;deal_dmg;100000,Crit_chance_and_strenght_on_slow_group_major;finish_mission_hard;5,Slow_on_Hit;critical_hit;500,increased_damage_against_slow_group_enemies_major;kill_villain;5
}
aetherwalker_armour_a_Vulnerability_armour
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=ancient
Value=300
AncientName=Vulnerability_armour
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
FixEnchants=Chance_to_give_vulnerability_on_hit;kill_critical_hit;200,Vulnerability_efficiency_bonust_major;kill_critical_hit;300,vulnerability_duration_major;kill_critical_hit;400,Critical_damage_bonus;kill_critical_hit;500
}
Biggodlike:
aetherwalker_armour_b_Big_armours_psyker_Reverse_damage_based_on_warp_heat
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=biggodlike
Value=300
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
MainEnchant=Reverse_damage_based_on_warp_heat
}
aetherwalker_armour_b_Big_armours_psyker_Zeal_on_Crit
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=biggodlike
Value=300
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
MainEnchant=Zeal_on_Crit
PrimaryEnchants1=Crit_chance_and_strenght_on_slow_group_major,Critical_damage_bonus,critical_hit_chance_major,critical_hit_strength_major,Fear_on_Crit,HP_on_Crit,Knockback_on_Crit,Knockdown_on_Crit,Shock_on_Crit_normal,Slow_on_Crit_normal,Stun_on_Crit
}
Morality:
aetherwalker_armour_b_Blessed_Armour_BlindTank_Blessed_Armour_Blind_Plus_Dodge_on_Struck
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=morality
Value=300
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
MainEnchant=Blessed_Armour_Blind_Plus_Dodge_on_Struck
PrimaryEnchants1=All_resist_in_threat,Damage_reduce_in_threat,damage_reduce_major,deflect_major,dodge_against_melee_major,dodge_against_ranged_major,Hp_fix_major,hp_per_hit,hp_per_hit_melee_major,hp_per_hit_ranged_and_accessory_major,melee_damage_reduce_major,ranged_damage_reduce_major,resist_all_major,supression_resistance_max_major
SecondaryEnchants1=All_resist_in_Exposed,All_resist_in_green,All_resist_in_threat,Damage_reduce_in_Exposed,Damage_reduce_in_green,Damage_reduce_in_threat,damage_reduce_major,deflect_major,dodge_against_melee_major,dodge_against_ranged_major,Hp_fix_major,HP_on_Crit,hp_per_hit,hp_per_hit_melee_major,hp_per_hit_ranged_and_accessory_major,hp_per_kill_major,melee_damage_reduce_major,ranged_damage_reduce_major,resist_all_major,resistance_heat_major,resistance_physical_major,resistance_warp_major,Suppression_per_deflect_major,supression_resistance_max_major
}
aetherwalker_armour_b_Blessed_Armour_HPTank_Blessed_Armour_HP_on_Kill_specific
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=morality
Value=300
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
MainEnchant=Blessed_Armour_HP_on_Kill_specific
PrimaryEnchants1=Hp_fix_major,hp_per_hit,hp_per_hit_melee_major,hp_per_hit_ranged_and_accessory_major,hp_per_kill_major,hp_regen_in_cover_major,hp_regeneration_major,Max_hp_from_survival
PrimaryEnchants2=Allskill_cooldown_percent,hp_per_kill_major,skill1_cooldown_percent_major
ForcedSlots=primary2
}
aetherwalker_armour_b_Blessed_Armour_HPregen_Duel_Blessed_Armour_HP_regen_Cheat
{
Type=psyker_armor
NameID=aetherwalker_armour
Icon=Aetherwalker_Armour
Rarity=morality
Value=300
Damage_reduce=low
All_resist=high
Skills=Psyker_armor_teleport
Models
{
armor=psyker_armour_2
}
MainEnchant=Blessed_Armour_HP_regen_Cheat
PrimaryEnchants1=Hp_fix_major,hp_per_hit,hp_per_hit_melee_major,hp_per_hit_ranged_and_accessory_major,hp_per_kill_major,hp_regen_in_cover_major,hp_regeneration_major,Max_hp_from_survival
PrimaryEnchants2=hp_regen_in_cover_major,hp_regeneration_major
ForcedSlots=primary1,primary2
}
Parsing those files and analyzing them ive found out:
Enchants:
Enchants have 2 fields linking them to other concept im interessted in:
- Artifact_Types: This field is either empty, exactly "all_item" or contains a list of items/item groups. In case it lists specific items i assume it can occure on that item.
- EnchantQuality: This field is allways set and can be one of: primary, secondary, godlike, morality, gem. It indicates which kind of enchant it is, with godlike and morality beeing main enchants, primar and secondary beeing "normal" enchants and gem beeing the effects of shards and psalms/psalmcodes
ArtifactTypes :
- empty:
There are enchantments with empty ArtifactTypes but then they are exactly one of those:
- Gem enchants (with exception: Runeword_5_4
- godlike enchants for the tech adept (possibly buged)
- morality enchants
- all_item:
- There is no enchant with ArtifactTypes containing all_item and something else
- All enchants with ArtifactTypes = all_item also have ArtifactType = godlike (except for Runeword_5_4 - which could be a bug)
EnchantQuality:
- primary/secondary: all enchants with this types have their ArtifactTypes set to something else than empty or all_item, thus to actuall items/item groups
- godlike:
all enchants with this quallity have exactly the following ArtifactTypes:
- empty: then they are enchants for the tech adept (possibly buged)
- item_all: then they are normal main enchants
- morality: all enchants with this type have another field MoralityRequirement beeing either "300" or "-300", and their ArtifactTypes set to empty.
- gem: all gems except Runeword_5_4 have an empty ArtifactTypes
With this we know:
- An enchant with ArtifactTypes set to something else than empty and all_item (a real item/item group) is allways a primary or secondary enchant.
- Main enchants are of quality godlike or morality and usually have their ArtifactTypes set to all_item in the godlike case, and empty in the morality case.
Items:
Primary and Secondary enchants for a given item can be found by searching through all enchants (in the enchantments.cfg file) with those types having either the item or a group the item belongs to (thats not "all_item") in its ArtifactTypes list.
All main enchants of a given relic item can be found by searching for its entry in inventoryitems.cfg (regex: ^itemName$) and looking at the godlikeenchantments list. I am confident in saying: this are exactly all the godlike enchants this item type can roll!
For Ancient/Archaotech/Morality items the process is a bit more difficult: Ancient/Archaotech/Morality items are "hand crafted" in the sense, that there is an actuall item with a name in the config file, with some of the stats for that item.
-
Ancient items:
- Rarity=ancient
- FixedEnchants lists the enchants and their mini objectives to use them, the first entry in that list is usually the main enchant.
-
Archaotech items:
- Rarity=biggodlike
- MainEnchant: lists the main enchant and is present on all Archaotech items
- PrimaryEnchants1/PrimaryEnchants2/SecondaryEnchants1/SecondaryEnchants2: list different primary/secondary enchants, i dont jet know how exactly this works
-
Morality items:
- Rarity=morality
- MainEnchant: lists the main enchant and is not present on all Morality items
- PrimaryEnchants1/PrimaryEnchants2/SecondaryEnchants1/SecondaryEnchants2: list different primary/secondary enchants, i dont jet know how exactly this works
- ForcedSlots: something about forcing slots on items i gues? Dont know jet... Distinct values in the file:
- primary1
- primary2
- primary1,primary2
- secondary1
- secondary1,secondary2
For an overview of all posible enchants, and links to more detailt lists see: this