The RPGHorses plugin is a custom-coded plugin developed specifically for UrbanMC.
It contains the basic features of owning a horse such as claiming it, summoning it, storing it in a stable, etc.
The base command for RPGHorses is /rpghorses or /horses or /rh.
The sub-arguments are as follow:
- Claim: When you run this sub-argument, you will be prompted to right click on a horse to claim it. The horse must not already be claimed by another player and must be tamed. There is also a $10,000 in-game money charge when you claim a horse.
- List: View all your owned horses. This list will display the horse's id and their name. For example, one claimed horse would look like: 1) Horse #1. 1 is the horse id, and "Horse #1" is the name. You need to know the horse id for the specific horse commands.
- Set-stable: Set a stable at your location. This stable location will be where the horses are teleported when you store them using /horses store.
- Summon [Horse ID]: Summon a horse to your location! It costs 5 xp levels to summon a horse, and there is a 1 min 30 second delay per horse summon. Remember, the horse has to be "at the stable" meaning that the horse must have been stored.
- Store [Horse ID]:Teleport a horse to your stable ! It costs 5 xp levels to store a horse, and there is a 1 min 30 second delay per horse stored.
- Deed [Horse ID]: This command will allow you to write a "horse deed". You must have a paper in your hand. The purpose of horse deeds are for selling/giving away a specific horse. You can use horse deeds for /trade, or put them up for auctions. Once a player right clicks a horse deed, they will then assume ownership of that horse (Horse Deeds are only valid for a one time use because they are associated to the horse and the owner of the horse).
- Public-Rider [Horse ID]: By default your horse does not allow others to ride it. This command will toggle public riding for your horse.
Whistling for horses: You can use a horse whistle, found in epic and legendary treasure chests, to call nearby horses. There is a 1 min 30 sec delay per each whistle. The range for the whistle is 20 blocks.
Naming your horse: You can name your horse like you do any other mob. Just apply a name tag to it with the specific name. You cannot name other horses claimed by other players.
Common Issue: Receiving message, "Horse entity not found!"
This issue is caused when the server cannot find your horse. Most of this time, this is caused by the horse being in an unloaded chunk. To solve this issue, simply just find your horse in the world and run the command near your horse. To prevent this issue from occurring, make sure you put your horse in a secure location (preferably in the center of a chunk) where it cannot escape and move around. Please if you receive this message, do not try running horse commands repeatedly until you are near the horse. The reason is because the server will spend time searching for your horse (you can read about how searching works below).
Common Issue: Does not show a horse after server restart
This issue is caused on server loading. When the server loads, the horse plugin tries to find everyone's horses. If it can't find the horse (sometimes because the horse is in an unloaded chunk), then it will remove the horse from the player's list as a way to clean up dead, or sometimes corrupted horse entities. To prevent this issue from occurring, make sure you put your horses at a secure stable (preferably in the center of a chunk) where they cannot escape.
How the server searches/finds your horse entity:
Just like every player has a specific UUID (unique identification), so does every entity. The plugin stores the UUID of your horse when you claim it along with the horse ID. The plugin goes through several different methods of trying to find your horse entity.
Now if all that doesn't find your horse, then the plugin gives up, and that's when you receive "Horse Entity not found". Also it's important to note, that once the plugin finds your horse, it will keep track of it for as long as you are online. Let's say you re-log, and then try to summon your horse, that's when the plugin will search for your horse again.
- Searching through loaded chunks for the entity UUID. Like previously mentioned, the plugin knows the UUID of your horse. It will first search through all worlds, and all the loaded chunks to find your entity. (This is the fastest method, hence the first)
- Let's say that doesn't work. The plugin also tries to store the last location it saw your horse. It stores this last location whenever you mount/dismount, summon, store, or claim your horse. The last location is then used to find the horse. If the last location is in an unloaded chunk, the chunk will load. The plugin searches in a 16 block radius of the last location in order to find your horse.
- However, what if your horse is no longer in a 16 block radius of the last location, and it's not in that loaded chunk. The plugin then takes the radius farther. It will load every chunk in a 3 x 3 area of the location and then search in 48 block radius of the last location. This method is very server intensive and can lag the server if run constantly.
- If that doesn't work, we resort to a basic fail safe similar to the first method. Let's say that your horse is now in a loaded chunk (that the plugin may or may not have loaded). We search through all the worlds, and the loaded chunks in these worlds for a horse, not using the entity UUID this time, but by checking every horse to see if it belongs to the player and has the right horse ID.
This process emphasizes the importance of keeping your horse in a stored secure location. That way the plugin only has to use the second method to find your horse.