The Puppeteer is an origin for Overgrown's Apoli and Origins, rebuilt from InkBat's Puppeteer origin (see video below). A puppeteer works their victim through a voodoo doll: what happens to the doll happens to the victim.
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/lLmvudbJQ_A" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>Everything is written in Apoli JSON. No power runs a command, and none uses apoli:action_over_time. Each power reacts to an event (a key press, a hit, using the doll, the doll taking fire damage, an iron golem's footsteps), so an idle puppeteer costs the server close to nothing.
Installing
The folder is both a data pack and a resource pack.
- Put it (or a zip of it) in the world's
datapacksfolder. - Put the same folder in
resourcepacksand enable it. It holds the translations, the voodoo doll's model, texture and animations, the two HUD bars and the origin icon. Without it the doll looks like Apoli's plain minion and the names show as translation keys.
The powers
| Power | What it does |
|---|---|
| Voodoo Doll | The primary key sets the doll down in front of you, facing you. Pressing it again calls the doll back, from any distance. Sneak and press it to dismiss the doll. Use the doll with an empty hand to read what it holds, or sneak while you do to wash it clean. A HUD bar shows while you have a doll. |
| Target a Victim | Hitting a creature or player makes it your victim. Witch sparks mark it, and only you see them. The secondary key makes you your own victim, and pressing it again lets your victim go. A HUD bar shows while you have a victim. |
| Pyro Voodoo | Flint and steel or a fire charge used on the doll sets it alight for 20 seconds. Whenever the doll takes fire damage, from that or from fire, lava or lightning, your victim is set alight for 2 seconds, so the victim burns while the doll does and stops shortly after. |
| Potion Voodoo | A potion, splash potion, lingering potion, tipped arrow or brewing ingredient used on the doll is soaked up, and your victim suffers that effect until the doll soaks up a different one, is washed or is dismissed. A spectral arrow gives Glowing and a shulker shell Levitation. Drinkable potions leave you the empty bottle. |
| Ender Voodoo | An ender pearl used on the doll charges it. While it is charged, the primary key pulls your victim to the doll if the victim is in the doll's dimension, or takes you there when you are your own victim. The pull spends the charge. |
| Illager Ally | Illagers treat you as one of their own. Villagers refuse to trade with you. Iron golems that walk within 10 blocks of you turn on you. |
| Blinding Sun | Standing in strong sunlight (sky light 13 or more at your feet) during the day gives you Slowness and Hunger, which linger for a moment after you step into the shade. |
| Picky Preferences | You can only eat raw meat (#puppeteer:puppeteer/raw_meat, plus #origins:ignore_diet). Milk, potions and cake are refused too. |
What the doll soaks up
| Effect | Potions | Ingredient |
|---|---|---|
| Swiftness / Swiftness II | swiftness, long / strong | sugar |
| Slowness / Slowness IV | slowness, long / strong | |
| Leaping / Leaping II | leaping, long / strong | rabbit's foot |
| Strength / Strength II | strength, long / strong | blaze powder |
| Poison / Poison II | poison, long / strong | spider eye |
| Regeneration / Regeneration II | regeneration, long / strong | ghast tear |
| Fire Resistance | fire resistance, long | magma cream |
| Water Breathing | water breathing, long | pufferfish |
| Night Vision | night vision, long | golden carrot |
| Invisibility | invisibility, long | |
| Turtle Master / Turtle Master II | turtle master, long / strong | turtle shell |
| Slow Falling | slow falling, long | phantom membrane |
| Weakness | weakness, long | fermented spider eye |
| Luck | luck | |
| Glowing | spectral arrow | |
| Levitation | shulker shell | |
| Wind Charged, Weaving, Oozing, Infested (1.21.1) | the potion of the same name | breeze rod, cobweb, slime block, stone |
The doll holds one effect at a time. Using the same effect again does nothing and keeps your item. Water, awkward, mundane and thick potions and the instant potions (Healing, Harming) are refused.
Cleanup
- Dismissing the doll, dying, or losing the origin removes the doll. Dismissing it or dying also gives a charged pearl back.
- Dying, logging out or losing the origin lets your victim go. A victim who was offline at the time drops the curse the next time they join.
- A doll left behind when you called a new one from far away, or after a server restart, removes itself the next time its chunk loads. Using such a stray doll also removes it.
Differences from InkBat's pack
- The doll does not hold items. Items you use on it are soaked up (consumed) and the doll remembers the effect. A minion can't be handed an arbitrary item from JSON and doesn't draw held items.
- The doll's chunk is not force-loaded. Curses and pulls work from anywhere, but the doll only burns, and so only sets your victim alight, while its chunk is loaded.
- The doll turns to face you when it is set down or called back, instead of turning toward you every few ticks.
- Villagers refuse to trade instead of raising prices to absurd levels.
- Blinding Sun checks the sky light at your feet instead of scanning a 5 by 5 by 5 cube.
- Fixed from the original: with two puppeteers on a server the commands acted on the nearest tagged player instead of the owner; player victims were set alight through summoned arrows; removing the doll threw away its item and could leave its chunk force-loaded; a full entity scan ran every two ticks.