{{indexmenu_n>30}} ====== Player Inventory ====== The QEng engine supports a virtual inventory system for teams or single players. This allows authors to design quests that involve finding and using virtual items (keys, tools, currency). ===== What is Inventory? ===== In the player interface, the inventory is displayed as a list of items with images, short descriptions, and action buttons. {{ :authors_main:inventory.png?800 |Example of inventory display on a level}} Each item has a unique string identifier (key) that can be added, removed, or activated (used). ===== How to Display the Inventory on a Level ===== - In the task text (in **"Source"** mode), insert an HTML container where the inventory list should be rendered:
Loading inventory...
- In the task script field (at the bottom of the level settings), add the JS call: showInventoryItems('inventory_container'); ===== Managing Items ===== ==== Adding an Item to the Inventory ==== Adding items is linked to solving level bonuses (or spanning bonuses). - Create a bonus on the level (e.g., "Find a hammer"). - In the **"Text after solution"** field of that bonus, in **"Source"** mode, write: Once the team solves this bonus, the item with key ''hammer123'' will appear in their inventory. ==== Item Images ==== For the item ''hammer123'' to render correctly, upload two image files to the CDN with strict filenames: * **''item_hammer123.jpg''** — the item thumbnail displayed in the inventory list. * **''item_hammer123_big.jpg''** — the detailed full-size image displayed when clicking the eye icon (detailed view). ==== Removing an Item from the Inventory (Usage or Loss) ==== To remove an item from a team (e.g. when giving it to a character or using it to unlock a door): - Create a bonus that is solved during the game. - In its **"Text after solution"** field, in **"Source"** mode, write: **Important:** If an item was added via a **spanning** (global) bonus, it cannot be removed by a regular level bonus. It must be removed via a spanning bonus with a higher sequence number. ==== The "Use" Button ==== When a player clicks the **"Use"** button next to an item in their inventory, the engine automatically attempts to submit a code matching the item's key. * For example, using the item ''hammer123'' will automatically submit the code ''hammer123'' to the engine's answer field. ===== Demonstration ===== A live example of a level with inventory configuration can be viewed in the [[https://qeng.org/game.php?gid=3493&tid=68367|Demo game for authors]].