
KeylessUniversal

--// Load Fluent UI
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
--// Setup window
local Window = Fluent:CreateWindow({
Title = "Hat Mover FE | by milkchocouser",
SubTitle = "Soft float hats (FE)",
TabWidth = 160,
Size = UDim2.fromOffset(580, 460),
Acrylic = true,
Theme = "Dark",
MinimizeKey = Enum.KeyCode.LeftControl
})
local Tabs = {
Enable = Window:AddTab({ Title = "FE Enable", Icon = "wand" }),
Float = Window:AddTab({ Title = "Hats/Accessory", Icon = "layers" }),
Block = Window:AddTab({ Title = "Blocker Hat", Icon = "alert-circle" })
}
local LP = game:GetService("Players").LocalPlayer
local RS = game:GetService("RunService")
local Char = LP.Character or LP.CharacterAdded:Wait()
local hats = {}
local mode = "none"
--// Float hats logic
RS.Heartbeat:Connect(function()
local root = Char:FindFirstChild("HumanoidRootPart")
if not root then return end
for i, hat in ipairs(hats) do
local t = tick() + i
local offset = Vector3.zero
if mode == "Orbit" then
offset = Vector3.new(math.cos(t) * 3, 2, math.sin(t) * 3)
elseif mode == "Line" then
offset = Vector3.new(0, 2, (i - 1) * 2)
elseif mode == "LineCrazy" then
offset = Vector3.new(math.sin(t * 3) * 2, math.cos(t * 2) * 2, i)
elseif mode == "Tool" then
local arm = Char:FindFirstChild("RightHand") or Char:FindFirstChild("Right Arm")
if arm then
offset = (arm.Position - root.Position)
end
elseif mode == "Car" then
if i == 1 or i == 2 then
offset = Vector3.new(math.cos(t * 3) * 2, -1.5, math.sin(t * 3) * 2)
else
offset = Vector3.new(0, -0.5, 0)
end
elseif mode == "Wizard" then
offset = Vector3.new(math.sin(t * 1.5) * 2, math.cos(t * 1.2) * 2 + 2, math.sin(t) * 2)
end
local target = root.Position + offset
pcall(function()
hat.CanCollide = false
hat.Velocity = Vector3.zero
if hat:IsA("BasePart") then
hat.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0)
end
if mode ~= "none" then
hat.CFrame = hat.CFrame:Lerp(CFrame.new(target), 0.15)
else
hat.CFrame = hat.CFrame:Lerp(root.CFrame, 0.15)
end
end)
end
end)
--// Enable hat float
Tabs.Enable:AddButton({
Title = "Enable Move Hats",
Description = "Detach & float all hats soft",
Callback = function()
hats = {}
Char = LP.Character or LP.CharacterAdded:Wait()
for _, acc in ipairs(Char:GetChildren()) do
if acc:IsA("Accessory") and acc:FindFirstChild("Handle") then
local h = acc.Handle
h.Massless = true
h.CanCollide = false
h.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0)
for _, w in ipairs(h:GetChildren()) do
if w:IsA("Weld") or w:IsA("WeldConstraint") then
w:Destroy()
end
end
table.insert(hats, h)
end
end
Fluent:Notify({
Title = "Floating Enabled",
Content = "Hats now gently float ✨",
Duration = 5
})
end
})
--// Reset character
Tabs.Enable:AddButton({
Title = "Reset",
Description = "Instant reset character",
Callback = function()
local hum = Char:FindFirstChildOfClass("Humanoid")
if hum then
hum.Health = 0
end
Char = LP.CharacterAdded:Wait()
end
})
--// Discord button
Tabs.Enable:AddButton({
Title = "Join Discord",
Description = "Copy Discord invite",
Callback = function()
setclipboard("https://discord.gg/w3qHHUxekM")
Fluent:Notify({
Title = "Copied",
Content = "Discord invite copied!",
Duration = 4
})
end
})
--// Float Modes (Toggles)
Tabs.Float:AddToggle("Orbit", { Title = "Orbit Mode" }):OnChanged(function(v)
if v then mode = "Orbit" end
end)
Tabs.Float:AddToggle("Line", { Title = "Line Mode" }):OnChanged(function(v)
if v then mode = "Line" end
end)
Tabs.Float:AddToggle("LineCrazy", { Title = "Crazy Line Mode" }):OnChanged(function(v)
if v then mode = "LineCrazy" end
end)
Tabs.Float:AddToggle("Tool", { Title = "Tool Follow Mode" }):OnChanged(function(v)
if v then mode = "Tool" end
end)
Tabs.Float:AddToggle("Car", { Title = "Car Hat Mode" }):OnChanged(function(v)
if v then mode = "Car" end
end)
Tabs.Float:AddToggle("Wizard", { Title = "Wizard Soft Float" }):OnChanged(function(v)
if v then mode = "Wizard" end
end)
Tabs.Float:AddToggle("None", { Title = "Disable Float", Default = true }):OnChanged(function(v)
if v then mode = "none" end
end)
--// Block hat meshes
Tabs.Block:AddParagraph({
Title = "Info",
Content = "Some games support FE hat blocking, some classic ones don’t."
})
Tabs.Block:AddButton({
Title = "Block Hat",
Description = "Remove hat mesh + texture (client)",
Callback = function()
for _, acc in ipairs(Char:GetChildren()) do
if acc:IsA("Accessory") and acc:FindFirstChild("Handle") then
for _, p in ipairs(acc.Handle:GetChildren()) do
if p:IsA("SpecialMesh") or p:IsA("MeshPart") then
p:Destroy()
end
end
end
end
end
})
Tabs.Block:AddInput("HatSize", {
Title = "Size (CLIENT)",
Placeholder = "e.g. 2,2,2",
Callback = function(txt)
local parts = string.split(txt, ",")
if #parts == 3 then
local size = Vector3.new(tonumber(parts[1]), tonumber(parts[2]), tonumber(parts[3]))
for _, acc in ipairs(Char:GetChildren()) do
if acc:IsA("Accessory") and acc:FindFirstChild("Handle") then
acc.Handle.Size = size
end
end
end
end
})
--// Final Fluent setup
SaveManager:SetLibrary(Fluent)
InterfaceManager:SetLibrary(Fluent)
SaveManager:IgnoreThemeSettings()
InterfaceManager:SetFolder("HatMoverFE")
SaveManager:SetFolder("HatMoverFE")
InterfaceManager:BuildInterfaceSection(Tabs.Enable)
SaveManager:BuildConfigSection(Tabs.Enable)
Window:SelectTab(1)
SaveManager:LoadAutoloadConfig()No comments yet for this script.



