FreeMinecraftModels Commands
registerCraftingRecipes defaults to true in config.yml. Set it to false and restart for a purchase-only economy: valid enabled entries remain in the shop catalog but are removed from Bukkit crafting and the player /fmm craftable-items menu. Crafting instructions below require it to be true.
Use /freeminecraftmodels or /fmm.
Setup and Content Management
| Command | Purpose |
|---|---|
/fmm | Opens the craftable items menu for players (see Craftable Items Menu below) |
/fmm admin | Opens the admin content browser — browse installed packs, folders, models, and custom items (permission: freeminecraftmodels.admin) |
/fmm setup | Opens the player-only content-management / first-time setup menu (the command players are pointed at on first boot) |
/fmm recommendedplugins | Shows companion plugins that pair well with FreeMinecraftModels (opens a catalog menu for players, prints a list for console) |
/fmm downloadall | Downloads the latest plugin update and all available official content. If content changed, FMM reloads to apply it. The downloaded plugin jar takes effect after a restart, after /fmm applypluginupdate, or as set by nightbreak.applyPluginUpdatesWithoutRestart. If the plugin-update step fails for lack of a Nightbreak token or on an auth failure, the content step is skipped entirely |
/fmm downloadallcontent | Downloads all available official content (content only, no plugin jar update) and reloads if at least one package changed |
/fmm updatecontent | Downloads updates for outdated official content and reloads if at least one package changed (alias: /fmm updateallcontent) |
/fmm downloadpluginupdate | Downloads the latest plugin jar update only. It takes effect after the next restart unless you run /fmm applypluginupdate or set nightbreak.applyPluginUpdatesWithoutRestart |
/fmm applypluginupdate | Applies a downloaded plugin update without restarting the server. FMM and every enabled MagmaGuy plugin that depends or soft-depends on it are disabled, the jar is replaced, and they are loaded and enabled again. Refused when no newer update is waiting or when a plugin by another author depends on FMM. If the new jar fails to enable, the previous jar is loaded again and the update stays staged for the next restart. Accepts players and console (permission: freeminecraftmodels.*) |
/fmm forcereinstallcontent <package|all> | Repair command — re-downloads content you already have, even when the version numbers say it is up to date. Tab-completes all plus every Nightbreak package slug. all covers every package detected as downloaded; if a pack's files are completely missing, name its slug directly instead. Reloads afterwards (permission: freeminecraftmodels.*) |
/fmm reload | Imports and validates authored items, enchantments and prop recipes, then fully reinitializes configs, recipes, models and pack output on success. Validation can reject the reload while leaving the current catalog active |
/fmm version | Shows the plugin version (no permission required -- anyone can run this) |
/fmm stats | Shows loaded-model statistics |
Shared Nightbreak Commands
These are registered by MagmaCore rather than by FreeMinecraftModels itself, so they are top-level commands, not /fmm subcommands.
| Command | Purpose |
|---|---|
/nightbreaklogin [token] | Links this server to your Nightbreak account, unlocking official content downloads and plugin updates. Without a token it prints a nightbreak.io link to approve; with one it saves that token (permission: nightbreak.login, default: op). Registered once per server — whichever Nightbreak plugin loads first owns it |
/nightbreaklogout | Clears the stored Nightbreak account token from this server (permission: nightbreak.login, default: op). Accepts both players and console |
/nightbreak plugins | Shows the Nightbreak plugin catalog, as a menu for players and as a chat list in the console (permission: nightbreak.plugins, default: op). Registered once per server, like /nightbreaklogin. See Nightbreak setup and content management |
/freeminecraftmodelschangelog [dismiss|disable] | Shows unread FreeMinecraftModels release notes (plugin releases and tracked content packages). dismiss marks the currently shown notes as read; disable permanently hides changelog reminders for you. Player-only and admin-only — a player needs freeminecraftmodels.*, one of the setup/admin permissions, or OP. If another plugin already owns the /freeminecraftmodelschangelog label, the command registers under a namespaced fallback such as /freeminecraftmodels:freeminecraftmodelschangelog |
Admins who have unread release notes are nudged in chat on join with a clickable [VIEW CHANGELOG] prompt; the digest view offers Dismiss These Updates and Never Show Changelogs buttons that do the same thing as the two subcommands. Per-player read state lives in plugins/FreeMinecraftModels/nightbreak-changelogs.yml.
Model Spawning and Placement
| Command | Purpose |
|---|---|
/fmm spawn static <id> | Spawns a static model above the aimed block, using a block ray trace up to 300 blocks |
/fmm spawn dynamic <id> | Spawns a model on a hidden pig above the aimed block, using the same 300-block trace |
/fmm spawn prop <id> | Spawns a persistent prop at the player's current position. Refuses with A prop of that model already exists on this block. if a prop of the same model is already loaded on that block |
/fmm itemify <id> <material> | Creates a placement item using the named Bukkit material. Use its uppercase enum name, such as PAPER. The item takes the name and lore from the model's prop .yml when set. This does not create an authored held item |
/fmm mount <id> [scale] | Spawns an experimental rideable mount: a tamed, saddled horse wearing the model, which you ride and steer. The optional scale, above 0 and up to 16, sizes the horse and its model; tab completion offers 1.0, 2.0 and 3.0. See rideable custom models |
/fmm giveitem <item> | Gives a registered authored FMM item to the player; item IDs are matched case-insensitively (permission: freeminecraftmodels.admin) |
/fmm craftify <id> | Opens an interactive recipe builder — place ingredients in a 3×3 grid then click the output to save a crafting recipe for that prop |
Direct spawn commands do not run the placement item's protection and free-space checks. Keep an inventory slot free for itemify and giveitem: these command handlers ignore inventory overflow instead of dropping leftovers.
Player Disguises
| Command | Purpose |
|---|---|
/fmm disguise <modelID> [player] | Disguises a player as a loaded model. Without a target argument, disguises the sender. With a target, requires freeminecraftmodels.disguise.self + freeminecraftmodels.disguise.others and works from console |
/fmm undisguise [player] | Removes the disguise. Without a target, undisguises the sender. With a target, requires freeminecraftmodels.disguise.self + freeminecraftmodels.disguise.others and works from console |
/fmm disguiselist | Lists currently disguised players and the model each is disguised as (permission: freeminecraftmodels.disguise.others) |
Disguise behavior:
- Disguising replaces any previous disguise on that player cleanly.
- Disguised players are hidden from other players and their equipment is hidden from viewers. If the disguise added the invisibility effect, it restores that effect after milk, effect clearing and respawn. An invisibility effect that already existed before the disguise is not owned or restored by this mechanism.
- Third-party plugins can drive disguises via the public
DisguiseAPI(see API & Developer Guide).
Pets
| Command | Purpose |
|---|---|
/fmm pets | Opens your pets menu, where you bring pets along or send them home (permission: freeminecraftmodels.pets) |
/fmm petadmin mode [creatures|cosmetic] | Shows the pet mode, or switches it and saves it to pets.yml (permission: freeminecraftmodels.pets.admin) |
/fmm petadmin list | Lists the loaded pet species with their file, model, body, taming food and breeding food (permission: freeminecraftmodels.pets.admin) |
/fmm petadmin spawn <species> | Spawns a wild pet of the species over the block you look at, up to 12 blocks away. Works only in CREATURES mode (permission: freeminecraftmodels.pets.admin) |
/fmm petadmin give <species> | Adds an adult of the species to your own pet collection (permission: freeminecraftmodels.pets.admin) |
/fmm petmigrate [species] | Sends a night migration flock over you now, whatever the time or the sky (permission: freeminecraftmodels.pets.admin) |
See Pets for species files, pets.yml and the two pet modes.
Furniture Shop
| Command | Purpose |
|---|---|
/fmm shop | Opens the optional Vault-backed furniture shop where players can purchase craftable props with in-game currency (permission: freeminecraftmodels.shop, default: true) |
The shop is disabled by default and only registers itself when:
enabled: trueinshop_config.yml- Vault is installed
- A Vault-compatible economy provider is registered
When any of these are missing, /fmm shop is unregistered. An enabled shop with missing Vault/economy support logs a warning. A registered handler can return the configured disabled message if the shop config or cached hook reports disabled; it does not continuously detect provider removal. See Configuration for the shop config keys and per-recipe shopEnabled / shopPrice fields.
Utilities
| Command | Purpose |
|---|---|
/fmm hitbox visualize [duration] | Visualizes hitboxes of models less than 10 blocks away in the same world, and shows their underlying entities. Duration is in ticks and defaults to 100 (five seconds); nonpositive or non-numeric values use 100, values above 1200 use 1200 |
/fmm location | Reports registered dungeon detectors and protection providers and queries is_in_dungeon / is_protected at your position. These location predicates are not the player-aware prop-placement permission check (permission: freeminecraftmodels.*) |
/fmm debug <bedrock|props> [on|off] | Toggles [FMM-BedrockDebug] logging or the STACKED PROPS DETECTED scan for prop pairs within 0.1 blocks during cleanup sweeps. Without a state, reports whether that flag is on. Also accepts true/enable/enabled and false/disable/disabled. Both accept players and console (permission: freeminecraftmodels.*) |
/fmm packetdebug [ticks] | Samples modeled-entity packet traffic for the given number of model-clock ticks, default 1, clamped to 1–200 (invalid integers use 1). Reports logical and delivered packets/tick, viewer fan-out, the worst player/tick, packet types and heaviest viewers. Tab-completes 1, 5, 20, 60. Run it in the affected area. Counts are exact for the instrumented traffic; byte figures are estimates. Only one sample runs at a time. Warns after 400 server ticks if no new sample arrives. Accepts players and console (permission: freeminecraftmodels.*) |
/fmm filmic [on|off] | Temporarily turns filmic mode on or off for recording videos with ReplayMod. Every player then receives every loaded model in their loaded chunks, even out of sight, and the models keep animating. Not recommended outside of recording: it costs a lot of bandwidth and server performance. It never edits config.yml; the setting lasts until the server restarts, or until filmicMode in config.yml is changed and FMM reloads. Without an argument, reports the current state and whether it comes from the command or config.yml. Accepts players and console (permission: freeminecraftmodels.*) |
/fmm boneglide [ticks] | Temporarily sets riddenBoneInterpolationTicks, the number of ticks Java clients take to glide a riding model bone to its next pose. 0 snaps. Accepts 0 to 59 and tab-completes 0 to 3. Without an argument, reports the current value. It never edits config.yml; the value from config.yml returns when FMM reloads. Accepts players and console (permission: freeminecraftmodels.*) |
/fmm deleteall [radius] | Removes all currently loaded modeled entities across worlds, permanently removing loaded props. Unloaded props are not scanned. A positive integer radius is player-only and limits removal to the player's world and distance |
Debug flags are not saved to disk, but /fmm reload does not reset them. Turn logging off explicitly after collecting evidence; a fresh server start initializes both flags to off.
Prop Placement Behavior
When a player right-clicks with a model placement item from itemify, crafting or the shop, the following applies. Authored held items are excluded from this handler.
- Item consumption: One item is consumed after successful placement unless the player is in Creative mode.
- Target: Clicking a block uses the interaction event's block and face. Clicking air traces up to five blocks. Free-form props use the face center; voxelized props use the adjacent block and a grid-aligned footprint
- Rotation: Props face toward the player's position relative to the placement point, not simply the player's viewing yaw. Free-form placement snaps to 10-degree steps; voxelized placement uses 90-degree steps
- One prop per model per block: Placement is refused with
A prop of that model already exists on this block.when a prop of the same model is already loaded on that block. The item is not consumed on a refused placement. - Main hand and cooldown: Only main-hand interactions place props. Attempts have a 500 ms cooldown, including attempts that later fail validation
- Protection and space: The configured protection query checks the adjacent cell. Voxelized props then check free space and protection across their rotated footprint. The bypass permission skips protection queries. See Configuration for the integration and collision-coverage limits
- Duplicate cleanup: At startup, on entity-load events and before direct prop spawning, FMM scans for prop stands sharing a model and block, keeps one and removes the rest. Removals are logged as
[FMM Props] Removed N duplicate prop armor stand(s) ....
Craftable Items Menu
Running /fmm with no arguments opens an inventory menu for players showing loaded model entries with actually registered crafting recipes.
- Each item in the menu represents a craftable FMM item.
- Clicking an item opens a detail submenu that displays the spatial 3x3 crafting grid, an arrow, and the output item — showing the player exactly how to craft it in a crafting table.
- Requires the
freeminecraftmodels.menupermission (default:true, available to all players).
Admin Content Browser
Running /fmm admin opens an inventory menu for server administrators to browse:
- Installed content packs
- Folders and individual models
- Custom items (models with
material:set)
Requires the freeminecraftmodels.admin permission (default: op).
Recipe Builder
The /fmm craftify command lets you create a vanilla crafting-table recipe for any prop model.
- Run
/fmm craftify <model_id>to open the recipe builder UI. - A custom inventory opens with a 3×3 crafting grid and a pre-filled output item.
- Place ingredients from your inventory into the grid in whatever pattern you want.
- Click the output item (the prop's paper item) to save the recipe.
- Successful saving emits particles, a sound and a success message. If saving or registration fails, the menu stays open, ingredients remain in the grid, and the player receives an error. FMM attempts to restore the previous registered recipe; check the console if restoration also fails.
- The recipe is saved to
plugins/FreeMinecraftModels/recipes/<model_id>.yml; Bukkit registration depends onregisterCraftingRecipes. - If registration succeeds and crafting is enabled, players can craft the paper prop item in a crafting table.
- Press Escape before saving to cancel and return grid ingredients, dropping overflow at your feet. Saving instead clears the entire ingredient stacks from the grid; stack counts and item metadata are not part of the recipe, only material types and their pattern.
- Running craftify again for the same model replaces the previous recipe and restores its enabled/shop fields to defaults, including the default price.
- Recipes persist across server restarts and reloads.
Recipe File Format
isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
| Field | Required | Notes |
|---|---|---|
isEnabled | no (default true) | Set to false to unregister the recipe without deleting the file |
model_id | yes | The model the crafted paper item places. A bow/crossbow state suffix resolves to the base model ID only when that base has a registered display model |
shape | yes | Up to three rows of up to three characters. A space means "empty slot" |
ingredients | yes | Map of a single shape character to a Bukkit material name. Unrecognized materials are dropped silently |
shopEnabled | no (default true) | Whether the recipe is listed in /fmm shop |
shopPrice | no (default defaultPrice from shop_config.yml) | Vault currency cost in the shop |
The Bukkit recipe key is freeminecraftmodels:prop_recipe_<model_id>, and the output is always the model's paper placement item, not an authored held item with its material and enchantments. Re-running /fmm craftify replaces the file and attempts registration under the same key when crafting is enabled.
FMM reads every .yml under recipes/, including subfolders, and loads them as one catalog. Each model_id can have only one enabled recipe file. A second enabled file for the same model_id, or a file with a YAML syntax error, rejects /fmm reload with the current recipes kept and tells the sender to check the console. At startup the same problem rejects only the recipe catalog. FMM finishes starting with no prop recipes or furniture shop entries until you fix the file and run /fmm reload. Check the console for Prop recipe catalog rejected, Duplicate recipe model or Cannot prepare prop recipes.
Permissions
Registered in plugin.yml
| Permission | Default | Description |
|---|---|---|
freeminecraftmodels.* | OP | Wildcard that grants freeminecraftmodels.admin, freeminecraftmodels.deleteall, freeminecraftmodels.disguise.self, freeminecraftmodels.disguise.others, freeminecraftmodels.bypassregionprotection, and freeminecraftmodels.pets.admin. The wildcard string is also the literal permission required by /fmm reload, /fmm stats, /fmm spawn, /fmm itemify, /fmm craftify, /fmm mount, /fmm hitbox visualize, /fmm debug, /fmm packetdebug, /fmm filmic, /fmm boneglide, /fmm location, /fmm setup, /fmm initialize, /fmm recommendedplugins, /fmm downloadall, /fmm downloadallcontent, /fmm updatecontent, /fmm downloadpluginupdate, /fmm applypluginupdate, and /fmm forcereinstallcontent |
freeminecraftmodels.admin | OP | Access to /fmm admin (the admin content browser) and /fmm giveitem |
freeminecraftmodels.deleteall | OP | Child of the wildcard; access to /fmm deleteall |
freeminecraftmodels.disguise.self | OP | Allows /fmm disguise and /fmm undisguise targeting only the sender |
freeminecraftmodels.disguise.others | OP | Allows /fmm disguise <model> <player>, /fmm undisguise <player>, and /fmm disguiselist |
freeminecraftmodels.bypassregionprotection | OP | Bypasses FMM's prop placement and interaction protection queries, including preventPropPlacementInProtectedRegions. Free-space checks still apply |
freeminecraftmodels.menu | true | Access to /fmm craftable items menu (available to all players) |
freeminecraftmodels.shop | true | Access to /fmm shop (available to all players when the shop is enabled) |
Targeted disguise and undisguise commands require both freeminecraftmodels.disguise.self and freeminecraftmodels.disguise.others. disguiselist requires only .others.
Pet permissions
| Permission | Default | Description |
|---|---|---|
freeminecraftmodels.pets | true | Access to /fmm pets (available to all players) |
freeminecraftmodels.pets.admin | OP | Child of the wildcard; access to /fmm petadmin and /fmm petmigrate |
Registered by MagmaCore
| Permission | Default | Description |
|---|---|---|
nightbreak.login | OP | Required by the shared /nightbreaklogin and /nightbreaklogout commands. Registered once per server by whichever Nightbreak plugin loads first |
nightbreak.plugins | OP | Required by the shared /nightbreak plugins command. Registered once per server by whichever Nightbreak plugin loads first |
Sender notes
initialize,setup,spawn,itemify,mount,giveitem,craftify,hitbox visualize,location,admin,shop,pets,petadmin, andpetmigrateare player-only commands./freeminecraftmodelschangelogis player-only too.reload,stats,recommendedplugins,downloadall,downloadallcontent,updatecontent,downloadpluginupdate,applypluginupdate,forcereinstallcontent,packetdebug,debug,filmic,boneglide,deleteall,/nightbreaklogin,/nightbreaklogout, and/nightbreak pluginsaccept both players and console (adeleteallradius is player-only).disguiseandundisguiseaccept a target player and may be run from console as long as a target is supplied.versionhas no permission restriction and can be run by anyone (players or console)./fmm initializeopens the first-time setup menu for players withfreeminecraftmodels.*. Use/fmm setupfor day-to-day content management.