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

TW Extension - ItemsAdder v1.7

Extension links Typewriter to ItemsAdder by adding new node entries for blocks and furniture.



🧱 ItemsAdder Integration


ItemsAdder blocks, furniture, entities, crops and HUDs, wired into your TypeWriter quests.


A TypeWriter extension by BTC Studio


You added custom blocks, furniture, crops and entities with ItemsAdder, but TypeWriter cannot see any of them: no quest asks players to mine your ore, no dialogue reacts to your furniture.


ItemsAdder Integration connects the two. Your ItemsAdder content becomes 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 ItemsAdder. It creates nothing: you keep building blocks, furniture and items in ItemsAdder, then use their ids in TypeWriter entries.


Everything uses the ItemsAdder namespaced id (namespace:id, for example my_pack:ruby_ore). A quest can ask players to break a custom ore or place a custom lamp, a dialogue can react to a player using your furniture, and criteria can check that the player holds your custom sword.



🧱 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.
  • Context for your entries: the triggered entries receive the block id, its position, the click used (on interact) and the item in hand.
  • Protection friendly: actions cancelled by another plugin, for example in a protected region, do not trigger events.

🪑 Furniture and entities



  • Break, place and interact: a sequence can start when a player breaks, places or uses a piece of furniture.
  • Pre-place event: fire a trigger just before furniture is spawned.
  • Custom entity death: fire a trigger when a player kills an ItemsAdder custom entity, to reward a boss kill or advance a hunting quest.

🎯 Counting objectives



  • Break or place, blocks or furniture: four objectives turn "mine 3 ruby ores" or "place 5 lamps" into a quest task. Leave the item empty to count any custom block.
  • Tracker line you control: each objective shows your own text with the progress, for example (1/3). 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 an ItemsAdder item: hand out a reward by namespaced id. Leftovers that do not fit are dropped at the player's feet, and you can switch that off.
  • Remove an ItemsAdder 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 an ItemsAdder item.

🔎 Facts and variables



  • Held item: check that the player holds an ItemsAdder item and how many they carry. Gate a door behind "holds the ruby key" without a permission plugin.
  • Uses and durability: read the uses left and the custom durability left on the held item, for example to warn a player that a tool is about to break.
  • Blocks and furniture in view: detect an ItemsAdder block or furniture the player looks at (5 blocks by default), or a block underfoot.
  • Crops: read the growth stage of the crop in view and whether it is ripe, for farming quests.
  • HUDs: check whether a named ItemsAdder HUD is visible to the player. ItemsAdder cannot list HUDs, so you name the one to check.
  • Variables for any text: insert the id or a property of the held item, the id of the block in view or underfoot, or the id of the furniture in view into dialogue, holograms or messages.
  • Font images: get the characters that render an ItemsAdder font image, to use custom icons in text.
  • Lists: get every id ItemsAdder has loaded. Handy to find the exact id to type.

🔊 Sounds


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



🧩 Entries


All 35 entries use ItemsAdder namespaced ids.


Events and triggers (11)


Custom blocks



  • on_customblock_break_event: a custom block is broken
  • on_customblock_place_event: a custom block is placed
  • on_customblock_interact_event: a custom block is interacted with

Furniture and entities



  • on_furniture_break_event: furniture is broken
  • on_furniture_place_event: furniture is placed
  • on_furniture_interact_event: furniture is interacted with
  • on_furniture_pre_place_event: just before furniture is placed
  • on_custom_entity_death_event: a custom entity is killed by the player

Items



  • itemsadder_on_item_pickup_event: the player picks up an ItemsAdder item
  • itemsadder_on_item_drop_event: the player drops an ItemsAdder item
  • itemsadder_on_item_consume_event: the player consumes an ItemsAdder item

Objectives and actions (6)


Objectives



  • break_customblock_objective: break custom blocks
  • place_customblock_objective: place custom blocks
  • break_furniture_objective: break furniture
  • place_furniture_objective: place furniture

Actions



  • itemsadder_give_item_action: give an ItemsAdder item to the player
  • itemsadder_remove_item_action: remove an ItemsAdder item from the player

Facts (10)


Items



  • itemsadder_holding_item_fact: is the player holding an ItemsAdder item?
  • itemsadder_item_count_fact: how many of an item the player carries
  • itemsadder_item_usages_fact: uses left on the held item
  • itemsadder_item_durability_fact: custom durability left on the held item

World



  • itemsadder_looking_at_block_fact: is the player looking at an ItemsAdder block?
  • itemsadder_standing_on_block_fact: is the player standing on an ItemsAdder block?
  • itemsadder_looking_at_furniture_fact: is the player looking at ItemsAdder furniture?
  • itemsadder_crop_age_fact: growth stage of the crop in view
  • itemsadder_crop_fully_grown_fact: is the crop in view ripe?

HUD



  • itemsadder_hud_visible_fact: is a named ItemsAdder HUD visible to the player?

Variables and sound (8)


Variables



  • itemsadder_item_in_hand_id_variable: ItemsAdder id of the held item
  • itemsadder_item_property_variable: a property of the held item
  • itemsadder_looking_at_block_id_variable: id of the block in view
  • itemsadder_standing_on_block_id_variable: id of the block underfoot
  • itemsadder_looking_at_furniture_id_variable: id of the furniture in view
  • itemsadder_font_image_variable: characters that render a font image
  • itemsadder_registry_ids_variable: list of the ids ItemsAdder has loaded

Sound



  • itemsadder_sound: use an ItemsAdder sound id wherever a sound is asked

🚀 Set up



  • Install ItemsAdder and let it generate its resource pack. Make sure the TypeWriter Quest and Basic extensions are present, drop the jar in plugins/Typewriter/extensions/ and restart.
  • In the web panel, create a quest and a progress fact, then on a manifest page add a Break Block objective.
  • Set quest, fact, item (for example my_pack:ruby_ore) and amount, and fill display with the tracker line. Optionally link onComplete to a sequence that uses Give Item.
  • Publish, start the quest and break the block. To react once instead of counting, use an On Custom Block Break event on a sequence page.

Not sure of an id? The Registry IDs variable lists everything ItemsAdder 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)
  • ItemsAdder (built against API 4.0.10)
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

itemsadder

paper

integration

link