Troubleshooting
Terraria Texture Pack Not Working
Your pack is installed but the sprites in-game are unchanged (or look garbled). That's almost always one of six concrete causes — work down the list in order and one of them is the fix.
The symptom
You enabled the pack, but items, NPCs, or tiles still show the default art — or a sprite applied but renders as scrambled pixels. The pack itself is usually fine; something about how it's named, sized, packaged, or ordered is stopping the override from landing.
Ranked causes and exact fixes
1. The pack is enabled, not just present
From the main menu open Workshop (or Resource Packs directly) and check the two columns. A pack sitting in Available Packs on the left does nothing — click it to move it into Enabled Packson the right, then back out. If it's already enabled and still doing nothing, keep going.
2. Canvas size must match the original exactly
This is the most common "it applied but looks broken" cause. Terraria does not rescale sprites, so a replacement PNG must have the exact same pixel dimensions as the file it replaces —
Item_1.pngstays 32×32. Animated items and NPCs are sprite-sheets: keep the full sheet size and the same frame grid, or every frame shifts and the sprite garbles.3. The file name must match the game's asset name
Files are matched by name, case-sensitively, inside
Content/Images/. A PNG that's almost right is ignored:item_1.png,Item1.png, orIronPickaxe.pngall silently do nothing. It has to be exactlyItem_1.png(items),NPC_1.png(NPCs),Tiles_0.png(blocks), and so on.4. No extra nested folder — pack.json must be at the root
The pack folder (or the .zip) must expose
pack.jsonandContent/at its root, not one level down asMy Pack/My Pack/pack.json. If you zipped the folder containingyour pack instead of the pack's contents, you get this double-nesting. Re-zip the contents so pack.json sits at the top.5. Load order — another pack above yours is winning
When two enabled packs replace the same sprite, the pack higher in the Enabled Packs list wins. If yours is below a pack that touches the same asset, it never shows. See Terraria texture pack load order to reorder them.
6. Wrong game version — or you're trying to retexture a mod
A pack built against sprite IDs from an older version can miss or mismatch after a big update (1.4.5 added 650+ items). And a vanilla resource pack cannot retexture modded content — a mod like Calamity stores its own weapons and enemies outside
Content/Images, so a resource pack can't reach them. See Calamity texture packs for what's actually possible.
Skip three of these entirely
The size, filename, and nested-folder problems all come from hand-building the pack. If you make it in the in-browser editor, it loads each sprite at its real canvas size, writes the exact game file name, and exports a .zip with pack.jsonat the root — so causes 2, 3, and 4 can't happen. You're only ever left with "enable it" and "load order."
Frequently asked
Why is my Terraria texture pack not changing anything?
Almost always one of five things: the pack is still in the Available column (not Enabled), the replacement PNG isn't the exact same canvas size as the original, the file name doesn't match the game's asset name, the pack has an extra nested folder so pack.json and Content/ aren't at the root, or another enabled pack above yours is overriding the same sprite.
Does a replacement sprite have to be the same size as the original?
Yes. Terraria never rescales sprites, so a replacement must have the exact same canvas dimensions as the file it replaces (Item_1.png stays 32x32). A mismatched size renders broken or fails to apply. Animated items and NPCs are full sprite-sheets, so you must keep the whole sheet's size and frame layout.
Can a vanilla resource pack retexture Calamity or other mods?
No. A vanilla resource pack only overrides the base game's sprites. A mod's own items and enemies (like Calamity's weapons) aren't stored in Content/Images, so a resource pack can't touch them. The packs work while you play with tModLoader, but they only change vanilla sprites.