-- by t1r4 local Players = game:GetService("Players") local RunService = game:GetService("RunService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local okFluent, Fluent = pcall(function() return loadstring(game:HttpGetAsync("https://github.com/ActualMasterOogway/Fluent-Renewed/releases/latest/download/Fluent.luau", true))() end) if not okFluent or not Fluent then warn("[Chams by t1r4] Не удалось загрузить Fluent:", Fluent) return end local SaveManager, InterfaceManager pcall(function() SaveManager = loadstring(game:HttpGetAsync("https://github.com/ActualMasterOogway/Fluent-Renewed/releases/latest/download/SaveManager.luau", true))() end) pcall(function() InterfaceManager = loadstring(game:HttpGetAsync("https://github.com/ActualMasterOogway/Fluent-Renewed/releases/latest/download/InterfaceManager.luau", true))() end) local State = { Enabled = false, Material = "ForceField", TeamCheck = false, SeeThrough = true, Color = Color3.fromRGB(120, 200, 255), } local Applied = {} local Materials = { ["ForceField"] = { material = Enum.Material.ForceField, reflectance = 0, transparency = 0, tint = true }, ["Neon"] = { material = Enum.Material.Neon, reflectance = 0, transparency = 0, tint = true }, ["Glass"] = { material = Enum.Material.Glass, reflectance = 0.3, transparency = 0.4, tint = true }, ["Marble"] = { material = Enum.Material.Marble, reflectance = 0, transparency = 0, tint = false }, ["Foil"] = { material = Enum.Material.Foil, reflectance = 0.4, transparency = 0, tint = false }, ["Metal"] = { material = Enum.Material.DiamondPlate, reflectance = 0.5, transparency = 0, tint = false }, ["Wood"] = { material = Enum.Material.WoodPlanks, reflectance = 0, transparency = 0, tint = false }, ["Ice"] = { material = Enum.Material.Ice, reflectance = 0.2, transparency = 0.2, tint = true }, } local MaterialOrder = { "ForceField", "Neon", "Glass", "Ice", "Marble", "Foil", "Metal", "Wood" } local function isBodyPart(inst) return inst:IsA("BasePart") and inst.Name ~= "HumanoidRootPart" end local function restore(plr) local rec = Applied[plr] if not rec then return end for part, orig in pairs(rec.originals) do if part and part.Parent then part.Material = orig.Material part.Reflectance = orig.Reflectance part.Color = orig.Color part.Transparency = orig.Transparency if orig.TextureID ~= nil then part.TextureID = orig.TextureID end end end for inst, parentRef in pairs(rec.hidden) do if inst then pcall(function() inst.Parent = parentRef end) end end if rec.highlight then rec.highlight:Destroy() end Applied[plr] = nil end local function hideOverlay(rec, inst) if rec.hidden[inst] == nil and inst.Parent then rec.hidden[inst] = inst.Parent pcall(function() inst.Parent = nil end) end end local function apply(plr) if plr == LocalPlayer then return end if State.TeamCheck and plr.Team == LocalPlayer.Team then restore(plr) return end local char = plr.Character if not char then return end local preset = Materials[State.Material] local rec = Applied[plr] if not rec then rec = { originals = {}, hidden = {}, highlight = nil } Applied[plr] = rec end for _, inst in ipairs(char:GetDescendants()) do if isBodyPart(inst) then local part = inst if not rec.originals[part] then rec.originals[part] = { Material = part.Material, Reflectance = part.Reflectance, Color = part.Color, Transparency = part.Transparency, TextureID = part:IsA("MeshPart") and part.TextureID or nil, } end part.Material = preset.material part.Reflectance = preset.reflectance part.Transparency = preset.transparency or 0 if part:IsA("MeshPart") then part.TextureID = "" end if preset.tint then part.Color = State.Color end elseif inst:IsA("Shirt") or inst:IsA("Pants") or inst:IsA("ShirtGraphic") or inst:IsA("Decal") or inst:IsA("Texture") or inst:IsA("SurfaceAppearance") then hideOverlay(rec, inst) end end if State.SeeThrough then if not rec.highlight or not rec.highlight.Parent then local hl = Instance.new("Highlight") hl.Name = "MatChamsGlow" hl.FillTransparency = 1 hl.OutlineTransparency = 0 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Adornee = char hl.Parent = CoreGui rec.highlight = hl end rec.highlight.Adornee = char rec.highlight.OutlineColor = State.Color elseif rec.highlight then rec.highlight:Destroy() rec.highlight = nil end end local function restoreAll() for plr in pairs(Applied) do restore(plr) end end local function refreshAll() if not State.Enabled then restoreAll() return end for _, plr in ipairs(Players:GetPlayers()) do apply(plr) end end RunService.RenderStepped:Connect(function() if not State.Enabled then return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then apply(plr) end end end) Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() task.wait(0.3) if State.Enabled then apply(plr) end end) end) Players.PlayerRemoving:Connect(function(plr) restore(plr) end) local Window = Fluent:CreateWindow({ Title = "Material Chams", SubTitle = "by t1r4", TabWidth = 160, Size = UDim2.fromOffset(580, 460), Acrylic = true, Theme = "Dark", MinimizeKey = Enum.KeyCode.LeftControl, }) local Tabs = { Chams = Window:AddTab({ Title = "Chams", Icon = "eye" }), Settings = Window:AddTab({ Title = "Settings", Icon = "settings" }), } local Options = Fluent.Options Tabs.Chams:AddToggle("MatEnabled", { Title = "Включить чамсы", Default = false, Callback = function(v) State.Enabled = v refreshAll() end, }) Tabs.Chams:AddDropdown("MatMaterial", { Title = "Материал", Values = MaterialOrder, Multi = false, Default = 1, Callback = function(sel) if Materials[sel] then restoreAll() State.Material = sel refreshAll() end end, }) Tabs.Chams:AddColorpicker("MatColor", { Title = "Оттенок (свечение/щит/стекло/контур)", Default = Color3.fromRGB(120, 200, 255), Callback = function(c) State.Color = c refreshAll() end, }) Tabs.Chams:AddToggle("MatSeeThrough", { Title = "Видно сквозь стены", Default = true, Callback = function(v) State.SeeThrough = v refreshAll() end, }) Tabs.Chams:AddToggle("MatTeamCheck", { Title = "Не трогать союзников (Team Check)", Default = false, Callback = function(v) State.TeamCheck = v refreshAll() end, }) Tabs.Chams:AddButton({ Title = "Вернуть исходные материалы", Description = "Полный откат: материалы, одежда, текстуры", Callback = function() restoreAll() refreshAll() end, }) if InterfaceManager then pcall(function() InterfaceManager:SetLibrary(Fluent) InterfaceManager:SetFolder("MatChams") InterfaceManager:BuildInterfaceSection(Tabs.Settings) end) end if SaveManager then pcall(function() SaveManager:SetLibrary(Fluent) SaveManager:IgnoreThemeSettings() SaveManager:SetIgnoreIndexes({}) SaveManager:SetFolder("MatChams/configs") SaveManager:BuildConfigSection(Tabs.Settings) end) end Window:SelectTab(1) Fluent:Notify({ Title = "Material Chams | by t1r4", Content = "Выбери материал и включи чамсы во вкладке Chams.", Duration = 6, }) if SaveManager then pcall(function() SaveManager:LoadAutoloadConfig() end) end