SimDing0 Posted December 5, 2005 Share Posted December 5, 2005 Marv of ADPack fame has been generous enough to document the spell bugs he encountered. I don't know how useful it'll be, but we should probably check we cover everything. sim.zip Link to comment
SimDing0 Posted December 30, 2005 Author Share Posted December 30, 2005 Here's some more. sim2.zip Link to comment
CamDawg Posted January 22, 2006 Share Posted January 22, 2006 I'm slowly working through these. I'm about midway through the first document--fixes and notes follow. Comet Report: Sleep duration listed as 1d4 rounds, actually fixed to 3 rounds Action: Confirmed and fixed. Dragon's Breath Report: Should be no save v. sleep; save is currently made at -10 Action: Descript indicates a normal save is allowed. Removed -10 penalty for sleep effect. Added Display Portrait Icon: Sleep as well. Improved Alacrity Report: Should be non-disspellable. Action: Nothig in descript to corroborate this. No action. Energy Blades Report: Power level is incorrect (6) and end of spell sound plays even if blades are used Action: Corrected power level for both priest and mage versions. Left end of spell sound intact as there's no way to reliably determine if it's needed or not. Bigby's Crushing Hand Report: Power level was incorrect on some effects, second round save was wrong Action: Confirmed and fixed, though the report indicates that the second round save should be -2--per descript, there's no penalty. Also caught and corrected additional bug: all saves should be against petrification, per descript. Black Blade of Disaster Report: Struck targets failing saves should be disintegrated, not killed Action: Confirmed and fixed Energy Drain Report: Lighting effect not ignoring MR, as other effects do Action: Confirmed and fixed. Meteor Swarm Report: Duration should be four rounds, not three Action: Confirmed and fixed Chain Contingency Report: Casting time should be one turn, not instant Action: Current casting time is one round[/]. One turn seems extreme--I'd be content to raise this to three rounds to mitigate the exploit of casting this mid-combat. No action taken yet. Gate Report: Range should be visual sight; demon's weapon should be +4 Action: Corrected range. Demon's weapon is p3-12m4.itm, which by Bioware's naming convention means it's supposed to be a piercing weapon of 3-12 damage with 4 enchantment. Enchantment is indeed incorrect and fixed. Spellstrike Report: Description does not list all spells removed Action: Confirmed, revised descript Symbol, Death Report: Casting time is incorrect Action: Already fixed Symbol, Stun Report: Casting time is incorrect; sound on on abiity header is incorrect Action: Casting time already fixed, sound fixed Power Word, Blind Report: Incorrect radius of effect, affects only enemies (should be everyone), duration is incorrect, missing AC penalty Action: Corrected duration and target (no longer party-friendly). Radius is correct, though unsure re: AC penalty. Aren't the THAC0 and AC penalties for blindness hardcoded into the blind opcode? Blind is also supposed to have same penalties, and is lacking THAC0 and AC effects. Maze Report: Range should be touch, maze duration for creatures with INT Action: Corrected durations. Per descript, range is touch and currently set in the spell as 3 feet--essentally already touch range. Symbol, Fear Report: Casting time is incorrect Action: Already fixed Spell Trigger Report: Casting time is incorrect Action: Added to Symbol spell patch, as correct casting times are the same Summon Fiend Report: Glabrezu summoned by this spell is stronger than Pit Fiend summoned by higher level Gate spell Action: Subjective. Glabrezu has better AC by 2, 100% resistance to acid and cold, immunity to hold and a slight edge in strength (19 v 18/00). Pit Fiend has better saves, THAC0, and level; is immune to +3 weapons (glabrezu only +2); and regenerates. The pit fiend is also summoned for over twice the duration as the glabrezu. No changes made. I'll post more as I get further in. // comet should stun for 1d4 rounds, not a set value of 3 rounds COPY_EXISTING ~spwi925.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" SET "delta" = 0 FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%delta%") WRITE_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "%abil_fx_idx%" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" READ_LONG ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "icon" PATCH_IF (("%opcode%" = 39) OR (("%opcode%" = 142) AND ("%icon%" = 55))) BEGIN // sleep or stun icon effect READ_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "clone" (48) // grab entire fx WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 6 // duration = round * 1d4 WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 25 // on roll of 4 WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0 // on roll of 4 FOR (index3 = 2; index3 < 5; index3 = index3 + 1) BEGIN INSERT_BYTES ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0x30 // new effect WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "%clone%" #48 WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ("%index3%" * 6) // duration = round * 1d4 WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ("%index3%" * 25) // on roll of (index3 - 1) WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) (("%index3%" * 25) - 24) // on roll of (index3 - 1) END SET "delta" = "%delta%" + 3 SET "abil_fx_num" = "%abil_fx_num%" + 3 SET "index2" = "%index2%" + 3 END END WRITE_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "%abil_fx_num%" END BUT_ONLY_IF_IT_CHANGES // dragon's breath has spurious save penalty vs. sleep, missing sleep portrait icon COPY_EXISTING ~spwi922.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" SET "delta" = 0 FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%delta%") WRITE_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "%abil_fx_idx%" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" PATCH_IF ("%opcode%" = 39) BEGIN // sleep WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0 // no save penalty READ_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "clone" (48) // grab entire fx INSERT_BYTES ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0x30 // new effect WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "%clone%" #48 // clones sleep effect WRITE_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 142 // display portrait icon WRITE_LONG ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 14 // sleep icon SET "delta" = "%delta%" + 1 SET "abil_fx_num" = "%abil_fx_num%" + 1 SET "index2" = "%index2%" + 1 END END WRITE_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "%abil_fx_num%" END BUT_ONLY_IF_IT_CHANGES // energy blades COPY_EXISTING ~sppr721.spl~ ~override~ ~spwi920.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_LONG 0x34 "level" FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "%level%" // power is wrong in effects END END BUT_ONLY_IF_IT_CHANGES // bigby's crushing hand should be saving against paralyzation; some second round saves are incorrect COPY_EXISTING ~spwi918.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 8 // power is inconsistent in effects READ_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "timing" READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration" READ_BYTE ("%fx_off%" + 0x24 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "savetype" PATCH_IF (("%timing%" = 4) AND ("%duration%" = 12)) BEGIN // round 2 damage WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0 // no save penalty END PATCH_IF ("%savetype%" = 0b00000100) BEGIN // if save v death/poison WRITE_BYTE ("%fx_off%" + 0x24 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0b00010000 // save v petrification END END END BUT_ONLY_IF_IT_CHANGES // black blade o' disaster is supposed to disintegrate, not slay COPY_EXISTING ~blakblad.itm~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN // looks through headers READ_SHORT ("%abil_off%" + 0x1e + ("%index%" * 0x38)) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%index%" * 0x38)) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN // searches through fx for slay effect READ_SHORT ("%fx_off%" + (("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode" PATCH_IF ("%opcode%" = 55) BEGIN // slay WRITE_SHORT ("%fx_off%" + (("%abil_fx_idx%" + "%index2%") * 0x30)) 238 // disintegrate END END END BUT_ONLY_IF_IT_CHANGES // energy drain lighting effect is not bypassing MR like all other effects COPY_EXISTING ~spwi914.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" PATCH_IF ("%opcode%" = 141) BEGIN // lighting effect WRITE_BYTE ("%fx_off%" + 0x0d + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0 END END END BUT_ONLY_IF_IT_CHANGES // meteor swarm should be 4 rounds, per descript COPY_EXISTING ~metswarm.pro~ ~override~ WRITE_BYTE 0x216 4 // should last 4 rounds per descript // gate should be visual sight range COPY_EXISTING ~sppr703.spl~ ~override~ ~spwi905.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN WRITE_SHORT ("%abil_off%" + 0x0e + (0x28 * "%index%")) 30 END BUT_ONLY_IF_IT_CHANGES // lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere COPY_EXISTING ~spwi914.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "sound" PATCH_IF (("%opcode%" = 174) AND ("%sound%" STRING_COMPARE_CASE "eff_m03" = 0)) BEGIN // sound to be replaced WRITE_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ~eff_p04~ #8 END END END BUT_ONLY_IF_IT_CHANGES STRING_SET 26315 @136 // spellstrike descript // lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere COPY_EXISTING ~spwi815.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "sound" PATCH_IF (("%opcode%" = 174) AND ("%sound%" STRING_COMPARE_CASE "eff_m03" = 0)) BEGIN // sound to be replaced WRITE_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ~eff_p04~ #8 END END END BUT_ONLY_IF_IT_CHANGES // power word blind should also affect party/allies COPY_EXISTING ~holdsumm.pro~ ~override~ READ_BYTE 0x200 "flags" WRITE_BYTE 0x200 ("%flags%" BAND 0b00001010) // removes ally/self exemptin flags BUT_ONLY_IF_IT_CHANGES // maze not lasting as long as specified in descript; patching intmod.2da for int < 9 COPY_EXISTING ~intmod.2da~ ~override~ SET "dice" = 20 FOR (index = 3; index < 12; index = index + 1) BEGIN SET_2DA_ENTRY_LATER ~intmod~ "%index%" 4 "%dice%" PATCH_IF ("%index%" = 5) BEGIN SET "dice" = 10 END ELSE PATCH_IF ("%index%" = 8) BEGIN SET "dice" = 5 END END SET_2DA_ENTRIES_NOW ~intmod~ 1 BUT_ONLY_IF_IT_CHANGES // by Bioware naming convention, this item should be 4 enchantment COPY_EXISTING ~p3-12m4.itm~ ~override~ WRITE_LONG 0x60 4 Link to comment
devSin Posted January 22, 2006 Share Posted January 22, 2006 I had worked through the initial list. Some of his stuff is based on the assumption that the descriptions are accurate, which I definitely disagree with. Common sense rules the day at the Friendly Arm. For Comet and Dragon's Breath, I didn't change the sleep effect. IIRC, the way it's implemented, this is more of a "knocked off your feet" compliment to the wing buffet effect, so no changes were necessary (it doesn't look as if it was ever intended for a character to just sleep without getting the wing buffet). RE: Power I have no idea what this field does, but I couldn't confirm that it ever affects anything. I tried casting a spell with effects of varying power values (from 1-9), and Dispel Magic was always all or nothing (if dispel was successful, *all* effects were removed, regardless of whether they were power 1 or power 9). I'm not for or against changing it, but it could be something to ignore if the only change to a file is going to be making the power value for all effects consistent. Does anybody know what the power field is used for? I will never support having a casting time > 9. I also don't know if the contingency and trigger casting durations even work right in ToB (I know there's one where the 2DA fires immediately, regardless of the casting speed). Link to comment
CamDawg Posted January 23, 2006 Share Posted January 23, 2006 For Comet and Dragon's Breath, I didn't change the sleep effect. IIRC, the way it's implemented, this is more of a "knocked off your feet" compliment to the wing buffet effect, so no changes were necessary (it doesn't look as if it was ever intended for a character to just sleep without getting the wing buffet). Yeah, they're definitely linked. With Comet I don't see any reason why we still can't have the sleep effect range over 1d4 rounds instead of a set value of 3 rounds. For DB, the change will actually make the sleep effect match the save on the wing buffet effect. As for descriptions and intent... unless I see a strong, compelling reason to differ from the description I think we should generally take the descriptions as the intent of the spell. I know we agree that descriptions are certainly not the end-all be-all, we just differ at what point they can be ignored. Link to comment
the bigg Posted January 23, 2006 Share Posted January 23, 2006 IIRC, power is for stuff like 'immune to spells of level 5 or lower' (=the reason why you can cast a cleric True Sight on a lich, a comet on a demilich...). Link to comment
devSin Posted January 24, 2006 Share Posted January 24, 2006 I'll have to test that soon, although I have doubts it's used for even that. Link to comment
devSin Posted February 1, 2006 Share Posted February 1, 2006 // bigby's crushing hand should be saving against paralyzation; some second round saves are incorrect -- Saving Throw vs. Paralyzation, Poison, Death Magic *is* save vs. death, not petrification/polymorph // lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere -- You're patching Energy Drain, not Symbol, Fear (SPWI811) // lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere -- You're patching Power Word, Blind, not Symbol, Stun (SPWI816) Link to comment
CamDawg Posted February 1, 2006 Share Posted February 1, 2006 // bigby's crushing hand should be saving against paralyzation; some second round saves are incorrect -- Saving Throw vs. Paralyzation, Poison, Death Magic *is* save vs. death, not petrification/polymorph Fixed/ // lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere -- You're patching Energy Drain, not Symbol, Fear (SPWI811) I corrected this to Symbol, Stun before alpha 7, but it appears both Symbol, Stun and Symbol, Fear spells have the same error. Added spwi811 to the existing spwi816 patch. // lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere -- You're patching Power Word, Blind, not Symbol, Stun (SPWI816) Also caught before alpha 7. Link to comment
devSin Posted February 14, 2008 Share Posted February 14, 2008 Bigby's Patching Hand is incorrect. The structure of the spell is ROUND 1: Hold1 (save -4) Damage 2d10 ROUND 2: if Hold1 (save -4) Damage 3d10 Hold2 (save -2) ROUND 3: if Hold2 (save -2) Damage 4d10 The only fixes the spell needs is to set the powers to 9, the 3d10 damage effect should be saving at -4 (not -2), and the duration of the final expiry sound (save -2) should be 12. (My saves were right, although it took just as long verifying as it did when I originally went through the spell way back when, but I missed the sound duration until now, sigh.) Link to comment
CamDawg Posted February 14, 2008 Share Posted February 14, 2008 Took me a bit to cotton on to the sound issue--they should be playing as the hold effects expire, not when they begin. // bigby's crushing hand fixes second round damge save penalty wrong, sounds playing at wrong times COPY_EXISTING ~spwi918.spl~ ~override~ READ_LONG 0x64 "abil_off" ELSE 0 READ_SHORT 0x68 "abil_num" ELSE 0 READ_LONG 0x6a "fx_off" ELSE 0 FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 9 // power is inconsistent in effects READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" READ_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "timing" READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration" PATCH_IF (("%opcode%" = 12) AND ("%duration%" = 6)) BEGIN // second round 3d10 damage WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) (0 - 4) // -4 save penalty END PATCH_IF (("%opcode%" = 174) AND ("%timing%" = 0)) BEGIN // sound effect for first round hold WRITE_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 4 // delay/permanent WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 6 // at end of first round END PATCH_IF (("%opcode%" = 174) AND ("%timing%" = 3)) BEGIN // sound effect for second round hold WRITE_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 4 // delay/permanent WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 12 // at end of second round END END END BUT_ONLY_IF_IT_CHANGES Link to comment
devSin Posted February 14, 2008 Share Posted February 14, 2008 PlaySound isn't an attached effect, so Delay/Limited is fine (except for the delay part, the engine completely ignores timing for effects like this). I forgot about the timing mode for the first sfx, sorry. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.