Skip to main content

FreeMinecraftModels Content Packages

Official FMM content is now exposed as managed Nightbreak packages.

Current Official Packages​

The current plugin defines five premade official packages, mixing prop and item content:

PackTypeConfig filenameFolder nameNightbreak slug
Basic Furniture PackPropsbasic_furniture_packBasic Furniture Packbasic-furniture-pack
BetterStructures Prop PackPropsbetterstructures_prop_packbs prop packbetterstructures-prop-pack
EliteMobs Prop PackPropselitemobs_prop_packem_dungeon_prop_packelitemobs-prop-pack
Craftenmine's Weapons Item PackCustom itemscraftenmines_weapons_item_packfmm_craftenmine_weapons_items_packcraftenmines-weapons-item-pack
Craftenmine Tools Item PackCustom itemscraftenmine_tools_item_packfmm_craftenmine_tools_items_packcraftenmine-tools-item-pack

The config filename names the .yml entry under plugins/FreeMinecraftModels/content_packages/. The folder name identifies the pack's model directory inside models/ or models_disabled/. Prefix matching is configured separately below.

Each package has a local folder name, a Nightbreak slug, a version field, and an enabled/disabled state in content_packages. The two Craftenmine item packs provide held items with material: definitions and namespaced enchantments. Older copies containing equipped-item scripts: need updated content; those definitions are skipped.

What The Setup Menu Manages​

/fmm setup shows package state from local configuration, detected files, and cached Nightbreak information. The menu can distinguish between:

  • installed packages
  • downloaded but currently disabled packages
  • outdated packages
  • packages that require Nightbreak access

The setup menu triggers background version and access refreshes, with a five-minute refresh cooldown. Version checks apply to packages detected as installed. An installed badge means the package is enabled and a managed model entry exists; it does not prove every model loaded or that clients received the resource pack. Check /fmm admin, the console, and client delivery too.

Folder Behavior​

The plugin uses package-state folder moves for enabled and disabled content:

  • enabled model folders live in models/<folderName>
  • disabled model folders live in models_disabled/<folderName>
  • enabled script files live in scripts/
  • disabled script files live in scripts_disabled/

Downloaded content can exist on disk without being active. Install/uninstall moves matching model, script and enchantment entries, saves the enabled state, then requests a reload. These moves are sequential, not an atomic transaction: a move or state-save failure can leave a partial change. Check the console and both folder locations before retrying. Both actions require a managed model entry in their source folder; script-only or enchantment-only files can count as downloaded without making the package installable through that action.

Legacy installs may use Models or Models_disabled. The active model path prefers lowercase models, while the disabled path prefers an existing Models_disabled. See Model Authoring Notes before consolidating case-sensitive directories.

File Prefixes​

Package configs have contentFilePrefixes and scriptFilePrefixes. The five built-in definitions initialize both lists as empty; they do not automatically use folderName as a prefix. Inspect the installed package config for supplied values.

For models and enchantments, FMM selects the exact folderName entry plus root entries whose names start with a contentFilePrefixes value. For scripts it selects root entries matching scriptFilePrefixes, without a separate folder-name match. Prefix matching ignores case and can select files or whole directories; it does not recursively search for matching files inside unrelated directories. Use distinct prefixes and keep referenced files inside the selected entries.

Download and Install Lifecycle​

There are two distinct steps:

  1. Download the package content. Downloads go into plugins/FreeMinecraftModels/imports. A successful managed download saves the enabled state before requesting a reload/import pass.
  2. Keep the package enabled or disabled. The setup menu installs and uninstalls packages by moving their folders between models and models_disabled.

Bulk operations follow the same model:

  • /fmm downloadall downloads the plugin jar update and then every accessible package that is missing or outdated. Content can be applied by FMM's follow-up reload; the plugin jar itself takes effect after a restart or /fmm applypluginupdate
  • /fmm downloadallcontent does the same content sweep without the plugin jar update
  • /fmm updatecontent (alias /fmm updateallcontent) refreshes version/access information and updates packages marked outdated; version checks currently cover installed packages

The bulk sweeps process packages sequentially and report successful downloads/preparation separately from failures. If at least one package completes, they schedule a reload 20 ticks later, even if others failed. No successful packages means no reload; an empty install sweep reports no new content, while an empty update sweep reports no pending updates. A successful download is not proof that the later import, model load, or client delivery succeeded.

Bulk content operations share a guard that blocks a second content run until the first finishes or starts its follow-up reload. They require a linked Nightbreak token and stop on authentication failure. Ordinary package failures are reported while the remaining packages continue. If the initiating player logs out, bulk processing continues with console reporting. Plugin shutdown invalidates that lifecycle's pending download publication and callbacks.

Repairing A Package​

Normal download selection uses detected files and version state, not a file-integrity check. A partially damaged package can still look current and be skipped. /fmm forcereinstallcontent <package|all> re-downloads selected content regardless of version, then requests a reload after successful downloads. This path does not force-enable a disabled package.

  • Tab completion offers all plus every package's Nightbreak slug (basic-furniture-pack, betterstructures-prop-pack, elitemobs-prop-pack, craftenmines-weapons-item-pack, craftenmine-tools-item-pack).
  • all selects packages detected as downloaded, installed, or marked outdated. If no package qualifies, it reports No downloaded content was detected. Specify a package slug directly if its files are completely missing. Name the slug directly for a completely missing pack.
  • An unknown selector reports Unknown Nightbreak content package: <name>.
  • It shares the same overlapping-run guard as the other bulk operations, and requires freeminecraftmodels.*.

Content From Other Packs​

A content pack for any Nightbreak plugin, such as an EliteMobs or BetterStructures pack placed in that plugin's imports folder, can carry FreeMinecraftModels content in a top-level freeminecraftmodels/ folder laid out like plugins/FreeMinecraftModels/. For example, freeminecraftmodels/enchantments/ supplies the freeminecraftmodels: enchantments the pack's items use, and freeminecraftmodels/models/ merges into the models folder FMM reads (lowercase models, or a legacy Models folder when that one exists). Top-level models/ and scripts/ folders in a pack also go to FMM. A top-level enchantments/ folder follows the pack's platform, which pack.meta names (or, without one, the plugin whose imports folder holds the pack): a FreeMinecraftModels pack installs it into FMM, while EliteMobs and BetterStructures packs install it into EliteMobs.

When another plugin's import places files in FMM's folder, FMM runs its imported-content reload afterwards. That reload rebuilds models, items, enchantments, prop scripts, recipes and the resource pack, but does not reread config.yml or shop_config.yml.

Admin Content Browser​

/fmm admin opens an in-game browser of loaded models and registered custom items. It shows:

  • enabled packages with loaded content (with separate prop and item counts)
  • unpackaged model folders (with separate prop and item counts)
  • individual prop models
  • successfully registered custom items

Props use yellow styling and a paper icon. Custom items use their configured material and name, with a purple fallback name. Listing depends on successful item registration, not merely the presence of material: in a file; a rejected item definition is not listed as a working custom item.

Package and folder entries open their content lists. Clicking an individual prop or item adds a copy to the inventory. Custom items include the configured material, enchantments, lore, and fmm_item_id tag; props give paper placement items. Leave inventory space: these admin handlers do not drop overflow. Item-creation errors are reported in chat. Registration and a visible menu entry do not prove correct client rendering.

Enchantment content​

Package activation and deactivation include managed enchantment YAML/Lua alongside models and prop scripts. Enabled content lives under enchantments/; disabled content moves to enchantments_disabled/. Selection uses the folder-name and content-prefix rules above, so keep provider definitions and referenced scripts inside the selected entries. A missing enchantment provider is not replaced by the retired item-script runtime.