Resource Pack Configuration
CuriosPaper includes a fully automatic resource pack system that generates, merges, and serves a custom pack containing:
- Slot icons (
item-model) - Textures and model files shipped by CuriosPaper
- Assets registered by other plugins using the API
- Your own custom additions (if placed in the correct folder)
This page explains how the resource pack system works, how to configure the host IP/port, and how to safely integrate your own models.
📦 What the Resource Pack Does
CuriosPaper’s resource pack is responsible for all visual elements:
✔ Slot icons
✔ Per-slot item models
✔ Plugin-registered asset overrides
✔ Patterns and GUI textures (if provided)
Players must download the pack for your slot icons and models to appear correctly.
The pack is generated into:
plugins/CuriosPaper/resource-pack-build/
and served as:
plugins/CuriosPaper/resource-pack.zip
⚙ Resource Pack Config Section
You will find this section at the top of config.yml:
resource-pack:
enabled: true
port: 8080
host-ip: "localhost"
base-material: "PAPER"
Below is a detailed explanation of each option.
🟢 enabled
Controls whether CuriosPaper builds and serves the resource pack.
enabled: true
If disabled:
- No pack will be generated
- Slot icons will fall back to vanilla items
- Any
item-model:values will not work
You should keep this enabled unless you are manually providing your own pack.
🔌 port
Defines the port used by CuriosPaper’s built-in HTTP server.
port: 8080
Important notes:
- You MUST use a port different from your server’s main port. Example: if your server runs on 25565 → use 8080, 9090, etc.
- If the port is blocked by a firewall, players won’t receive the pack.
- If the port is in use by another process → startup will warn you.
Example safe ports:
- 8080
- 8081
- 9000
- 1337
🌐 host-ip
This is the IP or hostname players download the pack from.
host-ip: "localhost"
Change this to match your server’s public address:
Examples:
host-ip: "your.server.ip.here"
host-ip: "play.example.net"
host-ip: "mc.myserver.com"
If set incorrectly:
Players will get a “resource pack failed to download” message.
Tip: Use your domain whenever possible.
🧱 base-material
Defines which Minecraft item is used as the base material for slot icons.
base-material: "PAPER"
This maps to the item used to display custom item-model textures.
Recommended options:
PAPER(simple, clean, safe)LEATHER_HORSE_ARMOR(good for 3D slot icons)FEATHER(light decorative base)TOTEM_OF_UNDYING(stylized icons)
Changing this allows for completely different visual styles.
🗂 Resource Pack Structure
CuriosPaper builds a complete pack using:
resource-pack-build/
├─ assets/
│ ├─ curiospaper/
│ │ └─ models/item/...
│ ├─ <other plugins>/
│ │ └─ models/item/...
│ └─ minecraft/
│ └─ textures/... (if overridden)
└─ pack.mcmeta
CuriosPaper automatically:
- Extracts its internal assets
- Merges any registered plugin assets
- Rebuilds the pack when needed
- Serves the ZIP via embedded HTTP
You never need to manually zip or host anything.
🔧 How Item Models Work
Each slot type has an item-model value:
item-model: "curiospaper:back_slot"
This corresponds to a JSON model file inside:
assets/curiospaper/models/item/back_slot.json
CuriosPaper injects these into the pack.
If you want your own custom model:
Place your model file in:
src/main/resources/resources/assets/<namespace>/models/item/
Then reference it in config:
item-model: "myplugin:custom_back_slot"
CuriosPaper will detect and merge this automatically.
🔌 How Other Plugins Register Pack Assets
If another plugin wants to add models, textures, or icons to CuriosPaper’s resource pack, they can use the API:
File root = curiosApi.registerResourcePackAssetsFromJar(this);
They just need to include a directory inside their JAR:
resources/assets/<namespace>/...
CuriosPaper handles:
- Extraction
- Merging
- Cleanup
- Repackaging
🧪 Testing Your Setup
Check the pack builds:
Start the server → look for:
[CuriosPaper] Resource pack built successfully.
Check serving:
Open this in a browser:
http://<host-ip>:<port>/resource-pack.zip
If the file downloads → pack hosting works.
Check client behavior:
Join the server with resource packs enabled:
- If icons appear → everything is correct.
- If icons appear as missing textures →
item-modelpaths are wrong. - If pack fails to download →
host-iporportis wrong.
✔ Common Issues & Fixes
“Resource pack failed to download”
- Wrong
host-ip - Port blocked by firewall
- Wrong IP behind proxy
- Wrong port
“Icons look like vanilla paper instead of custom icons”
- Pack disabled
- Wrong
item-modelpath - Wrong base-material
- Host IP unreachable
“My plugin’s custom models aren’t showing up”
- Incorrect folder structure
- Wrong namespace
- Forgot to register assets via API
📌 Summary
| Setting | Controls |
|---|---|
enabled | Turns CuriosPaper’s pack system on/off |
port | Web server port for pack hosting |
host-ip | Where clients download the ZIP from |
base-material | Base item used for custom icons |
The resource pack system is one of CuriosPaper’s most powerful features — use it to deliver seamless visual integration for your accessory system.