entities {#lua_entities}

Introduction

See also: StendhalAPI#Entities for public methods that can be performed on Entity objects.

Methods


entities:create

entities:create(name) - Creates a new entity. - Parameters: - def: Entity definition table. - Returns: games.stendhal.server.entity.Entity New entity instance. - See also: @ref games.stendhal.server.core.scripting.lua.LuaEntityHelper#create

Options for def table:

General:

Key Type Description
type string "SpeakerNPC", "SilentNPC", "Sign", "ShopSign", or "Reader".
pos table Entity position relative to zone ({x, y}).
description string Information for "look" command.
class string
subclass string
resistance int
size table {w, h}
cursor string
visibility int
menu string

SpeakerNPC & SilentNPC types:

Key Type Description
dir Direction Entity's initial facing direction.
ignoresCollision boolean
path table
path.nodes table
path.loop boolean
path.retrace boolean
path.collisionAction CollisionAction
speed double
basehp int
hp int
outfit table
outfit.layers string
outfit.colors table
idea string
sounds table
teleports boolean

SpeakerNPC type:

Key Type Description
name string
idleDir Direction
chatTimeout long
perceptionRange int
currentState ConversationStates
greeting table
greeting.text string
greeting.action ChatAction
replies table
replies.quest string Reply to "quest"/"task".
replies.job string Reply to "job".
replies.help string Reply to "help".
replies.offer string Reply to "offer".
replies.bye string Reply to "bye"/"goodbye".
alternativeImage string Image that will be displayed on NPCs webpage.

Sign type:

Key Type Description
text string
visible boolean

ShopSign type:

Key Type Description
name string
title string
caption string
seller boolean

entities:getPlayer

entities:getPlayer(name) - Retrieves a logged in Player. - Parameters: - name: (string) Name of player. - Returns: - Logged in {@link games.stendhal.server.entity.player.Player} or nil. - Usage:

    local player = entities:getPlayer("foo")

entities:getNPC

entities:getNPC(name) - Retrieves an existing SpeakerNPC. - Parameters: - name: (String) Name of NPC. - Returns: - {@link games.stendhal.server.entity.npc.SpeakerNPC} instance or null.


entities:getItem

entities:getItem(name) - Retrieves a registered Item. - Parameters: - name: (String) Name of the item. - Returns: - {@link games.stendhal.server.entity.item.Item} instance or null if not a registered item.


entities:getStackableItem

entities:getStackableItem(name) - Retrieves a registered StackableItem. - Parameters: - name: (String) Name of the item. - Returns: - {@link games.stendhal.server.entity.item.StackableItem} instance or null if not a registered stackable item.


entities:createSpeakerNPC

entities:createSpeakerNPC(name) - DEPRECATED: Use entities:create. - Creates an interactive NPC. - name: (String) Name of new NPC. - Returns: - New {@link games.stendhal.server.core.scripting.lua.LuaEntityHelper#LuaSpeakerNPC} instance.


entities:createSilentNPC

entities:createSilentNPC() - DEPRECATED: Use entities:create. - Creates a non-interactive NPC. - Returns: - New {@link games.stendhal.server.core.scripting.lua.LuaEntityHelper#LuaSilentNPC} instance.


entities:setPath

entities:setPath(entity, table, loop) - DEPRECATED: path can now be set by directly calling the NPC's setPath method - Helper method for setting an NPC's path. - Parameters: - entity: (RPEntity) Then entity whose path is being set. - table: (LuaTable) Table with list of coordinates representing nodes. - loop: (boolean) If true, the entity's path should loop.


entities:setPathAndPosition

entities:setPathAndPosition(entity, table, loop) - DEPRECATED: path can now be set by directly by calling the NPC's setPath method - Helper function for setting an NPC's path & starting position. - Parameters: - entity: (RPEntity) The entity whose path is being set. - table: (LuaTable) Table with list of coordinates representing nodes. - loop: (boolean) If true, the entity's path should loop.


entities:createSign

entities:createSign(visible) - DEPRECATED: Use entities:create. - Creates a new {@link games.stendhal.server.entity.sign.Sign} entity. - Parameters: - visible: (boolean) (optional) If false, the sign will not have a visual representation (default: true). - Returns: - New {@link games.stendhal.server.entities.mapstuff.Sign} instance or {@link games.stendhal.server.entities.mapstuff.Reader} (visible=false).


entities:createShopSign

entities:createShopSign(name, title, caption, seller) - DEPRECATED: Use entities:create. - Creates a new {@link games.stendhal.server.entity.sign.ShopSign} entity. - Parameters: - name: (String) The shop name. - title: (String) The sign title. - caption: (String) The caption above the table. - seller: (boolean) true, if this sign is for items sold by an NPC (default: true). - Returns: - New {@link games.stendhal.server.entity.mapstuff.sign.ShopSign} instance.


entities:summonCreature

entities:summonCreature(table) - Summons a creature into the area. - Parameters: - table: Key-value table containing parameters for summoning creature. - keys: - name: (string) Name of creature to be summoned. - zone: (string) Name of zone where creature should be summoned. - x: (int) Horizontal position of summon location. - y: (int) Vertical position of summon location. - summoner: (string) (optional) Name of entity doing the summoning (used for logging game events). - raid: (bool) (optional) Whether or not the creature should be a {@link games.stendhal.server.entity.creature.RaidCreature} instance (default: true).

Members:

entities.manager

This is simply the {@link games.stendhal.server.core.rule.defaultruleset.DefaultEntityManager entity manager} instance.

LuaSpeakerNPC

  • Inherits: {@link games.stendhal.server.entity.npc.SpeakerNPC}

Public methods:


LuaSpeakerNPC:add

LuaSpeakerNPC:add(states, triggers, conditions, nextState, reply, actions) - Additional method to support passing Lua data types as parameters. - Parameters: - states: The conversation state(s) the entity should be in to trigger response. Can be ConversationStates enum value or LuaTable of ConversationStates. - triggers: String or LuaTable of strings to trigger response. - conditions: Conditions to check for this response. Can be [[StendhalAPI#ChatCondition|ChatCondition instance]], a LuaTable of ChatCondition instances, or a function. - nextState: (ConversationState) Conversation state to set entity to after response. - reply: (string) The NPC's response or null. - actions: Actions to execute. Can be ChatAction instance, a LuaTable of ChatAction instances, or a function.


LuaSpeakerNPC:setPath

entities:setPath(table, loop) - Set a path for this entity to follow. - Parameters: - table: (table) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}} - loop: (boolean) (optional) If true, entity should loop around to restart path when reaching the end.


LuaSpeakerNPC:setPathAndPosition

entities:setPathAndPosition(table, loop) - Set path & starting position for entity. The starting position is the first node in the path. - Parameters: - table: (table) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}} - loop: (boolean) (optional) If true, entity should loop around to restart path when reaching the end.

LuaSilentNPC

  • Inherits: {@link games.stendhal.server.entity.npc.SilentNPC}

Public methods:


LuaSilentNPC:setPath

entities:setPath(table, loop) - Set a path for this entity to follow. - Parameters: - table: (table) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}} - loop: (boolean) (optional) If true, entity should loop around to restart path when reaching the end.


LuaSilentNPC:setPathAndPosition

entities:setPathAndPosition(table, loop) - Set path & starting position for entity. The starting position is the first node in the path. - Parameters: - table: (table) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}} - loop: (boolean) (optional) If true, entity should loop around to restart path when reaching the end.