Asset pack (scaffold) — MMORPG
Server-only plugins cannot inject a button into the native inventory screen and cannot render
a custom-designed page without a client-side asset (.ui). This folder is the scaffold to add one.
What already works without this asset pack
/mmorpg menuopens a realCustomUIPage(PlayerInfoPage) built with inline UI markup, so it renders without any bundled asset./mmorpg infoprints the same data in chat (reliable fallback).- The
mmorpg_player_infointeraction is registered (OpenCustomUIInteraction) so the page can be opened from an item/block interaction once you wire one.
Class ability keys (Ability 1/2/3)
Weapon ability slots are overridden in src/main/resources/Server/Item/Items/ (bundled with the
plugin JAR, not this scaffold folder). Each patch sets:
"Ability1": {
"Interactions": [{ "Type": "mmorpg_cast_ability", "Slot": 1 }]
}
The Java interaction mmorpg_cast_ability is registered in MmorpgPlugin. Even without a patch
for a given weapon, the packet filter still routes Ability 1/2/3 to class abilities when the
player has a class.
To patch another weapon, add Server/Item/Items/<ItemId>.json with only "Id" and "Interactions".
Shipped examples: longsword, battleaxe, staff, daggers, shortbow, crossbow (mithril/cobalt variants).
Enabling the designed .ui template
-
Package this
assetpack/content according to your Hytale/ScaffoldIt asset-pack layout and set"IncludesAssetPack": trueinsrc/main/resources/manifest.json. -
Edit
com.disklexar.mmorpg.ui.PlayerInfoPage#buildto append the template and fill fields:ui.append("Pages/MmorpgPlayerInfo.ui"); ui.set("#Title.Text", "Profil MMORPG"); for (PlayerInfoView.Entry e : PlayerInfoView.entries(profile)) { ui.append("#Content", "Label { Text: \"" + e.label() + " : " + e.value() + "\"; }"); } events.addEventBinding(CustomUIEventBindingType.Click, "#CloseButton"); -
Validate the
.uigrammar in-game and adjustMmorpgPlayerInfo.ui.
Inventory button
A literal button inside the native inventory UI requires a client UI mod/asset overriding the
inventory screen, which is out of scope for a server-only plugin. The supported equivalents are the
/mmorpg menu command and the mmorpg_player_info interaction above.