Djinni Wiki

Module creation[]

Start the D’jinni Editor. In order to create a new module, choose New module (.adv) from the Module menu:


Modules1


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


Modules2


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:


Modules3


and choose New Area from the menu:


Modules4


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:


Modules5


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:


Modules6


If you want to enter more than 16 characters, you will also receive an error message:


Modules7


And, of course, the name must contain at least one letter. Otherwise you will be informed:


Modules8


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:


Modules9


Now you can see that a new area has been created. The g31_cave branch is located under Areas:


Modules10


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:


Modules11


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:


Modules12


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:

Modules13


A new g31_cave window will appear. It contains our area:


Modules15

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:


Modules16


This immediately makes the area brighter:


Modules17


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.

Navigating an area[]

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:


Modules18


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:


Modules19

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:


Modules20


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:


Modules21


The Module our_adventure properties window appears on the right side of the screen:


Modules22


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:


Modules23


When you want to maximize the previously minimized group, click on the small ‘+’ sign located next to that section’s name:


Modules24


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:


Modules25


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:


Modules26

Language[]

You can also choose the language version for the name. Choose this from the following list:


Modules27


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:


Modules28


This will open the Resource list window:


Modules29


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:


Modules30


The script will then appear in the Added resources panel:


Modules31


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:


Modules32


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:


Modules33


A similar operation will remove all assigned scripts. To do so, click on the ‘>>’ button:


Modules34


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:


Modules35


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:


Modules36


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:


Modules37


The Area properties: g31_cave window appears on the right side of the screen:


Modules38


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:


Modules39


Here, too, you can choose a language for the name. Choose the language from the following list:


Modules40


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:


Modules41


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:


Modules42


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:


Modules43


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:


Modules44


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:


Modules45


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:


Modules46

Period settings[]

This will open the Period Settings window:


Modules47


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[]

Modules48


A new cycle will appear in the Periods panel:


Modules49


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:


Modules50


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:


Modules51


Start corresponds to the first hour of the cycle and End to the last. Choose from the list:


Modules52


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[]

Modules53


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:


Modules54


Then enter 70 as the end value:


Modules55


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:


Modules56


This will open the standard Windows window used for defining colors:


Modules57


Choose a brown hue:


Modules58


and click on OK. Repeat this for the other two categories, Medium and Maximum:


Modules59


Next, set the Skybox Fog field:


Modules60


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[]

Modules61


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:


Modules62

Light Mod[]

Next is the Light Mod field:


Modules63


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[]

Modules64


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[]

Modules65


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[]

Modules66


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[]

Modules67


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[]

Modules68


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:


Modules69


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:


Modules70


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:


Modules71


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:


Modules72


If you want to select all the options, click on the box next to the asterisk:


Modules73


Because our area is a cave, choose the Underground option:


Modules74


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:


Modules75


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:


Modules76


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:


Modules77


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:


Modules78


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:


Modules79


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:


Modules80


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:


Modules81


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:


Modules82


Click on the small red icon next to the list of choices:


Modules83


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:


Modules84


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:


Modules85


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:


Modules86

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[]

Modules87


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:


Modules88


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:


Modules89


A selected object is also marked green in the Module Explorer window:


Modules90


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[]

Modules91


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:


Modules92


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:


Modules93


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[]

Modules94


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:


Modules95


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:


Modules96


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[]

Modules97


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:


Modules98


This opens a menu. Click on Select new Placeable template:


Modules99


This opens the following window:


Modules100


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:


Modules101


Then double-click on the object of your choice:


Modules102


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:


Modules103


The new object will also appear in the Module Explorer window:


Modules104


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:


Modules105


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:


Modules106


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:


Modules107


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:


Modules108


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:


Modules109


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:


Modules110


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:


Modules111


The tiny selection arrow located next to the tool icon is unnecessary this time:


Modules112


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:


Modules113


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:


Modules114


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:


Modules115


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:


Modules116


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:


Modules117


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:


Modules118


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:


Modules119


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:


Modules120


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:


Modules121


This will open the Daily Scripts window:


Modules122


To add the appropriate script, right-click in the Scripts panel and select Insert Script from the menu:


Modules123


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:


Modules124


You can also set the time using the small arrows located next to the Hour and Minute fields:


Modules125


Next, click on the small box located next to the Script field:


Modules126


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:


Modules127


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:


Modules128


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:


Modules129


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:


Modules130


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:


Modules131


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:


Modules132


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:


Modules133


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:


Modules134


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[]

Modules135


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:


Modules136


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:


Modules137


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:


Modules138


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:


Modules139


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:


Modules140


The trigger will also appear in the Module Explorer window. It will be located in the Trigger sub-branch:


Modules141


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:


Modules142


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:


Modules143


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:


Modules144


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:


Modules145


This opens the Daily Scripts window:


Modules146


Right-click on the Scripts panel and choose Insert Script from the menu:


Modules147


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:


Modules148


You can also use the small arrows next to the Hour and Minute fields:


Modules149


Now click on the small box next to the Script field:


Modules150


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:


Modules151


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:


Modules152


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:


Modules153


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:


Modules154


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:


Modules155


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:


Modules156


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:


Modules157


This opens the String list window:


Modules158


In order to assign the tag, click on the upper field of the String list window:


Modules159


Enter the sound tag you wish to enable. Next, click on the Add / Modify button:


Modules160


The entered tag will be added to the list:


Modules161


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:


Modules162


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:


Modules163


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.


Modules164


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:


Modules165


This waypoint will also appear in the Waypoints sub-branch of the Module Explorer window:


Modules166


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:


Modules167


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:


Modules168


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:


Modules169


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:


Modules170


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:


Modules171


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:


Modules172


A Daily Scripts window will open:


Modules173


In order to add the appropriate script, right-click on the Scripts panel and choose Insert Script in the menu:


Modules174


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:


Modules175


You can also set the time using the small arrows located next to the Hour and Minute fields:


Modules176


Next, click on the box next to the Script field:


Modules177


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:


Modules178


Modules179


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:


Modules180


This spawn point will also appear in the Spawnpoints sub-branch of the Module Explorer window:


Modules181


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:


Modules182


These have been already described in another chapter of this manual.


Modules183


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:


Modules184


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:


Modules185


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:


Modules186


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:


Modules187


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.


Modules188


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:


Modules189


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:


Modules190


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:


Modules191


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:


Modules192


A 3D model of the character will then appear:


Modules193


Click on the small red icon located in the right-hand column opposite the Player Appearance change attribute:


Modules194


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:


Modules195


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:


Modules196


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:


Modules197


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:


Modules198


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:


Modules199


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:


Modules200


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:


Modules201


This will open the Daily Scripts window:


Modules202


To add the appropriate script, right-click in the Scripts panel and select Insert Script from the menu:


Modules203


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:


Modules204


Hour and minutes can also be set using the small arrows located next to the Hour and Minute fields:


Modules205


Now click on the small box located next to the Script field:


Modules206


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:


Modules207


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:


Modules208


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:


Modules209


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:


Modules210


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:


Modules211


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:


Modules212


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:


Modules213


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:


Modules214


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.


Modules215


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:


Module216


The new action point will also appear in the Module Explorer window in the Actionpoints subtree:


Modules216


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:


Modules217


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:


Modules218


These attributes have already been discussed, so we won’t repeat them here.


Modules219


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:


Modules220


The sound will also appear in the Module Explorer window in the Sounds subtree:


Modules221


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:


Modules222


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:


Modules223


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:


Modules224


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:


Modules225


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:


Modules226


This will open the Daily Scripts window:


Modules227


To add the appropriate script, right-click in the Scripts panel and select Insert Script from the menu:


Modules228


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:


Modules229


You can also set the time using the small arrows located next to the Hour and Minute fields:


Modules230


Next, click on the small box located next to the Script field:


Modules231


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:


Modules232


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:


Modules233


Several hours can also be chosen. To select all hours, click on the small square next to the asterisk:


Modules234


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.


Modules235


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.


Modules236


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:


Modules237


The new camera sphere will also appear in the Module Explorer in the Camera spheres subtree:


Modules238


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:


Modules239


Select this command to add the camera:


Modules240


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:


Modules241


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:


Modules242


Then select Add New Layer from the menu:


Modules243


This adds the new layer to the area:


Modules244


The new layer needs a name. Type in lighting and press ENTER:


Modules245


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:


Modules246


The layer becomes active and visible in bold:


Modules247


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:


Modules248


Click on Select new Placeable template. Then open the Placeable -> Light_Sources tree and double-click on m0_fireplace01 in the Select window:


Modules249


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:


Modules250


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:


Modules251


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:


Modules252


Now place several more fireplaces in the Start Point area and press ESC.


Modules253


All of the new fireplace objects appear in the Module Explorer window on the lighting layer in the Placeables subtree:


Modules254


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:


Modules255


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:


Modules256


These objects have also disappeared from the area:


Modules257


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.


Modules258


- Delete Layer – removes a layer. After selecting this command, the Deleting Layer window will appear:


Modules259


If ‘Yes’ is selected, the layer will be deleted. All of the objects on that layer will be moved to the default layer:


Modules260


To delete a layer along with the objects on it, select Delete all instances in the Deleting Layer window:


Modules261


Click ‘Yes’. The layer and all its objects will be deleted:


Modules262


The objects will also be removed from the area:


Modules263


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:


Modules264


The following menu will open:


Modules265


- Revertnot 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.