https://github.com/forestoflight/understudy
A simulated player Canopy extension for Minecraft Bedrock Edition.
https://github.com/forestoflight/understudy
mcpack minecraft minecraft-bedrock minecraft-bedrock-addon minecraft-bedrock-edition multiplayer
Last synced: 2 months ago
JSON representation
A simulated player Canopy extension for Minecraft Bedrock Edition.
- Host: GitHub
- URL: https://github.com/forestoflight/understudy
- Owner: ForestOfLight
- License: mit
- Created: 2024-08-15T04:54:23.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-06T01:37:53.000Z (about 1 year ago)
- Last Synced: 2025-04-13T23:15:42.032Z (about 1 year ago)
- Topics: mcpack, minecraft, minecraft-bedrock, minecraft-bedrock-addon, minecraft-bedrock-edition, multiplayer
- Language: JavaScript
- Homepage:
- Size: 477 KB
- Stars: 11
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README

Precise Control for Simulated Players
[](https://github.com/ForestOfLight/Understudy/releases/latest)
[](https://www.curseforge.com/minecraft-bedrock/addons/understudy)
[-brightgreen)](https://feedback.minecraft.net/hc/en-us/sections/360001186971-Release-Changelogs)
[](https://app.codacy.com/gh/ForestOfLight/Understudy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[](https://discord.gg/9KGche8fxm)
Understudy gives you complete control over simulated players in your Minecraft Bedrock world. Afk your farms, load areas, and more -- all through a set of powerful, intuitive commands!
> [!IMPORTANT]
> This addon is a **Canopy Extension**, which means **Canopy** must be installed in your world for it to work.
> [Download **Canopy** here!](https://github.com/ForestOfLight/Canopy)
## Usage
### Commands
**Usage: `/simplayer:join `**
Spawn a simulated player with the given name at your current location in your current game mode.
**Usage: `/simplayer:leave `**
Remove the simulated player with the given name.
**Usage: `/simplayer:rejoin `**
Spawn a simulated player with the given name at its last location, if it has one.
**Usage: `/simplayer:tp `**
Teleport the simulated player with the given name to your current location.
**Usage: `/simplayer:look [lookOption: up/down/noth/south/east/west/block/entity/me/at] [x y z: location]`**
Make the simulated player with the given name look at the specified target.
- `up`, `down`, `north`, `south`, `east`, `west` will make the simulated player look in different cardinal directions.
- `block` and `entity` will make the simulated player look at the block or entity you are looking at.
- `me` will make the simulated player look at you.
- `at \` will make the simulated player look at the specified coordinates.
**Usage: `/simplayer:move [moveOption: forward/backward/left/right/block/entity/me/to] [location: x y z]`**
Make the simulated player with the given name move in the specified direction or (navigate) to the specified location. This command uses Minecraft's normal pathfinding system, so the simulated player won't be able to navigate very far very far at once.
- `forward`, `backward`, `left`, `right` will make the simulated player move continuously relative to the direction they are facing.
- `block` and `entity` will make the simulated player move towards the block or entity you are looking at.
- `me` will make the simulated player move towards you.
- `to \` will make the simulated player move towards the specified coordinates.
**Usage: `/simplayer:action [timingOption: once/after/continuous/interval/stop] [ticks: int]`**
Make the simulated player with the given name perform the specified action.
**Actions:**
- `attack` will make the simulated player attack the block or entity they are looking at.
- `interact` will make the simulated player interact with the block or entity they are looking at.
- `use` will make the simulated player use the item they are holding.
- `build` will make the simulated player place a block from their inventory at the location they are looking at.
- `break` will make the simulated player break the block they are looking at.
- `drop` will make the simulated player drop one item from their hand.
- `dropstack` will make the simulated player drop the entire stack of items from their hand.
- `dropall` will make the simulated player drop their entire inventory.
- `jump` will make the simulated player jump.
**Timing options:**
If no timing option is specified, the simulated player will perform the action once.
- `once` will make the simulated player perform the action once.
- `after` will make the simulated player perform the action after a delay specified by the last argument.
- `continuous` will make the simulated player perform the action continuously.
- `interval` will make the simulated player perform the action at regular intervals specified by the last argument.
- `stop` will make the simulated player stop performing the action.
**Usage: `/simplayer:select `**
Make the simulated player with the given name select the item in the specified hotbar slot.
**Usage: `/simplayer:sprint `**
Make the simulated player with the given name sprint or stop sprinting.
**Usage: `/simplayer:sneak `**
Make the simulated player with the given name sneak or stop sneaking.
**Usage: `/simplayer:claimprojectiles [radius: int]`**
Make the simulated player with the given name become the owner of all projectiles within a block radius. If no radius is specified, it defaults to 25 blocks.
**Usage: `/simplayer:stop `**
Stop all actions the simulated player with the given name is doing.
**Usage: `/simplayer:swapheld `**
Swaps the held item of the simulated player with the given name with the item you are holding.
**Usage: `/simplayer:inventory `**
Shows the inventory of the simulated player with the given name in chat.
**Usage: `/simplayer:prefix `**
Set a nametag prefix for all simulated players. Use `-none` to remove the prefix.
### Rules
These rules can be toggled in **Canopy**.
- **`simplayerRejoining`**: Makes online simulated players rejoin when the world reloads.
- **`noSimplayerSaving`**: Disables saving playerdata for simulated players. Improves performance but causes simulated players to lose their inventory and location when they leave and rejoin.