Skip to content

Skin Sources

Brennan Hatton edited this page Jun 26, 2026 · 2 revisions

Skin Sources

Every PlayerMob picks its look once, when it spawns. That look can come from three sources, and you can turn each one on or off. All three are on by default.

Source What it is Add skins by Config key
Bundled The skins that ship inside the mod (vanilla defaults + a curated pack of streamers / community skins). (built-in — nothing to do) skinSourceBundled
Online Skins added by a datapack (texture URL or player name), resolved player skins, and skins contributed by other mods. A datapack — see Custom Skins skinSourceOnline
Local PNG skin files you drop into a folder. Drop .png files in config/playermob/skins skinSourceLocal

Just want to use your own skins? Jump to Local skin folder.


How a mob picks its skin

  1. Every mob first rolls a bundled skin as its base (this is also the safe fallback for old clients).
  2. Then, with about a 40 % chance, it overrides that with a random skin from the combined online + local pool. The other ~60 % keep their bundled skin.

So most mobs read as "a normal player" at a glance, with your custom/online skins showing up as the occasional standout. Adding local or online skins simply grows that ~40 % pool.

The per-source toggles below change which pools are eligible. Bundled is always the ultimate fallback — if every other source is off or empty, a mob still gets a bundled skin (a mob is never skinless).


Local skin folder

Drop your own skins in — no datapack, no resource pack, no rebuild.

  1. Put 64×64 (or legacy 64×32) PNG skin files in:
    config/playermob/skins/
    
    (The folder is created automatically the first time the mod runs. In a dev client it's under the run directory, e.g. run/fabric/config/playermob/skins.)
  2. They're picked up live — newly added files appear within a few seconds, no restart needed.
  3. New PlayerMobs can now roll your skins, mixed in with the bundled and online ones.

A skin is referred to by its file name without the .png — e.g. my_hero.png is my_hero.

Spawn a mob wearing a specific local skin

Use the normal summon command — a local-folder name takes precedence over a player name:

/playermob summon <skin> [<pos>] [<friendliness>] [<fightFlight>] [named [<customName>]]
/playermob summon my_hero                 # spawn here wearing my_hero.png
/playermob summon my_hero ~ ~ ~ 9 2 named Hero   # + traits + a nameplate

This is the same command used to summon a mob wearing a player's skin (see Custom Skins); if the name matches a file in your skins folder it wears that, otherwise it's treated as a player name.

Slim vs wide arms

The arm model (slim/Alex vs wide/Steve) is detected automatically from the PNG — you don't name files or set anything. Standard slim skins leave their arm "overhang" areas transparent, which is what the detector keys off; legacy 64×32 skins are always wide.

Multiplayer note

Local skins are loaded on each client (like a resource pack). In single-player and on a LAN-host this just works. On a dedicated server, a connecting client that doesn't have the file in its own config/playermob/skins will render that mob with a bundled fallback skin instead. To share a look with everyone on a server, use a datapack/URL skin (an online source) — see Custom Skins.


Turning sources on and off

In-game (this session)

/playermob skin sources

Reports each source's state and how many skins it has, e.g.:

PlayerMob skin sources — bundled ON, online ON (68), local ON (2 in config/playermob/skins).
/playermob skin source <bundled|online|local> on|off

Flips one source for the current session (takes effect immediately; not written to the config file).

/playermob skin source online off     # only bundled + local from now on
/playermob skin source bundled off     # stop rolling the built-in skins…
/playermob skin source local on        # …e.g. to show ONLY your own skins (with online)

When bundled is off but another source has skins, mobs always take a custom skin (they never show a bundled one while alternatives exist). With everything off, mobs fall back to bundled.

Permanently (config file)

Edit config/playermob.properties:

# All on by default. bundled = built-in skins; online = datapack/by-name/mod skins;
# local = PNGs in config/playermob/skins.
skinSourceBundled=true
skinSourceOnline=true
skinSourceLocal=true

The file is the startup default; the /playermob skin source command overrides it for the session only. Change the file and restart (or /reload doesn't re-read it — restart the game/server) for a permanent change.


See also

  • Custom Skins — add online skins with a datapack (by URL or player name), pin a player's skin, and the modder seam for contributing skins programmatically.
  • Spawning and NBT — pin a bundled skin index or a texture URL directly via summon NBT.

Clone this wiki locally