RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as...

62
REDkit Editor – Designer Basic Manual Content Introduction....................................................... 3 Editor main window................................................. 3 World editing...................................................... 3 Asset Browser...................................................... 4 Editing object vertex.............................................. 4 Entity browser..................................................... 5 Scene editor....................................................... 5 Scene script tab......................................................6 Starting Conditions tab................................................ 7 Actor definitions tab...................................................7 Dialogset settings.................................................... 8 Directors layout......................................................9 Quest Editor...................................................... 10 Basics............................................................10 Subgraphs........................................................ 11 Deletion markers & Patch Outputs.......................................11 Facts DB.......................................................... 11 Journal Editor.................................................... 12 Attitude Groups editor............................................ 13 Community Editor.................................................. 13 Spawnset Sheet.....................................................13 Timetable Sheet.....................................................17 Background scenes Sheet..............................................19 Layers Sheet....................................................... 19 Action Points..................................................... 19 Creating new actionpoint..............................................19 CD Projekt RED REDkit Page 1

Transcript of RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as...

Page 1: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

REDkit Editor – Designer Basic Manual

ContentIntroduction...........................................................................................................................................3

Editor main window...............................................................................................................................3

World editing..........................................................................................................................................3

Asset Browser.........................................................................................................................................4

Editing object vertex..............................................................................................................................4

Entity browser........................................................................................................................................5

Scene editor...........................................................................................................................................5

Scene script tab..................................................................................................................................6

Starting Conditions tab.......................................................................................................................7

Actor definitions tab...........................................................................................................................7

Dialogset settings...............................................................................................................................8

Directors layout..................................................................................................................................9

Quest Editor.........................................................................................................................................10

Basics................................................................................................................................................10

Subgraphs.........................................................................................................................................11

Deletion markers & Patch Outputs...................................................................................................11

Facts DB................................................................................................................................................11

Journal Editor.......................................................................................................................................12

Attitude Groups editor.........................................................................................................................13

Community Editor................................................................................................................................13

Spawnset Sheet................................................................................................................................13

Timetable Sheet................................................................................................................................17

Background scenes Sheet.................................................................................................................19

Layers Sheet.....................................................................................................................................19

Action Points........................................................................................................................................19

Creating new actionpoint.................................................................................................................19

Setting Pre and Post animations.......................................................................................................20

Job tree preview...............................................................................................................................20

Static Camera editor.............................................................................................................................21

Create...............................................................................................................................................21

CD Projekt RED REDkitPage 1

Page 2: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Configuration....................................................................................................................................21

Tests.................................................................................................................................................21

Cutscene template editor.....................................................................................................................22

Basics................................................................................................................................................22

Cutscene timeline.............................................................................................................................22

Template tab....................................................................................................................................22

World Partition editor..........................................................................................................................23

Quest Editor Blocks..............................................................................................................................25

Quest Editor Conditions.......................................................................................................................40

CD Projekt RED REDkitPage 2

Page 3: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

IntroductionThe purpose of this manual is to show you the basics of REDkit Editor (called REDkit in further part of manual). This manual is not a full guide to each and every option of REDkit.

REDkit Editor consists of many tools, such as tools for creating quests, dialogues, animation trees, behavior trees, steering, environments, and so on. In this manual we'll focus on these tools, which are the most important from designer's point of view.

Editor main windowWhen you launch REDkit for the first time, you will have main editor window open. In this window you have access to all tools as well as options such as loading existing worlds, creating new ones, etc.

Some options are available only if you have certain world loaded (for example: loading saved game, editing world streaming, etc.)

To load world or create one, you just have to choose correct option from file tab.

Also, if you have level loaded, you can play the game in editor. To do that, you can use those buttons:

The first one will start the game normally, as it will start on a cooked game. The second one will start the game without streaming, with layers you have loaded at the

moment. The third one is used to load saved games.

World editingOnce you load any world, it’s graphical layout will appear in editor's main window. You can navigate camera either by using mouse or WSAD.

You may have already noticed, that a list have appeared on you panel to the right, in Scene tab. It’s the list of layers, of which each level in REDkit consists. Layers are objects, on which all other things are placed, like meshes, waypoints, paths, and so on. Layers are divided into folders, which make a hierarchy.

Each layer and folder has its own icon, which indicates current state of layer/folder:

colored icon means, that layer/folder is currently loaded gray icon means that layer/folder is currently unloaded half gray icon on folder means, that some layers within that folder are loaded, and some

aren’t layer with red eye being crossed means that this layer is currently hidden (its content is not

shown, until loaded). You can hide/unhide layer by RMB clicking layer and choosing “hide/show” option.

CD Projekt RED REDkitPage 3

Page 4: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

NOTE: this applies for all users if you submit it to the server, it’s local option only. folder with red H letter means, that all layers from this folder will be hidden, when you’re

playing the game (until it’s unhidden by any means). NOTE: this doesn’t apply to folders within this certain folder, which means, that all layers from deeper folders will still be loaded.

To put something on a layer you just have to select a layer, by clicking double LMB on a layer, and then choose desired object using RMB. You can either add general objects from pre made list (RMB), such as triggers, waypoints, etc., or you can add an object from Asset Browser (this tool will be described next).

You can copy, cut, paste, and move objects freely in the world – options for manipulating objects are easily accessed from the menu on the left side of main editor window. You can also choose to edit objects from all layers (Multi Layer button) or from the active layer only (Active Layer button; it means that no object from inactive layer can be selected by LMB).

Each object you put on a layer, as well as layers and folders, has properties that can be edited. To edit properties of an object simply select it on the Scene list, and then change tab to Properties. For example, you can edit here properties of a folder (flag isVisibleOnStart), which was mentioned earlier.

Asset BrowserAsset Browser is a tool used to access all files in REDkit repository. Double clicking on a file will automatically open a tool used for its edition. AB is also used to create new files (simply click RMB in any folder, and choose type of file you want to create), remove them, etc.

Aside from basic options AB also provides a hierarchy view and search option (you can filter files by type, or just search an item by name).

NOTE: If you want to add certain object from Asset Browser in world (entity template for example), you can either select it with LMB in Asset Browser, and then click RMB in world preview, or you can drag and drop from Asset Browser to world preview.

Editing object vertexMany objects, such as triggers and path, are built from vertexes – for example basic trigger has four of them. You can edit those, creating non standard shaped objects, using Vertex Edit tool. To access this edition mode select object you wish to edit, change tab in main editor window from “Scene” to “Tools”, and choose “Vertex Edit” tool.

Adding and removing vertexes is performed by holding ALT and clicking LMB in place you want to add or remove vertex.

NOTE: Be careful when editing trigger vertexes – concave triggers tend to be broken.

CD Projekt RED REDkitPage 4

Page 5: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Entity browserEntity browser is a tool used to create almost every object found in game (aside from raw meshes), including characters, items, animated objects, etc. Editor composes of three main parts: preview, components, properties, see picture below.

Preview window is showing entity meshes and other components (if you have correct filters enabled).

Component window shows all components within the entity in graphical form, new components can be added in components field by clicking RMB and choosing specific component type.

Properties window consists of multiple tabs, in which you can edit properties for whole entity (shown when no component is selected) as well as properties for each component (shown when you select component and choose Node properties tab).

NOTE: Each template has a class (either imported from C++ or from scripts), which determines most of entity properties (by default, each entity has “CEntity” class, which is also highest class in available hierarchy). To change entity class you must change into Template properties tab.

Scene editorScene editor is a tool used to write and implement dialogues. A dialogue created in this editor can be used later in game. Editor consists of four main tabs:

CD Projekt RED REDkitPage 5

Page 6: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Scene script (most important tab, in which dialogue is written, etc) Starting conditions Actor definitions (in here you define what actors will take part in dialogue) Dialogset settings (in here you define where will each actor stand in dialogue)

Scene script tabScene script tab consists of three windows: dialogue sections (in here you write text), scene graph (here you define logical flow of dialogue), and properties.

Dialogue sections are parts of whole dialogue – each section is shown in scene graph part of editor as a single block.

NOTE: To add a new section click RMB in dialogue sections window or scene graph window, and chose right option from the list.

After adding a section you will notice, that a new block will be added in scene graph window. In this window you define logical construction of the dialogue. The signal (which means what is currently played/processed in game) will flow from the Input block to the Output block (where it exits from the scene). When signal goes through a connection into a dialogue section it means, that this section will be played.

Every section can consist of any number of dialogue lines, for each line you define Voicetag (id of actor, who is supposed to talk) and write text he is supposed to say.

You can also put one dialogue choice per every section, which will always be placed on the end of the section. The reason for that is, each choice adds new outputs to the dialogue section (as you will notice on the scene graph). When player chooses a choice, the signal in the graph exits through the chosen output.

CD Projekt RED REDkitPage 6

Page 7: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Aside from dialogue sections, inputs and outputs, you can also add script blocks and conditions in scene graph window. A script block allows you to use any script written in Script Studio or C++ inside the dialogue (for example, a script adding a fact to the facts DB). A condition allows you to control flow of the signal in dialogue, for example: you can if player has a certain type of item.

Each block you add has its own properties, which can be edited in properties window. Most important properties for scenes will be listed below.

Global scene properties (edited when you have no blocks selected):

additionalVoicetags – here you define voicetags of actors, who will take part in dialogue but have no spoken lines.

mayActorsStartWorking – important flag for gameplay dialogues only. Defines if actors taking part in dialogue can work in their actionpoints while talking.

Dialogue section properties (edited when you select dialogue section):

isGameplay – this flag defines if dialogue section is to be played as cinematic dialogue (with all characters in defined slots, without possibility of movement, with defined cameras) or as a gameplay dialogue (in form of oneliners / subtitles, without blocking player and NPCs)

hasCinematicOneliners – option for gameplay dialogues only, it defines if text should be displayed above NPCs head, or as a subtitle on screen.

pauseInCombat – if checked true, dialogue will pause if combat starts, and will be unpaused after combat ends. NOTE: it is advised to use it on gameplay dialogues only.

canBeSkipped – cinematic dialogue flag only, if checked true dialogue lines will be skippable. numberOfInputPaths – by default this property has value of 1. If value is more than 1 you will

notice, that dialogue section block will have new input and output (they will be numbered automatically). It is used for advanced control of signal flow in dialogue, if signal enters through input1, it will exit from output1, if it enters though input2 it will exit through output2, and so on. NOTE: This won’t work if you have choice in dialogue section.

Last but not least, there are cutscenes. Cutscenes can be played from the scene file, to add a cutscene you simply add cutscene block in scene graph window and link a proper cutscene from Asset Browser in cutscene block properties. Cutscene sections can be edited in Dialogue Sections window just as any other dialogue section.

Starting Conditions tabThis tab is mostly informative, most of its contents will be updated automatically as you work in other tabs. There are few options worth mentioning available in this tab:

Must Use Context Actor – this flag is important when making Voicesets, if scene is supposed to be a Voiceset it must have this option on true.

Invulnerable – this flag defines if NPC is supposed to be immortal for the time of dialogue. Left item / Right item – in here you can add an item from droplist, which is supposed to be in

NPCs hand during the dialogue.

CD Projekt RED REDkitPage 7

Page 8: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Actor definitions tabThis tab is very important for most dialogues, in here you define what actors should be taking part in the scene and how the game is supposed to find them. You can add new entries by clicking RMB. Not all of the fields need to be used in each dialogue, there are several combinations as described below:

Voicetag – this field is obligatory, it defines a Voicetag (Voice ID of an NPC) for the whole line.

Actor Tags – this field is to be used only, if your NPC has an unique tag, and if you want game to find him by this tag. This flag is optional.

Actor template – this field is used for two purposes: first, when the game will be searching for a fitting NPC to play a dialogue, it will check if potential NPCs are spawned from this template. Second, if game won’t find an NPC to play a dialogue, it will spawn a new one from this template, for the time being of dialogue only. NOTE: This flag is optional, but it is advised to use it as failsafe.

Appearance filter – this option allows you to define appearance name, which searched NPC will be required to have. This flag is optional.

Don't Search By Voicetag – this option forces the game to search for NPC using filters other than Voicetags, such as Tags, entity template, and appearances.

Dialogset settingsIn this tab you define the place, in which dialogue will be played (used for cinematic dialogues mostly). To do that, you have to put a Scene Waypoint object in the desired place on location, and give it an unique tag in properties. After doing that you put that same tag in Position Entity column.

NOTE: If you leave this column empty, dialogue will either play in random position, or in the place of pivot (described later on).

You can also change type of setting for your dialogue (default is 4vs4), by linking from Asset Browser another type of setting into Dialogset column.

Second part of this tab consists of options, which allow you to put every NPC in desired positions. Each slot in a dialogset has its own id number, which can be seen when putting Scene Waypoint on level. In slot number column you define this very spot for each NPC (Voicetag column).

NOTE: Putting same slot number for two NPCs or leaving this column empty will generate bugs.

CD Projekt RED REDkitPage 8

Page 9: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

If Is Pivot flag is checked true, the dialogue will be played where the NPC that is pivot is standing.

NOTE: If you have defined both scene setting tag and Is Pivot, then Is Pivot flag will be ignored.

If Is Hidden flag is checked true, targeted character will be invisible in dialogue until he plays enter animation. Also, he won’t be visible anymore after playing exit animation.

Another option worth mentioning in this tab is Safe Placement – if checked true, the dialogue will try to find safe position if defined position is wrongly placed (underground, not on walkmesh, etc).

Directors layoutDirectors layout is a set of tools used to implement gestures and cameras for each dialogue. To change layout, click view -> directors layout. You will notice, that whole layout in scene script tab has changed showing a preview of dialogue, dialogue timeline, and sections preview.

Dialogue timeline is the most important part of directors layout – on this timeline you add camera events, character lookats, animations, add pauses between dialogue lines and so on. Each character present in the dialogue (even those, who are not speaking) has its own row on the timeline. When you add an animation event on characters row, this certain character will play defined animation in

CD Projekt RED REDkitPage 9

Page 10: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

defined moment. Also, there is a special row dedicated to the camera and you can add custom rows by clicking RMB on timeline.

By clicking LMB on an event you will notice, that properties of this event are shown on the right side of timeline. In these properties you can define for example what animation is meant to be played.

Dialogue preview plays dialogue with current cameras and animations, you can stop, skip, and change sections to the next ones by using buttons below preview. Sections window shows you active dialogue line and dialogue section. You can also preview dialogue with loaded level, to do that load layers with dialogue setting and press green globe button in dialogue preview.

Quest EditorQuest editor is a tool, in which you gather all assets made in other tools and put them all into motion. You will use it to play dialogues, cutscenes, make NPCs walk, work, fight, etc. It is a vital tool for quest designers in which whole game structure is made.

BasicsQuest editor is a graphical editor, similar to Scene Graph Window in Scene Editor. Each block you use has its own properties, displayed on the left side of Quest Editor window.

Quests editor is based on the idea, that there is a signal, which starts in one place (Start block), proceeds through connections between blocks and starts multiple actions in the process. Signal can be diverted between multiple connections, which means that it can be in two or more places simultaneously. When any signal reaches End block, the whole quest ends killing any other signal that may still be going inside.

While implementing a quest, you will have to use many types of pause conditions (to hold signal in place, until certain requirements are met), conditions, and other blocks to control the flow of the quest properly.

CD Projekt RED REDkit Page 10

Page 11: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

NOTE: It is suggested, that you put comments for most blocks you’re using (especially pauses and conditions), to make your quests more transparent for your co-workers.

To add a block, you simply click RMB and choose desired block type from menu (they are divided into sub categories). To connect two blocks you click and hold LMB on one block output, and drag connection to another block input (or vice versa). Clicking on a connection will mark it with X letter, which means it’s temporarily broken (signal won’t pass through it).

NOTE: A detailed list of quest blocks will be placed at the end of document.

SubgraphsTo keep a clean structure, blocks can be closed in subgraphs (in editor called phases). Subgraphs can have unlimited number of inputs and outputs, as well as another subgraphs embedded within them. To enter a subgraph, simply double click LMB on a phase.

Deletion markers & Patch OutputsPatch outputs and deletion markers are functionalities for patching process of the game.

The rule for deletion markers is simple – when you delete any block or group of blocks, they will be replaced with Deletion Marker block. If player had a saved game, in which signal was waiting on any of blocks within this Deletion Marker, the signal will exit through Deletion Marker output, without causing any blockers. To Remove Deletion Marker permanently just select it and delete it again.

Patch outputs are releasing signal whenever a saved game with active block, on which you added patch output, is loaded. You can add it by clicking RMB on a block and choosing the right option.

Facts DBThis is not a tool per se, but it is a system that many quests and other systems depend on. Facts Data Base is a base of variables with number values assigned to them. They can be added or modified, either by scripts or via quest (quest block FactsDB Change). Later on, these facts can be checked in quest, scene or script conditions.

CD Projekt RED REDkit Page 11

Page 12: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Journal EditorJournal editor is used to make hierarchical entries, which later on are added to players journal from quests. Editor itself consists of two main parts: journal hierarchy and content fields.

In journal hierarchy you see nodes, which later on are displayed in game journal. The highest one is Act, in which quest takes place. Second, there is a quest. Under the quest, there are quest journal phases.

Each node has its own properties, displayed in content fields part of journal. Some of them are:

name - for act and quest, it is a name displayed in game journal, for quest phases it is mostly for designers

Mappin tag – if you put here a tag of an object (a character for instance), and this certain quest phase will be active and tracked by player, there will be a mappin displayed on that object.

Quest tag – this field is optional, it is used for more advanced, customized mappins. Description – in here the full version of journal entry is written. Short TODO – in here you write short to do which will be displayed as a direct task for the

player under the minimap (when the quest is tracked).

CD Projekt RED REDkit Page 12

Page 13: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Attitude Groups editorAttitude group editor is a simple tool, used to edit definitions of groups and their attitudes towards each other. For example, there is a group called player and a group called harpies, by default, these two are set as hostile. It is accessible from Main Editor Window (tools -> attitude editor).

NOTE: Attitude between groups always works both sides, so for example you define only player vs harpies attitude, there is no point in defining harpies vs player attitude.

To add a new Attitude Group you have to open a global csv file (in The Witcher 2 it was this one globals\attitude_groups.csv). After doing that, a group is automatically added to the Attitude Groups editor. Later on Attitude Group is assigned for each NPC and monster in their entity template.

Community EditorCommunity editor is a tool used to spawn characters (and occasionally monsters), create their day/night cycles, etc. It is divided into few tabs, which are: Spawnset Sheet, Timetable Sheet, Background Scenes Sheet and Layers Sheet.

Spawnset Sheet

- Comment field where you can enter information for you and your colleagues regarding entity that this whole verse line corresponds to.

- This is an ordinal field where we can put the name of our NPC. Name that you will put here will have NO EFFECT anywhere, it's just to keep things tidy for a designer.

- In this field we include the character entity we want to spawn. You can do it by selecting your desired character entity in Asset Browser and then in Community Editor, in "Entity Template" field you click the "include" icon ( ).

- This field purpose is to exactly pinpoint what kind of appearance your character entity should have.

It comes in handy when your Character Entity has checked i.e. 12 different appearances from which every character spawned from this entity is then randomly choosing one of those 12 appearances. BUT we don't want that, we want him to always spawn with appearance "citizen_poor_7". So instead of creating another entity with only 1 appearance checked, we fill out this field in Community Editor and just type our desired appearance name (in this case it would be "citizen_poor_7").

We can also add more than 1 appearance in this field, and that means that when the character is spawned it will choose one by random from those 2 appearances that we typed in (instead of default 12 appearances checked in the Entity).

CD Projekt RED REDkit Page 13

Page 14: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

- This is an unused field. Will be deleted in future iterations of the Community Editor. DO NOT TOUCH, leave it at 1 :]

- In this field we can assign unique Tags to the entity we spawn in this verse. You can add multiple tags here. So assigned tags overwrite tags assigned in entity template.

NOTE: If you fill this field, all of the tags defined inside Character Entity will be ignored and swapped to those defined in Community Editor.

This tag corresponds with the field "Mappin" in Journal Editor

This dropdown list enables you to choose between 4 different mappin icons. They are:

CMPT_None - standard mappin with exclamation mark icon. CMPT_Inn - Mappin icon symbolizing Inn CMPT_Shop - Mappin icon symbolizing vendor NPC CMPT_Craft - Mappin icon symbolizing crafting NPC

- This is a very helpful field. It allows you to assign a specific script action as soon as the NPC is spawned without quest scripting. Another good thing is that the NPC gets to executing assigned task almost without any delay. So to set up an initializer you right click on the "Initializers" field and choose "Create Object".

A window will pop-up:

CD Projekt RED REDkit Page 14

Page 15: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

After clicking the blue arrow another menu will pop up with available script functions. You will be able to find the description of mentioned functions in "Quest Editor" chapter.

- If this is checked as true, it means that the NPC will always spawn outside of camera's field of view. Important quest NPC's should have this left unchecked.

- another commentary field, self-explanatory.

- the name of the story phase that NPC will have their work assigned to. This should preferably be named with the number of the quest in the beginning followed by an underscore and explanatory name of the faze, regarding what this NPC will be doing. i.e. "q109_sneaking_garden".

Every character entity verse can have multiple story phases. For example this is a screenshot of Vernon Roche community file:

CD Projekt RED REDkit Page 15

Page 16: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

- This field is used to manage the quantity of NPCs regarding the present hour in the world.

- amount of NPCs spawned from this verse. If we put "2" here, that will spawn 2 NPCs from the character entity assigned in "Entity Template" field.

- The time that has to flow from death of this NPC to his respawn.

- Self-explanatory, if true, than once this NPC is killed, he will never respawn again.

- This field is corresponds to the "Name" field in "Timetable" sheet in Community editor. Basically it means what timetable will be activated once the Story Phase in this verse is activated.

- Amount of time that has to go by from spawn command (by story phase setter in the Quest Editor) to actual appearing of the character in game.

- Here we can put in the tag of a waypoint where our character should spawn. Spawning NPCs in waypoints won't make them work in action points (this happens only by defining the Timetable), they will only appear in given location and be Idle.

NOTE: If "Start In AP" is True, then this field becomes void (and there is no reason why you should fill it up, if you are using action points).

CD Projekt RED REDkit Page 16

Page 17: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

- Here we can put a tag of a waypoint/actionpoint where NPC will go to before despawning (after being given the command, despawn by Story Phase Setter in quest editor).

NOTE: If this field is left blank, and NPC will get a command to despawn he will disappear immediately in place where he stands at the moment.

- if true, than NPC will spawn in action point defined in his Timetable.

- if true, than NPC will keep working in action point where he first started. If we want to create patrolling NPCs this has to be false.

- if true, NPC will never turn into a stub (his graphical and script components will always be fully loaded no matter how far away are we from this particular NPC). This should be checked true only for Quest NPCs that there is a risk of losing the quest signal if the character turns into a stub.

- if true, the position on the world of this NPC will NEVER be saved. This is used for background community NPCs mostly but also to NPCs who don't move around, just stand in 1 action point.

- this field fills itself automatically when resaving community file on level with spawnpoints/actionpoints. Do not worry about it :]

- This allows you to define the radius from the NPC to the player on which the NPC will be spawned/despawned.

Timetable Sheet

- This field corresponds to the "Timetable Name" field in "Spawnset" sheet in Community editor. The name preferably should start with the quest number followed by an underscore and an explanatory name, i.e. "q101_roche_argue".

- This field is used to manage the daily cycle of routines of an NPC. You can set different jobs in different action points in time intervals divided as you please (you can make intervals every hour, even every minute).

- Here you assign the layer with the desired action point. You do it by:

CD Projekt RED REDkit Page 17

Page 18: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

In world editor, select your desired layer, double click it should turn bold:

Now, go back to the Timetable sheet, and in "Layer name" click the include button ( ).

- this is a job category that we want our NPC to execute. Job category is defined in Action Point editor (see the right chapter on more info). There can be more than 1 category i.e.:

This means that this woman, will (from 15:00) by random do one of those 3 defined categories. How this work in engine:

spawn NPC --> find Layer defined in "Layer Name" --> find categories defined in "Category" --> by random choose 1 --> find an Action Point on the given layer with the chosen Category.

NOTE: Category defined here HAS TO BE the same as the one defined in Action point on the given layer. Otherwise NPC WILL NOT WORK IN HIS ACTION POINT.

- This is the weight of the category localized in the same verse. Following the example from above, if this peculiar woman has 3 categories "dining woman", "cooking woman" and "household" and we leave first two of them the value of 1, and then "household" will have a value of 6, that means that household category action points will be more often chosen by random then the others.

CD Projekt RED REDkit Page 18

Page 19: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

- this defines in which peculiar Action Point NPC will spawn. This field comes in handy if on 1 layer we have 3 different action points but with THE SAME category. For example, on 1 layer we can have an action point with category "household" that has a job for washing the floor, cooking and knitting, but we want the lady to spawn ALWAYS at the beginning washing the floor. That means we have to tag the Action Point in the world, and then put the same tag in this field here ("AP Tags").

- this field fills itself automatically. Do not worry about it :]

Background scenes SheetThis sheet will most definitely be removed in future iterations of the REDkit. Do not worry about it, do not touch :]

Layers SheetThis sheet will most definitely be removed in future iterations of the REDkit. Do not worry about it, do not touch :]

Action PointsAction points are waypoints, in which characters are playing defined animations (animations are defined in special editor – Job Tree editor).

Creating new actionpointTo create an Action Point we need to create an Entity. We must set its class to CActionPoint and add CActionPointComponent. In CActionPointComponent properties we need to link JobTree file to jobTreeRes.

CD Projekt RED REDkit Page 19

Page 20: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

To have a proper, working JobTree, we need to create a Job Tree file, set at least one category and animations we want to be used. After opening job tree we click on <sequence x1> in the left tab and in the middle tab we see its properties:

Valid Categories: array of action point categories – used in Community timetable. Selection Mode: SM_SEQUENCE – animations will play in order, from top to bottom.

SM_RANDOM – animations will play randomly. Iterations – defines how many times a sequence will be played. Left Item/Right Item – we choose what item in which hand should be placed

Next we right-click on <sequence x1> and choose “Add enter animation”. On newly created node we right-click and choose “Add child node”. On the top <sequence x1> we right-click and choose “Add leave animation”. On the child <sequence x1> we right-click and choose “Add enter animation”. We’ve created a simple job tree.

Now we click on first child (it will be pre- animation) and on the middle tab we have:

category name: we define which set of animation should be used for this node (to create a category name, we need to open globals/animations.csv, add a category name in friendlyName and path to animation set in animsetDepotPath)

Anim Name: choose which animation should be played (animations that should be played at the beginning have names with “start” in it)

Anim Blend In/Out: defines how long the blends between previous and next animation should be

Is Lookat Enabled: defines if NPC will have lookat on player when playing this animation

CD Projekt RED REDkit Page 20

Page 21: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Place: not used Disable Path Agent: if true, NPC won’t be pushed out from AP if there’s collision (used for

action points like sitting at the desk

In the settings tab we have:

Left/Right Remove at end: defines if at the end of action (whole sequence of animations) NPC will remove item from his hands

Left/Right Drop on break: defines if when breaking the action, NPC will drop item from his hands

Can React: defines if NPC during action will have any reaction on player (reactions are defined in NPC entity template)

Setting Pre and Post animationsWe can set if we want pre and post animations to play when: NPC is spawned in AP – i.e. sitting at the desk (with pre animation off he’ll spawn already on the chair without sitting on it); NPC chooses to use the same AP (with both pre and post animations off, he’ll continue to work in AP without getting up and sitting down).

Job tree previewAfter creating and setting a job tree we can check in preview if everything looks good and we can check how NPC will look when using AP with this job tree in editor without starting the game. In the preview tab we right-click and choose “Use selected entity”, after selecting proper NPC entity. On the bottom we choose from drop-down list category of action point. If we want to check it in preview we click Play button. If we want to check it in the world, we must place action point entity on the location and when it’s selected, click the Globe button.

Static Camera editorStatic cameras are used mostly to make short scenes in quests. You can create them using simple editor, embedded in tools amongst level editing tools. To open this editor change tab in main editor window from “Scene” to “Tools”, and choose “Camera” tool. Static camera tool consists of four tabs, which are: Create, Configuration, Tests and Lock.

CreateIn “Create” tab you can create camera from view, which means that newly created camera will have the same position, as your in-editor camera in moment of creation.

NOTE: To create camera, you must have active selection of a layer, on which this new camera object will be created.

ConfigurationIn “Configuration” tab you have access to all properties of selected camera (those properties can also be reached by using “Properties” tab).

NOTE: Remember not to delete “static_camera” tag from newly created camera. If you do, it won’t be displayed on static camera list anymore.

CD Projekt RED REDkit Page 21

Page 22: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Most important properties, aside from basic properties like tags, are:

activationDuration – a time value, means how long camera will blend from normal camera to custom camera when activated. 0 value means that it won’t blend.

deactivationDuration – a time value, means how long camera will blend from custom camera to normal camera when deactivated. 0 value means that it won’t blend.

timeout – a time value, means how long will the camera be active before it will automatically deactivate. 0 value means that it won’t deactivate automatically.

fov – desired field of view of custom camera. animState – you can choose premade camera animation for custom camera from droplist. guiEffect - you can choose premade camera effect for custom camera from droplist. blockPlayer – if true then player won’t be able to move as long as custom camera is active. resetPlayerCamera – if true then after deactivating static camera will return to its default

position. blockPlayerButtonInteractions – if true then player won’t be able to activate any interactions

as long as static camera is active.

TestsTests tab is mostly about checking how blends between cameras look, etc. To activate a camera, simply choose it from the list and press “Activate”.

NOTE: Camera will blend to Static Camera from the position it actually is (so it will be your camera position in editor).

You can also test multiple cameras one after another, creating sequences of them. To do that, simply click “Multi test” checkbox, select correct cameras from the list at bottom of Tests tab, and press Activate button.

Cutscene template editorCutscene animations are fully made in Motion Builder, however, cutscene templates may be edited in REDkit. Edition options are quite limited, as you will not have any options to change animations or cameras, but there are some options worth mentioning.

CD Projekt RED REDkit Page 22

Page 23: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

BasicsYou can use cutscene template editor to preview cutscenes in preview window (Play in preview button) or in main editor window (Play in game button).

NOTE: To play cutscene in proper place on level, you must have layers with correct Root point loaded. If you won’t, the cutscene will play in 0.0.0 point of the location.

Cutscene timelineThis part of cutscene template editor is used for two purposes – to skip parts of the cutscene, when previewing cutscene, and for placing certain events on timeline. Events are used for many purposes, such as: adding effects for cutscene, attaching sounds and music to cutscene, adding dialogue lines for cutscene, etc.

Template tabThis tab contains most interesting options from designers point of view:

Point – in here you define tag of a waypoint, which will become cutscene Root when defined. actorsDef – in here you define what actors are going to take part in cutscene.

o Tag – if you define this field, cutscene will try to get an NPC with this tag from the game, to play the cutscene.

o voiceTag – if you define this field, cutscene will try to get an NPC with this Voicetag from the game, to play the cutscene. NOTE: This field must be filled, if character is talking in cutscene.

o template – this field must be filled for two purposes: first, it is needed to play cutscene in preview. Second, if cutscene won’t find NPC in game it will spawn a new one, for time being of cutscene.

o appearance – here, you can define a specific appearance for an actor. If filled, the newly spawned NPC will be spawned with this appearance, and when cutscene will be searching in game for actors, it will filter them by this certain appearance.

CD Projekt RED REDkit Page 23

Page 24: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

o type – here you define, what a certain actor is. There are three categories: CAT_Actor, when you choose this option, character will be teleported to his last position in cutscene after cutscene ends. CAT_Prop, when you choose this option, actor will not be teleported after cutscene ends. Cat_Camera, which is reserved for player camera.

finalPosition – here you can put tag of an waypoint, to which actor will be teleported after cutscene ends.

killMe – if checked true, actor will be killed after cutscene ends. useMimic – if checked false, actor mimic animations will not be played in cutscene.

World Partition EditorAs was said in first few parts of this manual, each level consists of folders and layers, on which objects are places. World Partition editor is a tool used to create streaming partitions, which are later loaded in game (by triggers, doors, etc). A streaming partition is, simply speaking, a preset of certain folders, which are to be loaded.

Editor is divided into three parts – partitions list (here you can add or remove partitions by clicking RMB on the list), layer groups (this list shows layer groups from currently loaded level) and partition content (here are listed folders, which are added to selected partition).

As you can see, partitions are created hierarchically. If a partition from a lower node is loaded, then all layers from higher node are loaded as well. For example: if you will load “dwarf_city” partition, then layer groups from “common” partition will be loaded as well.

To add layer groups into partition, you have to select partition which you want to edit in partitions window, and double click LMB on the layer group which you want to add to the partition, in layer groups window.

CD Projekt RED REDkit Page 24

Page 25: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

NOTE: Layer groups window shows only folders containing layers. Single layers are not shown on this list (they are being loaded, when folder containing them is loaded).

Later on, when the partitions list is completed, each partition has to be loaded somewhere in game (either by using special triggers, quests, or streaming doors).

CD Projekt RED REDkit Page 25

Page 26: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Quest Editor BlocksBLOCK NAME PROPERTIES DESCRIPTION

This QBlock is used to apply a custom behaviour to an NPC.

saveMode: if activation of this QBlock should block the possibility of saving game.activationTimeout: how long the function should try to execute before dropping the task.behaviour: Assigned from Asset Browser specific CBehaviourGraph file.affectedNPCs: tags of the NPC's that this behaviour should be applied to.expectedCount: number of NPC's with given (in "affectedNPCs") tag on location that should be present before applying this behaviour.

This QBlock is used to activate Static Camera that is present in the world (it deactivates player camera for the time being).

cameraTag: tag of the camera present in the world that you wish to activate.

CD Projekt RED REDkitPage 26

Page 27: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

This QBlock is used to deactivate Static Camera that is present in the world and is active (it deactivates static camera and brings back Player Camera).

cameraTag: tag of the active camera that you wish to deactivate.

This QBlock is used to switch between two Static Cameras present in the world, thanks to this you can smoothly swap and blend between them. First of them has to be already active.

currCameraTag: current ACTIVE camera.nextCameraTag: the next camera that should be activated.

Those two QBlocks mark where the signal in quest starts and where it ends.Start QBlock:

showLoadingScreen: if true then when the world is loaded and scripts are being executed there will be persistent loading screen present until something will take it off (i.e. dialogue scene, QFadeIn script etc.).

With this Qblock you can send a signal through with checking a given Condition and then either propagating the signal with TRUE or FALSE output.

CD Projekt RED REDkitPage 27

Page 28: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

This Qblock works on the same CONDITION basis as the previous one. The only difference is that it is latent, so it will hold signal until the condition is met (and then propagates it by output).

This Qblock is used to swap between worlds i.e. between Vergen and Loc Muine.

worldFilePath: link to the localization of the world file.loadingPartition: Partition that will be loaded when the world starts.loadingMovieName: if there should be an .usm movie played during loading we can put the file path here.

Hide layers is used to show/hide whole FOLDERS in current world

layersToShow: Folders we want to unhidelayersToHide: Folders we want to hidesyncOperation: if true quest signal won't progress until all of the folders are fully visible and loaded/invisible and unloaded

This QBlock is used to swap between streaming partitions in the currently loaded world.

worldPartition: The partition we want to change to (partition given here will be loaded after signal reaches this qblock).

CD Projekt RED REDkitPage 28

Page 29: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

loadingScreenPath: link to the custom loading screen we want to applytransitionMode: how and in what manner the blackscreen should be taken off (auto-fade in/perm blackscreen etc.)loadingMovieName: if we want to play an .usm while loading you put the name here.Subtitles: subtitles for the movie. You put StringID here for the desired subtitles.

This QBlock is used to clear a saveable Sound from an Entity (character, waypoint). Used in combo with quest functions to turn off the sound.

entityTag: the tag of the entity that the sound is playing on.

Used for enable/disable Denied Area.

entityTag: tag of the denied areaenabled: self explanatory

Used for enable/disable Exploration Area.

entityTag: tag of the exploration areaenabled: self explanatory

This is used for adding new Facts to the Facts Database.

factID: name of the fact

CD Projekt RED REDkitPage 29

Page 30: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

value: what value should be added

Creates a save game file. EVERYTIME THAT SIGNAL PASSES THROUGH HERE!!!

fileName: the name of the save file that will be created.enableSaving: if false it will just pass the signal through.ignoreSaveLocks: ignores "SaveBlocker" flags.

__________________________________________________________________________________

__________________________________________________________________________________

__________________________________________________________________________________

Qblock used to manage time.--------------------------------------------------------CPauseTimeFunction:Pause: if true the time will pause.Force: if true it will execute immediately.--------------------------------------------------------CSetTimeFunction:newTime: what exact time we want to set.callEvents: if true, then i.e. if you change the time from 08:00 to 12:00 and somewhere along quest scripts you have a pause waiting for 10:00, it will enable it to propagate the signal further.--------------------------------------------------------CShiftTimeFunction:timeShift: how much we want to shift the time (how many days/hours/minutes/seconds we want to add to the current time on the clock)callEvents: if true, then i.e. if you change the

CD Projekt RED REDkitPage 30

Page 31: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

time from 08:00 to 12:00 and somewhere along quest scripts you have a pause waiting for 10:00, it will enable it to propagate the signal further.

Character Customizer is used to execute special actions on Player. Mostly functions added here are focused on Virtual Containers (see Virtual Container page for more info).

Formation Members is used to set NPC or NPCs as a members of specific formation marked by formationTag. Formation Members can be used to add new members for already existing formation. It's important to know that it can operate only on existing formation.

CD Projekt RED REDkitPage 31

Page 32: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Fields:formationTag: tag of formation we are operating atformationImportance: this enum indicates importance of a formations depending on other gameplay systems. For example AIP_Normal means that formation members will start fighting when facing enemy. AIP_Highest means that they will ignore the enemy in the same situation as mentioned above.membersTags: it's an array of formation members tags. Those tags should indicates NPCs.tag: tag of a formation member. It should indicate an NPCcount: expected amount of members of given tagbackgroundTask: when set to false it will add only those members which were already spawned when the function was activated. When set to true it will continuously be adding new members of given tag as soon as they appear on the level.polingFrequency: this flag indicates how often system will ask for a member of given tag. It works only when backgroundTask is set to true.

Formation Manager is used to create new formation.

Fields:

CD Projekt RED REDkitPage 32

Page 33: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

formationTag: tag of formation we are creatingformationImportance: this enum indicates importance of a formations depending on other gameplay systems. For example AIP_Normal means that formation members will start fighting when facing enemy. AIP_Highest means that they will ignore the enemy in the same situation as mentioned above.membersTags: it's an array of formation members tags. Those tags should indicates NPCs.tag: tag of a formation member. It should indicate an NPCcount: expected amount of members of given tagpatterns: this is a group of parameters that defines a formation.Id: this is the input name for your formation on the Formation Manager. Formation is created by activating this input.anchor tag: this is a tag of a point around which formation is created. It can be any entity located on the level including formation member. The only rule is that it must be placed on a walkable surface.pattern: this field defines formation behavior. The most common used is CRlativeFormationPatern. It covers most cases.

CD Projekt RED REDkitPage 33

Page 34: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Formation Movement is used to define the way formation moves.

Fields: movementMode: this field defines movement type. Each movement type has its one specific parameters ( names are intuitive). Movement modes are as follows:- CMoveFPGoTo: formation moves to a point. It can be any entity placed on a walkable surface on a level.- CMoveFPFollowPath: formation moves along a path. Path is a special entity placed on a level.- CMoveFPFollowNode: formation follows moving entity. It can be PLAYER or an NPC.Important: formation can move with companion - NPC or PLAYER. Following parameters are used to define how the formation should behave with companion:companionTag: this is a tag of companion. This field should indicate an NPC or PLAYER. If this field is not defined other parameters regarding companion will be ignored.maxAwayDistance: this field defines maximum distance between companion and formation. Formation will wait for companion if the distance is greater than the define value.movementRestartDistance: formation will restart movement when distance between the companion and formation is equal or less than define value.

CD Projekt RED REDkitPage 34

Page 35: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

matchCompanionSpeed: when this field is set to true, formation will try to match companion movement speed.shouldAlwaysWait: when this field is set to true formation will wait for companion when he is too far in the back or too far in the front. When this field is set to false formation will wait for the companion only when he is too far in the back.

This is used to emit an Interest Point signal with chosen type to influence Reaction System in nearby NPCs.(on more for Reaction System look in Reaction Editor section).

<-- Those are the types of signal we can emit.

CD Projekt RED REDkitPage 35

Page 36: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

This is used for any kind of rewards, but also to give items to the player.

It is pretty self-explanatory.

With this Qblock we control our NPC's.There are 2 main actions you can take:

CActivateStoryPhase and CDeactivateStoryPhase.Spawnset: file path to the community file we want to activate.Phase: story phase that we wish to activate for the spawned npcs.streamingPartition: this is old and you should not touch that.

CD Projekt RED REDkitPage 36

Page 37: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Self-explanatorylocationTag: the tag of the waypoint we want the player to teleport to.Distance: the distance from the waypoint that player is teleported to.actorTags: tags of actors we want to teleport.cameraCorrectionIfPlayer: if true, then camera will always face the same way as Geralt.

This Qblock is used to command ActionUseDevice to an NPC, i.e. handling a lever (go to the device slot -> execute animation -> execute post animation

Logical QBlock that will propagate the signal ONLY after all its inputs are activated.You can add multiple inputs.

Logical QBlock that will propagate the signal from ONLY ONE input.

You can add multiple inputs.

Quest Log Entry is used to either finish tracking journal quest with success or fail.

questLog: path for the questLog file.entryGuid: phase name in Journal Editorrewards: if Player should be granted any

CD Projekt RED REDkitPage 37

Page 38: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

rewards with this journal progression.ShowInfoOnScreen: show on screen notification about journal update.

Quest Log Phase is used to progress the journal phases (use "Enter" input)

questLog: path for the questLog file.phaseGuide: phase name in Journal Editorrewards: if Player should be granted any rewards with this journal progression.ShowInfoOnScreen: show on screen notification about journal update.dontTrack: by default every time journal is updated, the updated quest is set to Track unless this checkbox is FALSE (used for side-quests mostly).Quest Log Track is used for swapping the currently tracked quest in journal.

questLog: path for the questLog file.phaseGuide: phase name in Journal Editorrewards: if Player should be granted any rewards with this journal progression.infoGui: send info to Gui about changes in quest tracking This Qblock is used to inject quest choices into default dialogues.

Scene: path to the scene file we want to inject.targetScene: path to the scene file we want to inject the quest choice INTO.

CD Projekt RED REDkitPage 38

Page 39: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

This is used to create an interaction dialogue (a dialogue that will start only after coming up to the NPC and activating the "TALK" interaction)

Scene: path to the scene file we want to inject.actorTags: Tag of the NPC we want to talk to.Interrupt: if true this scene dialogue will have highest priority above all else (reactions, gameplay dialogues etc).Regular scene QBlock used to activate dialogues via quest.

Scene: path to the scene file we want to inject.forcingMode: Define dialogue strategy regarding handling npcs (if npc's are missing, should the dialogue spawn them by itself, or should it wait for them to spawn etc.)Interrupt: if true this scene dialogue will have highest priority above all else (reactions, gameplay dialogues etc).

CD Projekt RED REDkitPage 39

Page 40: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

This Qblock comes in handy when we want to command an NPC to move. You can tell NPC to execute simple MoveTo command (to a tag-specific location), MoveTo on a Path placed in the World Location and many more.

This is probably the most often used Qblock in quest editor. Whatever script functionality cannot be found in other QBlocks described in this table, you most definitely will find here.

CD Projekt RED REDkitPage 40

Page 41: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

Quest Editor Conditions

CONDITION NAME PROPERTIES DESCRIPTIONQuestInsideTriggerCondition triggerTag: tag of the trigger we

want to usetag: tag of the NPC that should affect given triggerisInside: if true, when character of given tag (NPC or PLAYER) is inside the trigger, signal will propagate with TRUE output, otherwise with FALSE output; if false, when character of given tag (NPC or PLAYER) is outside of the trigger signal will propagate with TRUE output, otherwise with FALSE outputeveryone: all of npcs with this tag spawned should be inside or outside the trigger

CD Projekt RED REDkitPage 41

Page 42: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

QuestEnterTriggerCondition triggerTag: tag of the trigger we want to usetag: tag of the NPC that should affect given trigger

OnAreaEntry: if true signal will propagate with TRUE output when character of given tag is entering the area, otherwise it will propagate with FALSE output; if false signal will propagate with TRUE output when character of given tag is leaving the area, otherwise it will propagate with FALSE output; IMPORTANT: CQuestConditionBlock checks condition immediately. It doesn't wait for anything. That's why checking QuestEnterTriggerCondition with condition block is not a good idea - it's almost impossible to match very moment of entering the trigger with activation of condition block. The best for that kind of purposes is the CQuestPauseCondition.

QuestFactsDBCondition factId: name of the fact we want to check the value of.queryFact: math function that

CD Projekt RED REDkitPage 42

Page 43: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

should be used towards value of the factvalue: Desired value we compare to the current value of the fact.compareFunction: self-explanatorysinceTime: you can use this to check if lately the fact has been changed by given value.

CQuestQTEResultCondition Check if QTE condition was met.

Name: name of the QTE event localized in the cutscene file.

CD Projekt RED REDkitPage 43

Page 44: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

CQuestActorCondition States and conditions we want to check on a specific NPC/Player.

actorTag: tag of the NPC/PlayercheckType: type of condition we want to check towards given NPC/Player

CD Projekt RED REDkitPage 44

Page 45: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

CQuestTimeCondition Check if current time is the same as given in this condition.

CQuestTimePeriodCondition Does current time fit in given period (from - to).

CQuestInteractionCondition Checks if the given interaction is used (activated)

NOTE: this is a condition used only in latent condition, and ONLY for Player.interactionName: tag of the interaction we want Player to use.ownerTags: Tag of the player.

CD Projekt RED REDkitPage 45

Page 46: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

CQuestFightCondition Used to check combat outcomes (killed, stunned etc)

Tag: tag of an NPC/Player we want to checkreferenceValue: amount of tag holders that should be checked.damageMode: what outcome of battle we want to check.

CQuestReactionCondition This is used to check if any of NPC Reactions is active.

fieldName: type of reactionactorTags: tag of the actor that reacts.

CD Projekt RED REDkitPage 46

Page 47: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

CQuestEngineTimeWaitForCondition Condition for latent pause, how long it should hold the signal before propagating it (in EngineTime)

CQuestActorLifeStateCondition Used to check if an NPC/Player with given tag is alive.

actorTag: actor tagisAlive: if false, checks if npc/player is dead.

CQuestCutsceneCondition Used only for pause Condition (its latent)And it will propagate the signal after the cutscene event is activated.

cutsceneName: name of the cutscene we want to checkevent: event applied inside the cutscene file

CD Projekt RED REDkitPage 47

Page 48: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

CQuestTagsPresenceCondition Used to check the amount of tags present in World.

Tags: tag that we want to check quantity of.All: gathers all the characters with this tag. howMany: how many characters with this tag should be present.

CQuestRealTimeDelayCondition Used only in latent pause conditions.

How long in real world (real seconds) has to pass before propagating the signal further.

CQuestCameraFocusCondition nodeTag: tag of the entity that player should be looked atangleTolerance: tolerance of the angle of Player Field Of View to pass this condition.

CQCIsPlayerMeditating Used to check if player is meditating

CD Projekt RED REDkitPage 48

Page 49: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

isInMeditationMenu: if true it will propagate signal with TRUE output when the Meditation panel is open, otherwise it will propagate signal with FALSE output.; if false it will propagate signal with TRUE output when the Meditation panel is not opened, otherwise it will propagate signal with FALSE output.

CQCIsplayerResting Used to check if player is resting.

isInRestingMenu: if true it will propagate signal with TRUE output when the Resting panel is open, otherwise it will propagate signal with FALSE output.; if false it will propagate signal with TRUE output when the Resting panel is not opened, otherwise it will propagate signal with FALSE output.

CQCIsBlackscreen Used to check if Blackscreen is present.

M_isSceneVisible: if false, it will propagate with TRUE output when there is blackscreen visible, otherwise it will propagate with

CD Projekt RED REDkitPage 49

Page 50: RED ENGINE BASIC MANUAL - … · Web viewIn this window you have access to all tools as well as options such as loading existing worlds, creating new ... (and occasionally monsters),

FALSE output ; if true it will it will propagate with TRUE output when gameplay is visible, otherwise it will propagate with FALSE output.

CD Projekt RED REDkitPage 50