Skip to main content

BetonQuest

BetonQuest Integration​

Lasers-Enigma provides native integration with BetonQuest, allowing you to create advanced quest systems that interact with puzzle areas.

Requirements​

  • BetonQuest plugin installed on your server
  • Lasers-Enigma v6.28.0+

Available Features​

Conditions​

NameSyntaxDescription
leplayerwonarea<x;y;z;world>Check if a player has won a specific area at given location

Events​

NameSyntaxDescription
leforceactivateareabyid<area_id>Force an area to stay loaded and activated by its ID
leforceactivateareabylocation<x;y;z;world>Force an area to stay loaded and activated by location
leunforceactivateareabyid<area_id>Remove forced activation from an area by its ID
leunforceactivateareabylocation<x;y;z;world>Remove forced activation from an area by location

Objectives​

NameSyntaxDescription
leplayerwinarea<area_id>Triggered when a player reaches the win conditions of an area
lecomponentactivated<x;y;z;world> [only_first]Triggered when a component is activated. Optional only_first (default: true) triggers only on first activation since area activation
lecomponentdeactivated<x;y;z;world> [only_first]Triggered when a component is deactivated. Optional only_first (default: true) triggers only on first deactivation since area activation

Complete Example​

Here is a complete quest package example using Lasers-Enigma integration. This example is based on BetonQuest's Quest Package documentation.

Create a file laser_puzzle.yml in your BetonQuest package folder:

## Quest Package: laser_puzzle
## A simple quest that requires players to solve a laser puzzle

conversations:
puzzle_master:
quester: "Puzzle Master"
first: "welcome"
NPC_options:
welcome:
text: "Welcome, adventurer! Are you ready to test your wits on my laser puzzle?"
pointer: "accept_quest,already_completed"
quest_started:
text: "The puzzle awaits you in the chamber ahead. Good luck!"
quest_completed:
text: "Impressive! You've mastered the puzzle. Here's your reward."
already_done:
text: "You've already completed this challenge. Well done!"
player_options:
accept_quest:
text: "I'm ready for the challenge!"
pointer: "quest_started"
conditions: "!has_puzzle_quest,!puzzle_completed"
events: "give_puzzle_quest,activate_area"
already_completed:
text: "I've already solved this puzzle."
pointer: "already_done"
conditions: "puzzle_completed"

events:
give_puzzle_quest: "objective add puzzle_objective"
activate_area: "leforceactivateareabyid 42"
deactivate_area: "leunforceactivateareabyid 42"
reward_player: "give diamond:5"
complete_quest: "tag add puzzle_completed"

conditions:
has_puzzle_quest: "objective puzzle_objective"
puzzle_completed: "tag puzzle_completed"
area_won: "leplayerwonarea 100;64;200;world"

objectives:
puzzle_objective: "leplayerwinarea 42 events:deactivate_area,reward_player,complete_quest"


Additional Resources​