THANKS TO:
Nefarius for his monumod descriptions (https://d2mods.info/forum/viewtopic.php?t=42436)
Nefarius for his AI Compendium (https://d2mods.info/forum/viewtopic.php?t=36230), which describes wraith1, quillrat1, frogdemon1, necromage, evilhole1
The Amazon Basin for its various amassed descriptions.
Nagahaku for describing baseids corruptrogue3, maggotqueen1, hellbovine, fetish11, wraith1, plaguepoppy, cycleoflife, vinecreature, overseer1, both sandleaper1 behaviors; tokens pw, BH, GU; monumods shatter_on_death, light, poisonhit, additional description of rndname, compelling orb crash, partydead being given by Bone Wall and Bone Prison
[MONUMODS.TXT] Describes the various hardcoded unique monter mod rows.
[MONSTATS.TXT BASEID] A list specially hardcoded monstats.txt baseids, that provide inheritable behaviors.
[MONSTATS.TXT ROWS] A list of special behaviors that are hardcoded to specific monstats.txt rows
[SUPERUNIQUES.TXT] A list of hardcoded IDs and rows of superuniques.txt. Oddly, in some cases, the value of the ID column is used rather than row placement or name.
[TOKENS] A list of hardcoded tokens.
[PETTYPES.TXT]
[SHRINES.TXT] Describes a few hardcoded shrine rows which produce missiles, thereby giving some control.
[HIJACKING]
----------
[MONUMODS.TXT]
[none] ID=0
{what units gain this monumod?}
[rndname] ID=1
·Automatically given when a monster spawns through levels.txt umon#
·Can be used to give pets random unique names
·Will not be transferred to a unique's minions, even if xfer=1 and the minions are themselves unique monsters
[hpmultiply] ID=2
{what units gain this monumod?}
[light] ID=3
Anything with a monumod also gains this monumod, including pets with a sumumod.
Adds 7 light radius to the monster.
[leveladd] ID=4
{what units gain this monumod?}
[strong][Extra Strong] ID=5
https://www.theamazonbasin.com/wiki/ind ... tra_Strong
Monster gains string.tbl:3205 beneath their NameStr.
[fast][Extra Fast] ID=6
https://www.theamazonbasin.com/wiki/ind ... Extra_Fast
Monster gains string.tbl:3206 beneath their NameStr.
[curse][Cursed] ID=7
https://www.theamazonbasin.com/wiki/ind ... tle=Cursed
Monster gains string.tbl:3207 beneath their NameStr.
[resist][Magic Resistant] ID=8
{}
Monster gains string.tbl:3208 beneath their NameStr.
[fire][Fire Enchanted] ID=9
Releases srvside & cltside missile ID=117 (monstercorpseexplode).
Releases ~five cltside missile ID=82 (fireexplosion).
Makes the corpse explosion/gibbing sound.
Also adds fire damage, scaling with the +% minion/champion/unique elem min/max dmg% rows.
Monster gains string.tbl:3209 beneath their NameStr.
[poisondead] ID=10, baseid=mummy1
Makes the monster produce a poison cloud on death. The missile is ID=115 (corpsepoisoncloud).
[durieldead] ID=11
Produces some weird blood graphics with white maggots in them, doesn't seem to use missiles at all.
After a delay, spawns a few hcIdx=227 (maggot) around the corpse, seems to spawn more as time goes on.
The maggot can be replaced with other monsters, but they are cltside only critters.
[bloodraven] ID=12, baseid=bloodraven
Changes the monster's name to Blood Raven, does not seem to xfer to minions.
[rage] ID=13
{???}
{what units gain this monumod?}
[spcdamage] ID=14
{???}
{what units gain this monumod?}
[partydead] ID=15
•If one monster in the party dies with this monumod, then the rest of the party also dies
•Bone Wall (srvdofunc=60) and Bone Prison (srvdofunc=62) apply this monumod to summons, with the creator sharing partydead with the main segment, and the side segments sharing partydead with the main segment (if main segment dies, the creator dies; if the side segments die, the main segment dies, but this does not kill the creator)
[champion] ID=16
Non-unique monsters gain string.tbl:3220 before their NameStr, as so: "(3220=Champion) (NameStr)"
[ghostly] ID=36
Non-unique monsters gain patchstring.tbl:1084 before their NameStr, as so: "(1084=Ghostly) (Namestr)"
[fanatic] ID=37
Non-unique monsters gain patchstring.tbl:1085 before their NameStr, as so: "(1085=Fanatic) (Namestr)"
[possessed] ID=38
Non-unique monsters gain patchstring.tbl:1086 before their NameStr, as so: "(1086=Possessed) (Namestr)"
[berserk] ID=39
Non-unique monsters gain patchstring.tbl:1087 before their NameStr, as so: "(1087=Berserker) (Namestr)"
Also see: https://www.theamazonbasin.com/wiki/index.php/Champion
[lightning][Lightning Enchanted] ID=17
Makes the monster release bolts when hit (but not on death): this is how scarabs release bolts. Produces 8 srvside missiles of ID=195 (lightunique) each time. Also applies a charged bolt-like srvdofunc which makes the missiles zig-zag. Also adds lightning damage, scaling with the +% minion/champion/unique elem min/max dmg% rows.
Monster gains string.tbl:3211 beneath their NameStr.
[cold][Cold Enchanted] ID=18
On death, monster releases the missile with ID=194 (coldunique). This missile has a nova-like srvdofunc applied to it, which makes it release a spread of 64 missiles. Also adds cold damage, scaling with the +% minion/champion/unique elem min/max dmg% rows.
Monster gains string.tbl:3210 beneath their NameStr.
[hireable] ID=19
{???}
{what units gain this monumod? presumably hirelings}
[scarab] ID=20, baseid=scarab1
·Activates each time a monster is put into animmode GH (hit recovery) or if the monster dies.
·Activation releases 8 srvside & cltside missiles of ID=225 (buglightning).
·Missiles are released in a pattern similar to (if not identical to) pclthitfunc=46,psrvhitfunc=38 (catapultchargedball).
[killself] ID=21
{???}
{what units gain this monumod?}
[questcomplete] ID=22
{???}
{what units gain this monumod?}
[thief] ID=24
See: https://www.purediablo.com/forums/threa ... -1-14d.29/
Monster gains string.tbl:3217 beneath their NameStr.
[manahit][Mana Burn] ID=25
{}
Monster gains string.tbl:3212 beneath their NameStr.
[teleport][Teleportation] ID=26
{}
Monster gains string.tbl:3214 beneath their NameStr.
[spectralhit][Spectral Hit] ID=27
{}
Monster gains string.tbl:3213 beneath their NameStr.
[stoneskin][Stone Skin] ID=28
{}
Monster gains string.tbl:3215 beneath their NameStr.
[multishot][Multiple Shots] ID=29
{}
Monster gains string.tbl:3216 beneath their NameStr.
[aura][Aura Enchanted] ID=30
{}
Monster gains string.tbl:3218 beneath their NameStr.
[poisonhit] ID=23, baseid=maggotqueen1
Adds poison damage, scaling with the +% minion/champion/unique elem min/max dmg% rows.
Also makes the monster periodically release 8 missiles around itself. The Maggot Queen and Achmel the Cursed use this.
The monster also produces 8 missiles on death, which spread out from its center.
The missile it produces is ID=321 (queenpoisoncloud); this missile is srvside only; the missile seems to use the same pathing and spawn location as the Scarab/Lightning monumods.
Gives 75% poison resistance.
[goboom] ID=31, baseid=firegolem
Explodes on death, dealing 100 physical and 100 fire damage.
Releases srvside missile ID=117 (monstercorpseexplode).
Releases ~five cltside missile ID=82 (fireexplosion).
Makes the corpse explosion/gibbing sound.
Unfortunately, Fire Enchanted uses the same missile ID, so this one can't be hijacked without messing up a functional monumod.
[firespike_explode] ID=32
Releases a cltside missile with a shortened Range (strangely, when set to Frozen Orb it spawns so many that the game freezes). The missile appears after 4 frames {at least on traps}. Uses ID=42 (explodingarrowexp).
[suicideminion_explode] ID=33, baseid=suicideminion1
Makes the monster explode like Suicide Minions on death.
Releases two srvside missiles with ID=428 (suicideiceexplode).
Also releases cltside missile ID=426 (suicidecorpseexplode) and cltside missile ID=428 (suicideiceexplode).
This is useful, since we can control the missiles, we can hijack this behavior with a missile of our own choice.
[ai_after_death] ID=34, baseid=reanimatedhorde1
Required for monsters to continue acting after death (Reanimated Hordes use this to self-resurrect).
[shatter_on_death] ID=35, baseid=frozenhorror1
Makes the monster cold-shatter on death. Does not seem to use the shatter state.
On death, releases different cltside missiles depending on monstats2.txt Height column:
height=1 creates ID=272 (icebreaksmall) height=2 creates ID=273 (icebreakmedium) height=3 creates ID=274 (icebreaklarge) height=4 creates ID=275 (icebreaksmoke)Note that these missiles have pclthitfunc=31, which works as follows:
Code: Select all
HitIceBreak - Create a missile with a forced animation rate value of 1, depending on the missile class used.
· If “Missile” equals “icebreaksmall” then create “icebreaksmallmelt” (ID=344)
· If “Missile” equals “icebreakmedium” then create “icebreaklargemelt” (ID=345)
· If “Missile” equals “icebreaklarge” then create “icebreaklargemelt” (ID=345)
· If “Missile” equals “catapult cold explosion” then create “icebreaklargemelt” (ID=345)
[worms_on_death] ID=40
Makes the boss spew out impregnate death effects constantly, as well as worms after death. Their corpse continues to spam the cltside death effects even after they die.
Releases cltside missiles of ID=115 (corpseexplosion) and ID=545 (pain worm appear).
{what units gain this monumod?}
[always_run_AI] ID=41
{???}
{what units gain this monumod? the countess does always run, but I'm not sure if she has this}
[lightningdeath] ID=42
On death, monster releases the missile with ID=90 (Nova). This missile has a nova-like function applied to it, which makes it release a spread of 64 missiles. It releases one srvside nova and three cltside novas. The first nova is released at frame 5 {at least on shadows}, the second at frame 6, and the last at frame 7. This monumod is very useful, you can clone Nova and attach the cloned Nova to the skill Nova, and then use whatever missile type you want and attach it to this monumod, which lets you create a new monumod of your choice. The only monsters that use this monumod are the Assassin Shadows, but you can just remove that or create a non-monumod simulation of it and apply it via ctc-on-death.
---
[MONSTATS.TXT BASEID]
[fallen1] ID=19
Regardless of mingrp-maxgrp settings, will only spawn 1, even if =0, although partymin-partymax works as usual.
{maybe has something to do with boss/rally mechanics of fallens, although I'm not noticing anything different}
[wraith1] ID=38
Can fly over things. Seems to have flying toggled on, even if flying=0.
[quillrat1] ID=63
allows quillrat AI to shoot additional missiles based on par3
[sandleaper1] ID=78
Cannot be revived, even if monstats.txt switchai=1 and monstats2.txt revive=1.
Gets knocked back when hit.
[scarab1] ID=91
applies scarab monumod
[mummy1] ID=96
applies poisondead monumod
[vulture1] ID=110
Becomes unselectable and gains increased Z-position when flying with AI=vulture.
Displays overlays.txt ID=146 (vulturedemonfeathers) on death.
[willowisp1] ID=118
Displays overlays.txt ID=184 (willowispdeath) on death.
[thornhulk1] ID=127
Displays overlays.txt ID=79 (thornedhulk_death) on death.
[bonefetish1] ID=212
Displays overlays.txt ID=188 (fetishdeath1) and ID=189 (fetishdeath2) on death.
[cantor1] ID=238
Displays overlays.txt ID=78 (zakarumpriest_death) on death.
[frogdemon1] ID=247
allows frogdemon AI to spawn on a different layer if SplEndGeneric and SplClientEnd are set up properly
Displays overlays.txt ID=82 (frogdemon_death) on death.
[tentacle1] ID=258
[tentaclehead1] ID=261
overlay ID=157 (tentacleheadbloodripple) appears on death; increases the meleerange of anyone that attempts to attack it {how does the connected death work? want to find a baseid that applies group death}
[maggotqueen1] ID=284
·Applies poisonhit monumod
·If monster is also a superunique, monster gains +75% poison resistance, which is in addition to the +75% poison resistance from poisonhit, and so gains +150% poison resistance.
[firegolem] ID=292
applies goboom monumod
[fingermage1] ID=302
{Attacks, maybe just A1, maybe other anims too} release target overlay fingermageflames (ID=169)
[doomknight1] ID=310
[doomknight2] ID=311
[doomknight3] ID=312
Displays overlays.txt ID=187 (undeadhorrordeath) on death.
[evilhole1] ID=321
unselectable
[dopplezon] ID=356
on death, produces cltside missile ID=328 (dopplezonexplode); works best if the missile is stationary
[megademon1] ID=360
[venomlord] ID=558
on death, produces {firey missile or overlay, ID unknown}
[necromage] ID=364
makes it so pets using NecroPet AI act as ranged attackers
[druidhawk] ID=419
[reanimatedhorde1] ID=436Nagahaku wrote: ↑Tue Aug 22, 2023 6:41 amI found another baseid has the same behavior: 'druidhawk', used by raven in vanilla.
also, it's better when used by pets with shadowmaster ai, if you want your pet walk through bars.
wraith1 base id shadowmaster ai pets won't play RN mode anim although you must give one to them or the anim would be lost, instead, they'll use WL mode with a faster animrate that looked like twitching, but druidhawk baseid doesn't have this problem.
applies ai_after_death monumod
[suicideminion1] ID=461
applies suicideminion_explode monumod
{[succubus1] ID=469, not tested}
[succubuswitch1] ID=474
[frozenhorror1] ID=501Nagahaku wrote: ↑Tue Aug 22, 2023 6:41 amand a simmilar hardcoded baseid brings glitches with shadowmaster ai pets is 'succubuswitch1', it will freeze when the pet goes into RN mode, won't clap her wings, looks like a sliding flight move. when giving it a new baseid, the anim turns normal, but would lose the specific death anim. I think maybe 'succubus1' baseid would be same as it since they're quite simmilar.
applies shatter_on_death monumod
[putriddefiler1] ID=546
PutridDefiler AI will not attempt to impregnate creatures with this baseid.
[painworm1] ID=551
PutridDefiler AI will not attempt to impregnate creatures with this baseid.
[andariel] ID=156
Turns the monster into a unique (random name and makes them pull from treasureclass3).
Drops two chipped gems and one normal gem and triggers the quest death.
[duriel] ID=211
Applies durieldead monumod.
Turns the monster into a unique and triggers the quest death.
{does it produce any missiles independent of durieldead monumod?}
[mephisto] ID=242
turns the monster into a unique and makes them drop Mephisto's Soulstone and triggers the quest death
{based off a mod i was playing, might transfer boss monumods to minions, or maybe minion versions of him are also uniques with their own random monumods. need to test}
[bloodraven] ID=267
applies bloodraven monumod, turns the monster into a unique and triggers the quest death
[diablo] ID=243
turns the monster into a unique and triggers the quest death
[baalcrab] ID=544
turns the monster into a unique and triggers the quest death
[hephasto] ID=409
turns the monster into a unique and triggers the quest death
[nihlathakboss] ID=526
turns the monster into a unique and triggers the quest death
[smith] ID=402
turns the monster into a unique
[izual] ID=256
turns the monster into a unique
[ancientbarb1] ID=540
turns the monster into a unique
[summoner] ID=250
turns the name golden
[radament] ID=229
turns the name golden, {maybe quest flag is tied to his baseid too; he drops book of skill once. or maybe its hardcoded to hcidx, didnt really test}
[compellingorb] ID=366
Gives a golden name/"random" name, but prevents the monster from dropping anything.
[plaguepoppy] ID=425
[cycleoflife] ID=426
[vinecreature] ID=427
On death, produces cltside missile ID=470 (vine beast death) and the sound ID=790 (druidpod_death_1; also includes 2-5 since they are a group).
[shadowwarrior] ID=417
[shadowmaster] ID=418
on death, produces overlay ID=272 (shadowwarriordeath)
[baalclone] ID=570
death is replaced with cltside missile ID=614 (baalclonedeath); corpse becomes invisible, but does exist {probably applies a corpse hiding state}
{mounting behavior of imps might be hardcoded to monstats id. saw cloned crush beasts/imps in talonrage's requiem of sorrows and they constantly glitched out, forming big stacks of imps underneath the crush beasts}
{check hydra, megademon, necromage, lightningspire, succubus, succubuswitch, overseer, minionspawner, evilhole, imp, catapult, ancientbarb death, painworm, putriddefiler, baaltentacle, baalclone, baalminion, izual, act boss death effects, firegolem, valkyrie, shadowwarriorappear/death overlays, baalthrone's baal_on_Throne, death_sentry overlay, }
---
[MONSTATS.TXT ROWS]
[corruptrogue3] Row 44
When a superunique has their Class=(monstats.txt Row 44, in vanilla corruptrogue3), the following behaviors apply:
On death, spawn four missiles of ID=291 (towermist).
{probably makes them cast their Skill1}
[sandleaper1] Row 78
Acts like the sandleaper1 baseid: cannot be revived, even if monstats.txt switchai=1 and monstats2.txt revive=1.
[maggot] Row 227
Spawned by the durieldead monumod, as cltside only critters.
[maggotqueen1] Row 284
Only maggotqueen that produces death animation. {graphics used?}
Only maggotqueen that produces death animation gore, using cltside missile ID=353 (queendeathcenter).
[vilechild1] Row 301
This monster ID will be spawned by the darkwanderer.
[doomknight3] Row 312
Synchronizes monstats2.txt S4v to S3v (such that the elemental hand balls of Oblivion Knights will look the same as the missile fired).
[compellingorb] Row 366
Causes a random crash if the baseid is not compellingorb, similar to the random nextinclass mismatch crash.
[hellbovine] Row 391
Monster can drop items from the set defined by sets.txt row 29 (in vanilla, that is Cow King's Leathers).
[fetish11] Row 407
[minion1] Row 453
∙The Nihlathak AI will keep casting skill2 on monsters with baseid=minion1 until the monster gains the 'bloodlust' state
[overseer1] Row 479
If superuniques.txt class=overseer1, then it will release:
srvside: Shenk the Overseer's death effect, which randomly, periodically kills monsters around the death location in a large radius
cltside: missiles.txt ID=602 (overseercontrol)
[shadowmaster][shadowwarrior][valkyrie] Row {},{},{}
These monster IDs can be transformed into characters. Attempting to do this with any other ID will cause the monster to become invisible, unless the state has bossinv=1.
{
ancientbarb1: spawns with hardcoded gear
(NORMAL: ilvl=mlvl-7, vanilla=30)
magic Broad Sword
magic Field Plate
magic Tower Shield
magic plate boots aka Greaves
(NIGHTMARE)
magic Battle Sword (ilvl=mlvl-20, vanilla=48)
magic Sharktooth Armor (ilvl=mlvl-27, vanilla=41)
magic Pavise (ilvl=mlvl-25, vanilla=43)
magic War Boots (ilvl=mlvl-27,vanilla=41)
(HELL: ilvl=mlvl-12, vanilla=75)
magic Conquest Sword
magic Kraken Shell
magic Aegis
magic Myrmidon Greaves
ancientbarb2: spawns with hardcoded gear
(NORMAL: ilvl=mlvl-3, vanilla=34)
TWO magic Throwing Axe
magic gaunlets(H) aka Gauntlets
magic plate boots aka Greaves
(NIGHTMARE)
TWO magic Francisca (ilvl=19)
magic War Gauntlets (ilvl=27)
magic War Boots (ilvl=27)
(HELL)
TWO magic Flying Axes (ilvl=40)
magic Ogre Gauntlets (ilvl=71)
magic Myrmidon Greaves (ilvl=71)
ancientbarb3: spawns with hardcoded gear
(NORMAL: ilvl=mlvl-7, vanilla=30)
magic Voulge
magic Field Plate
magic Crown
(NIGHTMARE)
magic Bill (ilvl=50)
magic Sharktooth Armor (ilvl=41)
magic Grand Crown (ilvl=41)
(HELL: ilvl=mlvl-12, vanilla=75)
magic Colossus Voulge
magic Kraken Shell
magic Corona
NOTES:
•ancientbarbs ignore levelreq
•they reference their items via code (i.e. field plate is code=fld, so if you swap the codes of field plate and plate mail, then ancientbarb1 will have plate mail instead of field plate)
•you can equip them with an inventory but it will not override their items (my test was to give Hell Talic a scimitar on his larm and rarm, the result was he still had his conquest sword but also the scimitars)
{what gives them gear? their ID? is it their superunique id?}
---
[SUPERUNIQUES.TXT]
[The Countess] Row 6
She acts like a minion, but instead of being leashed to a boss, she is leashed to the location she spawns at.
Always runs.
She will cast monstats.txt Skill1 at the doorways.
[Baal Subject 1] hcIdx=61 (row does not matter, only the first instance of hcIdx=61 will be used)
Spawned on the first casting of missiles.txt psrvhitfunc=54, when used by the baalthrone monster.
{replace bishibosh with, to test behaviors}
[Baal Subject 2] hcIdx=62 (row does not matter, only the first instance of hcIdx=62 will be used)
Spawned on the second casting of missiles.txt psrvhitfunc=54, when used by the baalthrone monster.
{replace bishibosh with, to test behaviors}
[Baal Subject 3] hcIdx=63 (row does not matter, only the first instance of hcIdx=63 will be used)
Spawned on the third casting of missiles.txt psrvhitfunc=54, when used by the baalthrone monster.
{replace bishibosh with, to test behaviors}
[Baal Subject 4] hcIdx=64 (row does not matter, only the first instance of hcIdx=64 will be used)
Spawned on the fourth casting of missiles.txt psrvhitfunc=54, when used by the baalthrone monster.
{replace bishibosh with, to test behaviors}
Spawned on the fifth casting of missiles.txt psrvhitfunc=54, when used by the baalthrone monster.
[Baal Subject 5] hcIdx=65 (row does not matter, only the first instance of hcIdx=65 will be used)
{replace bishibosh with, to test behaviors}
---
[TOKENS]
[pw]
[BH]Nagahaku wrote: ↑Wed Aug 09, 2023 8:09 amit's about the token 'PW', for pantherwomen and slingers, this token seems hardcoded to disable all death/dead cof modifications in act 2, and only in act 2.
i found this during my attempts to retrieve those catgirl's bloody death anim, which is already in their S8 but either disabled or mislead to S5. my cof modding fixed the anim easily in all other acts but act2, until i built another token to get it fully work.
[GU]
---
[PETTYPES.TXT]
[golem] {presumably row 3, not tested}
Required for Iron Golem memory to work.
[hireable] {presumably row 7, not tested}
Automatically applied to Hirelings.
Required for Hireling inventories.
If given to a pet, you will summon a hireling, with an equippable inventory.
{letting it die and reviving it will make it behave more properly; otherwise it wont have most of the hireling bonuses}
{investigate further; very weird}
{can we create a functional summonable hireling? probably would want to use shadowmasternoinit AI rather than hireable so that it can use all sorts of skills}
{how does it choose which hireling ID to use? i think initially it uses one based on clvl, so if clvl=99 then hireling uses high level hireling ID, but after being resurrected, it adjusts properly to the expected low level hireling ID. can we make it use any hireling ID, or will it always adjust to the first hireling, that is, the rogue?}
---
[SHRINES.TXT]
[Storm Shrine] aka [Fire Shrine]
Spawns a nova of 16 missiles around it. Seems to use the srvdofunc that makes Fire Towers shoot weirdly, where they shoot only in specific quadrants.
Missile has ID=62 (fireball).
[Exploding Shrine]
Spawns two missiles, one to the top right and one to the bottom left. Then spawns four more missiles, two to the bottom right of the previous missiles, and two to the top left of the previous missiles.
Missile has ID=45 (explosivepotion).
[Poison Shrine]
Spawns two missiles, one to the top right and one to the bottom left. Then spawns four more missiles, two to the bottom right of the previous missiles, and two to the top left of the previous missiles.
Missile has ID=48 (chokinggaspoition).
---
[HIJACKING]
Every monumod/shrine that produce missiles can be hijacked to do nearly any other behavior you can think of. This is because missiles are connected to almost everything. For example, you could make it so Exploding Shrines produce invisible monsters, which hit the player, which triggers one of many possible CTC skills (you can use tgtdo to make it so the player casts the spell). In this way, you can have hundreds of new shrine effects by randomizing the outcome with monprops, although these behaviors can only be spawned from the Storm, Exploding and Poison Shrines. Through monumods, scarab and poisondead and lightningdeath are ideal choices since their vanilla behaviors can be mostly simulated with monprops.