This is an old revision of the document!


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).

In the player interface, the inventory is displayed as a list of items with images, short descriptions, and action buttons.

Example of inventory display on a level

Each item has a unique string identifier (key) that can be added, removed, or activated (used).

1. In the task text (in “Source” mode), insert an HTML container where the inventory list should be rendered:

<div id="inventory_container">Loading inventory...</div>

2. In the task script field (at the bottom of the level settings), add the JS call:

showInventoryItems('inventory_container');

===

Managing Items

Adding items is linked to solving level bonuses (or spanning bonuses). 1. Create a bonus on the level (e.g., “Find a hammer”). 2. In the “Text after solution” field of that bonus, in “Source” mode, write:

<script>
addInventoryItem('hammer123');
</script>

Once the team solves this bonus, the item with key hammer123 will appear in their inventory.

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).

To remove an item from a team (e.g. when giving it to a character or using it to unlock a door): 1. Create a bonus that is solved during the game. 2. In its “Text after solution” field, in “Source” mode, write:

<script>
removeInventoryItem('hammer123');
</script>

<note important> 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. </note>

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.

A live example of a level with inventory configuration can be viewed in the Demo game for authors.

  • en/authors_main/task_editor/advanced/inventory.1781562854.txt.gz
  • Last modified: 2026/06/15 22:34
  • by admin