======Item Pickups======
This tutorial will explain how to set up map [[object|objects]] as [[item|items]] for the [[player_character|player]] to pick up, for example a key that the [[player_character|player]] can pick up by walking into/over it and then use to open a door or treasure chest.
**Note:** This tutorial assumes that you already understand the basics of using the RPG in a Box editors, in particular the [[Map Editor]] and [[Voxel Editor]].
=====Creating the Object Model=====
Open the [[New Resource Dialog]] and create a new [[object]]. Once the [[Voxel Editor]] opens for the new [[object]] model, use the [[voxel]] tools to build a key as shown below (or whatever will best visually represent the [[item]]).
{{:wiki:item_pickup_tut_model.png?nolink|}}
After the model is complete, be sure to enable the "Passable" property on the [[Model Properties]] panel. This will prevent the [[Map Editor]] from automatically removing [[navigation_and_interaction|navigation paths]] to its [[tile]] when placed into a [[map]]. Save the model if you haven't already.
{{:wiki:item_pickup_tut_passable_prop.png?nolink|}}
Before proceeding to the next section, you can optionally create a "floating" [[animation]] for the [[object]] by following the [[floating_anim_tutorial|Creating a Simple Floating Animation]] tutorial. This will give a nice effect to the [[object]] in-game and also provide a cue to the [[player_character|player]] that it's an [[item]] pickup.
=====Defining the Item=====
In addition to the [[object]] model, you'll also need to define the corresponding [[item]] that the [[player_character|player]] will receive in their [[inventory]]. Go to the [[Item Editor]] tab and add a new [[item]], then enter a name, description, and image to use.
{{:wiki:item_pickup_tut_define_item.gif?nolink|}}
Remember the name you used for your item (including case) as it will be referenced in a [[quick script]] later on. Click the "Save" button ({{:wiki:disk.png?nolink|}}) to save the changes you've made to the [[item]] database.
=====Creating a Sound Effect=====
Optionally, you can create a [[sound|sound effect]] for the game to play when the [[item]] is picked up by the [[player_character|player]]. To do so, click the [[Sound FX Generator]] button at the top, then click one of the presets along the left to find a [[sound]] that goes well with the [[item]]. In this example, the "Pickup/Coin" preset should work well.
{{:wiki:item_pickup_tut_sfx.gif?nolink|}}
Once you are happy with the [[sound]], click the "Save Sound" button ({{:wiki:disk.png?nolink|}}) and enter a name. Remember this name (including case) as it will also be referenced in our [[quick script]] later on.
=====Setting Up the Object in a Map=====
Open the [[map]] where you'd like to have the [[item]] pickup. Select the [[object]] model you created earlier from the resource container on the right, then place the [[object]] onto an open [[tile]] in the [[map]].
{{:wiki:item_pickup_tut_place_object.gif?nolink|}}
Switch into "Edit" mode, then either double-click the [[object]] (or right-click on it and select "Properties") to open the [[Entity Properties]] dialog. Enter a unique ID into the "Entity ID" box. I'm using "key_01" for this example since my map will contain multiple keys ("key_02", "key_03", etc.). This ID will also be referenced in our [[quick script]] in the next step. Click OK to close the dialog.
{{:wiki:item_pickup_tut_assign_id.gif?nolink|}}
Double-click the [[tile]] underneath the [[object]] (or right-click on it and select "Properties") to open the [[Entity Properties]] dialog for the [[tile]]. From the "Script" dropdown, select "Quick Script" then click the "Edit" button ({{:wiki:pencil.png?nolink|}}) to edit the [[script]].
Copy and paste the [[script]] source code below into the dialog as shown. You may need to make a few adjustments according to the names you chose earlier on, in particular the entity ID for the [[object]] ("key_01"), the [[sound]] name ("give_key"), and the [[item]] name ("Gold Key"). These are all case-sensitive.
set_entity_script(self, "");
remove_entity(entity["key_01"]);
play_sound("give_key");
give_item("Gold Key")
{{:wiki:item_pickup_tut_assign_script.gif?nolink|}}
To better understand what the [[script]] is doing, I've included explanations for each line.
set_entity_script(self, "");
This line removes the [[script]] from the [[entity]] that activated it ("self"), in this case the [[tile]] that the [[player_character|player]] stepped onto. This is to prevent the [[script]] from being activated more than once after it's triggered the first time. The pair of double quotes (i.e. an empty [[string]]) indicates that the [[script]] should be removed/set to nothing.
remove_entity(entity["key_01"]);
This line removes the physical key [[object]] from the scene by referring to the unique [[entity]] ID we assigned to the key earlier on in the [[Map Editor]]. The ID inside the quotes should exactly match the ID that was assigned to the [[object]] from its [[Entity Properties]] dialog.
play_sound("give_key");
This line plays the [[sound|sound effect]] named "give_key". The name inside the quotes should exactly match the name given to the [[sound]] when it was saved from the [[Sound FX Generator]]. To prevent any errors, this line should be deleted from the [[script]] if you skipped the optional step of creating a [[sound|sound effect]].
give_item("Gold Key")
This line puts the [[item]] named "Gold Key" into the [[player_character|player's]] [[inventory]]. The name inside the quotes should exactly match the name defined in the [[Item Editor]]. Note that this line doesn't have a semicolon at the end since semicolons are used as line separators in the RPG in a Box scripting language and this is the last line of code.
Click the "Validate" button and then OK once the [[script]] has been validated, then save the [[map]].
=====Testing the Pickup In-Game=====
[[exporting_your_game|Export the game]] to try out your new [[item]] pickup. The [[player_character|player]] should now receive a Gold Key in their [[inventory]] when walking onto the [[tile]] that contains the key [[object]]!
{{:wiki:item_pickup_tut_ingame.gif?nolink|}}