Skip to main content

Guard a BetonQuest reward against repeat conversation clicks

Applies to: BetonQuest; match the linked maintainer documentation to your installed platform and release.
Documentation checked .

A reward conversation can be reopened, so its state checks need to prevent an unintended second grant. Test repeated entry before attaching valuable currency or equipment.

Check the installed content

BetonQuest expresses a quest through objectives, conditions, events and conversation links. Keep the package and player state together during testing. The linked reference describes the 2.2 documentation branch; select the corresponding documentation if your server runs another major version.

Work through the change

  1. Record the reward event and all conversation or objective paths that can call it. Save the package and identify the intended completion tag or other persistent eligibility state.
  2. Check the installed-branch event and condition references for the supported state operations. Build a staging reward with a harmless observable action and a clear eligible-versus-completed condition.
  3. Trigger the legitimate completion path once, then reopen the conversation and repeat the same click. Test relogging and an orderly restart so the check covers persisted state.
  4. Test a second account that has not completed the quest. Confirm the anti-repeat guard does not block first-time completion or accidentally use a global state shared by every player.

Verify the result

The eligible account should receive one grant, repeat entry should be denied or take a non-reward branch, and the untouched account should remain independently eligible.

If the result differs

If repeat clicks grant again, inspect whether the completion state is set and checked on every calling path. This logical guard is not a guarantee of transactional delivery across a server crash; assess valuable external rewards separately.

Keep a recovery path

Restore the harmless event if repeat protection fails and keep the live reward unavailable. Preserve the test evidence and account states; do not repeatedly grant real rewards while debugging a completion guard.

References and related help

Check the maintainer reference: BetonQuest documentation, BetonQuest documentation.

Before changing live data, read how to keep a completed recovery copy. For startup errors, use the log collection guide.