---
# Contents
[TOC]
---
# Introduction
Object instance: `game`
---
## Description
The main object that handles setting zone & adding entities to game.
---
# Methods
---
## game:add
game:add (obj)
game:add (obj, expire)
game:add (npc)
game:add (creature, x, y)
- Adds an object or entity instance to the current zone.
- Parameters:
- obj: _([RPObject])_ Object to add.
- expire: _([bool][LuaBoolean])_ `true` if the item should expire
according to its normal behavior, `false` otherwise.
- npc: _([NPC])_ NPC to add.
- creature: _([Creature])_ Creature to add.
- x: _([int][LuaInteger])_ Horizontal position of where to add
creature.
- y: _([int][LuaInteger])_ Vertical position of where to add
creature.
- Returns: _([Creature]) `game:add(creature)` only_
---
## game:addGameEvent
game:addGameEvent (source, event, params)
- Raises a new [game event][GameEvent]. Same function as [game:raiseEvent](#gameraiseevent).
- Parameters:
- source: _([string][LuaString])_ Source of the event, usually a
character.
- event: _([string][LuaString])_ Name of event.
- params:
_([List][java.util.List]<[String][java.lang.String]>)_ Event parameters.
- See: [ScriptingSandbox.addGameEvent]
---
## game:createEvent
game:createEvent (source, event, param, ...)
game:createEvent (source, event, params)
- Creates a new game event.
- Parameters:
- source: _([`string`][LuaString])_ Source of the event, usually a
character.
- event: _([`string`][LuaString])_ Name of event.
- param: _([`string`][LuaString])_ Event parameter.
- params: _([`table`][LuaTable])_ List of event parameters.
- Returns: New [GameEvent] instance.
- See also:
- [game:raiseEvent](#gameraiseevent)
---
## game:getCreature
game:getCreature (clazz)
- Retrieves a registered creature.
- clazz: _([string][LuaString])_ Name of the creature.
- Returns: [Creature] or [nil][LuaNil] if not registered.
- See: [ScriptingSandbox.getCreature]
---
## game:getCreatures
game:getCreatures ()
- Retrieves all registered creatures.
- Returns: _([Creature[]][java.util.Arrays])_ An array of all available creatures.
- See: [ScriptingSandbox.getCreatures]
- TODO:
- __FIXME:__ should return Lua table
---
## game:getItem
game:getItem (name)
- Retrieves a registered item.
- Parameters:
- name: _([string][LuaString])_ Name of the item.
- Returns: _([Item])_
- Item or [nil][LuaNil] if not registered.
---
## game:getItems
game:getItems ()
- Retrieves all registered items.
- Returns: _([Item[]][java.util.Arrays])_
- An array of all available items.
---
## game:getMessage
game:getMessage ()
- Retrieves exception message set by script.
- Returns: _([string][LuaString])_
---
## game:getZone
game:getZone (name)
game:getZone (obj)
- Retrieves a registered zone.
- Parameters:
- name: _([string][LuaString])_ Retrieve zone by name.
- obj: _([RPObject])_ Retreive zone where ___obj___ is located.
- Returns: _([StendhalRPZone])_
- Zone or [nil][LuaNil] if not registered.
---
## game:modify
game:modify (entity)
- Notifies the [StendhalRPWorld] that this entity's attributes have changed.
- Parameters:
- entity: _([RPEntity])_ Entity being modified.
---
## game:playerIsInZone
game:playerIsInZone (player, zone)
- Checks if a player is in a specific zone.
- Parameters:
- player: _([Player])_ Player to check.
- zone: _([string][LuaString])_ Name of zone.
- Returns: _([bool][LuaBoolean])_
- `true` if player's zone matches ___zone___.
---
## game:privateText
game:privateText (player, text)
- Sends a private text to a player.
- Parameters:
- player: _([Player])_ Player to receive the message.
- text: _([string][LuaString])_ Message text to send to player.
---
## game:raiseEvent
game:raiseEvent (source, event, param, ...)
game:raiseEvent (source, event, params)
- Raises a new [game event][GameEvent].
- Parameters:
- source: _([`string`][LuaString])_ Source of the event, usually a
character.
- event: _([`string`][LuaString])_ Name of event.
- param: _([`string`][LuaString])_ Event parameter.
- params: _([`table`][LuaTable])_ List of event parameters.
- See also:
- [game:createEvent](#gamecreateevent)
---
## game:remove
game:remove (object)
game:remove (npc)
- Removes an object or entity from world.
- Parameters:
- object: _([RPObject])_ Object to remove.
- npc: _([NPC])_ NPC to remove.
---
## game:runAfter
game:runAfter (turns, func)
- Executes a function after a specified number of turns.
- Parameters:
- turns: _([int][LuaInteger])_ Number of turns to wait.
- func: _([function][LuaFunction])_ Function to be executed.
- TODO:
- __FIXME:__ how to invoke with parameters?
---
## game:setMusic
game:setMusic (filename)
game:setMusic (filename, args)
- Sets the background music for the current zone.
- Parameters:
- filename: _([string][LuaString])_ File basename excluding .ogg
extension.
- args: _([table][LuaTable])_ Table of key=value integer values.
- Keys:
- volume: Volume level (default: 100).
- x: The X coordinate of the sound source (default: 1).
- y: The Y coordinate of the sound source (default: 1).
- radius: The radius from which the music can be heard
(default: 10000).
---
## game:setZone
game:setZone (name)
game:setZone (zone)
- Selects the zone to be configured.
- Parameters:
- name: _([string][LuaString])_ String name identifier.
- zone: _([StendhalRPZone])_ Zone instance.
- Returns: _([bool][LuaBoolean])_
- `true` if zone was successfully set.
[Creature]: /reference/java/games/stendhal/server/entity/creature/Creature.html
[GameEvent]: /reference/java/games/stendhal/server/core/engine/GameEvent.html
[Item]: /reference/java/games/stendhal/server/entity/item/Item.html
[NPC]: /reference/java/games/stendhal/server/entity/npc/NPC.html
[Player]: /reference/java/games/stendhal/server/entity/player/Player.html
[RPEntity]: /reference/java/games/stendhal/server/entity/RPEntity.html
[RPObject]: /reference/java/marauroa/common/game/RPObject.html
[ScriptingSandbox.addGameEvent]: /reference/java/games/stendhal/server/core/scripting/ScriptingSandbox.html#addGameEvent(java.lang.String,java.lang.String,java.util.List)
[ScriptingSandbox.getCreature]: /reference/java/games/stendhal/server/core/scripting/ScriptingSandbox.html#getCreature(java.lang.String)
[ScriptingSandbox.getCreatures]: /reference/java/games/stendhal/server/core/scripting/ScriptingSandbox.html#getCreatures()
[StendhalRPWorld]: /reference/java/games/stendhal/server/core/engine/StendhalRPWorld.html
[StendhalRPZone]: /reference/java/games/stendhal/server/core/engine/StendhalRPZone.html
[java.lang.String]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html
[java.util.Arrays]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Arrays.html
[java.util.List]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html
[LuaBoolean]: http://luaj.org/luaj/3.0/api/org/luaj/vm2/LuaBoolean.html
[LuaFunction]: http://luaj.org/luaj/3.0/api/org/luaj/vm2/LuaFunction.html
[LuaInteger]: http://luaj.org/luaj/3.0/api/org/luaj/vm2/LuaInteger.html
[LuaNil]: http://luaj.org/luaj/3.0/api/org/luaj/vm2/LuaNil.html
[LuaString]: http://luaj.org/luaj/3.0/api/org/luaj/vm2/LuaString.html
[LuaTable]: http://luaj.org/luaj/3.0/api/org/luaj/vm2/LuaTable.html