VirtualPlayers API The VirtualPlayers API can be accessed through the  VirtualPlayers   class, by calling  VirtualPlayers.api().   A  VirtualPlayer   can be created using the  createVirtualPlayer(String)  method. A VirtualPlayer extends Bukkit's Player class, meaning all functions available to a normal Player will be available here. Keep in mind that some methods may not work as intended, since a VirtualPlayer is.. well... a virtual player at the end of the day, so functionality like sending block changes or adding them as a passenger to an entity will not work. Within the VirtualPlayer class, you can also run  addObserver(CommandSender) to observe a virtual player. You can also get a list of all observers by running getObservers() . VirtualPlayers can be removed using the  removeVirtualPlayer( VirtualPlayer )  method in the  VirtualPlayers   API class. You can also retrieve a  VirtualPlayer by calling  getVirtualPlayer(String) , taking in the name of the  VirtualPlayer . For a full list of methods and classes offered by the API, see the VirtualPlayers Javadocs .