Leaving the planet and what space costs you, plus the administration tools: permissions, protection, regions, jails and the multi server network.
The section names on this page (Space.*, Admin.*) are the names these modules had in the old operator switchboard, config/dmz_ragnarok/modules.cfg, which is no longer read. Space runs when its jar is installed (the Space module, or the all-in-one jar), on any server, with or without the Ragnarok Key. The whole administration group is private and needs the Ragnarok Key. There is one key and no tiers, and singleplayer gets the public set like any other server without the key.
How SU permissions resolve (applies to every module here). A node registered as ALL is granted to everyone; OP is granted to operators only; NONE is granted to nobody by default (not even ops) and must be handed out explicitly. IMPORTANT: a per-item / per-block / per-entity node that was NEVER registered resolves as ALLOW when checked. The parent node by itself grants nothing; only the wildcard child (for example su.protection.break.*) grants the whole set. Command top-level access is the command's own default level (ALL = vanilla permission 0, everyone; OP = vanilla permission 4).
SU config files live at <gamedir>/ShuruisUtilities/<Name>.toml, NOT under config/. They are baked at load and re-baked on /rgreload-style reloads.
The whole space system: a datapack space dimension you reach by flying straight up past a high altitude, generated and fixed planets you fly to and land on, moons, asteroids, stars and black holes as hazards, a pod autopilot, claimable generated planets, planet destruction, and the Apophis (Black Star) event. Space is the group parent; turning it off removes the space dimension, all planets and all travel. The seven sub-modules below are the individual switches.
/spaceplanet (alias /planet) is the only command in the group; it belongs to Space.PlanetClaims and is documented there. The other six sub-modules register no commands.
shuruisutilities.spaceplanet.admin (OP) gates the admin subcommands of /spaceplanet; see Space.PlanetClaims.
None at the group level. Each sub-module owns its own file.
/spaceplanet admin subcommands are separately OP-gated.
dragonminez:otherworld can NEVER be launch sources or planet bodies; this is enforced in code and cannot be overridden in config.
Launching and returning. Flying up past the entry altitude in an eligible dimension moves you into the space dimension; sinking below the return altitude pulls you down onto the nearest landable body, or returns you to where you took off if nothing is in range. Handles the DMZ space pod as a travel vehicle (the pod travels with its pilot both ways), holds nimbus riders out of space, drives the pod autopilot for a selected planet, and enforces the per-planet surface rim boundary (with a fall-catch and an "unstuck" rescue). Origin is persisted on the player so a relog mid-trip never strands anyone. (@SUModule name SpaceTravel; file .../space/SpaceTravelModule.java.)
None. (The /spaceplanet unstuck escape hatch lives on the PlanetClaims command.)
None.
File: <gamedir>/ShuruisUtilities/SpaceTravel.toml, section [SpaceTravel].
| Key | Default | Range | Effect | |---|---|---|---| | enabled | true | bool | Master switch. False: flying up never sends anyone to space and no altitude checks run. | | entryAltitude | 1000.0 | 0..4096 | Y you must rise above (in an eligible dimension) to enter space. | | returnAltitude | 288.0 | -64..4096 | Y in space you must sink below to be pulled onto the nearest body (or returned to origin). | | nearestPlanetRange | 6144.0 | 0..100000 | How far (blocks, measured to a body's surface) to search for a landable body when you sink below the return altitude. | | eligibleDimensions | ["minecraft:overworld"] | string list | EXTRA non-planet dimensions you may launch from. Every planet body is already launchable automatically. Nether/End/otherworld are always excluded in code. |
spaceAutopilotCruiseSpeed), not here.
The danger of space: star burn (proximity damage, lethal at the surface) and black holes (an inverse-square pull that becomes inescapable past the point of no return, and an instant kill at the event horizon). Spectators, creative players, and players on an active pod autopilot are immune. Deaths carry clear translated causes. (@SUModule name SpaceHazards; file .../space/SpaceHazardModule.java.)
None.
None.
None of its own. It reads every strength and toggle from the SpacePlanets config (starsEnabled, starDamageOuter, starDamageInner, blackHolesEnabled, blackHolePullOuter, blackHolePullInner, blackHoleInfluenceFactor, and the star/black-hole spawn ranges). Tune hazards in SpacePlanets.toml.
Owns the whole planet/surface layout and the one config file the space system reads. Stamps the asteroid field into real blocks; everything else (planets, stars, black holes) is a pure function of world position that the client draws itself and the server re-derives, so nothing distant is a tracked entity. Generates claimable planets with themed surfaces (water, vegetation, structures, villages, Saibamen huts), wild defender garrisons that guard unowned planets, moons, and the Destroyer Gods that guard the seven Super Dragon Ball bodies. Runs the destroyed-planet debris timer. (@SUModule name SpacePlanets; file .../space/PlanetSpawnModule.java.)
None. (Claiming/destroying is done through /spaceplanet.)
None.
File: <gamedir>/ShuruisUtilities/SpacePlanets.toml, section [SpacePlanets]. This is the largest space file; the SpaceHazards module reads its hazard keys too.
Core / bodies: | Key | Default | Range | Effect | |---|---|---|---| | enabled | true | bool | Master switch for planet bodies. | | spawnRange | 12000.0 | 256..64000 | How near a player keeps a planet visible. | | excludeTimeChamber | true | bool | Exclude dragonminez:time_chamber as a body (it is a room). | | requireLoadedDimension | true | bool | Only make a destination a body if its dimension is loaded (drops addon-only dims on installs that lack them). | | asteroidsEnabled | true | bool | Scatter scenery asteroids. | | asteroidSpawnRange | 384.0 | 64..4096 | How near a player an asteroid is stamped. | | generatedPlanetsEnabled | true | bool | Scatter claimable generated planets. | | generatedPlanetSpawnRange | 12000.0 | 256..64000 | Outer cull for generated planets. | | generatedSectorSize | 2048 | 256..65536 | Cell size a generated planet sits in (smaller = denser). | | generatedDensity | 0.5 | 0..1 | Fraction of cells holding a generated planet. | | fixedRingRadius | 2400.0 | 512..64000 | Floor for the fixed-planet ring radius. | | fixedRingJitter | 1000.0 | 0..32000 | Per-body hashed radius variety. | | fixedPlanetMinSeparation | 15000.0 | 10000..64000 | Hard minimum centre-to-centre distance between fixed planets. | | spaceAutopilotCruiseSpeed | 12.0 | 2..40 | Pod autopilot cruise (blocks/tick) when the pilot's own speed is slower. Keep <= ~20. | | bodyDrawDistance | (SpaceLayout default) | (floored above the largest hazard field) | How far the CLIENT draws bodies; independent of render distance. | | planetDebrisSeconds | 604800 (7 days) | 0..MAX | How long a destroyed planet stays rubble before a new one forms. | | guildRaidSpoilsSeconds | 86400 (24h) | 0..MAX | How long a guild's raid-won destruction right lasts. 0 = never lapses. |
Surface build: | Key | Default | Range | |---|---|---| | surfaceStampBlocksPerTick | 49152 | 256..1000000 | | surfaceColumnDepth | 128 | 4..150 | | moonSurfaceSize | 400 | 20..500 | | surfaceWaterEnabled | true | bool | | surfaceVegetationEnabled | true | bool | | surfaceSeaLevelOffset | 3 | 1..16 | | surfaceBasinFrequency | 0.30 | 0..1 | | surfaceVegetationDensity | 0.45 | 0..1 | | surfaceThemeWeightStony | 12 | 0..1000 | | surfaceThemeWeightOverworld | 34 | 0..1000 | | surfaceThemeWeightNamek | 21 | 0..1000 | | surfaceThemeWeightNether | 12 | 0..1000 | | surfaceThemeWeightEnd | 8 | 0..1000 | | surfaceThemeWeightKaio | 13 | 0..1000 | | surfaceStructuresEnabled | true | bool | | surfaceVillageFrequency | 0.35 | 0..1 | | surfaceHutFrequency | 0.5 | 0..1 | | surfaceHutSeedPlantedChance | 0.33 | 0..1 | | surfaceHutSeedHarvestChance | 0.33 | 0..1 |
Hazards (read by SpaceHazards): | Key | Default | Range | |---|---|---| | starsEnabled | true | bool | | starSpawnRange | 4096.0 | 256..4096 | | starSectorSize | (StarPositions default) | 1024..65536 | | starDensity | (StarPositions default) | 0..1 | | starDamageOuter | 0.05 | 0..1 (fraction of max health per half-second at field edge) | | starDamageInner | 0.40 | 0..2 (at the surface) | | blackHolesEnabled | true | bool | | blackHoleSpawnRange | 4096.0 | 256..4096 | | blackHoleSectorSize | (BlackHolePositions default) | 2048..65536 | | blackHoleDensity | (BlackHolePositions default) | 0..1 | | blackHoleInfluenceFactor | 30.0 | 1..50 (pull-field reach as a multiple of the hole radius) | | blackHolePullOuter | 0.25 | 0..5 (blocks/tick at the outer edge) | | blackHolePullInner | 6.0 | 0..40 (minimum inner pull floor) |
Wild defenders (garrison): | Key | Default | Range | |---|---|---| | wildDefendersEnabled | true | bool | | wildDefenderMinCount | 3 | 0..64 | | wildDefenderMaxCount | 6 | 0..64 | | wildDefenderBattlePowerMin | 5000.0 | 0..1e12 | | wildDefenderBattlePowerMax | 50000.0 | 0..1e12 | | wildDefenderToughnessDivisor | 10.0 | 0..1e9 (0 = use raw aggregate) | | wildFlatToughnessWhenDisabled | true | bool | | wildDefenderWeightSaiyan / ...Overworld / ...Namekian / ...Saibamen / ...FrostDemon / ...Robot | 1 each | 0..1000 |
Super Dragon Ball Destroyer God: | Key | Default | Range | |---|---|---| | superGodEnabled | true | bool | | superGodBattlePowerMin | 500000.0 | 0..1e12 | | superGodBattlePowerMax | 3000000.0 | 0..1e12 | | superRenderDistance | 1000.0 | 100..45000 |
starSectorSize/starDensity/blackHoleSectorSize/blackHoleDensity defaults come from constants in StarPositions/BlackHolePositions and are not literal numbers in the config code.
surfaceColumnDepth max is capped so the deepest column never reaches the dimension floor at Y -64.
Sends the map of where the bodies are (sector sizes, densities, ring radius/jitter, owner map, destroyed set) to each client so they can draw space correctly. Off means the client sees an empty sky. It re-syncs whenever the layout changes (config bake, a claim, a destroy, a debris respawn). (@SUModule name SpaceLayoutSync; file .../space/SpaceLayoutSync.java.)
None.
None.
None. (It sends the numbers baked in SpacePlanets.)
Lets a guild own a generated planet, and gives operators the tools to destroy/restore a planet and manage the Super Dragon Ball bodies. Ownership is keyed by planet id (survives the body evaporating) and follows the same rules as guild chunk claims: you must be in a guild, need the guild CLAIM/UNCLAIM rank permission, and a guild may hold exactly one body (planet OR moon). An unowned planet cannot be claimed while its wild defenders still live. (@SUModule name SpacePlanetClaims; command .../space/CommandSpacePlanet.java; module .../space/ModuleSpacePlanetClaims.java.)
/spaceplanet (alias /planet), default level ALL, player-only (no console). Most subcommands require standing on a generated planet's surface.
Player-facing:
/spaceplanet claim: claim the generated planet you are standing on for your guild (needs guild CLAIM rank permission; one body per guild; blocked while defenders live).
/spaceplanet unclaim: release your guild's claim on the planet you stand on (needs guild UNCLAIM rank permission).
/spaceplanet info: say whether the planet you stand on is claimed and by whom. This is the default when no subcommand is given. Operators (admin node) also get the planet's raw id on a clickable line here, click it to copy the id to your clipboard for destroy/restore.
/spaceplanet look: open the planet-info screen for the generated planet you are LOOKING at from space (fallback for a stolen P keybind; needs no surface). Operators (admin node) also get the raw id, clickable to copy, printed under the readout.
/spaceplanet unstuck: teleport you to your planet's ground-snapped cell centre if you are stuck at the rim. No permission gate; any player may use it.
Owner/staff (OP-gated by node shuruisutilities.spaceplanet.admin, run from anywhere):
/spaceplanet destroy <planetId>: destroy a generated planet by id (may destroy an owned one).
/spaceplanet restore <planetId>: restore a destroyed planet (same planet, no generation bump).
/spaceplanet search <name>: find a planet, moon or destroyed body by a case-insensitive substring of its display name, so you can recover the id without flying to it. Lists each match's name, its id (click to copy), its state (unclaimed / claimed by which guild / destroyed with the time left until it regenerates) and its space coordinates, plus the distance from you when you are in space. Nearest first when you are in space, else alphabetical. Capped at 10 results with an "... and N more, refine the search" tail. Includes moons and currently-destroyed bodies so you can find the id to restore.
/spaceplanet superstatus: read-only status of all seven Super Dragon Ball bodies (state, position, distance from Earth, whether the god is alive).
/spaceplanet superrelocate <star|all>: force-relocate a genuinely-lost Super body (star 1..7 or all).
shuruisutilities.spaceplanet.admin: default OP. Gates destroy, restore, search, superstatus, superrelocate, and the extra planet-id lines shown by info and look. Registered at server start with description "Destroy or restore a generated planet".
CLAIM / UNCLAIM, not by an SU node.
None.
destroy/restore/search/superstatus/superrelocate do NOT require you to stand on the planet; the other subcommands do.
destroy tab-completes existing destructible ids and restore tab-completes destroyed ids, each with the display name on hover. Both read a cached index that only rebuilds after a destroy, a debris regeneration or a restore, so completion stays cheap.
search covers the region within generatedPlanetSpawnRange of the space origin (where all fixed content and normal play sit), reusing the live derivation so a listed id is exactly what destroy accepts.
.requires(...) at registration; because RegisterCommands runs before any teardown, the subcommands stay registered even if the module is later disabled, but the node check still gates use.
Phase B of planet destruction: a player in space charges a GIANT BALL ki blast (or a long enough beam), fires it at a generated planet whose nameplate is showing, and the planet is destroyed only if the shot wins a DMZ beam-clash struggle against the planet's toughness. An unclaimed planet may be busted freely; a claimed planet only if the firer's guild holds an unspent raid entitlement for that exact planet. Every destruction routes through the same single entry point the admin command uses. The destroyer loses DMZ alignment points. (@SUModule name PlanetBuster; file .../space/PlanetBusterModule.java.)
None. (Uses the fired ki attack; admin destroy/restore lives on /spaceplanet.)
None.
File: <gamedir>/ShuruisUtilities/PlanetBuster.toml, section [PlanetBuster].
| Key | Default | Range | Effect | |---|---|---|---| | enabled | true | bool | Master switch for busting. | | allowedKiTypes | ["GIANT_BALL"] | DMZ KiType names | Which ki attack types may destroy a planet. Valid names: SMALL_BALL, MEDIUM_BALL, GIANT_BALL, WAVE, LASER, BEAM, DISK, EXPLOSION, SHIELD, BARRAGE, AREA. | | redRampTicks | 60 | 0..1200 | Ticks a doomed planet tints red before it is destroyed. | | shatterTicks | 40 | 0..1200 | Client shatter animation length after destruction. | | alignmentPenalty | 10 | 0..100 | DMZ alignment points the destroyer loses (0 disables). | | clashEnabled | true | bool | Whether the beam-clash gate applies; false = the ball always destroys. | | clashTriggerRadiusMultiplier | 2.0 | 1..100 | Where the clash forms, as a multiple of planet radius. | | clashTriggerMinDistance | 50.0 | 1..100000 | Flat minimum clash trigger distance (blocks). | | clashWildToughness | 5000.0 | 0..1e9 | Toughness of an unowned planet (ki-damage scale). | | clashGuildToughnessBase | 5000.0 | 0..1e9 | Base toughness of a guild-owned planet. | | clashGuildToughnessPerMember | 2000.0 | 0..1e9 | Added per guild member. | | clashGuildBattlePowerDivisor | 100.0 | 0..1e12 | Guild aggregate battle power / this = a toughness term (0 ignores it). | | clashGuildToughnessFloor | 8000.0 | 0..1e9 | Minimum guild-owned planet toughness (covers offline guilds). | | minBlastKiDamage | 3000.0 | 0..1e9 | Minimum ki damage a blast must carry to bust at all (0 disables this gate). | | beamEnabled | true | bool | Whether beams (ki waves) can bust planets. | | minBeamKiDamage | 3000.0 | 0..1e9 | Beam twin of minBlastKiDamage (0 disables). | | clashDebug | false | bool | Diagnostics: one clash-state log line per second. Leave false in production. | | clashBattlePowerEnabled | true | bool | Weigh attacker battle power (not ki damage alone) in a planet clash so melee builds can compete. | | clashKiDamageWeight | 0.15 | 0..1e6 | Weight on raw ki damage in the blend. | | clashBattlePowerWeight | 1.0 | 0..1e6 | Weight on the battle-power term. | | clashBattlePowerScale | 0.05 | 0..1e6 | Scales raw battle power onto the ki-damage scale. | | clashDefenderWeight | 0.05 | 0.01..100 | How hard the planet pushes back in the clash minigame (NOT linear; a log curve saturates near clash weight ~1358). |
SpaceLayout.LABEL_DISTANCE).
clashDefenderWeight is non-linear; only cuts below ~1358 clash weight are felt.
The Black Star ("apophis") dragon-ball endgame: seven Black Star balls seeded across seven random generated planets within 45,000 blocks of Earth, a red dragon summonable only on a generated planet, a one-real-week countdown armed by that summon, and a planet-aware radar to find the balls. If all seven balls are re-collected before the deadline the summon planet is spared; if the deadline passes first the planet is destroyed. (@SUModule name ApophisSummon; file .../space/ApophisSummonModule.java.)
None.
None.
None. (The re-form/debris timing rides planetDebrisSeconds in SpacePlanets; the summon deadline is a fixed one real week.)
planet_surface) is enforced by a mixin, not by this module.
The parent switch for the entire administration suite (permissions, protection, regions, jail, banned items, staff, perf tools, world borders, multiworld, block updates, WorldEdit tools). Turning Admin off takes every Admin.* sub-module with it. The whole group is PRIVATE except the WorldEdit selection tools (public, because arena and room bounds are picked with them): it needs the Ragnarok Key, so a server without the key (singleplayer included) does not get it.
None at the group level; each sub-module below owns its commands.
None at the group level.
None at the group level.
Admin.Permissions and Admin.Protection are core (Protection is canDisable = false in code); turning off Permissions "leaves every other permission check unanswered", so it is effectively load-bearing for the rest.
The permission and rank-prefix system every other module asks. Staff use it to put players into permission GROUPS, grant/deny individual nodes to a user or a group, set chat prefixes/suffixes, and define permission ZONES (areas where different permissions apply). Reach for it whenever you need to give a rank a command, take a node away from someone, or promote a player into a group. It also owns permission-tagged items (items that carry a permission a holder must have). (@SUModule name Permissions; module .../permissions/ModulePermissions.java.)
Registered by ModulePermissions:
/perm (aliases /sup, /p), default OP, console usable. The main permission editor. Top-level subcommands include help, user <player> ... (with perms, prefix [clear], suffix [clear], group list|<add/remove> [group], allow <perm>, deny <perm>, clear <perm>, value <perm>, denydefault, zone <zone> ...), and parallel group ..., list ..., plus test, reload, save, debug. (Argument tokens are joined with && internally.)
/promote <player> <group>, default OP, console usable. Move a player into a permission group.
/area (alias /zone), default OP, player-only. Define and manage permission zones: help, select <zone>, list [pageLimit], info <zone>, define <zone> <type>, redefine <zone> <type>, delete <zone>, message exit|entry <zone> get|clear|set <message>.
/permtaggeditem, default OP, player-only. Tag the held item with a permission requirement: mode inventory|equip|use, perm <perm> true|false, group <group>, reset.
/rggui (permissions GUI command), opens the permission editor screen.
Registered defaults:
su.perm (ALL): base permission command node.
su.perm.* (OP): full permission command access.
su.perm.test (ALL), su.perm.debug (ALL): test/debug a node.
su.perm.reload (OP), su.perm.save (OP).
su.perm.user (OP), su.perm.user.perms (OP), su.perm.user.spawn (OP), su.perm.user.fix (OP).
su.perm.group (OP), su.perm.group.perms (OP), su.perm.group.spawn (OP), su.perm.group.fix (OP).
su.perm.list.perms (ALL), su.perm.list.zones (OP), su.perm.list.users (OP), su.perm.list.groups (OP).
su.perm.zone and children su.perm.zone.* (OP), .list (ALL), .info (ALL), .define/.delete/.settings (OP). [from CommandZone; .list and .info are ALL]
su.perm.autoPromote (OP).
su.core.info (OP): access /rginfo.
su.playerlimit.bypass (OP): bypass the network player cap.
su.maptp (OP): map teleport.
su.internal.group.promotion (a.k.a. GROUP_PROMOTION) (NONE): nobody by default.
su.internal.spawn.bed (SPAWN_BED) (ALL).
File: <gamedir>/ShuruisUtilities/Permissions.toml, section [Permissions]. | Key | Default | Effect | |---|---|---| | persistenceBackend | "singlejson" | Which permission storage backend: flatfile, json, or singlejson. | | fakePlayerIsSpecialBunny | true | Treat fake players specially. | | useEntireCommandNode | false | Whether command permission nodes use the entire command node path. |
parent.* grants the whole set.
NONE nodes (for example group promotion) are granted to nobody, not even ops, until explicitly handed out.
The zone/global protection layer: block break/place, interaction, item use/craft, entity damage (to and from), mob spawning (natural vs placed), fire, explosions, PvP, sleep, hunger, pressure plates, ki-blast griefing, and knockback. Staff use it to lock down areas or set server-wide rules by toggling permission nodes on the default group, on a group, or inside a permission zone. Zone effects (run a command, deal damage, apply a potion) can fire on entry/exit. (@SUModule name Protection; core module, canDisable = false. Module .../protection/protection/ModuleProtection.java.)
/itemperm, default ALL, player-only. Set allow/deny/clear for the held item across the protection categories: <type> allow|deny|clear [all|*].
/protectdebug, default OP, player-only. Report which protection check would refuse a given action: /protectdebug <command> or bare.
(Zone entry/exit effects are configured through the zone/region tooling, not a standalone command. CommandEffect is a zone-effect type that runs a command, not a registered player command.)
All protection nodes are registered at default ALL (permissive by default; you protect by DENYING). Base su.protection. Representative nodes:
su.protection.pvp, .sleep, .needsfood, .pressureplate, .explosion.
su.protection.use.*, .break.*, .place.*, .trample.*, .interact.*, .interact.entity, .explode.*, .kiblast.*, .inventory.*, .exist.*, .craft.* (each with per-block/per-item children).
su.protection.damageto.* and su.protection.damageby.* (with per-entity, per-damage-type and .explosion children).
su.protection.mobspawn.natural.*, .forced.*, .placed.* (with per-entity children).
su.protection.fire.destroy (ALL), su.protection.fire.spread (ALL).
su.protection.zone.knockback (NONE): off by default.
mc.commandblock: command-block permission marker.
None. (Protection state lives in the permission store / zones, edited through /perm, /area, /itemperm, not a toml.)
canDisable = false), so the Admin.Protection switchboard key turning it off may not fully unregister it.
WorldGuard-style cuboid protection regions. Staff select a cuboid (WorldEdit or pos1/pos2), define a named region, then set flags (build, pvp, natural/spawned mobs, DMZ healing, ki-blast griefing, entry, and more) via commands or the GUI. Regions support owners/members, priorities and parents. Reach for it to protect a build, a spawn, or a specific area with fine-grained rules. Persists to <gamedir>/ShuruisUtilities/regions.json. (@SUModule name Regions; module .../regions/ModuleRegions.java.)
/serverclaim, default OP, player-only:
define <name>: create a region from your current selection.
add <name> / remove <name>: add/remove a cuboid to/from a region.
rename <name> <newname>.
list: list regions.
bypass: toggle your own region bypass.
info <name>: region details.
tp <name>: teleport to a region.
priority <name> <value>: set region priority.
flag <name> <flag> <value>: set a region flag.
parent <name> <parent>: set a parent region.
addowner|removeowner|addmember|removemember <name> <member>.
/rggui admin -> Regions.
su.regions.admin (OP): manage regions (/serverclaim).
su.regions.bypass (OP): bypass region restrictions.
None (a toml). Region data is JSON at <gamedir>/ShuruisUtilities/regions.json.
ki-griefing, dmz-gravity, dmz-heal) route through DragonMineZ.
su.regions.bypass is OP by default; /serverclaim bypass toggles it live.
This is the suite's general admin command set: the single biggest module, registered by ModuleCommands (SUModule name Commands). It bundles roughly five dozen standalone slash commands that have nothing to do with each other beyond being staff and player utilities: healing and buffing players, moderating them (freeze, ban, vanish), managing items and personal storage (kits, vaults, ender chests), reading server and player information, and controlling the world (time, weather, entity and item cleanup, chunk pruning). A handful of the commands are DMZ-specific (saga difficulty, race unlocks, the shadow dragon endgame, wish tracking).
Every command's base permission is a node named command.<name> (for example command.fly, command.heal), whose default is the level listed per command below. OP means only operators (server level-2+) hold it by default; ALL means every player has it; NONE means nobody has it until it is granted. Aliases resolve onto the primary command's node, so granting command.pardon does nothing: grant command.unban.
Provides the everyday staff and player toolkit: heal/repair/buff players and yourself, moderate (freeze, temp-ban, vanish, invsee, gamemode, run-as), hand out and manage kits, personal vaults and ender chests, look up players and server state, and edit the world (set time and weather, cull mobs, sweep dropped items, prune unused chunks). It also carries a few DMZ-specific admin tools (saga difficulty override, shadow dragon race and form grants, the dragon ball wish-tracking subsystem), and a configurable /buy store link.
The module reads <gamedir>/ShuruisUtilities/Commands.toml. Section headers below are the TOML tables as they appear in that file.
[Commands Config] version (default 5) - internal migration marker. Do not edit.
[Command Rules Settings] filename (default rules.txt) - name of the rules text file, read
from the <gamedir>/ShuruisUtilities/ folder, that /rules displays.
[Command VirtualChest Settings] VirtualChestRows (default 6, range 1-6) - rows per personal
vault. 1 row = 9 slots, 3 = single chest, 6 = double chest (the max).
[Command VirtualChest Settings] VirtualChestName (default Vault) - vault display name, shown
as <name> #<n>. The old baked-in default Vault 13 is auto-migrated to Vault.
[Command Findblock Settings] defaultRange (default 320) - default max search distance for
/findblock.
[Command Findblock Settings] defaultSpeed (default 256) - default scan speed for /findblock.
[CommandHelp Settings] custom_help (default empty list) - extra lines appended to /help.
[CommandHelp Settings] commandPerPage (default 8, range 1-50) - commands shown per /help page.
[CommandHelp Settings] commandColor (default 2 = dark_green) - colour code (0-15) for commands in /help.
[CommandHelp Settings] subCommandColor (default 7 = gray) - colour code (0-15) for subcommands in /help.
[Command Ping Settings] response (default Pong! %time) - /ping reply format; must contain %time.
[Command Kit Settings] kitForNewPlayers (default blank) - kit name auto-given to new players; blank disables it.
One further key lives in the CORE config, not this module's file:
<gamedir>/ShuruisUtilities/main.toml, [Misc] StoreUrl (default blank) - the URL /buy links
to. Leaving it blank means /buy is not registered at all (see Gotchas). Setting it requires a server restart to take effect.
absent on another:
/buy (aliases /store, /shop) is registered only when [Misc] StoreUrl is non-blank
(CommandStore.configured()). Because Brigadier's dispatcher is built once at RegisterCommandsEvent, adding the URL needs a restart; it will not appear on a config reload. (Added to this module today.)
/character (aliases /characters, /char) registers only if the Character Slots feature is
enabled; /prestige registers only if the Prestige feature is enabled. Both belong to those separate features and are documented here only because this module is where they are wired in.
false), registerCommands returns immediately and NONE of these commands exist. Entitlement is decided at registration, so a server holding the Ragnarok Key keeps them.
/rg prune is not its own command. It is a subcommand hung directly on the shared /rg
root (registered raw, bypassing SUCommandManager), so it has no command.* node: it gates on vanilla permission level 2. It shares the same code and safeguards as /purgechunks.
/buy collides with Tebex. If the Tebex/BuyCraft mod is installed it registers its own
/buy; whichever loads last wins. Set disable-buy-command=true in config/buycraft/config.properties to keep both.
/clearitems vs /remove. /clearitems sweeps dropped items across EVERY loaded
dimension and always spares dragon balls (and the configured exclusion list). /remove takes a radius and centre in ONE dimension and removes anything, dragon balls included.
/kit cooldown resets are configured per player permission, and /gamemode, /heal,
/kill, /potion, /smite, /burn, /repair, /sagadifficulty, /vanish and /pv all self-serve by default but need a separate .others node to target another player.
/help (alias /?) - /help [page]. Paginated list of registered commands, with operator
custom lines. For: player. Node command.help, default ALL.
/commandbook (alias /cmdbook) - /commandbook. Gives you a written book of commands. For:
player. Node command.commandbook, default ALL.
/modlist - /modlist [page]. Lists the mods installed on the server. For: player. Node
command.modlist, default ALL.
/ping - /ping. Replies with the configured pong string (round-trip time). For: player.
Node command.ping, default ALL.
/rules - /rules, /rules page <n>, /rules help, /rules book, plus editor subcommands
/rules add <text>, /rules change <page> <text>, /rules remove <page>, /rules move <from> <to>. Shows the server rules; editing needs the su.commands.rules.edit node (OP). For: player (read), staff (edit). Node command.rules, default ALL.
/locate (aliases /gps, /loc, /playerinfo) - /locate <player>. Reports a player's
position and info. For: staff. Node command.locate, default OP.
/seen - /seen <player>. Reports when a player was last online. For: player. Node
command.seen, default ALL.
/playtime (alias /played) - /playtime, /playtime <player>, /playtime top [count].
Shows your own or another player's total play time, or a leaderboard. For: player. Node command.playtime, default ALL.
/findblock (alias /fb) - /findblock <blockstate>. Scans outward for the nearest matching
block within the configured range. For: staff. Node command.findblock, default OP.
/npcprobe - /npcprobe. Dumps the live AI state of the nearest CustomNPC (movement,
standing, targeting), a diagnostic tool. For: staff. Node command.npcprobe, default OP.
/buy (aliases /store, /shop) - /buy. Hands the player a clickable link to the store
URL the operator configured; console gets the plain address. Registered only when [Misc] StoreUrl is set (see Gotchas). For: player. Node command.buy, default ALL.
/kit - /kit <name> (redeem), /kit list, /kit modify create <name> [cooldown],
/kit modify delete <name>. Redeem or manage kits. Redeeming a kit needs the per-kit node su.commands.kit.<kitname>; the modify subcommands need su.commands.admin (OP); cooldowns can be bypassed with su.commands.kit.bypasscooldown (OP). For: player (redeem), staff (modify). Node command.kit, default ALL.
/enderchest (alias /echest) - /enderchest, /enderchest <player>. Opens your own or
another player's ender chest. For: staff (opening others). Node command.enderchest, default OP.
/pv (aliases /virtualchest, /vchest) - /pv [number], /pv <target> <vault>. Opens a
personal virtual vault. How many vaults you may open is set by the su.pv.amount permission property (default 1); opening another player's vault needs su.pv.others (OP). For: player; staff for others. Node command.pv, default ALL.
/craft - /craft. Opens a virtual crafting table. For: staff. Node command.craft,
default OP.
/drop - /drop <pos> <count> <item>. Drops a stack of an item at a position. For: staff.
Node command.drop, default OP.
/duplicate - /duplicate <size>. Duplicates the held item stack to the given count. For:
staff. Node command.duplicate, default OP.
/enchant - /enchant <enchantment> maxlevel or /enchant <level> custom. Enchants the item
in your hand. For: staff. Node command.enchant, default OP.
/dechant - /dechant <enchantment>. Removes an enchantment from the held item. For: staff.
Node command.dechant, default OP.
/repair - /repair self MaxValue, /repair self Custom <amount>,
/repair others <player> MaxValue, /repair others <player> custom <amount>. Repairs the held item's durability. Repairing others needs su.commands.repair.others (OP). For: staff. Node command.repair, default OP.
/rune - armour: /rune armor tier <tier>, /rune armor stat <stat> <arrows>,
/rune armor socket <stat> <tier>, /rune armor unsocket <slot>, /rune armor reroll, /rune armor info; item: /rune item stat <stat>, /rune item grade <grade>, /rune item tier <tier>, /rune item reroll, /rune item info. Edits the rune data on the held armour or rune item. For: staff. Node command.rune, default OP.
/rename - /rename <name>. Renames the held item (colour codes allowed). For: staff. Node
command.rename, default OP.
/bind - /bind left command <command>, /bind left none, /bind right command <command>,
/bind right none, /bind clear. Binds a command to left/right click of the held item. For: staff. Node command.bind, default OP.
/heal - /heal, /heal <player>. Restores health (and feeds). Healing others needs
su.commands.heal.others (OP). For: staff; self-heal is OP too. Node command.heal, default OP.
/potion - /potion give <targets> <effect> [seconds] [amplifier] [hideParticles],
/potion clear <targets> [effect]. Applies or clears potion effects. Affecting others needs su.commands.potion.others (OP). For: staff. Node command.potion, default OP.
/god - /god me <true|false>, /god others <player> <true|false>. Toggles invulnerability.
For: staff. Node command.god, default OP.
/fly - /fly, /fly <true|false>. Toggles or sets flight. For: staff. Node command.fly,
default OP.
/speed - /speed set <multiplier>, /speed reset, /speed current. Changes your movement
speed. For: staff. Node command.speed, default OP.
/gamemode (alias /gm) - /gamemode <survival|creative|adventure|spectator> [targets].
Sets game mode; targeting others needs su.commands.gamemode.others (OP). For: staff. Node command.gamemode, default OP.
/invsee - /invsee <player>. Opens and edits another player's inventory. For: staff. Node
command.invsee, default OP.
/vanish - /vanish, /vanish <player>. Toggles invisibility to other players; toggling
another player needs su.commands.vanish.others (OP). For: staff. Node command.vanish, default OP.
/freeze - /freeze <player>, /freeze <player> <true|false>. Freezes a player in place
(enforcement is live from module load). For: staff. Node command.freeze, default OP.
/doas - /doas <player> <command>. Runs a command as the named player. For: staff. Node
command.doas, default OP.
/kill - /kill, /kill <player>. Kills yourself, or another player with
su.commands.kill.others (OP). For: staff. Node command.kill, default OP.
/burn - /burn me [time], /burn others <player> [time]. Sets a player on fire for a
number of seconds. Affecting others needs su.commands.burn.others (OP). For: staff. Node command.burn, default OP.
/smite - /smite player <player>, /smite location <pos>, /smite (where you are looking).
Strikes lightning. Affecting others needs su.commands.smite.others (OP). For: staff. Node command.smite, default OP.
/tempban - /tempban <player> <duration> <reason>. Temporarily bans a player with a stored
reason. For: staff. Node command.tempban, default OP.
/unban (alias /pardon) - /unban <player>. Lifts a ban and clears the stored reason. For:
staff. Node command.unban, default OP.
/meleeclash - /meleeclash, /meleeclash <player>. Starts a melee clash rhythm minigame
(against yourself, or a named player), a testing tool. For: staff. Node command.meleeclash, default OP.
/time - /time set <day|midday|dusk|night|midnight|ticks> <all|dimension>,
/time add <ticks> <all|dimension>, /time freeze <all|dimension>, /time (info). Sets, adds or freezes time per dimension or across all. For: staff. Node command.time, default OP.
/weather - /weather rain <enable|disable|force|start|stop>,
/weather storm <enable|disable|force|start|stop>, /weather clear; bare rain/storm show info. Controls weather. For: staff. Node command.weather, default OP.
/butcher - /butcher <radius> [mobType] [x y z] [world], bare /butcher prints usage.
Culls mobs of a type within a radius (radius -1 for unlimited). For: staff. Node command.butcher, default OP.
/remove (alias /clearGroundItems) - /remove <radius> <position> [dimension]. Clears
dropped items in a radius in one dimension (removes everything, dragon balls included). For: staff. Node command.remove, default OP.
/clearitems (alias /clearitemsglobal) - /clearitems (clear now), /clearitems warn
(start the countdown). Clears dropped items across every loaded dimension, sparing dragon balls and the exclusion list. For: staff. Node command.clearitems, default OP.
/purgechunks - /purgechunks <dimension> (dry run), /purgechunks <dimension> confirm
(apply). Reclaims unclaimed, untouched wilderness in ONE dimension so it regenerates; claims, regions, homes, spawn and loaded chunks are protected. For: owner/console. Node command.purgechunks, default OP.
/rg prune - /rg prune (dry run), /rg prune confirm (apply). The all-dimensions
counterpart to /purgechunks, sweeping every loaded dimension on the allow-list. For: owner/console. No command.* node: gates on vanilla permission level 2. (Subcommand of the shared /rg root, not a standalone command.)
/updateblocks (aliases /fixblocks, /ub) - /updateblocks <radius>,
/updateblocks area <chunkRadius>, /updateblocks cancel. Re-triggers block updates in a radius or chunk area (fixes floating/un-updated blocks). For: staff. Node command.updateblocks, default OP.
/push - /push <pos>. Remotely presses the button or flips the lever at a block position.
Console-usable, so command blocks and redstone can use it. For: player/staff. Node command.push, default ALL.
/serversettings (alias /ss) - /serversettings <setting> modify <value> or
/serversettings <setting> view, over a large set of server.properties keys (allow-flight, allow-nether, difficulty, pvp, motd, view-distance, spawn-protection, white-list, max-build-height, online-mode, resource-pack, and many more); bare /ss lists them. Reads and edits live server settings. For: owner/console. Node command.serversettings, default OP.
/broadcast - /broadcast <message>. Sends a server-wide message. For: staff. Node
command.broadcast, default OP.
/delayedaction - /delayedaction <time> <command>. Schedules a command to run after a
readable delay. For: owner/console. Node command.delayedaction, default OP.
/afk - /afk (toggle your AFK state); admin: /afk timeout player <player> <seconds>,
/afk timeout group <group> <seconds>, /afk autokick player <player> <true|false>, /afk autokick group <group> <true|false>. Announce needs su.commands.afk.announce (ALL); the auto-kick timeout property is su.commands.afk.autotime (default 480) and auto-kick toggle su.commands.afk.autokick (default NONE); warmup su.commands.afk.warmup (default 10). For: player (self), staff (config). Node command.afk, default ALL.
/bubble - /bubble (toggle), /bubble on, /bubble off. Puts a protection bubble around
you (blocks use/place/break/interact via the command_bubble group) so you cannot be griefed while building. For: staff. Node command.bubble, default OP.
/sagadifficulty - /sagadifficulty <easy|normal|hard> (self),
/sagadifficulty <player> <difficulty>. Overrides a player's DMZ saga difficulty, bypassing DMZ's one-time choice latch. Targeting others needs su.commands.sagadifficulty.others (OP). For: staff. Node command.sagadifficulty, default OP.
/rgreset (alias /sureset) - /rgreset <player>. Resets an online player's SU economy
balance to the starting balance, clears their banked Z-Souls and clears tournament titles (cross-mod parts no-op if the addon is absent). For: owner/console. Node command.rgreset, default OP.
/rggrave (alias /sugrave) - /rggrave cleannames, /rggrave listballs [page],
/rggrave listballs all [page], /rggrave removeball <dimension> <pos> [confirm]. Manages dragon ball totems/graves in the world. For: staff. Node command.rggrave, default OP.
/wishtracking - /wishtracking status, /wishtracking reset, /wishtracking trigger,
/wishtracking arm. Diagnostics and manual control of the dragon ball wish-tracking cinematic subsystem. For: owner/console. Node command.wishtracking, default OP.
/raceunlock - /raceunlock grant <player> <unlock>, /raceunlock revoke <player> <unlock>,
/raceunlock query <player> [unlock], where <unlock> is shadow_dragon, omega_shenron or shadow_dragon_form. Grants, revokes or queries the shadow dragon race and form unlocks (durable per-UUID, survives a DMZ character reset, works offline). Gated by su.raceunlock.admin (OP). For: owner/console. Node command.raceunlock, default OP.
/shadowdragonform - /shadowdragonform grant [player], /shadowdragonform revoke [player].
Grants or revokes the shadow dragon (Omega Shenron) transformation by hand, matching what the corrupted-ball endgame grants. Gated by su.shadowdragonform.admin (OP). For: owner/console. Node command.shadowdragonform, default OP.
/character (aliases /characters, /char) - /character (GUI), /character list,
/character gui, /character switch <slot>, /character new [name], /character rename <slot> <name>, /character delete <slot>. Manages a player's character slots. Registered only when the Character Slots feature is enabled (belongs to that feature). For: player. Node command.character, default ALL.
/prestige - /prestige (GUI); admin: /prestige npc [type] [name],
/prestige delete [all], /prestige forceall [level], /prestige kit set|clear|list ..., /prestige questgate set|clear|list ..., plus per-level colour subcommands. Opens the prestige UI and administers the prestige system. Admin subcommands need <prestige>.admin (OP). Registered only when the Prestige feature is enabled (belongs to that feature). For: player (GUI), staff (admin). Node command.prestige, default ALL.
Named jails and jailing. Staff define one or more jail points, then confine a player for a set time or indefinitely. A jailed player is teleported in, kept within a radius each tick, auto-released when the sentence expires, and (by default) blocked from breaking/placing/interacting/damaging and from any command outside a small allow-list. Jail state persists on the player so it survives logout and death. (@SUModule name Jail; module .../jail/JailModule.java.)
/jail <player> [jail] [time] [reason], default OP, console usable. Jail a player. A single <player> <word> is read as the jail name if it matches one, otherwise as a duration against the default jail (so /jail Bob 30m works). Full forms: <player>, <player> <jail>, <player> <jail> <time> [reason], <player> <time> [reason].
/setjail <name> (aliases /deljail, /jails), default OP, player-only:
<name>: create a jail at your position.
list: list jails.
delete <name>: delete a jail.
/unjail <player>, default OP, console usable. Release a player.
su.jail (OP): allow jailing.
su.jail.unjail (OP): allow releasing.
su.jail.set (OP): allow creating/deleting jails.
su.jail.exempt (NONE): a player with this can never be jailed. Nobody has it by default.
File: <gamedir>/ShuruisUtilities/Jail.toml, section [General]. | Key | Default | Effect | |---|---|---| | containmentRadius | 12.0 | How far (blocks) a jailed player may move before being teleported back. | | defaultJail | "" (blank = first jail defined) | Jail used by /jail when no jail name is given. | | blockInteractions | true | Block jailed players from breaking/placing, interacting and dealing any damage. | | restrictCommands | true | Block jailed players from commands outside the allow-list. | | allowedCommands | (a small list) | Root command names (lower-case) a jailed player may still use. |
su.jail.exempt is a NONE node: it protects a player from being jailed only once you explicitly grant it.
Ban specific items server-wide. Staff hold an item and run /banitem to ban it; banned items cannot be used, placed or picked up, and are swept out of the inventories of players who lack the bypass. The ban list persists to <gamedir>/ShuruisUtilities/banned_items.json. (@SUModule name BanItem; module .../banitem/ModuleBanItem.java.)
/banitem, default OP, player-only:
list: list banned items.
unban: unban the held item.
su.banitem.bypass (OP): exempt from banned-item enforcement and inventory sweeps.
None (a toml). Ban list is JSON at <gamedir>/ShuruisUtilities/banned_items.json.
Staff shifts (a clock) and a task board. Staff clock in/out (driven by login/logout too), see who is on shift, and work a board of tasks assigned per staff role: accept, drop, complete, submit for review; reviewers approve or deny. Owners/admins add and remove staff roles and tasks. Reach for it to run a moderation rota and track work. (@SUModule name Staff; module .../staff/ModuleStaff.java.)
/clockin, default ALL, player-only. Toggle your own shift (clock in if out, out if in).
/staff, default ALL, console usable:
status [player]: your shift status (or another player's).
clockin / clockout: clock in/out.
list: who is on shift.
tasks: your task board.
accept <task> / drop <task> / complete <task>: work a task.
review: the review queue (reviewers).
approve <task> / deny <task> <reason>: review a submitted task.
addtask <roles> <text> / deltask <task>: create/delete a task (admin).
add <player> <role> / remove <player>: manage the staff roster (admin).
su.staff.clock (NONE): who may clock in as staff. Nobody by default; grant to your staff rank.
su.staff.admin (OP): add/remove staff and tasks.
su.staff.review (OP): approve/deny submitted tasks.
None. (Roster and tasks are persisted data, not a toml.)
su.staff.clock is NONE, so no one can clock in until it is granted to a rank.
Performance tooling for operators: a memory watchdog that warns ops when server memory is high, and two read-out commands (server performance snapshot, and a chunk-loader listing by player or mod). Reach for it when the server is lagging or you suspect a mod/player is force-loading chunks. (@SUModule name Perftools; module .../perftools/PerfToolsModule.java.)
/perfstats, default OP, console usable. Server performance snapshot.
/chunkloaderlist, default OP, player-only:
player <player>: a player's chunk loaders.
modname <modname>: a mod's chunk loaders.
su.core.memUsageMsg (OP): receive the high-memory warning (registered only when the watchdog is enabled).
File: <gamedir>/ShuruisUtilities/Perftools.toml, section [core] (SU core category). | Key | Default | Range | Effect | |---|---|---|---| | warnHighMemUsage | true | bool | Warn ops when high memory is detected. | | percentageWarn | 90 | 1..100 | Memory percentage at which to warn. | | checkInterval | 5 | 1..60 | Minutes between memory checks. |
[core] section (SUConfig core category) inside Perftools.toml, not a [Perftools] section.
warnHighMemUsage is true, so if you disable the warn key the node never appears.
Per-world (per-dimension) borders with configurable centre, shape (box or ellipse) and size, plus a stack of border EFFECTS applied by how far a player is past the edge (run a command, deal damage, kick, knock back, message, apply a potion, or smite). Reach for it to fence a dimension and punish/return players who leave it. (@SUModule name WorldBorder; module .../worldborder/ModuleWorldBorder.java.)
/worldborder (alias /wb), default OP, player-only. All subcommands take <world> (a dimension) first:
<world> info: border status.
<world> enable / disable.
<world> define: define the border from context.
<world> center info / center set <location>.
<world> shape info / shape set box / shape set ellipse.
<world> size info / size set radius <radius> / size set XandZ <x-radius> <z-radius>.
<world> effect info / effect list / effect remove <index>.
<world> effect add <TriggerDistance> command <interval> <command>.
<world> effect add <TriggerDistance> damage <timeout> <damage>.
<world> effect add <TriggerDistance> kick <timeout>.
<world> effect add <TriggerDistance> knockback.
<world> effect add <TriggerDistance> message <interval> <message>.
<world> effect add <TriggerDistance> potion <interval> <effect> <seconds> <amplifier>.
<world> effect add <TriggerDistance> smite <interval>.
help.
su.worldborder.admin (OP): manage borders.
su.worldborder.bypass (NONE): ignore the border. Nobody by default.
None (a toml). Borders persist through the SU DataManager.
su.worldborder.bypass is a NONE node: grant it to let staff cross freely; it is off for everyone by default including ops.
effect remove <index> after checking effect list.
Create and manage extra worlds (dimensions) at runtime: make a new world from a preset or a fully custom generator, import an existing world folder (as void or terrain), list available generators/biome-providers/dimension-types, teleport, and delete. Reach for it to add a survival world, a creative flat, a minigame dimension, etc. (@SUModule name MultiworldV2; module .../multiworld/v2/ModuleMultiworldV2.java.)
/mw, default OP, console usable:
list CurrentMultiworlds | AvailableDimensionSettings | AvailableBiomeProviders | AvailableChunkGenerators | AvailableDimensionTypes.
info <world>.
help.
import <folder> <worldName> [void|terrain] (defaults to void).
create <name> presets Overworld|Nether|End|Superflat|FloatingIslands|Amplified|LargeBiomes.
create <name> custom <chunkGenerator> <biomeProvider> <dimensionType> <dimensionSettings> [seed] [generatorOptions].
delete <world>.
/mwtp <target> <dim> <pos>, default OP, console usable. Teleport a player to a dimension at a position.
su.multiworld.manage (OP): create/manage worlds.
su.multiworld.delete (OP): delete worlds.
su.multiworld.list (ALL): list worlds.
su.multiworld.teleport (PERM_TELEPORT is defined; registration not confirmed).
File: <gamedir>/ShuruisUtilities/MultiworldV2.toml, section [General]. | Key | Default | Effect | |---|---|---| | test | false | A test value; no operator-facing effect. |
/mw and teleport is /mwtp (the catalog label "Multiworld" and the class name differ from the command names).
deleting a world is destructive; su.multiworld.delete is a separate node from manage.
The /updateblocks sweep: force block-state/shape updates over an area, used after bulk edits (WorldEdit, world imports, chunk surgery) so blocks re-evaluate their connections and neighbours. It processes a budget of positions per tick so a big radius does not freeze the server. (@SUModule name UpdateBlocks; config .../commands/world/UpdateBlocksConfig.java; command .../commands/world/CommandUpdateBlocks.java.)
/updateblocks (aliases /fixblocks, /ub), default OP, player-only:
<radius>: sweep a block radius around you (0..MAX_RADIUS).
area <chunkRadius>: sweep by chunk radius (0..MAX_CHUNK_RADIUS).
cancel: cancel a running sweep.
None registered specifically; access is the command's default OP level.
File: <gamedir>/ShuruisUtilities/UpdateBlocks.toml, section [UpdateBlocks]. | Key | Default | Range | Effect | |---|---|---|---| | blocksPerTick | 8192 | 256..1000000 | Block positions processed per tick before the sweep yields. | | maxRadius | CommandUpdateBlocks.MAX_RADIUS | 0..MAX_RADIUS | Upper cap on the radius a player may pass. |
Commands module's registration pass, but its config and module identity are the separate UpdateBlocks module. Both the Admin.Commands and Admin.UpdateBlocks switchboard keys are relevant.
setBlock with the shape-update flag actually re-runs shape updates; this is the tool that does it safely in batches.
The WorldEdit selection integration (WEIntegrationTools). It hooks SU into WorldEdit's own selection so arena and dungeon room bounds (and region/border definitions) can be picked with a WorldEdit selection. It adds no commands of its own; you use WorldEdit's commands to make the selection, and SU reads it. (@SUModule name WEIntegrationTools; class .../compat/worldedit/WEIntegration.java, handler WEIntegrationHandler.java.)
None (SU-side). WorldEdit provides its own selection commands.
None (SU-side).
None.
com.sk89q.worldedit.forge.ForgePermissionsProvider); otherwise it unregisters itself and logs an error. Presence of the mod is not enough, the class probe must pass.
shuruisutilities.developermode.we=true force-disables it. For devs only.
On a multi-server (shard) network, this lets a player-targeting command typed on one shard act on a player who is actually online on ANOTHER shard. Example: a moderator on shard A types /smite Bob, but Bob is on shard B; the command is sent to B, rebuilt from B's own dispatcher, re-checked against the sender's OWN permissions on B (never run as console), executed there, and the result returned to the sender. Off, such a command just fails locally with "no player found" and staff must connect to Bob's shard first. It never runs a raw command string off the wire; it costs reach, not safety. (Class .../shard/ShardCommandForward.java; config .../shard/ShardConfig.java.)
None of its own. It transparently forwards OTHER commands.
None of its own. The forwarded command is re-checked against the sender's existing permission nodes on the destination shard.
This feature is doubly gated and needs BOTH to be on:
Shard.CommandForwarding in config/dmz_ragnarok/modules.cfg (default ON).
forwardPlayerCommands in <gamedir>/ShuruisUtilities/shard.json (default false, ships OFF).
Relevant shard.json keys (network-scoped operator JSON, hand-parsed at construction, never sent to clients): | Key | Default | Effect | |---|---|---| | forwardPlayerCommands | false | Master enable for cross-shard command forwarding. Ships off; turn on only after launch-testing. | | commandForwardDenyList | ["tp","teleport","tphere","tphereall","tpa","tpahere","tpaccept","tpdeny","tpo","tpohere","tpall","spawn","server","back","home","warp","top","bottom","execute","doas"] | Command roots that must NEVER be forwarded (positional/teleport/routing commands, plus execute/doas which could launder identity). This is a deny list; every OTHER player-targeting command inherits forwarding. |
forwardPlayerCommands must be true; either being off stops forwarding.