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