Skip to main content

Initialize the Trade System

The Trade System package auto-bootstraps when it is installed into your experience. You do not need to require TradeServer or call an init function manually.

Install Trade System from the Traderie Studio plugin. The package adds:

  • ServerScriptService/Traderie/TradeSystem
  • ReplicatedStorage/Traderie/TradeSystem
  • ServerScriptService/Traderie/TradeSystemConfig/InventoryAdapter

The server bootstrap loads ServerScriptService/Traderie/TradeSystemConfig/InventoryAdapter. If that module is missing or invalid, the package falls back to a null adapter and refuses inventory mutations.

Configure Inventory

Edit ServerScriptService/Traderie/TradeSystemConfig/InventoryAdapter to connect the trade system to your game's inventory or profile data. See Inventory Adapter for the full contract.

Client Trade Requests

Client code can use the shared Trade System client at ReplicatedStorage.Traderie.TradeSystem.Client.

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local Traderie = ReplicatedStorage:WaitForChild("Traderie")
local TradeSystem = Traderie:WaitForChild("TradeSystem")
local TradeClient = require(TradeSystem:WaitForChild("Client"))

TradeClient.initialize()

local response = TradeClient.requestTrade(targetPlayer.UserId)
if not response.ok then
warn("Trade request failed:", response.code)
end

The client exposes request, response, offer, ready, cancel, and inventory helpers. The server validates every action before changing trade state or inventory data.

For a complete walkthrough, see Custom UI.