To add on to that:
How an item display is made
<item_display_info>
ATTRIBUTES
display_type="str"
unique identifier
display_group="str"
display_infos of the same display_group can be compared to eachother
CHILDREN
<display_entry>
ATTRIBUTES
name="str"
Checked against EnumPassiveEffects.
If valid, automatically localized and gets value from item stats.
If if not, assigned as Custom display stat and needs extra tag in item or passive_effects to get value
method 1 <display_value name="dRecoil" value="0" />
method 2 ONLY IN trigger="onSelf{Primary|Secondary}ActionEnd" action="ModifyCVar"
name="str" will match against cvar="str
"
For blocks, the following names are handled automatically:
ExplosionResistance,FertileLevel,LightOpacity,Mass,MaxDamage,RequiredPower,StabilityGlue,StabilitySupport
[title_key=str]
localized label
[display_type=enum]
Can be Integer, Decimal, Bool, Percent. Default here is Integer.
Decimal is 2 decimal places.
[show_inverted=bool]
Works differently depending on display type:
Decimal:1-value, Percent:100%-value, Bool:??, Integer:?? Code is kind of messed up here.
[negative_preferred=bool]
Normally, higher is indicated better. If this is set to false, lower is indicated better.
[tags=str,str..]
Relates to name(stats) that apply differently in different situations e.g.
movement speed in different stances,
damage resistance against different types
primary or secondary damage.
Defaults to "primary"
I am also writing a python util to append and sync localization.txt with those found in mods.