Back to Docs

SMCModelEngine

Let Bedrock players see your ModelEngine custom mobs.

If you use ModelEngine to add custom mob models to your server, Bedrock players connecting through Geyser can't see them — they just see the vanilla mob underneath.

SMCModelEngine is a Geyser extension made by SayMC that bridges ModelEngine and Geyser. It reads your .bbmodel blueprints and converts them so Bedrock players see the same custom mobs as Java players.

It runs as a Geyser extension alongside a small set of companion plugins and extensions — no extra tools needed.

Requirements

Setup differs depending on whether Geyser is running on your Paper server directly, or on a Velocity proxy. Follow the column that matches your setup.

Standalone — Geyser-Spigot

Plugins
  • ModelEngine
  • GeyserModelEngine
  • GeyserUtils (Spigot)
  • Geyser-Spigot
  • Floodgate
Geyser Extensions
  • smc_modelengine
  • geyserutils-geyser
  • GeyserDisplayEntity
Geyser Packs
  • GeyserDisplayEntity.mcpack

Proxy — Velocity

Backend Paper Plugins
  • ModelEngine
  • GeyserModelEngine
  • GeyserUtils (Spigot)
  • Floodgate
Proxy Plugins
  • Geyser-Velocity
  • GeyserUtils (Velocity)
  • Floodgate
Proxy Geyser Extensions
  • smc_modelengine
  • geyserutils-geyser
  • GeyserDisplayEntity
Proxy Geyser Packs
  • GeyserDisplayEntity.mcpack
Note: Extensions go in the Geyser extensions folder. Packs go in the Geyser packs folder. These are inside the Geyser plugin data folder — not the server root.

Commands

SMCModelEngine provides a small set of commands to run conversions and get help.

/smc_modelengine help

Shows all available SMCModelEngine commands in chat.

/smc_modelengine convert

Starts the ModelEngine conversion. Reads your blueprints and converts them so Bedrock players can see your custom mob models.

Configuration

SMCModelEngine is configured via its own config file in the Geyser extensions folder. The two key options are enabled and blueprints_path.

enabled

Enables or disables the extension.

  • true — extension is active
  • false — extension is disabled

blueprints_path

Path to your ModelEngine blueprints folder. On a standalone server this can be a relative path. On a proxy setup, this must be an absolute path pointing to the blueprints folder on your backend Paper server, since Geyser runs on the proxy and can't resolve relative paths to the backend.

Standalone (Geyser-Spigot)

{
  "enabled": true,
  "blueprints_path": "plugins/ModelEngine/blueprints"
}

Proxy (Velocity)

{
  "enabled": true,
  "blueprints_path": "/path/to/paper/plugins/ModelEngine/blueprints"
}
Tip: Always use the full absolute path for blueprints_path — even on standalone setups. It avoids any ambiguity about where the extension looks for your blueprints.

Tips & Best Practices

  • Use a full absolute path. Even on a standalone server, pointing blueprints_path to the full path is safer and avoids issues if the working directory ever changes.
  • Run the conversion after any model changes. If you add or update blueprints in ModelEngine, re-run /smc_modelengine convert to keep the Bedrock output in sync.
  • Fully restart after setup changes. If you add or move extensions or packs, do a full server/proxy restart — a reload is not always enough for Geyser to pick up new extensions.
  • On a proxy, the absolute path must point to the backend Paper server. Geyser runs on the proxy, so a relative path will look in the wrong place. Always use the full path to the backend's plugins/ModelEngine/blueprints folder.
  • Make sure Floodgate is installed. Both the backend and proxy need Floodgate for Bedrock player authentication to work correctly.

FAQ

Usually one of these:
  • GeyserDisplayEntity.mcpack isn't in the Geyser packs folder.
  • One or more extensions are missing from the Geyser extensions folder.
  • blueprints_path is pointing to the wrong location.
  • The conversion hasn't been run yet — run /smc_modelengine convert.
  • The server wasn't fully restarted after setup.
No — only when you add or change blueprints in ModelEngine. If your models haven't changed, you don't need to re-run the conversion.
Use the full absolute path to the ModelEngine blueprints folder on your backend Paper server. For example: /home/container/paper/plugins/ModelEngine/blueprints. A relative path won't work on a proxy because the extension runs inside Geyser on the proxy, not on Paper.
Extensions go in the extensions folder inside your Geyser data folder (e.g. plugins/Geyser-Spigot/extensions/ or plugins/Geyser-Velocity/extensions/). Packs go in the packs folder in the same Geyser data folder. On a proxy setup, both go on the proxy — not on the backend Paper server.
No. SMCModelEngine only affects what Bedrock players see through Geyser. Java players continue to use ModelEngine normally and are completely unaffected.

Support

Join the Discord for support and development builds.