Item Filtering: Difference between revisions

Undo revision 17920 by Equanimity (talk)
(Removed page from translation)
(Undo revision 17920 by Equanimity (talk))
Tag: Undo
 
(35 intermediate revisions by 3 users not shown)
Line 38:
The next simplest rule is one that displays all items with their default appearances. The output keyword '''''%NAME%''''' refers to an item's default appearance, and varies depending on which item is being shown. All items are displayed by default - the game essentially adds this rule to the bottom of the filter before beginning to process the filter's rules.
 
<code>ItemDisplay[]: %NAME%</code> <span style="color:gray;">''displays all items with their default appearancesnames''</span>
 
<code>ItemDisplay[]: %NAME%{%NAME%}</code> <span style="color:gray;">''displays all items with their default names and descriptions''</span>
 
=== Conditions ===
Line 55 ⟶ 57:
Rules with multiple conditions may use logic operators ('''AND''','''OR''','''!''') to specify how the conditions relate to each other. If no operator is used between conditions, '''AND''' will be assumed.
 
<code>ItemDisplay[NMAG AND SOCKSOCKETS=1 AND CLVL>10]:</code> <span style="color:gray;">''hides regular 1-socket items if the character is above level 10''</span>
 
<code>ItemDisplay[NMAG SOCKSOCKETS=1 CLVL>10]:</code> <span style="color:gray;">''hides regular 1-socket items if the character is above level 10 (same as above)''</span>
 
 
Line 76 ⟶ 78:
 
<code>ItemDisplay[MAG !ID HELM !(BAR OR DRU OR ELT)]:</code> <span style="color:gray;">''hides magic unidentified helms that are not barbarian helms, druid pelts, or elite''</span>
 
 
In addition to the standard comparison operators, value conditions can also be used with the "BETWEEN" operator ('''~''') to specify value ranges.
 
<code>ItemDisplay[NMAG SOCKETS~1-2]:</code> <span style="color:gray;">''hides regular items with 1-2 sockets''</span>
 
<code>ItemDisplay[NMAG SOCKETS>0 SOCKETS<3]:</code> <span style="color:gray;">''hides regular items with 1-2 sockets (same as above)''</span>
 
 
The following attribute codes can have addition applied between them prior to the condition being evaluated: '''STR''', '''DEX''', '''STAT3''' (vitality) '''LIFE''', '''MANA''', '''FRES''', '''CRES''', '''LRES''', '''PRES''', '''EDEF''', '''EDAM''', '''FCR''', '''AR''', '''REPLIFE''', '''STAT60''' (life leech), '''STAT62''' (mana leech)
 
<code>ItemDisplay[RARE FRES+CRES+LRES+PRES>79]: %NAME% %RED%!</code> <span style="color:gray;">''appends a red '''!''' to rares with 80+ total resistance''</span>
 
 
=== Output ===
A rule's output (text and keywords in the second part of the rule) describe how the matching item(s) should be displayed.
 
An item's default name can be referenced with the '''''%NAME%''''' keyword and modified by adding text. To shorten a name or change it entirely, write-out the new name instead. Valid text characters include all those in the [https://en.wikipedia.org/wiki/List_of_Unicode_characters#Basic_Latin '''Basic Latin'''] and [https://en.wikipedia.org/wiki/List_of_Unicode_characters#Latin-1_Supplement '''Latin-1 Supplement'''] Unicode blocks (except '''·''' and '''¸''').
 
{| class="wikitable"
Line 97 ⟶ 112:
| space || <code>&nbsp;</code>
|-
| other symbols || <code>µ¶¢£¥®©§¿¡¯¨¬­&#173;¦«»÷×±ªº´¤°¹²³¼½¾·¸</code>
|-
| other capital letters || <code>ÐÞÆØÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝ</code>
Line 104 ⟶ 119:
|}
* The last three categories require the filter file to be encoded in ANSI rather than the default UTF-8
* The soft hyphen character doesn't display correctly herein many places (including this wiki) but does show up in-game
* These characters display as "?" if HD text is disabled: ·¸
* These characters aren't displayed at all if HD text is enabled: ¬­÷±¤ (including soft hyphen)
 
 
Line 113 ⟶ 130:
<code>ItemDisplay[hdm]: Charsi's Favorite Hammer</code> <span style="color:gray;">''Charsi's Favorite Hammer''</span>
 
 
Text and keywords can be used together to add extra information, change parts of the name to be different colors, and more. See [[Item_Filtering#Output_Keywords | all keywords]] below.
 
<code>ItemDisplay[SOCKSOCKETS>0]: %NAME% %GRAY%[%SOCKETS%]</code> <span style="color:gray;">''displays socketed items with '''[X]''' appended in gray, where X is the number of sockets''</span>
 
 
The price of an item (displayed above the name when a merchant is selling it) can be recolored by using a color keyword after the rest of the output.
As with elsewhere, the double slash ('''//''') functions as an in-file way to write comments that will be ignored by the computer.
 
<code>ItemDisplay[SHOP]: %NAME%%WHITE%</code> <span style="color:gray;">''changes the price color for shop items to white</span>
 
 
As with elsewhere, the double slash ('''//''') functions as an in-file way to write comments that will be ignored by the computer. Everything afterward will be ignored.
 
<code>ItemDisplay[NMAG (aqv OR cqv)]: // hides regular arrows/bolts</code>
 
<code>ItemDisplay[tsc]: //%NAME% // Scroll of Town Portal</code> <span style="color:gray;">''this rule hides TP scrolls, but can be changed to display them instead by deleting the first '''//'''''</span>
 
When frequently enabling or disabling parts of a filter, putting '''//''' in front of those parts instead of deleting them can result in faster editing.
<code>//ItemDisplay[MAG cm2]: // hides magic large charms</code> <span style="color:gray;">''this "rule" is ignored, but can be quickly re-enabled by deleting the first '''//'''''</span>
 
<code>ItemDisplay[tsc]: //%NAME%</code> <span style="color:gray;">''this rule hides TP scrolls, but can be changed to display them instead by deleting '''//''' in front of %NAME%''</span>
 
<code>//ItemDisplay[MAG (aqv OR cqv)]: // hides magic quivers if enabled</code> <span style="color:gray;">''this "rule" is ignored, but can be quickly re-enabled by deleting '''//''' from in front of ItemDisplay''</span>
 
 
Line 135 ⟶ 160:
The '''''%CONTINUE%''''' keyword replaces the contents of '''''%NAME%''''' with the current rule's '''''Output''''' (overwriting the default name or previously stored output) and makes the program continue checking rules. This allows multiple rules to modify an item's appearance based on different conditions.
 
<code>ItemDisplay[SOCKSOCKETS>0]: %NAME% [%SOCKETS%]%CONTINUE%</code> <span style="color:gray;">''appends '''[X]''' to socketed items, where X is the number of sockets (continues)''</span>
 
<code>ItemDisplay[ETH]: eth %NAME%%CONTINUE%</code> <span style="color:gray;">''prepends '''eth''' to ethereal items (continues)''</span>
Line 143 ⟶ 168:
Without '''''%CONTINUE%''''', this would require a separate rule for every possible combination of different conditions, the number of rules growing exponentially with each additional condition:
 
<code>ItemDisplay[ETH SOCKSOCKETS>0]: eth %NAME% [%SOCKETS%]</code>
 
<code>ItemDisplay[!ETH SOCKSOCKETS>0]: %NAME% [%SOCKETS%]</code>
 
<code>ItemDisplay[ETH SOCKSOCKETS=0]: eth %NAME%</code>
 
<code>ItemDisplay[!ETH SOCKSOCKETS=0]: %NAME%</code>
 
 
Line 173 ⟶ 198:
 
 
The '''''%NL%''''' keyword adds a new line above the previous line and can only be used withinin item descriptions for any item, or item names for the following: identified items whose rarity is magic or higher, runewords, and items within shops.
 
<code>ItemDisplay[]: %NAME%{Affix Level: %ALVL%%NL%Item Level: %ILVL%}</code> <span style="color:gray;">''Shows item/affix levels on separate lines in description (same effect as '''Show iLvlItem Level''' setting)''</span>
 
 
The number of displayed characters for an item's name is capped at 56. The internal limit for an item's name includes additional characters for color keywords (3 characters each) and %NL% (2 characters each) and goes up to 125.
 
For example, a name that uses all 56 text characters and also uses 23 color keywords (69 internal characters) would have an internal size of 125 (56+69) and work as expected, but attempting to add another color will break things.
 
The cap for item descriptions is much higher at 500 total characters and, unlike for item names, is the same for both displayed characters and internal characters.
 
<!-- End of "Filter Syntax" category -->
Line 185 ⟶ 217:
To enable custom filter levels, use the following format at the top of the filter:
 
<code>ItemDisplayFilterName[]: CustomLow Level 1Strictness</code> <span style="color:gray;">''Adds a new filter strictness level named "Custom LevelLow 1Strictness"''</span>
 
<code>ItemDisplayFilterName[]: Medium Strictness</code> <span style="color:gray;">''Adds a new filter strictness level named "Medium Strictness"''</span>
 
<code>ItemDisplayFilterName[]: CustomHigh Level 2Strictness</code> <span style="color:gray;">''Adds a new filter strictness level named "Custom LevelHigh 2Strictness"''</span>
 
 
Line 211 ⟶ 245:
These keywords change the color for subsequent text. If absent, the item's default color will be used instead.
{| class="wikitable"
! Code !! Color !! Default Use !! Hex
|-
| %WHITE% || <span class="d2-white">White</span> || regular items || 20
|-
| %GRAY% || <span class="d2-gray">Gray</span> || regular items (ethereal or socketed) || 1D
|-
| %BLUE% || <span class="d2-blue">Blue</span> || magic items, item descriptions || 97
|-
| %YELLOW% || <span class="d2-yellow">Yellow</span> || rare items || 6D
|-
| %GOLD% || <span class="d2-gold">Gold</span> || unique items, runeword names || 53
|-
| %GREEN% || <span class="d2-green">Green</span> || set items || 84
|-
| %DARK_GREEN% || <span class="d2-dark-green">Dark Green</span> || || 77
|-
| %TAN% || <span class="d2-tan">Tan</span> || || 5A
|-
| %BLACK% || <span class="d2-black">Black</span> || || 00
|-
| %PURPLE% || <span class="d2-purple">Purple</span> || || 9B
|-
| %RED% || <span class="d2-red">Red</span> || broken/unusable items || 62
|-
| %ORANGE% || <span class="d2-orange">Orange</span> || crafted items, endgame quest items, runes || 60
|-
| %CORAL% || <span class="d2-coral">Coral</span> || ''only works with Glidecustom'' || ?
|-
| %SAGE% || <span class="d2-sage">Sage</span> || ''only works with Glidecustom'' || ?
|-
| %TEAL% || <span class="d2-teal">Teal</span> || ''only works with Glidecustom'' || ?
|-
| %LIGHT_GRAY% || <span class="d2-light-gray">Light Gray</span> || ''only works with Glidecustom'' || ?
|}
* Custom text colors only work with Glide or if HD text is enabled, and will otherwise function the same as '''''%GRAY%'''''
 
Some items have their default color built into '''''%NAME%''''', so their color won't change unless their name is rewritten completely. This is likely [[Bugs|unintended behavior]], and applies to runes, Standard of Heroes, and the PD2-specific non-equipment items other than map/arena scrolls and jewel fragments.
Line 269 ⟶ 304:
|-
| %QTY% || quantity || 0 - 350
|-
| %SOCKETS% || number of sockets || 0 - 6
|-
| %RANGE% || melee range adder || 0 - 5
Line 285 ⟶ 318:
|-
| %CODE% || item code ||
|}
 
Additionally, keywords also exist for each [[Item_Filtering#Named_Attribute_Codes|named attribute code]] (except '''MAXDUR''') and each [[Item_Filtering#Numbered_Attribute_Codes|numbered attribute code]]. Some examples are:
{| class="wikitable"
! Code !! Output !! Details
|-
| %SOCKETS% || total sockets ||
|-
| %DEF% || total defense ||
|-
| %ED% || enhanced defense/damage || refers to defense for armor,<br>damage for weapons
|-
| %EDEF% || +N% Enhanced Defense || Includes bonuses from runewords and sockets<br>(ED does '''not''' include these)
|-
| %EDAM% || +N% Enhanced Damage || Includes bonuses from runewords and sockets<br>(ED does '''not''' include these)
|-
| %AR% || +N to Attack Rating ||
|-
| %RES% || All Resistances +N ||
|-
| %STR% || +N to Strength ||
|-
| %DEX% || +N to Dexterity ||
|-
| %STAT1% || +N to Energy ||
|-
| %STAT3% || +N to Vitality ||
|-
| %STAT36% || Physical Damage Taken Reduced by N% ||
|-
| %STAT58% || +X Poison Damage over Y Seconds<br>''bitrate N = (256X) / (25Y)'' ||
|-
| %STAT60% || N% Life Stolen per Hit ||
|-
| %STAT62% || N% Mana Stolen per Hit ||
|-
| %STAT86% || +N Life after each Kill ||
|-
| %STAT91% || Requirements +N% ||
|-
| %STAT329% || N% to Fire Skill Damage ||
|-
| %STAT330% || N% to Lightning Skill Damage ||
|-
| %STAT331% || N% to Cold Skill Damage ||
|-
| %STAT332% || N% to Poison Skill Damage ||
|-
| %STAT357% || N% to Magic Skill Damage ||
|-
| %SK48% || +N to Nova (Sorceress Only) || see [[Item_Filtering#Multi-layered_Stats|multi-layered stats]]
|}
 
Line 291 ⟶ 375:
These keywords add the item to the notification list and create a minimap icon for it.
 
The color of the minimap icon corresponds to the keyword's hexadecimal 2-digit color code. The icon may be black (00), green (84), red (62), or any of the other colors shown in the chart image. Note that '''%MAP%''' may be used without a 2-digit color code, in which case the icon will use the current text color (or white if no color has been set). The hexadecimal codes which correspond to the [[Item_Filtering#Colors|text colors]] are listed above.
 
Multiple keywords can be used together to create multi-colored minimap icons.
Line 305 ⟶ 389:
|-
| %PX-00% || notification & minimap icon (tiny)
|}
 
The 2-digit hexadecimal codes which correspond to the [[Item_Filtering#Colors|text colors]] are listed below. Text colors have a solid inner color and their edges are blended to improve readability, so their average colors appear slightly different in some cases.
{| class="wikitable"
! Text Color !! Hex (Inner) !! Hex (Average)
|-
| <span class="d2-white">White</span> || 1F || 20
|-
| <span class="d2-gray">Gray</span> || C6 || 1D
|-
| <span class="d2-blue">Blue</span> || 94 || 97
|-
| <span class="d2-yellow">Yellow</span> || 6A || 6D
|-
| <span class="d2-gold">Gold</span> || D3 || 53
|-
| <span class="d2-green">Green</span> || 7D || 84
|-
| <span class="d2-dark-green">Dark Green</span> || 76 || 77
|-
| <span class="d2-tan">Tan</span> || 0E || 5A
|-
| <span class="d2-black">Black</span> || 00 || 00
|-
| <span class="d2-purple">Purple</span> || 9B || 9B
|-
| <span class="d2-red">Red</span> || 55 || 62
|-
| <span class="d2-orange">Orange</span> || 0B || 60
|-
| <span class="d2-coral">Coral</span> || ? || ?
|-
| <span class="d2-sage">Sage</span> || ? || ?
|-
| <span class="d2-teal">Teal</span> || ? || 9F
|-
| <span class="d2-light-gray">Light Gray</span> || ? || ?
|}
 
Line 324 ⟶ 445:
 
 
All notification keywords seem to bypass the normal rule-handling procedure. Normally, the rules are processed top-to-bottom and this process halts when a matching rule (without '''%CONTINUE%''') is found. Notification keywords, however, can apply even after the process has halted. This mayis most likely due to the game making a separate pass through the filter file for notification keywords - the first pass ignores notification keywords, and the second pass beignores [[Bugs|unintendedeverything behavior]]else.
 
==== Special Keywords ====
Line 332 ⟶ 453:
| %CONTINUE% || the item is compared against additional rules instead of being displayed by the current rule<br>the current rule's output is stored in %NAME%
|-
| %NL% || specifies a new line, (lines are constructed bottom-up)<br>only works within braces (descriptions) or for '''ID !NMAG''', '''RW''', or '''SHOP''' items (identified items which are magic or higher rarity, runewords, or items within shops)
|-
| {} || anything within the braces applies to the item's description rather than the item's name/title
|-
| %TIER-10% || enablesdisables notificationtext keywordsnotifications (but not map icons) for the item if the [[Item_Filtering#Filter_Strictness|filter strictness]] level is atabove least 10 (value can be 10-9)
|}
 
Line 343 ⟶ 464:
=== Boolean Conditions ===
==== Mutable Codes ====
Contrary to most "immutable" codes which refer to static item properties, these conditions depend on where and how the item is being viewed. Some value conditions suchare asalso "mutable" in this way: [[Item_Filtering#Info_Codes|CLVL, andCRAFTALVL, DIFF, FILTLVL, MAPID]], areand also[[Item_Filtering#Numbered_Attribute_Codes|CHARSTAT "mutable" in this waycodes]].
{| class="wikitable"
! Code !! Description
Line 366 ⟶ 487:
|}
<code>ItemDisplay[key ASSASSIN]:</code> <span style="color:gray;">''hides keys when playing as an Assassin''</span>
 
Both '''SHOP''' and '''EQUIPPED''' behave as expected in most scenarios, but they each have a [[Bugs|bug]] associated with them. Most notably, '''EQUIPPED''' incorrectly applies to items that begin the game within the multiplayer shared stash.
 
==== Item Group Codes ====
Line 426 ⟶ 545:
! Code !! Code !! Group !! Details
|-
| EQ1 || HELM || HelmetsHelms || includes class helms
|-
| EQ2 || CHEST || Chests ||
Line 455 ⟶ 574:
| WP4 || DAGGER || Daggers || includes throwing knives
|-
| WP5 || THROWING || Throwing Weapons || includes throwing knives/axes, all javelins, throwing potions
|-
| WP6 || JAV || Javelins || includes all throwing weapons, all spears, Amazon javelins
|-
| WP7 || SPEAR || Spears || includes Amazon spears & all javelins
|-
| WP8 || POLEARM || Polearms ||
Line 478 ⟶ 597:
|-
| 2H || || 2-Handed Weapons ||
|-
| CLUB || || Clubs (mace subtype) ||
|-
| TMACE || || Tipped Maces (mace subtype) ||
|-
| HAMMER || || Hammers (mace subtype) ||
|}
Since '''WP6''' overlaps entirely with both '''WP5''' and '''WP7''' (two very different kinds of weapons), it's rarely useful.
 
The '''1H''' code is currently [[Bugs|bugged]] and doesn't include Hand Axe.
 
===== Class-Restricted Item Groups =====
Line 489 ⟶ 611:
| CL1 || DRU || Druid pelts
|-
| CL2 || BAR || Barbarian helmetshelms
|-
| CL3 || DIN || Paladin shields
Line 500 ⟶ 622:
|-
| CL7 || ZON || Amazon weapons
|-
| CLASS || || All class-restricted items
|}
 
Line 511 ⟶ 635:
! Code !! Description !! Details
|-
| GOLD || Gold || can be hidden, but not modified (always displays as "N Gold")<br>gold is automatically picked up (hiding it does not prevent this)
|-
| GEMLEVEL<br>GEM || gem quality level || 1 - 5 (Chipped-Perfect)<br>doesn't apply to ''unstacked'' Flawless/Perfect gems
|-
| GEMTYPE || gem type || 1 - 7 (Amethyst-, Diamond, Emerald, Ruby, Sapphire, Topaz, Skull)
|-
| RUNE || rune number || 1 - 33 (El-Zod)
|-
| QTY || quantity ||
|-
| DEF || total defense ||
|-
| LVLREQ || level requirement ||
Line 537 ⟶ 659:
| CLVL || character level ||
|-
| DIFF || difficulty || 0 - 2 (Normal-, Nightmare, Hell)
|-
| MAPID || item'scurrent initial locationzone || 1 - 175 (see [[Item_Filtering#MAPID_IDs|details]])
|-
| MAPTIER || map tier || 0 - 5 (PvP, T1, T2, T3, Dungeon, Unique)
| SUFFIX || item suffix || 1 - 849 (see [[Item_Filtering#SUFFIX_and_PREFIX_IDs|details]])
|-
| PREFIX || item prefix || 8501 - 1644805 (see [[Item_Filtering#SUFFIX_and_PREFIX_IDsSUFFIX,_PREFIX,_and_AUTOMOD_IDs|details]])
|-
| SUFFIX || item suffix || 1 - 900 (see [[Item_Filtering#SUFFIX,_PREFIX,_and_AUTOMOD_IDs|details]])
| FILTLVL || filter strictness level || 1 - 9
|-
| AUTOMOD || item automod || 1 - 44 (see [[Item_Filtering#SUFFIX,_PREFIX,_and_AUTOMOD_IDs|details]])
|-
| FILTLVL || filter strictness level || 0 - 9 (Show All Items, up to 9 custom levels)
|}
 
There is currently a [[Bugs|bug]] with hiding stacked gems/runes - if the lootfilter attempts to hide them, they'll usually be loaded regardless and appear with an empty name.
 
==== Named Attribute Codes ====
Line 554 ⟶ 678:
! Code !! Description !! Item Appearance !! Details
|-
| SOCKETS<br>SOCK || total sockets || Socketed (N) ||
|-
| DEF || total defense || Defense: N<br>+N Defense ||
|-
| ED || enhanced defense/damage || +N% Enhanced Defense<br>+N% Enhanced Damage || refers to defense for armor,<br>damage for weapons
|-
| EDEF || enhanced defense || +N% Enhanced Defense || Includes bonuses from runewords and sockets<br>(ED does '''not''' include these)
|-
| EDAM || enhanced damage || +N% Enhanced Damage || Includes bonuses from runewords and sockets<br>(ED does '''not''' include these)
|-
| MAXDUR || max durability || Increase Maximum Durability N% ||
Line 610 ⟶ 740:
| FOOLS || fool's mod || +X to Attack Rating (Based on Character Level)<br>+Y to Maximum Damage (Based on Character Level) || boolean condition
|}
Some attributes (STR, DEX, LIFE, MANA, FRES, CRES, LRES, PRES) can have addition applied between them prior to the condition being evaluated.
 
==== Numbered Attribute Codes ====
<code>ItemDisplay[RARE FRES+CRES+LRES+PRES>79]: %NAME% %RED%!</code> <span style="color:gray;">''appends a red '''!''' to rares with 80+ total resistance''</span>
The relevant number for each code is shown as N. If N is absent, it is often either 0 or 1. For codes that refer to attributes which are based on character level, N is often a multiple of Y (as in "+Y per Character Level") such as 8Y for STAT214 or 2Y for STAT224.
 
Some numbered attribute codes (shown in <span style="color:gray;">gray</span>) refer to the same attributes as [[Item_Filtering#Named_Attribute_Codes|named attribute codes]] or other named codes, which can be used instead for better readability.
 
To refer to stats that have multiple parts such as chance-to-cast effects or skill charges, the '''MULTI''' condition must be used instead of '''STAT''': see [[Item_Filtering#Multi-layered_Stats|Multi-Layered Stats]]
It seems values get converted to unsigned integers '''before comparison'''. For negative values, this means that instead of counting backwards from 0, they count backwards from the maximum storeable value (a few billion). The following examples illustrate this point, but they're outdated since medium/heavy armors no longer have movement speed penalties.
 
All these numbered attribute '''STAT''' codes refer to individual items in the same way that most codes do - they are "immutable" and don't change depending on the character viewing the item. There are also corresponding '''CHARSTAT''' codes for each attribute which are "mutable" and can change based on other factors - rather than checking whether an ''item'' has the attribute, these codes check whether the ''character'' has the attribute. In most cases, that means checking whether the character is wearing an item with the attribute. But there are also some "non-item" codes such as '''CHARSTAT14''' and '''CHARSTAT15''' which refer to how much gold the character is carrying and how much gold they have in their stash, respectively.
<code>ItemDisplay[NMAG !ELT (FRW=-5 OR FRW=-10)]:</code> <span style="color:gray;">''hides regular non-elite medium/heavy armors''</span>
 
<code>ItemDisplay[NMAG !ELT FRW>1000]:</code> <span style="color:gray;">''hides regular non-elite medium/heavy armors''</span>
 
<code>ItemDisplay[NMAG !ELT FRW>-20]:</code> <span style="color:gray;">''hides regular non-elite medium/heavy armors''</span>
 
==== Numbered Attribute Codes ====
The relevant number for each code is shown as N. In many cases, if N is absent, it is either 0 or 1. For codes that refer to attributes which are based on character level, N is often a multiple of Y (+Y per Character Level) such as 8Y for STAT214 or 2Y for STAT224.
 
Some numbered attribute codes (shown in <span style="color:gray;">gray</span>) refer to the same attributes as [[Item_Filtering#Named_Attribute_Codes|named attribute codes]] or other named codes, which can be used instead for better readability.
<div><ul style="margin-left:0px;">
<li style="display:inline-table; margin-left:0px; margin-right:8px;">
Line 696 ⟶ 819:
|-
| STAT81 || Knockback
|-
| <span style="color:gray;">STAT83</span> || +N to Amazon Skill Levels
|-
| STAT85 || +N% to Experience Gained
Line 707 ⟶ 828:
| STAT89 || +N to Light Radius
|-
| STAT91 || Requirements -+N%
|-
| <span style="color:gray;">STAT93</span> || +N% Increased Attack Speed
Line 778 ⟶ 899:
|-
| style="font-size:90%;" | STAT158 || Fires Explosive Arrows or Bolts
|-
| style="font-size:90%;" | <span style="color:gray;">STAT188</span> || +N to Bow and Crossbow Skills
|-
| style="font-size:90%;" | <span style="color:gray;">STAT194</span> || Socketed (N)
Line 785 ⟶ 904:
| style="font-size:90%;" | <span style="color:gray;">STAT252</span> || style="font-size:78%;" | Repairs X Durability in Y Seconds ''(N = 100/Y)''
|-
| style="font-size:90%;" | STAT360 || Corrupted ''Corruption ([[Item_Filtering#STAT360_IDs|values for N]])''
|-
| style="font-size:90%;" | STAT422 || Replenishes 1 Charge in 3 Seconds
Line 793 ⟶ 912:
| style="font-size:90%;" | STAT425 || -N% to Enemy Physical Resistance
|-
| style="font-size:90%;" | STAT486 || ''Mirrored''
|-
| style="font-size:90%;" | STAT477 || style="font-size:90%;" | ''transform_dye (N: black=4, white=21)''
|-
| style="font-size:90%;" | STAT501 || style="font-size:92%;" | +N Open Wounds Damage per Second
|-
| style="font-size:90%;" | STAT504 || Curse Resistance +N%
|}
</li>
Line 1,003 ⟶ 1,128:
|-
! Code !! Item Appearance
|-
| style="font-size:90%;" | STAT369 || ''map_defense''
|-
| style="font-size:90%;" | STAT370 || ''Map'' Magic Find: +N%
Line 1,012 ⟶ 1,139:
| style="font-size:90%;" | STAT373 || ''Map'' Experience: +N%
|-
| style="font-size:90%;" | STAT374 || ''Map'' MonsterArea RarityLevel: +N%
|-
| style="font-size:90%;" | STAT375 || ''map_glob_monsterrarity''
|-
| style="font-size:90%;" | STAT376 || ''map_mon_firemindam''
|-
| style="font-size:90%;" | STAT377 || ''map_mon_firemaxdam''
|-
| style="font-size:90%;" | STAT378 || ''map_mon_lightmindam''
|-
| style="font-size:90%;" | STAT379 || ''map_mon_lightmaxdam''
|-
| style="font-size:90%;" | STAT380 || ''map_mon_magicmindam''
|-
| style="font-size:90%;" | STAT381 || ''map_mon_magicmaxdam''
|-
| style="font-size:90%;" | STAT382 || ''map_mon_coldmindam''
|-
| style="font-size:90%;" | STAT383 || ''map_mon_coldmaxdam''
|-
| style="font-size:90%;" | STAT384 || ''map_mon_coldlength''
|-
| style="font-size:90%;" | STAT385 || ''map_mon_poisonmindam''
|-
| style="font-size:90%;" | STAT386 || ''map_mon_poisonmaxdam''
|-
| style="font-size:90%;" | STAT387 || ''map_mon_poisonlength''
|-
| style="font-size:90%;" | STAT388 || Monsters have +N% to Fire Skill Damage
Line 1,065 ⟶ 1,218:
|-
| style="font-size:90%;" | STAT413 || Players have -N Drain Life
|-
| style="font-size:90%;" | STAT414 || ''map_mon_passive_fire_pierce''
|-
| style="font-size:90%;" | STAT415 || ''map_mon_passive_ltng_pierce''
|-
| style="font-size:90%;" | STAT416 || ''map_mon_passive_cold_pierce''
|-
| style="font-size:90%;" | STAT417 || ''map_mon_passive_pois_pierce''
|-
| style="font-size:90%;" | STAT418 || ''map_play_maxfireresist''
|-
| style="font-size:90%;" | STAT419 || ''map_play_maxlightresist''
|-
| style="font-size:90%;" | STAT420 || ''map_play_maxcoldresist''
|-
| style="font-size:90%;" | STAT421 || ''map_play_maxpoisonresist''
|-
| style="font-size:90%;" | STAT426 || Monsters have +N% Enhanced Physical Damage
Line 1,105 ⟶ 1,274:
|-
| style="font-size:90%;" | STAT452 || Players have N% Attack and Cast Speed
|-
| style="font-size:90%;" | STAT454 || ''map_play_maxhp_percent''
|-
| style="font-size:90%;" | STAT455 || ''map_play_maxmana_percent''
|-
| style="font-size:90%;" | STAT456 || ''map_play_damageresist''
|-
| style="font-size:90%;" | STAT457 || Players have N% to Velocity
|-
| style="font-size:90%;" | STAT458 || Heoric
|-
| style="font-size:90%;" | STAT467 || ''map_play_lightradius''
|-
| style="font-size:90%;" | STAT470 || Map contains Burning Souls
|-
| style="font-size:90%;" | STAT471 || Map contains Fetishes
|-
| style="font-size:90%;" | STAT493 || ''map_glob_skirmish_mode''
|-
| style="font-size:90%;" | STAT494 || ''map_mon_dropjewelry''
|-
| style="font-size:90%;" | STAT495 || ''map_mon_dropweapons''
|-
| style="font-size:90%;" | STAT496 || ''map_mon_droparmor''
|-
| style="font-size:90%;" | STAT497 || ''map_mon_dropcrafting''
|-
| style="font-size:90%;" | STAT498 || ''map_glob_extra_boss''
|-
| style="font-size:90%;" | STAT499 || ''map_glob_add_mon_shriek''
|-
| style="font-size:90%;" | STAT500 || Area Contains a Random Event
|-
| style="font-size:90%;" | STAT502 || ''map_mon_dropcharms''
|-
| style="font-size:90%;" | STAT503 || ''map_glob_dropcorrupted''
|-
| style="font-size:90%;" | STAT186 || ''map_glob_boss_dropskillers''
|-
| style="font-size:90%;" | STAT187 || ''map_glob_boss_dropcorruptedunique''
|-
| style="font-size:90%;" | STAT505 || ''map_glob_boss_dropfacet''
|-
| style="font-size:90%;" | STAT506 || ''map_mon_dropjewels''
|-
|}
{| class="wikitable mw-collapsible mw-collapsed"
Line 1,118 ⟶ 1,324:
|-
! Code !! Item Appearance
|-
| STAT4 || ''statpts''
|-
| STAT5 || ''newskills''
|-
| STAT6 || ''hitpoints''
|-
| STAT8 || ''mana''
|-
| STAT10 || ''stamina''
|-
| STAT12 || ''level''
|-
| STAT13 || ''experience''
|-
| STAT14 || ''gold''
|-
| STAT15 || ''goldbank''
|-
| STAT26 || ''manarecovery''
|-
| STAT29 || ''lastexp''
|-
| STAT30 || ''nextexp''
|-
| STAT47 || ''damageaura''
|-
| STAT61 || ''lifedrainmaxdam''
|-
| STAT63 || ''manadrainmaxdam''
|-
| STAT64 || ''stamdrainmindam''
|-
| STAT65 || ''stamdrainmaxdam''
|-
| STAT66 || ''stunlength''
|-
| STAT67 || ''velocitypercent''
|-
| STAT69 || ''other_animrate''
|-
| STAT71 || ''value''
|-
| STAT82 || ''item_timeduration''
|-
| STAT90 || ''item_lightcolor''
|-
| STAT92 || ''item_levelreq''
|-
| STAT94 || ''item_levelreqpct''
|-
| STAT95 || ''lastblockframe''
|-
| STAT98 || ''state''
|-
| style="font-size:90%;" | STAT100 || ''monster_playercount''
|-
| style="font-size:90%;" | STAT101 || ''skill_poison_override_length''
|-
| style="font-size:90%;" | STAT103 || ''skill_bypass_undead''
|-
| style="font-size:90%;" | STAT104 || ''skill_bypass_demons''
|-
| style="font-size:90%;" | STAT106 || ''skill_bypass_beasts''
|-
| style="font-size:90%;" | STAT125 || ''item_throwable''
|-
| style="font-size:90%;" | STAT129 || ''ironmaiden_level''
|-
| style="font-size:90%;" | STAT130 || ''lifetap_level''
|-
| style="font-size:90%;" | STAT131 || ''thorns_percent''
|-
| style="font-size:90%;" | STAT132 || ''bonearmor''
|-
| style="font-size:90%;" | STAT133 || ''bonearmormax''
|-
| style="font-size:90%;" | STAT137 || ''item_kickdamage''
|-
| style="font-size:90%;" | STAT156 || ''item_pierce''
|-
| style="font-size:90%;" | STAT161 || ''skill_handofathena''
|-
| style="font-size:90%;" | STAT162 || ''skill_staminapercent''
|-
| style="font-size:90%;" | STAT163 || ''skill_passive_staminapercent''
|-
| style="font-size:90%;" | STAT164 || ''skill_concentration''
|-
| style="font-size:90%;" | STAT165 || ''skill_enchant''
|-
| style="font-size:90%;" | STAT166 || ''skill_pierce''
|-
| style="font-size:90%;" | STAT167 || ''skill_conviction''
|-
| style="font-size:90%;" | STAT168 || ''skill_chillingarmor''
|-
| style="font-size:90%;" | STAT169 || ''skill_frenzy''
|-
| style="font-size:90%;" | STAT170 || ''skill_decrepify''
|-
| style="font-size:90%;" | STAT171 || ''skill_armor_percent''
|-
| style="font-size:90%;" | STAT172 || ''alignment''
|-
| style="font-size:90%;" | STAT173 || ''target0''
|-
| style="font-size:90%;" | STAT174 || ''target1''
|-
| style="font-size:90%;" | STAT175 || ''goldlost''
|-
| style="font-size:90%;" | STAT176 || ''conversion_level''
|-
| style="font-size:90%;" | STAT177 || ''conversion_maxhp''
|-
| style="font-size:90%;" | STAT178 || ''unit_dooverlay''
|-
| style="font-size:90%;" | STAT179 || ''attack_vs_montype''
|-
| style="font-size:90%;" | STAT180 || ''damage_vs_montype''
|-
| style="font-size:90%;" | STAT181 || ''fade''
|-
| style="font-size:90%;" | STAT182 || ''armor_override_percent''
|-
| style="font-size:90%;" | STAT183 || ''equipped_eth''
|-
| style="font-size:90%;" | STAT184 || ''missing_hp''
|-
| style="font-size:90%;" | STAT185 || ''uber_difficulty''
|-
| style="font-size:90%;" | STAT189 || ''openwounds_stack''
|-
| style="font-size:90%;" | STAT190 || ''curse_slots''
|-
| style="font-size:90%;" | STAT191 || ''item_skillonequip''
|-
| style="font-size:90%;" | STAT213 || ''item_mindamage_energy''
|-
| style="font-size:90%;" | STAT215 || ''item_armorpercent_perlevel''
|-
| style="font-size:90%;" | STAT247 || ''item_crushingblow_perlevel''
|-
| style="font-size:90%;" | STAT248 || ''item_openwounds_perlevel''
|-
| style="font-size:90%;" | STAT251 || ''item_find_gems_perlevel''
|-
| style="font-size:90%;" | STAT253 || ''item_replenish_quantity''
|-
| style="font-size:90%;" | STAT254 || ''item_extra_stack''
|-
| style="font-size:90%;" | STAT255 || ''item_find_item''
|-
| style="font-size:90%;" | STAT256 || ''item_slash_damage''
|-
| style="font-size:90%;" | STAT257 || ''item_slash_damage_percent''
|-
| style="font-size:90%;" | STAT258 || ''item_crush_damage''
|-
| style="font-size:90%;" | STAT259 || ''item_crush_damage_percent''
|-
| style="font-size:90%;" | STAT260 || ''item_thrust_damage''
|-
| style="font-size:90%;" | STAT261 || ''item_thrust_damage_percent''
|-
| style="font-size:90%;" | STAT262 || ''item_absorb_slash''
|-
| style="font-size:90%;" | STAT263 || ''item_absorb_crush''
|-
| style="font-size:90%;" | STAT264 || ''item_absorb_thrust''
|-
| style="font-size:90%;" | STAT265 || ''item_absorb_slash_percent''
|-
| style="font-size:90%;" | STAT266 || ''item_absorb_crush_percent''
|-
| style="font-size:90%;" | STAT267 || ''item_absorb_thrust_percent''
|-
| style="font-size:90%;" | STAT305 || ''item_pierce_cold''
|-
| style="font-size:90%;" | STAT306 || ''item_pierce_fire''
|-
| style="font-size:90%;" | STAT307 || ''item_pierce_ltng''
|-
| style="font-size:90%;" | STAT308 || ''item_pierce_pois''
|-
| style="font-size:90%;" | STAT309 || ''item_damage_vs_monster''
|-
| style="font-size:90%;" | STAT310 || ''item_damage_percent_vs_monster''
|-
| style="font-size:90%;" | STAT311 || ''item_tohit_vs_monster''
|-
| style="font-size:90%;" | STAT312 || ''item_tohit_percent_vs_monster''
|-
| style="font-size:90%;" | STAT313 || ''item_ac_vs_monster''
|-
| style="font-size:90%;" | STAT314 || ''item_ac_percent_vs_monster''
|-
| style="font-size:90%;" | STAT315 || ''firelength''
|-
| style="font-size:90%;" | STAT316 || ''burningmin''
|-
| style="font-size:90%;" | STAT317 || ''burningmax''
|-
| style="font-size:90%;" | STAT318 || ''progressive_damage''
|-
| style="font-size:90%;" | STAT319 || ''progressive_steal''
|-
| style="font-size:90%;" | STAT320 || ''progressive_other''
|-
| style="font-size:90%;" | STAT321 || ''progressive_fire''
|-
| style="font-size:90%;" | STAT322 || ''progressive_cold''
|-
| style="font-size:90%;" | STAT323 || ''progressive_lightning''
|-
| style="font-size:90%;" | STAT324 || ''item_extra_charges''
|-
| style="font-size:90%;" | STAT325 || ''progressive_tohit''
|-
| style="font-size:90%;" | STAT327 || ''damage_framerate''
|-
| style="font-size:90%;" | STAT328 || ''pierce_idx''
|-
| style="font-size:90%;" | STAT337 || ''passive_critical_strike''
|-
| style="font-size:90%;" | STAT338 || ''passive_dodge''
|-
| style="font-size:90%;" | STAT339 || ''passive_avoid''
|-
| style="font-size:90%;" | STAT340 || ''passive_evade''
|-
| style="font-size:90%;" | STAT341 || ''passive_warmth''
|-
| style="font-size:90%;" | STAT342 || ''passive_mastery_melee_th''
|-
| style="font-size:90%;" | STAT343 || ''passive_mastery_melee_dmg''
|-
| style="font-size:90%;" | STAT344 || ''passive_mastery_melee_crit''
|-
| style="font-size:90%;" | STAT345 || ''passive_mastery_throw_th''
|-
| style="font-size:90%;" | STAT346 || ''passive_mastery_throw_dmg''
|-
| style="font-size:90%;" | STAT347 || ''passive_mastery_throw_crit''
|-
| style="font-size:90%;" | STAT348 || ''passive_weaponblock''
|-
| style="font-size:90%;" | STAT349 || ''passive_summon_resist''
|-
| style="font-size:90%;" | STAT350 || ''modifierlist_skill''
|-
| style="font-size:90%;" | STAT351 || ''modifierlist_level''
|-
| style="font-size:90%;" | STAT352 || ''last_sent_hp_pct''
|-
| style="font-size:90%;" | STAT353 || ''source_unit_type''
|-
| style="font-size:90%;" | STAT354 || ''source_unit_id''
|-
| style="font-size:90%;" | STAT355 || ''shortparam1''
|-
| style="font-size:90%;" | STAT356 || ''questitemdifficulty''
|-
| style="font-size:90%;" | STAT358 || ''passive_mag_pierce''
|-
| style="font-size:90%;" | STAT361 || ''corruptor''
|-
| style="font-size:90%;" | STAT367 || ''skill_cold_enchant''
|-
| style="font-size:90%;" | STAT368 || You May Apply an Additional Curse
|-
| style="font-size:90%;" | STAT423 || style="font-size:76%;" | +N% to Leap and Leap Attack Movement Speed
|-
| style="font-size:90%;" | STAT443 || ''extra_bonespears''
|-
| style="font-size:90%;" | STAT444 || style="font-size:82%;" | You May Now Summon N Additional Revives
|-
| style="font-size:90%;" | STAT445 || ''immune_stat''
|-
| style="font-size:90%;" | STAT446 || ''mon_cooldown1''
|-
| style="font-size:90%;" | STAT447 || ''mon_cooldown2''
|-
| style="font-size:90%;" | STAT448 || ''mon_cooldown3''
|-
| style="font-size:90%;" | STAT459 || style="font-size:87%;" | You May Now Summon 1 Additional Spirit
Line 1,142 ⟶ 1,626:
|-
| style="font-size:90%;" | STAT468 || Blood Warp Costs N% Less Health
|-
| style="font-size:90%;" | STAT469 || ''pierce_count''
|-
| style="font-size:90%;" | STAT472 || ''dclone_clout''
|-
| style="font-size:90%;" | STAT473 || ''maxlevel_clout''
|-
| style="font-size:90%;" | STAT474 || ''dev_clout''
|-
| style="font-size:90%;" | STAT475 || ''extra_skele_archer''
Line 1,148 ⟶ 1,640:
|-
| style="font-size:90%;" | STAT478 || ''inc_splash_radius''
|-
| style="font-size:90%;" | STAT479 || ''item_numsockets_textonly''
|-
| style="font-size:90%;" | STAT480 || ''rathma_clout''
|-
| style="font-size:90%;" | STAT481 || ''extra_holybolts''
|-
| style="font-size:90%;" | STAT482 || ''pvp_cd''
|-
| style="font-size:90%;" | STAT483 || style="font-size:70%;" | Dragon Flight's Cooldown is Reduced by N Seconds
Line 1,162 ⟶ 1,662:
|-
| style="font-size:90%;" | STAT490 || ''eaglehorn_raven''
|-
| style="font-size:90%;" | STAT491 || ''pvp_disable''
|-
| style="font-size:90%;" | STAT492 || ''pvp_lld_cd''
|}
{| class="wikitable mw-collapsible mw-collapsed"
|+ style="white-space:nowrap; text-align:left;" | Unused
|-
! Code !! Item Appearance
|-
| STAT84 || ''unsentparam1''
|-
| STAT88 || ''item_doubleherbduration''
|-
| style="font-size:90%;" | STAT192 || ''unused192''
|-
| style="font-size:90%;" | STAT193 || ''unused193''
|-
| style="font-size:90%;" | STAT202 || ''unused202''
|-
| style="font-size:90%;" | STAT203 || ''unused203''
|-
| style="font-size:90%;" | STAT205 || ''unused204''
|-
| style="font-size:90%;" | STAT206 || ''unused205''
|-
| style="font-size:90%;" | STAT207 || ''unused206''
|-
| style="font-size:90%;" | STAT208 || ''unused207''
|-
| style="font-size:90%;" | STAT209 || ''unused208''
|-
| style="font-size:90%;" | STAT210 || ''unused209''
|-
| style="font-size:90%;" | STAT211 || ''unused210''
|-
| style="font-size:90%;" | STAT212 || ''unused211''
|-
| style="font-size:90%;" | STAT268 || ''item_armor_bytime''
|-
| style="font-size:90%;" | STAT269 || ''item_armorpercent_bytime''
|-
| style="font-size:90%;" | STAT270 || ''item_hp_bytime''
|-
| style="font-size:90%;" | STAT271 || ''item_mana_bytime''
|-
| style="font-size:90%;" | STAT272 || ''item_maxdamage_bytime''
|-
| style="font-size:90%;" | STAT273 || ''item_maxdamage_percent_bytime''
|-
| style="font-size:90%;" | STAT274 || ''item_strength_bytime''
|-
| style="font-size:90%;" | STAT275 || ''item_dexterity_bytime''
|-
| style="font-size:90%;" | STAT276 || ''item_energy_bytime''
|-
| style="font-size:90%;" | STAT277 || ''item_vitality_bytime''
|-
| style="font-size:90%;" | STAT278 || ''item_tohit_bytime''
|-
| style="font-size:90%;" | STAT279 || ''item_tohitpercent_bytime''
|-
| style="font-size:90%;" | STAT280 || ''item_cold_damagemax_bytime''
|-
| style="font-size:90%;" | STAT281 || ''item_fire_damagemax_bytime''
|-
| style="font-size:90%;" | STAT282 || ''item_ltng_damagemax_bytime''
|-
| style="font-size:90%;" | STAT283 || ''item_pois_damagemax_bytime''
|-
| style="font-size:90%;" | STAT284 || ''item_resist_cold_bytime''
|-
| style="font-size:90%;" | STAT285 || ''item_resist_fire_bytime''
|-
| style="font-size:90%;" | STAT286 || ''item_resist_ltng_bytime''
|-
| style="font-size:90%;" | STAT287 || ''item_resist_pois_bytime''
|-
| style="font-size:90%;" | STAT288 || ''item_absorb_cold_bytime''
|-
| style="font-size:90%;" | STAT289 || ''item_absorb_fire_bytime''
|-
| style="font-size:90%;" | STAT290 || ''item_absorb_ltng_bytime''
|-
| style="font-size:90%;" | STAT291 || ''item_absorb_pois_bytime''
|-
| style="font-size:90%;" | STAT292 || ''item_find_gold_bytime''
|-
| style="font-size:90%;" | STAT293 || ''item_find_magic_bytime''
|-
| style="font-size:90%;" | STAT294 || ''item_regenstamina_bytime''
|-
| style="font-size:90%;" | STAT295 || ''item_stamina_bytime''
|-
| style="font-size:90%;" | STAT296 || ''item_damage_demon_bytime''
|-
| style="font-size:90%;" | STAT297 || ''item_damage_undead_bytime''
|-
| style="font-size:90%;" | STAT298 || ''item_tohit_demon_bytime''
|-
| style="font-size:90%;" | STAT299 || ''item_tohit_undead_bytime''
|-
| style="font-size:90%;" | STAT300 || ''item_crushingblow_bytime''
|-
| style="font-size:90%;" | STAT301 || ''item_openwounds_bytime''
|-
| style="font-size:90%;" | STAT302 || ''item_kick_damage_bytime''
|-
| style="font-size:90%;" | STAT303 || ''item_deadlystrike_bytime''
|-
| style="font-size:90%;" | STAT304 || ''item_find_gems_bytime''
|}
 
===== Multi-layered Stats =====
Some stats have an additional layer that needs to be specified in order for the stat to filter properly. To access these layers, the '''MULTI''' condition can be used - if follows this format:
 
MULTI '''''Stat_ID''''' , '''''Layer_ID''''' = '''''Value'''''
 
Any of the comparison operators ('''<''','''>''','''=''') may be used - below is a list of stats with extra layers:
 
{| class="wikitable"
! Name !! Stat ID !! Layer ID !! Value !! Example
|-
| Class Skill || 83 || [[Item_Filtering#Group_Skills|class_id]] || skill_bonus || <code>MULTI83,2=2</code> ([[Hellfire Torch]] with Necromancer skills)
|-
| OSkill || 97 || [[Item_Filtering#Individual_Skills|skill_id]] || skill_bonus || <code>MULTI97,74=20</code> ([[Corpsemourn]])
|-
| Single Skill || 107 || [[Item_Filtering#Individual_Skills|skill_id]] || skill_bonus || <code>MULTI107,20=3</code> ([[Thunderstroke]])
|-
| Elemental Skill || 126 || elemental_id (<span class="d2-red">1</span>, <span class="d2-yellow">2</span>, <span class="d2-orange">3</span>, <span class="d2-blue">4</span>, <span class="d2-green">5</span>) || skill_bonus || <code>MULTI126,4>0</code> ([[Snowclash]])
|-
| Aura when Equipped || 151 || [[Item_Filtering#Individual_Skills|skill_id]] || aura_level || <code>MULTI151,98>5</code> ([[Templar's Might]])
|-
| Reanimate as: || 155 || monster_id || % chance || <code>MULTI155,492=6</code> ([[Demon Machine]])
|-
| Class Skill Tab || 188 || [[Item_Filtering#Group_Skills|skilltab_id]] || skill_bonus || <code>MULTI188,25>4</code> ([[Cloudcrack]])
|-
| Cast on Attack || 195 || (skill_id * 64) + skill_level || % chance || <code>MULTI195,3028=15</code> ([[Todesfaelle Flamme]])
|-
| Cast when you Kill an Enemy || 196 || (skill_id * 64) + skill_level || % chance || <code>MULTI196,28569=50</code> ([[Executioner's Justice]])
|-
| Cast when you Die || 197 || (skill_id * 64) + skill_level || % chance || <code>MULTI197,3615=100</code> ([[Rainbow_Facet_(Cold)|Rainbow Facet]])
|-
| Cast on Striking || 198 || (skill_id * 64) + skill_level || % chance || <code>MULTI198,792=8</code> ([[Demon Machine]])
|-
| Cast on Level-up || 199 || (skill_id * 64) + skill_level || % chance || <code>MULTI199,2973=100</code> ([[Rainbow_Facet_(Cold)|Rainbow Facet]])
|-
| Cast on Casting || 200 || (skill_id * 64) + skill_level || % chance || <code>MULTI200,7196=20</code> ([[Akarat's Devotion]])
|-
| Cast when Struck || 201 || (skill_id * 64) + skill_level || % chance || <code>MULTI201,2821=10</code> ([[Coldkill]])
|-
| Charge Skill || 204 || (skill_id * 64) + skill_level || current_charges + (max_charges * 256) || <code>MULTI204,5455=7453</code> ([[Bloodmoon]])
|-
| Melee Splash || 359 || (skill_id * 64) + skill_level || % chance || <code>MULTI359,22913=100</code>
|-
| Melee Splash (map mod) || 427 || (skill_id * 64) + skill_level || % chance || <code>MULTI427,22913=100</code>
|-
| Skill on Death (map mod) || 453 || (skill_id * 64) + skill_level || % chance ||
|}
 
There are also alternative ways to replicate what '''MULTI''' does for specific stats:
 
{| class="wikitable"
! Stat !! MULTI !! Alternative !! Example
|-
| Class Skill || MULTI83 || CLSK || <code>CLSK2=2</code> ([[Hellfire Torch]] with Necromancer skills)
|-
| OSkill || MULTI97 || OS || <code>OS74=20</code> ([[Corpsemourn]])
|-
| Single Skill || MULTI107 || SK || <code>SK20=3</code> ([[Thunderstroke]])
|-
| Class Skill Tab || MULTI188 || TABSK || <code>TABSK25>4</code> ([[Cloudcrack]])
|}
 
Line 1,507 ⟶ 2,179:
| SK115 || Vigor
|-
| SK116 || ConversionHoly Sword
|-
| SK117 || Holy Shield
Line 1,535 ⟶ 2,207:
</li>
<li style="display:inline-table; margin-left:0px; margin-right:8px;">
 
====== Barbarian ======
{| class="wikitable"
Line 1,599 ⟶ 2,272:
|-
| SK155 || Battle Command
|-
| SK368 || Deep Wounds
|}
</li>
Line 1,753 ⟶ 2,428:
|-
| <span style="color:gray;">SK400</span> || <span style="color:gray;">Bone Nova</span>
|-
| <span style="color:gray;">SK442</span> || <span style="color:gray;">Amplify Damage (Proc)</span>
|-
| <span style="color:gray;">SK443</span> || <span style="color:gray;">Weaken (Proc)</span>
|-
| <span style="color:gray;">SK444</span> || <span style="color:gray;">Iron Maiden (Proc)</span>
|-
| <span style="color:gray;">SK445</span> || <span style="color:gray;">Life Tap (Proc)</span>
|-
| <span style="color:gray;">SK446</span> || <span style="color:gray;">Decrepify (Proc)</span>
|-
| <span style="color:gray;">SK447</span> || <span style="color:gray;">Lower Resist (Proc)</span>
|}
</li>
Line 1,758 ⟶ 2,445:
 
=== Value Condition IDs ===
Certain value conditions (MAPID, PREFIX, SUFFIX, AUTOMOD, STAT360) are slightly different than most others, referring to distinct zone/affix/corruption IDs instead of the value for attributes or other item stats with value ranges. Some other value conditions such as [[Item_Filtering#Info_Codes|GEMLEVEL, GEMTYPE, RUNE, or DIFF]] behave in a similar fashion, but their IDs aren't listed in this section due to having relatively few possible values.
 
==== MAPID IDs ====
MAPID refers to the [[Zones|zone]] (or [[Maps|map]]) the character is currently in. When using a portal, thenearby zoneitems IDare [[Bugs|won'tupdated updatebefore immediatelythe zone ID]] so any items within a screen length of the portal will be displayed as if the character was still in the previous zone. If the character walks a couple screen lengths away and returns, the ID will be updated and those items will be displayed as expected.
 
<code>ItemDisplay[(MAPID=1 OR MAPID=40 OR MAPID=75 OR MAPID=103 OR MAPID=109)]: %NAME%{%NAME%}</code> <span style="color:gray;">''shows all items from towns, including shopped items and any items in character inventories/stashes when the game begantown''</span>
 
<code>ItemDisplay[yps CLVL>89 !(MAPID>160 MAPID<164)]:</code> <span style="color:gray;">''hides antidotes at level 90+ unless they're found in Rathma zones''</span>
 
<code>ItemDisplay[key !MAPID=39]:</code> <span style="color:gray;">''hides keys unlessoutside they were found withinof the cow level''</span>
 
<code>ItemDisplay[ear (MAPID=157 OR MAPID=159)]:</code> <span style="color:gray;">''hides player ears found within the PvP duel arenas''</span>
 
<div><ul style="margin-left:0px;">
Line 2,149 ⟶ 2,836:
| 174 || Ruined Cistern
|-
| 175 || Ashen PlainPlains
|-
| 176 || Zhar's Sanctum
|-
| 177 || Hidden Waterways
|-
| 178 || Colonnades of Madness
|-
| 179 || Counselor's Causeway
|-
| 180 || <span class="omod">''Unused''</span>
|-
| 181 || Stygian Caverns
|-
| 182 || Stronghold of Acheron
|-
| 183 || Fallen Gardens
|-
| 184 || Diamond Gate
|}
</li>
<ul></div>
 
==== SUFFIX, PREFIX, and PREFIXAUTOMOD IDs ====
SUFFIX refers to the suffixes items have whereas PREFIX refers to the prefixes they have. They're similar to the [[Item_Filtering#Numbered_Attribute_Codes|numbered attribute codes]], but refer to affixes rather than affix attributes.
 
Unlike other value conditions, IDs for SUFFIX and PREFIX are not all mutually exclusive with eachother. Rules can have multiple SUFFIX or PREFIX conditions and still match with valid items.
 
<code>ItemDisplay[RARE SUFFIX=662 SUFFIX=158]: %NAME% %RED%!</code> <span style="color:gray;">''appends a red '''!''' to rare items that have a chance to cast Amplify Damage on hit and also have Ignore Target's Defense''</span>
 
AUTOMOD functions much the same as SUFFIX and PREFIX.
 
Two of the three basic comparison operators ('''<''' and '''>''') cannot be reliably used with SUFFIX or PREFIX, but the "BETWEEN" comparison operator ('''~''') works well with them - it was actually developed specifically for them. Since multiple PREFIX or SUFFIX conditions are not mutually exclusive with themselves, ID ranges would not be able to be referred to accurately with only '''<''' and '''>'''. The "BETWEEN" operator condenses the ranges to a single condition so that it can be evaluated as either true or fase, and is much more convenient than creating large groups of conditions using only '''=''' as comparison operators.
 
<code>ItemDisplay[cm3 PREFIX>1278 PREFIX<1354]: %NAME% +1</code> <span style="color:gray;">''no effect (don't use)''</span>
 
<code>ItemDisplay[cm3 (PREFIX=1279 OR PREFIX=1280 OR PREFIX=1281 OR PREFIX=1291 OR PREFIX=1292 OR PREFIX=1293 OR PREFIX=1303 OR PREFIX=1304 OR PREFIX=1305 OR PREFIX=1315 OR PREFIX=1316 OR PREFIX=1317 OR PREFIX=1327 OR PREFIX=1328 OR PREFIX=1329 OR PREFIX=1339 OR PREFIX=1340 OR PREFIX=1341 OR PREFIX=1351 OR PREFIX=1352 OR PREFIX=1353)]: %NAME% +1</code> <span style="color:gray;">''appends '''+1''' to any grand charm with a skill''</span>
 
<code>ItemDisplay[cm3 PREFIX~1279-1353]: %NAME% +1</code> <span style="color:gray;">''appends '''+1''' to any grand charm with a skill (same as above)''</span>
 
External Chart of IDs: [https://docs.google.com/spreadsheets/d/1J5_V3bIloualyzb5_lDFueSSCcQyyPEkKYvoQR9Ve9Y/ Affix IDs]
 
[https://docs.google.com/spreadsheets/d/1J5_V3bIloualyzb5_lDFueSSCcQyyPEkKYvoQR9Ve9Y/ Affix IDs]
 
==== STAT360 IDs ====
[[Item_Filtering#General|STAT360]] refers to which corruption items have.
 
<code>ItemDisplay[STAT360>0]: %REDNAME% %NAMERED%*</code> <span style="color:gray;">''changesappends corrupteda itemsred '''*''' to becorrupted reditems''</span>
 
<div><ul style="margin-left:0px;">
Line 2,181 ⟶ 2,896:
| 2 || Enhanced Damage
|-
| 3 || Attack Rating <span class="omod">(Weapons[T1] & non-weapons)</span>
|-
| 4 || Life after Hit
Line 2,197 ⟶ 2,912:
| 10 || Max Mana
|-
| 11 || <span class="omod">Faster Hit Recovery (unused)</span>
|-
| 12 || Ps Enemy Fire Res Reduc
Line 2,207 ⟶ 2,922:
| 15 || Ps Enemy Psn Res Reduc
|-
| 16 || Faster Cast <span class="omod">(Weapons)</span>
|-
| 17 || Life Leech, Enhanced Damage
|-
| 18 || Attack Rating <span class="omod">(Weapons[T2])</span>
| 18 || Thorns per Level
|-
| 19 || Deadly Strike
Line 2,235 ⟶ 2,950:
| 26 || Attack Rating, Enhanced Damage
|-
| 27 || All Skills <span class="omod">(Weapons)</span>
|-
| 28 || Fire Mastery, Faster Cast
Line 2,265 ⟶ 2,980:
| 41 || Thorns per Level
|-
| 42 || Faster Cast <span class="omod">(Non-weapons)</span>
|-
| 43 || Enhanced Life
Line 2,277 ⟶ 2,992:
| 47 || Magic Dmg Reduction
|-
| 48 || Indestructible, Enhanced Defense
|-
| 49 || Curse Resistance <span class="omod">(Chest, Helm, Quiver, Shield)</span>
| 49 || Indestructible, Enhanced Defense
|-
| 50 || All Skills <span class="omod">(Non-weapons)</span>
|}
</li>
Line 2,311 ⟶ 3,026:
| 61 || Max Hp
|-
| 62 || Curse Resistance <span class="omod">(Boots, Belt, Ring)</span>
|-
| 63 || Piercing Attack
Line 2,334 ⟶ 3,049:
|-
| 73 || To Block, Faster Block
|-
| 74 || Minimum Damage
|-
| 75 || Maximum Damage
|}
</li>
<li style="display:inline-table; margin-left:0px; margin-right:8px;">
{| class="wikitable"
|-
! ID !! Corruption
|-
| 76 || Ignore Targets Defense
|-
| 77 || Attack Rating vs Undead, Damage to Undead
|-
| 78 || Deadly Strike (mon), Density, Experience
|-
| 79 || Cannot be Frozen (mon), Increased Maximum Life (mon), Experience, Density
|-
| 80 || Faster Attack Rate, Faster Cast Rate, Density, Rarity
|-
| 81 || Physical Resist, Density, Rarity
|-
| 82 || Faster Attack Rate, Faster Cast Rate, Velocity, Density, Rarity
|-
| 83 || Magic Find, Gold Find, Rarity
|-
| 84 || Density
|-
| 85 || Area Level, Density
|-
| 86 || Rarity
|-
| 87 || All Maximum Resistances, Density, Rarity
|-
| 88 || Extra Jewelry
|-
| 89 || Experience Gained
|-
| 90 || Vitality, Energy
|}
</li>
Line 2,352 ⟶ 3,107:
Zone IDs can be determined from PD2's [https://github.com/BetweenWalls/PD2-Singleplayer/blob/main/Diablo%20II/ProjectD2/data/global/excel/modpacks/official/Levels.txt Levels.txt] file.
 
If the files in these locations are not updated by others, you can extract them yourself from ''patch_d2pd2data.mpq'' (found in ''Diablo II/ProjectD2'') using an [http://www.zezula.net/en/mpq/download.html MPQ editor and D2 listfile] - the text files will be in ''/data/global/excel''.
97

edits