This is taken from my RPGWatch forum post:
NWN has d&d combat, TH doesn't, that's why we completely ignored the combat aspect of the game, although most of the hostiles are created or for instance you can make someone angry. These NPCs have to be killed via DebugMode or using a cheat wand (quickest way). We focused all our efforts on creating the quests, writing the conversations, scripting whatever we could. The script commands will be replaced in Unity 3D but my own system uses a neat "interface" so that we could easily port it to any system (as xml's).
Let's take an example:
The NPC has these "interface" commands (2nd picture) stored on himself telling the program which commands to execute (give xp, add journal entry, create object, set variable etc). The numbers are channel numbers. If, say, a convo node uses Event_23, all commands with suffix 23 will be executed by the evaluator script. (1st picture). "Events" are the outputs, "Conditions" are the inputs, also channeled in the same way. So, if Condition_23 tests if you have an item, then Event_23 will take the item automatically (unless you tell him not to) and executes any other commands with suffix 23.
The greyed commands are the actual NWN script commands that have to be reimplemented in Unity 3D. However, I used only about 30-35 out of hundreds used by the Aurora Toolset to make our job easier.
If you have 500 NPCs and 100+ quests, you can have a picture how many of these lines are there