Category:Lua Commands

From Fortress Forever Wiki
Revision as of 23:02, 15 February 2010 by Crazycarl (talk | contribs)
Jump to navigationJump to search


Mapping for FF
The Basics

Setting up Hammer
Getting Started With Lua
Releasing a map

FF-specific Entities

Lua location system

Map Templates
FF Lua Documentation

Entity Typing
Entity Collections

Commands
Callbacks

LUA commands that are specific for Fortress Forever. This list is incomplete and will be replaced eventually, and everything put into categories.

Global Functions

Global functions are not confined to any object type. They can be called alone, from just about anywhere in the script.

Example:

local player = CastToPlayer( player_entity )
AddHudTimer(player, "timer", 300, -1, 0, 70, 4)

This global function is not a player function, though it takes a player object as a parameter.

Casting Commands

These functions cast game objects into different data types. See Lua:Entity_typing

LUA Command Description
CastToBeam( ent_id ) tries to cast the entity to a beam (to see if whatever triggered the event was a laser beam, a la SD2). If it fails, it returns null.
CastToPlayer( ent_id ) used to cast the passed in entity to a player, often used for touch commands.
CastToInfoScript( ent_id )
CastToTriggerScript( ent_id )
CastToTriggerClip( ent_id )
CastToGrenade( ent_id )
CastToDispenser( ent_id )
CastToSentrygun( ent_id )
CastToDetpack( ent_id )

Entity Checks

These commands are used to check if the specified entity is a game entity of a specific type.

LUA Command Description
IsPlayer( ent_id ) used to see if a passed in entity is a player to before actions are performed on said player.
IsDispenser( ent_id )
IsSentrygun( ent_id )
IsDetpack( ent_id )
IsGrenade( ent_id )
IsTurret( ent_id )

Player messaging and sounds

these are used to send text messages and sounds to players.

LUA Command Description
BroadCastMessage( message ) broadcasts a given message to all players.
BroadCastMessageToPlayer( player, message ) broadcasts message to one player.
SmartTeamMessage
Smartmessage
BroadCastSound( sound )
BroadCastSoundToPlayer( player, sound )
SmartSound
SmartTeamSound
SpeakAll
SpeakPlayer
SpeakTeam

Schedules

Schedules are a way to delay the effects of a script for a specific length of time.

LUA Command Description
AddSchedule("name", time, function[, param1 ... param4]) Schedules function to go off with (time) second delay. Optional parameters are applied to the function.
AddScheduleRepeating("name", time, function[, param1 ... param4]) Adds a schedule that repeats (function) constantly every (time) seconds.
AddScheduleRepeatingNotInfinitely("name", time, function, counts[, param1 ... param4]) Adds a schedule that repeats (function) (counts) times every (time) seconds.
DeleteSchedule( schedulename ) deletes an existing schedule.
RemoveSchedule( schedulename ) same as delete.

HUD Items

Through Lua, a map can display information on a player's screen.

LUA Command Description
AddHudIcon( player, HudIconType, NameOfHudIcon, X, Y, Width, Height, Align ) adds HUD icon to given player of given type. Name is generally taken from the flag entity to apply the right kind. X, Y, W, H, and A are all standard.
AddHudIconToAll( HudIconType, NameOfHudUcon, X, Y, W, H, A ) adds HUD icon to all players like those used for flag info.
AddHudText Puts a bit of text on the screen.
AddHudTextToAll
AddHudTimer Puts a countdown timer on the screen.
AddHudTimerToAll
RemoveHudItem
RemoveHudItemFromAll

Objective Icons

Objective icons help guide the player to where they are supposed to be.

LUA Command Description
UpdateObjectiveIcon(player, entity) sets player's objective to this entity.
UpdateTeamObjectiveIcon(team, entity) sets a team's objective to this entity.

Other Commands

other misc commands not lumped into any group as of yet. SetGameDescription( name ) Changes what appears in the game column of the server browser (it is appended to "FF ") For use in startup()

LUA Command Description
ConsoleToAll( message ) sends a message to server console. Inaccurately named--players will not see this.
SetGameDescription( name ) Changes what appears in the game column of the server browser (it is appended to "FF ")

For use in startup().

HasGameStarted( ) Returns false if the map is in prematch mode.
GetConvar( cvar ) checks the value of a console variable (cvar)
GetEntity( index ) gets an entity by its index.
GetEntityByName( name ) obvious?
GetInfoScriptById( id ) gets an info_ff_script's information by its id.
GetInfoScriptByName( name ) obvious?
GetGrenade() ??
GetPacketloss( playerentity ) gets a player's packet loss. Woo?
GetPing( playerentity )
GetPlayer( playerentity )
GetPlayerByID( id )
GetServerTime()
GetSteamID( playerentity )
GetTeam( playerentity )
GetTriggerScriptByName( name )
GoToIntermission( ) ???
IncludeScript( luafile ) used to include Lua files found in /includes/ such as base_teamplay or base_ctf.
ApplyToAll( effect )
ApplyToTeam( effect, team )
ApplyToPlayer( effect, player )
AreTeamsAllied( team1, team2 ) obvious?
KillAndRespawnAllPlayers() obvious!
NumPlayers() gets the number of players.
OutputEvent( event, ent_id[, param1, param2, etc.] ) tells an entity to fire the given output.
OutputEvent , void * const char* , const char* , const char* , float , unsigned int &FFLib::FireOutput
PrecacheModel( modelfile ) loads a given model into memory for use later.
PrecacheSound( soundfile ) as above.
PrintBool , &FFLib::PrintBool
RandomFloat( min, max ) generates a random float.
RandomInt( min, max ) generates a random integer
RemoveEntity( ent_id ) removes entity.
RespawnAllPlayers( ) respawns everyone.
ResetMap() resets map.
SetGlobalRespawnDelay( time ) enforces a respawn delay.
SetPlayerLimit( team , # ) used to set player limit per team.
SetPlayerLimits( #, # )
SmartClassLimits( team, #scout, #sniper, #soldier, #demoman, #medic, #hwguy, #pyro, #spy, #engineer, #civilian ) sets smart class limits instead of using individual commands.
SetConvar( player, var, value ) sets a players cvar to set value
SetTeamAllies( team , bits ) used to ally one team to another.
SetTeamClassLimit( team, class, limit )
SetTeamName( team, name )
SetTeamPlayerLimit( team, limit )
SetTeamPlayerLimit( team, limit )

Object functions

Each class of entity will have its own set of functions. These are listed in the links below:

  • Buildable -- Sentries, dispensers, etc.
  • Damageinfo-- An object that is created every time someone/something gets hurt in the game.
  • info_ff_script -- A generic game object. These are most often used as flags or other objectives.
  • Player -- Anyone that's connected to a server.
  • Team -- A team is a group of folks who don't like other groups of folks.