Fallout Editor Guide (Official)
Fallout Editor Guide (Official)
Here is the Fallout 2 editor, the scripts, and the script compiler. We were able to take some time and
put together some documentation for it (and an installer), but a lot of it will require some trial and
error. If you want to hammer away at it, well, here it is.
Some things to keep in mind:
This editor is not the holy grail. It was never meant to be released to the public. As a result, you may
boot the editor up and realize that it doesn't match your expectations for a commercially-released RPG
editor. You may suffer some retina burn. Perhaps a strange itching sensation. Constipation. So be
prepared - you are about to experience a game editor, intended only for developers.
You use the Fallout 2 editors at your own risk. A poll was posted some time ago
(http://feedback.blackisle.com/forums/showthread.php?s=&threadid=51095) asking if fans interested
in the editors would prefer to have the editors sooner with no documentation, and the answer was an
overwhelming yes, so here it is. We ended up including some documentation, anyway, so hopefully
that should help the pains of easing into the editor.
You need to have Fallout 2 installed for these editors to work.
Be sure to check out the readme.txt in the Scripts folder that will be installed with the editor. It
explains compiling the scripts, and some examples of how to build them using different C compilers
for the preprocessor. There is also information on the Open Watcom compiler and a link for where to
get it.
Page 1
This is not the Fallout 2 source code. There are no plans to release the Fallout 2 source code at this
time.
Be warned - various issues with the editor are listed in the "Known Problems" section of this
document. Check it out before using the editors.
The Fallout 2 editors are not supported by Interplay. If you have a problem with them, do not contact
customer support because they'll have no idea what you're talking about.
If you have any questions about usage of the editors, post them up on the Fallout 1 and 2 forum
(www.interplay.com), and if we can answer them, we will. Keep in mind it has been many years since
these editors have been used, and a lot of the know-how is either rusty or has been forgotten, but we'll
see what we can do.
There are a number of people you should thank for the editors.
Josh Sawyer. Without Josh, you would not have the F2 editor. He brought up the idea in a meeting,
and everybody nodded their head because it seemed like a good idea before we realized what a pain in
the ass it would be.
Darren Monahan and Feargus Urquhart. Without Darren and Ferg, you would not have the F2 editor.
Chris Heidari. Chris Heidari took a good chunk of his time to test the editor and, as an added bonus, set
up the installer to make it easier for you to use.
Scotty Everts, who put the lion's share of work in setting up the editor doc summary.
...and most of all, Chris Jones. Chris worked on getting the F2 editors together during his free time.
Without Chris, you would not have the F2 editor.
Thanks and enjoy,
Chris Avellone
Page 2
Initial Concepts
There are 6 basic art objects (categories) that make up a map.
Tiles - These are the floor and roof tiles; the basic pieces you build all your maps on. Tiles get
put down as floors when Roof is off. Roof on will place tiles at the roof elevation. So any
tile can be used either way.
Walls - Building wall sections. They come in N/S & E/W directions. All external & internal
buildings are built from these.
Scenery - The detail pieces such as chairs, tables, trash, cars, etc, used to decorate and flesh out
an area. Doors are in the scenery list.
Items - Inventory items for guns, stimpaks, etc. For placing on critters, containers, or ground.
Containers are also listed under items.
Critters - Your people and monsters. Place them and attach scripts to make them interact in
your environment.
Misc - All the odd stuff like projectile graphics and such. Exit Grid sections are part of the
Misc list.
Place an object by Right-Clicking on art object bar (see screenshot below for reference in the following
directions). Then Left-Click where you want it on the map.
To select a placed object, Left-Click on it. There is no highlight but the selected objects name will
appear in the Lower right info screen. Sometimes you might have to click it a few times to get it to
Page 3
select. You can also move the object around. Hold down the left mouse button while selecting and you
can drag to a new location.
Menu Bar - The menu bar is hidden until you move the cursor to the top of the screen.
Bookmarks - You can set a bookmark in each art object category. The 1-9 keys can be assigned to any
location on the art list, and each category can have its own set. To do this, move to a location on the art
object bar. Select the Menu Tools/Set Bookmark. Then just press the number key you want that
location to be assigned to.
Each map can have 3 map levels. Use the Up/Down arrows on the lower left side of the edit screen to
switch levels. This is used for similar levels like dungeons so you dont have to wait for a new map to
load when switching levels.
The H key will toggle hexes on and off. A Hex filled in red is blocked and no PC or NPC can enter
it. Most walls and scenery are set to Blocking on. Sometimes when laying out walls or scenery, there
will be holes, which can result in embarrassing firefights in towns with enemies shooting you through
these holes in the walls without you realizing it. Blocking hexes are explained in more detail below.
The F8 key will switch the editor into Game mode. You can walk your character around the map
and check holes in walls, or how scroll blocking is working, etc. This is the best key in the universe.
The F12 key will take a screenshot. You do not have to be in game mode - you can take screenshots
at any time while you are in the editor, compiling information on weapons, ammo, critter stats, and so
on.
Page 4
11. Hidden
Menu Bar
1. Art
Categories
10. Cursor
2. Hex Number
3. Art Object
Number
4. Art
Object Bar
5. Map
Level
6. Art Object
Toggles
7. Critter Object
Rotation
8. Object
Functions
9. Info
Screen
1. Art Categories - You can use F1-F6 to jump between them instead of using the menu.
2. Hex Number - The number of the map hex you are placing an art object. This is helpful for
telling a scripter which of the 34+ hookers on a map you need a special script attached to, as
well as laying boundaries for certain scripts.
3. Art Object Number - The number of the art object in position one of the Art Object Bar.
4. Art Object Bar - Shows the art objects of the selected category. Double Arrows scroll by page,
single arrow one at a time. Right-Click to select one. Left-Click to place on map. Plus and
Minus keys scroll through the list. Shift scrolls by page.
5. Map Level - You can have up to three maps in one file. Helps save on load times for dungeons
or building interiors.
6. Art Object Toggles - Toggles the different categories of art objects on and off. Roofs are
default to "off." To lay roof tiles you need toggle on. Remember to Toggle roof tiles off to lay
Page 5
ground tiles again. R key is a quick key for doing this. Top Down button is non-functional
- it was a feature that was never implemented.
7. Critter Object Rotation - To select which way a critter is facing when placed. If your super
mutants are always getting placed down with their asses facing you, check the critter object
rotation and change it until they're facing the right direction.
8. Object Functions Copy will copy selected elements of the art object group you are currently in. If you are
in the Tiles category, only tiles will be copied, etc. Drag the box to select the copied
elements. You can stamp the selected group anywhere you like. Right click to clear.
Copy All functions like Copy but will copy everything selected including tiles, critters,
scenery, etc. Great fun at parties.
Edit is for changing attributes of the selected object.
Delete will permanently remove the selected object.
9. Info Screen- Lists art object names and other status info.
10. Cursor - Changes based on mode or function.
11. Hidden Menu Bar - Appears when cursor is moved to top of screen.
Menu Bar
FileStandard Load, Save, Quit menu. You know the deal.
Tools
Create Pattern / Use Pattern - Allows you to set Tile patterns and place them. Making
new patterns doesnt seem to work. Use Pattern has a list of various pre-made patterns to
make it easier to layout ground and floors. Select one off the list. You can now stamp that
pattern down. The Plus & Minus keys change the size of the stamp. Right-Click to exit
Pattern mode.
Move Map - Allows you to shift the map. In case you run out of space on an edge, this
allows you to move the whole map around to re-center it. The arrow keys should shift it but
there was some trouble getting this function to work.
Move Map Elevation - Moves the whole map to another map level.
Copy Map Elevation - Copies the whole map to another map level. If you are building two
similar levels, this will save time from having to recreate most of the previous level.
Page 6
Note: There seems to be a problem when using the Copy Map Elevation
function. Trying to copy a level to another map/elevation level, the editor will crash to
the desktop with a generic Program error message. Hell, it may work for you, but it
wasn't working for us.
Toggle Block Object View - There are various invisible blocker objects used to block or
restrict movement and screen scrolling. This menu option toggles them visible in the editor so
you can edit and move them - they are never visible in-game, otherwise you would have one
surreal Fallout game on your hands. Many times when placing art, there will be holes in walls
or scenery. These blockers are used to fill in those holes so the PC or NPCs dont walk (or
shoot) through areas of the map that they arent supposed to. Check out some of the Fallout 2
maps for examples of where they are used, and you'll see what we mean.
Wall Blocker - Dark Green W. Blocks movement. Shows up as Wall (Light Green) on
in-game Map. Comes in two versions, but it appears only the one labeled Wall S.T. is
used. (Walls category, tile#621)
Secret Blocking Hex - Light Green S. Blocks movement. Shows up as Scenery (Dark
Green) on in-game Map. (Scenery category, tile#66)
Block Hex Auto Inviso - Yellow SAI. Blocks movement. Invisible on in-game Map.
Used to block out areas of a map that you dont want to show up on the in-game map.
(Scenery category, tile#343)
Light Source - Green Yellow Sun symbol. Does not block movement. Places light
source in hex. Light can be adjusted by using Edit. (Scenery category, tile#140)
Exit Grid Map Marker - Blue EG. Special markers that display in Tan on the in-game
map. Used to indicate where Exit Grids are. (Scenery category, tile#48)
Scroll Blocker - White S. A special marker that restricts screen scrolling. When the
center of the screen hits a row or column of these, the screen will no longer scroll any
farther. Used to define the edge of a map. Please note the scroll blocking works both ways.
If your character somehow gets outside the edge, you will not be able to scroll inside the
map area. (Misc. category, tile#11)
Many of these blockers were designed to work with the in-game map. The in-game map shows
objects in the Wall category in bright green. Scenery objects in dark green. To keep the ingame map useful the different shades were used to make buildings stand out from the scenery.
So when placing blocking hexes, use wall blockers for filling in holes in walls, and scenery
blockers to fill in holes in scenery. The inviso blockers work well for blocking large areas like
lakes, rad goo, etc. that you dont want to show up on the in-game map.
Exit Grid Options - Exit Grids are the brown and green dithered areas that are used to warp
the player to a new map. The art for the dithered pattern is in the Misc. category. Green is used
for transitions between maps or map levels, and brown is used for transitions to the World Map.
(There is also a black grid, but it's unused in the game.) You will notice that when placing grid
pieces, there is a hotpoint for each that shows up light blue when Hexes are visible. That blue
hex is important - for exit grids to work, the player must move across that hex. So when laying
Page 7
down a series of Exit Grids, make sure the grid hotpoint is facing towards where the player is
entering from. And make sure an uninterrupted line of them is placed so a character always has
to cross one to reach the Exit Grid.
Set Exit Grid Data - Sets the Exit grid data. After setting the data, you will mark the Exit
Grid objects with the other two options. Entering -1 in Exit Grid Dest Map option will
send the player to the World Map.
Mark Exit Grids - This will put you into a mode where you can mark exit grids to what
you entered in the above command. Clicking each Exit Grid piece will mark it. Press
ESC to exit this mode. Please note there is no indication you are in this mode. Other
functions may not work until you exit this mode.
Mark All Exit Grids - This will mark ALL exit grids on the map to what was set in Set
Exit Grid Data. It will override whatever you previously set.
The remaining options are script related and are not covered in this document.
Mapper will crash if the user tries to show map script after having canceled out of setting a map
script. To repeat, go to Scripts -> Set Map Script. Press ESC twice to cancel out of menu. Now
try to show the map script by going to Scripts -> Show Map Script. At this point the mapper
will crash to the desktop.
You may encounter sporadic problems while going through and loading up all the maps - after
awhile, maps may load in being completely engulfed in blackness. Moving the screen or cursor
around would eventually make the blackness go away.
Occasionally if you Alt-Tab out of the editor, the taskbar entry for the editor will disappear
even though the Alt-Tab list still shows the program as running. As a warning, Alt-Tab seems
to screw with the editor a bit.
There is a problem when using the Copy Map Elevation function. Trying to copy a level to
another map/elevation level, the editor will crash to the desktop with a generic Program error
message.
Page 8
Adds a timed event call to the queue, at a given time offset, to call an
objects (obj) script. Info is used to let scripts differentiate between
timed event calls so that they can be hooked in multiple times. Info is
read back by the script using the fixed_param operator. Note that time is
in ticks (you can use game_ticks(seconds_num) to get the time in ticks
from time in seconds).
Sets up a single-frame animation (anim) for the object (who) that runs in
the given direction.
Returns the action frame of the given art frame on a given object (who).
This can be used as the delay in an animation registration sequence.
Returns True if object (who) is currently animating, otherwise False.
This can be used to determine if a given object has completed an
animation.
Sets up an animation for a critter (who) to walk to a given tile (hex) at a
given speed (speed). Speed (walk/run) can also have a flag attached (see
define.h) to force the object (who) to stop its current animation (for
instance, if it was already walking somewhere) and then walk/run to the
new location (tile).
Changes the orientation (facing) of the self-object to the given direction.
Sets up an animation for the self-object to RUN to a given tile (hex).
Page 9
animate_set_frame
void Anim
newFrame (int)
animate_stand
void Anim
animate_stand_obj
void Anim
obj (ObjectPtr)
animate_stand_revers
e
void Anim
animate_stand_revers
e_obj
void Anim
obj (ObjectPtr)
art_anim
void Anim
fid (int)
attack
void Combat
who (ObjectPtr)
attack_complex
void Combat
who (ObjectPtr)
called_shot (int)
num_attacks (int)
bonus (int)
min_damage (int)
max_damage (int)
attacker_results (int)
target_results (int)
attack_setup
void Combat
who (ObjectPtr)
victim (ObjectPtr)
car_current_town
int Map
car_give_to_party
int Map
car_give_gas
int Map
amount (int)
combat_difficulty
int
combat_is_initialized
int
create_object
int (?) Object
pid (int)
tile_num (int)
elev (0-2)
create_object_sid
int (?) Object
pid (int)
tile_num (int)
elev (0-2)
sid (int)
critter_add_trait
int Critter
who (ObjectPtr)
trait_type (int)
trait (int)
amount (int)
critter_attempt_place
ment
int Map
who (ObjectPtr)
hex (int)
elev (0-2)
critter_damage
void Critter
who (ObjectPtr)
dmg_amount (int)
critter_heal
void Critter
who (ObjectPtr)
amount (int)
critter_injure
int Critter
who (ObjectPtr)
how (int)
critter_inven_obj
(ObjectPtr)
Critter/Inven
who (ObjectPtr)
where (int)
critter_is_fleeing
int Critter
who (ObjectPtr)
critter_mod_skill
int Critter
who (ObjectPtr)
skill (int)
amount (int)
Page 11
critter_rm_trait
int Critter
who (ObjectPtr)
trait_type (int)
trait (int)
amount (int)
critter_set_flee_state
int Critter
who (ObjectPtr)
flee_on (Boolean)
critter_skill_level
int Critter
who (ObjectPtr)
skillNum (int)
critter_state
int Critter
who (ObjectPtr)
critter_stop_attacking
int Critter
who (ObjectPtr)
cur_map_index
int Map
cur_town
int Map
days_since_visited
int Map
debug_msg
void Debug
text (string)
destroy_object
int Object
obj (ObjectPtr)
destroy_mult_objs
int Object
item (ObjectPtr)
count (int)
dialogue_reaction
void Dialog
mood (int)
dialogue_system_ente
r
void Dialog
difficulty_level
int
display_msg
void
message (string)
Sets the FLEE flag on or off. This controls whether the critter flees
during combat.
Returns the current skill level of a particular objects (who) skill
(skillNum).
Returns the state of a given critter object (from combat data), used to
determine if a critter is dead, unconscious, etc..
Flags the critter object (who) as no longer wishing to be active in
combat.
Returns the index # of the current map, to be matched with the defineconstant in define.h.
Returns the index # of the current town, to be matched with the defineconstant in define.h.
Returns the number of days since this map was last visited, or (-1) if it
has never been visited before.
Prints a string to the debug monitor. Should be used exclusively for
debug information, instead of display_msg()!
Destroys an object (obj), which will cause its script to be called in the
destroy_proc section if the object is *NOT* the calling object.
Destroys count number of instances of an item object. This function will
figure out which inventory this item is in (if it isnt on the ground). If it
is on the ground, of course, there is only one instance of this object, so
only one will be destroyed.
Set up a reaction animation in the dialogue system.
Tells the dialog system that this object is requesting the talk system.
This is used when the script wants to start dialog instead of waiting for
the player to initiate it. The script will be called back in its talk_proc
section.
Returns the current Game difficulty level of the game (defined in the
options screen).
Displays a string on the in-game PDA display (lower-left hand corner).
Page 12
do_check
int (roll_result) Skill
who (ObjectPtr)
check (int)
modifier (int)
drop_obj
void Inven
obj (ObjectPtr)
drug_influence
int Critter
who (ObjectPtr)
dude_obj
(ObjectOtr)
elevation
int Map
obj (ObjectPtr)
end_dialogue
void Dialog
endgame_movie
void Meta
endgame_slideshow
void Meta
explosion
int Anim
where (int)
elevation (0-2)
damage (int)
fixed_param
int
float_msg
void
who (ObjectPtr)
msg (str)
type (int)
game_ticks
int Time
seconds (int)
game_time
int Time
game_time_advance
void Time
amount (int)
game_time_hour
int Time
Causes the critter self-object to remove a given object (obj) from its
inventory and place it on the ground at its hex. This animates the
self_obj.
Returns True if a given critter object (who) is currently under any drug
influences, False otherwise.
Returns a pointer to the dude object (the player).
Returns the current elevation being displayed.
Terminates the dialogue system.
Plays the endgame movie.
Plays the endgame slideshow. The slideshow will fade in to its palette,
so it is proper to call gfade_out(1) and then expect this command to fix
the palette for you.
Sets up an explosion at a given tile number (where) on a given
elevation, that will cause damage in a radius.
Returns the value of the scripts fixed parameter. This is used with
add_timer_event, for instance, to pass the info parameter back to the
script.
Attempts to create a floating-text message (str) attached to an object
(who) using colors dictated by type. There are two special types,
WARNING and SEQUENTIAL. WARNING is used to print a message
centered on the screen (such as for end-of-quest notifications), and
SEQUENTIAL will cycle through the colors, in an attempt to give
critters different-colored messages to differentiate them.
Returns the number of game ticks equal to a given # of seconds.
Returns the current game time in ticks.
Advances the current game time by (amount) ticks.
Returns the current hour of the day in a normal format, but without the
colon. For example, the current starting game time is 721 (which is 7:21
am).
Page 13
game_ui_disable
void Meta
game_ui_enable
void Meta
game_ui_is_disabled
int Meta
gdialog_barter
int Dialog
get_critter_stat
int Critter
who (ObjectPtr)
stat (int)
get_day
int Time
gdialog_mod_barter
int Dialog
modifier (+/- percent)
get_month
int Time
get_pc_stat
int Critter
pcStat (int)
get_poison
Critter
who (ObjectPtr)
gdialog_set_barter_m
od
void Dialog
mod (int)
gfade_in
void Meta
time (int)
gfade_out
void Meta
time (int)
giQ_Option
void Dialog
iq_test (int)
msg_list (int)
msg_num (int)
target (procedure)
reaction (int)
give_exp_points
void
points (int)
Disables game user-interface input from the player (to lock-out the
player). You *MUST* make sure to re-enable the UI at some point
afterwords.
Re-enables game user-interface input from the player. This *MUST* be
called relatively soon after disabling the UI or the player will be stuck,
unable to do anything.
Returns True if the game UI is currently disabled (the player is currently
locked-out), and False otherwise.
Tells the dialog system to switch to the barter screen. (Sets the barter
modifier to 0).
Returns the value of a desired attribute/stat in a critter object (who).
Page 14
global_var
int Map
var_index (unsigned
int)
goto_xy
Map
gSay_End
void Dialog
var_index (unsigned
int)
gSay_Message
void Dialog
msg_list (int)
msg_num (int)
reaction (int)
gSay_Option
void Dialog
msg_list (int)
msg_num (int)
target (procedure)
reaction (int)
gSay_Reply
void Dialog
msg_list (int)
msg_num (int)
gSay_Start
void Dialog
has_skill
int Skill
who (ObjectPtr)
skill (int)
has_trait
int Critter
trait_type (int)
who (ObjectPtr)
trait (int)
how_much
int Skill
val (int)
inven_count
int Critter
what (ObjectPtr)
inven_ptr
(ObjectPtr) Critter
what (ObjectPtr)
slotNum (int)
inven_unwield
void Critter
Page 15
is_critical
int Skill
val (int)
is_loading_game
boolean Map
is_skill_tagged
int Skill
skillNum (int)
is_success
int Skill
val (int)
item_caps_adjust
int Inven
obj (ObjectPtr)
amount (int)
item_caps_total
int Inven
obj (ObjectPtr)
jam_lock
int Object
lockableObj
(ObjectPtr)
kill_critter
void
obj (ObjectPtr)
death_frame (int)
kill_critter_type
void Map
pid (int)
language_filter_is_on
int (boolean) Meta
load_map
void Map
map_name (string)
start_location (int)
local_var
int Map
var_index (unsigned
int)
map_first_run
int Map
map_is_known
int Meta
mapNum (int)
map_known
int Meta
mapNum (int)
Returns True if the current map is being run for the first time (in other
words, this map was not loaded from a save-game).
Returns True if a given map index (mapNum) is known, False
otherwise.
Returns True if a given map # (mapNum) is known, False otherwise.
Page 16
map_var
int Map
var_index (unsigned
int)
message_str
char *
list (int)
msg_num (int)
move_to
int Map
obj (ObjectPtr)
tile_num (int)
elev (0-2)
move_obj_inven_to_o
bj
int Inven
srcObj (ObjectPtr)
destObj (ObjectPtr)
obj_art_fid
(ObjectPtr) Object
obj (ObjectPtr)
obj_being_used_with
(ObjectPtr) Object
obj_can_hear_obj
boolean Map
src_obj (ObjectPtr)
dst_obj (ObjectPtr)
obj_can_see_obj
boolean Map
src_obj (ObjectPtr)
dst_obj (ObjectPtr)
obj_carrying_pid_obj
(ObjectPtr) Object
who (ObjectPtr)
pid (int)
obj_close
void Object
what (ObjectPtr)
obj_drop_everything
void Inven
who (ObjectPtr)
obj_is_carrying_obj_p
id
boolean Object
obj (ObjectPtr)
pid (int)
obj_is_locked
int Object
what (ObjectPtr)
Page 17
obj_is_visible_flag
int Object
who (ObjectPtr)
obj_is_open
int Object
what (ObjectPtr)
obj_item_subtype
int Object
obj (ObjectPtr)
obj_lock
void Object
what (ObjectPtr)
obj_name
void Object
what (ObjectPtr)
obj_on_screen
int Object
what (ObjectPtr)
obj_open
void Object
what (ObjectPtr)
obj_pid
int Object
obj (ObjectPtr)
obj_set_light_level
void Object
obj (ObjectPtr)
intensity (1-100)
distance (0 - 8)
obj_type
int Object
obj (ObjectPtr)
obj_unlock
void Object
what (ObjectPtr)
override_map_start
void Map
x (int)
y (int)
elev (0-2)
rot (0-5)
party_add
void Party
who (ObjectPtr)
party_member_obj
ObjectPtr Party
pid (int)
party_member_count
ObjectPtr Party
countHidden (int)
Adds a given critter (who) into the list of party members. This will also
setup those objects so that they will not be saved in maps, and certain
other things.
Returns an ObjectPtr to a party member that matches a given pid. If that
critter isnt currently a member of the party, then it will return NULL.
Returns the count of the currently in-party party members.
(countHidden) determines whether or not to count the hidden members
(hangers-on).
Page 18
party_remove
void Party
who (ObjectPtr)
pickup_obj
void Inven
obj (ObjectPtr)
play_gmovie
Meta
play_sfx
Sound
poison
Critter
who (ObjectPtr)
amount (int)
proto_data
int OR string Object
pid (int)
data_member (int)
radiation_dec
Critter
who (ObjectPtr)
amount (int)
radiation_inc
Critter
who (ObjectPtr)
amount (int)
random
int Script
min (int)
max (int)
reg_anim_animate
void Anim
what (ObjectPtr)
anim (int)
delay (int)
reg_anim_animate_fo
rever
void Anim
what (ObjectPtr)
anim (int)
delay (int)
reg_anim_animate_re
verse
void Anim
what (ObjectPtr)
anim (int)
delay (int)
reg_anim_begin
void Anim
Removes a given critter (who) from the list of party members. This will
also change those objects so that certain object- and map-level things
will respond differently to them.
Causes the critter self-object to animate and attempt to pick up a given
object (obj).
Plays one of the Fallout movies (full-screen, compressed, etc.).
Starts a new sound effect to be played on the queue.
Increases the a critters poison level by a given amount.
Page 19
reg_anim_clear
void Anim
object (ObjectPtr)
reg_anim_end
void Anim
reg_anim_obj_move_t
o_obj
void Anim
who (ObjectPtr)
dest_obj (ObjectPtr)
delay (int)
reg_anim_obj_run_to
_obj
void Anim
who (ObjectPtr)
dest_obj (ObjectPtr)
delay (int)
reg_anim_obj_move_t
o_tile
void Anim
who (ObjectPtr)
dest_tile (int)
delay (int)
reg_anim_obj_run_to
_tile
void Anim
who (ObjectPtr)
dest_tile (int)
delay (int)
reg_anim_play_sfx
void Anim
who (ObjectPtr)
sfx_name (string)
delay (int)
rm_fixed_timer_event
void Meta(Time)
who (ObjectPtr)
fixed_val (int)
rm_obj_from_inven
void Inven
who (ObjectPtr)
obj (ObjectPtr)
Removes (clears) all timer events hooked to a given objects (obj) script
that have a given fixed_value (fixed_val).
Removes an object (obj) from another objects (whos) inventory. Note:
this leaves the removed object in at location (0,1) on the map! You must
call move_to() to place it back on the map.
Page 20
rm_mult_objs_from_i
nven
int Inven
who (ObjectPtr)
obj (ObjectPtr)
count (int)
rm_timer_event
void Meta(Time)
obj (ObjectPtr)
roll_dice
Skill
roll_vs_skill
int (roll_result) Skill
who (ObjectPtr)
skill (int)
modifier (int)
rotation_to_tile
int (15) Map
srcTile (int)
destTile (int)
running_burning_guy
int
scr_return
void Script
script_action
int Script
script_overrides
void Script
self_obj
(ObjectPtr) Script
set_critter_stat
int Critter
who (ObjectPtr)
stat (int)
val (int)
Page 21
set_exit_grids
void Map
markElev (elevation)
mapID (int)
elevation (int)
tileNum (int)
rotation (int)
set_global_var
void Map
var_index (unsigned
int)
value (int)
set_light_level
void Map
level (int: 1-100)
set_local_var
void Map
var_index (unsigned
int)
value (int)
set_map_var
void Map
var_index (unsigned
int)
value (int)
set_map_start
void Map
x (int)
y (int)
elev (0-2)
rot (0-5)
set_obj_visibility
void Object
obj (ObjectPtr)
visibility (boolean)
signal_end_game
void
skill_contest
Skill
source_obj
(ObjectPtr) Script
start_dialogue
void Dialog
who (ObjectPtr)
mood (int)
Sets the ambient light level. The range is Full Darkness to Full Daylight.
Sets the value of a local variable (var_index) to a given (value).
Sets the start location & rotation for the next time this map is entered
(loaded & run).
Tells the system that a script is indicating the game should be ended.
This will return the player to the main-menu.
Returns the value of a completed skill vs skill contest (to run through
is_success & is_critical).
Returns a pointer to the source object (activator) for this action. The
source object for a pickup_proc (pickup an object script_action) would
be the critter picking the object up, for instance.
Start the dialogue system focusing on a critter (who) and starting in a
given (mood). This call sets up the appropriate dialog windows, head
art, etc. If this call is not made before the normal dialog calls (sayReply,
sayMessage, sayOption, etc.) then the dialog windows will not come up,
and only grey boxes will appear with the text.
Page 22
start_gialog
void Dialog
msgFileNum (int)
who (ObjectPtr)
mood (int)
headNum (int)
backgroundIdx (int)
target_obj
(ObjectPtr) Script
terminate_combat
void Combat
tile_contains_obj_pid
boolean Map
tile (int)
elev (0-2)
pid (int)
tile_contains_pid_obj
boolean Map
tile (int)
elev (0-2)
pid (int)
tile_distance
int Map
tile1 (int)
tile2 (int)
tile_distance_objs
int Map
obj1 (ObjectPtr)
obj2 (ObjectPtr)
tile_is_visible
boolean Map
tile (int)
tile_num
int Map
obj (ObjectPtr)
tile_num_in_direction
int Map
start_tile (int)
dir (0-5)
distance (int)
town_known
int Meta
townArea (int)
town_map
void
Returns a pointer to the first object that matches a particular pid # that is
on a particular tile and elevation.
Returns the tile distance between two objects (between their tile #s).
Page 23
use_obj
(ObjectPtr) Script
obj (ObjectPtr)
use_obj_on_obj
(ObjectPtr) Script
item (ObjectPtr)
targetObj (ObjectPtr)
using_skill
boolean Skill
who (ObjectPtr)
skill (int)
violence_level_setting
int (boolean) Meta
wield_obj
void Inven
obj (ObjectPtr)
wield_obj_critter
void Inven
who (ObjectPtr)
obj (ObjectPtr)
wm_area_set_pos
void
areaIdx (int)
xPos (int)
yPos (int)
world_map
void
world_map_x_pos
int
world_map_y_pos
int
Sends a request for the game engine to bring up the World Map screen,
for the player to move around to different locations.
Returns the current X Position of the party on the World Map.
Returns the current Y Position of the party on the World Map.
Page 24
Object
Critter
Script
Critter
Object
Script
Item
Look At
Map Enter
Map Exit
Map Update
Object
Map
Map
Map
None
Pickup
Script
Item
Spatial
Start
Talk
Timed Event
Use
Use Object On
Use Skill On
Script
Script
Critter
Script
Object
Object
Object
Page 25
Page 26
The map has just been entered, and this script is flagged as needing to be run before the normal
game processing starts up. Here, initialization code can setup variables for the map.
Map Exit:
The map is about to be left. This occurs when the player goes to the town/world maps.
Map Update:
The map is getting a heartbeat to let it update the map. Here ambient light levels can be
changed, such as when it becomes nighttime or the player changes levels to an underground/aboveground area.
None:
Nothing is happening. This should never be called, but is there for the default case.
Pickup:
This procedure means different things for different types of scripts:
Item Scripts A critter is attempting to pickup an inventory item. For containers, however, this
means that a critter is trying to *open* it/loot it.
Critter Scripts A critter is attempting to steal from this scripts critter object.
Spatial:
An object has just moved in this scripts spatial sphere of detection. The script may need to
double-check that this object is of a particular type (a critter, the players object, etc.).
Start:
A script is being run for the very first time.
Talk:
A critter object is starting to talk, either because the player requested it, or because the critters
script requested that it occur. Here the dialog system needs to be setup, and the actual script-language
dialog system calls will be placed.
Timed Event:
A timed-event has just gone off for this script. Usually, this event was setup earlier by this
script itself. It lets the script delay events or in effect give itself a heartbeat.
Use:
Something (usually a critter) is attempting to use this object. The command source_obj will
return who it is. Nearly always this will mean a critter (most likely the player) is attempting to use it,
but occasionally another script will make the call, which can be used to differentiate its behavior. For
instance, this allows the vault door scripts to open the vault door when the player uses the vault door
computer, but not when the player attempts to open the door directly.
Use Object On:
A critter is attempting to use an inventory item on this scripts object. This could be lockpicks
on a door, a medical kit on a critter, the iquana-on-a-stick on a dog, etc.
Use Skill On:
A critter is attempting to use a skill on this scripts object. The default behavior is dependent on
the specific skill itself.
Page 28