CurseForge · Minecraft mod
Puppets
A fake player mod for developers, creators and builders that actually works.
Quick answer
Which Puppets release matches Forge?
Puppets 1.1.0 (Forge 1.21.4) targets 1.21.4 with Forge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.
Where it goes
Is Puppets required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does Puppets 1.1.0 (Forge 1.21.4) need?
Puppets 1.1.0 (Forge 1.21.4) on Forge. Every mod below is checked against that same setup.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Puppets without breaking your instance.
Built for Puppets 1.1.0 (Forge 1.21.4) on Forge. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use Puppets 1.1.0 (Forge 1.21.4). It targets 1.21.4 with Forge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside Puppets 1.1.0 (Forge 1.21.4). It opens that exact file at the source.
About this project
What does Puppets add?
Puppets
Stand-in players you control, for testing anything that needs more than one player on your own.
A puppet joins your world or server as a real player. It shows in the tab list, takes damage, needs air, gets hungry, rides things, and counts for teams, permissions and anything else that counts players. You can tell it what to do, record yourself and have it replay you, write it a script, or take it over and drive it with your own keys.
Puppets runs on:
| Minecraft | Loaders |
|---|---|
| 1.20.1 | Fabric (needs Fabric API), Forge |
| 1.21.1 | Fabric (needs Fabric API), Forge, NeoForge |
| 1.21.11 | Fabric (needs Fabric API), Forge, NeoForge |
| 26.3 | Fabric (needs Fabric API), NeoForge |
Only the server (or your singleplayer world) needs it. Install it in your own game too to get the menu and possession.
Getting started
- In singleplayer, open your world to LAN with Allow Cheats on. On a server, you need to be an operator.
- Press O, or type
/puppet menu. Without Puppets on your game, use the commands;/puppet helplists the basics, and you can click any line to use it. - Type a name and press Spawn. Pick the puppet in the list, and use the buttons. Hovering a button shows what it does and the command it sends.
What a puppet can do
Every action is /puppet <name> <action>. /puppet all <action> does it for every puppet. /puppet group <prefix> <action> does it for every puppet whose name starts with the prefix.
| Action | What it does |
|---|---|
| `move forward\ | back\ |
| `jump\ | sneak\ |
look <yaw> <pitch>, `look north\ |
south\ |
| `leftclick once\ | hold\ |
| `rightclick once\ | hold\ |
use, useblock [x y z face], useentity, attack, mine, release |
One click on one thing. release lets go of a drawn bow or a half-eaten meal |
slot <1-9>, swap, `drop [one\ |
stack\ |
inventory |
Opens its inventory for you to give it things or take them. You can also sneak and right-click it |
copygear |
It gets a copy of everything you carry and wear |
click <slot> [button] [mode], button <id>, trade <n>, close, `sign x y z front <line1\ |
line2>` |
mount [entity], dismount |
Rides the nearest boat, horse, minecart or vehicle |
| `follow [player\ | me], goto , wander [radius], guard [radius], stay` |
| `skin \ | none` |
possess |
You drive it: your keys and mouse move it, and you see through its eyes. O or /puppet release lets go. Needs Puppets on your game |
run <command> |
Runs any command as it (run say hi, run give @s bread) |
say <text>, respawn, kill, wake, remove |
Talks, comes back to life, dies, gets out of bed, leaves |
status, `check health\ |
air\ |
play <script> [relative], stop |
Plays a script. stop lets go of everything |
Spawning takes options in any order: /puppet spawn Bob count 5 at 0 64 0 facing north in the_nether as survival skin jeb_. Add rejoin to have it come back where it last left. Spawning several gives Bob1 to Bob5 in a row.
Shadow. /puppet shadow logs you off and leaves a puppet with your own name and skin where you stood, holding what you held. Use it for AFK farms, or for testing what others see of you. When you log back in, you take its place.
Restarts. Puppets that were on when the server stopped come back when it starts, where they were.
Mob puppets
Any mob can be a puppet too: a horse, a villager, a zombie, a cow. Look at one and run /puppet mob take (or /puppet mob take @e[type=horse,limit=1,sort=nearest] as Star), or use Take the one I see on the menu's Mobs page. While it's a puppet, its own mind (wandering, fleeing, working, hunting) stands down and it does what it's told:
| Action | What it does |
|---|---|
| `move forward\ | back\ |
goto x y z, come, `follow [me\ |
player\ |
| `attack [nearest\ | player\ |
mount, dismount |
Rides the nearest thing it can |
possess |
You drive it with your own keys; right-click does what its kind does. O lets go |
play <script> [relative], stop |
Scripts and your recordings work on mobs too |
| `ai on\ | off` |
letgo |
An ordinary mob again |
What only some kinds can do, as they really can: horses jump high and rear, farmer villagers harvest and plant (seeds from their inventory), tamed pets sit and stand, sheep graze, creepers ignite, endermen pickup and place.
Unrestricted (/puppet mob Bessie unrestricted on) lifts all of that: any mob may place <block>, break, fly on, say <text>, speed <n>, tp, hit things, and replay a recording exactly where you went. A cow that builds is one command away.
Recording and scripts
Run /puppet record start myroute (or press Record me), then play it out yourself. Walk, build, open chests, click in machines, drive, shoot. Then run /puppet record stop, and any puppet can replay it with /puppet Bob play myroute. Add relative to start from where Bob stands instead.
Everything your game tells the server goes into the recording, including mods' own key presses and buttons (vehicle keys, gun triggers, machine buttons), byte for byte. So recordings work with mods Puppets has never heard of. Requests that only fetch something to display (Jade, Xaero, JEI) are left out.
Scripts are text files in puppets/scripts/ on the server, one action per line. The example_ scripts come with the mod:
# Walks a square, then waits to be told
repeat 4
move forward
wait 1s
move stop
turn right
end
goto ~5 ~ ~ # ~ is where the puppet is
waituntil idle # until it gets there
@Alice say Bob's back!
say Done
| Line | Meaning |
|---|---|
| any action | As above, without /puppet <name> |
wait 20, wait 3s |
Pause, in ticks (20 a second) or seconds |
repeat 3 ... end, loop ... end |
Repeat (loop repeats until the script is stopped) |
waituntil idle, waituntil health < 10 |
Hold here until it's done walking or mining, or until a check is true |
@Alice <action> |
Another puppet does it, so one script can direct several |
log <text>, stop, # comment |
A line that doesn't work is skipped and logged as PUPPET_SCRIPT_LINE_FAILED. It never crashes the server.
Mods
Recordings replay any mod's own packets. A few mods also get actions you can write by hand:
- Superb Warfare:
sbw forward\|back\|left\|right\|space\|shift\|ctrl\|flares\|fire\|noneholds vehicle keys - TACZ:
tacz draw\|shoot\|reload\|aim\|unaim\|fireselect\|melee\|bolt - Trinkets (Fabric) and Curios (Forge, NeoForge):
equipwears the held item in the first free slot that takes it - Rackcraft: the jetpack and zero-g thrust follow
jumpandsneak
Tested with Rackcraft machines, Create (wrench), Farmer's Delight (cutting board), Traveler's Backpack, Artifacts, TACZ, Superb Warfare and the 300-mod Rackcraft Expanded pack.
For server owners
puppets/config.json explains each setting next to it:
| Setting | Default | |
|---|---|---|
rejoinAfterRestart |
true | Puppets that were on come back after a restart |
maxPuppets |
50 | The most at once (0: no limit) |
permissionLevel |
2 | Who may use /puppet (2: operators) |
shadow |
true | Whether players may leave a shadow |
Puppets use offline-mode UUIDs from their names, so they never clash with real accounts. Skins come from Mojang's public profile service and are cached in puppets/skins.json.
For developers
ServerPlayerEntity bob = PuppetsApi.spawn(server, "Bob", world, new Vec3d(0, 64, 0));
PuppetsApi.act(server, "Bob", "move forward"); // any action, as its words
PuppetsApi.act(server, "Bob", "play example_square");
boolean isPuppet = PuppetsApi.isPuppet(player);
PuppetsApi.remove(server, "Bob");
The example uses the 1.20.1 and 1.21.1 names. On 1.21.11 and 26.3 they are ServerPlayer and Vec3.
A puppet is an ordinary server player, so anything that works on a player works on it. For automated tests, check lines (PUPPET_CHECK ... true|false in the log) pair with a command runner. Rackcraft DevTools' assert puppet Bob check air > 0 is one. Scripts log PUPPET_SCRIPT DONE, PUPPET_ARRIVED and PUPPET_LOG lines.
For your own actions and behaviours, see addon-template/: an example addon to copy, with a "wave" action, a "circle" behaviour and a join listener. It registers through the puppets Fabric entrypoint, or a META-INF/services file on Forge and NeoForge.
Build each Minecraft version from its folder: cd 1.20.1 && ./gradlew build (jars in fabric/build/libs and forge/build/libs), cd 1.21.1 && ./gradlew build or cd 1.21.11 && ./gradlew build (Fabric, Forge and NeoForge), or cd 26.3 && ./gradlew build (Fabric and NeoForge). Build with Java 25. tools/ingame_basic.txt is the in-game test every build passes.
Project description from CurseForge.
Pick your setup
Puppets by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.21.11
4 loader builds1.21.4
4 loader builds1.21.1
4 loader builds1.21
4 loader builds1.20.4
4 loader builds1.20.1
3 loader builds1.20
3 loader builds1.19.2
3 loader builds1.18.2
3 loader builds1.16.5
2 loader buildsCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Puppets versions and loaders
Puppets 1.1.0 (Forge 1.21.4)
puppets-forge-1.1.0-mc1.21.4.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.21.11)
puppets-forge-1.1.0-mc1.21.11.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.21.1)
puppets-forge-1.1.0-mc1.21.1.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.20.4)
puppets-forge-1.1.0-mc1.20.4.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.20.1)
puppets-forge-1.1.0-mc1.20.1.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.19.2)
puppets-forge-1.1.0-mc1.19.2.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.18.2)
puppets-forge-1.1.0-mc1.18.2.jar
13 Nov 2026
Puppets 1.1.0 (Forge 1.16.5)
puppets-forge-1.1.0-mc1.16.5.jar
13 Nov 2026
puppets-forge-1.0.0+mc1.21.11.jar
puppets-forge-1.0.0-mc1.21.11.jar
9 Nov 2026
puppets-forge-1.0.0+mc1.21.1.jar
puppets-forge-1.0.0-mc1.21.1.jar
9 Nov 2026
puppets-forge-1.0.0+mc1.20.1.jar
puppets-forge-1.0.0-mc1.20.1.jar
9 Nov 2026
Looking for an older file? The official CurseForge project page is in Resources.