Voxel Shop beta is live. Expect occasional bugs. Learn more
TW Extension - CraftEngine
Custom blocks, furniture and items as quest material, with a private version of the world for each player.
A TypeWriter extension by BTC Studio
Your CraftEngine blocks and furniture look great, but quests cannot react to them, and a puzzle room that one player solves is solved for everyone.
CraftEngine Integration turns custom blocks, furniture and items into quest events, objectives and actions, and adds quest zones where each player (or each group) sees and changes their own copy of an area.
The extension connects CraftEngine to TypeWriter. Quests react when a player breaks, places or clicks custom blocks and furniture, count them as objectives, read what the player holds or looks at, and place, replace or remove them.
The second half is the quest zone. What a player breaks, places or changes inside a zone is recorded for that player only, sent as packets, and given back when they return.
The real world is never written to: leaving a zone costs nothing, and nothing is left half done if the server stops in the middle of a quest. A group can share a zone, so a party clears a room together.
on_craftengine_block_place_event: custom block placedon_craftengine_block_break_event: custom block brokenon_craftengine_block_interact_event: custom block clickedon_craftengine_block_attempt_place_event: block placement attemptedon_craftengine_dispense_projectile_event: projectile dispensed from a blockon_craftengine_furniture_place_event: furniture placedon_craftengine_furniture_break_event: furniture brokenon_craftengine_furniture_interact_event: furniture clickedon_craftengine_furniture_attempt_place_event: furniture placement attemptedon_craftengine_furniture_hit_event: furniture hitcraftengine_on_item_pickup_event: CraftEngine item picked upcraftengine_on_item_drop_event: CraftEngine item droppedcraftengine_on_item_consume_event: CraftEngine item consumedbreak_craftengine_block_objective: break custom blocksplace_craftengine_block_objective: place custom blocksreplace_craftengine_block_objective: replace custom blocksbreak_craftengine_furniture_objective: break furnitureplace_craftengine_furniture_objective: place furnitureplace_craftengine_block: place a blockremove_craftengine_block: remove a blockreplace_craftengine_block: replace a block or furnitureplace_craftengine_furniture: place furnitureremove_craftengine_furniture: remove furniturecraftengine_give_item_action: give a CraftEngine itemcraftengine_remove_item_action: remove a CraftEngine itemcraftengine_set_quest_block: change what one player sees at a spot in a quest zonecraftengine_set_quest_furniture: hide or show a piece of furniture for one playercraftengine_clear_quest_state: drop a player's state for a quest zonecraftengine_holding_item_fact: is the player holding a given item?craftengine_item_count_fact: number of a given item in the inventorycraftengine_item_cooldown_fact: cooldown of a given itemcraftengine_cooldown_active_fact: is a named cooldown active?craftengine_cooldown_remaining_fact: time left on a named cooldowncraftengine_looking_at_block_fact: is the player looking at a given block?craftengine_looking_at_furniture_fact: is the player looking at a given furniture?craftengine_standing_on_block_fact: is the player standing on a given block?craftengine_item_in_hand_id_variable: id of the held itemcraftengine_item_property_variable: property of an itemcraftengine_looking_at_block_id_variable: id of the block looked atcraftengine_looking_at_furniture_id_variable: id of the furniture looked atcraftengine_standing_on_block_id_variable: id of the block underfootcraftengine_registry_ids_variable: list the ids known to CraftEnginecraftengine_quest_zone_audience: per-player or per-group quest zone (optional inventory swap)craftengine_fake_block_audience: show blocks and furniture to an audience alonecraftengine_holding_item_audience: players holding an itemcraftengine_sitting_on_furniture_audience: players sitting on furniturecraftengine_furniture_proximity_audience: players near furniturecraftengine_quest_state_artifact: stores the per-player quest zone statecraftengine_sound: CraftEngine sound idThe text of the objective lines is editable with TypeWriter snippets (craftengine.objective.display and craftengine.objective.completed).
plugins/Typewriter/extensions/ (CraftEngine and the TypeWriter Quest extension must be installed) and restart.