Creating Objectives

From Tripwire Interactive Wiki
Jump to navigation Jump to search

What is an Objective?

Objectives are the most important part of any Objective mode map. They determine how the gameplay should flow as well as setting winning / losing conditions for players. There is no limit on the number of objectives that can be placed in a map, but you should try to reduce it where possible to avoid clutter. It is important to note that there can only be one active objective at any given time. If you want to create complex 'multi-part' objectives you are often better off using multiple conditions inside a single objective than creating multiple different objective actors. Another thing to keep in mind is that objectives are always the same for all players connected to a server. You cannot assign one player an objective that is different from someone else's. Outside of these limitations, there are very few things you can't do with Objectives. They are highly configurable and capable of producing some very complex and interesting gameplay scenarios.

Placing your First Objective

Open the Actor classes browser and navigate to StoryObjectiveBase. Expand it and you should see 'KF_StoryObjective'.

Select it and right click anywhere in your map with solid ground. You see the option to 'Add KF_StoryObjective'. Select this option and you should now see a green icon with a checkmark in the viewport.

Naming your Objective

Now that you have an objective in your map you need to give it a name. Select the objective and press F4 to open it's property menu. Click on 'Objective_Settings' from the list of collapsible categories so that it expands. Enter a name for your objective here. it can be whatever you want, but it helps to have it be relevant to what you want the players to do to complete it. i.e the Bloat bile objective in KFO-Frighyard is named 'CollectBloatBile'.

>

Setting your Objective's order

Now that your objective has a name, the next step is to let your map how the order in which it should be given to players. To do this, we are going to add it to a list in the level properties.

Press F6 to bring up the level properties window for your map. Expand the rollout titled 'Rules_Objectives' and select 'Add' next to the StoryObjectives array. This will produce a blank field where you should enter the name that you came up with for your first objective. The order in which you enter objective names in this array is very important. Index [0] of the array will always be the position of the first objective you want players to complete. Subsequent indices in the array denote future objectives in the order you wish them to be completed.


Configuring your objective's HUD properties

Adding Conditions

Now that you have added an objective to your map, it's time to add some conditions to it.

Conditions are pieces of logic which let the Objective know when it should be considered 'complete', and whether the outcome was successful, or whether players failed to accomplish their goals. As with objectives themselves, there is no limit to the number of conditions an objective actor may contain. However, unlike objectives, conditions have replicated properties which means there could be network performance issues if you decided to have a huge number of conditions active at the same time. Use your best judgement. In general, the fewer conditions you use, the less performance overhead there will be.

Conditions are broken up into different 'types' which check specific things. As of the Halloween 2013 update , these are all the 'official' condition types you can use in your map:





Each type of condition can be added to one of three separate categories in the objective actor. When adding a condition, the category you add it under determines what effect it will have on the completion requirements for your objective. Below is a list of each condition category and its uses.

Success Conditions


Success Conditions determine what it takes to successfully finish an objective. Each objective must have at least one success condition ,or it cannot be completed. If you choose to add multiple success conditions the objective will only be considered complete if each one of them is completed. The only exception to this rule is if you change the Progress Importance value of your conditions.

Example : If I add a 'ObjCondition_Timed' condition to my Success Conditions array, my Objective will succeed if I wait for 60 seconds.

Failure Conditions


Failure Conditions determine what it takes to fail an objective. Unlike success conditions, failure conditions are entirely optional. Many objectives will not have any failure conditions at all because alot of Killing floor maps assume that failure just means dying, so there's not always a need to impose added restrictions on players. An example of a failure condition is the 'Don't let anything other than bloats fall into the trap' condition from KFO-Frightyard.

Example : If I add a 'ObjCondition_Timed' condition to my Failure Conditions array, my Objective will fail if I take longer than 60 seconds

Optional Conditions


Optional conditions have no impact on the completion state of an objective. They exist purely to provide the player with "bonus" goals, or to display HUD information. If you want to add an extra goal for the player to achieve that isn't important, put it here.

Creating a new Condition

To create a new condition, expand the category you want to add the condition to, select a type of condition to add from the drop down list and then click the 'new' button on the right hand side of the properties window.

After adding a new condition you will notice that it displays a list of collapsible categories. Each category can be expanded to modify a different area of the condition's behaviour.

Configuring condition HUD properties

The 'HUD' rollout in the condition properties is important because it controls the amount of feedback players receive on their HUDs for that condition. Two types of information can be displayed on the HUD for each condition :

World HUD information is useful for displaying icons that hover over top of areas in the map you want players to go to, or for marking locations that are significant. Screen HUD information is useful for letting players keep tabs on how they are progressing with their current objective. You can choose to display one type of HUD information, or both, or neither. The more conditions you are displaying HUD information for, the slower your map will run, not to mention your HUD will start to look very confusing - So exercise restraint.

Adding Actions

Now that you have added conditions to your objective, the next step is adding actions. Whereas conditions are the steps players need to go through in order to complete an objective, 'Actions' are the pieces of logic which get executed when a player completes (or fails) all the conditions successfully. They are responsible for things such as transitioning to the next objective or telling the game to end in victory, or defeat. Unlike conditions, each objective can only have a single action for success and failure.

The types of actions an objective can have are as follows :

Creating a new Action

To create a new action, expand the category you want to add the action to, select a type of action to add from the drop down list and then click the 'new' button on the right hand side of the properties window.

Note: By default, each objective has a 'ObjAction_GoToNextObjective' success action. If you want your objective to do something different, simply select the default action and click 'Clear' , then add your own action in place of it.

Using objectives to trigger events

Since objectives can take a while to complete you will almost certainly want to have events firing off at various points while players are tackling their goals. This is where the Objective_Events collapsible category comes in handy. You can use it to make doors close when an objective is finished, spawn enemies the moment an objective begins, or anything else you want.

If you expand the Objective_Events collapsible category you will find the following arrays :

Variable Name Variable Type Description
ActivationEvents Array<Name> This is a list of events that get triggered the moment this becomes the active objective.
CompletionEvents Array<Name> This is a list of events that get triggered the moment this objective is successfully completed by players.
DeActivationEvents Array<Name> This is a list of events that get triggered the moment this objective ceases to be the current objective, either because it was completed, failed, or otherwise. They are triggered in order.
FailureEvents Array<Name> This is a list of events that get triggered the moment this objective is failed by players. Note that these events will only fire if this objective has active failure conditions which are met, dying does not count.