User Tools

Site Tools


Current version: 0.8.2
iOS: 0.8.1+
Android: (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


Major todos

  • iwd2: level-up
  • pst floating text, wrong stance ids, levelup fixes
  • polishing/finish of the opengl renderer, empty-frame-free animation system
  • proper timing (timestop partiality, actor speeds, combat)

While not a feature of the original engines, our mobile support also needs a lot of love. Plenty of chances to improve user experience and shorten installation. We're also looking for people to just run the build scripts for us! FIXME

Right now there isn't even an idea if, when, or how multiplayer will be implemented.

Bugs/missing features

This is a list of problems which can be observed at various points throughout the games. If you want to get your hands dirty, the ones marked with FIXME are good starting points (easier tasks). If you want to help with testing, check the unresolved ones with RECHECK marks. The ones with RESEARCH require some data lookup in the originals. For details, talk to us on IRC/forums. is a list of original IE games (mostly data) bugs or quirks, for reference. Some are also noted here: not our bug. Apart from it, DSimpson guides for IE games are excellent.


  • Arrows sometimes appear from behind the shooter, usually observed when he has apr > 1 (see also combat section)
  • RESEARCH missing chunk coloring, actor shadows1)2), full footstep sounds3), actor speed, hit sounds and casting height data (all hardcoded in the originals4)), close afterwards
    • character speeds are therefore mostly too fast, especially in bg1 (also causing its boots of speed to have no effect 5))
  • no instachunks displayed when damaging petrified/frozen actors
  • improve animation id selection: order animation ids, allow for interval (select the row with the highest equal or less ID). Add a game flag for this: GF_EXTENDED_ANIM_ID
  • Fog of war: fully visible squares with one corner neighbour invisible need alpha of the adjacent corner to the invisible square tuned down (uh, i hope it is clear what to do, look for artifacts in the fog of war edge)
  • detailed combat feedback is missing (bg2: rolls)
  • overhead text should not (always?) move when displayed over actors - it gives out thieves that go invisible by gulping a potion of invisibility RECHECK (some shadow thief bg2 battle would be easiest)
  • the dying animation is naked - any armor is stripped beforehand
  • modal actions run every 100 adjusted ticks
  • combat round timings are off: the times for weapons to launch and for animations to trigger and so forth
  • FEATURE: implement customisable combat calculation; it should be general enough to simulate all games, without any hardcoded parts


  • buggy State:Panic (still had orientation control (movement blocked though), no wandering[this bit was not tested, due to the panic being morale induced]).
  • intoxmod.2da handling and intoxication in general (curing; it's also modified by hpconbon.2da)
  • Various built-in engine projectile features don't work (eg, bouncing lightning, pst stuff) or are not perfect.
  • finish VEF support (first mod using it)
    • a SetSequence bugs become evident with that mod (see forum)


  • RECHECKRESEARCH and determine if these two are in opposition
    • Pathfinding shouldn't be forcing the path to cells..
    • Move position of actor (and ground circle) to the center of a searchmap cell
  • friendly/neutral NPC bumping is missing (they magically move away if you want to pass them in a tight spot)
  • cutscenes, movies and interarea travel should switch to the main game view (partly done)
  • LeaveAreaName fixes for party travel (ask fuzzie)
  • (only bg1?) NPCs sound after initiating dialogue is not randomised. In bg1 VB_DIALOG is usually empty and INITIALMEET is equal to one of the selection sounds. After that, we only sound this normal selection one, while more are available in the rare range.
  • scripts changing (=deleting) themselves while running is not handled properly (changeaiscript)
  • (fuzzie) ”(…)our script code is force-unlocking doors when it closes or opens them” That undermines all “surprisingly locked in” quasi trap scripts.
  • Characters will only walk along 45 degree paths (illustration: GemRB BG2 )


  • if you have various bows in weapon slots, you can't choose, always the first one is used
    • FIXME check if Inventory::FindRangedWeapon() is misbehaving
  • perfect switching weapon abilities: display only the relevant headers, ensure we use the right one in combat (attack style determination)


  • FIXME externalise message colors (iwd2 for example uses gold for xp)
  • dialogF.tlk is not handled (grep for dialogtlk)
  • optional newline stripping (Polish tlk vs month names in bg1)
  • messaging system with filtering, squashing and delay capabilities
    • The text info in the inventory doesn't disappear when you click/do something else, making it difficult to work out exactly which items are causing the text. It also isn't filtered, so any message can be displayed.
    • RESEARCH damage messages of the same type should be squashed? (check with fireball or other save for half spells)
    • RESEARCH repeated identical messages should be uniq-ed (all? For what time delta?)
    • messages while the inventory or the messagewindow are hidden should be delayed
  • FEATURE: ”<GENDER?stref1:strref2>” (or even more ambitious stat specific strref tokens)


  • FIXME add a post-startup dialog (ok/never show again) with instructions with the path to the log file in case of problems
  • since the label hack, portrait icons flicker and/or vanish
    • related iwd note, where this was seen first (now 3 labels): if icons count > 2 later ones (2nd and next) start to disappear from portrait, albeit stays in character sheet. sometimes there is padding for them, sometimes not, depending on timing of cumulating them.
  • implement grabbing mouse pointer by a control to fix dragging of PST Float menu window
  • implement or remove IE_GUI_BUTTON_ANIMATED (already defined and used for paperdolls, just no logic in core; at the same time we have working SetAnimation)
  • FIXME middle click while console is open -> paste (sdl) clipboard (SDL2 only)
  • implement class based (customisable) actionbar. Port the IWD2 system everywhere
    • iwd2 customization is missing (in iwd2 as well)
    • rip the Setup*Icons calls from the python bindings and implement them in the GUIScripts (like killed SetupSpellIcons)
  • cancel in options does not really cancel, since we toggle stuff immediately
    • maybe add guiscript store/load gamevar functions, which we'd use like akin to transactions


  • FIXME change gemrb/docs to dokuwiki syntax, so they can be put directly on the wiki
  • FIXME change heredoc GUIScript.cpp docs to dokuwiki syntax, so they can be put directly on the wiki
  • Add Doxygen doc comments to more objects
  • Write GemRB overview, structure and high-level flow docs (partly done)


  • FIXME XDG compliance (standardised user paths on linux; icon location should already be fine)
  • FIXME You don't get door highlights (was that really there? ALT is used to highlight doors and containers) (yes, doors are definitely highlighted on tab) when hitting tab. It was light purple (red in iwd2) vs the blue that is used for containers.
  • a not-found resource cache/map, so we can shortcircuit repeated lookups of the same nonexisting data?
  • per-game 2da to list all the usual files not to complain about when they're missing; add to resource getter failure paths as filter
  • FIXME Videos after chapters not added to videos menu (add all the video names to the shared/defaults.ini config)
  • FIXME keyboard shortcuts assignmnent to tooltips is not optional (if a config option is set: Hotkeys On Tooltips)
  • FIXME keyboard shortcuts assignmnent to tooltips is missing for menu window (return to game, inventory …) tooltips/keys
  • (PARTLY done) Separate OpenAL interface from ACM loader and MVE player
  • implement and use as much from EAX (echo, damping, etc) as possible
  • The Cache and Variables classes could be rewritten to incorporate the release function more smoothly (use templates?)
  • some traps/infopoints are misautodetected
    • bg2: bodhi's sanctum left chamber
    • bg1: Bogus trap detected in one of the containers on the upper floor in Travenhurst Manor (Area?) by pure class fighter (sic).
    • pst: AR0403 - The trapped container at 2350, 2600 shows up red when you havent searched for it

Baldur's Gate 2

  • missing ToBEx stuff (see bottom of docs for concise bit info):
    • Targetting Invisible Creatures (SCS and SR)
    • 4 weapon slots for everyone (see forum for partial diff), main inventory only
    • RECHECK Visual Effect Video Cells (VVCs)?
    • simplified concentration port 6) (SR, SCS)
    • RESEARCH: Cure: Dispellable Effects (Dispel Magic) [58], Use EFF File [177], Spell Effect: Cast Spell on Condition [232]
    • Player 1 Death / LoseGame (mod user)

Baldur's Gate

  • Viconia(?) animation problem [CharAnimations/ERROR]: Couldn't create animationfactory: cefc4 (6011) [ResourceManager/ERROR]: Couldn't find 'cefc4.bam'.
  • FIXME Remove invisible opcode (0x2f) should be disabled by nondetection, except if stateoverride(flag/time) is set.
  • RESEARCH Wrong sound effect played if no arrows left- same as no charge in wand. Which one should it be?
  • You can't travel from the Gnoll Stronghold to Wyrm's Crossing) RECHECKRESEARCH (also, was it possible in the original?)
  • Equipping BELT05 (Sex change) temporarily disrupts item's animation (SW1H24 (Flaming tongue) goes monochrome, shield disappears. Nasty bugger that can perhaps be fixed directly in the rendering code, with a non-pst EF_UPDATEANIM callback or some nicer way to update just the gear anims
  • Speaking of temple, each time you enter you should hear wailing of “sirens”/his assistants. I think Alaundo's prophecies singing/cantor sound is missing in Candlekeep in similar way.
    • Alaundo choir should chant on their own, like they were selected at random (similar to area/bored comments. Their text and sound is in their verbal constants):
  • RECHECK (should be fixed) Generic background music is a lot a less played than in original.
  • missing implementation of the IE_AMBI_AREA ambient bit (could give an impression of repetitiveness)? IESDP says: bit 3: (0) Sequential ambient selection / (1) Random ambient selection
  • RESEARCH When selecting multiple items for identification, only the last one is highlighted (but all are in fact selected). A screenshot of the original is needed; the last time this was researched it looked like a data bug with only the 4th button having the needed frame (not that we shouldn't override this folly)
  • Misaligned (?) Potion of Heroism (POTN09) use animation.
  • RESEARCH GFX glitches needing confirmation if connected with GemRB at all 001 002 003 004 005 006 ar1300 (~988.2587) several broken tiles 008 009, ar0100 [2121.3062] and [838.2839] tiles seem swapped + [2776.2308] + [1155.1702],
  • This is especially strange, it happens only in Taerom's shop (blackened scroll counter) 009 RECHECK / STILL Similar thing in Kelddath shop at temple.
  • …lycanthropy infection works correctly (however I can replicate it only with one save, strange), turning other party members to greater wolfweres (greaterwolf), however they probably shouldn't drop Peladan as loot ;)
  • RECHECK dead party members shouldn't be visible after area transitions (!IF_ACTIVE or avatar removal). Speaking of travelling corpses, that's the case when Shandalar teleports party. I've checked in original, there are no visible corpses of (already dead) party members on island upon arrival, not the case with GemRB.
  • RESEARCH Being magically asleep not using proper stance (lying, at least male human fighter) for the selected actor. Which spell caused this (or which effect is applied)?
  • Importing characters from GameCharactersPath= is semi-broken(?) It can import *.chr which are no longer there, so behaviour is quite confusing.
  • Sarevok is missing an attack animation (also visible in bg2 and tob).
  • Combat music does not always end after combat. This is almost fixed now, (only clairvoyant npcs ruin the picture).

Problematic BG1 saves

Icewind Dale

  • melee combat is silent (no hit sounds etc)
  • FIXME Gerth in ar2100 should buy keys and misc items, he does not. In bg1 and iwd critical item flag does not prevent selling as in bg2: start in the critical/destructible part of Store::AcceptableItemType and add a gameflag for the different behavior
  • FIXME externalise the portrait icon mapping (FXOpcodes.cpp), so any remaining discrepancies8) from bg2 can be fixed for good and the code gets cleaner. See the PI_* constants' definitions and put them in a new table under unhardcoded/9) that you then load in RegisterCoreOpcodes and use instead of the constants
  • RECHECK the how boss's guards don't react easily enough
  • RECHECKagnar isn't outside the camp, so you can't talk to him to get in (ChangeCurrentScript problem?)
  • RECHECK the gem - (ar9708) DLSGEM - doesn't cast anything. the continue fix (DJINNI) likely fixed this too
  • RESEARCH occasionally thehighbaptist speech starts when he can't see you and throws you into cutscene mode for good (stalls permanently)

Icewind Dale 2

  • status from chapter 3 onwards unknown! (all fine until mid chapter 2, where it breaks)

Planescape: Torment

  • The whole floating-text system for Planescape: Torment needs writing.
  • Morte often pathfinds the wrong way around at the start of PS:T.
  • Right-clicking to remove the floating menu disables the current target mode, in PS:T.
  • TNO should always be the speaker, not random party members (also when not self-initiated).
  • FIXME The whole party should walk towards the exit once an area exit is clicked.
    • we already implement GF_TEAM_MOVEMENT in GemRB_CreateMovement, check what is wrong/missing
  • animations:
    • we ignore the data from individual animation ini files
    • Invalid stance IDs everywhere, oh my. - the mime stances, etc are not supported, they are normal stances, without sound
  • no strref (de)composition - many strings come not in the format of “X” like in other games, but just in “NPCNAME: X” variants. Add another column in strings.2da to denote them and then strip “^[^:]*: ” from them on load + fill in where the current entries are now blank (eg. modals)


Broken spells

A list of broken spells (bad effects, targeting, projectiles, …).

Personal todos

Some developers have their own todo page.

1) PCs, and NPCs based on PC avatars, generic monsters/people are fine
2) IIRC, CSHD is the standard shadow used for many character anims
3) this is how it works, but some games lack the data and even in bgs we're not as smooth as the original
4) one of the rare cases where pst is a positive exception
5) sets the speed to the same value, instead of using a % modifier like in bg2
6) (1D20 + luck) > (spell level + damage taken)
7) not needed for regeneration/poison/disease though
8) not all manually-iconing opcodes are used in both engines
9) one under shared and one identical for both iwd/how
todo.txt · Last modified: 2015/04/12 19:21 by lynxlynxlynx