Pixel Dream StudiosWiki
Mods

Verox' RPG Runestones

Runestones for fast traveling to known locations.

Runestones are waystones for the Verox' RPG series: a floating crystal, circled by eight rune tablets and a spinning stone frame. Players awaken them, travel between them through a radial menu and take friends, pets and familiars along inside a teleport bubble.

Required: GeckoLib, Curios API

Optional: Jade

Getting started

  1. Craft Rune Dust from amethyst shards
  2. Craft a Runestone and place it - it needs two blocks of space
  3. Give it a name, or keep the suggested one
  4. Place a second runestone somewhere else, walk back and right-click the first one - the second appears in the ring

The player who places a runestone knows it right away. Everyone else sees it asleep until they touch it.

Items

ItemRecipeUse
Rune Dust1 Amethyst Shard → 3Pays for teleports
RunestoneStone Bricks, Amethyst Shard, Rune DustA waystone, two blocks tall
Rune TabletRune Dust around Smooth StoneTeleports you from anywhere
Soul AnchorChain, Eye of Ender, Rune DustCharm - lets friends travel to you

Runestones

States

Every player sees each runestone in their own state:

StateWhenWhat you see
DormantYou haven't touched it yetTablets and frame lie scattered on the ground, the crystal rests tilted and low
AwakeningYour first right-clickThe pieces rise one after another, the crystal lifts, the ring starts turning
IdleYou know itThe crystal floats and turns, the tablets bob in a wave, ring and frame turn against each other
ActiveYou know it and stand within 6 blocksSame as idle, but faster

Two players standing next to each other can see the same runestone asleep and awake. Global runestones are awake for everyone.

While dormant, only the pile on the ground can be clicked. Once awake, the whole stone can be targeted. The stone itself only has a low base you can step onto - you never bump into floating pieces.

Using runestones

  • Discovering: right-click a runestone to add it to your destinations. The owner knows their own stones automatically
  • Names: new stones get a random name from a list of 200 fantasy names, never one that's already taken. Names are limited to 20 characters
  • Editing: click the name plate in the ring to rename the stone or change its mode - only the owner, operators and creative players can
  • Breaking: drops the runestone again. The stone disappears from everyone's ring

The radial menu

ElementAction
StonesEach stone is a destination with its initials. Hover for name, distance and cost, click to travel
Name plateShows the current runestone. Click to edit it
Center displayName, distance or dimension, and cost of the hovered stone
Arrows / mouse wheelTurn the page - 8 destinations per page
Friends buttonOpens the friends menu
Shift + dragSwaps two stones, or moves a stone to the end when dropped on an empty slot

Long names scroll while hovered. Soul Anchors of your friends always come first and show their name in gold.

The teleport bubble

Travelling from a runestone builds a sphere of rune light with a radius of 4 blocks around the stone for 2.5 seconds. The tablets and frame fly out to the edge of the bubble and trace it while it forms, then snap back into the ring right before the jump. At the destination runestone they fly in from the edge. Everyone travelling along glows during the charge, and every player nearby sees the animation.

Travels along: friends, pets, familiars, villagers, animals and horses within 4 blocks of the runestone Stays behind: enemies, bosses, armor stands, players who aren't your friends and spectators

Companions arrive in the same arrangement around you. Leaving the bubble, dying or logging out cancels the teleport - nothing is paid until the jump.

Rune Tablet

Opens the ring from anywhere and teleports you instantly - without bubble and without companions. It reaches runestones and Soul Anchors, costs more (rune_tablet.base_cost) and goes on cooldown after each jump. The cooldown is shown on the item and survives a relog. Creative players travel for free, but the cooldown still applies.

Friends

Open the friends menu from the ring. Type a player name and press Send to send a request - it works for offline players who have joined the server before. Requests appear under Requests, with a counter on the button. If two players request each other, they become friends right away. Friendships are mutual and saved with the world.

Soul Anchor

Wear the Soul Anchor in a charm slot. While you're online, every friend sees you as a destination in their ring and can travel to your current position - from a runestone with their bubble, or instantly with a tablet.

Global runestones

A global runestone appears in every player's ring without being discovered - ideal for spawn hubs and server towns. Switch the mode in the edit screen (Mode: Discovery / Mode: Global) or with /runestones setglobal.

Creative players and operators can always set the mode. With players_can_set_global = true, every owner can do it for their own stones.

Global runestones are shown in purple - their initials in the ring, their name in the display, in Jade and in /runestones list.

When a stone is switched back to discovery, it disappears for everyone who only had it because it was global.

Costs

Base costExtra
Runestonecost.base+1 per cost.blocks_per_extra blocks, + cost.cross_dimension_extra for other dimensions
Rune Tabletrune_tablet.base_costsame extras

Costs are paid in Rune Dust by default. With cost.mode set to XP they're paid in experience levels, with NONE travel is free. Creative players always travel for free.

Protection

With protect_runestones = true:

  • Only the owner, operators and creative players can break a runestone
  • Global runestones can only be broken by operators and creative players - or by their owner when players_can_set_global is true
  • Explosions can't destroy runestones
  • Pistons can never move them

Commands

All commands require operator permission level 2.

CommandEffect
/runestones listLists every runestone with position and a clickable teleport link
/runestones teleport <id>Teleports you to a runestone
/runestones remove <id>Removes a runestone and its block
/runestones setglobal <id> <true/false>Switches a runestone between global and discovery
/runestones rename <id> <name>Renames a runestone

IDs are suggested while typing, and /runestones list shows them when hovering over the teleport link.

Config

Server config: serverconfig/verox_rpg_runestones-server.toml in the world folder.

OptionDefaultEffect
cost.modeDUSTDUST, XP or NONE
cost.base1Base cost of a runestone teleport
cost.blocks_per_extra5000Every this many blocks add 1 to the cost, 0 disables it
cost.cross_dimension_extra2Extra cost for another dimension
teleport.allow_cross_dimensiontrueAllows travel between dimensions
teleport.players_can_set_globalfalseLets every owner make their stones global
teleport.protect_runestonestrueEnables the break and explosion protection
rune_tablet.cooldown_seconds300Tablet cooldown after a teleport
rune_tablet.base_cost3Base cost of a tablet teleport
bubble.charge_ticks50Charge time of the bubble, 0 = instant
bubble.takes_friendstrueFriends travel along
bubble.takes_creaturestrueNon-hostile creatures travel along

Datapacks

Runestone names

New runestones pick their name from data/<namespace>/runestone_names/<file>.json:

{
  "replace": false,
  "names": ["Moonveil", "Stone of Whispers", "Gate of Embers"]
}

All files are merged. "replace": true drops the names loaded before it - use it to replace the built-in list completely. Names longer than 20 characters are skipped.

Resource packs

The runestone is a GeckoLib model. Resource packs can replace these files:

FileContent
assets/verox_rpg_runestones/geo/runestone.geo.jsonModel
assets/verox_rpg_runestones/animations/runestone.animation.jsonAnimations: dormant, awaken, idle, active, teleport, arrive
assets/verox_rpg_runestones/textures/block/runestone.pngTexture
assets/verox_rpg_runestones/textures/block/runestone_glowmask.pngGlowing pixels - fully transparent everywhere else
assets/verox_rpg_runestones/models/item/runestone.jsonItem display settings

Keep the bone names when changing the model - the animations rely on them.

Compatibility

  • Curios API: adds the charm slot for the Soul Anchor
  • Jade: shows a runestone's name, owner and global status
  • Familiars and pets from other mods: travel along as long as they aren't hostile

Troubleshooting

A runestone doesn't show up in my ring

You have to right-click it once to discover it, unless it's global. Runestones in other dimensions are hidden when allow_cross_dimension is false.

My friend doesn't travel with me

Check that you're friends - both of you see each other in the friends menu - and that your friend stands inside the bubble when it closes.

My friend's Soul Anchor isn't in the ring

The Soul Anchor has to be worn in a charm slot, and your friend has to be online.

Credits

Runestones are inspired by Waystones by BlayTheNinth.

On this page