Clove Docs
Discord
Clove Outfit System

Getting Started

Welcome to the official documentation for Clove Outfit System V1.1.0. Use this site to install the latest release, update an existing installation safely, configure the system, review features, and check current known issues.

Before installing or updating

Save a backup of your place first. Existing V1.0.0 users must use the V1.1.0 Already Installed updater instead of running the First Install process.

System Preview

See Clove in action

Watch previews of Clove Outfit System and see how the system looks in-game.

Clove Outfit System
Clove Outfit System
Clove Outfit System
Clove on TikTok
First installation

Installing Clove V1.1.0

Use this process only when Clove is not already installed in the experience. The complete V1.1.0 model contains a disabled ReadMe (First Install) script with the installer command.

Already using Clove V1.0.0?

Do not run the first-install installer. Follow Updating Clove and use the disabled ReadMe (Already Installed) script included in the V1.1.0 model.

  1. 1
    Back up your experience

    Save your place before installing Clove and make sure you are not currently running a playtest.

  2. 2
    Enable the required Experience Settings

    Open File → Experience Settings → Security and enable Allow HTTP Requests, Enable Studio Access to API Services, and Allow Third Party Sales.

  3. 3
    Set Workspace SignalBehavior

    Select Workspace and change SignalBehavior from Default to Immediate.

  4. 4
    Insert the complete V1.1.0 model

    Insert Clove Outfit System V1.1.0 and do not manually ungroup anything inside the model.

  5. 5
    Run the First Install command

    Open the disabled ReadMe (First Install), copy the entire installer command, paste it into Roblox Studio's Command Bar, and press Enter. A successful install prints [CLOVE] INSTALLATION COMPLETED SUCCESSFULLY.

  6. 6
    Enter your license key

    Set the Value of ServerScriptService.AuthKey to your Clove license key. Do not rename, move, or publicly share the AuthKey.

  7. 7
    Set up outfit storage

    Every outfit must be its own uniquely named rig Model containing a HumanoidDescription. Store rigs in ServerStorage.OutfitStorage or leave them in Workspace.Outfits, depending on your configuration.

  8. 8
    Configure Clove

    Configure features in ReplicatedStorage.CoreStorage.Settings.GameSettings. Catalog Product IDs are stored in ReplicatedStorage.CoreStorage.Library.Shared.Catalog.ProductIdsModule.

  9. 9
    Run a full server playtest

    Confirm authorization succeeds, outfits load correctly, UI and avatar features work, purchases/cart/favorites behave correctly, items and ItemStands work, leaderboards load, and player data saves and loads without red Clove errors.

Existing installations

Updating Clove to V1.1.0

Use the V1.1.0 Already Installed updater only when Clove is already installed. The updater replaces the Clove system files while preserving important game content and creating configuration backups.

Back up your place before updating

Insert the complete Clove Outfit System V1.1.0 model, do not manually ungroup it, and do not run the updater while a playtest is active.

What the updater preserves

  • ServerScriptService.AuthKey
  • ServerStorage.OutfitStorage
  • Workspace.Outfits, Workspace.Items, and Workspace.ItemStands
  • Non-Clove scripts in StarterPlayerScripts and ServerScriptService, unless they use the exact name of a V1.1.0 Clove file being replaced.

Automatic configuration backup

Before replacing CoreStorage, the updater backs up your previous configuration to:

ServerStorage
└── CloveV1_1_0UpdateBackup
    ├── READ ME - RESTORE SETTINGS
    ├── GameSettings_OLD
    └── ProductIdsModule_OLD
Important GameSettings rule

Do not replace the new V1.1.0 GameSettings with GameSettings_OLD. Use the old module only as a reference and manually restore the values you previously configured so all new V1.1.0 settings and tables remain intact.

  1. 1
    Insert V1.1.0

    Insert the complete V1.1.0 model and open its disabled ReadMe (Already Installed) script.

  2. 2
    Run the updater command

    Copy the entire updater command from the ReadMe into the Roblox Studio Command Bar. A successful update prints [CLOVE] UPDATE COMPLETED SUCCESSFULLY.

  3. 3
    Restore Product IDs

    You may copy all contents of ProductIdsModule_OLD into the new V1.1.0 ProductIdsModule.

  4. 4
    Reconfigure GameSettings

    Compare GameSettings_OLD with the new module and manually restore your previous group, UI, audio, feature, prompt, asset, icon, and storage settings.

  5. 5
    Check migrated content

    Legacy Items and ItemStands previously stored under CoreStorage.Templates are automatically migrated into Workspace before the old CoreStorage is removed.

  6. 6
    Review UI changes

    The updater replaces all contents inside StarterGui.CoreUI, including the HUD, with the V1.1.0 structure.

  7. 7
    Test before publishing

    Keep ServerStorage.CloveV1_1_0UpdateBackup until your configuration is restored and V1.1.0 has been fully tested.

Do not run the updater repeatedly. Once V1.1.0 has been applied successfully, use the installed system normally.

Customisation

Configuration

Clove's main configuration module is ReplicatedStorage.CoreStorage.Settings.GameSettings. Use it to configure optional systems, UI behaviour, audio, interaction settings, storage, branding and other experience-specific options.

Updating from V1.0.0

Do not paste your entire old GameSettings over the V1.1.0 module. V1.1.0 contains new required tables and options. Use GameSettings_OLD as a reference and manually restore your customised values.

Catalog Product IDs

Catalog Product IDs are configured separately at ReplicatedStorage.CoreStorage.Library.Shared.Catalog.ProductIdsModule. Existing-install updates back up the old module as ProductIdsModule_OLD, and its complete contents may be copied into the new ProductIdsModule.

GameSettings.Favorites = {
    Enabled = true,
}

GameSettings.Cart = {
    MaxItems = 20,
}

GameSettings.UI = {
    SprintButton = {
        Enabled = true,
        WalkSpeed = 17,
        RunSpeed = 45,
    },
}
System overview

Features

Clove V1.1.0 includes the complete outfit/catalog system plus new logging, UI, bundle, compatibility and performance improvements.

Purchase Webhook Logs

V1.1.0 adds purchase logging and webhook support for Clove purchases.

Improved Item Loader UI

Updated Item Loader interface and features for a cleaner item inspection flow.

BundleResolver Controls

Configure supported special bundles so selected bundles can be excluded from the displayed total amount and Buy All flow.

Improved Leaderboards

Updated leaderboard appearance, lighting, sizing and shape.

Avatar Editor Camera Fixes

Improved camera behaviour when switching between R15 and R6.

Newer Item ID Support

Fixes limitations affecting newer Roblox item IDs, including cart ownership/removal behaviour.

UI Animation Improvements

Updated hover, open and close tweens with a more responsive pop-in feel.

Performance Improvements

Various client and server optimisations across the system.

Reduced Obfuscation

More scripts are left unobfuscated and internal code has been reworked for compatibility, maintainability and runtime stability.

Outfit Viewer

Try outfits, try on individual items, purchase items, bulk purchase complete outfits, and hover over preview items.

GameSettings Config

Fully configure the system to match your experience, branding and gameplay requirements.

Shopping Cart

Includes a total item count, Clear Cart control, and Purchase All support for every item currently added.

R15 / R6 Compatible

Supports both Roblox avatar rig types throughout the system.

Automatic Bundle Support

Supports standard bundles, animation pack bundles and dynamic heads automatically.

Purchase History

Tracks purchases and total spent, including highest price, lowest price, recent purchases and all items.

Animation Packs

Try on, purchase, or add complete animation packs to the cart.

Emote Player

Try on, purchase, or add emotes to the cart.

Leaderboards

Includes Most Purchases, Most Spent, Most Donated and Live Purchases leaderboards.

Leaderboard Options

Switch between all-time or monthly rankings for purchases, spending and donations.

Avatar Editor

Manage currently worn items, skin tones, avatar scales and switching between R15 and R6.

Favourite Outfits

Save outfits to your favourites so you can return and purchase them another time.

Reset Avatar

Restore the player back to their original Roblox avatar.

Hover Effects

Hover over an item or emote to display a clean 3D viewport preview.

Sound Effects

Configurable click, hover, purchase and donation sound effects through GameSettings.

Item Loader / UGC Inspector

Preview items on stands, then purchase, try on or add them to the cart.

Sprint Button

Includes a sprint control with configurable movement speed in GameSettings.

Particles

Includes purchase particle effects and favourite outfit particle effects.

Outfit Loader

Load any Roblox player's saved outfits directly into the system.

Save Outfit

Save as a new Roblox outfit or overwrite the current avatar appearance.

Overhead

Displays headshot, display name, username, Robux spent and total purchases.

Music Player

Play, pause, repeat, shuffle, skip, go back, mute and control volume.

Outfit Posing

Use configurable outfit poses, idle animations and emotes.

Day / Night

Topbar control for switching the experience between day and night.

Roblox Plus Popup

Prompts players without Roblox Plus to purchase it and potentially save Robux on item purchases.

Indicators

Shows owned item indicators and Limited or Limited U badges on supported items.

V1.1.0 status

Known Issues

These are confirmed V1.1.0 issues currently being tracked. If an issue is not listed here, please still create a Bug Report / Support ticket rather than assuming it is already known.

Startup time

When loading into a Studio playtest or a Roblox game using Clove, there can currently be an approximately six-second wait / lag spike during startup.

Shutdown time

Stopping a Studio playtest can occasionally feel laggy and may take a few seconds to finish shutting down.

Reporting a new issue

Make a Bug Report ticket with all the details and screenshots or a video clip if possible.

Support & setup

Frequently Asked Questions (FAQ)

Common Clove setup questions, configuration guides and useful Studio scripts.

How To Increase/Lower Leaderboard Brightness

Are the Leaderboards looking too dim under certain lighting conditions?

In Roblox Studio go to:

Workspace -> Leaderboards

Then open each of the following parts:

  • LeaderboardBuyer
  • LeaderboardSpender
  • LeaderboardLive
  • LeaderboardDonated

Inside each part select the SurfaceGui and set:

SurfaceGui.LightInfluence = 0
SurfaceGui.Brightness = 1.2

Could also be set to what brightness works best according to your game.

Leaderboard before increasing SurfaceGui brightness
Before
Leaderboard after increasing SurfaceGui brightness
After
How to Import Individual Items

Wondering how to add a item to Workspace.Items?

Run this inside the Studio Command Bar:

local InsertService = game:GetService("InsertService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")

local ITEM_ID = 62246484 -- change this

local ItemsFolder = Workspace:FindFirstChild("Items")

if not ItemsFolder then
    local CoreStorage = ReplicatedStorage:FindFirstChild("CoreStorage")
    local Templates = CoreStorage and CoreStorage:FindFirstChild("Templates")
    ItemsFolder = Templates and Templates:FindFirstChild("Items")

    if ItemsFolder then
        ItemsFolder.Parent = Workspace
    else
        warn("Could not find Items in Workspace or ReplicatedStorage.CoreStorage.Templates")
        return
    end
end

local success, assetModel = pcall(function()
    return InsertService:LoadAsset(ITEM_ID)
end)

if not success or not assetModel then
    warn("Failed to load item:", ITEM_ID)
    return
end

local importedItem = nil

for _, descendant in ipairs(assetModel:GetDescendants()) do
    if descendant:IsA("Accessory")
        or descendant:IsA("Tool")
        or descendant:IsA("Model") then

        importedItem = descendant
        break
    end
end

if not importedItem then
    warn("No item found inside loaded asset:", ITEM_ID)
    assetModel:Destroy()
    return
end

local itemName = importedItem.Name

local wrapper = Instance.new("Model")
wrapper.Name = itemName
wrapper.Parent = ItemsFolder

importedItem.Parent = wrapper
importedItem.Name = itemName

local itemIdValue = Instance.new("IntValue")
itemIdValue.Name = "ItemId"
itemIdValue.Value = ITEM_ID
itemIdValue.Parent = wrapper

local originalParentValue = Instance.new("StringValue")
originalParentValue.Name = "ItemOriginalParent"
originalParentValue.Value = "Workspace.Items"
originalParentValue.Parent = wrapper

assetModel:Destroy()

print("[CLOVE] Created item:", wrapper:GetFullName())

Replace 62246484 with the Roblox catalog item ID you want to import:

local ITEM_ID = 123456789

Your Items folder will already be located in one of these places:

Workspace.Items
ReplicatedStorage.CoreStorage.Templates.Items

If the folder is currently inside ReplicatedStorage.CoreStorage.Templates, the script will automatically move it into Workspace before importing the item.

After running the script, you must manually position the imported item on top of one of the item stands inside:

Workspace.ItemStands

If you cannot see the ItemStands folder, it may currently be located inside:

ReplicatedStorage.CoreStorage.Templates.ItemStands

Hopefully this gives you a better understanding of how to set up items.

Still having issues? Create a Support / Bug Report ticket.

How To Add Animations To Outfits

Wondering how to add an AnimationId to every outfit?

Run this inside the Studio Command Bar:

local outfits = workspace:FindFirstChild("Outfits")

if not outfits then
    warn("Workspace.Outfits was not found")
    return
end

local added = 0
local skipped = 0

for _, outfit in ipairs(outfits:GetChildren()) do
    if outfit:IsA("Model") then
        if outfit:GetAttribute("AnimationId") == nil then
            outfit:SetAttribute("AnimationId", 0)
            added += 1
        else
            skipped += 1
        end
    end
end

print(("Added AnimationId to %d outfits. Skipped %d existing outfits."):format(added, skipped))

This adds an AnimationId attribute with the value 0 to every outfit model inside Workspace.Outfits that does not already have the attribute.

You can replace 0 with:

  • A Roblox animation ID
  • A Roblox catalog emote ID

For example, replace:

outfit:SetAttribute("AnimationId", 0)

with:

outfit:SetAttribute("AnimationId", 123456789)

Any outfits that already have an AnimationId attribute will not be changed.

How To Setup Donations

Important: These must be Developer Product Passes, not Game Passes.


Step 1 — Find ProductIdsModule

In Roblox Studio go to:

ReplicatedStorage
└── CoreStorage
    └── Library
        └── Shared
            └── Catalog
                └── ProductIdsModule

You can also just search for ProductIdsModule in the Explorer search bar.

Inside the module you’ll see a list of Product IDs with comments next to them showing what donation amount each one is for example:

return {
    1234567890, -- 100 donation
    2345678901, -- 250 donation
    3456789012, -- 500 donation
}

The IDs already inside the module are only examples so you’ll need to replace them with IDs from your OWN experience.

Step 2 — Create Your Developer Products

Go to your experience in the Roblox Creator Dashboard then open:

Monetization → Developer Products

Your link should look something like this:

https://create.roblox.com/dashboard/creations/experiences/YOUR_EXPERIENCE_ID/monetization/developer-products

Just replace YOUR_EXPERIENCE_ID with the ID of your own experience.

Create one Developer Product for every donation amount you want to use.

  1. Give it a clear name, such as 100 Robux Donation.
  2. Set the price to the amount you want.
  3. Turn Managed Pricing off.
  4. Make sure the product is enabled and for sale.
  5. Save it.

Repeat this for every donation amount you want in the system.

Step 3 — Copy the Product ID

  1. Find it in the Developer Products list.
  2. Click the three dots next to it.
  3. Click Copy Product ID.

Step 4 — Replace the IDs in ProductIdsModule

Go back to ProductIdsModule and replace each example ID with the matching Product ID from your own experience.

For example:

Before:

1234567890, -- 100 donation

After:

9876543210, -- 100 donation

Keep the comment next to the ID so you know which donation amount it belongs to.

If you want to use one of the donation amounts that is commented out, remove the two dashes and replace the 0 with your Product ID.

Before:

-- 0, -- 200R$

After:

9876543210, -- 200R$

Only enable donation amounts that you have actually created a Developer Product for!

A Few Things to Check

  • The Developer Product price should match the donation amount written beside it.
  • Do not leave an enabled Product ID as 0.
  • Keep the comma after every Product ID.
  • Do NOT remove the return { at the top or the closing } at the bottom.

Testing

  1. Create a 1 Robux test product pass.
  2. Save and publish the experience.
  3. Start a playtest in a real live published game on Roblox.
  4. Click the donation amount on the board.
  5. Make sure when the purchase prompt appears it shows the correct name and price.
  6. Test purchase the 1 Robux dev product to see if it works.

If something does not work, double check that the Product ID is correct and belongs to the your experience it was made under, and is enabled for sale, and is not still commented out.

Still Need Help?

If donations are still not working or you find a bug, create a Support / Bug Report ticket.

Outfit Rename Script

Use this script to automatically rename every outfit Model inside Workspace.Outfits to Outfit1, Outfit2, Outfit3, and so on.

How to use

  1. Make sure all outfit rigs are inside Workspace.Outfits.
  2. Open Roblox Studio.
  3. Open the Command Bar.
  4. Paste the script below.
  5. Press Enter.
local outfitsFolder = workspace:FindFirstChild("Outfits")

assert(
    outfitsFolder,
    "[CLOVE] Workspace.Outfits could not be found."
)

local outfits = {}

for _, item in ipairs(outfitsFolder:GetChildren()) do
    if item:IsA("Model") then
        table.insert(outfits, item)
    end
end

table.sort(outfits, function(a, b)
    return a.Name:lower() < b.Name:lower()
end)

for index, outfit in ipairs(outfits) do
    outfit.Name = "__CLOVE_TEMP_OUTFIT_" .. index
end

for index, outfit in ipairs(outfits) do
    outfit.Name = "Outfit" .. index
end

print(
    ("[CLOVE] Successfully renamed %d outfit models.")
        :format(#outfits)
)

Note: This only renames direct child Models inside Workspace.Outfits. It will not rename folders, scripts, or other objects.

Released

Version 1.1.0

Latest

Clove Outfit System V1.1.0 is the current release, adding new features, system improvements, optimisations, UI changes and fixes across Clove.

New features & changes

  • Purchase Webhook Logs — added purchase logging and webhook support.
  • Improved Item Loader UI — updated the Item Loader interface and features.
  • BundleResolver Improvements — added configuration options that can exclude supported special bundles from the displayed total amount and Buy All.
  • Updated Leaderboards — improved appearance, lighting, sizing and shape.
  • Improved Avatar Editor — camera fixes when switching between R15 and R6.
  • Improved Item Support — fixed limitations affecting newer Roblox item IDs and cart handling.
  • Performance & Optimisation Improvements — various client and server optimisations.
  • Reduced Obfuscation — more scripts are unobfuscated and internal code was reworked for compatibility, maintainability and runtime stability.
  • UI Animations — improved hover, open and close tween animations with a more alive pop-in feel.

Updating from V1.0.0

Existing installations must use the disabled ReadMe (Already Installed) updater included in the V1.1.0 model. It preserves the AuthKey, outfit storage, Workspace outfits/items/item stands and backs up the old GameSettings and ProductIdsModule before replacing the required system files.

Known issues

  • Startup can currently include an approximately six-second wait / lag spike.
  • Studio shutdown can occasionally be laggy and take a few seconds.
Initial release

Version 1.0.0

Previous

Version 1.0.0 marked the official release of Clove Outfit System, introducing the complete system and its core experience made for perfection to satisfy player's shopping experiences.

Released

  • The Clove Outfit System