PaperMC / PaperMC/Paper

Player Skull Generation Inconsistency in Paper 1.21.x with Player_skull_maker Datapack

Open
#12,328 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: needs triage version: 1.21.4
Dominant language
Java
Stars
12.7k
Forks
3.5k
Avg merge
3d 13h
Merged PRs (30d)
11

Description

Expected behavior

Every time a signed written book and a wither skeleton skull are dropped together, a player skull should spawn with the texture matching the book's author name. This behavior should be consistent across multiple attempts, with no degradation or fallback to default textures (e.g., "Steve"). The correct workflow observed in Fabric 1.21.4—where the skull texture always matches the book's author—demonstrates the intended functionality.

Observed/Actual behavior

Versions:

PaperMC: 1.21.4#211 1.21.4#114 1.21.3#82 (reproducible in both)
Minecraft: 1.21.4
Datapack: Player_skull_maker (unknown version, attached in report)
Working reference: Fabric 1.21.4 (no issue observed)
Description:
When using the Player_skull_maker datapack, dropping a signed written book and a wither skeleton skull generates a player skull. The first execution works correctly (skull matches the book's author), but subsequent attempts produce a default "Steve" skull instead. This suggests a caching/state persistence issue in Paper's datapack handling after the initial successful trigger.

Reproduction Steps:

Install the Player_skull_maker datapack on a fresh Paper 1.21.x server.
Create a written book with a custom author name (e.g., "TestPlayer").
Obtain a wither skeleton skull.
Drop both items in the same block space.
First drop: Skull spawns with "TestPlayer" texture (correct).
Subsequent drops: Skull spawns with default Steve texture (incorrect).
Expected Result:
Consistent player skull generation matching the book's author name every time.

Actual Result:
Only the first skull generation succeeds; subsequent attempts default. Observed behavior difference compared to Fabric 1.21.4 (works consistently).

(use AI,My English is not good)

Steps/models to reproduce

https://github.com/user-attachments/assets/5940aeee-bc6f-4aad-b0c2-2179488a1a96

Plugin and Datapack List

not have plugins
datapack:Player_skull_maker

Paper version

D:\Games\MC\MC_Paper\1.21.4>java -jar paper-1.21.4-114.jar
Starting org.bukkit.craftbukkit.Main
*** Warning, you've not updated in a while! ***
*** Please download a new build as per instructions from https://papermc.io/downloads/paper ***
[14:58:28 INFO]: [bootstrap] Running Java 23 (Java HotSpot(TM) 64-Bit Server VM 23.0.2+7-58; Oracle Corporation null) on Windows 11 10.0 (amd64)
[14:58:28 INFO]: [bootstrap] Loading Paper 1.21.4-114-main@cd9d6d6 (2025-01-15T11:21:28Z) for Minecraft 1.21.4
[14:58:29 INFO]: [PluginInitializerManager] Initializing plugins...
[14:58:29 INFO]: [PluginInitializerManager] Initialized 0 plugins
[14:58:34 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[14:58:37 INFO]: Loaded 1370 recipes
[14:58:37 INFO]: Loaded 1481 advancements
[14:58:37 INFO]: [MCTypeRegistry] Initialising converters for DataConverter...
[14:58:37 INFO]: [MCTypeRegistry] Finished initialising converters for DataConverter in 401.8ms
[14:58:38 INFO]: Starting minecraft server version 1.21.4
[14:58:38 INFO]: Loading properties
[14:58:38 INFO]: This server is running Paper version 1.21.4-114-main@cd9d6d6 (2025-01-15T11:21:28Z) (Implementing API version 1.21.4-R0.1-SNAPSHOT)
[14:58:38 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling
[14:58:39 INFO]: Server Ping Player Sample Count: 12
[14:58:39 INFO]: Using 4 threads for Netty based IO
[14:58:39 INFO]: [MoonriseCommon] Paper is using 8 worker threads, 1 I/O threads
[14:58:39 INFO]: [ChunkTaskScheduler] Chunk system is using population gen parallelism: true
[14:58:40 INFO]: Default game type: SURVIVAL
[14:58:40 INFO]: Generating keypair
[14:58:40 INFO]: Starting Minecraft server on *:25565
[14:58:40 INFO]: Using default channel type
[14:58:40 INFO]: Paper: Using Java compression from Velocity.
[14:58:40 INFO]: Paper: Using Java cipher from Velocity.
[14:58:40 INFO]: Server permissions file permissions.yml is empty, ignoring it
[14:58:40 INFO]: Preparing level "world"
[14:58:41 INFO]: Preparing start region for dimension minecraft:overworld
[14:58:41 INFO]: Preparing spawn area: 0%
[14:58:41 INFO]: Preparing spawn area: 0%
[14:58:42 INFO]: Preparing spawn area: 2%
[14:58:42 INFO]: Time elapsed: 1069 ms
[14:58:42 INFO]: Preparing start region for dimension minecraft:the_nether
[14:58:42 INFO]: Preparing spawn area: 0%
[14:58:42 INFO]: Time elapsed: 76 ms
[14:58:42 INFO]: Preparing start region for dimension minecraft:the_end
[14:58:42 INFO]: Preparing spawn area: 0%
[14:58:42 INFO]: Time elapsed: 56 ms
[14:58:42 INFO]: [spark] Starting background profiler...
[14:58:42 INFO]: [spark] The async-profiler engine is not supported for your os/arch (windows11/amd64), so the built-in Java engine will be used instead.
[14:58:42 INFO]: Done preparing level "world" (2.264s)
[14:58:42 INFO]: Running delayed init tasks
[14:58:42 INFO]: Done (15.288s)! For help, type "help"

Other

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by installing the linked Player_skull_maker datapack on Paper 1.21.4-114 and repeat the first and subsequent item drops described in the report. Compare the result with Fabric 1.21.4 and inspect Paper's datapack handling around repeated player-skull generation. Done means every attempt produces a skull textured with the signed book's author rather than the default Steve texture.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.