Fandom

D'jinni Wiki

Module testing

1,297pages on
this wiki
Add New Page
Talk0 Share

We’ve added and assigned files, and started the module. Now we need to test it. Why do we need to test it? First of all, because we want to see if it works properly. The main task is to find any errors that might occur in our adventure.

First I suggest moving a bit in the module. Make Geralt run to the places where Jethro, the bandit leader and wolves should be. What is happening? There is no one? There is only Jethro? Why? Have we done something wrong?

The answer is No! Everything is fine. Spawn sets are always off on their default setting. This does not include NPC spawn sets, which is why Siegfried is visible after starting the module. Our first task will be to activate the proper spawn sets so that any player who starts our module will see everything as planned. You can enable and disable spawn sets in two ways – by using the script or an easier way, by using a special quest.

We will do this in a moment, but for now we can approach the spawn sets differently since we’re testing the module. Open the Debug function which is available after starting the module. Select Spawnsets -> Module Spawnsets from the Debug menu:

R&TG037


The Module Spawnsets menu contains all the spawn sets that we assigned to the module. Remember that assigning a file to a module is completely different than adding a file to a module. First let’s start Jethro’s spawn set. To do this, select Spawnsets -> Module Spawnsets -> our_jethro from the Debug menu. A moment later Jethro should appear at his spawn point:

R&TG038


Have a look at the Debug -> Spawnsets -> Module Spawnsets menu:

R&TG039


Note that a “tick” has appeared next to our_jethro. This means that this spawn set has been enabled. If you select our_jethro from the Debug -> Spawnsets -> Module Spawnsets menu, Jethro will disappear from the module and the “tick” will disappear from the menu. All the commands from the Debug menu function as toggles, i.e. they can be turned on and off. Of course you can enable all the commands in the Debug menu.

If you select Disable all spawnsets:

R&TG040


Then all previously enabled spawn sets will be disabled.

Now let’s enable all the spawn sets by selecting them from the Debug -> Spawnsets -> Module Spawnsets menu:

R&TG041


A moment later all of our characters should appear on the enabled module. Since you can enable and disable spawn sets using quests (via the Enable spawnset and Disable spawnset actions in the OnPhaseFinished Actions and OnQuestFinished Actions sections), we can improve our quest.

How? The bandit leader and his guards will spawn in the module only when Geralt (the player) obtains the quest about killing the bandit leader from Siegfried. Why? This helps us avoid complications connected with the quest – for example, what would happen if Geralt killed the bandit leader without talking to Siegfried first? We would have to create other conversation nodes taking this into account. However, because we modified the quest earlier, by adding the second stage of the quest, we will avoid such complications.

Now we know how to enable and disable spawn sets while testing the module. While the module is working we can test much more things. In a moment further commands from the Debug menu will be described. Let’s have a look at the Resources Explorer window. This window has a number of interesting commands that we can use while testing out module. If the Resources Explorer window is disabled, select Utility Windows -> Resources Explorer from the View menu:

R&TG042


The Resources Explorer window will appear on the left side of the screen. Expand Cutscenes by clicking the small ‘+’ sign next to the folder name. Right-click on any .cut file:

R&TG043


A new Play cutscene command is available in the reference menu that will open. This command is only available when the module is running and it allows you to open a film. You can read about how to create cutscenes in another chapter of this manual.

Expand the Scripts tree and right-click on any .lua file:

R&TG044


A new command is available here too. This is the Play file command, which will enable scripts written in Lua. If you right-click on any .nss file, another new command will appear:

R&TG045


The command Run scripts allows scripts written in Neverwinter Nights Script to be run. More about scripts is covered in another chapter of this manual.

Finally, expand the Templates -> Characters tree choose, for example, NPC. Right-click on any .utc file. A new Debug command will appear, Spawn creature near player:

R&TG046


This command will spawn a specified character next to Geralt (as a reminder, .utc files are character templates). This is a very useful command.

Let’s expand the Templates -> Spawnsets -> Commoners tree and right-click on any .spn file. Another new command available, Debug -> Disable spawnset (or Enable spawnset):

R&TG047


This command has the same function as the one from the Debug menu. It enables or disables a spawn set. As a reminder, .spn files are the ones with spawn sets.

That’s it when it comes to the Resources Explorer window. Remember that all of these commands are available only when the module is running.

Now let’s return to describing other Debug menus. Select Quests from the menu:

R&TG048


Here you will see the Our_base database together with the Task (our_task.qst) quest. Using the Quests command we can test quests in the Debug menu. Now select Task (our_task.qst). A new Running quest: EMPTY[Read Only] window will open:

R&TG049


This window contains the quest that we created earlier started in the test run. This quest is read only in the test run (confirmed by the information [Read Only] displayed in the name of the window). This means that now we cannot modify it.

Note that the Quest Beginning is in a yellow frame. This means that the quest being tested is in the beginning phase and is not really active.

Let’s return to the module by clicking on the Game tab in the top part of the window:

R&TG050


Now approach Siegfried and talk to him. Accept the quest from him by selecting the proper conversation node. Once you’ve accepted the quest from Siegfried, return to the quest by clicking on the Running quest: EMPTY[Read Only] tab:

R&TG051


As you can see, there are changes:

R&TG052


The Quest Beginning is in a green frame. This means that this quest phase has been completed. Now the Professor phase is in a yellow frame, which means that the quest being tested is in this phase. If you return to the module and kill the bandit leader, then return to the quest tab, you will notice that the Professor phase has been completed (indicated by a green frame) and that testing has moved to the Siegfried phase (now in a yellow frame):

R&TG053


If you talk to Siegfried again and tell him that you’ve already killed the bandit leader, then return to the quest tab, you’ll see that the quest has been completed – the Quest Completed phase is now in a green frame:

R&TG054


This shows that both the conversation and the quest are working perfectly. Later we’ll introduce small changes connected with the spawning of the bandit leader. The remaining commands from the Debug menu are as follow: - God Mode. Makes Geralt immortal. This is very useful when testing fights. Geralt being immortal means there will be no need to repeat the test if he is killed. - Show game time. Displays the current game time in the bottom left corner:

R&TG055


- Report current kill list. Displays a list of currently dead characters in the Aurora log in the bottom part of the screen:

R&TG056


The character tag and the number of characters with that given tag which have been killed are displayed. If the Aurora log window is not available, select Utility Windows -> Aurora Log from the View menu:

R&TG057


- Show all journal entries. Displays all the journal entries in the Aurora log window:

R&TG058


- Draw Triggers. Displays triggers in the currently running module. - Show Perception Range. Displays the perception range of every spawned character:

R&TG059


More about perception has been covered in another chapter of this manual. - Show Attitude To PC. Displays a spawned character’s attitude towards Geralt. This is displayed in a colored circle which appears at the character’s feet:

R&TG060


Green circles mean that a character is friendly towards Geralt, red ones mean that a character is hostile towards Geralt, while blue ones mean that a character is indifferent to Geralt. - Show Affiliations. Shows a character’s faction affiliation. This is displayed in a circle which appears above the character’s head:

R&TG061


Characters belonging to the same faction have the same color circles above their heads. - Show Guarded Zone. Shows the zones which a particular character guards. In our adventure, however, none of the characters plays this role.

- Show Waypoint. Shows all waypoints. In our module there are no waypoints.

- Show Personal Spaces. Shows a how much personal space a character takes up in the module. This is displayed in a circle which appears by the character’s feet:

R&TG062


- Show Path Info. Shows the path to an action point to which a character is heading:

R&TG063


- Show floating text. Shows test information about the character. The text is displayed above the character’s head. Select the kind of information from the menu which will appears after choosing Show floating text from the Debug menu:

R&TG064


This menu functions work like toggles, i.e. each command from the menu can be enabled or disabled. You can also display all the information at once. - Hide all info. Hides all the test information. - AI level and Actions. Displays information about the AI level and actions:

R&TG065


- Combat distances. Displays the distance between characters during combat:

R&TG066


- Name. Displays the character’s name:

R&TG067


- Tag. Displays the character’s tag:

R&TG068


- Spawnset or NPC info. Displays information about a spawn set’s file name and about which story phase an NPC is in:

R&TG069


- NPC Action info. Displays the current action being performed by the character:

R&TG070


- Model Name. Displays the name of the character’s model:

R&TG071


Template. Displays the name of the character’s template:

R&TG072


The last command in the Debug menu is Best Performance. Selecting this command will reduce the graphic effects in the module to the required minimum in order to obtain the best efficiency while testing. This is a very useful command.

That’s it when it comes to the Debug menu. Let’s deal with the last tool for testing modules now, the Game Object Inspector. To display the window, select Utility Windows -> Game Object Inspector from the View menu:

R&TG073


The Game Object Inspector window will appear on the left side of the screen:

R&TG074


This window displays all the necessary information about what is happening on the module being tested. The information is displayed in the form of a tree. Expand the NPC and Spawnsets branches by clicking on the small ‘+’ signs next to the names of the branches:

R&TG075


The NPC branch displays information about all the NPCs in the running module. There is only one NPC in our adventure, Siegfried. As a reminder, we saved his spawnset in the our_siegfried.npc file. Let’s expand this branch:

R&TG076


A variety of information about Siegfried is displayed here: - Story phase¬ – the story phase our NPC is in, - Spawn phase – the spawn phase the NPC is currently in, - Conversation – the conversation currently assigned to the NPC, - Template – the name of the character’s template, - AI system control – whether a particular character is being controlled by the computer (true) or the player (false).

Right-click on the our_siegfried branch and select Open in editor:

R&TG077


This opens Siegfried’s spawn set. You can also right-click on other branches of the tree. This brings up additional commands. For example, right-click on Story phase and select Modify value:

R&TG078


This opens the Select new story phase window, which can be used to change the character’s story phase. In our case this is impossible, however, because Siegfried has only one story phase, Orders.

Now right-click on Conversation and select the Open in editor command:

R&TG079


This opens a conversation file.

The command Refresh view will refresh the content of the Game Object Inspector window. The command Remove all creatures removes all the characters from the Game Object Inspector window, meaning the characters will not be inspected any more.

Let’s expand the next part of the our_siegfried branch. This time it refers to Siegfried’s tag. Information about the character will be displayed:

R&TG080


A lot of branches are displayed. They contain information on practically every subject, from life and energy points to assigned abilities and profiles. To display detailed information, expand whichever branch interests you.

Right-clicking on a sub-branch will bring up commands like Modify value, etc. Now right-click on the branch containing Siegfried’s tag and select Teleport player nearby:

R&TG081


This moves Geralt close to Siegfried. This is useful because it provides a shortcut to a particular character without having to waste time running there. Select Relevant files from the menu:

R&TG082


This display the list of all files linked to the specified character:

R&TG083


Each file can be opened by selecting it from the menu.

Let’s return to the Spawnsets branch, though. Expand the our_jethro branch (which displays the file name of Jethro’s spawn set):

R&TG084


This reveals another branch called poker. As a reminder, poker is the name of a spawn entry in Jethro’s spawnset. Expand the poker branch. This contains other information about Jethro:

R&TG085


- Slots – the number of characters that will be spawned, - Spawned – the number of characters that have already been spawned, - Time to next spawn – the time left until the next spawn, - Killed – the number of characters that have been killed.

Now right-click on the our_jethro branch and select Open in editor:

R&TG086


This opens Jethro’s spawnset. Right-clicking on the poker branch and selecting Open in editor will open Jethro’s template.

Now place Geralt so that he sees a character (but not an NPC). This can be Jethro. Then click on Add Visible Creatures at the top of the Game Object Inspector window:

R&TG087


This adds new sub-branches to the Visible creatures branch, which lists characters currently seen on the screen:

R&TG088


This gives you access to the same data as in case of NPCs.

That’s almost everything when it comes to testing the module. There are a few tricks that you can use, though. Moving the mouse a character and clicking on Y will kill the character. Pressing SHIFT + Y will kill all the characters near the cursor, but remember that you cannot kill NPCs. Placing the cursor on a place and pressing ‘+’ on the numerical keyboard will immediately move Geralt to that location.

Now let’s introduce the changes which have been mentioned. First we’ll change our quest so that the bandit leader and his guards will spawn when Geralt has the quest from Siegfried. As has been explained before, after adding the file to the module we must introduce all the changes at the Module Explorer level. Go to the Module Explorer window. If the window is closed, select Utility Windows -> Module Explorer from the View menu:

R&TG089


The Module Explorer will open on the left side of the screen:

R&TG090


Expand the Quest Definitions branch by clicking on the small ‘+’ sign next to the name of the branch. Then double-click on our_base:

R&TG091


This opens Quests Explorer tab with our quest database:

R&TG092


Double-click on the row containing our quest:

R&TG093


This opens the our_task.qst window containing our quest:

R&TG094


Now we need to introduce the aforementioned changes. Open the Properties window. To do this, select Utility Windows -> Properties from the View menu:

R&TG095


The Properties window will open on the right side of the screen. Now click on Quest Beginning:

R&TG096


Then go to the Properties window. We’ll introduce the changes in the OnPhaseFinished Actions section:

R&TG097


Why there? Because all the actions from the OnPhaseFinished Actions section will occur after the completion of the task. In this case, Quest Beginning is responsible for the actions will occur when Geralt gets this quest from Siegfried. Click the right-hand column opposite the Available Actions attribute and select Enable spawnset from the list:

R&TG098


Then click on the blue ‘+’ sign:

R&TG099


This adds the Enable spawnset action to the OnPhaseFinished Actions section:

R&TG100


Now click on the small yellow icon in the right-hand column opposite the spn_resref attribute:

R&TG101

R&TG102


This opens the standard Windows window used for loading files. Load the spawn set for the Professor, the leader of the bandits. Go to the Data\Templates\Spawnsets\Enemies folder, where the spawn set is saved. Select the file called our_professor.spn and click Open. The our_professor.spn spawn set will appear opposite the spn_resref attribute:

R&TG103


Now we need to do the same for the Professor’s personal guards. For each, add the Enable spawnset action the OnPhaseFinished Actions section. Click on the small yellow icon in the right-hand column opposite the spn_resref attribute, and assign the file called our_bandit.spn:

R&TG104


That’s it. The changes have been made but still need to be saved. We need to save both the updated action and the module. Start with the quest. In the File menu, choose Save our_task.qst:

R&TG105


If Save our_task.qst does not appear in the drop down menu, or if a different file name is displayed, it means that the our_task.qst window is not active at the moment. To activate it just click the window’s title bar and then choose Save our_task.qst in the File menu. Now save the module. To do this, choose Save Module in the Module menu:

R&TG106


We still need to create the second quest, however. This is the so-called “initiating quest”, which will activate along with our adventure when the game launches. Naturally, the player will not even be aware of the quest’s existence – it just turns on the necessary character spawn sets.

Now we’ll discuss how to create a special quest which is automatically added to the quest database. To do this, go to the Quest Explorer window. Right-click any row and choose Add New Quest To -> our_base from the menu:

R&TG107


This opens the standard Windows window used for saving files. Go to the Data\Quests folder, type in our_init and click Save. The Enter Quest Name window will appear:

R&TG108


Type the quest name in the Name field. Type in initialization and click OK. The initialization quest will now be automatically added to our database.

R&TG109


Double-click the new quest:

R&TG110


This opens a new window called our_init.qst:

R&TG111


Because the quest is simply required to start our adventure, we do not need to type in any quest phase names, etc. The quest needs to possess one conditional phase, though. To do this, right-click Quest Beginning and select Insert Phase -> Conditional Phase from the menu:

R&TG112


A new Enter name window will appear. Leave the proposed name as Phase 1 and just click OK. Now go to the Properties window and open the OnPhaseFinished Actions section. Because the Quest Beginning does not have any actions assigned to it, this means that this quest will become active upon the loading of the module and will automatically execute all the actions found in the OnPhaseFinished Actions group.

This quest is used just to turn on the spawn sets for Jethro and the wolves. To do this, go to the Enable spawnset action in the OnPhaseFinished Actions section. Click the right-hand column opposite the Available Actions attribute, choose Enable spawnset and then click the blue “+” sign next to the chosen action:

R&TG113


Now click on the yellow icon in the right-hand column found opposite the spn_resref attribute. This opens the standard Windows window used for loading files. Go to the Data\Templates\Spawnsets\Commoners folder, choose our_jethro.spn and click Open:

R&TG114


The file our_jethro.spn is now assigned to the spn_resref attribute.

We still have to add one more Enable spawnset action for the wolves. Assign the our_wolf.spn file found in the Data\Templates\Spawnsets\Enemies folder to the spn_resref attribute:

R&TG115


That’s it for this task. Remember that the changes still need to be saved, however. Open the File menu and choose Save our_init.qst:

R&TG116


If Save our_init.qst does not appear in the drop down menu, or if a different file name is displayed, it means that the window our_init.qst is not active at the moment. To activate it just click the window’s title bar and then choose Save our_init.qst in the File menu. That’s it.

With this we end a certain phase in the creation of our adventure. Everything is now in place to make our adventure work. If you’ve read the manual attentively up to now, you should be capable of creating adventures on your own. Don’t be discouraged if your first adventures are fairly simple – with time and experience with the D’jinni Editor your proficiency and ingenuity in using it will inevitably grow.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.