|Upon first glance, a blank Kismet
page can be quite daunting. After some practice, you'll find
yourself eager to fill it.
Kismet is where the user can create movers, script events, turn particles on and off, perhaps even change some AI, and even more.
Kismet can be thought of as a GUI (graphical User Interface) that brings code accessibility to those uninitiated in manipulating the engine. Friendly little circles and rectangles allow the user to construct simple, or complex, sequences to enhance the game's impact on the player.
Assumed Knowledge: How to create a simple testmap (BSP, light, pathnode, & playerstart).
The goal of this tutorial is to introduce the main components
and navigation through Kismet. At the end, we'll create an extremely
simple Kismet sequence.
So let's begin...
The Kismet Window: It's divided into 3 sections:
the Main Window, the Properties Window, and the Sequences Window.
Their purposes are:
• Main: This is where the Kismet GUI elements are placed and strung together to perform actions upon the actors in the level.
• Properties: All of the items created in Kismet have individual properties, and this is where those properties can be accessed and changed.
• Sequences: Depending on the scope and function of the level, it may be necessary to divide the Kismet up into seperate parts. The Sequences Windows assists in keeping track of the different parts. Although each Sequence is seperate, it is possible to link between them and even activate whole sequences individually.
*Note: It is possible to re-dock the properties and sequence windows within the main window to suit personal preference.
|The Kismet Menu Bar:
• Open Parent Sequence: Like the 'Back' button in your Internet Browser of choice, goes back up to the higher Parent Level of the currently selected sequence.
• Rename Sequence: Allows the currently selected Sequence to be renamed.
• Zoom To Fit: Automatically scales the view to fit all the Kismet into the Main Window.
• Hide Unused Connectors: Any Connectors that are currently not used, become hidden.
• Show All Connectors: Unhides any hidden Connectors.
• Lines/Curves: Changes the lines between connectors from Straight lines to curves, and curves to straight lines; generally a matter of personal preference.
• Open New Window: Yes, exactly.
|The Kismet Context Menu: To
access it, simply Right-Click anywhere in the Main Window. This
is how all Kismet is originally created.
• New Action: Performs an action on an actor in the level
based on the instruction chosen.
• New Matinee: Creates a new matinee sequence and a matinee
• New Condition: Used to fill in 'If...then' statements
and output a result. Basicaly compares something against something
• New Variable: Creates variables that can then be manipulated
by actions, conditions, or other Kismet Entities.
• New Event: Events are generally used to fire off 'Actions'.
Think of it as Kismet detecting something that occurs in the
• New Comment: Just like code, it's always useful to comment
Kismet, both for the author's own benefit, as well as others
who may try to learn from the Kismet you create. This will create
a Text Label (with a checkmark to draw a box) that can be placed
and sized around Kismet groups.
• Create New Sequence: Yes, exactly. After the Sequence
is created, it appears in the Sequence Window. *Note: No spaces
are allowed in Sequence names.
• Paste Here: Instead of pasting to a previous location
and then trying to find it, you can specify where to paste copied
Shapes & Colors:
|Kismet Entities conform to a few
simple Shape & Color rules:
• Rectangles: Either Actions or Comparisons.
• Diamonds: Events.
• Circles: Usually reference either numbers, or something
in the map and are generally Variables, References, or both.
• Red: Booleans: Basic True/False settings.
• Black: External Variable: After they're tagged to another
variable, they assume the same color as the other variable.
• Dark Blue: Floating Point Numbers: Basically, a 'computer'
version of scientific notation. Google or Wikipedia it for a
better, more detailed explanation.
• Light Blue: Integers: Simply whole numbers..
• Purple: Objects: Usually they reference an 'object',
such as an interpactor/mover within the map.
• Green: String: An alphanumericly named variable.
• White: Union: Can unite any of the other variables into
a single one.
• Yellow: Vector: Represents X, Y, & Z values.
If you take a moment to look at the two screenshots, you'll
notice that the outlets at the bottom of the action have little
triangles coming out of them that are purple. This means that
object variables (because they're purple) can be attached to
Linking/Unlinking & Enabling/Disabling Kismet Entities:
• Step 1: Left click and hold on the 'Out' of the entity.
• Step 2: Drag the line that appears over to the 'In' of
the other one.
*Note: You can also copy links on either the out or in and paste them on another. Simply right-click on the link to find the options.
• Press 'Alt' and click on the link node. All the lines connected to it will break.
• Right-Click on the entity and choose one of the 'Break'
or 'Cut' options. You can choose to break specific links or
all of them. If specific ones are needed, click the arrow to
the right of 'Break Link To' and all the current connections
• All links are enabled by default. If one is disabled,
the link line will be red. Simply right-click on the red (disabled)
connection node and select 'Toggle-Enable'.
• Right-click on a connection node and select 'Toggle-Disable'.
This will turn the line red and prevent the 'signal' from going
Assigning Actors in the World to Kismet Entities:
To create a new entity that references an actor in the level:
• Step 1: Select an object in the level.
• Step 2: Right-click in Kismet and choose the appropriate
selection from the context menu..
To assign a new actor to an existing entity already in Kismet:
• Step 1: Select the new actor in the level that is going
to be assigned to the entity.
• Step 2: Right-click on the entity in Kismet and click
Incidently, the entities in screen 1 are the same as in screen
2. I just assigned the trigger to both.
A Simple Sequence:
The simple sequence is going to be a single message that
fires off when the level starts. I'm assuming that my dear
reader will know how to set up a simple piece of BSP and
add a light and playerstart to it (and rebuild!). This needs
to be done so that the player can survive long enough to
see the message.
If instructions are needed to do that much, I suggest visiting
site for 'How to make a room' tutorials.
• Step 1: Right Click -> New Event -> Level
|• Step 2: Right Click -> New Action -> Misc
|• Step 3: Link Them together
by making a line between the 'Out' of the Level Startup and
the 'In' of the Log.
|• Step 4: Alter the properties
of the Log. Simply Lef click on the Log to select it. Add an
Object Comment - in this case 'Tutorial!'. Then, to ensure we
know that the Log gets fired off, we're going to Output the
Object Comment to the screen by adding a checkmark to the box
to the right of 'bOutputObjCommentToScreen'.
|And that's about it. When the map is launched, the player will spawn, and a 'Tutorial!' will appear in text at the bottom left of the screen.
• If Object Comments & Logs don't work: If
you follow the instructions and no messages appear onscreen,
your engine may be set to disable these 'debug' messages in
game. To fix this, you may need to try several things.
*Note: The following involves changing .ini files for the games.
This can cause things to go horribly awry in some cases, so
back up the files first.
1) Find your 'DefaultEngine.ini' file. This file will be located
in different places for different Engines/Games. Open it and
do a search for 'Kismet'. One of the first results will be 'bOnScreenKismetWarnings=FALSE'.
You'll need to change this to 'bOnScreenKismetWarnings=TRUE',
save the .ini, and see if it works.
2) If this does not work, after the 'bOnScreenKismetWarnings=FALSE'
line, add this line: 'bEnableKismetLogging=TRUE'.
3) This may work, but is generally not reccomended since it
may very well be a 'cooked' file depending on the game. Look
for the game-specific xxxengine.ini where xxx is the game and
enable the same two settings there.
4) If it still does not work, you'll need to rely only on logs
while in PIE (Play In Editor) mode - not the game itself. Add
logs to the system per the instructions below. However, you'll
only be able to view them in the generic browser's 'Log' tab,
and only if you set the 'bIncludeObjComment' boolean to true.
The text will appear in the generic browser's log, but not on
5) If even this does not work, then there's one route left.
Instead of using a log, grab an emitter and place it where you
can see it. Use a Toggle action to turn it on when you would
want the log to go off. Thus, if the emitter goes off, you'll
know that portion is working. Remember to turn off the 'AutoActivate'
property in the emitter.