[Tool] Rainbow Filter (Item Highlighting)

hmm looks like a name for an epic got into the wrong array :smiley:

similar thing as with the common item from before, the tag is also used for an item that (I believe) cannot drop.

thanks for the screenshot, makes things easier.

I used this for a while and I liked it quite a bit, so I wrote an article about this MOD on our wiki. :smiley:

Hello WareBare,

Thanks for this good Idea! Love it! :slight_smile:

Found another one http://www.grimtools.com/db/items/8806

Currently working on the UI of the tool and usage without the extracted game files, so it wouldn’t require any modding knowledge.
The goal is to

  • get the tool and start it
  • enter the path of the installation folder
  • set up colors
  • press a button
  • start the game and enjoy your custom colors

this could also work for translations, but going to need some testing if it’s working properly.

The next version is fully done with the tool’s UI functionality as a last test before it’s being released. It’s easier this way to figure out where the issue is, because I know my colors and some of them are purely for debugging… . :smiley:

Nice to see it also going over to other languages this soon :slight_smile: and I had no idea it also works for mastery skill tooltips, nice bonus I guess.

well, looks like I have to grab these style tags after all. Though they’ll have a different color than the base item, unless they are only used for the same rarity, because there would be no way of telling what the base item’s rarity is during runtime.

I don’t know if this is possible or not, but would it be possible to add support for affixes on epic and legendary items for the mods that allow such? Also support for additional affixes in mods? Thanks for you work, great idea.

yeah it’s Possible, I already have the tags saved, just didn’t add a color to them.

Also support for additional affixes in mods?

I don’t plan on adding support for custom items/affixes any time soon, later I’ll make the gathering buttons available and with that it may have the support for custom items/affixes (if the mod source is available).
For the time being you’d have to add the colors to custom items/affixes per hand.

This is only the very first draft of the tool, but also a good first test to see if this is confusing or everybody interested in it knows right away what to do and how it works.

Yes those are the available colors, there are a couple more letters I’m going to test, but these are the ones that are working.
COLOR_TABLE source screenshot from an older Zantai post


Change Log

  • MI and base items of the same rarity have a different color (this also applies to Epic MI and Legendary MI)
    [li]Style Tags are also a different color depending on the rarity[/li][LIST]
  • Empowered is a different blue than epics
  • Mythical is using a different purple than legendaries - this also includes mythical epic items, because they are using the same tag

[li]exposing more stats for tooltip colors[/li][ul]
[li]Offensive/Defensive Ability[/li]
[li]Attributes, Health and Energy[/li]
[li]Movement Speed, Attack Speed, Casting Speed[/li]
[li]All Damage, + Skills and All Retaliation Damage[/li]
[li]Various bug fixes[/li]
[li]Set items with a specified color have an (S) infront of their name, due the set tracking color changing (the screenshot probably shows it better)[/li][/LIST]

Tool Progress and rough ETA

  • additional colors than the ones seen in Preview #01
  • Categories are collapsed and can be expanded to open the color palette
  • The tool can save different color setups (as a result I’m uploading two different filters)
    [li]only some minor things to take care of and letting v0.3 of the releases go through a few days of testing to find the last bugs to squash and I’m updating WanezToolsGD for filter functionalities[/li][LIST]
  • ETA: Friday to 70%


Full Rainbow (ItemColorCoding_v0.3-fullRainbow.zip)

  • [li]Item Names[/li][LIST]
  • MI have a different color than items of the same rarity

[li]Each Damage Type has its own color[/li]
[li]Attributes and other Special stats have their own separate color[/li]

Basic Highlighting (ItemColorCoding_v0.3-basicHighlighting.zip)

  • [li]Item Names[/li][LIST]
  • MI have the same color as items of the same rarity
  • Style Tags for Common, Magical and Rare items have a different color (Empowered and Mythical is the vanilla color)
  • Epics and Legendaries are not using a specified color (therefore the (S) won’t be there for Set items)

[li]Damage Type Colors are in three groups (Elemental, Physical/Pierce, Other)[/li]
[li]Damage over Time has a different color than the Direct Damage Types (but using the same grouping, with bleeding into the Physical/Pierce group)[/li]


^^ Thanks.

  1. A recent update of game added tagDotVitality = Vitality Decay to tags_ui.txt.

(line 1729) tagDotAether=Aether
(line 1730) tagDotVitality=Vitality Decay
(line 1731) tagDotLifeLeech=Life Leech

  1. These items have not been changed color in tags_ui.txt, is that okay?

DamageDurationElemental= {^E}Elemental Blaze
>> O ?
RetaliationModifierPierceRatio={%+.0f0}% {^E}Pierce Retaliation
>> Y ?
DefenseFireModifier={^E}Increases Current Fire Resistance by {^H}{%.0f0}%
>> O ?

Edit: Why is not coloring this item?


  1. Becoming v0.3, the quality indication of some equipment seems to be influenced by the prefix (screenshot below).
    I think that it is good to add {^S} before the item name of tagQuality of tags_items.txt.

For example:



That’s what I get for being lazy and not extracting the game files… :rolleyes:

  1. These items have not been changed color in tags_ui.txt, is that okay?

DefenseFireModifier was DefenseColdModifier in the array for Fire tags, so DefenseColdModifier has two color codes in there :smiley:
and just missed the other ones, it’s possible there are a couple more that were fine before and not changing now, before I just replaced {^E}Cold with {^?}Cold (can’t remember which color it was), but since I’m making it work for translation files I can’t look for {^E}Cold to replace it with something else.

Also tried the tool with a japanese translation to see if it works and it does. As far as I can tell anyways.

Edit: Why is not coloring this item?

There is no DBR with that tag, checked each of them per hand just now, I guess it’s an old tag that is not used anymore. Also going through grimtools.com I can’t find a common item named “Cowl”.

  1. Becoming v0.3, the quality indication of some equipment seems to be influenced by the prefix (screenshot below).
    I think that it is good to add {^S} before the item name of tagQuality of tags_items.txt.

yep, forgot to loop through quality tags

"Quality": {
	"tagQualityWeaponMetal01": {},
	"tagQualityWeaponMetal02": {},
	"tagQualityWeaponMetal03": {},
	"tagQualityWeaponMetal04": {},
	"tagQualityWeaponMetal06": {},
	"tagQualityWeaponMetal07": {},
	"tagQualityWeaponMetal09": {},
	"tagGDX1WeaponQuality001": {},
	"tagGDX1WeaponQuality002": {},
	"tagQualityWeaponWood01": {},
	"tagQualityWeaponWood02": {},
	"tagQualityWeaponWood03": {},
	"tagQualityWeaponWood04": {},
	"tagQualityWeaponWood05": {},
	"tagQualityWeaponMetal08": {},
	"tagQualityShieldA01": {},
	"tagQualityShieldA04": {},
	"tagQualityShieldA03": {},
	"tagQualityShieldA07": {},
	"tagQualityShieldA08": {},
	"tagQualityShieldA06": {},
	"tagQualityShieldA05": {},
	"tagQualityShieldA09": {},
	"tagQualityShieldA10": {}

I hope the ones missing are not being used…

Can it be used for translated text? If so, it would be wonderful if it was completed. :smiley: I took half a day to apply the v0.3 to Japanese text.

By the way, there are also two lines of item quality in tagsgdx.text, are they {^S} unnecessary?


yep, you will be able to use it for translated texts.

took a bit of time to change it from:

        '{^E}Cold': `{^C}Cold`,
        '{^E}Frostburn': `{^C}Frostburn`,
        '{^E}Fire': `{^R}Fire`,
        '{^E}Burn': `{^R}Burn`,
        '{^E}Lightning': `{^B}Lightning`,
        '{^E}Electrocute': `{^B}Electrocute`,
        '{^E}Aether': `{^A}Aether`,
        '{^E}Chaos': `{^P}Chaos`,
        '{^E}Poison': `{^L}Poison`,
        '{^E}Acid': `{^L}Acid`,
        '{^E}Vitality': `{^M}Vitality`,
        '{^E}Elemental': `{^C}Eleme{^B}ntal{^R}`,
        '{^E}Physical': `{^P}Physical`,
        '{^E}Internal Trauma': `{^P}Internal Trauma`,
        '{^E}Piercing': `{^I}Piercing`,
        '{^E}Pierce': `{^I}Pierce`,
        '{^E}Bleeding': `{^I}Bleeding`


        // Direct Damage
        'Cold': [`DamageCold`, `DamageModifierCold`, `DamageModifierColdR`, `RetaliationCold`, `RetaliationModifierCold`, `DefenseCold`, `DefenseColdR`, `DefenseColdModifier`, `DefenseColdMaxResist`, `DefenseColdMaxResistR`, `tagConversionCold`],
        'Fire': [`DamageFire`, `DamageModifierFire`, `DamageModifierFireR`, `RetaliationFire`, `RetaliationModifierFire`, `DefenseFire`, `DefenseFireR`, `DefenseFireModifier`, `DefenseFireMaxResist`, `DefenseFireMaxResistR`, `tagConversionFire`],
        'Lightning': [`DamageLightning`, `DamageModifierLightning`, `DamageModifierLightningR`, `RetaliationLightning`, `RetaliationModifierLightning`, `DefenseLightning`, `DefenseLightningR`, `DefenseLightningModifier`, `DefenseLightningMaxResist`, `DefenseLightningMaxResistR`, `tagConversionLightning`],
        'Aether': [`DamageAether`, `DamageModifierAether`, `DamageModifierAetherR`, `RetaliationAether`, `RetaliationModifierAether`, `DefenseAether`, `DefenseAetherR`, `DefenseAetherModifier`, `DefenseAetherMaxResist`, `DefenseAetherMaxResistR`, `tagConversionAether`],
        'Chaos': [`DamageChaos`, `DamageModifierChaos`, `DamageModifierChaosR`, `RetaliationChaos`, `RetaliationModifierChaos`, `DefenseChaos`, `DefenseChaosR`, `DefenseChaosModifier`, `DefenseChaosMaxResist`, `DefenseChaosMaxResistR`, `tagConversionChaos`],
        'Vitality': [`DamageLife`, `DamageModifierLife`, `DamageModifierLifeR`, `RetaliationLife`, `RetaliationModifierLife`, `DefenseLife`, `DefenseLifeR`, `DefenseLifeModifier`, `DefenseLifeMaxResist`, `DefenseLifeMaxResistR`, `tagConversionLife`],
        'Acid': [`DamagePoison`, `DamageModifierPoison`, `DamageModifierPoisonR`, `RetaliationPoison`, `RetaliationModifierPoison`, `DefensePoison`, `DefensePoisonR`, `DefensePoisonModifier`, `DefensePoisonMaxResist`, `DefensePoisonMaxResistR`, `tagConversionPoison`],
        'Physical': [`DamagePhysical`, `DamageModifierPhysical`, `DamageModifierPhysicalR`, `RetaliationPhysical`, `RetaliationModifierPhysical`, `DefensePhysical`, `DefensePhysicalR`, `DefensePhysicalModifier`, `DefensePhysicalMaxResist`, `DefensePhysicalMaxResistR`, `DamagePhysicalChance`, `DamageBonusPhysical`, `tagConversionPhysical`],
        'Pierce': [`DamagePierce`, `DamageModifierPierce`, `DamageModifierPierceR`, `RetaliationPierce`, `RetaliationModifierPierce`, `RetaliationModifierPierceRatio`, `DefensePierce`, `DefensePierceR`, `DefensePierceModifier`, `DefensePierceMaxResist`, `DefensePierceMaxResistR`, `tagConversionPierce`],
        'Elemental': [`DamageElemental`, `DamageModifierElemental`, `DamageModifierElementalR`, `RetaliationElemental`, `RetaliationModifierElemental`, `DefenseElementalResistance`, `DefenseElementalResistanceR`, `DefenseElementalModifier`, `DefenseElementalMaxResist`, `DefenseElementalMaxResistR`, `tagConversionElemental`, `DamageDurationElemental`],
        // DoT
        'Frostburn': [`DamageDurationCold`, `DamageDurationModifierCold`, `RetaliationDurationCold`, `RetaliationDurationModifierCold`, `DefenseColdDurationModifier`],
        'Burn': [`DamageDurationFire`, `DamageDurationModifierFire`, `RetaliationDurationFire`, `RetaliationDurationModifierFire`, `DefenseFireDurationModifier`],
        'Electrocute': [`DamageDurationLightning`, `DamageDurationModifierLightning`, `RetaliationDurationLightning`, `RetaliationDurationModifierLightning`, `DefenseLightningDurationModifier`],
        'Poison': [`DamageDurationPoison`, `DamageDurationModifierPoison`, `RetaliationDurationPoison`, `RetaliationDurationModifierPoison`, `DefensePoisonDurationModifier`],
        'Decay': [`DamageDurationLife`, `DamageDurationModifierLife`, `RetaliationDurationLife`, `RetaliationDurationModifierLife`, `DefenseLifeDurationModifier`],
        'Trauma': [`DamageDurationPhysical`, `DamageDurationModifierPhysical`, `RetaliationDurationPhysical`, `RetaliationDurationModifierPhysical`, `DefensePhysicalDurationModifier`],
        'Bleeding': [`DamageDurationBleeding`, `DamageDurationModifierBleeding`, `RetaliationDurationBleeding`, `RetaliationDurationModifierBleeding`, `DefenseBleeding`, `DefenseBleedingR`, `DefenseBleedingModifier`, `DefenseBleedingMaxResist`, `DefenseBleedingMaxResistR`],
        'Attributes': [`tagCharAttribute01R`, `tagCharAttribute02R`, `tagCharAttribute03R`, `tagCharAttribute04R`, `tagCharAttribute05R`, `tagCharAttribute01ModifierR`, `tagCharAttribute02ModifierR`, `tagCharAttribute03ModifierR`, `tagCharAttribute04ModifierR`, `tagCharAttribute05ModifierR`, `tagCharAttribute01`, `tagCharAttribute02`, `tagCharAttribute03`, `tagCharAttribute04`, `tagCharAttribute05`, `tagCharAttribute01Modifier`, `tagCharAttribute02Modifier`, `tagCharAttribute03Modifier`, `tagCharAttribute04Modifier`, `tagCharAttribute05Modifier`],
        'Special': [`tagDamageModifierTotalDamage`, `tagDamageModifierCritDamage`, `tagDamageModifierCritDamageR`, `tagCharOffensiveAbilityR`, `tagCharDefensiveAbilityR`, `tagCharOffensiveAbilityModifierR`, `tagCharDefensiveAbilityModifierR`, `tagCharIncreasedExperienceR`, `tagCharRunSpeedR`, `tagCharSpellCastSpeedR`, `tagCharAttackSpeedR`, `tagCharTotalSpeedModifierR`, `tagCharRunSpeedModifierR`, `tagCharSpellCastSpeedModifierR`, `tagCharAttackSpeedModifierR`, `tagCharOffensiveAbility`, `tagCharDefensiveAbility`, `tagCharOffensiveAbilityModifier`, `tagCharDefensiveAbilityModifier`, `tagCharIncreasedExperience`, `tagCharRunSpeed`, `tagCharSpellCastSpeed`, `tagCharAttackSpeed`, `tagCharTotalSpeedModifier`, `tagCharRunSpeedModifier`, `tagCharSpellCastSpeedModifier`, `tagCharAttackSpeedModifier`, `ItemMasteryIncrement`, `ItemAllSkillIncrement`, `tagRetaliationModifierTotalDamage`]

and I’m hoping I got all of them now.

To use it on translated files, it just needs the *.txt files to be placed in a specific folder.
and this is the result, I don’t understand a word of that, but looks fine when I compared it to the original.


DamagePierce={%t0} {^R}刺突ダメージ
DamagePoison={%t0} {^L}酸ダメージ

I’ll probably post the v0.4 in a few hours alongside the tool update, so you won’t have to update it per hand again, but the fact you did this manually helped fix issues.

I’m gonna write a wiki page on GitHub for the short tutorial on how to set it up and use it.

By the way, there are also two lines of item quality in tagsgdx.text, are they {^S} unnecessary?

no they are being used, so they need the color code or you’ll have the same issue as with the screenshots you posted.

Awesome, it looks perfect! :smiley:
I made a Japanese file with this MOD, and it’s very hot topic now.

Thanks for the answer, I understood.:slight_smile:

With the workload I currently have and the fact I did bits and pieces here and there it wouldn’t surprise me if something went horribly wrong :smiley:
I’ll find out soon enough I guess.


  • added Quality tags
  • updated files to Grim Dawn

Filter downloads are in the OP and:
Basic Highlighting
Full Rainbow


This may have been said previously in this thread (although search didn’t bring it up), but imo this is more of a tool/utility than a mod as it does not affect normal gameplay…

… And also a great bonus utility :slight_smile:


tagShieldD005={^I}[ms]оплот обрушителя неба
tagShieldD007={^I}[fs]месть Золхана
tagShieldD008=(S) {^I}[ms]долг разгоняющего тьму
tagShieldD009=(S) {^I}[ms]оплот Марковиана

localization: https://drive.google.com/open?id=1P1rqIU3We89uZVXD4v3KhH5rH8BYwMVL

fixed it with v0.5.1

tool has an auto-updater

Thank you for the great tool! The work that needed half a day ended in an instant. :smiley:

In the past manual work, I made a lot of hardships such as erasing the next character by mistake, repeating the same code.