It doesn't work on a pirated server because it can't load skins because it doesn't support SkinsRestorer. It crashes and spams the console:
[16:29:19 WARN]: [BetterReplay] Task #3372 for BetterReplay v1.3.1-SNAPSHOT generated an exception java.lang.IllegalStateException: Failed to request texture properties with their UUID e60dad04ee6b369e94a69a7793daed39! Response code: 204 at packetevents-spigot-2.11.2.jar/com.github.retrooper.packetevents.util.MojangAPIUtil.requestPlayerTextureProperties(MojangAPIUtil.java:47) ~[packetevents-spigot-2.11.2.jar:?] at BetterReplay-1.3.1-SNAPSHOT.jar/me.justindevb.replay.util.SpawnFakePlayer.<init>(SpawnFakePlayer.java:43) ~[BetterReplay-1.3.1-SNAPSHOT.jar:?] at BetterReplay-1.3.1-SNAPSHOT.jar/me.justindevb.replay.RecordedPlayer.spawn(RecordedPlayer.java:58) ~[BetterReplay-1.3.1-SNAPSHOT.jar:?] at BetterReplay-1.3.1-SNAPSHOT.jar/me.justindevb.replay.ReplaySession.lambda$start$1(ReplaySession.java:220) ~[BetterReplay-1.3.1-SNAPSHOT.jar:?] at BetterReplay-1.3.1-SNAPSHOT.jar/me.justindevb.replay.libs.folialib.impl.SpigotImplementation.lambda$runTimer$4(SpigotImplementation.java:169) ~[BetterReplay-1.3.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:88) ~[paper-1.21.jar:1.21-130-b1b5d4c] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:475) ~[paper-1.21.jar:1.21-130-b1b5d4c] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1726) ~[paper-1.21.jar:1.21-130-b1b5d4c] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:473) ~[paper-1.21.jar:1.21-130-b1b5d4c] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1598) ~[paper-1.21.jar:1.21-130-b1b5d4c] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1304) ~[paper-1.21.jar:1.21-130-b1b5d4c] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:330) ~[paper-1.21.jar:1.21-130-b1b5d4c] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]