MaterialChams source
Key RequiredUniversal

MaterialChams source

Universal Scriptt1r4t1r4 535 views 918 executesUpdated Jul 14, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•281 lines (8464 chars)
-- 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

Features & Information

Material Chams Force Field Neon Glass Ice Marble Foil Metal Wood Team Check

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts