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​
| Name | Syntax | Description |
|---|---|---|
leplayerwonarea | <x;y;z;world> | Check if a player has won a specific area at given location |
Events​
| Name | Syntax | Description |
|---|---|---|
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​
| Name | Syntax | Description |
|---|---|---|
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"