Script:spawn item: Difference between revisions
(Created page with "{{ScriptCommandPage |description=create a new item entity |context=self |parameters= script path Script path (without file extension) of the entity to add, relative to <code>graph/obj3d/interactive/items</code> target entity Existing entity from which to copy the position and rotation for the new entity |intro=New entities will be assigned an '''unused''' instance number which means that it is not possible to create entities with instance scripts...") |
mNo edit summary |
||
Line 5: | Line 5: | ||
script path Script path (without file extension) of the entity to add, relative to <code>graph/obj3d/interactive/items</code> | script path Script path (without file extension) of the entity to add, relative to <code>graph/obj3d/interactive/items</code> | ||
target entity Existing entity from which to copy the position and rotation for the new entity | target entity Existing entity from which to copy the position and rotation for the new entity | ||
|intro= | |intro=The new entity will be placed in the world at the position of the given target entity with the same rotation. | ||
The created entity will be sent the {{Event|load}}, {{Event|init}} and {{Event|initend}} events (in that order). | The created entity will be sent the {{Event|load}}, {{Event|init}} and {{Event|initend}} events (in that order). | ||
Line 25: | Line 25: | ||
The ID of the created entity can be retrieved via the <code>^last_spawned</code> [[Script:Variables#System variables|system variable]]. It will be made up of the filename component of the script path (the entity class) followed by <code>_</code> and a previously unused four-digit instance number - meaning one that does not have an instance directory in the game resources under the script path and does not have an existing entity in the current area or save file. | The ID of the created entity can be retrieved via the <code>^last_spawned</code> [[Script:Variables#System variables|system variable]]. It will be made up of the filename component of the script path (the entity class) followed by <code>_</code> and a previously unused four-digit instance number - meaning one that does not have an instance directory in the game resources under the script path and does not have an existing entity in the current area or save file. | ||
This also means that it is not possible to create entities with instance scripts using this command (or any other script command). | |||
[[Category:Script commands creating entities]] | [[Category:Script commands creating entities]] |
Revision as of 21:35, 22 June 2022
The spawn item
script command is used to create a new item entity. The new entity will be placed in the world at the position of the given target entity with the same rotation.
The created entity will be sent the load
, init
and initend
events (in that order).
This command only creates item entities. To create NPCs use spawn npc
.
To add the spawned item directly to an inventory or equip it use inventory add
, inventory addmulti
, inventory playeradd
, inventory playeraddmulti
or setweapon
.
To replace an existing entity use replaceme
instead.
reload
event.Usage
spawn item <script> <target>
Context: For self
Parameters:
Parameter | Type | Description |
---|---|---|
script |
path |
Script path (without file extension) of the entity to add, relative to graph/obj3d/interactive/items |
target |
entity |
Existing entity from which to copy the position and rotation for the new entity |
Script path
The entity class script is loaded from graph/obj3d/interactive/items/<script>.asl
.
If the filename component of the script path starts with gold_coin
gold coin then the item will be treated as a gold coin which means that it will be added to the player's purse when the player interacts with it or when it would be added to the player inventory. Gold coins also somewhat act like stacks but use the price in place of the count and have the icon automatically selected based on the price.
If the script path contains the string movable
then the item cannot be added to inventories and is dropped in front of the player instead whenever it would be.
The initial mesh of the item will be graph/obj3d/interactive/items/<script>.teo
with the cooked mesh loaded from game/graph/obj3d/interactive/items/<script>.ftl
. Either the raw mesh, cooked mesh or entity class script file must exist or the item will not be created.
The initial icon of the item will be graph/obj3d/interactive/items<script>[icon]
if it exists or graph/interface/misc/default[icon]
otherwise. The icon size determines how many slots the item takes up in inventories except for movable items (which have no icon) and gold coins (where the icon depends on the price).
ℹ️ In version before Arx Libertatis 1.3 the icon file at the default path must also exist or the item will not be created, even for gold coins, movable items or items that change the icon in the load
event.
Entity ID
The ID of the created entity can be retrieved via the ^last_spawned
system variable. It will be made up of the filename component of the script path (the entity class) followed by _
and a previously unused four-digit instance number - meaning one that does not have an instance directory in the game resources under the script path and does not have an existing entity in the current area or save file.
This also means that it is not possible to create entities with instance scripts using this command (or any other script command).