# Commands Everything is under `/cmb`, registered under CMB's own name so it never collides with CraftEngine's `/ce`. | command | permission | what it does | |---|---|---| | `/cmb` | `cmb.item` | opens the CraftEngine item browser | | `/cmb item browser [player]` | `cmb.item` | CraftEngine's item browser, for someone else | | `/cmb item give [amount]` | `cmb.item` | give a CMB item | | `/cmb reload all` | `cmb.admin` | re-read config, reinstall the pack, have CraftEngine rebuild | | `/cmb reload tools` | `cmb.admin` | re-read only the `tools` section. **No pack rebuild** | | `/cmb setupmsg` | `cmb.admin` | show the setup summary again | | `/cmb glow [#category] [radius]` | `cmb.glow` | outline CMB pieces around you | | `/cmb kill #category [radius]` | `cmb.kill` | remove CMB pieces around you, without drops | | `/cmb debug` | `cmb.debug` | diagnostics | ## Categories `glow` and `kill` take a category, or `#all`: ``` blocks pillars stairs slabs walls fences panes vertical_slabs horizontal_stairs crops ``` Radius defaults to `tools.default-radius` and is capped by `tools.max-radius`. ## `/cmb glow` details - No arguments outlines every category at the default radius; running it again clears. - Outlines are temporary — they are display entities, not persistent. - Outline colours are per category, set under `tools.glow-colors`. - `tools.block-outline` chooses what the outline is drawn with: `NONE` for the glow alone, or a block to see inside it, e.g. `white_stained_glass_pane[north=true,south=true]`. ## `/cmb reload all` vs `/cmb reload tools` Use `reload tools` after changing glow colours, the outline block, or either radius. It re-reads the file and does **not** touch the pack, so no player re-downloads a resource pack to change a glow colour. It clears currently-visible outlines, because a glow's colour is baked in when it is created — re-run `/cmb glow` to see the new colour. Use `reload all` for everything else. That reinstalls the pack and triggers CraftEngine's own rebuild. ## Folia note Both reload paths hop to the global region thread before dispatching a console command. That is required on Folia and Canvas, where a player-typed command runs on a region thread and `dispatchCommand` from there is rejected. On Paper it runs inline.