Usage
ResourcePackServer hosts .zip resource pack files over HTTP. Minecraft clients can download packs via the resource-pack field in server.properties.
Quick Start
1. Prepare your packs
Place .zip resource pack files in a directory (default: ./resource_packs):
resource_packs/
├── vanilla_tweaks.zip
├── xray_ultimate.zip
└── custom_sounds.zip
2. Start the server
python -m resource_pack_server --port 8080 --pack-dir ./resource_packs
3. Browse the pack list
Open http://localhost:8080/ in a browser. You’ll see a table of all packs with their SHA1 hashes.
4. Configure Minecraft
Edit server.properties:
resource-pack=http://yourserver:8080/merged.zip
resource-pack-sha1=abc123... (copy from the web page)
The merged pack combines all your packs into one zip. See Configuration for merge options.
Standalone CLI Arguments
python -m resource_pack_server [OPTIONS]
Argument |
Default |
Description |
|---|---|---|
|
|
IP address to bind |
|
|
Port to listen on |
|
|
Directory containing |
|
(empty) |
Public URL prefix for external access |
|
|
Enable/disable merged pack generation |
|
(empty) |
Pack filenames in merge priority order (highest first) |
|
|
Enable debug logging |
|
Show version and exit |
Merged Pack
Minecraft only accepts one resource pack URL. ResourcePackServer solves this by merging multiple packs into a single merged.zip, available at /merged.zip.
Packs are merged in priority order (configurable via
--priorityor the config file)Higher-priority packs override lower-priority ones on file-level
The
pack.mcmetadescription combines all pack descriptionsThe
pack.pngicon is taken from the highest-priority pack that has oneThe merged pack is cached and automatically regenerated when any source pack changes
Example with priority:
python -m resource_pack_server \
--port 8080 \
--priority "base_pack.zip" "addon.zip" "extra_sounds.zip"
HTTP Endpoints
Endpoint |
Description |
|---|---|
|
HTML page listing all packs and the merged pack |
|
Download the merged resource pack |
|
Download an individual pack |
Each .zip response includes these headers:
Content-Type: application/zipX-Resource-Pack-SHA1: <sha1>— the SHA1 hash Minecraft needsContent-Disposition: attachmentCache-Control: public, max-age=3600