User Tools

Site Tools


Current version: 0.8.5
iOS: 0.8.1+
Android: 0.8.4 (Play/Market version is obsolete!)

Github Coding has become social! Fork us!


Latest commit

# ideally, but does not work on sourceforge (does elsewhere); even http proxies don't help rss> 1 author 30m sidebar for frequently accessed stuff


Stuff in bold is game breaking, but workaroundable.

Not everything is noted here, also see todo.

Chargen and levelup

  • LUCommon.ApplyFeats is dodgy, fix it up and make it run only on non-pcs if we can make feat spells learn/memo stuff directly. Something like is unavoidable for bonus related counts (eg. turn undead)
    • causes problems, spell multiples in some cases, especially where it overlaps with clabs (handled in core), likely on repeat application too; move or get rid of MakeSpellCount/SetSpell …

Class abilities

  • a few feats are not implemented yet: improved turning, precise shot
  • aura of courage implementation in iwd2 is hardcoded: when anyone rolls for a will check, it looks if the source is spwi420 (emotion fear), then looks if an ally (EA is in the same interval) paladin of at least level 2 is near. All this hardcoded in the exe. We have to add an opcode for this, like save vs specific spell (with a param for amount and one for throw type(s)), then make the paladin constantly apply this like a dayblindness in Actor::UpdateActorState (can't be a modal, since paladins can simultaneously turn undead). The spell that will apply it should be an aoe and then the saving throw calculations need to account for such boni.
    • FA_24894 #24894 is ~Divine Courage~
  • how was “Tyrant's dictum” done (cleric of Bane superpower: all saves versus their Will spells are at +1DC)? Did it really work? Probably for all spells needing will saves, so just add another case to the opcode aura of courage will use (another mode?)
  • RESEARCH related, how are other unusual-save-bonus spells working? Check their effects to see if they just increase a base saving throw instead or if more ugly magic like for aura of courage is needed. (save vs poisons, death, spells — basically the missing saving throws from adnd, so some could just be description bugs)
    • RESEARCH make a list of these spells/abilties
    • RESEARCH do the same for the odd racial ones

A sorted list of all clabs (some unused) can be found here.

Chapters / story

  • Prologue (Targos)
    • Phaen is gimpy, but that's a general caster ai problem
  • Chapter 1 (from ford to end of fortress)
    • ar2101: some Malarite high priests can get completely catatonic or melee too much (casters …)
  • Chapter 2 (wreck to end of ice temple)
    • ar4100: The two sets of slippery stairs don't work properly (jumptopoint is skipped) - (41pstail.baf)
      • while it also uses Entered, recheck when isoverme is changed to handle LastTrigger
    • snow trolls are usually unkillable (their general attack script prevents the item swapper from running)
    • ar4101: the prisoners are killed on entry; probably a timer issue
    • ar4101: the abishai teleport away immediately (and are hostile there), even though you haven't set them free yet
    • ar4102: game master scripts are broken, so you can't start the challenges
      • after moving to block the entrance (41parena.baf), ActionListEmpty() is never true, as the JumpToPoint([670.1180]) is already queued next (ActionOverride problem?).
        • the weird part is that all block that do the jump have a See trigger condition, but if you break on See, it is never hit - so htf did the jump get queued?
      • if you hack around this, the challenger (always B_C_S) spawns, the trigger region changes and all seems nice, however the challenge times out - a swift victory is not recognised
  • Chapter 3 (feel wood to end of river caves): NOT TESTED YET
  • Chapter 4 (underdark): NOT TESTED YET
  • Chapter 5 (kuldahar to the end of Fields of Slaughter): NOT TESTED YET
    • RESEARCH in the original, there's some weird code around containers. There is a hack when the area's resref is ar6051 (chult temple). There is some resref check for 60heart (1-8, dessicated hearts), so be vigilant if anything breaks there
  • Chapter 6 (severed hand): NOT TESTED YET


Many still need testing - everything that uses iwd-only opcodes could be buggy.

  • FIXME RESEARCH fireball blast range is still too big (set to 15' in as per description [maybe just a rounding error]) - check the targos palisade last cutscene for comparison (the guards shouldn't get hit)
  • Gedlee's Electric Loop targets the caster not the enemy. Also, (mentioned in gemprjtl.ids) is missing or redundant.
  • druid shapes: Polymorph (0, 0) does not change the avatar (no morphing - what's cancelling it?)
  • RESEARCH both dismissal and banishment use the same (banishment) opcode with the same params. According to the description, the first spell has a save mod of +HD-casterlevel. Is that true for both, one, none? Currently we're just pointing it directly to fx_death, so saves are untouched. Perhaps it was handled in the projectile?
  • RESEARCH How are touch attacks marked (how do we detect them)? They should ignore shield and armor bonuses. Only checked for “non-beneficial” (SF_HOSTILE?) spells. Check if any new item flags or fields are relevant.
    1. Or is it just range==2? No, since there are ranged touch attacks too (eg. ball lightning)
    2. do they just create a magic weapon for the duration / charges? Clearly most do not (aid, healing)
    3. are the 1. cases handled by magic weapons and the rest by range?


  • some enemies still swarm you if you're hiding. Their script deliberately do that (eg. 00t10m)
  • the inventory has some problems with weapon sets and equipped quivers
  • RESEARCHCR/XP calculation still has some unknowns. Systematically recheck in the original. @Game::GetXPFromCR
  • the action bar is missing full weapon set switching (general customising is noted in todo)
  • the table for non-pc action bar is missing or incomplete, so some summons get a bad one
  • FIXME RESEARCH wrong text colors in the movie list
  • not all iwd2 door bits are implemented, specifically the talk/dialog one (visible in the goblin warrens and probably southern ar3000)
  • MC_ENABLED and MC_IGNORE_RETURN need to be implemented
  • textscreen auto-closes itself once the text scrolls out of view (in the original)
  • spellcasting ai
    • if something goes wrong and the stance is not changed, actors can rightly get stuck in WaitAnimation
      • as of 0.8.4-git there's a hack in to ensure the wait is at most 1 round
    • targetting via lastmarkedobject and related triggers/actions is buggy
      • one of the triggers has side effects and seems to expect its action block to be ran right after own evaluation
  • check if we miss any of the ini options, especially the 3 iwd2 ones


Some skills and their debug output are not yet implemented. Don't forget to respect “Trained only” status (GetSkill vs GetStat).

  • RESEARCH taming; just a manual Charm animal?
  • various “identify”s
    • the spell only gives you lore of 100, so make sure to also take it into account for alchemy (now we just check lore directly like in adnd)
    • knowledge arcana is the main 3ed lore stat (see skillsta.2da)
    • also fix TryAutoIdentification to take all this into account
    • manual: A bard may make a special bardic knowledge check with a bonus equal to his level + his Intelligence modifier to see whether he knows some relevant information about magical items.
  • Hidden extra feedback option is not implemented for the following cases:
    @39259 = ~Failed identify item check! Check Bardic Lore %d vs. item's lore %d (%d Intelligence Ability Mod)~
    @39260 = ~Successful identify item check! Check Bardic Lore %d vs. item's lore %d (%d Intelligence Ability Mod)~
    @39261 = ~Successful identify potion check! (Alchemy + Int mod) %d + %d vs. (potion's lore) %d~
    @39262 = ~Failed identify potion check! (Alchemy + Int mod) %d + %d vs. (potion's lore) %d~
    @39263 = ~Failed identify item check! (Knowledge Arcana + Int mod) %d + %d vs. (item's lore) %d~
    @39264 = ~Successful identify item check! (Knowledge Arcana + Int mod) %d + %d vs. (item's lore) %d~
    @39304 = ~Use magic device check. Use magic device (skill + d20 roll + CHA modifier) =  %d vs. (device's spell level + 20) = %d ( Spell level = %d ).~


  • Couldn't create animationfactory: mgo2a2e (e412)
  • Couldn't create animationfactory: mba1ca (f77a) (barbie warrior: 01_postulant_16)
  • 0x6405 (doom guards, ar4100) go invisible once they start attacking
iwd2_bugs.txt · Last modified: 2017/09/08 22:27 by lynxlynxlynx