FraggleScript functions
From DoomWiki.org
This is a comprehensive list of FraggleScript functions:
Contents
System variables
These are functions rather than variables, but are always available to the player:
- 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
script 82 { // kill the object which started this script kill(trigger); }
Control functions
- break
- Exit a loop, eg.
while (1) { break(); }
- continue
- Move to the next iteration in a loop
while (1) { continue(); print("this message is never displayed"); }
- return
- Stop the current script
script 1 { return(); print("this message is never displayed"); }
- goto
- Jump to a particular label
script 1 { goto(my_label); print("this message is never reached"); my_label: }
- include
- Execute the contents of the lump specified (acts like "#include" in C)
// include the contents of the wad lump named 'things.h' include("things.h");
Basic language functions
- Print a message to the console
print("hello, world");
- rnd
- Returns a random number from 0..255
script 1 { int my_number = rnd(); if (my_number % 2 == 0) { print("heads"); } else { print("tails"); } }
- 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
- message
- Display a message to the player
- playermsg
- Send a message to a particular player
playermsg(2, "Hello, player 2");
- playertip
- Send a tip to a particular player (centre-of-screen message)
playertip(2, "Dont go this way, player 2!");
- playeringame
- Returns 1 if the given player is in the game
if (playeringame(2)) { print("player 2 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)