Skip to main content

MMOItems

Give, count and track MMOItems items in quests, with paginated dynamic item tooltips.

Paidv2.4RPG & progression

Overview​

MMOItems connects the MMOItems plugin to TypeWriter. You pick an item by its MMOItems type (for example SWORD) and id, and TypeWriter can give it, take it, count it, or react when a player crafts, uses, equips or socks a gem into it.

The extension also ships an Advanced Tooltip System. It rewrites the lore of MMOItems items on the fly, as packets sent to the player, so one item can show several pages, a live "requirements met" mark and a stat comparison against another item. The stored item is never changed.

Everything is configured in the web panel: item types and ids are suggested from your MMOItems configuration.

Features​

  • Give and remove items — hand out or take MMOItems items, for one player or a whole group, from a list or from a fact.
  • Item counting — a fact counts matching items in the inventory (armor, off hand and cursor included) and/or the main hand.
  • Use event and objective — react to right-clicking or consuming an MMOItems item.
  • Craft event and objective — react to items made in an MMOItems crafting station, with an optional station filter.
  • Gem stone event and objective — react to a gem stone applied to an item, filtered by target item and gem.
  • Equip objective — count MMOItems pieces put on in an armor slot.
  • Ability cast objective — count casts of an MMOItems ability.
  • Item possession objective — complete when the player holds enough of selected items, with completion modifiers.
  • Item variable — use an MMOItems item anywhere an item is expected.
  • Advanced tooltips — multi-page lore, requirement marks, stat comparison and category icons.

Installation​

  1. Install MMOItems and its library MythicLib. Install MMOCore too if you want the requirement marks of the tooltip system to check class, level and professions.
  2. Install the official TypeWriter Quest extension (the objectives need it).
  3. Obtain the extension from the stores (see the buttons in the summary panel above) and put the JAR in plugins/Typewriter/extensions/.
  4. Restart the server. TypeWriter 0.9 relies on PacketEvents, which the tooltip system uses to rewrite item lore.

Getting started​

Reward players with a sword when they craft a potion at an alchemy station:

  1. In the TypeWriter web panel, open a sequence page and add a Give MMOItem action.
  2. Leave items empty. Set item with a type (for example SWORD) and an id (for example STEEL_BLADE), and amount to 1.
  3. Open a static page and add a Craft Objective. Fill quest, display, amount, and a persistent fact in fact to store the progress.
  4. In items, add the crafted MMOItems item (empty means any item) and, if needed, stationIds with the MMOItems station id.
  5. Set onComplete to the Give MMOItem action and publish.

To only react once without tracking progress, use the Craft Event instead and link the Give action in its triggers.

Creative mode

Events and tooltips ignore players in Creative mode. Test with a Survival or Adventure player.

How it works​

Item matching compares the MMOItems type and id, ignoring case. An empty type and id matches any MMOItems item. Items that are not MMOItems items never match.

Objectives based on the fact field (craft, use, equip, gem stone, ability cast, open crafting table) write their progress into a persistent (cachable) fact, and trigger onComplete once when amount is reached.

Advanced tooltips​

Add an Advanced Tooltip System entry on a manifest page and publish. It applies to every MMOItems item in the inventory, hotbar and containers, for players in Survival and Adventure.

Survival and Adventure only

Pagination and the advanced lore apply only in Survival and Adventure. In Creative, the original MMOItems lore is shown as it is, tags included, because the creative client sends items back as it displays them and rewriting the lore would alter the real item.

With the system disabled, overrideDefaultLore off or no entry published, the tags are removed and the whole lore is shown on one page.

Edit the lore of your MMOItems items (in the MMOItems item editor or its configuration) and add these tags:

TagEffect
<page_break>Starts a new page. Empty pages are dropped.
<category_image>Replaced by the icon set in categoryImages for the item type.
<pagination_indicator>Replaced by paginationIndicator.
<comparison_indicator>Replaced by comparisonIndicator.
<requirement_met> and <requirement_not_met>Only one of the two shows, using requirementMetSymbol or requirementNotMetSymbol.
<comparison_value> and <comparison_sign>The stat difference against the comparison base item, and a + when positive.

Pages and comparison are driven by keys, set with paginationKeybind (default SWAP_OFFHAND, the F key) and comparisonKeybind (default SNEAK). Accepted values are SWAP_OFFHAND, DROP, SNEAK, SHIFT_LEFT, SHIFT_RIGHT, LEFT_CLICK, RIGHT_CLICK and MIDDLE_CLICK.

  • Pressing the pagination key on an MMOItems item always cancels the vanilla action (swap, drop, click) to avoid accidents, even for single-page items. Pages wrap back to page 1, with a short cooldown between presses.
  • Pressing the comparison key on an item sets it as the comparison base. Pressing it again on the same item clears it. Only items of the same MMOItems type are compared, and the base is cleared when the inventory closes.
  • Requirements are checked against MMOCore data: level, class, profession level and permission. If any requirement fails, every <requirement_not_met> shows.

Objective display format​

The line of an objective in the quest tracker is not hardcoded. It is read from TypeWriter snippets, edited in plugins/Typewriter/snippets.yml. Placeholders: <display> (the display field of the objective), <current> and <required>; PlaceholderAPI placeholders are also parsed.

SnippetUsed byDefault
advancedQuest.displayCraft, Use, Equip, Gem Stone, Ability Cast and Open Crafting Table objectives, while in progress<display> (<current>/<required>), in grey tones
advancedQuest.completedSame objectives, once amount is reached✔, then the struck-through <display> and the progress
mmoitems.countObjective.displayMmoitems Count Objective, while in progress<display> (<current>/<required>), in grey tones
mmoitems.countObjective.completedSame objective, once amount is reachedGreen struck-through <display>, then the progress

The two advancedQuest.* keys are shared with the other BTC objective extensions: one edit restyles all of them.

Entries​

16 entries, generated from the extension source.

Actions3
Events3
Objectives7
Facts1
Variables1
Manifests1

Troubleshooting​

The item type or id list is empty in the panel. The lists come from the MMOItems configuration of the running server. Make sure MMOItems is loaded and has at least one template of that type, then reopen the page in the panel.

Give MMOItem does nothing. The action runs mmoitems give <type> <id> <player> <amount> from the console. An unknown type skips the item silently, so check the type spelling. If fact is set, only items provided by that fact (and matching item / items when they are filled) are given, with the action's amount.

Remove MMOItem takes nothing. By default only the inventory is scanned (checkInventory is on, checkHand is off). The inventory scan includes armor, off hand and cursor. Turn on checkHand to take from the main hand first.

A craft objective never advances. Only instant recipes and the crafting queue are counted by default. detectUpgradeRecipe exists but upgrade results are never counted by the current code. Also check the station id (stationIds, merged with the legacy stationId) and that a persistent fact is linked in fact.

Events and objectives do not fire in Creative. The use, craft and gem stone events return early for Creative players, and the tooltip system is disabled for them. Test in Survival.

Tooltip tags show up as text, or pages do not change. Check first that the player is not in Creative, where the lore is left as it is. Pages only change when an Advanced Tooltip System entry is published with isEnabled and overrideDefaultLore on; otherwise the tags are removed and the lore stays on one page. If the default F key conflicts with another plugin, choose another key in paginationKeybind.

Requirement marks always show as met. The check reads MMOCore player data. Without MMOCore (or for a player without a profile) the check falls back to "met".

  • MMOCore — classes, professions and skills of the same Phoenix Development RPG suite.
  • MMO Inventory — MMOInventory integration, usable as an item-providing fact for the Give and Remove actions.