Voxel Shop beta is live. Expect occasional bugs. Learn more  
TW Extension - Nexo icon

TW Extension - Nexo v0.8

TW Extension - Nexo



🧱 Nexo Integration


Nexo custom blocks, furniture and items, wired into your TypeWriter quests.


A TypeWriter extension by BTC Studio


You built a ruby ore, an oak chair and a set of custom tools in Nexo, but TypeWriter cannot see any of them: no quest asks players to mine the ore, no dialogue reacts to the chair.


Nexo Integration connects the two. Your Nexo blocks, furniture and items become events, objectives, actions, facts and variables you use from the web panel.



✨ What it does


The extension reads and reacts to the content you already defined in Nexo. It creates nothing: you keep building blocks, furniture and items in Nexo, then use their ids in TypeWriter entries.


Everything is addressed by the Nexo item id, for example ruby_ore or oak_chair. A quest can ask players to break a custom ore or place your furniture, a sequence can start when a player hits a block, and criteria can check what a player holds or looks at.



🧱 Custom block events



  • Break, place and interact: start a sequence when a player breaks, places or right-clicks one of your blocks. Fill the block id, and optionally a position so only that exact block matches.
  • Damage: fire a trigger the moment a player starts mining a block, before it breaks. Useful for warnings, sounds or a mining mini-game.
  • Loot drop: react when a block drops its loot. The event passes how many stacks and how many items dropped.
  • Context for your entries: the triggered entries receive the block id and its position.

🪑 Furniture events



  • Break, place, interact and damage: a sequence can start when a player sits on a chair, opens a cabinet, places a lamp or hits a table.
  • BetterModel filter: limit an event to furniture whose bettermodel_id matches the one in your Nexo configuration. Leave it empty to ignore it.
  • Context for your entries: the triggered entries receive the furniture id, its position and its BetterModel id.

🎯 Counting objectives



  • Break or place, blocks or furniture: four objectives turn "mine 5 ruby ores" or "place 5 chairs" into a quest task.
  • Tracker line you control: each objective shows your own text with the progress, for example (1/5). The line is built from two TypeWriter snippets, so you can restyle or translate it.
  • Fair counting: each position counts once per player, so placing and breaking the same spot again does not add up. Cancelled actions are ignored, and only players with the linked quest active are counted.
  • Rewards: link onComplete to a sequence that pays the player.

🎒 Items in the inventory



  • Give a Nexo item: hand out a reward by id. Leftovers that do not fit are dropped at the player's feet, and you can switch that off.
  • Remove a Nexo item: take a key, a ticket or a quest item back.
  • Pickup, drop and consume events: react when a player picks up, drops or consumes a Nexo item.

🔎 Facts and variables



  • Held item: check that the player holds a Nexo item, how many they carry, and whether the held item uses a given Nexo mechanic. Gate a door behind "holds the ruby key" without a permission plugin.
  • What the player looks at or stands on: detect a Nexo block or piece of furniture in view (5 blocks by default), or a Nexo block underfoot.
  • Break time and light state: read the ticks needed to break the block in view, and whether the furniture in view is lit.
  • Variables for any text: insert the id of the held item, of the block in view or underfoot, of the furniture in view, or a property of the held item or the furniture, into dialogue, holograms or messages.
  • Lists: get every id Nexo has loaded, or every item carrying a given Nexo tag. Handy to find the exact id to type.

🔊 Sounds


Use a Nexo sound id wherever TypeWriter asks for a sound, so your custom sounds work in dialogues, cinematics and actions.



🧩 Entries


All 35 entries use plain Nexo item ids.


Events and triggers (12)


Custom blocks



  • nexo_on_customblock_break_event: a Nexo custom block is broken
  • nexo_on_customblock_place_event: a Nexo custom block is placed
  • nexo_on_customblock_interact_event: a Nexo custom block is interacted with
  • nexo_on_customblock_damage_event: a player starts breaking a Nexo custom block
  • nexo_on_customblock_drop_loot_event: a Nexo custom block drops loot

Furniture



  • nexo_on_furniture_break_event: Nexo furniture is broken
  • nexo_on_furniture_place_event: Nexo furniture is placed
  • nexo_on_furniture_interact_event: Nexo furniture is interacted with
  • nexo_on_furniture_damage_event: a player hits Nexo furniture

Items



  • nexo_on_item_pickup_event: the player picks up a Nexo item
  • nexo_on_item_drop_event: the player drops a Nexo item
  • nexo_on_item_consume_event: the player consumes a Nexo item

Objectives and actions (6)


Objectives



  • nexo_break_customblock_objective: break Nexo custom blocks
  • nexo_place_customblock_objective: place Nexo custom blocks
  • nexo_break_furniture_objective: break Nexo furniture
  • nexo_place_furniture_objective: place Nexo furniture

Actions



  • nexo_give_item_action: give a Nexo item to the player
  • nexo_remove_item_action: remove a Nexo item from the player

Facts (8)



  • nexo_holding_item_fact: is the player holding a Nexo item?
  • nexo_item_count_fact: how many of a Nexo item the player carries
  • nexo_item_has_mechanic_fact: does the held item use a given mechanic?
  • nexo_looking_at_block_fact: is the player looking at a Nexo custom block?
  • nexo_standing_on_block_fact: is the player standing on a Nexo custom block?
  • nexo_break_time_fact: ticks needed to break the block in view
  • nexo_looking_at_furniture_fact: is the player looking at Nexo furniture?
  • nexo_furniture_light_state_fact: is the furniture in view lit?

Variables and sound (9)


Variables



  • nexo_item_in_hand_id_variable: Nexo id of the held item
  • nexo_item_property_variable: a property of the held item
  • nexo_looking_at_block_id_variable: id of the block in view
  • nexo_standing_on_block_id_variable: id of the block underfoot
  • nexo_looking_at_furniture_id_variable: id of the furniture in view
  • nexo_furniture_property_variable: a property of the furniture in view
  • nexo_registry_ids_variable: list of the ids Nexo has loaded
  • nexo_tag_items_variable: the Nexo items carrying a given tag

Sound



  • nexo_sound: use a Nexo sound id wherever a sound is asked

🚀 Set up



  • Install Nexo, make sure the TypeWriter Quest and Basic extensions are present, drop the jar in plugins/Typewriter/extensions/ and restart.
  • On a sequence page, add a Nexo Block Interact event. Set blockId to your Nexo block id, action to RIGHT_CLICK, and link triggers to a dialogue.
  • For a counting task, create a quest and a progress fact, then add a Place Furniture objective. Set quest, fact, item (the furniture id) and amount, and fill display with the tracker line.
  • Publish and test with a player who has the quest active.

Not sure of an id? The Registry IDs variable lists everything Nexo has loaded. The full walkthrough is in the documentation.



📋 Requirements



  • TypeWriter 0.9.0-beta-177 or newer, with the Quest and Basic extensions
  • Paper server (1.21.11 API)
  • Nexo (built against 1.26.0)
Sign in
$7.00 USD
Sign in to purchase, save this product to your cart, and keep downloads tied to your account.
Stripe

typewriter

extension

nexo

paper

integration

link