# User Guide

Contains all the information relating to running the VirtualPlayers plugin.

# Installation

### Requirements

- A Paper server (or other derivative) running 1.20.6 or above

### Downloading

1. Download the [VirtualPlayers](https://modrinth.com/plugin/virtualplayers/versions) plugin
2. Stop your server and place the plugins in your plugins folder
3. Start the server and VirtualPlayers will load

# Utilizing Virtual Players

Virtual players can be created using the **/vp create &lt;name&gt;** command. By default, most actions from virtual players will not be sent to observers. In order to see all chat and command messages the virtual player receives, you must run **/vp verbose \[true|false\]**. Virtual players can be removed with **/vp remove &lt;name&gt;**.

If you wish to perform a large number of actions with virtual players, you can select an individual player by running **/vp select** **&lt;player&gt;**. This will mean that commands such as **/vp chat \[player\]** or anything denoted with the optional "**\[player\]**" argument will not need the player name entered each time.

You can see all virtual players by running **/vp list**. If you wish to observe a virtual player not created by yourself, you can run **/vp observe &lt;player&gt;**.

Virtual players will also have the default command permissions upon creation, meaning they will not be able to run administrator commands. In order to op them, you can run **/vp op \[player\]**.

# Commands

<table border="1" id="bkmrk-command-description-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><tbody><tr><td>**Command**  
</td><td>**Description**  
</td></tr><tr><td>/vp create &lt;name&gt;</td><td>Creates a new virtual player.</td></tr><tr><td>/vp remove &lt;name&gt;</td><td>Removes a virtual player.</td></tr><tr><td>/vp removeall</td><td>Removes all virtual players.</td></tr><tr><td>/vp select &lt;player&gt;</td><td>Select a virtual player.</td></tr><tr><td>/vp observe &lt;player&gt;</td><td>Observes a virtual player.</td></tr><tr><td>/vp unobserve &lt;player&gt;</td><td>Unobserves a virtual player.</td></tr><tr><td>/vp list</td><td>Lists virtual players.</td></tr><tr><td>/vp verbose \[player\] \[true|false\]</td><td>Toggles verbosity for the virtual player.</td></tr><tr><td>/vp teleport \[player\] \[location\]</td><td>Teleports the virtual player to a location.</td></tr><tr><td>/vp command \[player\] &lt;command...&gt;</td><td>Runs a command as a virtual player.</td></tr><tr><td>/vp chat \[player\] &lt;message...&gt;</td><td>Sends a chat message as a virtual player.</td></tr><tr><td>/vp op \[player\]</td><td>Ops the virtual player.</td></tr><tr><td>/vp deop \[player\]</td><td>De-ops the virtual player.</td></tr><tr><td>/vp attack \[player\] &lt;target&gt; \[damage\]</td><td>Attacks another player as this virtual player.</td></tr></tbody></table>

# Permissions

<table border="1" id="bkmrk-permission-command-v" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><tbody><tr><td>**Permission**  
</td><td>**Command**  
</td></tr><tr><td>virtualplayers.command.help</td><td>/vp \[help\]</td></tr><tr><td>virtualplayers.command.create</td><td>/vp create</td></tr><tr><td>virtualplayers.command.remove</td><td>/vp remove</td></tr><tr><td>virtualplayers.command.removeall</td><td>/vp removeall</td></tr><tr><td>virtualplayers.command.select</td><td>/vp select</td></tr><tr><td>virtualplayers.command.observe</td><td>/vp observe</td></tr><tr><td>virtualplayers.command.unobserve</td><td>/vp unobserve</td></tr><tr><td>virtualplayers.command.list</td><td>/vp list</td></tr><tr><td>virtualplayers.command.verbose</td><td>/vp verbose</td></tr><tr><td>virtualplayers.command.teleport</td><td>/vp teleport</td></tr><tr><td>virtualplayers.command.command</td><td>/vp command</td></tr><tr><td>virtualplayers.command.chat</td><td>/vp chat</td></tr><tr><td>virtualplayers.command.op</td><td>/vp op</td></tr><tr><td>virtualplayers.command.deop</td><td>/vp deop</td></tr><tr><td>virtualplayers.command.attack</td><td>/vp attack</td></tr></tbody></table>