Ride a PetDocumentation← Portfolio

#Configuration

Everything an owner sets up without touching game logic lives in two modules in ReplicatedStorage.RidePetShared:

ModuleHolds
CatalogBalance: egg luck and hatch times, pet odds and income, prices, curves, radar duration, slots
ConfigSetup: admins, sounds and music, the loading screen, Robux products and gamepasses

#Config.General

SettingMeaning
GameNameName used by the game's texts
VersionFree text version number

#Config.Admins

[UserId] = "label". The label is only a note. Everyone in this list gets the Admin button and panel (see Admin Panel). Catalog.Admins reads this table, so there is only one list.

#Config.Audio

SettingMeaning
SfxGroupVolume, MusicGroupVolumeStart volume of the two sound groups (SoundService.RP_Sfx, RP_Music)
MinGapPer-sound minimum time between two plays (stops hover spam)
MusicFadeSecondsLength of the fade between background and carry music
BackgroundMusic{ asset id, volume }; id 0 = no music
CarryMusicThe music that plays instead while you carry an egg
SoundsInterface sounds, each name = { asset id, volume } (ui_click, purchase, rebirth, level_up, egg_stolen, item_equip, …)

To add a sound, add a line to Sounds and call Sfx.play("name") from client code. The sounds are preloaded at start.

#Config.Loading

SettingMeaning
Title, SubtitleTexts on the loading screen
MinSeconds, MaxSecondsThe screen shows at least and at most this long
TipsThe rotating tips at the bottom

#Robux products and gamepasses

The Buy buttons in the Shop and Rebirth windows carry an attribute ProductKey (for example Cash1M). When a player presses one, the game looks the key up in Config.Products or Config.Gamepasses and asks Roblox to show the purchase prompt for that id.

  • id = 0 means "off". The button shows "This purchase is not available yet." Put the ID from the Creator Hub in id to switch the product on. IDs are never guessed.
  • Developer products are granted by the server script PurchaseSystem (MarketplaceService.ProcessReceipt). A receipt is only accepted when the product exists, is built, and the player's profile is loaded; otherwise Roblox retries later, so nobody pays for nothing.

#Config.Products

KeyWhat it givesStatus
Cash100K, Cash1M, Cash1Bcash = … moneyworks
SkipRebirthOne "skip": the next rebirth needs no cash and no petworks
PhoenixEgg1/3/10/50, GigantEgg1/3/10/50instantEgg — hatch that many eggs at oncenot built yet (the ID is ignored)

robux in each entry is only a label for you — the price itself is set in the Creator Hub.

#Config.Gamepasses

KeyStatus
InfiniteRadarNot built yet — radars are single-use for now

#Adding a new product

  1. Create the developer product in the Creator Hub and copy its ID.
  2. Add a line to Config.Products with the ID and what it gives (cash or rebirthSkip).
  3. Select the Buy button in StarterGui and add the attribute ProductKey (string) with the same key.
  4. Publish and test with the real purchase prompt.

Giving something new (for example a boost) needs one more branch in grant in PurchaseSystem.