Gaming Item Filter Creation!

Parker Williamson
5 min readApr 6, 2021

This week was a lot of fun for me. I got to learn a “language” that is specific to an item filter in a game I play called Project Diablo. I have a friend who is very good at writing filters for these games, and created a full filter himself for multiples and let me use his to learn and reproduce for my own learning. This was mainly to see my ability to read and pick up the logic of a foreign language for coding a file to limit or change what I see in the game.

First, the filter was created to limit different amounts of gold in the game.

//╔══════╗
//║ GOLD ║
//╚══════╝
ItemDisplay[CLVL>79 GOLD<5000]:
ItemDisplay[CLVL>59 GOLD<2500]:
ItemDisplay[CLVL>44 GOLD<750]:
ItemDisplay[CLVL>24 GOLD<250]:
ItemDisplay[CLVL<25 GOLD<100]:

On the website they have item codes for every item, in this case it is currency, with the code of GOLD. I filtered it by level (being CLVL) for different amounts, because at level 80, 100 gold is not much and not worth the time to individually pick it up. It is mostly a time saver, and also helps limit the amount of clutter on your screen.

Next, was the quest item filter. Completing quests in this game, or progressing through them will sometimes drop an item in a stack of otherwise useless things, so in this brick of code, the name was changed to tan to make sure it stands out as an important item.

//╔═════════════╗
//║ QUEST ITEMS ║
//╚═════════════╝
ItemDisplay[bbb]: %TAN%%NAME%
ItemDisplay[ass]: %TAN%%NAME%
ItemDisplay[bkd]: %TAN%%NAME%
ItemDisplay[bks]: %TAN%%NAME%
ItemDisplay[g34]: %TAN%%NAME%
ItemDisplay[j34]: %TAN%%NAME%%MAP%
ItemDisplay[mss]: %TAN%%NAME%
ItemDisplay[qbr]: %TAN%%NAME%
ItemDisplay[qey]: %TAN%%NAME%
ItemDisplay[qhr]: %TAN%%NAME%
ItemDisplay[tr1]: %TAN%%NAME%
ItemDisplay[tr2]: %TAN%%NAME%
ItemDisplay[xyz]: %TAN%%NAME%
ItemDisplay[ice]: %TAN%%NAME%
ItemDisplay[leg]: %TAN%%NAME%

There are different item IDs here, such as [leg], [ice], and [xyz]. To create this, you need to find a list of all quest items, and copy paste it down the line to make sure all important quest items are displayed, and then have the name listed as tan.

The next were items that are specifically created for this mod and no other, so they deserve their own area in this filter to help compatibility throughout mods, to see what to remove or add back.

//╔═══════════╗
//║ PD2 ITEMS ║
//╚═══════════╝
ItemDisplay[imma]: %YELLOW%* %NAME% %YELLOW%*%MAP% {%WHITE%+ %BLUE%Jewel %NL%%WHITE% Imbue White to %BLUE%Magic Map}
ItemDisplay[imra]: %RED%* %NAME% %RED%*%MAP% {%WHITE%+ %BLUE%Jewel %WHITE%+ %TAN%Thul>%NL%%WHITE%White to %YELLOW%Rare Map}
ItemDisplay[rera]: %ORANGE%* %NAME% %ORANGE%*%MAP% {%WHITE%+ PGem + %TAN%Thul>%NL%%WHITE%Reroll %YELLOW%Rare Map}
ItemDisplay[scou]: %GREEN%* %NAME% %GREEN%*%MAP% {%WHITE%+ %ORANGE%Hel%NL%%WHITE%Return to White Map}
ItemDisplay[upma]: %BLUE%* %NAME% %BLUE%*%MAP% {%WHITE%+ PSkull + %TAN%Thul>%NL%%WHITE%Upg %BLUE%Magic %WHITE%to %YELLOW%Rare Map}
ItemDisplay[upmp]: %PURPLE%* %NAME% %PURPLE%*%MAP% {%WHITE%+ Three %WHITE%M%BLUE%A%YELLOW%P%WHITE%s of Same Tier %NL%%WHITE%Upg Maps to Next Tier}
ItemDisplay[scrb]: %PURPLE%* %NAME% %PURPLE%*%MAP% {%WHITE%+ Tier 3 %RED%Map %NL%%WHITE%Turns %RED%Map%WHITE% into %PURPLE%Dungeon%PURPLE%}
ItemDisplay[lbox]: %PURPLE%***+++OOO %GREEN%%NAME% %PURPLE%OOO+++***%MAP% {%WHITE%Two-Handed Weapon = 4 max%NL%One-Handed Weapon = 2 max%NL%Helmet, Chest, Shield = 2 max%NL%%WHITE%Use it to %TAN%Socket %WHITE%an Item}
ItemDisplay[wss]: %GREEN%*+O %PURPLE%WORLDDDSTARRR %GREEN%O+*%MAP% {%WHITE%Use it to %RED%Corrupt %WHITE%Items/Maps}
ItemDisplay[dcma]: %PURPLE%**++OO %RED%%NAME% %PURPLE%OO++**%MAP% {%RED%Diablo %WHITE%walks the earth...}
ItemDisplay[dcbl]: %RED%*+O %GOLD%%NAME% %RED%O+*%MAP% {%WHITE%Diablo Clone Ingredient}
ItemDisplay[dcho]: %RED%*+O %GOLD%%NAME% %RED%O+*%MAP% {%WHITE%Diablo Clone Ingredient}
ItemDisplay[dcso]: %RED%*+O %GOLD%%NAME% %RED%O+*%MAP% {%WHITE%Diablo Clone Ingredient}

These were a little bit longer, and add a few different symbols to make the name longer to stress importance. It was also fun to play with multiple color code options. For example, [wss] is a Worldstone Shard, and it was listed to have a +0 in green, the name in purple, and a change back to green for the O+ at the end. There is also a description explaining how to use the item.

Last, the maps were added.

//╔══════════╗
//║ PD2 Maps ║
//╚══════════╝
ItemDisplay[(t11 OR t12 OR t13 OR t14 OR t15 OR t16 OR t17 OR t18 OR t19) NMAG]: %GREEN%*+O %WHITE%%NAME% %GREEN%O+*%MAP%
ItemDisplay[(t11 OR t12 OR t13 OR t14 OR t15 OR t16 OR t17 OR t18 OR t19) MAG !ID]: %GREEN%*+O %BLUE%%NAME% %GREEN%O+*%MAP%
ItemDisplay[(t11 OR t12 OR t13 OR t14 OR t15 OR t16 OR t17 OR t18 OR t19) RARE !ID]: %GREEN%*+O %YELLOW%%NAME% %GREEN%O+*%MAP%
ItemDisplay[(t11 OR t12 OR t13 OR t14 OR t15 OR t16 OR t17 OR t18 OR t19) MAG ID]: %GREEN%*+O %BLUE%%NAME% %GREEN%O+*%MAP%
ItemDisplay[(t11 OR t12 OR t13 OR t14 OR t15 OR t16 OR t17 OR t18 OR t19) RARE ID]: %YELLOW%%NAME%%MAP%
ItemDisplay[(t21 OR t22 OR t23 OR t24 OR t25 OR t26 OR t27 OR t28 OR t29) NMAG]: %ORANGE%*+O %WHITE%%NAME% %ORANGE%O+*%MAP%
ItemDisplay[(t21 OR t22 OR t23 OR t24 OR t25 OR t26 OR t27 OR t28 OR t29) MAG !ID]: %ORANGE%*+O %BLUE%%NAME% %ORANGE%O+*%MAP%
ItemDisplay[(t21 OR t22 OR t23 OR t24 OR t25 OR t26 OR t27 OR t28 OR t29) RARE !ID]: %ORANGE%*+O %YELLOW%%NAME% %ORANGE%O+*%MAP%
ItemDisplay[(t21 OR t22 OR t23 OR t24 OR t25 OR t26 OR t27 OR t28 OR t29) MAG ID]: %ORANGE%*+O %BLUE%%NAME% %ORANGE%O+*%MAP%
ItemDisplay[(t21 OR t22 OR t23 OR t24 OR t25 OR t26 OR t27 OR t28 OR t29) RARE ID]: %YELLOW%%NAME%%MAP%
ItemDisplay[(t31 OR t32 OR t33 OR t34 OR t35 OR t36 OR t37 OR t38 OR t39) NMAG]: %RED%*+O %WHITE%%NAME% %RED%O+*%MAP%
ItemDisplay[(t31 OR t32 OR t33 OR t34 OR t35 OR t36 OR t37 OR t38 OR t39) MAG !ID]: %RED%*+O %BLUE%%NAME% %RED%O+*%MAP%
ItemDisplay[(t31 OR t32 OR t33 OR t34 OR t35 OR t36 OR t37 OR t38 OR t39) RARE !ID]: %RED%*+O %YELLOW%%NAME% %RED%O+*%MAP%
ItemDisplay[(t31 OR t32 OR t33 OR t34 OR t35 OR t36 OR t37 OR t38 OR t39) MAG ID]: %RED%*+O %BLUE%%NAME% %RED%O+*%MAP%
ItemDisplay[(t31 OR t32 OR t33 OR t34 OR t35 OR t36 OR t37 OR t38 OR t39) RARE ID]: %YELLOW%%NAME%%MAP%
ItemDisplay[(t41 OR t42 OR t43 OR t44 OR t45 OR t46 OR t47 OR t48 OR t49) NMAG]: %PURPLE%*+O %WHITE%%NAME% %PURPLE%O+*%MAP%
ItemDisplay[(t41 OR t42 OR t43 OR t44 OR t45 OR t46 OR t47 OR t48 OR t49) MAG !ID]: %PURPLE%*+O %BLUE%%NAME% %PURPLE%O+*%MAP%
ItemDisplay[(t41 OR t42 OR t43 OR t44 OR t45 OR t46 OR t47 OR t48 OR t49) RARE !ID]: %PURPLE%*+O %YELLOW%%NAME% %PURPLE%O+*%MAP%
ItemDisplay[(t41 OR t42 OR t43 OR t44 OR t45 OR t46 OR t47 OR t48 OR t49) MAG ID]: %PURPLE%*+O %BLUE%%NAME% %PURPLE%O+*%MAP%
ItemDisplay[(t41 OR t42 OR t43 OR t44 OR t45 OR t46 OR t47 OR t48 OR t49) RARE ID]: %YELLOW%%NAME%%MAP%

In this block, each different tier of map is colored accordingly, tier 1, 2 and 3. They are then colored by their rarity, which would be common, magic, and rare. These also help add the visibility of them by making the name larger, and then also giving instructions on how to upgrade them so it isn’t needed to be looked up every time you would like to do that.

--

--