FraggleScript functions

This is a comprehensive list of FraggleScript functions:

System variables
These are functions rather than variables, but are always available to the player:

script 82 { // kill the object which started this script kill(trigger); }
 * consoleplayer : The player on the console, ie. in a network game, the player on this machine.
 * displayplayer
 * fov : The current field of view size
 * trigger : The object which triggered the current script to start

Control functions
while (1) { break; } while (1) { continue; print("this message is never displayed"); } script 1 { return; print("this message is never displayed"); } script 1 { goto(my_label); print("this message is never reached"); my_label: } // include the contents of the wad lump named 'things.h' include("things.h");
 * break : Exit a loop, eg.
 * continue : Move to the next iteration in a loop
 * return : Stop the current script
 * goto : Jump to a particular label
 * include : Execute the contents of the lump specified (acts like "#include" in C)

Basic language functions
print("hello, world"); script 1 { int my_number = rnd; if (my_number % 2 == 0) { print("heads"); } else { print("tails"); } }
 * print : Print a message to the console
 * rnd : Returns a random number from 0..255
 * prnd (legacy extension): Returns a random integer from 0..255 (using the doom random table)
 * input : (non-functional) read a line from the keyboard
 * beep : Make a sound
 * clock : Returns the level time, in 1/100ths of a second
 * wait : Causes the current script to delay further execution for time number of clocks (1 clock = 1/100 of a second)
 * tagwait : Causes the current script to delay further execution until all activity associated with the tag number passed to it has stopped
 * scriptwait : Causes the current script to delay further execution until all instances of the script with number scriptnum have finished execution
 * startscript : Causes script to run at the start of a level
 * scriptrunning
 * startskill : Starts a new game on a skill level from 1 to 5
 * exitlevel: Exit the level
 * tip : Display a message to the player (in the centre of the screen)
 * timedtip (legacy extension): Prints a centered message to all players, which lasts clocks/100 number of seconds

Messages
playermsg(2, "Hello, player 2"); playertip(2, "Dont go this way, player 2!"); if (playeringame(2)) { print("player 2 is in the game!"); }
 * message: Display a message to the player
 * playermsg: Send a message to a particular player
 * playertip: Send a tip to a particular player (centre-of-screen message)
 * playeringame: Returns 1 if the given player is in the game
 * gameskill (legacy extension): Returns a value from 1 to 5 representing the skill level of the current game
 * gamemode (legacy extension): Returns an integer value representing the current mode of gameplay

Player information and control

 * playername: Returns the name of a given player
 * playerobj: Returns a reference to the object controlled by a player
 * playeraddfrag (legacy extension): With one argument 1 frag will be added to that player's frag count. If passed two arguments, 1 frag will be added to the first player's frag count against the second player specified (for tally screen). If both players are the same number, a frag will be subtracted from that player's frag count (suicide)
 * isplayerobj (legacy extension): Returns 1 if the trigger object or specified object is a player avatar, and 0 otherwise
 * skincolor (legacy extension): Returns the number corresponding to a player's colour, or can be used to set colour
 * playerkeys (legacy extension):If passed a player number (0-31) and a key number (0-5), this function will return 1 if the player possesses that key or 0 if he does not. If additionally passed the givetake parameter, it will give the key to the player if givetake is non-zero, or will take the key away from the player if givetake is zero. In this case, the function always returns zero regardless
 * playerammo (legacy extension):If passed a player number (0-31) and an ammo type number (0-5), this function will return the amount of that type of ammo the player has. If additionally passed the amount parameter, it will set the player's ammo of that type to this amount, clipping it into the range of zero to the maximum amount the player can carry for that type
 * maxplayerammo (legacy extension): Sets a player's maximum ammo
 * playerweapon (legacy extension): If passed a player number and weapon type number, this function will return 1 if that player has that weapon, 0 if he does not. If additionally passed the givetake parameter, it will set the player's possesion of that weapon. 0 will take the weapon away, while any non-zero number will give it to the player

Objects

 * spawn
 * kill
 * removeobj
 * objx: Returns the X coordinate of an object
 * objy: Returns the X coordinate of an object
 * objz: Returns the Z coordinate of an object
 * teleport
 * silentteleport
 * damageobj
 * player: If the object is a player, returns the number of the player
 * objsector
 * objflag
 * pushobj
 * objangle
 * objhealth
 * spawnexplosion (legacy extension)
 * radiusattack (legacy extension)
 * testlocation (legacy extension)
 * pushthing (legacy extension)
 * objdead (legacy extension)
 * objreactiontime (legacy extension)
 * reactiontime (legacy extension)
 * objtarget (legacy extension)
 * objmomx (legacy extension)
 * objmomy (legacy extension)
 * objmomz (legacy extension)
 * spawnmissile (legacy extension)
 * mapthings (legacy extension)
 * objtype (legacy extension)
 * mapthingnumexist (legacy extension)

Sector control

 * floorheight
 * floortext
 * floortexture (legacy extension)
 * movefloor
 * ceilheight
 * ceilingheight (legacy extension)
 * moveceil
 * moveceiling (legacy extension)
 * ceiltext
 * ceilingtexture (legacy extension)
 * lightlevel
 * fadelight
 * colormap

Cameras

 * setcamera
 * clearcamera
 * movecamera (legacy extension)

Math functions

 * pointtoangle
 * pointtodist
 * max (legacy extension)
 * min (legacy extension)
 * abs (legacy extension)
 * sin (legacy extension)
 * asin (legacy extension)
 * cos (legacy extension)
 * acos (legacy extension)
 * tan (legacy extension)
 * atan (legacy extension)
 * exp (legacy extension)
 * log (legacy extension)
 * sqrt (legacy extension)
 * floor (legacy extension)
 * pow (legacy extension)

Sound effects

 * startsound
 * startsectorsound
 * changemusic
 * startambiantsound (legacy extension)
 * ambientsound (legacy extension)

Hubs

 * changehublevel

Doors

 * opendoor
 * closedoor

Heads-up GUI

 * newhupic (legacy extension)
 * createpic (legacy extension)
 * deletehupic (legacy extension)
 * modifyhupic (legacy extension)
 * modifypic (legacy extension)
 * sethupicdisplay (legacy extension)
 * setpicvisible (legacy extension)

Miscellaneous

 * runcommand : Executes a console command

script 10 { // quit the game runcommand("quit"); }
 * linetrigger: Activates a particular Doom line trigger
 * playdemo (legacy extension)
 * checkcvar (legacy extension)
 * setlinetexture (legacy extension)
 * lineflag (legacy extension)
 * setcorona (legacy extension)