00: AC NP1: amount NP2: location 00: effective AC, additive modifier, AC in range [-20...20] 01: AC crush mod, ... 02: AC missile mod, ... 04: AC pierce mod, ... 08: AC slash mod, ... 10: effective AC, min modifier (i.e. AC=min(AC,NP1)), AC in range [-20...20] 01: ATTACKNO (1...5 represent 1 ... 5 attacks/round, 6 ... 10 represent 1.5 ... 5.5 attacks/round) NP1: amount NP2: type 00: (integer) additive modifier, result in range [1...5] or [1.5...5.5] 01: set num attacks, in range [0...10] 02: percent modifier 02: AWAKEN (duration flags ignored -- i.e. no permanent) 03: BERSERK 04: CALM (duration flags ignored -- i.e. no permanent) 05: CHARM NP1: general to match (0 matches anything) NP2: type 00: CHARMED: set EA to 0x07 or 0xfe, as appropriate (for instance, charm animal) 01: CHARMED: set EA to 0x07 or 0xfe, as appropriate (for instance, charm person) 02: DIRE CHARMED (set EA to EA_CONTROLLED, if by party) (for instance, "ring of animal friendship") 03: DOMINATION/DIRE CHARM (set EA to EA_CONTROLLED, if by party) 04: TURNED (set EA to EA_CONTROLLED, if by party) NP3: desired ea NP4: ??? 06: CHR NP1: amount NP2: type 00: (integer) additive modifier, result in range [1...25] 01: set stat, in range [1...25] 02: percent modifier 07: COLORCHANGE NP1: new color NP2: color slot 08: COLORGLOW_SOLID NP1: color NP2: location 09: COLORGLOW_PULSE NP1: color NP2: (rate[#16] | location[#16]) 0a: CON NP1: amount NP2: type 00: (integer) additive modifier, result in range [1...25] 01: set stat, in range [1...25] 02: percent modifier 0b: CUREPOISON 0c: DAMAGE NP1: amount NP2: (damagetype [#16] | mode [#16] ) damagetype: 0x0000: crushing 0x0001: acid 0x0002: cold 0x0004: electricity 0x0008: fire 0x0010: piercing 0x0020: poison 0x0040: magic 0x0080: missile 0x0100: slashing 0x0200: magic fire 0x0400: magic cold 0x0800: stunning mode: 0x0000: subtract amount from HP 0x0001: set HP to amount (or max hp, whichever is less) 0x0002: set HP to percent of cur 0x0003: 0x0004: subtract percent of max HP from cur 0d: DEATH NP1: NP2: type 0x0000: acid 0x0001: flaming? 0x0002: exploding? 0x0004 0x0008: exploding? 0x0010: stone 0x0020: frozen 0x0040: shatter? 0x0080: shatter? 0x0100: flaming? 0e: DEFROST (undo "frozen death" status) 0f: DEX NP1: amount NP2: type 00: (integer) additive modifier, result in range [1...25] 01: set stat, in range [1...25] 02: percent modifier 10: HASTE 11: HEAL NP1: base amount NP2: (type [#16] | mode [#16]) type: 0x0000: normal 0x0001: resurrect + heal mode: 0: add to cur hp 1: set cur hp 2: add percent of max hp to cur hp NP3: num dice NP4: num die sides 12: HITPOINTS NP1: base amount NP2: type type: 0x0000: additive bonus to max hp, cur hp 0x0001: set max hp 0x0002: percent bonus to max hp, cur hp 0x0003: additive bonus to max hp only 0x0004: set max hp 0x0005: percent bonus to max hp NP3: num dice NP4: num die sides 13: INT NP1: amount NP2: type 00: (integer) additive modifier, result in range [1...25] 01: set stat, in range [1...25] 02: percent modifier 14: INVISIBILITY NP1: type 0x0000: invisibility 0x0001: improved invisibility 15: LORE NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 16: LUCK NP1: amount NP2: type 00: (integer) additive modifier, result in range [-20...20] 01: set stat, in range [-20...20] 02: percent modifier 17: MORALE (hardcoded to set morale to 10) 18: PANIC 19: POISON NP1: param NP2: (UNUSED [#16] | type [#16]) type: 0x0000: 1 damage per round until NP1 damage done or time expired 0x0001: 1 damage per round until NP1 % of cur hp lost, or time expired 0x0002: NP1 damage per round until time expired 0x0003: 1 damage every NP1th round 1a: REMOVECURSE 1b: RESISTACID NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 1c: RESISTCOLD NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 1d: RESISTELECTRICITY NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 1e: RESISTFIRE NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 1f: RESISTMAGIC (note: this should more appropriately be "resist magic damage") NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 20: RESURRECT 21: SAVEVSDEATH NP1: amount NP2: type 00: (integer) additive modifier, result in range [-20...20] 01: set stat, in range [-20...20] 02: percent modifier 22: SAVEVSWANDS NP1: amount NP2: type 00: (integer) additive modifier, result in range [-20...20] 01: set stat, in range [-20...20] 02: percent modifier 23: SAVEVSPOLY NP1: amount NP2: type 00: (integer) additive modifier, result in range [-20...20] 01: set stat, in range [-20...20] 02: percent modifier 24: SAVEVSBREATH NP1: amount NP2: type 00: (integer) additive modifier, result in range [-20...20] 01: set stat, in range [-20...20] 02: percent modifier 25: SAVEVSSPELL NP1: amount NP2: type 00: (integer) additive modifier, result in range [-20...20] 01: set stat, in range [-20...20] 02: percent modifier 26: SILENCE 27: SLEEP 28: SLOW 29: SPARKLE NP1 color 0x0001: Black 0x0002: Blue 0x0003: Chromatic 0x0004: Gold 0x0005: Green 0x0006: Purple 0x0007: Red 0x0008: White 0x0009: Ice 0x000a: Stone 0x000b: Magenta 0x000c: Orange NP2 (UNUSED [#16] | type [#16]) type 1 (brief sparkle -- 25 time units long) 3 (??? -- uses time field to determine duration) 2a: SPELLMEMORIZATIONMAGE if (NP2 == 0) NP1: level double number of spells for levels up to NP1 else NP1: amount NP2: level bitmask so, if NP2 == 0x0003, and NP1 == 2, gain 2 more memory slots for 1st and 2nd levels 2b: STONETOFLESH 2c: STR NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...25] 01: set stat, in range [0...25] 02: percent modifier 2d: STUN 2e: UNSTUN (remove stun AND hold-creature) 2f: VISIBLE 30: VOCALIZE 31: WIS NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...25] 01: set stat, in range [0...25] 02: percent modifier 32: SINGLECOLORPULSEALL NP1: color NP2: (??? [#16] | ??? [#16]) 33: COLORTINT_SOLID NP1: color NP2: location 34: COLORLIGHT_SOLID NP1: color NP2: location 35: ANIMATION_CHANGE NP1: new animation id 36: THAC0 NP1: amount NP2: type 00: (integer) additive modifier, result in range [1...25] 01: set stat, in range [1...25] 02: percent modifier 37: SLAY NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param 38: ALIGNMENTREVERSAL 39: ALIGNMENTCHANGE NP2: new alignment 3a: DISPELEFFECTS 3b: SKILLSTEALTH NP1: amount NP2: type 00: (integer) additive modifier 01: set stat 02: percent modifier 3c: CASTINGFAILURE NP1: amount NP2: type (0=mage, 1=priest) 3e: SPELLMEMORIZATIONCLERIC if (NP2 == 0) NP1: level double number of spells for levels up to NP1 else NP1: amount NP2: level bitmask so, if NP2 == 0x0003, and NP1 == 2, gain 2 more memory slots for 1st and 2nd levels 3f: INFRAVISION 40: INFRAVISIONOFF 41: BLUR 42: TRANSLUCENT NP1: transparency amount 43: SUMMON REF: monster CRE resref NP2: mode modes: 0x0000: friendly, summoned near "target point" 0x0001: friendly, summoned near "target point" 0x0002: summoned near "target point" 0x0003: friendly, summoned near effect target creature 0x0004: summoned near effect target creature 44: UNSUMMON 45: NONDETECTION 46: ENDNONDETECTION 47: SEXCHANGE NP1: param (gender, if NP2==1) NP2: mode 0x0000: toggle 0x0001: set to NP1 48: AICHANGE NP1: new value NP2: type 0x0000: change ea 0x0001: change general 0x0002: change race 0x0003: change class 0x0004: change specific 0x0005: change gender 0x0006: change alignment 49: DAMAGEMOD NP1: new value (in range [-20...20]) 4a: BLINDNESS 4b: CUREBLINDNESS 4c: FEEBLEMINDEDNESS 4d: CUREFEEBLEMINDEDNESS 4e: DISEASE NP1: param NP2: (UNUSED [#16] | type [#16]) type: 0x0000: 1 damage per round until NP1 damage done or time expired 0x0001: 1 damage per round until NP1 % of cur hp lost, or time expired 0x0002: NP1 damage per round until time expired 0x0003: 1 damage every NP1th round 0x0004: STR drain (by NP1 points) 0x0005: DEX drain (by NP1 points) 0x0006: CON drain (by NP1 points) 0x0007: INT drain (by NP1 points) 0x0008: WIS drain (by NP1 points) 0x0009: CHR drain (by NP1 points) 4f: CUREDISEASE 50: DEAFNESS 51: CUREDEAFNESS 52: SETAISCRIPT REF: script resref NP2: script level (default, general, race, class, etc.) 53: IMMUNITYTOPROJECTILE NP2: projectile type code 54: RESISTMAGICFIRE NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 55: RESISTMAGICCOLD NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 56: RESISTSLASHING NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 57: RESISTCRUSHING NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 58: RESISTPIERCING NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 59: RESISTMISSILE NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 5a: SKILLLOCKPICKING NP1: amount NP2: type 00: (integer) additive modifier (stat must be >= 0) 01: set stat (stat must be >= 0) 02: percent modifier 5b: SKILLTRAPS NP1: amount NP2: type 00: (integer) additive modifier (stat must be >= 0) 01: set stat (stat must be >= 0) 02: percent modifier 5c: SKILLPICKPOCKETS NP1: amount NP2: type 00: (integer) additive modifier (stat must be >= 0) 01: set stat (stat must be >= 0) 02: percent modifier 5d: FATIGUE NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 5e: INTOXIFICATION NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 5f: SKILLTRACKING NP1: amount NP2: type 00: (integer) additive modifier (stat must be >= 0) 01: set stat (stat must be >= 0) 02: percent modifier 60: LEVEL (level in primary class) NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 61: STREXTRA NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...100] 01: set stat, in range [0...100] 02: percent modifier 62: REGENERATION NP1: param NP2: (UNUSED [#16] | type [#16]) 0x0000: heal 1 damage per round until NP1 damage healed or time expired 0x0001: heal 1 damage per round until NP1 % of cur hp regained, or time expired 0x0002: heal NP1 damage per round until time expired 0x0003: heal 1 damage every NP1th round 63: DURATIONMOD NP1: amount NP2: type (0=mage, 1=priest) 64: PROTECTIONFROMCREATURE NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param 65: IMMUNITYTOEFFECT NP2: type 66: IMMUNITYTOSPELLLEVEL NP1: level 67: NAME NP1: strref 68: XP NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...] 01: set stat, in range [0...] 02: percent modifier 69: GOLD NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...] 01: set stat, in range [0...] 02: percent modifier 6a: MORALEBREAK NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...] 01: set stat, in range [0...] 02: percent modifier 6b: PORTRAIT REF: portrait BMP resref NP2: type 0: set small portrait 1: set large portrait 6c: REPUTATION NP1: amount NP2: type 00: (integer) additive modifier, result in range [0...] 01: set stat, in range [0...] 02: percent modifier 6d: HOLDCREATURE NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param 6e: RETREAT_FROM (not implemented?) 6f: CREATE_WEAPON REF: weapon resref NP1: num usages (for all 3 abilities!!!) 70: DESTROY_WEAPON REF: weapon resref 71: EQUIP_WEAPON (not implemented?) 72: DITHER (not implemented?) 73: DETECT_ALIGNMENT NP2: type 0x0000: detect evil 0x0001: detect neutral 0x0002: detect good 74: DISPEL_INVISIBLE (same as VISIBLE ?) 75: SHOW_AREA 76: SHOW_CREATURES (not implemented?) 77: MIRROR_IMAGE 78: IMMUNITY_TO_WEAPON NP2: type 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000a 0x000b 79: VISUAL_ANIMATION_EFFECT (not implemented?) 7a: CREATE_ITEM REF: item resref 7b: DESTROY_ITEM REF: item resref 7c: TELEPORT (teleports to target point) 7d: KNOCK 7e: MOVEMENT_RATE NP1: new value for movement rate 7f: RANDOM_SUMMON (summons to target point) NP1: total XP of monsters to summon NP2: type of summon type: 0x0000: friendly Monsters 1 0x0001: friendly Monsters 2 0x0002: friendly Monsters 3 0x0003: friendly Animals 1 0x0004: friendly Animals 2 0x0005: hostile Monsters 1 0x0006: hostile Monsters 2 0x0007: hostile Monsters 3 0x0008: hostile Animals 1 0x0009: hostile Animals 1 80: CONFUSION 81: NON_CUMULATIVE_AID NP1: num d8 to add to hp; also subtracted from saving throws NP2: plus to add to d8s for added hp 82: NON_CUMULATIVE_BLESS NP1: amount of blessing (to Thac0, morale, damage) 83: NON_CUMULATIVE_CHANT NP1: amount of chant (added to luck) 84: NON_CUMULATIVE_DRAW_UPON_HOLY_MIGHT NP1: amount 85: NON_CUMULATIVE_LUCK NP1: amount added to luck 86: PETRIFICATION 87: POLYMORPH REF: ref of CRE to polymorph into 88: FORCE_VISIBLE (make visible, even if creature has "NONDETECTION") 89: NON_CUMULATIVE_CHANTBAD NP1: amount of chant (subtracted from luck) 8a: SETSEQUENCE NP2: sequence number 8b: DISPLAYSTRING NP1: strref of string 8c: CASTINGGLOW NP2: school 0x0009: necromancy 0x000a: alteration 0x000b: enchantment 0x000c: abjuration 0x000d: illusion 0x000e: conjuration 0x000f: invocation 0x0010: divination 8d: VISUALSPELLHIT NP2: effect type 0000-001e, 0020-0026 8e: PORTRAITICON NP2: icon number 8f: REPLACE_ITEM REF: item resref NP1: inventory slot 90: DISABLE_BUTTON NP2: type 0: stealth 1: thieving skills 2: cast spell 3: quick spell #1 4: quick spell #2 5: quick spell #3 91: DISABLE_SPELLTYPE NP2: type 0: wizard 1: priest 2: innate 92: CAST_SPELL REF: spell resref? NP1: spell number? 93: LEARN_SPELL REF: spell resref 94: CAST_SPELL_POINT REF: spell resref? NP1: spell number? 95: IDENTIFY 96: DETECTTRAPS 97: REPLACESELF REF: cre resref NP2: 0: just replace target 1: kill and replace target 98: PLAYMOVIE REF: mve resref (res type 2) 99: SANCTUARY 9a: ENTANGLE (removes grease, applies entangle) 9b: MINORGLOBE 9c: SPELLSHIELD 9d: WEB 9e: GREASE (removes entangle, applies grease) 9f: MIRROR_IMAGES (when 77 is applied to a character, it turns into this effect, which remains around until the mirror images are gone) NP1: num mirror images a0: CANCELSANCTUARY a1: CANCELPANIC a2: CANCELHOLD a3: CANCELMOVEMENTRATE a4: CANCELINTOXICATION a5: CASTERHOLD (caster cannot move temporarily) a6: MAGICRESISTANCE (unlike RESISTMAGIC, this is a resistance to all magic -- not just magic damage) NP1: amount NP2: type 0x0000: additive bonus to magic resistance 0x0001: set magic resistance a7: MISSILETHAC0 NP1: new value for MISSILE THAC0 bonus (for instance, bracers of archery, set this) a8: REMOVECREATURE a9: IMMUNITYTOPORTRAITICON NP2: icon number aa: visual effect of some sort (*** UNKNOWN ***) NP2: type of effect 0x0001: 0x0002: 0x0003: 0x0004: 0x0005: 0x0006: 0x0007: 0x0008: 0x0009: ab: GIVE_INNATE_ABILITY REF: spell resref ac: REMOVE_INNATE_ABILITY REF: spell resref ad: RESISTPOISONDAMAGE NP1: new value for resist poison damage ae: PLAYSOUND REF: sound file resref af: HOLD_CREATURE_TYPE NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param b0: EFFECTV2_CREATURE_TYPE (apply a V2 effect to creature type) REF: .EFF resref NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param b2: TOHITBONUS_CREATURE_TYPE NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param NP5: amount of to-hit bonus b4: ITEMPOSESSIONAVERSION NP1: strref of message to display when char is given an item of this type REF: name of item b5: ITEMCATEGORYPOSESSIONAVERSION NP1: strref of message to display when char is given an item of this type NP2: category of item b9: HOLD_CREATURE_TYPE (identical to af; only difference is that "CANCELHOLD" does not dispel this) NP1: param NP2: type 02: ea must match param 03: general must match param 04: race must match param 05: class must match param 06: specific must match param 07: gender must match param 08: alignment must match param ba: ADDTOAREA REF: area PT: location NP1: delay NP2: orientation bb: SETLOCALVAR REF: variable name NP1: value NP2: ??? other fields... bc: AURA_CLEANSING NP2: new value (higher = faster?) bd: CASTING_SPEED NP1: new value be: ATTACK_SPEED NP1: new value bf: (unknown) NP1: value NP2: 0: set ??? (field_c2) 1: set ??? (field_c4)