RPGPets
Read before buying:
  • This plugin currently only supports Minecraft versions 1.11 - 1.12!
  • As of now, I don't plan on supporting versions of Minecraft earlier than 1.11 while newer versions will most likely receive updates
  • Different types of pets don't have different abilities, but they can differ in their stats!
  • Make sure you have all dependencies available:
    - Java 8
    - ProtocolLib
About
RPGPets adds many different pets to the game, which follow their owner around like normal pets, with the difference that there is a leveling system, that pets are tradable and more cool stuff!

First you will usually start by giving the player an egg (/rpgpets give <player> egg. Usually you want to sell those in some kind of adminshop), which they have to carry around for a certain (configurable) distance, holding it in their secondary hand:
2017-06-20_20.04.00.png


2017-06-20_20.04.29.png


Once they egg hatches it will be replaced with a randomly selected pet (chances configurable):
2017-06-20_20.05.03.png

Then it is already time to spawn the pet (Rightclick):
2017-06-20_20.05.41.png

As with real pets, you should probably give it a name - but keep in mind that pets can only be named once (The pet has to be despawed to be removed from the inventory):
2017-06-20_20.08.39.png

Initially (With most configurations), pets will be babies and very weak. This means that you will usally want to make them attack passive mobs first until the point when they grow up:
2017-06-20_20.10.50.png

After killing a couple mobs, your pet should start to level up:
2017-06-20_20.11.01.png

When leveling up your pet will gain a configurable amount of speed, attack damage, attack knockback and health. Additionally, a "baby-modifier" debuff will be removed once they grow up, which happens randomly in a configurable level range:
2017-06-20_20.13.24.png

Once they grow up, they will usually be able to deal with monsters: If you're near a moster they will start to attack it automatically (This includes other players Zombie pets!):
2017-06-20_20.15.12.png

Like with players, monsters will fight back and can potentially manage to kill your pet, which makes it retreat into your inventory and temporarily unsummonable:
2017-06-20_20.24.18.png

Pets can be "revived" using custom "Pet Food" (name configurable) which can be given using /rpgpets give <player> food,
2017-06-20_20.24.12.png

and be used in the crafting window together with a pet (To prevent "revive-spam" this crafting recipe has a configurable cooldown):
2017-06-20_20.24.25.png

2017-06-20_20.24.27.png

Once your pet has been revived it is ready to continue fighting!
2017-06-20_20.24.57.png


PVP Mechanics:
- Pets are not bound to players, but rather just to their "container item"
- Spawned and non-spawned pets will be dropped as their respective item from the carrier
- Spawned pets will die (until revived), when their owner is killed
- Pets can be traded using normal shop plugins, since all relevant data is stored in the lore of the container item
- Logging out with a spawned pet that isn't healed completely will kill it (Also temporarily)
- You cannot despawn your pet if it is not completely healed (Health potions work on all pets but the Zombie)

All available Pets:
2017-06-21_15.07.11.png

2017-06-21_15.07.29.png

2017-06-21_15.07.39.png

2017-06-21_15.08.44.png

2017-06-21_15.09.05.png

2017-06-21_15.09.20.png

2017-06-21_15.09.46.png

2017-06-21_15.09.57.png

2017-06-21_15.10.08.png

2017-06-20_20.05.41.png

Installation

- Download and install ProtocolLib (The latest version will do)
- Download RPGPets and drop into the plugins directory
- Start and stop the server to load the default configs
- Configure

Configuration
The configuration is rather extensive and should NOT be skipped. Default values may not suit your need!

config.yml
Code (YAML):

# The distance in m (or blocks) a player has to move for an egg to hatch
distance_to_hatch: 50

# The start and end of the area where pets grow up to be adults (Start: Inclusive, End: Exclusive)
# This means that if they reach the growup_end level, they are guaranteed to be adults
growup_start: 5
growup_end: 10

# Pet feed cooldown (The amount of seconds the player has to wait until they can feed again)
feed_cooldown: 60

# Enable automatic error reporting! (Errors will be sent to my - Yamakaja's - sentry instance)
# More info on https://sentry.io
sentry: true

# Enable metrics reporting to bstats
metrics: true
messages.yml
Code (YAML):
[/SIZE]
# The prefix to use for messages from RPGPets, insert with {prefix}
prefix: "&8[&bRPGPets&8] "

general:
levelup: "&6{0}&b just leveled up to level &6{1}&b!" # 0: Name of pet that leveled up, 1: New level
petname: "&8[&b{0}&8] &6{1} &c{2}\u2764" # 0: Level, 1: Pet name, 2: Health in hearts (HP/2)
pethealth: "&cYour pet has to be at full health to be picked up!"
petdeath: "&cYour pet has died and needs to be revived using pet food!"
status: "&cThis pet is not ready to be spawned!"
nameonce: "&cPets can only be named once!"
feedcooldown: "&cYou can only feed pets once per minute!"

command:
noperm: "&4You don't have permission to use this command!"
syntax: "&cCorrect syntax: {0}" # Usage
help:
hint: "&bSee &6/rpgpets help&b for a list of commands"
description: "Shows this message"
subcommands: "&bAvailable subcommands:"
subcommand: "&e - &6{0}: &f{1}" # 0: Subcommand, 1: Description
give:
description: "Gives player RPGPets items"
syntax: "/rpgpets give <player> <food/egg> [amount]"
targetnotfound: "&cInvalid player!"
unknown: "&cUnknown item requested!"
success: "&aSuccessfully gave {0}x {1}&a to {2}!" # 0: Amount, 1: of, 2: to

item:
food:
name: "&6Pet Food"
tooltip: "&8Place into the crafting window\n&8together with an exhausted pet"
egg:
name: "&1Mystery Egg"
lore:
remaining: "&b{0}m &8to go until the egg cracks!" # 0: Remaining distance in meters/blocks
hand: "&8Note, eggs have to be carried in your secondary hand!"
hatch: "&aYour egg has hatched!\n&8You can now give it a name in an anvil\nand start to train it by fighting mobs!"
pet:
defaultname: "Unnamed Pet" # WARNING: May not contain colors!
lore:
type: "&8Type: &6{0}"
level: "&8Level: &6{0}"
exp: "&8Experience progress: &6{0}%"
maxlevel: "&6At max level!"
age: "&8Age: &6{0}"
baby: "Baby"
adult: "Adult"
status: "&8Status: {0}"
spawned: "&aActive"
ready: "&6Inactive"
dead: "&4Exhausted" # The state in which the pet has to be fed to be reactivated

petstats.yml
Code (YAML):

cow: # Pet type
maxLevel: 20 # The maximum level a pet can reach
baseExpRequirement: 10 # The exp requirement to level up at level 0
expRequirementMultiplier: 1.5 # The multiplier for the base exp requirement at further levelups
# Required exp to levelup: baseExpRequirement * expRequirementMultiplier ^ level
randomWeight: 10 # The weight in the random selection of a pet
# More information about the weight system:
# The probability for a mob to be selected is the fraction of its weight by the sum of all weights
# This means if there were only two pets and both had the same value, the chance would be 50% for both of them
# But if one had a weight of one and the other one a weight of three, the chance for the first one to be
# selected would be 1/4 while the chance for the second one would be 3/4 (Since the sum of weights = 4)
# TL;DR: Higher weight, higher chance to be selected
base: # The stats at level 0 (If pets were grown up at level 0)
speed: 1 # The base movement speed
attackDamage: 1 # Damage dealt to enemies at level 0
knockback: 0.5 # Knockback dealt to enemies at level 0
maxHealth: 10 # The maximum health of the entity (Players: 20)
levelup: # What will be added to the base stats upon a levelup
# Generally: grownUp_stat(level) = baseValue + level * levelupMod_stat
speed: 0.1 # How much speed should be gained from levelup
attackDamage: 0.5 # ...
knockback: 0.05
maxHealth: 5
babymodifier: # A multiplier that is applied to the stats of baby animals
# Generally: babyStat_stat(level) = grownUp_stat(level) * babyMod_stat
speed: 1.5 # The speed modifier for baby pets
attackDamage: 0.5 # ...
knockback: 0.25
maxHealth: 0.5
pig:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
llama:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
mushroom_cow:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
pig_zombie:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
polar_bear:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
rabbit:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
sheep:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
zombie:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 5
knockback: 2
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 2
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1
chicken:
maxLevel: 20
baseExpRequirement: 10
expRequirementMultiplier: 1.5
randomWeight: 10
base:
speed: 1
attackDamage: 1
knockback: 0.5
maxHealth: 5
levelup:
speed: 0.1
attackDamage: 0.5
knockback: 0.05
maxHealth: 2
babymodifier:
speed: 1.5
attackDamage: 0.5
knockback: 0.25
maxHealth: 1



permissions.yml
Code (YAML):

command:
help: rpgpets.command.help
give: rpgpets.command.give



Plugin Integration:
- WorldGuard: Pets cannot attack other pets and players in zones where pvp is denied
- Parties: Pets cannot attack party members and their pets

Bugs Reports / Support / Feature Requests:
- Please report bugs and request features over at the GitHub issue tracker and avoid using the review section for that
- If you have a direct question you can usually find me on Spigots IRC network (As "Yamakaja")

Source Code:
All the source-code is available over at GitHub. But if you like this plugin and want to support me, please consider buying it here anyway ;)

Latest updates

  1. 1.1.13

    1.1.13
  2. 1.1.12

    1.1.12

Latest reviews

no funciona :S
Thanks!
BlackSpigot General Chat
Rules Help Users
    xYuriko @ xYuriko: Why plugins are free here strange question lol
    Top