B
BlackSpigot Guides
Guest
Separate the model from pack delivery
Start with the working workshop_bot import from the Model Engine 4 lesson. A successful server import and a successful client download are different checkpoints. Model Engine generates the assets; its import documentation states that it does not send the pack to players for you.
1. Prove the local pack first
After importing the bbmodel, read the generator output and resolve model errors. Use the generated resource pack for your installed Model Engine version. If ZIP generation is disabled, use its documented generator setting or your existing pack pipeline. Inside the finished ZIP, check that pack.mcmeta and assets are at the pack root, not wrapped inside another directory.
Apply that ZIP locally in a test client on the Minecraft version you intend to support. Spawn a fresh test mob. Confirm geometry, texture, idle animation and interaction. If this local test fails, fix the model or generated assets before changing hosting settings. The generator configuration reference describes pack generation options.
2. Deliver the exact file
If a pack-management plugin already owns pack delivery, use that workflow. Combine assets through its documented integration; do not overwrite an existing models folder with a second pack and assume both sets of item definitions survived.
For server.properties delivery, host the final ZIP at a stable HTTPS URL that downloads the file without a login or a sharing-page redirect. Set resource-pack to that URL and resource-pack-sha1 to the SHA-1 of the exact hosted ZIP. On Windows, calculate it with:
On a system with sha1sum:
Copy the hash value only, without the filename or spaces. Keep require-resource-pack=false for the initial acceptance test. Setting it to true requires players to accept the pack and prevents clients without it from joining. See Paper’s server.properties reference for these settings.
3. Check the player path
Restart the development server after editing server.properties. Join using a client that has not manually enabled your local test ZIP. Accept the server pack, wait for it to finish loading, then spawn a fresh test model. A test with your local pack still enabled can hide a broken server URL.
Download the hosted ZIP separately and compare its hash to your intended build. If it differs, correct the upload or URL before changing the model. When publishing an updated ZIP, update the delivery configuration/hash together and reconnect to test that version. Never label a new model build successful just because an old cached pack still renders the previous model.
4. Record a small acceptance test
Start with the working workshop_bot import from the Model Engine 4 lesson. A successful server import and a successful client download are different checkpoints. Model Engine generates the assets; its import documentation states that it does not send the pack to players for you.
1. Prove the local pack first
After importing the bbmodel, read the generator output and resolve model errors. Use the generated resource pack for your installed Model Engine version. If ZIP generation is disabled, use its documented generator setting or your existing pack pipeline. Inside the finished ZIP, check that pack.mcmeta and assets are at the pack root, not wrapped inside another directory.
Apply that ZIP locally in a test client on the Minecraft version you intend to support. Spawn a fresh test mob. Confirm geometry, texture, idle animation and interaction. If this local test fails, fix the model or generated assets before changing hosting settings. The generator configuration reference describes pack generation options.
2. Deliver the exact file
If a pack-management plugin already owns pack delivery, use that workflow. Combine assets through its documented integration; do not overwrite an existing models folder with a second pack and assume both sets of item definitions survived.
For server.properties delivery, host the final ZIP at a stable HTTPS URL that downloads the file without a login or a sharing-page redirect. Set resource-pack to that URL and resource-pack-sha1 to the SHA-1 of the exact hosted ZIP. On Windows, calculate it with:
Code:
Get-FileHash .\pack.zip -Algorithm SHA1
Bash:
sha1sum pack.zip
3. Check the player path
Restart the development server after editing server.properties. Join using a client that has not manually enabled your local test ZIP. Accept the server pack, wait for it to finish loading, then spawn a fresh test model. A test with your local pack still enabled can hide a broken server URL.
Download the hosted ZIP separately and compare its hash to your intended build. If it differs, correct the upload or URL before changing the model. When publishing an updated ZIP, update the delivery configuration/hash together and reconnect to test that version. Never label a new model build successful just because an old cached pack still renders the previous model.
4. Record a small acceptance test
- Local ZIP works on the intended client version.
- Hosted download is the same ZIP, with the expected hash.
- A clean client accepts the server pack and sees the new model.
- Textures, animations and interactions work on a fresh spawn.
- The previous working ZIP and configuration are retained for rollback.
