Skip to main content

PackStudio Documentation

Everything you need to know about creating custom Minecraft resource packs and datapacks with PackStudio. Whether you're making your first custom item or building a full themed pack, you'll find guides and explanations here.

Getting Started

PackStudio is a browser-based editor for Minecraft Java resource packs and datapacks. You don't need to install any software — everything runs in your browser at mcpack.studio.

What you can make

  • Custom items — Import a Blockbench model and a texture PNG; PackStudio wires up all the JSON files (item model pointers, string-based model selectors, language entries) automatically.
  • Custom paintings — Upload an image; PackStudio resizes it, composites a frame, generates the datapack painting variant, a crafting recipe, and an advancement.
  • Full resource packs — Download a ready-to-use ZIP that drops straight into your Minecraft resourcepacks/ folder.
  • Datapacks — Painting creations also produce a datapack ZIP with crafting recipes.

Do I need an account?

No. You can start creating immediately as a guest — no login required. Your work is auto-saved for up to 30 days. When you're ready to download, you'll be prompted to create a free account (you can skip it). Signing up gives you:

  • • Persistent storage across sessions
  • • A personal list of all your packs
  • • The ability to publish packs with shareable download links

Quick start (3 steps)

  1. 1. Go to mcpack.studio and click Start Creating (or just visit /editor).
  2. 2. The editor opens with an empty pack. Click Add Item or Add Painting to begin.
  3. 3. Follow the wizard prompts — upload your model/texture, give it a name, and done.

Your items appear in the grid immediately. No page reloads — everything updates live.

Your Workspace & Projects

When you start creating, PackStudio sets up a workspace for you. Think of it as a project folder that holds everything in your pack.

What's in a workspace?

  • • A resource pack with a pack.mcmeta manifest
  • • Your custom items, models, and textures
  • • Your custom paintings (and their datapack counterparts)
  • • A language file (en_us.json) for in-game display names

Managing multiple packs

Logged-in users can create multiple workspaces. Each one is a separate pack — you might have one for custom swords, another for paintings, a third for a server resource pack.

  • Create new: Click "New Pack" from your sessions list
  • Switch between them: Use the sessions list at /sessions
  • Upload existing: Got a ZIP from elsewhere? Use "Upload Pack" to import and continue editing

Guest vs. logged-in

Feature Guest Logged in
Create items & paintingsYesYes
Auto-save30 daysPermanent
Download packsLogin prompted (skippable)Yes
Multiple workspacesOne at a timeUnlimited
Publish with share linksNoYes
Group collaborationNoYes (premium)

Workspace settings

Inside the editor, the settings panel lets you:

  • • Change the pack description (shown in Minecraft's pack selection screen)
  • • Set your custom namespace (defaults to "custom" — this prefixes all your item identifiers)
  • • Change the target Minecraft version

Resource Packs & Datapacks Explained

What is a resource pack?

A Minecraft resource pack replaces or adds visual and audio assets — textures, models, sounds, languages. PackStudio generates the standard folder structure Minecraft expects:

your_pack.zip
├── pack.mcmeta           ← Pack manifest (format version, description)
├── assets/
│   ├── your_namespace/
│   │   ├── items/              ← Item model pointers
│   │   ├── models/item/        ← Full 3D model JSONs (from Blockbench)
│   │   ├── textures/item/custom/  ← Your texture PNGs
│   │   ├── textures/painting/     ← Painting artwork
│   │   └── lang/en_us.json    ← In-game display names
│   └── minecraft/
│       └── items/             ← Vanilla item overrides

What is a datapack?

A datapack adds data-driven game logic — recipes, advancements, painting variants, tags. PackStudio generates datapacks automatically when you create paintings (so they can be crafted and placed in-game):

paintings_datapack.zip
├── pack.mcmeta
└── data/
    ├── your_namespace/
    │   ├── painting_variant/       ← Painting definitions
    │   ├── recipe/painting_variant/ ← Crafting recipes
    │   └── advancement/recipes/     ← Recipe unlocks
    └── minecraft/tags/
        └── painting_variant/placeable.json

Why does PackStudio create both?

Resource packs handle the visuals (textures, models). Datapacks handle the behavior (crafting recipes, what surfaces a painting can be placed on). For custom paintings, you need both — the resource pack makes the painting look right, the datapack makes it craftable and placeable.

The pack.mcmeta manifest

Every pack (resource or data) includes a pack.mcmeta file. This tells Minecraft:

  • • What pack format version the pack targets (determines compatibility)
  • • A description shown in the pack selection menu
  • • The minimum and maximum supported formats

PackStudio generates this automatically based on your selected Minecraft version. You don't need to edit it manually.

Namespaces — what are they?

Every item, texture, and model in Minecraft lives under a namespace. Vanilla content uses minecraft/. Your custom content uses your chosen namespace (default: custom).

For example, if you create an item called "fire_sword" with the namespace "custom", its in-game identifier becomes custom:fire_sword. This keeps your content separate from vanilla and prevents name collisions with other packs.

Custom Items

PackStudio's item wizard lets you add custom items with 3D models and textures — no JSON editing required.

Step-by-step guide: add a custom item

Interactive walkthrough with real JSON examples

What you need

  1. 1. A 3D model file — Export from Blockbench as a JSON file
  2. 2. Texture PNG(s) — The image(s) that wrap around your model

Blockbench model creation guide

PackStudio accepts model files exported from Blockbench (free, cross-platform 3D modeling tool popular in the Minecraft community). Blockbench handles the complex grid-based modeling that Minecraft uses — you don't need to understand JSON or Minecraft's model format directly.

Setting up a new item model

  1. 1. Open Blockbench and click Create New Model
  2. 2. Select Java Edition Item as the model type
  3. 3. Set your display format to 3D Inventory (this is the default for item models)

"Java Edition Item" is critical — the Bedrock exporter generates a different JSON structure that PackStudio cannot parse. Blockbench's "Item" type generates the correct parent, elements, and display format for Minecraft Java Edition item models.

Model design best practices

  • Work within the grid — Items should fit within the standard item bounding box (16×16×16 blocks). Large models work, but items that are too big can look distorted when held or placed in containers.
  • Use proper UV mapping — Each cube in your model needs texture coordinates (UVs) assigned. Blockbench's "Edit UV" mode lets you drag UV faces onto your texture atlas. If UVs are missing, parts of your model will appear purple/black in-game.
  • One texture atlas per model — Keep all UV faces on a single texture sheet. PackStudio uploads textures as separate PNG files, one per atlas, and automatically wires them into the model JSON.
  • Keep UV atlases small — Minecraft's item UI renders textures at relatively small sizes. A 64×64 or 128×128 atlas is usually more than enough. Huge textures don't gain you detail — they just look blurry after Minecraft downscales them.
  • Check your model in multiple angles — Blockbench's toolbar shows first-person, third-person, and GUI views. Your item rotates when held, so check it from all angles before exporting.

Exporting from Blockbench

This is the most important step — the export settings determine whether PackStudio can import your model correctly.

  1. 1. Go to File → Export → Export Model
  2. 2. Set "Export Format" to Java Edition Model
  3. 3. Give the file a descriptive name (e.g., fire_sword.json — the filename becomes the item name in PackStudio)
  4. 4. Include textures — check the option to "Save with texture" so Blockbench also exports your texture atlas PNG(s) alongside the model JSON
  5. 5. Click Export

Blockbench will export both a .json model file and one or more .png texture files. Upload both to PackStudio — the JSON file as the model, and the PNG(s) as textures.

Tip

Why not hand-write model JSON?

Minecraft's item model format is verbose — cube definitions, rotation matrices, display transforms, and texture coordinates nested in JSON. Blockbench abstracts all of this into an interactive 3D editor. Even experienced pack creators find Blockbench much faster than writing model JSON by hand, especially for items with complex shapes (multiple cubes, rotated elements, or custom animations).

If you're comfortable with raw JSON, PackStudio's advanced editor mode lets you edit model files directly. But for most users, Blockbench is the fastest path from idea to in-game item.

Step-by-step

  1. 1. In the editor, click Add Item
  2. 2. Upload your Blockbench model JSON
  3. 3. Upload your texture PNG file(s)
  4. 4. Give your item a name (this becomes the in-game identifier)
  5. 5. Click Create

PackStudio automatically:

  • • Parses the Blockbench model and remaps texture paths
  • • Writes the item model pointer JSON
  • • Saves the full 3D model JSON
  • • Stores your texture PNG
  • • Creates a vanilla item override (string-based select) so the item appears in-game
  • • Adds the display name to the language file

Example Walkthrough — Hard Hat

Let's walk through uploading a complete item step by step using a hard hat model as our example. The model is a three-part helmet created in Blockbench: a brim, a main shell, and a front peak. Here's what you'll actually be doing.

Step 1: Create the model in Blockbench

Open Blockbench, build your model on a 16×16 grid. For the hard hat, we built three elements:

  • Brim — a flat rectangular plate (from [3,0,2] to [14,1,15])
  • Main shell — a box sitting on the brim (from [4,1,3] to [13,5,12])
  • Front peak — a smaller box on the shell (from [7,1,2] to [10,6,13])

In Blockbench, each face of every element gets UV coordinates that map to positions on your texture. Blockbench handles most of this for you — use the UV Editor tab to unwrap faces and drag them onto the UV canvas.

Step 2: Paint the texture

Still in Blockbench, switch to the Texture tab and open a 64×64 canvas (matching the model's "texture_size": [64, 64]). Paint your design — for the hard hat, a safety-yellow base with a dark gray rim and a small reflective strip on the peak.

The key thing to understand: your model's JSON references the texture by an internal ID — in our example, it's "0": "gc:item/custom/hard_hat". This tells Minecraft to look for a PNG at assets/{namespace}/textures/item/custom/hard_hat.png once the pack is assembled. PackStudio will rewire this path automatically when you upload.

Under the Hood

How the model → texture link works

The Blockbench JSON contains a "textures" block that maps internal names (like "0") to Minecraft resource paths. Every face in every element references one of these names via "texture": "#0".

When you upload the model and texture to PackStudio, it reads that "textures" mapping, renames the path to match your pack's namespace, and saves the texture PNG to the correct subdirectory. You don't edit any of this — the wizard takes care of it.

Step 3: Export from Blockbench

  1. 1. Go to File → Export → Export Model
  2. 2. Choose Bedrock Item / Java Item format (saves as .json)
  3. 3. Name the file something descriptive, e.g., hard_hat.json
  4. 4. Go to Texture → Save As and save the painted texture as hard_hat.png

These are the only two files you need: hard_hat.json (the 3D model) and hard_hat.png (the texture that wraps around it).

Step 4: Upload to PackStudio

  1. 1. In the editor, click Add Item
  2. 2. Blockbench Model JSON: Select hard_hat.json
  3. 3. Texture File(s): Select hard_hat.png
  4. 4. Base Item Override: Type a vanilla item name — for a helmet, carved_pumpkin works well

The base item is the vanilla Minecraft item that will be visually replaced by your model in-game. Choose one that has a similar bounding box to your custom item — carved_pumpkin is the standard choice for helmets. You can optionally expand Advanced Options to set a custom namespace, override the default model data number, or choose a different data type.

Step 5: Click "Add Item to Pack"

PackStudio now processes everything behind the scenes:

  • • Reads the model JSON, finds the "textures" block mapping "0"gc:item/custom/hard_hat
  • • Stores the model at assets/{ns}/models/item/hard_hat.json
  • • Saves the texture PNG at assets/{ns}/textures/item/custom/hard_hat.png
  • • Creates the item model pointer at assets/{ns}/items/hard_hat.json
  • • Registers the custom_model_data override for carved_pumpkin
  • • Adds "item.hard_hat.name": "Hard Hat" to the language file

The hard hat appears in your item grid immediately with its texture and 3D preview. No page reload — the grid updates live via HTMX.

Concept

How custom items appear in Minecraft

Minecraft has two systems for adding custom item models to existing vanilla items. String-based select (default) uses a custom_model_data string selector — Minecraft's simpler, more flexible approach. Range dispatch (legacy) uses numeric float thresholds and is kept for backward compatibility with the CustomRoleplay datapack. Each custom item gets a unique identifier. When a player holds a vanilla item (like a stick or netherite sword) with the right Custom Model Data value, Minecraft swaps in your custom model.

PackStudio handles this automatically — it picks the right data type based on your workspace settings and wires up the override. You just see your item appear in the grid.

Managing your items

After creating items, you can:

  • View details — Click any item in the grid to see its model, texture, and metadata
  • Rename — Update the item name (updates all file references automatically)
  • Delete — Remove an item and all its associated files (model, texture, JSON, language entries, model override)

Using your items in-game

To see custom items in Minecraft, you need both the resource pack and a datapack that registers items with the /trigger command. PackStudio supports integration with:

  • CustomRoleplay datapack
  • ModelApplier datapack

These datapacks handle the /trigger commands that give players the custom items. PackStudio links to them when you download — you'll get guidance on which one to use.

Custom Paintings

PackStudio's painting wizard turns any image into a placeable, craftable custom painting.

What you need

  • • A PNG image (any reasonable size — PackStudio resizes it to fit Minecraft's painting canvas dimensions)

Step-by-step

  1. 1. In the editor, click Add Painting
  2. 2. Upload your image
  3. 3. Give your painting a name and (optionally) an author credit
  4. 4. Click Create

PackStudio automatically:

  • • Resizes the image to fit Minecraft's painting canvas
  • • Composites the painting with a frame overlay (so it looks like a proper Minecraft painting)
  • • Generates a miniaturized item texture (what you see in your inventory)
  • • Creates the datapack painting variant JSON
  • • Writes a crafting recipe (so the painting can be crafted in survival)
  • • Adds the painting to the placeable tag (so it can be placed on walls)
  • • Adds title and author entries to the language file

What gets generated

Resource pack side:

  • textures/painting/{name}.png — The full painting artwork
  • textures/item/painting_{name}.png — The inventory icon

Datapack side:

  • painting_variant/{name}.json — Defines the painting dimensions and texture
  • recipe/painting_variant/{name}.json — Crafting recipe
  • advancement/recipes/{name}.json — Recipe unlock advancement
  • • Updates to minecraft/tags/painting_variant/placeable.json

Installing paintings in Minecraft

  1. 1. Download both the resource pack ZIP and the datapack ZIP from PackStudio
  2. 2. Put the resource pack in .minecraft/resourcepacks/
  3. 3. Put the datapack in your world's datapacks/ folder
  4. 4. Enable both in Minecraft (Settings → Resource Packs, and /reload for datapacks)
  5. 5. Craft your painting in survival, or use /give @s painting{variant:"your_namespace:name"}

The Editor Interface

The PackStudio editor is a single-page workspace — no page reloads as you work. Dynamic regions update live via background requests.

Item Grid

The main panel shows a visual grid of all your custom items. Each card shows the item's texture and name. Click a card to view full details (model, texture path, custom model data number).

Validation Sidebar

A live validation panel checks your pack for errors as you work. If something's wrong — a missing texture, a broken JSON reference, a duplicate name — the sidebar shows a clear, human-readable explanation of the problem and how to fix it.

File Tree (Advanced Mode)

For users who want to see the raw file structure, switch to advanced mode to browse the entire pack as a file tree. You can:

  • • Navigate folders
  • • View any JSON file's contents
  • • Edit JSON inline with a built-in code editor

This is for advanced users comfortable with Minecraft's pack format. Most users never need this — the wizards handle everything.

Settings Panel

Access workspace settings to:

  • • Change the pack description
  • • Set your custom namespace
  • • Change the target Minecraft version (re-generates pack.mcmeta automatically)

Minecraft Version Compatibility

Minecraft resource packs use a numeric pack format that changes with each major update. PackStudio targets Minecraft 26.2 and supports pack formats 73 through 88.

What this means for you

  • • PackStudio generates packs compatible with Minecraft 26.2+
  • • If a future Minecraft update changes the pack format, PackStudio updates to support it
  • • You can change your target version in workspace settings (useful if you're building for an older Minecraft version)

The version selector

In the editor, the version dropdown shows all supported Minecraft versions. Changing it updates your pack.mcmeta automatically. Your items and textures carry over — only the manifest metadata changes.

Exporting & Downloading

When you're ready to use your pack in Minecraft:

Resource Pack Download

  1. 1. Click Download Resource Pack
  2. 2. You'll receive a .zip file
  3. 3. Move it to .minecraft/resourcepacks/
  4. 4. Enable it in Minecraft: Settings → Resource Packs

Datapack Download

If you've created custom paintings, also download the datapack:

  1. 1. Click Download Datapack
  2. 2. Move the .zip to your world's datapacks/ folder
  3. 3. In-game, run /reload to load it

Publishing (Logged-in users)

Logged-in users can publish packs with a shareable link:

  1. 1. Click Publish
  2. 2. PackStudio generates a public download URL
  3. 3. Share the link — anyone can download the pack without logging in
  4. 4. A SHA-1 hash is provided for server administrators to verify integrity

Pushing to GitHub (Premium)

Premium users can push their pack directly to a GitHub repository:

  1. 1. Click Push to GitHub
  2. 2. Enter your GitHub Personal Access Token (PAT) — it's used once, never stored
  3. 3. PackStudio commits all pack files to your repo
  4. 4. You get a commit URL to share or track

Installing in Minecraft — quick checklist

  • Download resource pack ZIP
  • (If paintings) Download datapack ZIP
  • Resource pack → .minecraft/resourcepacks/
  • Datapack → worldname/datapacks/
  • Enable resource pack in Minecraft settings
  • Run /reload in-game for datapacks
  • For custom items: also install CustomRoleplay or ModelApplier datapack

Accounts & Security

Sign up

  1. 1. Click Sign Up anywhere on the site
  2. 2. Enter email, username, and password
  3. 3. You're immediately logged in and redirected to the editor

Password requirements

  • • At least 12 characters
  • • Must contain uppercase and lowercase letters
  • • Must contain at least one digit

Password reset

Forgot your password? Use the Forgot Password link on the login page. A reset token will be sent to your email.

Account security

PackStudio uses secure, HTTP-only cookies for authentication. Your login token is never exposed to JavaScript, which prevents cross-site scripting (XSS) attacks from stealing your session. Passwords are hashed with bcrypt — they're never stored in plain text.

Your profile

Visit your profile to view and edit your profile. You can update your email and username.

Groups & Collaboration

Groups let multiple users collaborate on packs. This is a premium feature.

Creating a group

  1. 1. Go to Groups in the navigation
  2. 2. Click New Group
  3. 3. Set a name, slug (URL identifier), and description
  4. 4. Choose link-sharing options

Roles & permissions

RoleWhat they can do
OwnerEverything, including deleting the group
AdminInvite/remove members, manage workspaces
MemberEdit packs in linked workspaces
ViewerView-only access to workspaces

Link sharing

Group owners can enable:

  • Link view — Anyone with the group URL can view (read-only) without logging in
  • Link edit — Anyone with the URL can edit (use with caution)

Inviting members

Owners and admins can invite members by username. Invitees receive a pending invitation they can accept or decline. Only Minecraft usernames are shown — no real names or emails are exposed in group contexts.

Linking workspaces

A group can have multiple workspaces linked to it. Any member with the right role can edit packs in those workspaces.

Troubleshooting

My item doesn't appear in Minecraft

Cause: Custom items require a datapack to register them with the /trigger command.

Fix: Download and install either the CustomRoleplay or ModelApplier datapack alongside your resource pack. These handle the /trigger commands that give players custom items.

My painting won't place on the wall

Cause: The datapack's placeable tag wasn't loaded.

Fix: Make sure you've placed the datapack ZIP in your world's datapacks/ folder and run /reload in-game. The painting needs both the resource pack (for the texture) and the datapack (for the placement behavior).

Pack shows as incompatible in Minecraft

Cause: The pack format in pack.mcmeta doesn't match your Minecraft version.

Fix: In the editor, open workspace settings and change the target Minecraft version to match yours. Then re-download the pack.

My textures show as missing (purple/black squares)

Cause: A texture file is missing or the reference path is wrong.

Fix: Check the validation sidebar in the editor — it will flag any missing textures. Delete the broken item and re-create it with the correct texture file.

Guest work disappeared

Cause: Guest sessions are automatically cleaned up after 30 days of inactivity.

Fix: Create a free account to keep your work permanently. If you had a session ID bookmarked, it may have expired — start a new pack.

Download button asks me to log in

Cause: Downloads require an account (you can skip the prompt, but you'll need to sign up eventually).

Fix: Create a free account. It's quick and your work will be saved permanently.

Validation sidebar shows errors

The validation sidebar is your friend — it catches problems before they reach Minecraft. Common validation issues:

  • Duplicate item name — Two items can't have the same name. Rename one.
  • Missing texture — An item references a texture that doesn't exist. Re-upload it.
  • Invalid namespace — Namespaces can only contain lowercase letters, numbers, and underscores.

GitHub push failed

Cause: The most common reasons are an expired or invalid Personal Access Token, or lack of write permissions on the target repository.

Fix: Generate a new PAT with repo scope at github.com/settings/tokens and try again.

I need to edit a file manually

Advanced users can use the File Tree in advanced mode to browse and edit JSON files directly. Use with caution — manual edits bypass validation. If something breaks, the validation sidebar will flag it.

Frequently Asked Questions

Yes. The core editor — creating items, paintings, and downloading packs — is free. Premium features (GitHub push, group collaboration, pack hosting) are available with a subscription.

No. PackStudio runs entirely in your browser. You only need a web browser and Minecraft Java Edition.

Yes. Use the Upload Pack feature on the sessions page to import an existing resource pack ZIP. PackStudio extracts it and lets you continue editing.

PackStudio targets Minecraft 26.2 and supports pack formats 73–88. You can change the target version in workspace settings.

Yes. The item wizard accepts Blockbench JSON exports directly. Upload the model JSON and your texture PNGs — PackStudio handles the rest.

PNG is the recommended format for textures and paintings. PNG supports transparency, which is essential for custom item textures.

PackStudio stores your pack files securely on its servers. Each workspace is isolated — your files are only accessible to you (and group members if you've shared the workspace). Guest sessions are cleaned up after 30 days.

Yes. Logged-in users can publish a pack, which generates a permanent public URL. Anyone with the link can download the pack — no account needed.

Your login token is stored in a secure HTTP-only cookie. Passwords are hashed with bcrypt. Pack files are isolated per workspace. We never share your data. In group contexts, only Minecraft usernames are shown — never real names or emails.

At this time, PackStudio is closed source and we do not have plans to accept external contributions. If you have feedback or feature requests, please open an issue on our GitHub issue tracker.

Ready to start creating? Jump into the editor and make your first custom item or painting.

Start Creating

Thanks for your feedback!

We read every message.

Help us improve

We're in beta — tell us what's working, what's broken, or what you'd love to see.