Astral Realms Documentation Help

Commands

Base alias: /roomeditor (alias /re). Every subcommand requires the class-level permission roomeditor.command — there is no additional per-subcommand permission.

Subcommand

Description

/re create <gamemode> <layout> <name>

Start a new editing session for a room of the given gamemode/layout.

/re set <component> [id]

Place a component at the player's current location instead of by clicking.

/re cancel

Discard the current session without saving.

/re load <blueprint>

Load a saved room blueprint into a new session at the player's location.

/re save

Save the current session as a room blueprint + schematic.

/re items

Re-give the session's component placement items (e.g. after they were lost or dropped).

/re undo

Undo the single most recently placed component.

/re reload

Reload messages.yml and every component/layout/gamemode definition.

All subcommands except /re reload are player-only.

/re create <gamemode> <layout> <name>

Completions: @gamemodes (registered gamemode ids), @layouts (layout ids), @nothing.

Starts a new RoomEditSession. Fails with a message and does nothing if:

  • name doesn't match ^[a-zA-Z0-9_]{3,16}$ (invalid-room-name);

  • the player already has an active session (already-active-session);

  • gamemode isn't a registered gamemode id (unknown-gamemode);

  • layout isn't a layout id within that gamemode (unknown-layout).

On success, gives the player one hotbar item per component id the layout's components list allows (dropping any that don't fit in the first 9 slots) and sends session-created.

/re set <component> [id]

Completion: @components (registered component ids).

Places component at the player's current location and orientation, as if the player had right-clicked there with that component's tool. Fails if there's no active session (no-active-session), the component isn't in the active layout's components list (unsupported-component), or the component requires-id and no id was supplied (component-requires-id). Two-click (cuboid) primitives cannot be placed this way in a single call — placing one still requires the click flow to supply both corners.

/re cancel

Ends the active session without saving: removes the session's hotbar items, clears its render, and sends session-cancelled. Fails with no-active-session if there is none.

/re load <blueprint>

Completion: @roomBlueprints (loaded blueprint names, resolved via RoomBlueprintContextResolver).

Fails with already-active-session if the player already has a session. Otherwise offsets the blueprint's components to the player's current location, opens a session pre-populated with them, re-gives the hotbar items, pastes the blueprint's schematic at the player's location via FastAsyncWorldEdit, and draws the render for every restored component. If the layout referenced by the blueprint's gamemode/layout no longer exists, falls back to searching every gamemode for a layout with that id (for blueprints saved before the gamemode field existed) and fails with unknown-layout if none is found.

/re save

Fails with no-active-session if there is no session, or invalid-session if the session's layout has any required component type not yet placed, or if its bounds-component (bounding_box by default) isn't present as a cuboid. On success: removes the hotbar items, exports the schematic and blueprint YAML (see Configuration: room blueprints), sends session-saved, ends the render, and clears the session.

/re items

Re-gives the active session's hotbar tool items and sends items-restored. Fails with no-active-session if there is no active session.

/re undo

Removes the single most recently placed component (tracked per player; placing a new component after an undo overwrites what "most recent" points to — there is no multi-level undo stack). Fails with no-active-session if there's no session. If nothing has been placed since the session started or the last undo, sends a plain "Nothing to undo." chat message (not an EditorMessages key). On success, sends "Undid placement of <Display Name>.", removes the component's render, and plays a particle/sound cue.

/re reload

Open to anyone holding roomeditor.command (console included — the handler takes CommandSender, not Player). Calls AstralRoomEditor#loadConfiguration(), which reloads messages.yml and re-runs ComponentService#load()/LayoutService#load()/SchematicService#load()/BlueprintService#load(). Sends plain (non-EditorMessages) chat feedback and logs the exception on failure — reload failures do not throw a CommandException.

Permission summary

Node

Grants

roomeditor.command

All /roomeditor (/re) subcommands.

Last modified: 25 July 2026