You searched through the D'Jinni Wiki to make a nice own module and what did you find? A lot of non-working crap, eh?
Well, don't give up, here is a full working tutorial for the most things you will ever need to make a pretty-well-working module with the D'Jinni. First you'll learn the most important things to make a complete small module, and sometimes I'll explain a few tricks you can use with this crappy toolset. But make sure to never forget the most important thing: Save always and ever! Every time you have changed a single file, save! Every time you have placed three or four different placeables in your area, save! And don't open more than three or four areas or dialog or other windows at once, or the D'Jinni will crash. Especially when you're working with the dialogs or within the cutscene editor, save at least every minute and after every bit you've done!
Start the D'Jinni Adventure Editor. First you have to make a new module with an area in it. In the menubar click on "Module", then on "New Module (.adv)". Now make sure you have some important windows open. In the menubar click on "View", then on "Utility Windows" and place a checkmark on the following entries: (Picture 1) Aurora Log, Game Object Inspector, Module Explorer, Properties and Resources Explorer.
Now open the properties for your module. Click on the "Module Explorer"-window on the left side of your screen, if you can't see it, click the little black arrow near the bar and pick the correct window. There is not much in yet, you should see a very small tree with three entries. (Picture 1) Now doubleclick on the entry "Module Properties", on the right side of your screen opens a window now. Here you have to make several entries for your module. (Picture 1)
Name: type in a name for your module
Tag: type in an unique tag for your module, i.e. "my_module_1"
Description: the description for your module, i.e. "What is wrong in Ban Glean? So wrong, that even an experienced witcher...", that's what the player will see when chosing your adventure in the game's adventure list.
Comment: you can type in a comment if you want, i.e. "Made by..."
Quest Database list: not necessary
Quest List: here you have to add all your quests later
Story NPC list: all your NPC's have to be added here later
Spawnset list: here you have to add all the spawnsets later
Cached NSS scripts: not necessary
Entry area, Entry position X, Entry position Y and Entry position Z: you don't have to fill in something here, that happens automatically when a startpoint for the player is set later
Minimum weather intensity, Maximum weather intensity: here you type in a percentage of your chosen weather, i.e. "10" for minimum and "80" for maximum means the rain, snow or whatever has an intensity between 10 and 80 %
Chance of rain: type in if it shall rain extremely all the time ("100") or if it shall never rain ("0"), means the chance of rain can lay between 0 and 100 %
Chance of snow: same as for the rain, type in a number between 0 and 100
Minutes per hour: type in a number that indicates how many minutes one hour in the game should last, i.e. you want one hour realtime to last one hour in game, then type in 60, if you want the time flow faster so that 4 minutes realtime shall be one hour in the game, then type in 4
Start day: type in the starting day, normally it is set to 1 (the game will begin at day 1)
Start hour: type in the time of the day when the game shall begin, i.e. you want Geralt to begin the game in the late afternoon, then type in 17 (that is 5 pm, one day = 24 hours)
Start month, Start year: same as the starting day, type in a month and a year in which the player shall start the game
Dawn hour, Dusk hour: type in when the sun shall rise and go down, i.e. it shall rise at 7 in the morning and dusk shall begin at 20 (8 pm) in the evening
Scripts section: you only need one or two entries later when you make your initializing scripts, I'll describe this section later
When you have finished your entries here, go to the menubar and click "File" and then "Save Module Properties".
Now you have to add similiar entries in the area properties. What area? Well, you first have to add a new area now to your module. In the Module Explorer on the left side of your screen rightclick on the entry "Areas", then click on "New Area", in the opening window now open the folders "Meshes" and then "Locations", here you can see several folders named with "g01, g02, g03...etc.", pick one of those and open it, in my example I used the "g01" area, pick the file inside this folder (g01.set) and click "open", now enter a name for your location or take the one shown (you can also change this later), then hit "OK".
The area "g01" was added to your module, now open the folder-tree and doubleclick "Area Properties", a window for the area properties will be opened on the right side now. It's similiar to the one for the module properties. (Picture 2)
Name: type in a name for this area
Comment: add whatever you want or leave it blank
Tag: add an unique tag for your area, i.e. "old_tavern_01"
Last SET update by, Last SET update date: you don't have to add something here
Tileset: you don't have to change something here
Persistant scene: not necessary, the default entry is FALSE
Regions bitmap override, Regions 2da override: not necessary
Worldmap region: default entry is NO_REGION_SET, you can change this into the possible entries if you want your area shown on the game's worldmap later, i.e. if your area is the village then change this to the "village"-entry, if your area is Vizima change it into the "wyzimrich" or "wyzimpoor"-entry, if you have a tavern in your module that is located in the area of Vizima, change the entry to the "wyzimrich" or "wyzimpoor"-entry
Period Settings: [Pictures 3 and 4] this section is not so easy to explain, I'll make an extra section for this later... this normally is only used for Exterior Areas.
Wind Power: the power of the wind in this area, i.e. you can set it to a light "Breeze" or to a "Heavy" storm
Day/Night Cycle: shall your area have a day/night cycle then set it to TRUE
Is Night: shall it be night the whole time in this area then set it to TRUE, normally it is set to FALSE
Glow intensity: the intensity of the glow in this area, i.e. enter 1 here and the sun is glowing with an intensity of 1, the higher the number the stronger the sun is glowing, set this to "1" that's enough
Glow threshold: the distance where the glow starts (from player's point of view), enter "0.2" here
Descriptive properties: here you can check three possible entries, "Interior", "Underground" or "Natural", for a house chose "Interior", for a field or village chose "Natural" and for a cave chose "Underground"
Loading Screen: here you chose the loading screen that is shown in the game during the loading times, chose "Random" or chose the one for your area, in my example I used the one for g01
No Resting Allowed: here you can chose if the player is allowed to rest or not, i.e. if you want the player to NOT rest in this area then set it to TRUE, the default entry is FALSE which means the player is allowed to rest here
Save during day, safe during night: if you want this area to be save during day/night then set the entries to TRUE, if it shall not be save then set it to FALSE
Environmental Audio (EAX room): here you can add a specific type of echo- or resonance-effects, there is a long list with different entries, i.e. if you have a natural environment like the village-area chose "OUTDOORS_VALLEY", if you have an interior area like a house chose "ROOM" or "LIVINGROOM"
Battle music: here you can chose the music that is played during battles
Music during day, Music during night: you can chose the music that is played during the day or the night here
Music delay: the delay of the music, i.e. if the player enters a house the music starts with a delay of 10 seconds when you enter the number 10 here
Scripts section: not really necessary except for very special purposes of experienced modders
When you have finished your entries here, go to the menubar and click "File" and then "Save Area Properties". Maybe it's wise to save the complete module now, depending on how many things you have done on your module, you should always save the complete module after a few minutes to make sure, that none of your saved files are lost, if the D'Jinni crashes. So go to the menubar and click on "Module", then on "Save Module", type in a name for your module and save. This name will be the name of the .adv-file, it must not have more than 16 letters together with it's ending (so the name must only have 12 letters at maximum).
Note: when clicking on "File" and "Save...(filename)" you only save the single files, such like the properties, but you have to save the complete module to not loose something when D'Jinni will crash. And it will crash, so save the complete module often.
Well, that was the funny stuff, now comes the boring stuff. ;-)
Now it's time to place a few decorations in your area. First open your area by doubleclicking on "Edit Area", in the opening window click on "Entire Geometry", the D'Jinni will add the doors automatically to your area when it is opened the first time, simply click "OK" again. To see something more within your area go to the menubar and click "Render", then on "Ambient" and "Max Ambient". (Picture 5)
In the middle of the screen you see now the opened area. Here you can move with your mouse and with the number-block on your keyboard:
right mousebutton - turn the area around;
left mousebutton - pick all the placeables and stuff within your area;
numbers 4 + 5 - move left + right;
8 - move forward;
2 - move backward;
9- move up;
3 - move down.
Now let's create some placeables in your area, on the symbolbar above the opened area-window choose the fourth symbol from the left side, it's called "Create Placeable". Click on it and then click on "Select New Placeable Template", in the opening window select "Light_Sources" and doubleclick on the "m0_fireplace01" (Picture 5). You now catched it on your mousepointer, place one fireplace in your area. You'll see that this fireplace-template is still hanging on your mousepointer, if you have to place many bushes, stones or similiar things, you can click several times somewhere in your area and easily add a handfull of them.
Items as decoration: You can also add items as decoration into your area, which can later be picked up by the player. (This doesn't work with all items, but at least it works with most weapons and armors.) In the symbolbar of your opened area pick the fifth symbol from right (Picture 5), click on the small black arrow and then "Select New Item Template", you'll see a similiar window as for the placeables, choose "Weapons_and_Armor" and place a small axe (m0_it_saxe05) somewhere in your area.
Layers:
Within the "Module Explorer"-window you can see now, that the area-tree contains a layer named "Default", here are the doors placed and also your fireplace under the branch "Placeables". To make things easier to find in a full module you now should add some more layers. (Picture 6)
Rightclick on your area name "g01", click on "Add New Layer", the new layer will be created and you have to rename it now, call this one "decorations", hit enter or click somewhere with your mouse. Now add two more layers and label them "characters" and "monsters". Fine, now move your fireplace to the layer called "decoration", open the branch "Placeables" within the layer "Default" and rightclick on the "Bonfire(campfire)" which is your fireplace, now chose "Move To Layer" and click on "decoration", the whole "Placeables"-branch is now moved to your "decorations"-layer. (Picture 6)
But attention: the active layer is still the "Default"-layer, so you have to tell the D'Jinni, on which layer you want to place your next placeables!
Rightclick on the "decoration"-layer and click on "Activate Layer", now the "decoration"-layer is the active one and all placeables you add now are stored in this layer.
Usable Placeables:
Now add some more placeables to your area. If you add things like a chest or a barrel which the player can open later and collect the contents, then you have to name it and make it an usable placeable. Add a barrel to your area, then doubleclick on it and the properties for this barrel are shown in the right window. Here fill in "Name", "Tag", "Description", in the Attributes-section fill in if this barrel is "Usable" (TRUE), if it's "Usable when empty" (pick FALSE or TRUE) and pick a "Sound Type". Now lets give this barrel some inventory, "Has Inventory" must be set to TRUE. Under "Items" is a small 2da-icon, click on it and another window will open. (Picture 7)
The list on the right side of this window shows all items that are available. Now pick one and "drag and drop" the item into one of the three areas on the left side. As you can see in the picture (7), the D'Jinni shows you where you can drop it and where not. The first three rows are for potions or food, the next three rows are for herbs (only in the Enhanced Edition, Version 1.4), and the rest is for all other things that do not fit in one of the other two areas. When you have finished putting your desired inventory into the barrel, just click on OK and the window will close, the inventory is now shown in the small line under "Items". Now I recommand to add one more layer for "treasures" and add your filled barrel to this layer, only to make sure that you will find it later more easily.
Move and turn Placeables:
Now let's move the decorations in the correct place and turn them a bit around to make your area look a bit better. To move an object within your area, have a look at the symbolbar at the top of that opened area. The second symbol from the left is for moving placeables in any direction. Click on your object you want to move and then click on the symbol. Three coloured lines appear on the placeable, the green and red ones are for dragging the object left, right, forward or backward, the blue line is for up and down. Simply click on one line and hold the mouse while dragging the object in a direction you want.
Turning an object around is as simple as moving it, select your object and click on the third symbol from left, three coloured circles appear on the object. These indicates the X-, Y- and Z-achsis. While clicking on one of those circles and holding the mousebutton you can turn the object in any direction you want. The work on our area is done for now, let's make some characters yet to bring a bit life into it.
To make a new character or monster you have to make a template for this creature first. From the menubar choose "File", "New", "Template" and "Creature (.utc)". On the right side will open a window with the properties for your new creature. Fill in a "Name", fill in an unique "Tag" for your creature. The unique Tag is important for the scripting later! You don't have to change something in "Body Mode" or "Head Mode" for now, this section does only work with very few models because when you choose an "Appearance" in the next step, the most models are made with their special textures, they simply have no other head or body...
Appearance:
In the "Appearance"-line click on the text to open the pulldown-list (do not click on the small 2da icon, this one will open the "appearance.2da"-file which I'll describe later in the Tips & Tricks Section!). Now search in this pulldown-list for your desired model, i.e. "cr_yaev1_c1g1" and click on it.
NOTE: You can only use the models that begin with the letters "cr_", the "cs_" and "ip_" and others are not working!
You can now open the model (while the template is active!) and show the creature in a separate window, to see how it looks like. Click on "Edit" in the menubar, then on "Open appropriate model" (Picture 8). A new window appears, showing the model, the bone-tree and a timeline, this timeline is for adding new animations but don't waste your time with it, this thing isn't working. All you can do here, is looking at the model to find out if this is the one you want to use for your creature.
Ok, let's go on with this creature and with picture 8, for changing the next few options always click on the text, not on the 2da icon! Add a "Level" and a "Race" for your creature, keep in mind that elves and dwarves are "Nonhumans". Add a "Gender" for your creature, the "Experience Value" indicates the multiplier for the experience points that Geralt recieves for this creature (i.e. if Geralt has a low level and the indicator is set to 10, he will get 100 points, if he has a high level he will get only 50 points, shall he get 100 points on high level you have to put 20 in here). Select a "Movement Rate" and a "Perception Range", the last one indicates the range at which point the creature realizes that it will be killed yet by Geralt, *erh*... it indicates the point at which the creature knows that Geralt is near.
The next line is the "Profile" for this creature, click on the text to open the pulldown-list, now choose every typical character-trait your creature shall have. Is it friendly to our witcher then check the box "Attitude_Friendly", is it another witcher or someone who loves Geralt then check the box for "Affiliation_Witcher" and so on, you can check more than one box. And make sure, that your creature has a "Behaviour" set, this is needed for fights later.
Abilities:
(Picture 8) For adding "Abilities" to your creature-template you have to click on the small 2da-icon this time. Yes, this time do it! A window will open, here you can choose all the abilities your creature shall have. I recommend to use the abilities beginning with "m0_", those are the ones that are (mostly) working.
Inventory Contents:
This is for a character nearly the same as for a chest or the barrel we placed at an earlier point in our area. The only difference is that you can add weapons, armor or rings in the upper part of the inventory window which is now accessible. Search for the "Temerian Steelsword" and place it directly in the characters body section. (Picture 7) You have to scroll down a bit in the list, place the sword in the line called "Steel Sword", give your character a ring and place it in the line called "Right Ring", you can give your creature also a dagger to hold it in the hand, instead of placing it in the line "Short Weapon" simply place it in the line "Right Hand".
If you want your creature to drop loot after being killed, place some Orens and other things in the inventory, click on every thing then to make it "Dropable" (click the item and check the small box called "Dropable" at the bottom of the window). You have to do this for every single item the creature shall drop!
Combat Styles:
Click on the small 2da icon to open the "Combat Styles" window. In the upper part of the window rightclick and click on "Add Style", this opens another window, here you can see three lines. Give your style a name in the first line, let's call the first style "WitcherSteelStrong". Now click on the second line to open the pulldown-list and choose the "WitcherSteelSword" for this style. The line for the "PowerUp" is not used, so click on OK. Now make sure, your style is marked blue, then rightclick in the lower window and click "Add Attack". Another window opens and you can add the needed attacks for the creature's combat style.
Important notes about combat styles and attacks:
First, forget the crap you've found in the D'Jinni Wiki about this. Second, there's a simple way to get access to the attacks CDPR has used in the m1- and m2-modules, refer to my Tips & Tricks section for this. Third, make sure that your creature has the needed abilities to use the weapon and also the styles. A style is not working if the creature hasn't the ability for this weapon. And only to say it, you can name the style "Test" or "Crap" or whatever and it works too, it's not necessary to have the correct name for the style as long as your creature has the abilities to use the weapon, the weapon in its inventory and the needed animations for it and as long as you have filled in the correct attacks for the weapon in this style.
The styles and attacks are as follows:
WitcherSteelFast / WitcherSteelStrong / WitcherSteelGroup / Sword with WitcherSteelSword, these are all one-handed steelswords, this style uses all attacks beginning with "h_" or "m0_" and having "sword1h" in it's name. It also uses all steel-attacks especially for a witcher, i.e. "Steel Sword Fast 04b". (Prefix from seqprefix.2da is "1hf", "1hs" and "1hg" or "1hf" for Sword.)
WitcherSilverFast / WitcherSilverStrong / WitcherSilverGroup with WitcherSilverSword, these are all silverswords, used attacks are the same as for steelswords or the one's named like "Silver Sword..." for witchers. (Prefix from seqprefix.2da is "svf", "svs" and "svg".)
Fistfight / FistCombat / FistfightStrong /FistfightFast / FistfightWitcher / FistfightCommoner with Fistfight or ThrownArms, attacks are all with "fist" in their names. (Prefix from seqprefix.2da is always "fsc".)
Monster with Monster, attacks are all beginning with "m_" or "m0_" and with monster-names in it, i.e. "m0_ghoul_att" or "m_f_can_att_lvl1_01". (Prefix from seqprefix.2da is "M".) A monster has to carry a "Natural Weapon" in it's inventory at the line "1st Creature Weapon", you have to unbif those files... please refer to my Tips & Tricks-section for finding out, how files are "unbiffed".
Bow / Gabriel / Order / Orion with Bow, attacks are all beginning with "h_" or "m_" or "m0_" and with "bow" in it's name. (Prefix from seqprefix.2da is always "bowf".) There are also some monsters that are using a bow like Echinopsae, their attacks have "echin" or "archespor" and sometimes the word "ranged" in their names. Make sure that your Archespore has it's natural weapon bow in it's inventory. There are a few attacks especially for Gabriel and Orion and also one attack for a stone-sling.
Crossbow with Crossbow, there are only three attacks to use with a crossbow. (Prefix from seqprefix.2da is "crbf".)
TwoHanded with TwoHanded, attacks have "lClub", "lAxe" or "lFlail" in their names. There are also a few with "wpn2h" in their names. (Prefix from seqprefix.2da is "2hs".)
TwoHanded with WitcherSteelSword, attacks have "sword2h" or "wpn2h" in their names.
ShortWeaponFast / ShortWeaponStrong with ShortWeapon, attacks have "sClub", "sAxe" or "sFlail" in their names, there are also some attacks with "wpn1h" in their names. The ShortWeapon style can also be used with Dagger, in this case the attacks are the same as for the Dagger Styles. (Prefix from seqprefix.2da is "shf".)
PolearmHevy / PolyarmHevy / PolyarmLight with Pole, attacks have "halb" or "halberd" in their names. You have to unbif files to add such a weapon to your creature's inventory. (Prefix from seqprefix.2da is always "pss".)
BigWeapon with WitcherSteelSword / Pole / TwoHanded, attacks are the same as for two-handed weapons, halberds or large Axe or similiar weapons. (Prefix from seqprefix.2da is "2hs".)
DaggerFast / DaggerStrong with Dagger, attacks have "dagger" or "dgr" in their names. (Prefix from seqprefix.2da is "dggf".)
Commoner with all weapons, this can be used if you don't know which is the exact stylename for a weapon. Simply type Commoner as stylename and add any weapon to it, pick the attacks that may match the weapon in inventory and try out if the style works correctly. (Prefix from seqprefix.2da is "cmf".)
Magic / SpellRanged with SpellMelee / SpellRanged, some magical attacks for sorcerers. (Prefix from seqprefix.2da is "magf".)
SwordWithShield with WitcherSteelSword, attacks have "swordshield" in name.
SwordWithShield with ShortWeapon, attacks have "shield" in name.
TwoSwordsFast with WitcherSteelSword, attacks have "dualwield" or "twoswords" in name.
Conversation:
Use this ONLY for oneliner-dialogs and when the creature should never talk to Geralt except this one dialog-line! Otherwise you'll get problems later with making the storyphases or with dialog-scripting-options. Well, for this tutorial you don't need it.
Voice Set:
As beginner you won't need it and as experienced modder or bigger team you surely know what you have to do with this.
Runs to Despawn & Can be Pushed:
Runs to despawn means if the creature will run (TRUE) or walk normal (FALSE) to go to its despawnpoint.
Can be pushed means if Geralt can push away this creature while running through/against it. Set it to TRUE or FALSE.
Player Character:
This can be set to FALSE or TRUE. TRUE means that this character can be used as player character. I never tested this, so I don't know if it works.
Plot:
This means that the creature is relevant to the storyline and can not be killed by anyone (or anything) if set to TRUE. If set to FALSE it is not relevant to the storyline and can be killed by everything as a normal creature.
Permanent Body:
When set to TRUE this creature will leave a permanent body after it has been killed. The body will lay there for the rest of the game. If set to FALSE it will change into a normal skeleton and disappear after a while.
Don't Preload Model:
Set this to FALSE, otherwise the models will not be preloaded into the game and it will cause long loading times.
Leaves Blood Stains:
Shall your creature bleed while it is hurt? Sure, so set this to TRUE.
Immortal:
If you want your creature to be immortal set this to TRUE.
Treasure Model:
After being killed the creature will leave some treasures, here you can pick a specific treasure model by clicking in the textline to open the pulldown list. The treasure models are:
Default - creature will leave something
Potion - creature will leave potions
Scroll - creature will leave scrolls
Treasure - creature will leave gold
Body - creature will appear as a corpse
Bones - creature will appear as skeleton
Pouch - creature will leave a pouch
Store:
This is used for merchants or smiths that sell goods to the player. You don't need it for now and I'll describe this in an extra section later.
Guard Distance, Guard Tag, Max Team Size:
This is used for creating groups that will help each other when being attacked. The Guard will summon other guards in his team to attack Geralt or for defence. We will later create such a group of guards in this tutorial.
The "AI Scripts" section
Script Set:
Here you can choose between six different default script-sets for your creature, click on the text to open the pulldown list, you can see "Custom", "Default", "Shooter", "PC", "StoryTrissPrologue" and "OdoAct1Home":
Custom - if you want to give your creature some custom scripts you have to use this option, you have to fill in the corresponding 2da file (by clicking on the 2da icon and add the file to your modul then!). For this tutorial you don't need it, we'll script our things later in the storyphases or dialogs.
Default - this is the default script set for a creature, I recommend to use this option and later change only some scripts in the creature's storyphase or dialog.
Shooter - if your creature is a shooter using a bow or sling, you should give her this script set. That's not necessary if you create an echinops or other shooting monsters, they have their own script sets when you fill in their race.
PC - this is used if your creature is created as player character, it will use only the scripts that Geralt uses for meditating and resting.
StoryTrissPrologue - this is the script set for Triss how she's acting in the prologue of the game.
OdoAct1Home - this is the script set for Odo how he's acting in Act 1 when he's at home.
Daily Scripts:
Here you can give your creature a daily script, this will be executed every day at the time you choose. Click on the small 2da icon, in the window rightclick and click "Insert Script", now mark this entry and on the right side fill in the time at which the script shall run. In the line named "script" you can type in the name of your script or choose one from the Data-folder (in this case the script has to be a global script which is reachable in the folder). I recommend to add the script to the module and simply type its name in here.
This is all you need for this tutorial, the rest of the section is not very important for beginners and the experienced modders will not need a tutorial for this.
Save your new creature to modul (File - save new creature template - name it and choose Modul), save the whole modul then.