OTS Guide
  • Introduction
  • Compiling
    • Compile on Arch
    • Compiling on CentOS
    • Compiling on Debian GNU Linux
    • Compiling on Fedora
    • Compiling on FreeBSD
    • Compiling on Gentoo
    • Compiling on Mac OS X
    • Compiling on Ubuntu
    • Compiling on Windows
    • Compiling on Windows (vcpkg)
  • Running your first OT Server
    • Setting up your first server
    • Connecting to your server
    • Editing your datapack
    • Opening your server to the public
  • TFS documentation
    • TFS 1.4 official release
    • LuaScript Interface
      • Action
      • ChatChannel
      • CreatureEvent
      • GlobalEvents
      • MoveEvent
    • Lua functions
    • Metatables
      • Game
  • Glossary
  • Running your first ubuntu linux OT
Powered by GitBook
On this page
  • Game
  • Available methods:
  • Global
  • Available methods:
  • os
  • Available methods:
  • table
  • Available methods:

Was this helpful?

  1. TFS documentation

Lua functions

PreviousMoveEventNextMetatables

Last updated 5 years ago

Was this helpful?

Game

Available methods:

Game.broadcastMessage(message, messageType)

Description: Send message to all players Parameters: Returns: Nothing Example:

local message = 'Hello'
local messageType = MESSAGE_STATUS_DEFAULT
Game.broadcastMessage(message, messageType)

Added in version: 1.0

Game.convertIpToString(ip)

Description: Convert numeric representation of IPv4 to string with dot separated octets Parameters: Returns: String Example:

function Player:onLook(thing, position, distance)
  if thing:isCreature() then
    if thing:isPlayer() then
      local playerIp = thing:getIp()
      local ip = Game.convertIpToString(playerIp)
      local description = string.format("IP: [%s].", ip)
    end
  end
  self:sendTextMessage(MESSAGE_INFO_DESCR, description)
  return true
end

Added in version: 1.0

Game.createItem(itemId, count[, position])

Description: Creates an item. Parameters: Returns: The item created. (userdata) Example:

-- Create an item somewhere on the map.
local item = Game.createItem(2400, 1, Position(100, 100, 7))
--
-- Create a temporary item that is given to a player (if it isn't moved from creation it will be deleted)
local player = Player(...)
player:addItemEx(Game.createItem(2400, 1))

Added in version: 1.0

Game.createContainer(itemId, size[, position])

Description: Creates a container with given size. Parameters: Returns: The container created. (userdata) Example:

-- Create an amulet of loss as a container with size 5 at position: x 100, y 100, z 7.
local item = Game.createContainer(ITEM_AMULETOFLOSS, 5, Position(100, 100, 7))
--
-- Create a temporary container that is given to a player (if it isn't moved from creation it will be deleted)
local player = Player(...)
player:addItemEx(Game.createContainer(ITEM_AMULETOFLOSS, 5))

Added in version: 1.1

Game.createMonster(monsterName, position[, extended = false[, force = false]])

Description: Creates a monster. Parameters: Returns: The monster created. (userdata) Example:

-- This should always create this monster.
local monster = Game.createMonster("demon", Position(100, 100, 7), false, true)
if not monster then
    -- Something went wrong?
end

Added in version: 1.0

Game.createNpc(npcName, position[, extended = false[, force = false]])

Description: Creates a npc. Parameters: Returns: The npc created. (userdata) Example:

-- This may possibly not create the npc.
local npc = Game.createMonster("some npc", Position(100, 100, 7), false, false)
if not npc then
    -- Something is probably blocking that position and around it aswell
end

Added in version: 1.0

Game.createTile(x, y, z[, isDynamic = false])

Description: Creates a tile if it can. Parameters: Returns: The tile created or the previous existing one. (userdata) Example:

local tile = Game.createTile(100, 100, 7)
local ground = tile:getGround()
if ground then
    print(ground:getName())
end

Added in version: 1.0

Game.createTile(position[, isDynamic = false])

Description: Creates a tile if it can. Parameters: Returns: The tile created or the previous existing one. (userdata) Example:

local tile = Game.createTile(Position(100, 100, 7))
local ground = tile:getGround()
if ground then
    print(ground:getName())
end

Added in version: 1.0

Game.getExperienceStage(level)

Description: Find the experience rate related to a certain level. Parameters: Returns: The experience rate related to the specified level. Example:

-- Print the experience rate for level 8 to the console
print(Game.getExperienceStage(8))

Added in version: 1.0

Game.getGameState()

Description: Gets the current gamestate. Parameters: None Returns: Current gamestate on the server. Example:

print(Game.getGameState())

Added in version: 1.0

Game.getHouses()

Description: Get all houses. Parameters: None Returns: A table containing all houses (userdata). Example:

-- This prints the names of all houses that exist on the server
local houses = Game.getHouses()
for i = 1, #houses do
    print(houses[i]:getName())
end

Added in version: 1.0

Game.getMonsterCount()

Description: Find the total amount of monsters on the server. Parameters: None Returns: Total amount of monsters on the server. Example:

print(Game.getMonsterCount())

Added in version: 1.0

Game.getNpcCount()

Description: Find the total amount of npcs on the server. Parameters: None Returns: Total amount of npcs on the server. Example:

print(Game.getNpcCount())

Added in version: 1.0

Game.getPlayerCount()

Description: Find the total amount of players on the server. Parameters: None Returns: Total amount of players on the server. Example:

print(Game.getPlayerCount())

Added in version: 1.0

Game.getPlayers()

Description: Get all connected players. Parameters: None Returns: A table containing all connected players (userdata). Example:

-- This prints the names of all players connected to the server
local players = Game.getPlayers()
for i = 1, #players do
    print(players[i]:getName())
end

Added in version: 1.0

Game.getReturnMessage(value)

Description: Gets a message associated with the value. Parameters: Returns: true Example:

-- This makes no sense but its an example.
local player = Player(...)
player:say(Game.getReturnMessage(RETURNVALUE_YOUARENOTTHEOWNER), TALKTYPE_SAY)

Added in version: 1.0

Game.getReverseDirection(direction)

Description: Gets reversed direction. Parameters: Returns: Direction (integer) Example:

local direction = DIRECTION_NORTH
local reversedDirection = Game.getReverseDirection(direction)
print('Numerical value of SOUTH direction is equel '.. tostring(reversedDirection))

Added in version: 1.0

Game.getSkillType(weaponType)

Description: Gets skill type associatet with weapon type. Parameters: Returns: Skill type (integer) Example:

local itemtype = ItemType(...)
local weaponType = itemtype:getWeaponType()
local skillType = Game.getSkillType(weaponType)

Added in version: 1.0

Game.getSpectators(position[, multifloor = false[, onlyPlayer = false[, minRangeX = 0[, maxRangeX = 0[, minRangeY = 0[, maxRangeY = 0]]]]]])

Description: Get all creatures in the area. Parameters: Returns: A table containing creatures found (userdata). Example:

-- This finds all players in a 5x5 area around (100, 100, 7)
local spectators = Game.getSpectators(Position(100, 100, 7), false, true, 0, 2, 0, 2)
for i = 1, #spectators do
    local spectator = spectators[i]
    spectator:say(spectator:getName(), TALKTYPE_SAY)
end

Added in version: 1.0

Game.getStorageValue(key)

Description: Get value from globalStorageTable Parameters: Returns: Value from table on empty index nil value Example:

local storage = Game.getStorageValue(1)
print(tostring(storage))

Added in version: 1.0

Game.getTowns()

Description: Get all towns. Parameters: None Returns: A table containing all towns (userdata). Example:

-- This prints the names of all towns that exist on the server
local towns = Game.getTowns()
for i = 1, #towns do
    print(towns[i]:getName())
end

Added in version: 1.0

Game.getWorldType()

Description: Gets the current world type. Parameters: None Returns: Current gamestate on the server. Example:

print(Game.getWorldType())

Added in version: 1.0

Game.loadMap(path)

Description: This loads a new map chunk. Parameters: Returns: Nothing Example:

Game.loadMap("data/map/some_other_map.otbm")

Added in version: 1.0

Game.setGameState(state)

Description: Sets the current gamestate. Parameters: Returns: true Example:

-- Shutdown the server
Game.setGameState(GAME_STATE_SHUTDOWN)

Added in version: 1.0

Game.setStorageValue(key, value)

Description: Insert value into globalStorageTable on specific key Parameters: Returns: Nothing Example:

Game.setStorageValue(1, 1000)

Added in version: 1.0

Game.setWorldType(type)

Description: Sets the current world type. Parameters: Returns: true Example:

-- Change to hardcore pvp
Game.setWorldType(WORLD_TYPE_PVP_ENFORCED)

Added in version: 1.0

Game.startRaid(raidName)

Description: Starts a raid if one with said name exist. Parameters: Returns: true if the raid started, nil otherwise. Example:

if Game.startRaid("test") then
    -- Raid was started.
end

Added in version: 1.0

Global

Available methods:

addEvent(callback, delay, ...)

Description: This function is used to run other functions at a later time. Parameters: Returns: The id associated with this event. Example:

-- Creates an event that prints "Hello World!" to the console.
addEvent(print, 1000, "Hello World!")

Added in version: 1.0

stopEvent(eventid)

Description: This function is used to stop functions that should run later. Parameters: Returns: true if an event was stopped, false otherwise. Example:

-- Creates an event that should print "Hello World!" but it's stopped before that can happen.
local event = addEvent(print, 1000, "Hello World!")
stopEvent(event)

Added in version: 1.0

os

Available methods:

os.mtime()

Description: Returns the Unix time (epoch) in milliseconds Parameters: None Returns: The Unix time (epoch) in milliseconds Example:

print(os.mtime() .. " milliseconds have passed since the Unix epoch")

Added in version: 1.0

table

Available methods:

table.create(arrayLength, keyLength)

Description: Creates a new table with specified length. Parameters: Returns: The created table. Example:

local t = table.create(5, 0)
for i = 1, #t do
    t[i] = i + 1
end

Added in version: 1.0

broadcastMessage(message, messageType)
convertIpToString(ip)
createItem(itemId, count[, position])
createContainer(itemId, size[, position])
createMonster(monsterName, position[, extended = false[, force = false]])
createNpc(npcName, position[, extended = false[, force = false]])
createTile(x, y, z[, isDynamic = false])
createTile(position[, isDynamic = false])
getExperienceStage(level)
getGameState()
getHouses()
getMonsterCount()
getNpcCount()
getPlayerCount()
getPlayers()
getReturnMessage(value)
getReverseDirection(direction)
getSkillType(weaponType)
getSpectators(position[, multifloor = false[, onlyPlayer = false[, minRangeX = 0[, maxRangeX = 0[, minRangeY = 0[, maxRangeY = 0]]]]]])
getStorageValue(key)
getTowns()
getWorldType()
loadMap(path)
setGameState(state)
setStorageValue(key, value)
setWorldType(type)
startRaid(raidName)
addEvent(callback, delay, ...)
stopEvent(eventid)
mtime()
create(arrayLength, keyLength)