Decal And SkyBox By Axom666
Key RequiredUniversal

Decal And SkyBox By Axom666

Universal Scriptadamowaissi22adamowaissi22 2.6K views 34 executesUpdated Aug 15, 2025
Unrated
00
Lua Script•401 lines (15518 chars)
local imageId = "rbxassetid://120650579249448"
local SoundId = "rbxassetid://911882720"

local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")

local originalDecals = {}
local originalTextures = {}
local originalMeshTextures = {}
local originalPlayerClothes = {}
local originalSkybox = {}
local addedTextures = {}

local function createLabel(text, size, color)
    local lbl = Instance.new("TextLabel")
    lbl.Size = size
    lbl.BackgroundTransparency = 0.7
    lbl.BackgroundColor3 = color
    lbl.BorderSizePixel = 0
    lbl.Font = Enum.Font.Code
    lbl.TextColor3 = Color3.new(0,1,0)
    lbl.TextStrokeColor3 = Color3.new(0,0.8,0)
    lbl.TextStrokeTransparency = 0
    lbl.Text = text
    lbl.TextScaled = true
    return lbl
end

local function createButton(text)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 180, 0, 40)
    btn.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
    btn.BackgroundTransparency = 0.8
    btn.BorderSizePixel = 0
    btn.Font = Enum.Font.Code
    btn.TextColor3 = Color3.new(0, 1, 0)
    btn.TextStrokeColor3 = Color3.new(0, 0.8, 0)
    btn.TextStrokeTransparency = 0
    btn.Text = text
    btn.TextScaled = true
    btn.AutoButtonColor = false
    btn.MouseEnter:Connect(function()
        btn.BackgroundTransparency = 0.3
        btn.TextColor3 = Color3.fromRGB(0,255,128)
    end)
    btn.MouseLeave:Connect(function()
        btn.BackgroundTransparency = 0.8
        btn.TextColor3 = Color3.fromRGB(0,255,0)
    end)
    return btn
end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AxomHackerPanel"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = PlayerGui

local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 220, 0, 350)
Frame.Position = UDim2.new(0.05,0,0.2,0)
Frame.BackgroundColor3 = Color3.fromRGB(10, 30, 10)
Frame.BorderSizePixel = 2
Frame.BorderColor3 = Color3.fromRGB(0, 255, 0)
Frame.Parent = ScreenGui

local closeBtn = createButton("X")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
closeBtn.TextColor3 = Color3.new(1,1,1)
closeBtn.TextStrokeColor3 = Color3.new(0.8, 0, 0)
closeBtn.TextScaled = true
closeBtn.Parent = Frame
closeBtn.MouseButton1Click:Connect(function()
    ScreenGui:Destroy()
end)

local dragging, dragInput, dragStart, startPos
local function update(input)
    local delta = input.Position - dragStart
    Frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
                              startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
Frame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = Frame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)
Frame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)
UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        update(input)
    end
end)

local Title = createLabel("Axom Hack × V1", UDim2.new(1,0,0,50), Color3.fromRGB(0, 100, 0))
Title.Parent = Frame

local ButtonsFrame = Instance.new("Frame")
ButtonsFrame.Size = UDim2.new(1, -20, 1, -110)
ButtonsFrame.Position = UDim2.new(0, 10, 0, 55)
ButtonsFrame.BackgroundTransparency = 1
ButtonsFrame.Parent = Frame

local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Parent = ButtonsFrame
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 10)

local function getTileSize(dim)
    return math.clamp(dim / 10, 5, 20)
end
local function isBigPart(part)
    local threshold = 30
    return (part.Size.X > threshold or part.Size.Y > threshold or part.Size.Z > threshold)
end

local function changeAllLand()
    for _, obj in pairs(workspace:GetDescendants()) do
        if obj:IsA("Decal") then
            if not obj:IsDescendantOf(LocalPlayer.Character) then
                if not originalDecals[obj] then
                    originalDecals[obj] = obj.Texture
                end
                obj.Texture = imageId
            end
        elseif obj:IsA("Texture") then
            if not obj:IsDescendantOf(LocalPlayer.Character) then
                if not originalTextures[obj] then
                    originalTextures[obj] = obj.Texture
                end
                obj.Texture = imageId
            end
        elseif obj:IsA("MeshTexture") then
            if not obj:IsDescendantOf(LocalPlayer.Character) then
                if not originalMeshTextures[obj] then
                    originalMeshTextures[obj] = obj.TextureId
                end
                obj.TextureId = imageId
            end
        elseif obj:IsA("Part") or obj:IsA("UnionOperation") or obj:IsA("MeshPart") then
            if not obj:IsDescendantOf(LocalPlayer.Character) and not Players:GetPlayerFromCharacter(obj.Parent) then
                for _, child in pairs(obj:GetChildren()) do
                    if child:IsA("Decal") then
                        if not originalDecals[child] then
                            originalDecals[child] = child.Texture
                        end
                        child.Texture = imageId
                    elseif child:IsA("Texture") then
                        if not originalTextures[child] then
                            originalTextures[child] = child.Texture
                        end
                        child.Texture = imageId
                    end
                end
                local faces = {Enum.NormalId.Top,Enum.NormalId.Bottom,Enum.NormalId.Left,Enum.NormalId.Right,Enum.NormalId.Front,Enum.NormalId.Back}
                for _, face in pairs(faces) do
                    local found = false
                    for _, child in pairs(obj:GetChildren()) do
                        if (child:IsA("Texture") or child:IsA("Decal")) and child.Face == face then
                            found = true
                            break
                        end
                    end
                    if not found then
                        local tex = Instance.new("Texture")
                        tex.Texture = imageId
                        tex.Face = face
                        local size = obj.Size
                        if isBigPart(obj) then
                            if face == Enum.NormalId.Top or face == Enum.NormalId.Bottom then
                                tex.StudsPerTileU = getTileSize(size.X)
                                tex.StudsPerTileV = getTileSize(size.Z)
                            elseif face == Enum.NormalId.Left or face == Enum.NormalId.Right then
                                tex.StudsPerTileU = getTileSize(size.Z)
                                tex.StudsPerTileV = getTileSize(size.Y)
                            elseif face == Enum.NormalId.Front or face == Enum.NormalId.Back then
                                tex.StudsPerTileU = getTileSize(size.X)
                                tex.StudsPerTileV = getTileSize(size.Y)
                            end
                        else
                            if face == Enum.NormalId.Top or face == Enum.NormalId.Bottom then
                                tex.StudsPerTileU = size.X
                                tex.StudsPerTileV = size.Z
                            elseif face == Enum.NormalId.Left or face == Enum.NormalId.Right then
                                tex.StudsPerTileU = size.Z
                                tex.StudsPerTileV = size.Y
                            elseif face == Enum.NormalId.Front or face == Enum.NormalId.Back then
                                tex.StudsPerTileU = size.X
                                tex.StudsPerTileV = size.Y
                            end
                        end
                        tex.Parent = obj
                        table.insert(addedTextures, tex)
                    end
                end
            end
        end
    end
end

local function changeSkybox()
    if #originalSkybox == 0 then
        for _, obj in pairs(Lighting:GetChildren()) do
            if obj:IsA("Sky") then
                table.insert(originalSkybox, obj:Clone())
            end
        end
    end
    for _, obj in pairs(Lighting:GetChildren()) do
        if obj:IsA("Sky") then
            obj:Destroy()
        end
    end
    local newSky = Instance.new("Sky")
    newSky.SkyboxBk = imageId
    newSky.SkyboxDn = imageId
    newSky.SkyboxFt = imageId
    newSky.SkyboxLf = imageId
    newSky.SkyboxRt = imageId
    newSky.SkyboxUp = imageId
    newSky.Parent = Lighting
end

local function changePlayersClothes()
    for _, plr in pairs(Players:GetPlayers()) do
        local char = plr.Character
        if char then
            if not originalPlayerClothes[plr] then
                originalPlayerClothes[plr] = {Shirt = {}, Pants = {}}
                for _, item in pairs(char:GetChildren()) do
                    if item:IsA("Shirt") then
                        originalPlayerClothes[plr].Shirt[item] = item.ShirtTemplate
                    elseif item:IsA("Pants") then
                        originalPlayerClothes[plr].Pants[item] = item.PantsTemplate
                    end
                end
            end
            for _, item in pairs(char:GetChildren()) do
                if item:IsA("Shirt") then
                    item.ShirtTemplate = imageId
                elseif item:IsA("Pants") then
                    item.PantsTemplate = imageId
                end
            end
            for _, acc in pairs(char:GetChildren()) do
                if acc:IsA("Accessory") then
                    local handle = acc:FindFirstChild("Handle")
                    if handle then
                        for _, child in pairs(handle:GetChildren()) do
                            if child:IsA("Decal") or child:IsA("Texture") then
                                child:Destroy()
                            end
                        end
                        local faces = {Enum.NormalId.Top,Enum.NormalId.Bottom,Enum.NormalId.Left,Enum.NormalId.Right,Enum.NormalId.Front,Enum.NormalId.Back}
                        for _, face in pairs(faces) do
                            local tex = Instance.new("Texture")
                            tex.Texture = imageId
                            tex.Face = face
                            local size = handle.Size
                            if isBigPart(handle) then
                                if face == Enum.NormalId.Top or face == Enum.NormalId.Bottom then
                                    tex.StudsPerTileU = getTileSize(size.X)
                                    tex.StudsPerTileV = getTileSize(size.Z)
                                elseif face == Enum.NormalId.Left or face == Enum.NormalId.Right then
                                    tex.StudsPerTileU = getTileSize(size.Z)
                                    tex.StudsPerTileV = getTileSize(size.Y)
                                elseif face == Enum.NormalId.Front or face == Enum.NormalId.Back then
                                    tex.StudsPerTileU = getTileSize(size.X)
                                    tex.StudsPerTileV = getTileSize(size.Y)
                                end
                            else
                                if face == Enum.NormalId.Top or face == Enum.NormalId.Bottom then
                                    tex.StudsPerTileU = size.X
                                    tex.StudsPerTileV = size.Z
                                elseif face == Enum.NormalId.Left or face == Enum.NormalId.Right then
                                    tex.StudsPerTileU = size.Z
                                    tex.StudsPerTileV = size.Y
                                elseif face == Enum.NormalId.Front or face == Enum.NormalId.Back then
                                    tex.StudsPerTileU = size.X
                                    tex.StudsPerTileV = size.Y
                                end
                            end
                            tex.Parent = handle
                        end
                    end
                end
            end
        end
    end
end

local function resetEverything()
    for obj, texture in pairs(originalDecals) do
        if obj and obj.Parent then
            obj.Texture = texture or ""
        end
    end
    for obj, texture in pairs(originalTextures) do
        if obj and obj.Parent then
            obj.Texture = texture or ""
        end
    end
    for _, tex in pairs(addedTextures) do
        if tex and tex.Parent then
            tex:Destroy()
        end
    end
    addedTextures = {}
    for obj, texture in pairs(originalMeshTextures) do
        if obj and obj.Parent then
            obj.TextureId = texture or ""
        end
    end
    for plr, clothes in pairs(originalPlayerClothes) do
        local char = plr.Character
        if char then
            for shirtItem, template in pairs(clothes.Shirt) do
                if shirtItem and shirtItem.Parent then
                    shirtItem.ShirtTemplate = template or ""
                end
            end
            for pantsItem, template in pairs(clothes.Pants) do
                if pantsItem and pantsItem.Parent then
                    pantsItem.PantsTemplate = template or ""
                end
            end
        end
    end
    for _, obj in pairs(Lighting:GetChildren()) do
        if obj:IsA("Sky") then
            obj:Destroy()
        end
    end
    for _, sky in pairs(originalSkybox) do
        sky:Clone().Parent = Lighting
    end
    originalDecals = {}
    originalTextures = {}
    originalMeshTextures = {}
    originalPlayerClothes = {}
    originalSkybox = {}
end

local function jumpscare()
    local scareGui = Instance.new("ScreenGui")
    scareGui.Name = "JumpscareGui"
    scareGui.ResetOnSpawn = false
    scareGui.Parent = PlayerGui
    local imgLabel = Instance.new("ImageLabel")
    imgLabel.Size = UDim2.new(1,0,1,0)
    imgLabel.Position = UDim2.new(0,0,0,0)
    imgLabel.BackgroundTransparency = 1
    imgLabel.Image = imageId
    imgLabel.Parent = scareGui
    local sound = Instance.new("Sound")
    sound.SoundId = SoundId
    sound.Volume = 1
    sound.Looped = false
    sound.Parent = scareGui
    sound:Play()
    delay(5, function()
        if scareGui then
            scareGui:Destroy()
        end
    end)
end

local btnDecalSpam = createButton("Decal Spam")
btnDecalSpam.Parent = ButtonsFrame
btnDecalSpam.MouseButton1Click:Connect(changeAllLand)

local btnSkybox = createButton("Skybox")
btnSkybox.Parent = ButtonsFrame
btnSkybox.MouseButton1Click:Connect(changeSkybox)

local btnPlayersSpam = createButton("Players Spam")
btnPlayersSpam.Parent = ButtonsFrame
btnPlayersSpam.MouseButton1Click:Connect(changePlayersClothes)

local btnJumpscare = createButton("Jumpscare Image")
btnJumpscare.Parent = ButtonsFrame
btnJumpscare.MouseButton1Click:Connect(jumpscare)

local btnReset = createButton("Reset Everything")
btnReset.Parent = ButtonsFrame
btnReset.MouseButton1Click:Connect(resetEverything)

Features & Information

Decal And SkyBox By Axom666 •Decal •SkyBox •Players change look •Reset Everything. -More Coming Soon!
#Decal#Decal Spam#Skybox#Skybox Changer#Axom

Community Comments (1)

CoolscriptdevrnCoolscriptdevrnMar 6, 2026

Nice visual

More Scripts for Universal Scripts