How condition Monster Melee Poison works in ToEE (both Vanilla and T+). If "Monster Melee Poison" is present in Monster conditions (proto fields) then new condition instance will be created each time victim is hit by the Monster. The condition takes one parameter (arg0: poisonId). ToEE Vanilla has hard-coded table of Poison Specifications (36) with following data: Code: 30 : Arsenic DC: 13 Initial Damage: 1 Con Secondary Damage: 1d8 Con 8 : Black Adder DC: 12 Initial Damage: None Secondary Damage: 1d6 Str 14 : Black Lotus Extract DC: 20 Initial Damage: 3d6 Con Secondary Damage: 3d6 Con 3 : Blood Root DC: 12 Initial Damage: None Secondary Damage: 1d4 Con + 1d3 Wis 25 : Blue Whinnis DC: 14 Initial Damage: 1 Con Secondary Damage: Unconsciousness 19 : Burnt Othur Fumes DC: 18 Initial Damage: 1 Con Secondary Damage: 3d6 Con 13 : Carrion Crawler Brain Juice DC: 13 Initial Damage: Paralyze Secondary Damage: None 18 : Dark Reaver Powder DC: 18 Initial Damage: 2d6 Con Secondary Damage: 1d6 Con + 1d6 Str 27 : Deathblade DC: 20 Initial Damage: 1d6 Con Secondary Damage: 2d6 Con 10 : Dragon Bile DC: 26 Initial Damage: 3d6 Str Secondary Damage: None 33 : Error! Missing line 333 in tpmes//combat.mes DC: 0 Initial Damage: None Secondary Damage: None 34 : Error! Missing line 334 in tpmes//combat.mes DC: 10 Initial Damage: Con + Dex Secondary Damage: Con + Dex 35 : Error! Missing line 335 in tpmes//combat.mes DC: 4 Initial Damage: Wis + 2d127 Wis Secondary Damage: 126d127+255 Wis + Con 7 : Giant Wasp DC: 18 Initial Damage: 1d6 Dex Secondary Damage: 1d6 Dex 1 : Greenblood Oil DC: 13 Initial Damage: 1 Con Secondary Damage: 1d2 Con 15 : Id Moss DC: 14 Initial Damage: 1d4 Int Secondary Damage: 2d6 Int 32 : Insanity Mist DC: 15 Initial Damage: 1d4 Wis Secondary Damage: 2d6 Wis 5 : Large Scorpion DC: 18 Initial Damage: 1d6 Str Secondary Damage: 1d6 Str 17 : Lich Dust DC: 17 Initial Damage: 2d6 Str Secondary Damage: 1d6 Str 9 : Malyss Root Paste DC: 16 Initial Damage: 1 Dex Secondary Damage: 2d4 Dex 23 : Mystical DC: 0 Initial Damage: 1d10 Con Secondary Damage: 1d10 Con 28 : Nitharit DC: 13 Initial Damage: None Secondary Damage: 3d6 Con 29 : Oil of Taggit DC: 15 Initial Damage: None Secondary Damage: Unconsciousness 24 : Other DC: 0 Initial Damage: None Secondary Damage: None 4 : Purple Worm DC: 24 Initial Damage: 1d6 Str Secondary Damage: 1d6 Str 20 : Quasit DC: 13 Initial Damage: 1d4 Dex Secondary Damage: 2d4 Dex 11 : Sassone Leaf Residue DC: 16 Initial Damage: 2d12 HP Secondary Damage: 1d6 Con 26 : Shadow Essence DC: 17 Initial Damage: 1 Str Secondary Damage: 2d6 Str 0 : Small Centipede DC: 11 Initial Damage: 1d2 Dex Secondary Damage: 1d2 Dex 2 : Spider Venom DC: 14 Initial Damage: 1d4 Str Secondary Damage: 1d6 Str 16 : Striped Toadstool DC: 11 Initial Damage: 1 Wis Secondary Damage: 2d6 Wis + 1d4 Int 12 : Terinav Root DC: 16 Initial Damage: 1d6 Dex Secondary Damage: 2d6 Dex 31 : Ungol Dust DC: 15 Initial Damage: 1 Cha Secondary Damage: 1d6 Cha + 1 Cha 21 : Violet Fungi DC: 14 Initial Damage: 1d4 Str + 1d4 Con Secondary Damage: 1d4 Str + 1d4 Con 6 : Wyvern DC: 17 Initial Damage: 2d6 Con Secondary Damage: 2d6 Con 22 : Yellow Mold DC: 15 Initial Damage: 1d6 Con Secondary Damage: 2d6 Con Interestingly, this table differ a bit with Poisons listed in the help section. Essentially poison has three main parts: * DC vs Fortitude check; * Initial Damage; * Delayed Damage in 10 rounds. First PoisonedOnAdd (0x100E9E50) is called, which will do following: *. Find Poison Specification from the table; *. Do unconditional initial damage; *. Check if delay poison is present. If is, then remove poisoned condition. *. Make Fortitude check; *. If failed then make conditional initial damage; Then PoisonedOnBeginRound (0x100EA040) is called each round,and do following: *. Check if round countdown expired, if not yet then nothing; *. Check if delay poison is present. If is, then remove poisoned condition. *. Make Fortitude check; *. If failed then make delayed damage; *. In any case remove "poisoned" condition; Sample of new poison I'm working at: Code: { "comment": "MONSTROUS CENTIPEDE Tiny, MM287", "id": 36, "dc": 10, "immediateEffect": 1, "immNumDie": 0, "immDieType": 0, "immDieBonus": 1, "immediateSecondEffect": -10, "immSecDice": { "bonus": 0, "count": 0, "sides": 0 }, "delayedEffect": 1, "delayedDice": { "bonus": 1, "count": 0, "sides": 0 }, "delayedSecondEffect": -10, "delayedSecDice": { "bonus": 0, "count": 0, "sides": 0 } } Each damage (initial and delayed) consists of such parts: *. effect type; *. damage count, sides and bonus; *. secondary effect type; *. secondary damage count, sides and bonus; Effect type enum: *. -10: None. Will do nothing. *. -9: Unconsciousness. Not implemented (funny). *. -8: Unconditional Paralyze. Meaning no saving throw, simply Paralyze for 2d6 rounds. *. -7: Unconditional HP damage. Meaning no saving throw, simply make POISON damage. *.-6 or 0: STR temporary damage. *.-5 or 1: DEX temporary damage. *.-4 or 2: CON temporary damage. *.-3 or 3: INT temporary damage. *.-2 or 4: WIS temporary damage. *.-1 or 5: CHA temporary damage. ---------------- Changes in TemplePlus: * in Initial Damage and Delayed Damage now order is corrected - first saving throw check, then damage if failed; * paralyze is now d26 minutes, not rounds; * Implemented Unconsciousness, which was not present before;
If one look at the https://www.dandwiki.com/wiki/SRD:Poisons page few algorithm differences arise: *. Unconsciousness is completely not implemented; *. Paralysis should stay for 2d6 minutes, not rounds; *. Some ability damages should be permanent drain, not temporary. Taking into account, that ability damage effect type can be configured both negative and positive, for example -6 and 0 both point to Strength ability loss, I suspect negative ones were reserved for permanent drain.
First of all, this post is knowledge base one. Just stating current implementation of poison in ToEE. The post is not a complaint to Sitra. And btw, only Sitra can decide what he should or should not do. It's not a job)) We already had discussed with Sitra about that. And I agree that poison improvement is rather low priority. But because I really want that pesky Centepede to be fully present in the game I volunteered to improve that code in T+. In any case Sitra is Team Leader, and he guides me on that last several days. Improvement I'm working on is to have poisons.json table to be loaded dynamically. Meaning I will have ability to add Centepede poison to table and finish up the monster prototype. Sitra will decide if that will go into T+ release and when.
As for Unconscious and permanent ability drain. Personally I think community should decide how much important this feature is.
I'd like it if its functionality is in a community-released module, Co8, KotB, Randomizer, or/and otherwise.
I'm not exactly sure what you are asking for @Endarire - these poisons (except for the one @anatoliy is wishing to add) are already in the game, it's just that there is no way to use many of these poisons without modding the game in some way. You can alter a single value on the Dagger of Venom in ProtoED for instance, to make it deal a different type of poison than the stock version.
@Sitra Achara approved changes to Poisons, next T+ release will have them. Thanks Sitra! New changes for poisons in TemplePlus: * in Initial Damage and Delayed Damage now order is corrected - first saving throw check, then damage if failed; * paralyze is now d26 minutes, not rounds; * Implemented Unconsciousness, which was not present before; * new poisons for centipede (tiny, small etc). New poisons for scorpions and spiders in progress.
Threadromancy! @anatoliy - is there a way to create potions in the game (in protos.tab) that cause specific poisons? Or to check from the Poison spell that you are using a potion? Different posions cost vastly different amounts so being able to alchemically create different poisons (if you have the ingreditents) is something I am keen to do, but it seems sort of a let down when they all have the same effect. I tried to get this going but hit a dead end. (Missed this thread first time round, sorry).
@Shiningted If you can get a 'Potion' to use the dagger of venom property, all these poison options are viable.