Professional Documents
Culture Documents
NED Guide
NED Guide
NED Guide
6/23/2024
Table of contents
Intro……………………………………………………………………………………….3
Interface………………………………………………………………………………….4
Basic Mod Setup………………………………………………………………………14
Basic Mission Setup…………………………………………………………………..15
Scripting Basics………………………………………………………………………..16
Intro
This document is intended to give an overview of NED, the game editing tool
used to create the missions in Rainbow Six: Lockdown. It covers the NED
interface, scripting basics, setting up mods, and the initial setup of a custom
mission. While NED is not a supported tool, the information contained in this
document should provide a useful starting point for a body of knowledge within
the mod community.
Interface
3D Environment View:
Menu Bar:
The Menu Bar contains eight drop-down menus and several shortcut icons.
The short cut icons do the following, corresponding from left to right:
1) Create a new mission
2) Open a mission
3) Save a mission
4) Show translation axes of a selected mission object in the 3D Environment
View
5) Show rotation axes of a selected mission object in the 3D Environment
View
6) Switch to the basic selection cursor
7) Locks translation and rotation to the X axis
8) Locks translation and rotation to the Y axis
9) Locks translation and rotation to the Z axis
10)Locks translation and rotation to the X and Y axes
11)Locks translation and rotation to the X and Z axes
12)Locks translation and rotation to the Y and Z axes
13)Save a screenshot of the 3D Environment View in the folder containing
NED
14)Display the mission without lighting
15)Run mission immediately (not recommended)
The Script Editing Window, accessible through the menu bar Script > Edit, lists
all Blocks in your mission script. Blocks are sorted in this view based on their
Comment, but can be temporarily sorted by Group or Trigger by clicking on those
words near the top of the Script Window. Note that it doesn’t matter what order a
Block appears in the Script Editing Window, because Blocks execute when
they’re triggered and not in order from top to bottom.
Blocks are created, edited, copied, and deleted in the Script Editing Window
using the corresponding buttons in the upper right corner.
Clicking on the “Summary” button opens a summary of your entire mission script
in notepad. Here you can more easily view and search the script in its entirety,
but changes made in Summary are not saved and have no effect on the actual
mission.
Clicking on the “Tags” button will open up the Tags Window where you can view
all existing Tags in a mission. Tags are the names given to Elements in a
mission as well as the names given to References. References can be used to
temporarily refer to an Element in scripting. New Tags can be created by
selecting a Type, entering a name, and clicking the “Add” button in the “Add Tag”
area of the Tags Window. The only type of Tag that is commonly created in
mission scripting is a Reference (ActorRef, PlatoonRef, Team Ref, etc.).
Creating a new Block or selecting a Block and choosing the Edit option in the
Script Window opens the Block Editing Window for that Block. Block Triggers,
Groups, and Comments can be set here; as well as adding the individual
Responses that a Block executes.
A Block’s Trigger Event is the condition for the Block to begin, and the
corresponding Responses to Execute. For example, a common Trigger Event is
the “EnterZonePlatoon” Trigger. During gameplay, when the designated Platoon
enters the designated Zone, the Responses in the Block using this Trigger will
execute.
A Block’s Responses are the individual actions that are executed in the game
world. Examples include adding Objectives, assigning Plans to enemy Teams,
or declaring a mission complete.
Objectives Window:
The Objectives Window, accessible through the menu bar Script > Objectives,
allows for the creation of the mission Objectives that are added, removed,
completed, and failed through scripting. Checking the “Add before game begins”
checkbox sets an objective to active when a mission starts. Objectives are used
to tell the player how to complete a mission successfully.
3) Copy the following text into “modscont.txt”, make sure to keep text entered
in quotations less than 26 characters
// Mods Contents
NAME "type mod name here"
AUTHOR "type author name here"
SUPPORT "type mod web or email address here"
VERSION "type mod version number here"
6) Copy the following text into “campaignfile.xml”, make sure you later
change “mission_filename.mis” to match the actual name of the mission
file you create.
<CampaignFile>
<Campaign filename= “mission_filename.mis" missionNumber="1"/>
</CampaignFile>
7) After you’ve created your mission and saved it into the “mission” folder,
run Rainbow Six: Lockdown, choose “Mods” in the interface, and your
mod can be enabled.
Mods aren’t limited to missions only. Any file that is in the correct folder structure
within your mod folder replaces the corresponding original game file when the
game is run with the mod enabled. Mods of a higher priority have their files
chosen first over the same file in a lower priority mod.
Below are the steps to create the basic framework for a mission that loads and is
playable.
2) Under the Map Properties Window that appears, click the “Select” button
next to “Environment”
3) Browse the map folder and select a .env file to script a mission on, then
click OK in the Map Properties Window
4) After the map loads, you need to edit the Mission Properties by clicking
Edit > Mission
7) Choose the Environmental Sound File (.esf) from the mission folder
corresponding to the map you are scripting on
8) Link to Model Set (.cms), Game Set (.cgs), and Weapon Set (.wsf) files for
each of the 4 Rainbow team members. The Rainbow team member
chosen for Slot 0 is the player’s character in Single Player. If a mission is
setup with less than 4 Rainbow team members it will not work in Co-Op.
In this case, Multi Player Mission Type should be set to “Not Available”
9) Now that this initial setup is done, save your mission in the “mission” folder
of the mod file structure you created in the previous section. The .mis
filename should match the filename referred to in the “campaignfile.xml”.
10)Now select the “Zone” Element type from the “Zone” category in the
Available Elements List and ctrl + left click on a valid space in the
navmesh where you intend the mission start point to be. While this zone
is selected, check the “Insertion” property in the Element Properties
Window. Press the 1 key with the zone selected to bring up the
translation axes. Reposition one of the zone points so the zone covers an
area approximately large enough for 4 team members. Lastly, adjust the
orientation property of the zone to match the intended facing of the player
at the start of the mission.
Now that the basic mission setup is complete, if you enable your mod, your
mission becomes available by choosing Single Player from the main menu.
Scripting Basics
Element Definitions
Below are definitions of the Elements most often used in mission scripting.
Actor
An Actor is a placed AI character in the game. The Actors category in the
Available Elements List shows all currently available Character Model Set
files. After initially placing an Actor, Shift + left click in the 3D Environment
view to create alternate start locations for the actor, which are randomly
chosen when the mission begins. Just like the Rainbow team members
you set up in Mission Properties in the previous section, actors need a
valid Model Set (.cms), Game Set (.cgs), and Weapon Set (.wsf) file.
Team
Teams are organizational Elements that don’t have a physical
representation in the game world. However, all Actors must be created
within a Team. Actors in the same Team execute plans together and
share information such as target locations.
Platoon
Platoons are a higher-level organizational Element. All Teams must exist
within a Platoon. Platoons share some basic information, but not in as
much detail as a Team.
Company
Companies are the highest-level organizational Element. All Platoons
exist within a Company. Companies can be designated as enemy
(default), or allied; but only one of each type should exist in a mission.
Note
A Note is like a bookmark for the 3D Environment View. Place a note
anywhere in the environment, and then double click it later in the Placed
Elements List to jump to that location. The name of the Note is also
displayed in the 3D Environment View. A Note has no effect on the
mission during gameplay, but can be helpful in organizing complicated
scripts.
CoverPoint
CoverPoints are placed throughout a mission anywhere you want the AI to
consider as valid cover during a firefight. When placed, it displays an
adjustable arc. During gameplay, if an AI senses a threat within the angle
of that arc, they use that location for cover. CoverPoints have a number of
properties that allow them to be adjusted for different heights and angles.
Due to the number of CoverPoints that need to be placed in a mission,
you may find it easiest to open a mission included in the game that uses
the map you’re scripting on and use the File menu bar options to
export/import CoverPoints.
Effect
Effects are particle effects that can be placed in the world to script smoke,
explosions, and other particle effects. They can be set to “Initially Active”
or turned on through scripting using the “EffectActivate” Response.
Mission Object
Mission Objects are most often placed in the world as an object that can
be manipulated by the player during game play, such as a laptop or bomb.
When the player finishes manipulating a properly configured Mission
Object during gameplay, any Blocks using the “ObjectStopManipulating”
Trigger setup for the corresponding Mission Object are executed.
Zone
Zones are one of the most useful Elements for scripting in NED. They are
used to designate a specific area in the game environment. Rect and
Cylindrical Zones extend indefinitely on all floors above and below their
placement. Box Zones only designate the area within the 3-Dimensional
area they encompass. A very common use for Zones is to use the
“EnterZonePlatoon” Trigger to execute a Block when a member of the
PlayerPlatoon enters a zone.
SpawnArea
Spawn Areas are used to create actors without first placing them in the 3D
Environment View. While not common, they can be useful in scripting
events where a large number of enemies are assaulting the player.
CornerZone
Corner Zones are setup at all corners throughout an environment and
allow Rainbow team members to scout corners as they move through an
environment. When a Rainbow team member travels into a Corner Zone,
they order up another member to scout the corner designated by a Corner
Point. Corner Zones should be placed in the area leading up to a corner,
and then Corner Points are created at the corner itself by shift + left
clicking on the navmesh while the Corner Zone is selected. Rotate the
Corner Point to match up to the corner geometry. Like CoverPoints, you
may find it easiest to open a mission included in the game that uses the
map you’re scripting on and use the File menu bar options to export/import
CornerZones.
Script Definitions
Blocks
Blocks are the fundamental component of a script in NED. They are composed of
a Trigger Event and a series of Responses. They can be organized into Groups.
Blocks only execute once unless they contain the BlockPreserve Response that
causes the Block to execute as many times as the Trigger Event occurs.
Groups
Blocks can only be triggered if they are in a currently enabled Group. All Blocks
are initially created in the <default> Group, which is always enabled. Other
Groups can be created and assigned to Blocks. The GroupEnable and
GroupDisable Responses enable and disable Groups.
Triggers
Triggers are the conditions for a Block to begin. Once an event occurs in the
game world that corresponds to the Trigger for a Block, the Responses within
that Block executes.
Responses
Responses are the individual actions executed in the game world. They are
executed in order from top to bottom when a Block is triggered.
BlockPreserve
Allows a Block containing this response to be triggered more than once.
BlockRemove
Prevents a Block containing the BlockPreserve Response from being
triggered again. Usually used in combination with one of the “If” Flow
Control Responses
If
When the Query in this Response is true, all Reponses between the If
Response and the EndIf Response execute.
Else
Used between If and EndIf Responses. When the Query in the If
Response is false, all Reponses between the Else Response and the
EndIf Response execute.
EndIf
Used to end an If statement. All Responses below execute normally.
ContinueIf
The Responses below only execute if the Query in this Response is true.
StopIf
The Responses below only execute if the Query in this Response is false
Wait
Delays the execution of the Responses below by the given number of
seconds. (accurate to 1/10th of a second)
FlagSet
Used to set a Flag Tag to true or false. The value of a Flag can then be
queried elsewhere in the script.
Queries
Queries are questions being asked to the game world that return a specific result.
These are used within Responses and give the scripter flexibility in how they
refer to things in the game world.
Getting Started
To edit the script, bring up the Script Editing Window by clicking Script > Edit on
the menu bar. You’ll notice that one Block has already been created for you.
This Block uses a Startup Trigger, which causes the Block to begin executing its
responses as soon as a mission starts. This is useful for any pre-mission set up
you need to do in scripting. You’ll also notice that within this Block one
Response has been created for you. That Response is the VariableSetPlatoon
Response. This Response sets the Platoon Reference Tag “Player Platoon” to
equal the result of the GetPlayerPlatoon Query that returns the Platoon that the
player’s character is associated with. You’ll now be able to refer to Rainbow as
“Player Platoon” throughout the rest of your script.
The following is an example of what two Blocks in a typical mission script might
look like. These two Blocks first complete an Objective when the hostages are
successfully escorted to the extraction zone, then assign the second Objective
and start an enemy counter attack.
Group: <Default>
Comment:
001: Hostages at Extraction / Obj 1 Complete
Trigger Event:
[ProximityPlatoon] A member of Player Platoon is within 10 meter(s) of Zone: Hostage
Extraction.
Responses:
[BlockPreserve] Allow this block to be reactivated.
[ContinueIf] Continue executing responses if ([CompareIntegers]
([TeamMembersAtLocation] The number of members of Team: Hostages within 10
meter(s) of Zone: Hostage Extraction) is equal to 2).
[ObjectiveComplete] Mark Objective 1 complete in the objective list.
[Wait] Pause execution for 4 seconds
Group: <Default>
Comment:
002: Enemy Counter Attack
Trigger Event:
[TimerExpired] Timer: Enemy Counter Attack has expired.
Responses:
[AbortPlanTeam] Cancel execution of any plan assigned to Team: Enemy Counter
Attackers.
[ExecutePlanTeam] Assign plan 'Plan: Enemy Counter Attack' to Team 'Team: Enemy
Counter Attackers' and execute.
The second Block uses the TimerExpired trigger, which causes the Block to
execute when the timer we set earlier ends its countdown. When this happens
the Responses in the Block abort the current Plan of an enemy Team then
assign a new Trigger Plan to that Team. The Plan we assign was setup in the
mission to have the enemy Team counter attack Rainbow’s location.