
Key RequiredUniversal

local UI = loadstring(game:HttpGet("https://raw.githubusercontent.com/RealBatu20/AI-Scripts-2025/refs/heads/main/crimsonui.lua"))()
local function missing(t, f, fallback)
if type(f) == t then return f end
return fallback
end
cloneref = missing("function", cloneref, function(...) return ... end)
local Services = setmetatable({}, {
__index = function(_, name)
return cloneref(game:GetService(name))
end
})
local Players = Services.Players
local RunService = Services.RunService
local UserInputService = Services.UserInputService
local TweenService = Services.TweenService
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function isR6()
return humanoid.RigType == Enum.HumanoidRigType.R6
end
local function checkRemotes()
local replicatedStorage = Services.ReplicatedStorage
local success, result = pcall(function()
return replicatedStorage:WaitForChild("BloxbizRemotes", 5)
end)
if not success then return false end
local bloxbizRemotes = result
if not bloxbizRemotes then return false end
local catalogRemote = bloxbizRemotes:FindFirstChild("CatalogOnApplyOutfit")
local catalogToHumanoid = bloxbizRemotes:FindFirstChild("CatalogOnApplyToRealHumanoid")
return catalogRemote ~= nil and catalogToHumanoid ~= nil
end
local hasRemotes = checkRemotes()
if isR6() then
local errorGui = Instance.new("ScreenGui")
errorGui.Name = "ErrorGui"
errorGui.ResetOnSpawn = false
errorGui.Parent = Services.CoreGui
local errorFrame = Instance.new("Frame")
errorFrame.Size = UDim2.new(0, 400, 0, 100)
errorFrame.Position = UDim2.new(0.5, -200, 0.5, -50)
errorFrame.BackgroundColor3 = Color3.fromRGB(40, 0, 0)
errorFrame.BorderSizePixel = 3
errorFrame.BorderColor3 = Color3.fromRGB(255, 0, 0)
errorFrame.Parent = errorGui
Instance.new("UICorner", errorFrame).CornerRadius = UDim.new(0, 10)
local errorText = Instance.new("TextLabel")
errorText.Size = UDim2.new(1, -20, 1, -20)
errorText.Position = UDim2.new(0, 10, 0, 10)
errorText.BackgroundTransparency = 1
errorText.Text = "SORRY, THIS SCRIPT WORKS ONLY WITH R15 AVATARS"
errorText.TextColor3 = Color3.fromRGB(255, 50, 50)
errorText.Font = Enum.Font.GothamBold
errorText.TextSize = 16
errorText.TextWrapped = true
errorText.Parent = errorFrame
delay(10, function()
errorGui:Destroy()
end)
return
end
if not hasRemotes then
local errorGui = Instance.new("ScreenGui")
errorGui.Name = "ErrorGui"
errorGui.ResetOnSpawn = false
errorGui.Parent = Services.CoreGui
local errorFrame = Instance.new("Frame")
errorFrame.Size = UDim2.new(0, 400, 0, 120)
errorFrame.Position = UDim2.new(0.5, -200, 0.1, 0)
errorFrame.BackgroundColor3 = Color3.fromRGB(40, 0, 0)
errorFrame.BorderSizePixel = 3
errorFrame.BorderColor3 = Color3.fromRGB(255, 0, 0)
errorFrame.Parent = errorGui
Instance.new("UICorner", errorFrame).CornerRadius = UDim.new(0, 10)
local errorText = Instance.new("TextLabel")
errorText.Size = UDim2.new(1, -20, 1, -20)
errorText.Position = UDim2.new(0, 10, 0, 10)
errorText.BackgroundTransparency = 1
errorText.Text = "SORRY THIS GAME NOT HAVING BLOXBIZ AVATAR CATALOG, PLS BUY PRO BUILDER BUNDLE FOR FE SKYBOX"
errorText.TextColor3 = Color3.fromRGB(255, 50, 50)
errorText.Font = Enum.Font.GothamBold
errorText.TextSize = 16
errorText.TextWrapped = true
errorText.TextScaled = false
errorText.Parent = errorFrame
delay(10, function()
errorGui:Destroy()
end)
end
if hasRemotes then
local args = {
{
SwimAnimation = 0,
DepthScale = 1,
RightLegColor = Color3.new(0.1725490242242813, 0.3960784375667572, 0.11372549086809158),
MoodAnimation = 14618207727,
Face = 0,
JumpAnimation = 0,
HeadColor = Color3.new(1, 0.6470588445663452, 0.6000000238418579),
BodyTypeScale = 0,
ClimbAnimation = 0,
LeftArmColor = Color3.new(0.9725490212440491, 0.9725490212440491, 0.9725490212440491),
LeftLegColor = Color3.new(0.1725490242242813, 0.3960784375667572, 0.11372549086809158),
Pants = 0,
RightArmColor = Color3.new(0.9725490212440491, 0.9725490212440491, 0.9725490212440491),
WidthScale = 1,
LeftArm = 134162178631486,
IdleAnimation = 0,
RightArm = 112132665744785,
GraphicTShirt = 0,
Head = 112098331348331,
Shirt = 0,
Torso = 100839513065432,
RunAnimation = 0,
WalkAnimation = 0,
FallAnimation = 0,
TorsoColor = Color3.new(1, 1, 1),
Accessories = {},
RightLeg = 134568824619589,
HeadScale = 1,
HeightScale = 1,
ProportionScale = 0,
LeftLeg = 119032106683081
}
}
local success, err = pcall(function()
game:GetService("ReplicatedStorage"):WaitForChild("BloxbizRemotes"):WaitForChild("CatalogOnApplyOutfit"):FireServer(unpack(args))
end)
if not success then
warn("Failed to apply outfit: " .. tostring(err))
end
end
player.CharacterAdded:Connect(function(newCharacter)
character = newCharacter
humanoid = character:WaitForChild("Humanoid")
if isR6() then
return
end
end)
local Settings = {
["Fade In"] = 0.1,
["Fade Out"] = 0.1,
["Weight"] = 1,
["Speed"] = 1,
["Allow Invisible"] = true,
["Time Position"] = 0.99
}
local CurrentTrack
local FIXED_EMOTE_ID = 93224413172183
local function LoadTrack()
if CurrentTrack then
CurrentTrack:Stop(0)
end
local animId
local ok, result = pcall(function()
return game:GetObjects("rbxassetid://" .. tostring(FIXED_EMOTE_ID))
end)
if ok and result and #result > 0 then
local anim = result[1]
if anim:IsA("Animation") then
animId = anim.AnimationId
else
animId = "rbxassetid://" .. tostring(FIXED_EMOTE_ID)
end
else
animId = "rbxassetid://" .. tostring(FIXED_EMOTE_ID)
end
local newAnim = Instance.new("Animation")
newAnim.AnimationId = animId
local newTrack = humanoid:LoadAnimation(newAnim)
newTrack.Priority = Enum.AnimationPriority.Action4
local weight = Settings["Weight"]
if weight == 0 then
weight = 0.001
end
newTrack:Play(Settings["Fade In"], weight, Settings["Speed"])
CurrentTrack = newTrack
CurrentTrack.TimePosition = math.clamp(Settings["Time Position"], 0, 1) * CurrentTrack.Length
delay(1, function()
if CurrentTrack and CurrentTrack == newTrack and CurrentTrack.IsPlaying then
CurrentTrack:AdjustSpeed(0)
end
end)
return newTrack
end
local function StopTrack()
if CurrentTrack then
CurrentTrack:Stop(Settings["Fade Out"])
CurrentTrack = nil
end
end
local function ApplyCoolkidSkybox()
if not hasRemotes then return end
local success, err = pcall(function()
local args = {
{
Property = "Shirt",
AssetId = 12969823720
}
}
game:GetService("ReplicatedStorage"):WaitForChild("BloxbizRemotes"):WaitForChild("CatalogOnApplyToRealHumanoid"):FireServer(unpack(args))
end)
if not success then
warn("Failed to apply skybox: " .. tostring(err))
end
end
local function ApplyCustomSkybox(assetId)
if not hasRemotes then return end
local success, err = pcall(function()
local args = {
{
Property = "Shirt",
AssetId = assetId
}
}
game:GetService("ReplicatedStorage"):WaitForChild("BloxbizRemotes"):WaitForChild("CatalogOnApplyToRealHumanoid"):FireServer(unpack(args))
end)
if not success then
warn("Failed to apply custom asset: " .. tostring(err))
end
end
local Window = UI:CreateWindow({
Title = "FE Skybox & Animation",
Icon = "☁️",
Size = Vector2.new(350, 450)
})
local MainTab = Window:CreateTab("Main")
MainTab:CreateLabel("Status: " .. (hasRemotes and "✅ Bloxbiz Ready" or "❌ No Bloxbiz"))
MainTab:CreateLabel("Avatar: " .. (isR6() and "R6 (Unsupported)" or "R15 (Supported)"))
MainTab:CreateButton({
Name = "▶ Play Emote",
Callback = LoadTrack
})
MainTab:CreateButton({
Name = "■ Stop Emote",
Callback = StopTrack
})
local SettingsTab = Window:CreateTab("Settings")
SettingsTab:CreateSlider({
Name = "Time Position",
Min = 0,
Max = 1,
Default = Settings["Time Position"],
Callback = function(value)
Settings["Time Position"] = value
if CurrentTrack and CurrentTrack.IsPlaying and CurrentTrack.Length > 0 then
CurrentTrack.TimePosition = math.clamp(value, 0, 1) * CurrentTrack.Length
end
end
})
SettingsTab:CreateSlider({
Name = "Speed",
Min = 0,
Max = 5,
Default = Settings["Speed"],
Callback = function(value)
Settings["Speed"] = value
if CurrentTrack and CurrentTrack.IsPlaying then
CurrentTrack:AdjustSpeed(value)
end
end
})
SettingsTab:CreateSlider({
Name = "Weight",
Min = 0,
Max = 1,
Default = Settings["Weight"],
Callback = function(value)
Settings["Weight"] = value
if CurrentTrack and CurrentTrack.IsPlaying then
local weight = value == 0 and 0.001 or value
CurrentTrack:AdjustWeight(weight)
end
end
})
SettingsTab:CreateSlider({
Name = "Fade In",
Min = 0,
Max = 2,
Default = Settings["Fade In"],
Callback = function(value)
Settings["Fade In"] = value
end
})
SettingsTab:CreateSlider({
Name = "Fade Out",
Min = 0,
Max = 2,
Default = Settings["Fade Out"],
Callback = function(value)
Settings["Fade Out"] = value
end
})
SettingsTab:CreateToggle({
Name = "Allow Invisible",
Default = Settings["Allow Invisible"],
Callback = function(state)
Settings["Allow Invisible"] = state
end
})
local SkyboxTab = Window:CreateTab("Skybox")
if hasRemotes then
SkyboxTab:CreateLabel("Quick Apply:")
SkyboxTab:CreateButton({
Name = "Apply Coolkid Skybox",
Callback = ApplyCoolkidSkybox
})
SkyboxTab:CreateLabel("Custom Asset:")
local customAssetId = ""
SkyboxTab:CreateInput({
Name = "Asset ID",
Placeholder = "Enter Shirt Asset ID...",
Callback = function(text)
customAssetId = text
end
})
SkyboxTab:CreateButton({
Name = "Apply Custom Skybox",
Callback = function()
local assetId = tonumber(customAssetId)
if assetId then
ApplyCustomSkybox(assetId)
else
warn("Invalid Asset ID entered")
end
end
})
else
SkyboxTab:CreateLabel("❌ Bloxbiz remotes not found")
SkyboxTab:CreateLabel("Buy Pro Builder Bundle to use")
end
local InfoTab = Window:CreateTab("Info")
InfoTab:CreateLabel("FE Skybox Bypassed v2")
InfoTab:CreateLabel("UI: Crimson UI Lib")
InfoTab:CreateLabel("Requires: Bloxbiz + R15")
InfoTab:CreateLabel("")
InfoTab:CreateLabel("Discord: discord.gg/Tmyb9ySsCR")



works?
@kiannamikailer yes, join game that have bloxbiz catalog & try on pro builder bundle (or just execute the script and it will auto wear the bundle)
@Irfannnnn you can maybe try making a list of games
nice, Ill need to add other catalogs
MY OWNER, IT WORKS WITH ONE BUNDLE HOLY * ITS CALLED GLITCH WALKER, but it doesnt really work with images