Skip to content

Delivering items to the game ​

KaevCMS lets players send rewards from their Web Inventory to in-game characters. The CMS writes transfer requests to a dedicated table named kaev_reward_queue in the game database.

To enable this feature, the administrator must install the table once in the GameServer database.

Install the reward queue ​

  1. Download install.sql from the integrations/reward-queue folder in the KaevCMS repository.
  2. Open phpMyAdmin, select your GameServer database, then use Import to import the SQL file. The kaev_reward_queue table will be created.
  3. Verify the connection: in KaevCMS administration, open Reward queue, select the GameServer, and check that the queue is available and has the expected structure.
  4. Done! Players can now open Account → Web Inventory, select items and a character, and submit a transfer. KaevCMS will write the request into the game database table.

Multiple game servers

If your GameServers use separate databases, install the table in every GameServer database that should accept item transfers.

Who actually gives the items to the character?

KaevCMS only writes transfer requests to the game database queue. The GameServer administrator is responsible for delivering items to characters, using a plugin or a custom consumer.

The CMS Transferred status means the queue entry was written; it does not mean the item has appeared in-game.

If the queue does not work ​

  • Table missing — verify that you imported install.sql into the selected GameServer database, not the CMS or LoginServer database.
  • Invalid schema — compare the existing table with the current install.sql; back up any existing data before making changes.
  • Unavailable — verify the GameServer database connection and account permissions. The CMS needs read and write access to the queue.
  • Item not received in-game — inspect the GameServer consumer. Installing the table does not deliver items by itself.

kaev_reward_queue table fields ​

FieldPurpose
idUnique queue row ID.
request_uuidShared UUID of a single transfer operation.
line_numberItem's position within the transfer operation.
game_server_idGameServer ID in KaevCMS.
sourceTransfer source (usually web_inventory).
cms_user_idUser ID in KaevCMS.
account_nameGame account login.
character_idID of the target in-game character.
character_nameTarget character name.
item_idGame item ID.
amountQuantity of the item.
statusRow status: pending, processing, delivered, or failed.
attemptsNumber of delivery attempts by the consumer.
error_messageConsumer error message, if any.
created_atDate and time the row was created.
processing_started_atWhen the consumer started processing.
processed_atWhen processing finished or failed.

Important: KaevCMS creates each row with the pending status. The GameServer consumer, not the CMS, is responsible for subsequent statuses and processing fields.

For developers: queue contract, statuses and SQL examples.

Independent open-source project. Lineage II belongs to its respective owners.