
Key Required Verified

--- DANDY'S WORLD OC SYNC (V14 - MARKETPLACE UPDATE) ---
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Window = Rayfield:CreateWindow({
Name = "Dandy's World OC Sync (V14)",
LoadingTitle = "OC Loader - Marketplace Edition",
LoadingSubtitle = "V14: Public Assets & Outfit Sync",
ConfigurationSaving = { Enabled = false },
KeySystem = false
})
local MainTab = Window:CreateTab("Apply OC", 4483362458)
local MarketTab = Window:CreateTab("Marketplace", 4483362458) -- NEW TAB
local AdjustTab = Window:CreateTab("Adjust Model", 4483362458)
local SyncTab = Window:CreateTab("Sync with Friends", 4483362458)
local lp = game.Players.LocalPlayer
local CurrentOC = nil
local TargetID = ""
local ActiveSyncModels = {}
local ForceAnimate = false
-- CLEANUP/FIXER FUNCTION
local function DeepFix(model)
if not model then return end
for _, part in pairs(model:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
task.delay(1, function() if part then part.CanCollide = true end end)
local hasTexture = false
if (part:IsA("MeshPart") and part.TextureID ~= "") or
(part:FindFirstChildWhichIsA("SpecialMesh") and part:FindFirstChildWhichIsA("SpecialMesh").TextureID ~= "") or
part:FindFirstChildWhichIsA("SurfaceAppearance") then
hasTexture = true
end
if hasTexture then part.Color = Color3.new(1, 1, 1) end
end
if part:IsA("Decal") or part:IsA("Texture") then part.ZIndex = 25 end
-- Force Animations if enabled
if ForceAnimate and part:IsA("Humanoid") then
part.RigType = Enum.HumanoidRigType.R15
end
end
end
-- MAIN APPLY LOGIC
local function ApplyLocalOC(id)
if id == "" then return end
local char = lp.Character or lp.CharacterAdded:Wait()
-- Marketplace IDs can be Models or Packages
local s, result = pcall(function()
return game:GetObjects("rbxassetid://" .. id)[1]
end)
if s and result then
local oldPos = char:GetPrimaryPartCFrame()
if CurrentOC then CurrentOC:Destroy() end
CurrentOC = result:Clone()
CurrentOC.Name = "OC_" .. lp.Name
CurrentOC.Parent = workspace
DeepFix(CurrentOC)
lp.Character = CurrentOC
CurrentOC:SetPrimaryPartCFrame(oldPos)
char:Destroy()
lp:SetAttribute("CurrentOCID", id)
local hum = CurrentOC:FindFirstChildWhichIsA("Humanoid")
if hum then
workspace.CurrentCamera.CameraSubject = hum
end
Rayfield:Notify({Title = "OC Applied", Content = "Loaded ID: "..id, Duration = 3})
else
Rayfield:Notify({Title = "Error", Content = "Failed to load ID. Ensure it's a Public Model.", Duration = 5})
end
end
-- MARKETPLACE OUTFIT LOGIC (FOR USERS)
local function ApplyUserOutfit(username)
local success, userId = pcall(function() return game.Players:GetUserIdFromNameAsync(username) end)
if success then
local char = lp.Character or lp.CharacterAdded:Wait()
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
local description = game.Players:GetHumanoidDescriptionFromUserId(userId)
hum:ApplyDescription(description)
Rayfield:Notify({Title = "Outfit Synced", Content = "Applied " .. username .. "'s Marketplace items.", Duration = 3})
end
else
Rayfield:Notify({Title = "Error", Content = "User not found.", Duration = 3})
end
end
-- MAIN TAB UI
MainTab:CreateInput({
Name = "Model ID",
PlaceholderText = "Paste Model ID...",
Callback = function(Text) TargetID = Text:gsub("%D", "") end,
})
MainTab:CreateButton({
Name = "Apply Custom Model ID",
Callback = function() ApplyLocalOC(TargetID) end,
})
MainTab:CreateToggle({
Name = "Enable Basic Animations",
CurrentValue = false,
Flag = "AnimToggle",
Callback = function(Value) ForceAnimate = Value end,
})
-- MARKETPLACE TAB UI
MarketTab:CreateSection("Marketplace Outfits")
MarketTab:CreateParagraph({Title = "Instructions", Content = "Type a username to take their full Marketplace look (Clothes/Hats/Hair). This works on your current character."})
MarketTab:CreateInput({
Name = "Username",
PlaceholderText = "Search User...",
Callback = function(Text)
ApplyUserOutfit(Text)
end,
})
MarketTab:CreateSection("Popular Tags")
MarketTab:CreateButton({
Name = "Reset to Default Marketplace Look",
Callback = function() lp:LoadCharacter() end,
})
-- SYNC SYSTEM (Retained from V13)
local FriendName = ""
SyncTab:CreateSection("The Handshake")
SyncTab:CreateInput({
Name = "Friend's Username",
PlaceholderText = "Case Sensitive...",
Callback = function(T) FriendName = T end
})
SyncTab:CreateButton({
Name = "Set Sync Partner",
Callback = function()
if FriendName == "" then return end
lp:SetAttribute("SyncPartner", FriendName)
Rayfield:Notify({Title = "Partner Set", Content = "Looking for " .. FriendName, Duration = 5})
end
})
-- BACKGROUND SYNC HANDLER
task.spawn(function()
while task.wait(1) do
local partnerName = lp:GetAttribute("SyncPartner")
if partnerName then
local partner = game.Players:FindFirstChild(partnerName)
if partner and partner:GetAttribute("SyncPartner") == lp.Name then
local partnerModelID = partner:GetAttribute("CurrentOCID")
if partnerModelID and partnerModelID ~= "" then
if not ActiveSyncModels[partner.Name] or ActiveSyncModels[partner.Name].ID ~= partnerModelID then
if ActiveSyncModels[partner.Name] then
ActiveSyncModels[partner.Name].Model:Destroy()
end
local s, r = pcall(function() return game:GetObjects("rbxassetid://" .. partnerModelID)[1] end)
if s and r then
local fOC = r:Clone()
fOC.Parent = workspace
DeepFix(fOC)
ActiveSyncModels[partner.Name] = {Model = fOC, ID = partnerModelID}
task.spawn(function()
while ActiveSyncModels[partner.Name] and ActiveSyncModels[partner.Name].ID == partnerModelID do
if partner.Character and partner.Character:FindFirstChild("HumanoidRootPart") then
fOC:SetPrimaryPartCFrame(partner.Character.HumanoidRootPart.CFrame)
for _, p in pairs(partner.Character:GetDescendants()) do
if p:IsA("BasePart") or p:IsA("Decal") then p.Transparency = 1 end
end
end
task.wait()
end
fOC:Destroy()
end)
end
end
end
else
if ActiveSyncModels[partnerName] then
ActiveSyncModels[partnerName].Model:Destroy()
ActiveSyncModels[partnerName] = nil
end
end
end
end
end)
-- ADJUST TAB
AdjustTab:CreateSection("Scaling")
AdjustTab:CreateSlider({
Name = "Model Scale",
Range = {0.1, 5},
Increment = 0.1,
Suffix = "x Size",
CurrentValue = 1,
Callback = function(Value)
if CurrentOC and CurrentOC:FindFirstChildOfClass("Humanoid") then
local hum = CurrentOC:FindFirstChildOfClass("Humanoid")
local description = hum:FindFirstChildOfClass("HumanoidDescription") or Instance.new("HumanoidDescription", hum)
description.HeightScale = Value
description.WidthScale = Value
end
end,
})
SyncTab:CreateButton({
Name = "Clear All Syncs",
Callback = function()
lp:SetAttribute("SyncPartner", nil)
for _, data in pairs(ActiveSyncModels) do data.Model:Destroy() end
ActiveSyncModels = {}
Rayfield:Notify({Title = "Cleaned", Content = "All syncs cleared.", Duration = 3})
end
})



before you flood my comments with stuff like "ts ai" or other stuff.. IT IS
aight