TexturepackManager » 1.20 - 1.21.11 ⚡ 25% OFF FLASH SALE ⚡ icon

TexturepackManager » 1.20 - 1.21.11 ⚡ 25% OFF FLASH SALE ⚡ -----

Migrate from ItemsAdder/Oraxen/Nexo/RPM with one command + supports Geyser/Bedrock!




TexturepackManager takes things with
creating/editing/managing your servers/networks
texture pack that are normally confusing and a
complete pain, and turns them into a simple and
very straight-forward process anyone can do.

It's like ItemsAdder, Oraxen, Nexo, and/or RPM except...
1. TPM includes in-game GUI item/block/furniture/armor creation.
2. TPM supports Bedrock/Geyser.

Converting wise TPM ONLY supports the
basic 2D textures, sounds, and chat emojis...

Want 3D textures, advanced animations,
and practically everything else?

Checkout TexturepackConverter!

It's so easy your Grandma could do it!
[​IMG]
(Also supports migrating
from ResourcepackManager)

TPM supports Bungee/Velocity network
servers via MySQL support.

You can also migrate from any 3 of
those plugins to TPM in one command!
Does it get any easier? :unsure:

NOTE:
If you find an item/block pack that only works for one
of the migrate-able plugins, you can just migrate it to TPM.


Have a suggestion? TPM has an active developer.
Let's make this plugin better!

[ NEW] Create items/blocks/furniture/etc. ALL IN-GAME

Set the material type
[​IMG]

Set the CustomModelData
[​IMG]

Select the texture (next page)
[​IMG]


[​IMG]

A full set of Emerald armor, along side a full
set of Emerald tools are all included by default
• armor (Not yet fully functional for 1.21.10+)
  • images [Folder] →
  • emerald_helmet.png
  • emerald_chestplate.png
  • emerald_leggings.png
  • emerald_boots.png
  • emerald_layer_1.png
  • emerald_layer_2.png
• blocks

• emojis

• furniture

• guitextures [NEW] (This is an Alpha release; not the final version)

• items
  • images [folder] →
  • emerald_axe.png
  • emerald_hoe.png
  • emerald_pickaxe.png
  • emerald_shovel.png
  • emerald_sword.png
• sounds
  • files → bell_ding.yml
  • sound-files → bell folder → ding1.ogg & ding2.ogg

• totems
  • level-up.png
  • restarting.png

• bedrock_models → Upload all Bedrock/Geyser formatted files here
• data → Folder used to store all internal related data
• packs → Default folder where the final pack.zip is exported
• resourcepack_style → Upload vanilla-style resource pack folders/files here

[​IMG]

[​IMG]

[​IMG]

[​IMG]

Furniture
[​IMG]

Emojis
[​IMG]
(these emojis are not included - just examples)

Menu GUI:
[​IMG]
(these items are not included - just examples)

Pages:
1. Items
2. Blocks
3. Furniture

(The compass is a search feature)

Fancy server restart: (/restarting)
Fully configurable broadcast messages:
[​IMG]

When the timer hits 3 seconds, this plays for all online players:
( Click to view totem animation )

Migrating from ItemsAdder/Oraxen/Nexo

/tpm migrate ItemsAdder/Oraxen/Nexo
[​IMG]

Includes:
1. A live action bar progress update message
2. Click-able chat messages to re-build and re-apply the updated pack.

Bedrock/Geyser Support

TexturepackManager
can automatically
convert very basic 2D (1 layer) textures
as well as chat Emojis from Java -> Bedrock.

TexturepackManager also supports
practically ANY already Bedrock/Geyser
formatted item/block/furniture/etc.
(This can be achieved using
other programs, like Blockbench)

If you are looking to convert more
advanced textures
(3D textures, animated textures,
etc.) then check out TexturepackConverter!

[​IMG]
[​IMG]



[​IMG]

Placeholder Description / Usage
Code (Text):
TPM.plugin()
Returns the running TexturepackManager plugin instance (for advanced integrations).
Code (Text):
TPM.tokensToGlyphs(":heart: Hello")
Converts
Code (Text):
:token:
chat tokens to glyphs using the emoji font (sizes from
Code (Text):
emojis/emoji_sizes.yml
).
Code (Text):
TPM.items()
Entry point for item API (see methods below).
Code (Text):
TPM.blocks()
Entry point for block API (see methods below).
Code (Text):
TPM.furniture()
Entry point for furniture API (see methods below).
Code (Text):
TPM.font()
Entry point for emoji/font image helpers (see methods below).
Code (Text):
TPM.sounds()
Entry point for sound helpers (see methods below).
Code (Text):
TPM.totems()
Entry point for totem animation helpers (see methods below).
Code (Text):
TPM.currentPackUrl()
Returns the URL of the currently built pack, if any.
Code (Text):
TPM.currentPackSha1()
Returns the SHA-1 of the current pack, if any (may be
Code (Text):
null
when using public URL mode without a hash).
Code (Text):
TpmItems#get("sky_pick")
Returns
Code (Text):
Optional<TpmStack>
. Example:
Code (Text):
TPM.items().get("id").ifPresent(s -> s.give(player, 1));
Code (Text):
TpmItems#getItemStack("id")
Returns
Code (Text):
Optional<ItemStack>
ready to place in inventories.
Code (Text):
TpmItems#isCustom(itemStack)
True if the stack matches a TPM custom item (via Material + CustomModelData lookup).
Code (Text):
TpmItems#idOf(itemStack)
Best-effort reverse lookup of the custom item id from Material + CustomModelData.
Code (Text):
TpmStack#getId()
Returns the TPM item id used to create this stack.
Code (Text):
TpmStack#getItemStack()
Returns a cloneable Bukkit
Code (Text):
ItemStack
of this custom item.
Code (Text):
TpmStack#give(player, amount)
Convenience: gives the item to a player (sets amount and adds to inventory).
Code (Text):
TpmBlocks#place(location, "sky_ore")
Places a custom block at a location; returns true on success.
Code (Text):
TpmBlocks#isCustom(block)
True if the world block is managed by TPM (when available via BlockManager).
Code (Text):
TpmBlocks#idOf(block)
Returns the custom block id (if exposed by the BlockManager), otherwise
Code (Text):
null
.
Code (Text):
TpmFurniture#spawn(location, "chair_oak")
Spawns furniture; returns
Code (Text):
Optional<UUID>
of the spawned entity/controller.
Code (Text):
TpmFurniture#isFurniture(entity)
True if the entity is a TPM furniture instance (when supported by FurnitureManager).
Code (Text):
TpmFont#image("heart")
Returns a
Code (Text):
TpmFontImage
wrapper for an emoji (one-glyph image).
Code (Text):
TpmFontImage#getString()
Returns the single-character glyph to append into text strings.
Code (Text):
TpmFontImage#height()
Resolved render height for the emoji (from
Code (Text):
emoji_sizes.yml
, fallback 16).
Code (Text):
TpmFontImage#ascent()
Resolved ascent for the emoji (from
Code (Text):
emoji_sizes.yml
, fallback 12).
Code (Text):
TpmFontImage#isPresent()
True if the emoji exists (glyph mapped); false if unknown token.
Code (Text):
TPM.sounds().play(player, "bell_ding")
Plays a compiled TPM sound event to a player (via
Code (Text):
SoundService
).
Code (Text):
TPM.sounds().exists("id")
True if a sound id is registered/compiled.
Code (Text):
TPM.sounds().allIds()
Returns all loaded sound ids.
Code (Text):
TPM.playTotem(player, "level-up")
Triggers the totem animation using the custom model mapped to the given id. Requires that totem PNGs were compiled and assigned CMDs.
Code (Text):
ProtectedPackService#signedUrlFor(uuid, ip)
(If protection enabled) Builds a short-lived, IP-bound signed URL to the current
Code (Text):
pack.zip
. Used internally but available if you need a direct link.

[​IMG]

The quickest way to get support for any of my resources
would be to join my Resource Discord.
» https://discord.gg/2vUqykD

Note »
Please DO NOT leave bad reviews for any issues
that you have. Please simply PM me or leave it
in the discussion tab. Thank you. (y)

That and reviews are highly appreciated! :alien:

[​IMG]


My other plugins

[​IMG] [​IMG] [​IMG] [​IMG] [​IMG] [​IMG] [​IMG]
Resource Information
Author:
----------
Total Downloads: 42
First Release: Sep 26, 2025
Last Update: Feb 28, 2026
Category: ---------------
All-Time Rating:
2 ratings
Find more info at discord.gg...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings