M
Description
It’s an freeze trade you can have fun
GAMEBaddies [🔥beta]
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TradeEvent = ReplicatedStorage:WaitForChild("TradeEvent")
local activeTrades = {}
local function getTrade(player)
for _, trade in pairs(activeTrades) do
if trade.Player1 == player or trade.Player2 == player then
return trade
end
end
end
local function freeze(player, value)
local character = player.Character
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then return end
if value then
humanoid.WalkSpeed = 0
humanoid.JumpPower = 0
humanoid.AutoRotate = false
else
humanoid.WalkSpeed = 16
humanoid.JumpPower = 50
humanoid.AutoRotate = true
end
end
local function finishTrade(trade)
if trade.Completed then return end
trade.Completed = true
-- Example inventory folders
local inv1 = trade.Player1:FindFirstChild("Inventory")
local inv2 = trade.Player2:FindFirstChild("Inventory")
if inv1 and inv2 then
-- Weapons selected by each player
for _, weaponName in ipairs(trade.Offer1) do
local weapon = inv1:FindFirstChild(weaponName)
if weapon then
weapon.Parent = inv2
end
end
for _, weaponName in ipairs(trade.Offer2) do
local weapon = inv2:FindFirstChild(weaponName)
if weapon then
weapon.Parent = inv1
end
end
end
freeze(trade.Player1, false)
freeze(trade.Player2, false)
TradeEvent:FireClient(trade.Player1, "Finished")
TradeEvent:FireClient(trade.Player2, "Finished")
table.remove(activeTrades, table.find(activeTrades, trade))
end
TradeEvent.OnServerEvent:Connect(function(player, action, otherPlayer, weaponName)
if action == "Request" then
if not otherPlayer or not otherPlayer:IsA("Player") then
return
end
if getTrade(player) or getTrade(otherPlayer) then
return
end
TradeEvent:FireClient(otherPlayer, "Request", player)
elseif action == "Accept" then
if not otherPlayer then return end
if getTrade(player) or getTrade(otherPlayer) then return end
local trade = {
Player1 = player,
Player2 = otherPlayer,
Offer1 = {},
Offer2 = {},
Confirmed1 = false,
Confirmed2 = false,
Completed = false
}
table.insert(activeTrades, trade)
freeze(player, true)
freeze(otherPlayer, true)
TradeEvent:FireClient(player, "Open", otherPlayer)
TradeEvent:FireClient(otherPlayer, "Open", player)
elseif action == "AddWeapon" then
local trade = getTrade(player)
if not trade or not weaponName then return end
local inventory = player:FindFirstChild("Inventory")
if not inventory then return end
local weapon = inventory:FindFirstChild(weaponName)
if not weapon then return end
if player == trade.Player1 then
table.insert(trade.Offer1, weaponName)
else
table.insert(trade.Offer2, weaponName)
end
TradeEvent:FireClient(trade.Player1, "Update", trade)
TradeEvent:FireClient(trade.Player2, "Update", trade)
elseif action == "Confirm" then
local trade = getTrade(player)
if not trade then return end
if player == trade.Player1 then
trade.Confirmed1 = true
else
trade.Confirmed2 = true
end
TradeEvent:FireClient(trade.Player1, "Confirm", player)
TradeEvent:FireClient(trade.Player2, "Confirm", player)
if trade.Confirmed1 and trade.Confirmed2 then
task.wait(3)
finishTrade(trade)
end
elseif action == "Cancel" then
local trade = getTrade(player)
if not trade then return end
freeze(trade.Player1, false)
freeze(trade.Player2, false)
TradeEvent:FireClient(trade.Player1, "Cancelled")
TradeEvent:FireClient(trade.Player2, "Cancelled")
table.remove(activeTrades, table.find(activeTrades, trade))
end
end)
Players.PlayerRemoving:Connect(function(player)
local trade = getTrade(player)
if trade then
local otherPlayer =
trade.Player1 == player and trade.Player2 or trade.Player1
freeze(otherPlayer, false)
TradeEvent:FireClient(otherPlayer, "Cancelled")
table.remove(activeTrades, table.find(activeTrades, trade))
end
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place