Module creation[]
Start the D’jinni Editor. In order to create a new module, choose New module (.adv) from the Module menu:
The Module Explorer will open on the left side of the screen:
The window’s content is displayed as a tree. At the moment, all you can see is [new module] and two branches:
- Module Properties – sets the module’s attributes,
- Areas – contains the list of all the areas in this module. At the moment no areas exist, hence the list is empty.
Area creation[]
Now we are going to add the first area. To do so, right-click on the Areas branch:
and choose New Area from the menu:
This will open a standard Windows window used for loading files. Go to the Data\Meshes folder. It contains all the available areas created by The Witcher team. Each area is saved in a separated folder. Open the folder which contains the area you’ve chosen. The best, perhaps, would be the cave located in the g31 folder. Enter the folder, select the g31.set file and click on the Open button. Another window will appear. This time it is the Enter New Area Name window:
Enter the name for the area here, but keep this in mind: the name cannot start with a capital letter and you cannot use non-English letters or other signs, like ! @ # $, for example. If you try to use a capital letter or any other invalid sign, you will get this error message:
If you want to enter more than 16 characters, you will also receive an error message:
And, of course, the name must contain at least one letter. Otherwise you will be informed:
In any of the above cases you won’t be able to use the OK button, thus it will be impossible to create a new area. Enter g31_cave as the name and click on OK in the Enter New Area Name window. The area will be added to our module, but in order to see it we have to open the Areas branch in the Module Explorer by clicking on the small ‘+’ sign next to the name:
Now you can see that a new area has been created. The g31_cave branch is located under Areas:
Open the branch containing the new area by clicking on the small ‘+’ sign located next to its name. Now we have a full view of our module and area:
At the moment, the new area contains three sub-branches:
- Area Properties – sets the area’s attributes (do not confuse this with for Module Properties, which is something completely different,)
- Edit Area – edits the area in question,
- Default – default layer of the area.
Saving your module[]
We should save our module now before we get to more complicated operations. In order to do that, choose Save Module As… from the module menu:
This will open a standard Windows window used for saving files. Go to the Documents and Settings\username\My documents\The Witcher, where the modules will be saved. Enter our_adventure as the name and click on the Save button.
Editing an area[]
Now we can do move on. Let’s start by editing our area. In order to do that, double-click on the Edit Area sub-branch of the area you want to edit:
A new g31_cave window will appear. It contains our area:
Ambient lighting[]
If the area is too dark when it loads, you can brighten it up. In order to do so, choose Ambient -> Medium Ambient from the Render menu:
This immediately makes the area brighter:
Of course you don’t change the lighting of the playable area this way, it’s just useful for editing the area. If you were to run your module now, you would be plunged into complete darkness. We’re going to add some light to the area later.
[]
Now, a couple of words on how to move through the area while you are editing it:
- Use the ←↑↓→ buttons to move through the area,
- Use the W A S D buttons to move the camera,
- In order to turn, right-click on the area and hold, moving the mouse in the desired direction.
Adding a Start Point[]
Now we should add a Start Point. This is the place where Geralt (the player) is going to appear. In other words, it is a place in our module where the game will start. In order to add the Start Point, click on the second icon from the right on the toolbar located above the edited area:
An object representing the Start Point becomes “stuck” to the cursor. Left-click on the spot where you want to place the Start Point and it will be added to the area:
Layers[]
The Start Point is always added to the Default Layer. Now would be a good time to go over what layers are.
Imagine a vast area with hundreds of various objects. If you wanted to change something in one of these objects, finding it would take a lot of time and effort if we didn’t have layers. When you create an area, you can add layers and place different objects on different layers, e.g. Spawn Points on one layer and Action Points on another. The next layer might be used for Placeables (chairs, tables etc.).
You can hide a layer, so the objects that have been placed on it disappear, but only when you edit the area. They will be still present in the game itself. You can also freeze a layer, so that objects on it cannot be changed (you won’t be able to delete or move them, or to change their properties). Layers make our work with the editor easier. Each newly created area has one Default layer:
This is exactly where we’ve added the Start Point. Remember that it doesn’t matter how many layers there are in the area or which of them is active, the Start Point will be always added to the Default Layer. Actually, our module is ready to be run now, but it would be pointless to do so – firstly, we have no attributes set for either the module or the area. Secondly, our area has no lighting, so it would be completely dark. After all, it is a cave.
Module properties[]
Before we add lighting, let’s set the properties of the module. Double-click on the Module Properties branch:
The Module our_adventure properties window appears on the right side of the screen:
The window is divided into two columns. The left one contains the properties, which are divided into the following sections: General, Optimization, Player starting position, Weather, Time and Scripts. In order to switch easily between the sections, you can minimize them by clicking on a small ‘-‘ signs located next to the section names:
When you want to maximize the previously minimized group, click on the small ‘+’ sign located next to that section’s name:
The right-hand column holds the values of the respective attributes. The list is quite long, thus you can scroll up and down using the bar on the right:
Now we are going to set the respective attributes. All will be described along the way.
General Section[]
• Name. Contains the name of the module. In order to save the name, click the right-hand column opposite Name. Enter Our adventure in the window that appears:
Language[]
You can also choose the language version for the name. Choose this from the following list:
Choose FinalEnglish_Short.
• Tag. Designated for the flags describing the given module. It is mainly used in scripts, which we will talk about later in the manual. In order to enter the text, just click the right-hand column opposite Tag and enter our_adventure.
• Description. Not used.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here, for example information on the module.
• Quest Database list. Assigns a Quest Database to the module. Creating such databases and assigning them to a module is described in another chapter of the manual.
• Quest List. Assigns quests to the module. Creating such quests and assigning them to a module is described in another chapter of the manual.
• Story NPC list. Assign an NPC Spawn Set to the module. Creating such Spawn Sets and assigning them to a module is described in another chapter of the manual.
• Spawnset list. Assigns a common character Spawn Set to the module. Creating such Spawn Sets and assigning them to a module is described in another chapter of the manual.
Optimization Section[]
• Cached NSS scripts. Assigns scripts used in the module. These scripts will be loaded with the module (not dynamically, however). Thanks to this our game runs faster, but loading the module may take longer. Scripts are described in another chapter of the manual. In order to assign scripts, click on the small yellow icon located in the right-hand column opposite Cached NSS scripts:
This will open the Resource list window:
At the moment, there are no scripts in the Available resources panel because you haven’t created any yet. But if you want to assign an existing script to the Cached NSS scripts attribute, click on its name in the Available resources panel and then on the ‘<’ button:
The script will then appear in the Added resources panel:
Another way to add a script is to double-click on its name in the Available resources panel. The result will be the same – the script will appear in the Added resources panel. If you want to remove a script from the Added resources panel, double-click on it or simply click on the ‘>’ button:
The script will thus be removed from the Cached NSS script attribute. If you want to assign all the existing scripts (assuming there are several) to the attribute, click on the ‘<<’ button:
A similar operation will remove all assigned scripts. To do so, click on the ‘>>’ button:
If, for any reason, you want to rearrange the scripts in the Added resources panel, all you have to do is to select the given script and click on ‘↑’ or ‘↓’ buttons:
After you’ve added the scripts, click on OK in the Resource list window.
Player starting position Section[]
• Entry area. Contains the area with the Start Point. This is updated automatically whenever you change the Start Point, so you don’t have to change anything here.
• Entry position X, Entry position Y, Entry position Z. These three attributes contain the X, Y, Z coordinates of the Start Point located in the given area. These attributes are also updated automatically whenever you change the Start Point. You don’t have to change anything here.
Weather Section[]
This is the section of Weather attributes used to determining the weather in the module.
• Minimum weather intensity. Determines the intensity of weather (rain or snow) in the module. This is its minimal value. Enter 0 here. To change the setting, click on the right-hand column opposite the Minimum weather intensity attribute. Press ENTER once you’ve entered the value.
• Maximum weather intensity. Determines the intensity of weather (rain or snow) in the module. This is its maximum value. Enter 0 here. To change the setting, click on the right-hand column opposite the Maximum weather intensity attribute. Press ENTER once you’ve entered the value.
• Chance of rain. Determines whether it’s going to rain in the module. This affects the chance of rain in the module, where 0 means rain will never occur and 100 means it will always be raining. Enter 0 here. To change the setting, click on the right-hand column opposite the Chance of rain attribute. Press ENTER once you’ve entered the value.
• Chance of snow. Determines whether it’s going to snow on the module. This affects the chance of snow in the module, where 0 means snow will never occur and 100 means it will always be raining. To change the setting, click on the right-hand column opposite the Chance of snow attribute. Press ENTER once you’ve entered the value.
Time Section[]
This is the section of Time attributes responsible for managing time in the module.
• Minutes per hour. Determines how many minutes of real time will make up an hour in the module. Let’s put 4 here, which means that every 4 minutes of real time will correspond to one hour in the game. In order to enter the value, click on the right-hand column opposite the Minutes per hour attribute. Press ENTER once you’ve entered the value.
• Start day. Determines the starting day of the module, where 1 is Monday and 7 is Sunday. You can put any value from 1 to 7 here. In order to change the value, click on the right-hand column opposite the Start day attribute. Press ENTER once you’ve entered the value.
• Start hour. Determines the starting hour of the module. Enter a value from 0 to 23. In order to change the value, click on the right-hand column opposite the Start hour attribute. Press ENTER once you’ve entered the value.
• Start month. Determines the starting month of the module, where 1 is January and 12 is December. You can put any value from 1 to 12 here. In order to change the value, click on the right-hand column opposite the Start month attribute. Press ENTER once you’ve entered the value.
• Start year. Determines the starting year of the module. You can put any value from 0 to 99 here. If you enter 43, it would mean that you’ve set the year for 1243. In order to change the value, click on the right-hand column opposite the Start year attribute. Press ENTER once you’ve entered the value.
• Dawn hour. Determines the hour at which dawn breaks in the module. You can put any value from 0 to 23 here. Let’s enter 7, which means dawn will break at 7 a.m. In order to change the value, click on the right-hand column opposite the Dawn hour attribute. Press ENTER once you’ve entered the value.
• Dusk hour. Determines the hour at which dusk begins in the module. You can put any value from 0 to 23 here. Let’s enter 20, which means it will start getting dark at 8 p.m. In order to change the value, click on the right-hand column opposite the Dawn hour attribute. Press ENTER once you’ve entered the value.
Scripts Section[]
The attributes in this section are responsible for the scripts that will be run when an event related to the module takes place, i.e. the module gets loaded. More about scripting has been written in another chapter. At the moment I’m only going to describe what the respective attributes are for.
• On client enter. Script gets loaded when the player appears on the module.
• On client leave. Script gets loaded when the player leaves the module.
• On heartbeat. Script gets loaded every 5 seconds.
• On module loaded. Script gets loaded when the module is loaded.
• On module started. Script loaded when the module is started.
• On player death. Script gets loaded when the player dies.
• On player dying. Script gets loaded when the player starts dying.
• On player level-up. Script gets loaded when the player has gained a level.
• On player rest. Script gets loaded when the player is meditating (resting).
• On player respawn. Script gets loaded when the player has respawned.
• On user defined. Script is defined by the user.
In order to assign a given Script to an event, click on the small yellow icon in the right-hand column opposite this event. For example, if you want to assign a script to the On client enter event, click on the yellow icon located in the right-hand column, next to the attribute itself:
This will open the standard Windows window used for loading files. Go to the Data\Scripts folder (this contains all Script files). Look for the file of your choice and click Open.
That’s it for module attributes. Please remember that module attributes apply to the whole module, whereas area attributes, which we are going to set in a minute, apply only to a given area of the module. This way each area constituting a module may have its own, different set of attributes.
Area properties[]
In order to set the attributes for an area, double-click on the Area Properties sub-branch in the area you want to edit:
The Area properties: g31_cave window appears on the right side of the screen:
This window works in the same way as previously described windows. The only things that are different are the sections and the attributes they contain. Now I’m going to describe the individual attributes and give you their proper values.
General Section[]
• Name. Contains the name of the area. In order to enter a name, click on the Name attribute in the right-hand column. Enter Cave in the newly opened window:
Here, too, you can choose a language for the name. Choose the language from the following list:
Choose FinalEnglish_Short.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here, for example information on the area.
• Tag. Designates the flags describing the given area. It is mainly used with scripts, which we will talk about later in the manual. In order to enter the text, just click the right-hand column opposite Tag and enter our_cave.
• Last SET update by. Contains information on the last person to have modified the area. The name is taken directly from the Windows login account. This attribute cannot be changed. It is updated automatically.
• Last SET update date. Contains information on the date and time of the last modification to the area. This attribute cannot be changed. It is updated automatically when the area or the module is saved. The date and time are taken directly from the Windows system.
• Tileset. This attribute contains the name of the mesh (3D object) of the area. You don’t need to change this because it is updated automatically when the area is created. If you want to change the object, i.e. you want to use a different cave that is already in use, click on a small yellow icon in the right-hand column of the Tileset attribute:
This will open the standard Windows window used for loading files. Go to the Data\Meshes folder. Just to remind you: this is the folder containing all the accessible areas created by The Witcher team. Enter the folder with the area you want to use, select the .set file and click on Open.
• Persistent scene. Not used.
Area map Section[]
• Regions bitmap override. Contains the graphical image of your area. Along with the D’jinni Editor and the areas created by The Witcher team, you have also received bitmaps of the areas. These bitmaps serve as area maps that appear when the player presses the M button during the game. In order to assign a bitmap, click on the small yellow icon in the right-hand column opposite the Regions bitmap override attribute:
This will open the standard Windows window used for loading files. Go to the Data\Meshes\g31 folder (this is the folder containing the cave we used for our area), select the regg31_m1.bmp file and click on Open.
• Regions 2da override. Contains the .2da file of our area. These .2da files are simple databases. More about these files has been written in another chapter of the manual. Along with the D’jinni Editor and the areas created by The Witcher team, you have also received .2da files related to a given area. In order to assign the file, click on the small yellow icon in the right-hand column opposite the Regions 2da override attribute:
This will open the standard Windows window used for loading files. Again, go to the Data\Meshes\g31 folder, select the regg31_m1.2da file and click on Open.
• Worldmap region. Determines the position of our area in the overall game world. A map in The Witcher consists of two elements: the map of the area in which Geralt (the player) is currently located; and a map of the region in which the given area is located. By using the Regions bitmap override and Regions 2da override attributes we have defined the map of our area – the cave.
Now we have to establish where the cave itself is located. We do this by using the Worldmap region attribute. For the moment this doesn’t actually matter and later, when you create your own modules and quests, you will certainly know where your areas are located. Choose a region from the list. To change the setting, click opposite the Worldmap region attribute. Choose, for example, the graveyard region. This means that our cave will be located in a cemetery:
When you click the small red icon by the choice list, it will open the reg_worldmap.2da file. This is the database containing all the regions of The Witcher:
Visual Section[]
• Period Settings. Contains the definition for the day-night cycle. It’s obvious that an area looks different in the morning than it does in the afternoon, evening or at night. This doesn’t really matter for us, though, because our area is a cave – it’s mono-atmospheric by default. I’ll tell you how to define the cycles, however. To change the setting, you have to click on the small red icon located in the right-hand column opposite the Period Settings attribute:
Period settings[]
This will open the Period Settings window:
The window is divided into two panels: Periods, containing the defined cycles; and Settings for selected period, containing the settings for the given cycle. First, we have to define the cycle. To change the setting, click on the Periods panel and choose Add New Period from the menu:
Cycle[]
A new cycle will appear in the Periods panel:
By default the cycle lasts from 00:00 to 23:00, i.e. the 24 hours. Of course, you can change it and I’ll tell you how in a minute. If you want to remove a given cycle altogether, right-click on it and choose Remove Period from the menu:
You can define up to 24 cycles – that’s one cycle per hour. Of course it would be pointless to do such a thing. It is usually enough to have one cycle for day-time and one for the night. In the case of our cave, one is enough. Go to the Settings for selected period panel. First set the time for the given cycle. Use the Time field:
Start corresponds to the first hour of the cycle and End to the last. Choose from the list:
As I’ve already said, we need just one cycle for our cave, so we don’t change a thing here. The next field is Fog:
Fog[]
This field is responsible for the fog in the area. What’s the purpose of fog? Firstly, it changes scene – an area covered with a fine mist looks more interesting than one without it. Secondly, it increases the efficiency of our area because far-away objects, obscured by fog, are not visible and thus don’t need to be displayed. This generally works for exteriors.
In the Fog field, choose the distance from Geralt (the player) at which the fog begins to fade. Also set the color of the fog. Notice also that the settings are divided into three categories: Minimum, Medium and Maximum. In order to explain how it works more easily, I’m going to use a different example.
Let’s assume that we’ve got a cycle defined from 21:00 to 7:00. If there were no division between Minimum, Medium and Maximum, the fog would have the same color all the time. It wouldn’t look real, especially considering that it is getting dark at 21:00 and it’s already dark at midnight, while around 05:00 it is getting bright again. Hence, this division into three categories. At 21:00 the fog will have the color defined in the Minimum category, about 01:00 it will assume the color defined in the Medium category and about 07:00 the color of the fog will be as defined in the Maximum category. Of course the colors will change smoothly so that the player won’t notice anything. All the three categories will have the same value for our cycle. Enter 20 as the starting value in all the three categories:
Then enter 70 as the end value:
This means that the fog will begin 20 units from the player and end 70 units from the player. Let’s set the color of the fog now. Click on the black box next to Minimum:
This will open the standard Windows window used for defining colors:
Choose a brown hue:
and click on OK. Repeat this for the other two categories, Medium and Maximum:
Next, set the Skybox Fog field:
This is responsible for the same things as Fog. The only difference is that the Skybox Fog field relates to the fog covering the sky, so it works only for the exteriors. Because our area is a cave, we don’t have to set this field. When you create an open-space area, set the values in the Skybox Fog field the same way we did with the Fog field. The next field is the Clip plane:
Clip plane[]
This field is mainly responsible for the efficiency of our area and for cutting out objects that are distant from the player, as determined in the Far field. Distant objects are not visible to the player, thus they don’t have to be displayed.
In truth, in order to set the optimal distances you have to experiment a bit. Run the module each time and check how it looks in-game. Naturally, when you set the clipping distance too close to the player, it will result in objects appearing right in front of the player. If you set the clipping distance too far away, your module will be very slow because the game will have to display all the distant objects, too.
The Clip plane field also contains the three categories: Minimum, Medium and Maximum. This way, you can create an even more efficient area since the clipping distance can be far shorter at night. After all, it’s dark anyway, so objects distant from the player won’t be visible. I recommend starting with the near distance set at 0.1, and the far distance at 200. Set these values for all three categories:
Light Mod[]
Next is the Light Mod field:
This field is responsible for the light modifier for the area. The Color field contains the color of the modifier, whereas the Factor field contains its multiplier. The light modifier is used for exteriors. In our case, we don’t have to set it. Next is the Shadow field:
Shadow[]
This field determines the color of the shadows thrown by the objects located in the area. It’s black by default, so let’s leave it like that. After all, shadows, especially in a cave, are going to be black. Next is the NightVision Threshold field:
NightVision Threshold[]
This field allows you to set the threshold distance at which the player starts to make out objects in the dark. This works provided the player drinks a nightvision potion, of course. Next is the SpeedTree LOD Distance field:
SpeedTree LOD distance[]
This field is used exclusively for exteriors with trees. Here the multiplier controls the level of detail of the trees. The lower the multiplier, the more real the trees look, but the lower the efficiency of the area. I recommend you increase the value of the multiplier if your area contains a lot of trees, for instance in a forest. Next is the Grass Distances field:
Grass Distances[]
This field is used only for exteriors covered with grass. The Fade field contains the distance from the player at which the grass begins to fade away. If you set this too high, it may decrease the efficiency of the area; if you set it too low, the grass will unrealistically appear right under the player’s feet. The Visibility field contains the distance at which the player is able to see the grass. Lastly we have the Color Filter field:
Color Filter[]
Here you set the filter for colors. The Color field contains a color and the Factor is its multiplier. That’s all when it comes to the cycle settings. Click on OK in the Period Settings window.
Wind Power[]
Determines the wind velocity on the area. Choose the attribute from the list. Because our area is a cave, we’ll set things up to imitate a draft. In order to do so, click on the right-hand column opposite the Wind Power attribute and choose Breeze from the list:
The values you can assign to this attribute are:
- None – no wind,
- Breeze – a little breeze,
- Light – a light wind,
- Medium – a medium wind,
- Heavy – a heavy wind,
- Very heavy – gusting winds.
It’s worth mentioning that objects with physics assigned to them can be blown away by the wind in the area.
Day/Night Cycle[]
Determines whether an area has a day/night cycle. Choose the attribute from the list. Because our area is a cave, we can turn the cycle off. In order to do that, click on the Day/Night Cycle attribute in the right-hand column and choose False from the list:
The values you can assign to this attribute are:
- False – there is no day/night cycle in the area,
- True – there is a day/night cycle in the area.
Is Night[]
Determines whether the area includes periods of night. Choose the attribute from the list. Because there is no night on our area, choose the False attribute from the list. In order to do that, click on the right-hand column and choose False from the list:
The values you can assign to this attribute are:
- False – area does not include periods of night,
- True – area includes periods of night.
Glow intensity[]
Determines the intensity of the glow effect in the area. Enter the value 1 here. In order to do that, click on the right-hand column opposite the Glow intensity attribute.
Glow threshold[]
Determines the distance from the player at which the glow effect starts in the area. Enter 0.2 here. To change the setting, click on the right-hand column opposite the Glow threshold attribute.
Descriptive properties[]
Determines the description of our area. Choose from the list by clicking on the appropriate option. In order to do that, click on the right-hand column and tick the small box next to the option of your choice:
If you want to select all the options, click on the box next to the asterisk:
Because our area is a cave, choose the Underground option:
The values you can assign to this attribute are:
- Interior – the area is the interior of a building, etc.,
- Underground – the area is a cave, etc.,
- Natural – the area is outdoors, e.g. forests, swamp or the streets of a city.
Gameplay Section[]
Loading Screen[]
Determines what picture will appear when the area is being loaded. In order to do that, click on the right-hand column opposite the Loading Screen attribute:
This list contains all the pictures available in The Witcher game. Choose Random from the list. This means that during the loading screen will display a random picture. Click on the small red icon next to the list of choices:
This will open the loadscreen.2da file, the database containing the definitions of all loading screen pictures in The Witcher.
No Resting Allowed[]
Determines whether the player can rest (meditate) in the area. Select the attribute. To change the setting, click on the right-hand column opposite the No Resting Allowed attribute. Because the player will be able to rest in our area, choose false from the list:
The values you can assign to this attribute are:
- False – player can rest (meditate) in the area,
- True – player cannot rest (meditate) in the area.
Safe during day[]
Determines whether it’s safe in the area during the day. Select the attribute. To change the setting, click on the right-hand column opposite the Safe during day attribute. Because our area is a cave, let’s assume it is always unsafe there. Thus, choose the False option:
The values you can assign to this attribute are:
- False – it is always unsafe in the area during the day,
- True – it is always safe in the area during the day.
Remember that when it’s safe, the player cannot use weapons or signs.
Safe during night[]
Determines whether it’s safe in the area during the night. Select the attribute. To change the setting, click on the right-hand column opposite the Safe during night attribute and choose the False option:
The values you can assign to this attribute are:
- False – it is always unsafe in the area during the night,
- True – it is always safe in the area during the night.
Audio Section[]
Environmental Audio (EAX Room)[]
Determines what kind of background sounds can be heard in the area. This determines how sound spreads in different surroundings. The same sound spreads differently in a small room than in a big hall or a cave. Select the attribute. To change the setting, click on the right-hand column opposite the Environmental Audio (EAX Room) attribute and choose the GENERIC option:
This list is very long and contains an option for practically every kind of surroundings. Click on the small red icon next to the list:
This will open the eax_rooms.2da file, the database containing all the background sounds available in The Witcher game. If you don’t know what kind of background sound to assign to the area, choose the GENERIC option.
Battle music[]
Contains the music that will be played during a fight. Select the attribute. To change the setting, click on the right-hand column opposite the Battle music attribute. For example, choose mus_bat_boss1:
Click on the small red icon next to the list of choices:
This will open the ambientmusic.2da file, the database containing all the music available in The Witcher game.
Music during day[]
Contains the music that will be played during the day. Select the attribute. The list contains the same pieces of music as the Battle music attribute. For our area, choose amb_catacombs from the list. When you click on the small red icon next to the list of choices, it will open the ambientmusic.2da file.
Music during night[]
Contains the music that will be played at night. Select the attribute. The list contains the same pieces of music as the Battle music and Music during day attributes. Assign the amb_dungeon piece here. When you click on the small red icon next to the list of choices, it will open the ambientmusic.2da file.
Music delay[]
Determines the time between the end of music and when it starts again. The time is measured in seconds. Click on the right-hand column by the Music delay attribute, type in 2 and press ENTER. This means that music will begin playing again 2 seconds after it stops.
Scripts Section[]
All the attributes of this section are responsible for scripts run when an event related to an area occurs – when the player enters the area, for instance. More about scripting has been written in another chapter of this manual. Here I’m only going to describe the intended use of the respective attributes.
• On Battle Begin. The script is run at the beginning of a fight.
• On Enter. The script is run when the player enters an area.
• On Exit. The script is run when the player leaves an area.
• On heartbeat. The script is run every 5 seconds.
• On user defined. script is defined by the user.
In order to assign a script, click on the small yellow icon located in the right-hand column next to the event to which you want to assign the script. For instance, if you want to assign a script to the On Battle Begin event, click on the yellow icon located in the right-hand column opposite the attribute:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (this contains all the script files), select the file of your choice and click on Open.
That’s it. You’ve set the attributes for the module and the area. Now you can save the module. In order to do that, choose Save Module from the Module menu:
The module, including all changes, will be saved. Now we are going to add lighting to our cave. Before we do that, though, I’m going to describe the various tools located on the toolbar found at the top of the Area Editor:
Area Editor tools[]
Each icon represents a tool. To choose a tool, left-click on the respective icon. If you hover the cursor over an icon and wait a moment, a short tooltip will be displayed underneath. The tools are as follows:
Basic Editing tools[]
Select[]
This is the tool for selecting objects. Use it to select objects located in the area. In order to perform this action, first you have to choose the selection tool by clicking on this icon and then on the object you want to select. If you double-click the object, a Properties window containing the object’s attributes will appear on the right side of the screen.
You can also select more than one object located in the area. You can do this in several ways. First of all, you can press and hold CTRL, then click on the objects you want to select. If several objects are already selected and you wish to deselect one, press SHIFT and then click on the object. You can also select several objects by “drawing” with the mouse. Click and hold the left mouse button and move the mouse so that you “draw” a rectangle that encompasses the objects you wish to select. This is how it looks:
At this moment we’ve got only one object in this area, the Start Point, so only this object can be selected. Once selected, the object can be found inside a white frame:
A selected object is also marked green in the Module Explorer window:
When the Start Point is selected, the Module Properties in the Module Explorer window also gets selected. This happens because double-clicking on the Start Point opens the Properties window containing the module attributes. The Start Point is the only object that cannot be removed from the area after it has been added to it. You can only move it or place it in a different area. Object can be also selected in the Module Explorer window.
Move[]
This tool is used to move objects. In order to do so, first choose the tool by clicking on this icon and then on the object you want to move. The object will be selected, as evidenced by the white frame and three axes placed around it:
These are the axes along which the object can be moved. You can move the object along the X axis (the red line), the Y axis (the green line) and the Z axis (the blue line). Move the cursor over the axis along which you want to move the object. The selected axis will turn white:
This means that the object will be moved along this axis. Click and hold the left mouse button and move the mouse in the direction of your choice. When the object gets to its destination, release the left mouse button.
Rotate[]
This tool is used to rotate objects. In order to do so, choose the tool by clicking on this icon and then on the object you wish to rotate. The object will be selected, as evidenced by the white frame and three circles displayed around the object:
These circles represent the axes you can use to rotate objects. You can rotate along the X axis (the red circle), the Y axis (the green circle) and the Z axis (the blue circle). Move the cursor over the axis along which you want to rotate the object. The selected circle will turn yellow:
This means that the object will be rotated along this axis. Click and hold the left mouse button and move the mouse in the direction of your choice. When the object has been rotated, release the left mouse button.
That’s it when it comes to the Editing Tools. The other tools are used to add or create various objects in the area. They are as follows:
Object manipulation tools[]
Create Placeable[]
This tool is used to add placeables (chairs, tables, pots, chests, fires, etc). By using this tool you can add some detail to various rooms in caves, crypts, and so on. In order to add an object, click on the small downward arrow on the tool icon:
This opens a menu. Click on Select new Placeable template:
This opens the following window:
This window contains all available placeables, displayed as a tree and divided into categories. In order to see the whole category, click on the small ‘+’ sign next to the category name:
Then double-click on the object of your choice:
The object becomes “stuck” to the cursor. Now click on the spot where you want to place the object. The object will be added to the area:
The new object will also appear in the Module Explorer window:
Objects in the Module Explorer window are added in their respective branches. In this case, it’s the Placeables branch because this is the kind of object we’ve just added to our area. This is a very useful way of displaying objects, because it keeps things orderly while you’re working on the area, especially when it is large and full of objects.
As we’ve added one object, let me explain what we can do with it. Right-click on the area. It doesn’t matter whether you do this in the Area Editor window or in the Module Explorer window. This opens a menu:
Now I’m going to describe the respective commands:
Open[]
Opens the Properties window containing the object’s attributes on the right-side of the screen. I’ve described these attributes in another chapter of this manual. In order to open this window, you can also double-click on the name of this object in the Module Explorer window or in the Area Editor window,
Revert[]
This is not used.
Focus on Object[]
Centers the view on the selected object. This is a very useful command when there are a lot of objects in the area and we want to find just one. Search for it in the Module Explorer window, right-click on it and select Focus on Object. This way we can find the object very quickly,
Export Placeables Position[]
Exports the X, Y, Z positions of an object to a text file. When you choose this command, it opens the standard Windows window used for saving files. Enter a name for the file and click on Save. The file can later be opened using a notepad:
This file contains the name of the object and its exact X, Y, Z coordinates in the area (found in square brackets),
Delete Instance[]
Removes the object (its copy, to be precise) from the area. When you choose this command, a window will appear:
Click on Yes and the object will be removed. Remember: Each of the available objects has its own template. The object added to an area is only a copy based on this template. You can also remove an object by clicking on DELETE. Select the object in the Area Editor window and click on DELETE. This will open the Removing objects window:
Click on Yes and the selected objects will be removed.
Update From Template[]
Updates the object’s attributes from its template. If you introduce some changes to the attributes of an object added to the area, they will only apply to that object; if you introduce any changes to the template of an object, they won’t apply to the objects already placed in the area. If you want to update any objects from a modified template, you have to use the Update From Template command,
Edit Template[]
Opens the object template on the right side of the screen. This window contains an object’s attributes. Remember: every object added to an area is only a copy based on its template.
Move To Layer[]
Moves the object onto the selected layer. Layers have been written in another chapter of this manual.
Let me get back to the menu that’s going to appear when you click on the downward arrow icon located next to the tool for adding placeables:
Under the Select new Placeable template command there is a list of the recently used objects. Each time when you select an object in the Select window and click on the new Placeable template command, the object will be added to this list. Thus, you don’t have to go to the Select new Placeable template command each time. Note that one object is already selected:
This is useful when you want to add a number of objects of the same type to an area. Instead of choosing the object several times via the Select new Placeable template command, you can choose it from the list of the recently used objects. Once you’ve done this, it is enough to click on the icon for adding placeables:
The tiny selection arrow located next to the tool icon is unnecessary this time:
Next, just click on the spot where you want to place the object.
Placeable attributes[]
All that is left to be discussed here are placeables’ attributes. Double-click on the object. A Properties window containing the placeable’s attributes will open on the right side of the screen:
Now I’m going to describe the respective attributes:
General Section[]
• Name. Contains the name of the object.
• Tag. Contains the object’s identification tag. Tags are mainly used with scripts.
• Description. Contains a description of the object.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here, for example information on the module.
• TemplateResRef. Contains the template for the object. If you want to change to a different object template, click on the small yellow icon located in the right-hand column opposite the TemplateResRef attribute:
This opens the standard Windows window used for loading files. Go to the Data\Templates\Placeables folder, select the object of your choice and click on Open.
Position Section[]
• Model Scale. Determines the scale of a specified placeable. The object is scaled evenly on the X, Y, Z axes. In order to change the scale of the object, click on the right-hand column opposite the Model Scale attribute and enter the value by which you want to alter the object.
• XPosition. Contains the position of the placeable on the X axis. This attribute is automatically updated whenever you move the object.
• YPosition. Contains the position of the placeable on the Y axis. This attribute is automatically updated whenever you move the object.
• ZPosition. Contains the position of the placeable on the Z axis. This attribute is automatically updated whenever you move the object.
Transition Section[]
• Waypoint Tag. Contains the identification tag which is used when the player teleports to a new area. Any placeable can serve as the destination point of the teleportation. Remember that the tags of the objects to and from which the player teleports must be the same. More about movement between areas has been covered in another chapter of this manual.
Attributes Section[]
• Action. Not used.
• Model name. Chooses the 3D model of the specified placeable. In order to select a different model, click on the small yellow icon located in the right-hand column opposite the Model name attribute:
This opens the standard Windows window used for loading files. Go to the Data\Meshes folder (which contains all the object models), select the file of your choice and click on Open.
• Effect Name. Chooses a special effect attached to the specified placeable. This could, for example, be a burning torch which is created when fire is applied to a wooden object. In order to add a special effect, click on the small yellow icon located in the right-hand column opposite the Effect Name attribute:
This opens the standard Windows window used for loading files. Go to the Data\FX folder (which contains all the special effects), select the file of your choice and click on Open.
• Plot. Determines whether the specified placeable is related to the storyline. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Plot attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object is not related to the plot,
- True – object is related to the plot.
• Durability. Determines how durable the specified placeable is. In order to set the durability, click on the right-hand column opposite the Durability attribute and enter a value.
• Usable. Determines whether the specified placeable can be used by the player. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Usable attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object cannot be used,
- True – object can be used.
• Usable when empty. Determines whether the specified placeable can be used once empty. This refers to objects like barrels or chests. Depending on its settings, after you remove the contents of the object it will either be possible or impossible to open it again. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Usable when empty attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object cannot be used again once empty,
- True – object can be used again once empty.
• Static placeable. Determines whether the specified placeable is static. A static object cannot be moved. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Static placeable attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object is not static,
- True – object is static.
• Hilight. Not used.
• No preload. Determines whether the specified placeable is to be loaded in advance, i.e. along with the module itself, or when it becomes needed in the game. When an object is loaded along with the module, it can speed up the module performance, but may slow the loading of the module. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the No preload attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object will not be loaded in advance.
- True – object will be loaded in advance.
• Use Physics. Determines whether the specified placeable is affected by the game’s physics system. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Use Physics attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object is not affected by the game’s physics system,
- True – object is affected by the game’s physics system.
• PWK collides with Physics. Not used.
• Improvised Weapon. Not used.
• Conversation. Contains a file with a conversation. A “conversational” object could be, for example, a statue bearing a caption. I’ve written about conversations in another chapter of this manual. In order to assign a file with a conversation, click on the small yellow icon located in the right-hand column opposite the Conversation attribute:
This will open the standard Windows window used for loading files. Go to the \Data\Dialogues\ folder (which contains all the files with a conversation), select the file of your choice and click on Open.
• Open State. Determines the initial state of the specified placeable. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Open State attribute and select the appropriate option. You can choose from the following (the names speak for themselves):
- Default,
- Open,
- Closed,
- Destroyed,
- Activated,
- Deactivated,
- Dead.
• Sound Type. Determines the kind of sound that will be played when the player interacts with a placeable (for instance, opens a chest). Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Sound Type attribute and select the appropriate option. You can choose from the sounds produced by the following placeables (the names speak for themselves):
- corpse,
- stone_plate,
- trap_spike,
- trap_knife,
- trap_blade,
- secr_stonewall,
- door_tomp,
- door_wooden,
- door_wooden2,
- door_fence,
- door_fence2,
- destroy_wall,
- chest_open,
- gate_wood.
Click on the small red icon located in the right-hand column opposite the Sound Type attribute:
This will open the placeableobjsnds.2da file, the database containing the definitions of all the sound types.
• Usable in combat. Determines whether the specified placeable can be used during a fight. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Usable in combat attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object cannot be used during a fight,
- True – object can be used during a fight.
• Door cursor. Determines whether a door cursor is to be displayed when you run the cursor over the specified placeable. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Door cursor attribute and select the appropriate option. The values you can assign to this attribute are:
- False – a door cursor will not be displayed,
- True – a door cursor will be displayed.
Inventory Section[]
• Has Inventory. Determines whether the specified placeable contains equipment. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Has Inventory attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object does not contain equipment,
- True – object contains equipment.
• Items. Determines the equipment that can be found inside the specified placeable. In order to add some equipment, click on the small red icon located in the right-hand column opposite the Items attribute:
More about the creation of equipment has been covered in another chapter of this manual.
• Store. Contains the storage template file. A store can be a chest in which Geralt (the player) can store items he doesn’t need at the moment. In truth, stores are created by means of the shop template, that’s why the storage template is assigned to this attribute (the store does not have its own template.) More about the creation of a store has been covered in another chapter of this manual. In order to assign a store file click on the small yellow icon located in the right-hand column by the Store attribute:
This opens the standard Windows window used for loading files. Go to the Data\Templates\Shops folder (which contains all the shop templates,) select the file of your choice and click on Open.
• Take Only. Determines whether it is only possible to take items out of the specified placeable and not to put anything inside.) I’m sure that during the game you’ve encounter many such chests or other placeables. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Take Only attribute and select the appropriate option. The values you can assign to this attribute are:
- False – it is possible to add items to the placeable,
- True – it is only possible to take items out of the placeable.
Scripts Section[]
The attributes in this section determine the scripts that are going to be triggered by an event, e.g. the player uses a given placeable. More about the scripts has been covered in another chapter of this manual.
• Daily Scripts. Script will be run daily at a given time. To add the appropriate script and define the activation time, click on the small red icon located in the right-hand column opposite the Daily Scripts attribute:
This will open the Daily Scripts window:
To add the appropriate script, right-click in the Scripts panel and select Insert Script from the menu:
Now click on the previously added script and set the time at which the script will be run. Enter the desired values in the Hour and Minute fields:
You can also set the time using the small arrows located next to the Hour and Minute fields:
Next, click on the small box located next to the Script field:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all scripts in the game), select the script to be loaded and click on Open. This way the loaded script will be run daily at the pre-set time. Next, click on OK in the Scripts window. Of course you can add more such scripts. If you want to remove a script, select it in the Script panel and right-click. Next, choose Remove Scripts from the menu:
• On Closed. Script will be run when the placeable is closed.
• On Damaged. Script will be run when the placeable is damaged.
• On Death. Script will be run when the placeable is destroyed.
• On Heartbeat. Script will be run every 5 seconds.
• On Inventory Disturbed. Script will be run when equipment is changed, e.g. an item is taken out of or added to a placeable.
• On Lock. Script will be run when the specified is locked.
• On Melee Attacked. Script will be run when the specified is attacked physically.
• On Open. Script will be run when the specified is opened.
• On Spell Cast At. Script will be run when a spell is cast on the placeable.
• On Unlocked. Script will be run when the specified is unlocked.
• On Used. Script will be run when the specified is used.
• OnUserDefined. Script is defined by the user.
In order to assign a Script, click on the small yellow icon located in the right-hand column opposite the event to which you want to assign the Script. For example, if you want to assign a Script to the On Closed event, click on the yellow icon in the right-hand column opposite this attribute:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all the script files,) select the file of your choice and click on Open.
Physics Section[]
The attributes in this section are responsible for the physics of a placeable.
• Mass. Determines the weight of the specified placeable. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Mass attribute and select the appropriate option. You can choose from the following (the names of the attributes speak for themselves):
- Feather,
- Candle,
- Sword,
- Plank,
- Axe,
- Heavy_Axe,
- Barrel,
- Stone,
- Great_Stone,
- Super_heavy,
- Hardcore_heave,
- BigBarrel,
- WaterBarrel,
- Key (recommended settings.)
Click on the small red icon opposite the list of choices:
This will open the phy_mass.2da file, the database containing the weight definitions.
• Material. Determines what the specified placeable is made of. Choose the attribute from the list. To change the setting, click on the right icon opposite the Material attribute and select the appropriate option. You can choose from the following (the names of the attributes speak for themselves):
- Wood,
- Stone,
- Gum,
- Metal.
Click the small red icon opposite the list of choices:
This will open the phy_material.2da file, the database with the definitions of materials.
• Primitive. Determines the geometric shape that surrounds the specified placeable. This shape will be recognized by the game’s physics system. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Primitive attribute and select the appropriate option. You can choose from the following (the names of the attributes speak for themselves):
- Box,
- Cylinder,
- Sphere,
- Custom (of your choice).
• Aard only. Determines whether the specified placeable can only be affected by the Aard sign. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Aard only attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object will be affected by all events related to the game’s physics system,
- True – object will only be affected by the Aard sign.
• Affected by wind. Determines whether the specified placeable is affected by the wind. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Affected by wind and choose the appropriate option. The values you can assign to this attribute are:
- False – object is not affected by the wind,
- True – object is affected by the wind in accordance with the physics set for the object.
• Pushable. Determines whether the specified placeable can be moved. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Pushable attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object cannot be moved,
- True – object can be moved.
• Sound enabled. Determines whether a sound will be heard when the specified placeable is affected by the game’s physics system. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Sound enabled attribute and select the appropriate option. The values you can assign to this attribute are:
- False – sound will be disabled,
- True – sound will be enabled.
• Sound type. Determines the type of sound that will be heard when the specified placeable is affected by the game’s physics system. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Sound type attribute and select the appropriate option. You can choose from the following (the names of the attributes speak for themselves):
- Basket,
- Candlestick,
- Ceramic_bottle,
- Pillow,
- Shield,
- Skull,
- Stone_block,
- Wood_barrel,
- Wood_box,
- Wood_chair,
- Body,
- Sword,
- Axe,
- Body_animal,
- HeavyGolem.
Click the small red icon located next to the list of choices:
This will open the phy_sound.2da file, the database containing sound definitions and sound scale.
• Asset database.
• Asset name.
• Joint strength. Determines the strength with which objects are attached to each other. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Joint strength attribute and select the appropriate option. You can choose from the following (the names of the attributes speak for themselves):
- Unbreakable,
- Small,
- Medium,
- Big.
Click the small red icon located next to the list of choices:
This will open the phy_joint.2da file, the database containing joint strength definitions.
• Destructible. Determines whether the specified placeable can be destroyed. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Destructible attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object cannot be destroyed,
- True – object can be destroyed.
• Respawn. Determines whether the specified placeable can respawn after being destroyed (i.e. reappear in the same place). Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Respawn attribute and select the appropriate option. The values you can assign to this attribute are:
- False – object cannot respawn after being destroyed,
- True – object can respawn after being destroyed.
Replace Subsection[]
The attributes in this section are responsible for replacing a placeable’s old 3D model with a new one, when the object has been destroyed, for example. This is useful because a placeable should be replaced by wreckage after being destroyed.
• Asset database.
• Asset name.
• Joint strength. Determines the strength that binds objects together.
• Model. Determines the new 3D model of the object which will replace the old one. In order to choose a model, click on the small yellow icon located in the right-hand column opposite the Model attribute:
This opens the standard Windows window used for loading files. Go to the Data\Meshes folder, select the model of your choice (an .mdl file) and click on Open.
• Replace after time. Determines the amount of time after which the 3D models will be swapped. In order to set the time, click on the right-hand column opposite the Replace after time attribute and enter a value.
• Replace on collision. Determines whether a model swap will take place after a collision between objects. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Replace on collision attribute and select the appropriate option. The values you can assign to this attribute are:
- Off – replacement after collision is disabled,
- If_in_sim,
- Small – after a small collision,
- Medium – after a medium collision,
- Big – after a big collision,
- AARD – only when the Aard sign has been used.
Click on the small red icon located next to the list of choices:
This will open the phy_replace_col.2da file, the database containing the definitions of collision strength.
Destructible options Subsection[]
• Destroy after time. Determines the amount of time after which an object will be destroyed. To set the value, click on the right-hand column opposite the Destroy after time attribute and enter the value.
• Start destroy counter. Determines when the countdown to destroy the specified object starts. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Start destroy counter attribute and select the appropriate option. The values you can assign to this attribute are:
- If_in_sim,
- Small_collision – after a small collision,
- Medium_collision – after a medium collision,
- Big_collision – after a big collision.
Create Trigger[]
This tool is used to add triggers to an area. What is a trigger? It is a separate section of an area which is tied to an action. When Geralt (the player) enters this section, it causes whatever is assigned to this section to occur. What happens depends on the trigger itself.
Triggers are added the same way as the placeables. Click on the downward arrow located next to the trigger tool. Choose Select new Trigger template from the menu and select the trigger of your choice in the Select window. Of course, you can also choose from the list of recently used triggers. Adding a trigger works in the same way as in the case of placeables. Please notice that the cursor has changed into a red hand. Now click on the spot where it should be located. A small yellow dot appears on the spot:
Please be aware that, because a trigger is a separate section of the area, it has to be quite big. Theoretically, it can be of any shape, triangular, square etc. When one point is added, move the cursor and click again. A second small yellow dot appears on the area as well as a white line connecting both dots:
Let’s make a rectangular trigger. Move the cursor to another spot and click. Now we’ve got three points and an L-shaped white line:
Move the cursor again to the spot that will complete the rectangle and click. Now we’ve got four yellow dots and a U-shaped white line:
All we have to do now is to join the first and the last points. To do so, return the cursor to the first point and click on it. The points will then be connected and a trigger will be created:
The trigger will also appear in the Module Explorer window. It will be located in the Trigger sub-branch:
You can do the same things with triggers as you can with placeables. All you have to do is right-click on a given trigger and select the appropriate option from the menu. Double-click on a trigger to open the window containing its attributes. It’s the best to do this in the Module Explorer window. The Properties window containing the trigger’s attributes will open on the right side of the screen:
Here we’ll look at the respective attributes:
General Section[]
• Name. Contains the name of the trigger.
• Tag. Contains the identification tag of the trigger. Tags are mainly used with scripts.
• Description. Contains a description of the trigger.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here, for example information on the module.
• TemplateResRef. Contains the template for the trigger. If you want to change to a different template, click on the small yellow icon located in the right-hand column opposite the TemplateResRef attribute:
This opens the standard Windows window used for loading files. Go to the Data\Templates\Triggers folder (which contains all the trigger files), select the file of your choice and click on Open.
Position Section[]
• XPosition. Contains the position of the trigger on the X axis. This is automatically updated each time you change the trigger’s position in the area. You can leave the default settings here.
• YPosition. Contains the position of the trigger on the Y axis. This is automatically updated each time you change the trigger’s position in the area. You can leave the default settings here.
• ZPosition. Contains the position of the trigger on the Z axis. This is automatically updated each time you change the trigger’s position in the area. You can leave the default settings here.
Attributes Section:
• Type. Determines the type of trigger. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Type attribute and select the appropriate option. The values you can assign to this attribute are:
- Generic – a general trigger,
- Area transition – the trigger is used to move between areas.
• Enabled. Determines whether the specified trigger is activated. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Enabled attribute and select the appropriate option. The values you can assign to this attribute are:
- False – trigger is disabled,
- True – trigger is enabled.
• Hilight height. Not used.
• Cursor. Determines the shape of the cursor that appears when you run the mouse over the specified trigger. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Cursor attribute and select the appropriate option. The values you can assign to this attribute are:
- None – no cursor,
- Transition – a cursor indicating that a transition between areas is possible,
- Use – a cursor indicating that object usage is possible,
- Examine – a cursor indicating that examination is possible,
- Talk – a cursor indicating that a conversation is possible,
- Walk – a cursor indicating that walking is possible,
- XWalk,
- Attack – a cursor indicating that attack is possible,
- Magic – a cursor indicating that the use of magic is possible,
- NoUse – a cursor indicating that an object cannot be used,
- Trap – a cursor indicating the presence of a trap.
Click on the small red icon opposite the list of choices:
This will open the cursors.2da file, the database containing the definitions of all cursors available in The Witcher game.
Scripts Section[]
• Daily Scripts. Script will be run daily at a specific time. This refers to game time, of course. To add the appropriate script and define its execution times, click on the small red icon located in the right-hand window opposite the Daily Scripts attribute:
This opens the Daily Scripts window:
Right-click on the Scripts panel and choose Insert Script from the menu:
Now click on the previously added script and set the time at which the script will be run. Enter the values in the Hour and Minute fields:
You can also use the small arrows next to the Hour and Minute fields:
Now click on the small box next to the Script field:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all the scripts), select the script to be loaded and click on Open. This way the chosen script will be run daily at the pre-set time. Next, click on OK in the Scripts window. Of course you can add more such scripts.
To remove a script, select it in the Scripts panel and right-click on it. Choose Remove Script from the menu:
• On Click. Script will be run when the player clicks on the trigger.
• On Enter. Script will be run when the player or a character enters the trigger area.
• On Exit. Script will be run when the player or a character leaves the trigger area.
• On Heartbeat. Script will be run every 5 seconds.
• On User Defined. Script is defined by the user.
To assign the appropriate script to an event, click on the small yellow icon located in the right-hand column opposite the event. For example, if you want to assign a script to the On Click event, click on the yellow icon located in the right-hand column, next to the attribute:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all the script files), select the script of your choice and click on Open.
Advanced Section[]
• Auto remove key. Determines whether a key is automatically removed from the player’s equipment. Wait, what key? You see, a trigger can only be used to transition to a different area if Geralt (the player) has the proper key at his disposal. Choose the attribute from the list. To change the setting click on the right-hand column opposite the Auto remove key attribute and select the appropriate option. The values you can assign to this attribute are:
- False – key will not be removed,
- True – key will be removed.
• Key name. Contains the key’s identification tag. If a trigger is to serve as a door between areas, Geralt (the player) has to have the proper key to activate it. This attribute has to have the same name as the key in Geralt’s equipment or it will not be possible to transition to the next area. In order to enter the tag, click on the right-hand column opposite the Key name attribute and enter the text.
Area transition Section[]
The attributes from this section only apply when a trigger serves as a transition point between areas.
• Target Module. Contains the module to which the player will be teleported. Applies only when the area to which the player is to be teleported is located in a different module. If the area is located in the same module, you don’t have to change a thing here. In order to assign the module click on the small yellow icon located in the right-hand column opposite the Target Module attribute:
This opens the standard Windows window used for loading files. Go to the Documents and Settings\username\My documents\The Witcher folder (which contains all the modules), select the file of your choice and click on Open.
• Destination tag. Contains an object’s identification tag (usually a waypoint) to which Geralt (the player) will be teleported. Remember that the Destination tag attribute has to have the same tag as the object to which Geralt will be teleported. In order to enter the tag, click on the right-hand column opposite the Destination tag attribute and enter the text.
• Loading Screen. Determines which loading screen will appear while the new area is loading. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Loading Screen attribute:
This list contains all the loading screens available in The Witcher. Choose Random from the list. This means that a randomly chosen screen will be displayed when the new area is loading. Click on the small red icon next to the list of choices:
This will open the loadscreen.2da file, the database containing definitions of all the loading screens in The Witcher.
EAX Room Change Section[]
The attributes from this section apply only when a trigger changes the background sound.
• Set new EAX room. Determines whether a new background sound will be set. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Set new EAX room attribute and select the appropriate option. The values you can assign to this attribute are:
- False – background sound will not be changed,
- True – background sound will be changed.
• Effect volume override.
• New room. Determines what new sound type will be heard in a specified area. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the New room and choose an option. The list is very long and contains definitions of practically every area sound. Click on the small red icon next to the list of choices:
This will open the eax_rooms.2da file, the database containing all the area sounds available in The Witcher. If you don’t know what kind of sound to assign to an area, choose the GENERIC option.
• Only while on trigger. Determines whether the background sound changes only when Geralt (the player) or any other character remains within the trigger area. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Only while on trigger attribute and select the appropriate option. The values you can assign to this attribute are:
- False – background sound is to change permanently,
- True – background sound is to change only while Geralt or another character remains within the trigger area.
Sound groups enable / disable Section[]
The attributes from this section work apply when a trigger is used to turn sounds on or off.
• Enable sounds of tags. Contains a list of sound identification tags that can be enabled. In order to assign a tag to the attribute, click on the small red icon located in the right-hand column opposite the Enable sounds of tag attribute:
This opens the String list window:
In order to assign the tag, click on the upper field of the String list window:
Enter the sound tag you wish to enable. Next, click on the Add / Modify button:
The entered tag will be added to the list:
If you want to modify an existing tag, find it on the list in the String list window and click on it. The tag will be displayed in the upper part of the String list window. Now you can modify it. Next, click again on the Add / Modify button. If you want to remove an existing tag, find it on the list in the String list window and click on the Remove button:
Finally, click on the OK button located in the lower part of the String list window. You can add practically any number of tags.
• Disable sounds of tag. Contains a list of sound identification tags that can be disabled. In order to assign a tag to the attribute, click on the small red icon located in the right-hand column opposite the Disable sounds of tag attribute:
This opens the String list attribute. The process of disabling tags is the same as described above in the Enable sounds of tag attribute.
• Fade Time. Determines the length of time a sound will fade away. In order to set the time, click on the right-hand column by the Fade Time attribute and enter a value.
• Reverse of trigger.
• Only while on trigger. Determines whether the background sound is enabled or disabled only when Geralt (the player) or any other character remains within the trigger area. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Only while on trigger attribute and select the appropriate option. The values you can assign to this attribute are:
- False – background sound is to be enabled/disabled permanently,
- True – background sound is to be enabled/disabled only while Geralt or another character remains within the trigger area.
This tool is used to add waypoints to an area. Despite the name, waypoints are not generally used for navigation. In the D’jinni Editor, waypoints are used for two purposes: to show computer-controlled characters where to go when it starts raining; and as transition points between areas. How to create such passages has been covered in another chapter of this manual.
Waypoints are added the same way as placeables. Click on the downward arrow located by the tool and choose Select new Waypoint template from the menu. Next, choose the waypoint in the Select window. You can also use the list of recently used waypoints. Now click on the spot where you want to place the waypoint. The waypoint will be added to the area:
This waypoint will also appear in the Waypoints sub-branch of the Module Explorer window:
Waypoints can be modified the same way as placeables. Right-click on the specified waypoint and choose the appropriate option from the menu. Double-click on the waypoint. A Properties window containing the waypoint’s attributes will appear on the right side of the screen:
Now we’ll look at the respective attributes:
General Section[]
• Name. Contains the name of the waypoint.
• Tag. Contains the waypoint identification tag. Tags are mainly used with scripts. Because waypoints are usually used as destinations to which Geralt teleports, remember that the same tag has to be assigned to the object from which Geralt teleports, usually a doors or trigger.
• Description. Contains a description of the waypoint.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here.
• TemplateResRef. Contains the template for the waypoint. If you want to change to a different template, click on the small yellow icon located in the right-hand column opposite the TemplateResRef attribute:
This opens the standard Windows window used for loading files. Go to the Data\Templates\Waypoints\ folder (which contains all the waypoints,) select the file of your choice and click on Open.
Position Section[]
• XPosition. Contains the position of the waypoint on the X axis. This attribute is automatically updated whenever you move the object. You can leave the default settings here.
• YPosition. Contains the position of the waypoint on the Y axis. This attribute is automatically updated whenever you move the object. You can leave the default settings here.
• ZPosition. Contains the position of the waypoint on the Z axis. This attribute is automatically updated whenever you move the object. You can leave the default settings here.
• Model number. Determines the number of the 3D model depicting the waypoint. This is set as a yellow flag. In order to change the number, click on the right-hand column opposite the Model number attribute and enter a value. You can also change the value by clicking on the small arrows located in the right-hand column:
Attributes Section[]
• Type. Determines the waypoint type. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Type attribute and select the appropriate option. The values you can assign to this attribute are:
- Normal – typical waypoint,
- Ingame marker – waypoint is marked on the in-game map,
- Editor marker – waypoint is marked only in the D’jinni Editor.
Map marker Section[]
• Is map marker. Determines whether the specified waypoint is marked on the map. Using a waypoint you can mark a place where: a quest has to be carried out; a cave entrance is located; an important character is standing, etc. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Is map marker attribute and select the appropriate option. The values you can assign to this attribute are:
- False – waypoint is not a marker,
- True – waypoint is a marker.
• Note text. Contains the text that is going to appear when you run the cursor over the specified marker on the in-game map. In order to enter text, click on field beneath the Note text attribute and enter the text. It is also possible to select a different language for the description:
• Visible as. Determines how the marker will be displayed on the map. Markers are visible as different colors depending on their purpose, whether for quests, characters, etc. In order to choose how the marker will be displayed on the map, click on the right-hand column opposite the Visible as attribute and select the appropriate option. You can choose from the following (the names of the attributes speak for themselves):
- NPC,
- Quest,
- ImportantPlace,
- Shop,
- SwordUpgrade – the smith (you can upgrade your swords here),
- Campfire,
- Herb,
- PlaceOfPower,
- CircleOfElement,
- User – determined by the user.
Click on the small red icon located next to the list of choices:
This will open the mapmarkers.2da file, the database containing marker definitions.
• Marker Enable. Determines whether the specified marker is enabled. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Marker Enable attribute and select the appropriate option. The values you can assign to this attribute are:
- False – marker is disabled,
- True – marker is enabled.
Scripts Section:
• Daily Scripts. Script will be run daily at a given time. This refers to game time, of course. In order to add the appropriate script and define when it occurs, click on the small red icon located in the right-side window opposite the Daily Scripts attribute:
A Daily Scripts window will open:
In order to add the appropriate script, right-click on the Scripts panel and choose Insert Script in the menu:
Now, click on the previously added script and set the time at which the script will be run. Enter the appropriate values in the Hour and Minute fields:
You can also set the time using the small arrows located next to the Hour and Minute fields:
Next, click on the box next to the Script field:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all the scripts,) select the script that will be loaded and click on Open. Loaded this way, the script will run daily at the pre-set time. Next, click on OK in the Scripts window. Of course you can add more such scripts. If you want to remove a script, select it in the Scripts panel and right-click on it. Choose Remove Script from the menu:
This tool is used to add spawn points to an area. I’ve already covered spawn points in another chapter of this manual. Now we’re going to discuss how spawn points are used to respawn characters. They are added the same way as placeables.
Click on the downward arrow located next to the tool and choose Select new Spawnpoint template from the menu. Next, choose the spawn point in the Select window. You can also use the list of recently used spawn points. Now click on the spot where you want to place the spawn point. It will be added to the area:
This spawn point will also appear in the Spawnpoints sub-branch of the Module Explorer window:
Spawn points can be modified the same way as placeables. Right-click on the spawn point and select the appropriate option from the menu. Double-click on the spawn point. A Properties window containing the spawn point’s attributes will appear on the right side of the screen:
These have been already described in another chapter of this manual.
This tool is used to add items to the area. Items consist mainly of weapons, potions, armor, alchemical ingredients and so on. It is advisable to put items into other placeables, like chests or barrels. They are not supposed to be left scattered around on the ground. Items are added the same way as placeables.
Click on the downward arrow located next to the tool and choose Select new Item template from the menu. Next, choose an item in the Select window. You can also use the list of recently used items. Next, click on the spot where you want to place the item. It will be added to the area and appear in the Items sub-branch of the Module Explorer window:
Items can be modified the same way as placeables. Right-click on an item and choose the appropriate option from the menu. Double-click on the item. A Properties window containing the item’s attributes will appear on the right side of the screen:
Let’s look at the respective attributes:
General Section[]
• Name. Contains the name of the item.
• Tag. Contains the item identification tag. Tags are mainly used with scripts.
• Description. Contains the description of the item displayed in the player’s equipment.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here.
• TemplateResRef. Contains the template for the item. If you want to change to a different template, click on the small yellow icon located in the right-hand column opposite the TemplateResRef attribute:
This opens the standard Windows window used for loading files. Go to the Data\Templates\Items folder (which contains all the items), select the file of your choice and click on Open.
• MiniGameData.
• Virtual Item. Determines whether the item is virtual. Virtual items are those with compartments for other items. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Virtual Item attribute and select the appropriate option. The values you can assign to this attribute are:
- False – item is not virtual,
- True – item is virtual.
• Readable Item. Determines whether the item can be read by the player. These are items like books, contracts or notes. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Readable Item attribute and select the appropriate option. The values you can assign to this attribute are:
- False – item cannot be read,
- True – item can be read.
• Name Color (hex). Contains a color code, saved in hex format. The name of the item in the player’s equipment will be displayed in this color.
• Desc Color (hex). Contains a color code, saved in the hex format. The description of the item in the player’s equipment will be displayed in this color.
Position Section:
• Model Scale. Determines the scale of the item. The item is scaled evenly on the X, Y, Z axes. In order to change the scale of the item, click on the right-hand column opposite the Model Scale attribute and enter the value by which you want to alter the item.
• XPosition. Contains the position of the item on the X axis. This attribute is automatically updated whenever you move the item. You can leave the default settings here.
• YPosition. Contains the position of the item on the Y axis. This attribute is automatically updated whenever you move the item. You can leave the default settings here.
• ZPosition. Contains the position of the item on the Z axis. This attribute is automatically updated whenever you move the item. You can leave the default settings here.
Attributes Section:
• Base type name. Determines the base group for the given item. For example, the base group for a torch may be a club. Choose the attribute from the list. To change the setting, click on the right-hand column opposite the Base type name and choose the appropriate option. The list is very long. You can choose from the following (the names of the groups speak for themselves):
- torch,
- steelsword,
- silversword,
- long_axe,
- long_club,
- long_flail,
- crossbow,
- bow,
- short_flail,
- pole_halberd,
- potion_unfinished – the result of the unsuccessful brewing of alchemical ingredients,
- potion_poison – the result of the unsuccessful brewing of alchemical ingredients,
- short_axe,
- ammunition_arrow,
- dagger,
- short_club,
- neckle,
- magical_ring,
- potion,
- ring,
- shield,
- key,
- natural,
- witcher_armor,
- scroll,
- gold,
- gem,
- ingredient,
- upgrade_component,
- spell,
- fists,
- magical_neckle,
- medallion,
- trophy,
- quest,
- mg_dice,
- natural_ranged – ranged weapon used by monsters,
- food,
- other,
- grease,
- bomb,
- drink,
- dice,
- spellranged – ranged spell,
- sp_rngd_amm,
- ammunition_bolt – ammunition for a crossbow
- thorn – thrown by echinops/archespores
- echin_bow – ranged weapon used by echinops/archespores
When you create weapons, you have to choose the base type that is most similar your creation. Click on the small red icon next to the list of choices:
This will open the basicitems.2da file, the database containing the definitions of all basic items in The Witcher.
• Appearance. Determines the appearance of a given object. The numerical value in this attribute changes the object’s appearance. There are two ways to modify this value – enter the appropriate value and hit ENTER, or use the small arrows located next to the Appearance attribute in the right-hand column.
• Model appearance. Determines the 3D appearance of an item. The numerical value in this attribute changes the object’s appearance. There are two ways to modify this value – enter the appropriate value and hit ENTER, or use the small arrows located next to the Model appearance attribute in the right-hand column:
• Plot. Determines if a given item is important to the storyline. To change the setting, click on the right-hand column opposite the Plot attribute and choose the appropriate option. The values you can assign to this attribute are:
- False ¬– item is not important to the plot,
- True – item is important to the plot.
• Quest Item. Determines whether a given item is used in a quest. To change the setting, click on the right-hand column opposite the Quest Item attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item is not used for any quest,
- True – item is used for a quest.
• Quality. Determines item quality. To change the setting, click on the right-hand column opposite the Quality attribute and choose the appropriate option. The values you can assign to this attribute are:
- Very Low – very low item quality,
- Low – low item quality,
- Normal – normal item quality,
- High – high item quality,
- Very High – very high item quality.
• Stack Size. Determines how many of items of the same type are stacked in one inventory slot (one atop the other). This is especially important for things like potions and alchemical ingredients of which there may be several the inventory. To change the quantity, click on the right-hand column opposite the Stack Size attribute, enter the appropriate value and press ENTER.
• Max Stack Size. Determines the maximum amount of items of the same type which can be stacked in one inventory slot. To change the value, click on the right-hand column opposite the Max Stack Size attribute, enter the appropriate value and press ENTER.
• Use Physics. Determines whether an item affected by the game’s physics system, whether it can be blown by the wind, for example. To change the setting, click on the right-hand column opposite the Use Physics attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item not affected by the game’s physics system,
- True – item is affected by the game’s physics system.
• Pickable in combat. Determines whether an item can be picked-up during combat. To change the setting, click on the right-hand column opposite the Pickable attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item cannot be picked-up during combat,
- True – item can be picked-up during combat.
• Abilities. Contains item abilities. The topic of abilities is discussed elsewhere in this manual.
• Persistent item. Not used.
Item description Section[]
• Picture. Contains a picture of the item. This picture is displayed in the player’s inventory. To add a picture, click on the small yellow icon located in the right-hand column opposite the Picture attribute:
This opens the standard Windows window used for loading files. Select the appropriate file (a .tga file) and click on Open.
• Content. Contains the content of a book, for example. To enter a text, click on the right-hand column opposite the Content attribute, enter the appropriate text and press ENTER. It is also possible to select a different language for the description:
Armory items only Section[]
Player Appearance change. Determines a character’s appearance after putting on specific armor. This attribute is important only when an item is armor and can be used by Geralt, i.e. the player. Otherwise, it is irrelevant. To select the appropriate appearance, click on the right-hand column opposite the Player Appearance change and choose the appropriate option from the list. To see a three-dimensional view of the character, select Open appropriate model from the Edit menu:
A 3D model of the character will then appear:
Click on the small red icon located in the right-hand column opposite the Player Appearance change attribute:
This will open the appearance.2da file, the database containing the definitions of particular characters’ appearances in The Witcher.
Alchemy Section[]
Attributes in this group are only relevant if a particular item is an alchemical ingredient.
• AlchemyIngredient. Determines the type of alchemical ingredient. This is only important if an item is truly an alchemical ingredient. To change the setting, click on the right-hand column opposite the AlchemyIngredient attribute and choose the appropriate option. Now Click on the small red icon located next to the selection list:
This will open the alchemy_ingre.2da file, database containing the definitions of all alchemical ingredients available in The Witcher.
• AlchemyBase. Determines the base origin of an alchemical ingredient. To change the setting, click on the right-hand column opposite the AlchemyBase attribute and choose the appropriate option. The values you can assign to this attribute are:
- None,
- BottlePoor,
- BottleStandard,
- BottleGood,
- BottleSuperior,
- GreaseStandard,
- GreaseGood,
- PowderStandard,
- PowderGood.
Click on the small red icon located next to the selection list:
This will open the alchemy_base.2da file, the database containing the definitions of all alchemical ingredient bases available in The Witcher.
Economy Section[]
• Market Category. Determines the category of an item which is available at a shop. To change the setting, click on the right-hand column opposite the Market Category attribute and choose the appropriate option. The values you can assign to this attribute are:
- Alchemy,
- Alcohol,
- AlcoholStrong,
- Armor,
- Book,
- Candy,
- cloth,
- Dice,
- flower,
- Food,
- grease,
- herb,
- Illegal,
- Ingredient,
- MonsterIngredient,
- powder,
- SilverSword,
- torch,
- Trophy,
- Value,
- Weapon,
- WeaponUp – weapon upgrades,
- WitcherAlchemy – witchers’ alchemical items.
Click on the small red icon located next to the selection list:
This will open the marketcat.2da file, the database which contains item categories as well as minimum and maximum shop prices.
• Custom Price. Determines the custom price of an item. Prices are quoted in orens (the currency used in The Witcher). To set a price, click on the right-hand column opposite the Custom Price attribute, enter the appropriate value and press ENTER.
• Restore Type. Determines when an item will reappear in a shop, e.g. after it was bought out by Geralt. To change the setting, click on the right-hand column opposite the Restore Type attribute and choose the appropriate option. The values you can assign to this attribute are:
- NextDay – item will reappear the next day,
- ModuleReload – item will reappear after reloading module (i.e. at the moment when Geralt passes from one game module to another),
- PhaseChange ¬– item reappears only after a change in the game phase. Game phases are covered in another chapter of the manual,
- Never ¬– item will never reappear.
Weapon Section[]
Attributes in this group are only relevant if a particular item is a weapon.
• Weapon Type. Determines the type of weapon (if the item is a weapon). To change the setting, click on the right-hand column opposite the Weapon Type attribute and choose the appropriate option. The values you can assign to this attribute are:
- WitcherSteelSword,
- WitcherSilverSword,
- Fistfight,
- Monster – weapon used by monsters, usually claws etc.,
- Bow,
- Crossbow,
- TwoHander – two-handed weapon,
- ShortWeapon,
- Shield,
- Pole,
- Gabriel,
- Sling,
- ThrownArms,
- Improvised,
- Dagger,
- PoleLight,
- SpellMele – close-range combat spell,
- SpellRanged – long-range spell,
- Not a weapon,
• Automatic Weapon Selection. Determines whether a weapon is selected automatically. To change the setting, click on the right-hand column opposite the Automatic Weapon Selection attribute and choose the appropriate option. The values you can assign to this attribute are:
- False ¬– weapon is not selected automatically,
- True – weapon is selected automatically.
• Unarmed Combat Weapon. Determines whether a weapon is used during unarmed combat. To change the setting, click on the right-hand column opposite the Unarmed Combat Weapon attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – weapon is not used during unarmed combat,
- True – weapon is used during unarmed combat.
• Weapon Ability Self. Determines a weapon’s abilities. To set abilities, click on the small red icon located in the right-hand column opposite the Weapon Ability Self attribute:
Weapon abilities are covered in another chapter of this manual.
• Weapon Ability Opponent. Determines the abilities an opponent has during combat when using this item. To set abilities, click on the small red icon located in the right-hand column opposite the Weapon Ability Opponent attribute:
Opponents’ weapon abilities are covered in another chapter of this manual.
• Weapon Slot. Determines in which slot this weapon will be held. To change the setting, click on the right-hand column opposite the Weapon Slot attribute and choose the appropriate option. This is covered in another chapter of this manual.
• Override Attack Distance. Determines the distance at which an attack using an item can take place. To set the distance, click on the small red icon located in the right-hand column opposite the Override Attack Distance attribute, enter the appropriate value and press ENTER.
Inventory Section:
• Has Inventory. Determines whether an item has an inventory. To change the setting, click on the right-hand column opposite the Has Inventory attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item does not have an inventory,
- True – item has an inventory.
• Items. Determines which items are found in an inventory. To add items, click on the small red icon located in the right-hand column opposite the Items attribute:
Inventory creation is covered in another part of this manual.
Scripts Section[]
The attributes in this section determine which scripts will be activated when an event occurs, e.g. when Geralt uses an item.
• Daily Scripts. This script will be run daily at a given time. This refers, of course, to in-game time. To add the appropriate script and define its activation time, click on the small red icon located in the right-hand column opposite the Daily Scripts attribute:
This will open the Daily Scripts window:
To add the appropriate script, right-click in the Scripts panel and select Insert Script from the menu:
Now click on the previously added script and set the time at which the script will be run. Enter the desired values in the Hour and Minute fields:
Hour and minutes can also be set using the small arrows located next to the Hour and Minute fields:
Now click on the small box located next to the Script field:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all scripts in the game), select the script to be loaded and click on Open. This way the loaded script will be run daily at the pre-set time. Next, click on OK in the Scripts window. Of course you can add more such scripts. If you want to remove a script, select it in the Script panel and right-click. Next, choose Remove Scripts from the menu:
• OnIsUsable. This script will be activated when a specified item is used,
• OnJoinAttempt. This script will be activated when an attempt is made to combine specified items.
• OnUsed. This script will be activated when a specified item is used.
• OnUserDefined. This script is defined by the user.
• OnPutIntoInventory. This script will be activated when a specified item is put in the inventory.
• OnRemovedFromInventory. This script will be activated when a specified item is removed from the inventory.
To assign the appropriate script, click on the small yellow icon located in the right-hand column opposite the appropriate event. For example, to assign a script to the OnUsed event, click on the yellow icon opposite this attribute:
This opens the standard Windows window used for saving files. Go to the Data\Scripts folder (which contains all scripts the game), select the appropriate file and click Open.
Physics Section[]
The attributes in this section are responsible for the physics of an item.
• Mass. Determines item mass. To change the setting, click on the right-hand column opposite the Mass attribute and choose the appropriate option. The values you can assign to this attribute are:
- Feather,
- Candle,
- Sword,
- Plank,
- Axe,
- Heavy_Axe,
- Barrel,
- Stone,
- Great_Stone,
- Super_heavy,
- Hardcore_heave,
- BigBarrel,
- WaterBarrel,
- Key.
Click on the small red icon located next to the selection list:
This opens the phy_mass.2da file, the database containing definitions of mass.
• Material. Determines an item’s material composition. To change the setting, click on the right-hand column opposite the Material attribute and choose the appropriate option. The values you can assign to this attribute are:
- Wood,
- Stone,
- Gum,
- Metal,
Click on the small red icon located next to the selection list:
This opens the phy_material.2da file, the database containing definitions of materials.
• Primitive. Determines the solid frame in which an item is described for the purposes of the game’s physics system. To change the setting, click on the right-hand column opposite the Primitive attribute and choose the appropriate option. The values you can assign to this attribute are:
- Box (cube),
- Cylinder,
- Sphere,
- Custom – a custom-chosen solid frame.
• Aard only. Determines whether an item can only be affected by the Aard sign. To change the setting, click on the right-hand column opposite the Aard only attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item will be affected by all events related to the game’s physics system,
- True – item will only be affected by the Aard sign.
• Affected by wind. Determines whether an item is affected by the wind. To change the setting, click on the right-hand column opposite the Affected by wind attribute and select the appropriate attribute options:
- False – item is not affected by wind,
- True – item is affected by the wind in accordance with the physics set for the item.
• Sound enabled. Determines whether a sound will be heard when an item is affected by the game’s physics system. To change the setting, click on the right-hand column opposite the Sound enabled attribute and choose the appropriate option:
- False – sound will be disabled,
- True – sound will be enabled.
• Sound type. Determines the type of sound that will be heard when the item is affected by the game’s physics system. To change the setting, click on the right-hand column opposite the Sound type attribute and choose the appropriate option. The values you can assign to this attribute are:
- Basket,
- Candlestick,
- Ceramic_bottle,
- Pillow,
- Shield,
- Skull,
- Stone_block,
- Wood_barrel,
- Wood_box,
- Wood_chair,
- Body,
- Sword,
- Axe,
- Body_animal,
- HeavyGolem.
Click on the small red icon located next to the selection list:
This opens the phy_sound.2da file, the database containing sound definitions and sound scale.
• Asset database.
• Asset name.
• Joint strength. Determines the strength with which objects are attached to each other. To change the setting, click on the right-hand column opposite the Joint strength attribute and choose the appropriate option. The values you can assign to this attribute are:
- Unbreakable
- Small
- Medium
- Big
Click on the small red icon located next to the selection list:
This opens the phy_joint.2da file, the database containing joint strength definitions.
• Destructable. Determines whether an item can be destroyed. To change the setting, click on the right-hand column opposite the Destructible attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item cannot be destroyed,
- True – item can be destroyed.
• Respawn. Determines whether an item can respawn after being destroyed (i.e. reappear in the same place). To change the setting, click on the right-hand column opposite the Respawn attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – item cannot respawn after being destroyed,
- True – item can respawn after being destroyed.
Replace Subsection[]
The attributes in this section are responsible for replacing an item’s old 3D model with a new one, when the item has been destroyed, for example. This is useful because an item should be replaced by wreckage after being destroyed.
• Asset database.
• Asset name.
• Joint strength. Determines the strength that binds objects together.
• Model. Determines the new 3D model of the item which will replace the old one. In order to choose a model, click on the small yellow icon located in the right-hand column opposite the Model attribute:
This opens the standard Windows window used for loading files. Go to the Data\Meshes folder, select the model of your choice (an .mdl file) and click on Open.
• Replace after time. Determines the amount of time after which the 3D models will be swapped. In order to set the time, click on the right-hand column opposite the Replace after time attribute and enter a value.
• Replace on collision. Determines whether a model swap will take place after a collision between items. To change the setting, click on the right-hand column opposite the Replace on collision attribute and choose the appropriate option. The values you can assign to this attribute are:
- Off – replacement after collision is disabled,
- If_in_sim,
- Small – after a small collision,
- Medium – after a medium collision,
- Big – after a big collision,
- AARD – only after the Aard sign has been used.
Click on the small red icon located next to the selection list:
This will open the phy_replace_col.2da file, the database containing the definitions of collision strength.
Destructable options Subsection:
• Destroy after time. the amount of time after which an object will be destroyed. To set the value, click on the right-hand column opposite the Destroy after time attribute and enter the value.
• Start destroy counter. Determines when the countdown to destroy the specified object starts. To change the setting, click on the right-hand column opposite the Start destroy counter attribute and choose the appropriate option:
- If_in_sim,
- Small_collision – after a small collision,
- Medium_collision – after a medium collision,
- Big_collision – after a big collision.
This tool is used to add action points to an area. Action points, locations at which characters engage in various activities, have been covered in another chapter of this manual.
Action points are added in the same way as placeables. Click on the downward arrow located next to the action point tool. In the Select window, choose the appropriate action point. The list of recent action points can also be used. Now click on the spot where the action point should be added:
The new action point will also appear in the Module Explorer window in the Actionpoints subtree:
The same actions apply to action points as to placeables. Right-click the action point and select the appropriate command from the menu. Not that the menu contains an additional command, Move To Region:
This command moves the action point to another area. Double-click on the action point. A Properties window containing the action point’s attributes will open on the right side of the screen:
These attributes have already been discussed, so we won’t repeat them here.
This tool is used to add sounds to the area. Sound also refers to music in the D’jinni Editor. Any sound that comes to mind, if available, can be added. The sound of wind in a cave, for example.
To add sound, click on the downward arrow located next to the sound tool. From the menu, select the New sound template command. Next, in the Select window choose the appropriate sound. The list of recently used sounds can also be used. Click on the area where the sound is to be added:
The sound will also appear in the Module Explorer window in the Sounds subtree:
The same actions apply to sound as to placeables. Right-click the sound and select the appropriate command from the menu. Then double-click on the sound object. A Properties window containing the sound’s attributes will open on the right side of the screen:
Here we’ll look at the respective attributes:
General Section[]
• Name. Contains the name of the sound. This name is not used by the game.
• Tag. Contains the identification tag of the sound. Tags are mainly used with scripts. More on scripts is covered in another chapter of this manual.
• Description. Contains a description of the sound.
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here.
• TemplateResRef. Contains the template for the sound. If you want to change to a different template, click on the small yellow icon located in the right-hand column opposite the TemplateResRef attribute:
This opens the standard Windows window used for loading files. Go to the Data\Templates\Sounds folder (which contains all sound files), select the appropriate file and click Open.
Position Section[]
• XPosition. Contains the position of the sound on the X axis. This is automatically updated each time you change the sound’s position in the area. You can leave the default settings here.
• YPosition. Contains the position of the sound on the Y axis. This is automatically updated each time you change the sound’s position in the area. You can leave the default settings here.
• ZPosition. Contains the position of the sound on the Z axis. This is automatically updated each time you change the sound’s position in the area. You can leave the default settings here.
Attributes Section[]
• List of sounds to play. Contains the list of sounds to be played. To assign a sound, click on the small yellow icon located opposite the List of sounds to play attribute:
The Resource list window will open. This window was previously discussed in the module attributes section.
• Volume. Determines sound volume. To set the sound volume, click on the right-hand column opposite the Volume attribute, enter the appropriate value and press ENTER. Priority. Determines the priority of a sound played in relation to other sounds. To change the setting, click on the right-hand column opposite the Priority attribute and choose the appropriate option. You can also click on the small red icon located next to the selection list:
This opens the prioritygroups.2da file, the database containing sound settings.
• Sound Position. Determines the position of a sound. To change the setting, click on the right-hand column opposite the Sound Position attribute and choose the appropriate option. The values you can assign to this attribute are:
- Area – wide sound (2D),
- Positional (3D),
- Positional stereo (2D with position).
• 3D sound position. Determines the position of a 3D sound. To change the setting, click on the right-hand column opposite the 3D sound position attribute in the right column and select the option. The values you can assign to this attribute are:
- Specific position – set by the creator of the module,
- Random position each time it is the player – random position each time a sound is played.
• Volume min distance. Determines the sound volume at minimum distance. To set the volume, click on the right-hand column opposite the Volume min distance attribute, enter the appropriate value and press ENTER.
• Volume max distance. Determines the sound volume at maximum distance. To set the volume, click on the right-hand column opposite the Volume max distance attribute, enter appropriate the value and press ENTER.
• Height. Determines sound height. To set the height, click on the right-hand column opposite the Height attribute, enter the appropriate value and press ENTER.
• Random range NS. Contains the random sound range in the north-south position. To set the range, click on the right-hand column opposite the Random range NS attribute, enter the appropriate value and press ENTER.
• Random range WE. Contains the random sound range in the west-east position. To set the range, click on the right-hand column opposite the Random range NS attribute, enter the appropriate value and press ENTER.
• Fade Area Music. Determines whether music played in an area should fade. To change the setting, click on the right-hand column opposite the Fade Area Music attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – music should not fade,
- True – music should fade.
Scripts Section[]
• Daily Scripts. This script will be run daily at a given time. To add the appropriate script and define the activation time, click on the small red icon located in the right-hand column opposite the Daily Scripts attribute:
This will open the Daily Scripts window:
To add the appropriate script, right-click in the Scripts panel and select Insert Script from the menu:
Now click on the previously added script and set the time at which the script will be run. Enter the desired values in the Hour and Minute fields:
You can also set the time using the small arrows located next to the Hour and Minute fields:
Next, click on the small box located next to the Script field:
This opens the standard Windows window used for loading files. Go to the Data\Scripts folder (which contains all scripts in the game), select the script to be loaded and click on Open. This way the loaded script will be run daily at the pre-set time. Next, click on OK in the Scripts window. Of course you can add more such scripts. If you want to remove a script, select it in the Script panel and right-click. Next, choose Remove Scripts from the menu:
Advanced Section[]
• Active. Determines whether a sound is active, and therefore should be played. To change the setting, click on the right-hand column opposite the Active attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – sound is inactive,
- True – sound is active.
• When to play. Determines when a sound is to be played. To change the setting, on the right-hand column opposite the When to play attribute and choose the appropriate option. The values you can assign to this attribute are:
- Specific hours,
- Day,
- Night,
- Always.
• Specific hours. Sets the specific time at which music will be played if the When to play attribute is set to Specific hours. Set the time by clicking the small squares next to the appropriate hour(s) at which the sound is to be played:
Several hours can also be chosen. To select all hours, click on the small square next to the asterisk:
However, you can simply set the When to play attribute to Always if you want the sound played continuously at all hours.
• Play style. Determines sound play style. To change the setting, click on the right-hand column opposite the Play style attribute and choose the appropriate option:
- Play once – sound will be played just once,
- Repeat – sound will be repeated.
• Play order. Determines sound playing order. By using the Resource list window in the List of sounds to play attribute, several sounds can be played simultaneously. Sounds can also be played in a particular order. To change the setting, click on the right-hand column opposite the Play order attribute and choose the appropriate option. The values you can assign to this attribute are:
- Sequential ¬– sounds will be played sequentially, in is the order they are placed in the Resource list window of the List of sound to play attribute,
- Random – sounds will be played randomly.
• Interval between playing sounds (msec.). Determines the interval between sounds. The value is stated in milliseconds. To set the value, click on the right-hand column opposite the Interval between playing sounds (msec.) attribute, enter the appropriate value and press ENTER.
• Interval variation (msec.). Determines the interval after which a sound variation will occur. The value is stated in milliseconds. To set the value, click on the right-hand column opposite the Interval variation (msec.) attribute, enter the appropriate value and press ENTER.
• Volume variation. Determines volume variation. To set the value, click on the right-hand column opposite the Volume variation attribute, enter the appropriate value and press ENTER.
• Pitch variation. Determines pitch variation. To set sound pitch, click on the right-hand column opposite the Pitch variation attribute, enter the appropriate value and press ENTER.
• Seamlessly looping. Determines whether sound looping should be seamless or interrupted by an event. To change the setting, click on the right-hand column opposite the Seamlessly looping attribute and choose the appropriate option. The values you can assign to this attribute are:
- False – sound will loop seamlessly,
- True – sound looping may be interrupted.
This tool is used to add a Start Point. Since we’ve already added a Start Point, we won’t go into further detail here.
Just as reminder, though, the Start Point is the place where Geralt, the player, appears in the module. In other words, this is where the game begins. After adding a start point to an area, removing it will not be possible. It can only be moved to another place or added to another area.
This tool is used to add camera spheres, i.e. points at which the camera “looks”. To add a sphere, click on the camera sphere tool and then click on the area in which the sphere is to be added. The camera sphere will appear in the area:
The new camera sphere will also appear in the Module Explorer in the Camera spheres subtree:
Right-click on the camera sphere entry in the Module Explorer window. This opens a menu which contains the Set camera for this sphere command:
Select this command to add the camera:
The camera will be pointed directly at the sphere which we have added. Note that the camera appears in the location which has been set in the edited area. If you want to point the camera in a different direction, you first have to set the view then select Set camera for this sphere
Double click on the camera sphere. A Properties window containing the camera sphere’s attributes will open on the right side of the screen:
Here we’ll look at the respective attributes:
General Section[]
• Comment. Contains a space in which to write a comment. This is not used by the game, it’s just an information field. You can write whatever you want here.
Position Section[]
• PositionX. Contains the position of the camera sphere on the X axis. This is automatically updated each time you change the sphere’s position in the area. You can leave the default settings here.
• PositionY. Contains the position of the camera sphere on the Y axis. This is automatically updated each time you change the sphere’s position in the area. You can leave the default settings here.
• PositionZ. Contains the position of the camera sphere on the Z axis. This is automatically updated each time you change the sphere’s position in the area. You can leave the default settings here.
Camera Section[]
• PositionX. Contains the position of the camera on the X axis. This is automatically updated each time a camera is assigned to a sphere.
• PositionY. Contains the position of the camera on the Y axis. This is automatically updated each time a camera is assigned to a sphere.
• PositionZ. Contains the position of the camera on the Z axis. This is automatically updated each time a camera is assigned to a sphere.
Attributes Section[]
• Radius. Determines the radius of the sphere. To set the radius, click on the right-hand column opposite the Radius attribute, enter the appropriate value and press ENTER.
That’s it for the Camera Sphere attributes.
Now let’s add some lighting to a new layer of the area. To add a new layer, go to the Module Explorer and right-click on the area in which it is to be added:
Then select Add New Layer from the menu:
This adds the new layer to the area:
The new layer needs a name. Type in lighting and press ENTER:
Now the layer needs to be activated. Remember that a layer needs to be active if you’re going to add items to it. Otherwise, the items will end up in whichever layer was actually active. To activate a layer, right-click on it and select Activate Layer from the menu:
The layer becomes active and visible in bold:
Now items can be added to this layer. Let’s add several fireplaces in the Start Point area. To add a light source the placeables tool must be used.
Find the m0_fireplace01 object. To do that, click on the downward arrow located next to the placeables tool:
Click on Select new Placeable template. Then open the Placeable -> Light_Sources tree and double-click on m0_fireplace01 in the Select window:
Note that the fireplace object will “stick” to the cursor. Now click somewhere near the start point. The fireplace will be added and, after a moment, light up:
Note that the fireplace object is still “stuck” to the cursor, indicating that it can be added repeatedly. To stop adding objects just press ESC.
Now, let’s add a few more fireplaces. This time you can just click on the placeables tool icon:
The fireplace object will immediately appear on the cursor. This happened because the item was added to the list of recently used placeables. You can see other recently used objects by clicking on the downward arrow located next to the placeables tool. The m0_fireplace01 object is located on the list and highlighted:
Now place several more fireplaces in the Start Point area and press ESC.
All of the new fireplace objects appear in the Module Explorer window on the lighting layer in the Placeables subtree:
Since there are already several items on the layer, let’s look at some of the commands available here. Right-click on the lighting layer again:
- Select all Instances – all items on a layer will be selected,
- Freeze Layer – will “freeze” a layer. Note, all the items in a layer have become lighter:
This indicates that all items on the layer are inaccessible – they cannot be selected, moved, rotated, removed, etc. This command is a very useful, particularly when there are many objects in an area and you don’t want to accidentally interact with some. To “unfreeze” a layer, select the command Freeze layer from the Layer menu again.
- Hide Layer – hides all objects on a particular layer. Note that all objects on a layer have been crossed-out:
These objects have also disappeared from the area:
They are still there, however, just hidden. This command is also a very useful. Displaying a large number of objects in the area may slow down the D’jinni Editor. Using this command, items currently not in use can be hidden, speeding up the work of the editor. To reveal the items again, select the Hide Layer command from the Layer menu.
- Starting Layer – the layer which holds the player’s starting position.
- Delete Layer – removes a layer. After selecting this command, the Deleting Layer window will appear:
If ‘Yes’ is selected, the layer will be deleted. All of the objects on that layer will be moved to the default layer:
To delete a layer along with the objects on it, select Delete all instances in the Deleting Layer window:
Click ‘Yes’. The layer and all its objects will be deleted:
The objects will also be removed from the area:
In this case, the objects are gone for good. There is no possibility of undeleting them.
- Rename Layer – renames a layer. After selecting this command, type in a new name and press ENTER.
That’s it for layers. Let’s take a quick look at commands for the Areas menu. To do so, right-click on the tree with the area name:
The following menu will open:
- Revert – not used,
- Focus on Starting Point – centers the Area Editor window on the Start Point,
- Area Properties – opens the Properties window containing the area’s attributes
- Edit Area – opens an area for editing,
- Rename Area – renames an area,
- Delete Area – deletes an area,
- Save Area – saves changes to an area,
- Add New Layer – adds a new layer,
- Select All Instances –selects all objects located on a layer.