Core Features
Version 2.1.0: Update DataStore, Easy Pet System and Roulette together. Back up customized pack folders first. Restart old servers after updating; keep StoreVersion and existing player data unchanged.
Setup
Developer API
Hatching, equipping and merging from your own code
local pets = ctx.require("EasyPetSystem")
-- Hatch, and see what came out.
local result = pets.HatchEgg(player, "Tier1Egg", 1)
if result.ok then
for _, pet in result.pets do
print(pet.id, pet.rarity, pet.multiplier)
end
end
-- One pet, by the uid it was given.
pets.EquipPet(player, uid)
pets.UnequipPet(player, uid)
pets.DeletePet(player, uid)
-- Three of the same, into the next rarity.
pets.MergePets(player, "Cat")
-- Or the whole inventory at once.
pets.EquipBest(player)
pets.MergeAll(player)
Every call refuses rather than half-succeeds: a hatch the player cannot afford, a merge without three of a kind and a delete on an equipped pet all come back with a reason instead of leaving the save half-changed. The menu, the eggs and the toasts all move on their own when they do work, so granting a pet from a code or a quest is this one call and nothing else.
The multiplier your game multiplies by
local pets = ctx.require("EasyPetSystem")
-- Added up: 1 + 1.5 + 2 = 4.5
local total = pets.GetTotalMultiplier(player)
-- Multiplied: 1 x 1.5 x 2 = 3.0
local product = pets.GetTotalMultiplier(player, true)
-- Which is the whole of paying out with pets.
local ds = ctx.require("DatastorePurchaseSystem")
ds.Increment(player, "Stats.Cash", baseCash * total)
Two ways of combining the same numbers, because a game where every pet adds and a game where every pet doubles are different games. Pick one, pass it the player, and that is the only line of pet code the rest of your game ever needs.
Customisation
An egg is a price and a drop table
Name it, price it, pick the currency, then list what comes out and how often. Add an egg, remove one, or make the last one Robux instead of cash. The percentages are totalled as you type so an egg cannot quietly add up to 97.
A pet is a model, a multiplier and a rarity
Any model you own can be a pet. Drop it in, give it a multiplier and a rarity, and it is available to every egg. The plugin turns it in 3D while you edit, so a model facing the wrong way is something you see rather than something you find out in game.
The three gamepasses, already built
Triple Hatch, Auto Hatch and Extra Pet Space are written, wired and shown in the shop. You paste three ids. With Datastore's FreeMode switched on you can test all three without owning them and without spending Robux.
How pets move
Ground, Float and Follow, changeable while the game is running rather than only at boot. Speed, spacing, bob height and how far behind the player they sit are all numbers in one config, so the difference between a pet that trots and a pet that drifts is a value, not a rewrite.Rarities, and what a rare one looks like
Each rarity carries its own colours: the card in the menu, the pet's name, the flash on a new one and the text on the egg board. Change one and it changes everywhere that rarity appears. A rare hatch is announced to the whole server, and merging your way to one announces it too.Works great with
Required
Pets panel
Hatching
Pets as rewards
Rare hatchesOnly Datastore & Purchase System is required, because it is what remembers a player's pets. The other four are optional and the pack runs without any of them: it asks for a sound, a panel or a toast whether or not they are there, and gets on with it when they are not.
Documentation
The 28 pets, every field, the full API and the configuration guide live at rblxessentials.com/docs.
Updates
📋 Version history and changelogs for all packs are available at rblxessentials.com/docs#changelog.