#Configuration
Everything an owner sets up without touching game logic lives in two modules in ReplicatedStorage.RidePetShared:
| Module | Holds |
|---|---|
Catalog | Balance: egg luck and hatch times, pet odds and income, prices, curves, radar duration, slots |
Config | Setup: admins, sounds and music, the loading screen, Robux products and gamepasses |
#Config.General
| Setting | Meaning |
|---|---|
GameName | Name used by the game's texts |
Version | Free 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
| Setting | Meaning |
|---|---|
SfxGroupVolume, MusicGroupVolume | Start volume of the two sound groups (SoundService.RP_Sfx, RP_Music) |
MinGap | Per-sound minimum time between two plays (stops hover spam) |
MusicFadeSeconds | Length of the fade between background and carry music |
BackgroundMusic | { asset id, volume }; id 0 = no music |
CarryMusic | The music that plays instead while you carry an egg |
Sounds | Interface 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
| Setting | Meaning |
|---|---|
Title, Subtitle | Texts on the loading screen |
MinSeconds, MaxSeconds | The screen shows at least and at most this long |
Tips | The 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 = 0means "off". The button shows "This purchase is not available yet." Put the ID from the Creator Hub inidto 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
| Key | What it gives | Status |
|---|---|---|
Cash100K, Cash1M, Cash1B | cash = … money | works |
SkipRebirth | One "skip": the next rebirth needs no cash and no pet | works |
PhoenixEgg1/3/10/50, GigantEgg1/3/10/50 | instantEgg — hatch that many eggs at once | not 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
| Key | Status |
|---|---|
InfiniteRadar | Not built yet — radars are single-use for now |
#Adding a new product
- Create the developer product in the Creator Hub and copy its ID.
- Add a line to
Config.Productswith the ID and what it gives (cashorrebirthSkip). - Select the Buy button in
StarterGuiand add the attributeProductKey(string) with the same key. - Publish and test with the real purchase prompt.
Giving something new (for example a boost) needs one more branch in grant in PurchaseSystem.