Elsium LOL
Key RequiredUniversal

Elsium LOL

Universal ScriptVekosScriptsVekosScripts 2.3K views 503 executesUpdated Jul 31, 2025
Unrated
00
Lua Script•373 lines (12644 chars)
getgenv().Elisium = {
    Camlock = {
        Enabled = true,
        AimPart = "UpperTorso",
        Prediction = 0.123,
        Smoothness = 0.09,
        Mode = "Button",
        Spectate = false
    },
    Cframe = {
        enabled = false,
        speed = 2
    },
    TargetStrafe = {
        Enabled = false,
        StrafeSpeed = 25,
        StrafeRadius = 7,
        StrafeHeight = 6,
        RandomizerMode = false
    },
    TargetAim = {
        enabled = true,
        targetPart = "UpperTorso",
        prediction = 0.1535
    },
    Loaded = false
}

local target = nil
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local Mouse = player:GetMouse()
local Camera = Workspace.CurrentCamera
local playerCharacter = player.Character or player.CharacterAdded:Wait()

if Elisium.Loaded then
    notify("Already Loaded")
    return
end

Elisium.Loaded = true

game:GetService("RunService").RenderStepped:Connect(
    function(deltaTime)
        if Elisium.Camlock.Spectate and target then
game.Workspace.CurrentCamera.CameraSubject = target.Character
   else
game.Workspace.CurrentCamera.CameraSubject = game.Players.LocalPlayer.Character.Humanoid
        end
   end
)

local Notification = Instance.new("ScreenGui")
local Holder = Instance.new("Frame")
local UIListLayout = Instance.new("UIListLayout")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")

for Key, Object in pairs(getgc(true)) do
    if type(Object) == "table" then
        setreadonly(Object, false)
        local indexInstance = rawget(Object, "indexInstance")
        if type(indexInstance) == "table" and indexInstance[1] == "kick" then
            setreadonly(indexInstance, false)
            rawset(
                Object,
                "Table",
                {
                    "kick",
                    function()
                        coroutine.yield()
                    end
                }
            ) --> By using coroutine.yield() we are preventing script table from communicating with the server.
            warn(
                "\n---[ INFO ]---\nBypassed Adonis Anti-Cheat/Anti-Exploit.\nBypass Method: Preventing Script Table From Communicating With The Server."
            )
            break
        end
    end
end

Notification.Name = "Notification"
Notification.Parent = game.CoreGui
Notification.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

Holder.Name = "Holder"
Holder.Parent = Notification
Holder.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
Holder.BackgroundTransparency = 1
Holder.Position = UDim2.new(1, -10, 0, 10)
Holder.AnchorPoint = Vector2.new(1, 0)
Holder.Size = UDim2.new(0, 243, 0, 240)

UIListLayout.Parent = Holder
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 4)

local function createNotificationTemplate(text, duration)
    local Template = Instance.new("Frame")
    local ColorBar = Instance.new("Frame")
    local TextLabel = Instance.new("TextLabel")

    Template.Name = text
    Template.Parent = Holder
    Template.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    Template.BorderSizePixel = 0
    Template.Size = UDim2.new(1, 0, 0, 22)
    Template.Transparency = 1

    ColorBar.Name = "ColorBar"
    ColorBar.Parent = Template
    ColorBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
    ColorBar.BorderSizePixel = 0
    ColorBar.Size = UDim2.new(0, 2, 0, 22)
    ColorBar.Transparency = 1

    TextLabel.Parent = Template
    TextLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    TextLabel.BackgroundTransparency = 1
    TextLabel.BorderSizePixel = 0
    TextLabel.Position = UDim2.new(0, 8, 0, 0)
    TextLabel.Size = UDim2.new(1, -10, 0, 22)
    TextLabel.Font = Enum.Font.Code
    TextLabel.Text = text .. " [" .. duration .. "s]"
    TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    TextLabel.TextSize = 12
    TextLabel.TextStrokeTransparency = 0
    TextLabel.TextXAlignment = Enum.TextXAlignment.Left
    TextLabel.Transparency = 1

    return Template, ColorBar, TextLabel
end

function notify(text, time)
    if time <= 0 then
        warn("Notification duration must be greater than 0")
        return
    end

    local Template, ColorBar, TextLabel = createNotificationTemplate(text, time)

    local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local fadeInGoal = {Transparency = 0}
    local fadeOutGoal = {Transparency = 1}

    local sizeTween = TweenService:Create(Template, tweenInfo, fadeInGoal)
    local colorBarTween = TweenService:Create(ColorBar, tweenInfo, fadeInGoal)
    local textTween = TweenService:Create(TextLabel, tweenInfo, fadeInGoal)

    sizeTween:Play()
    colorBarTween:Play()
    textTween:Play()

    local elapsed = 0
    local updateConnection

    updateConnection = RunService.RenderStepped:Connect(function(dt)
        elapsed = elapsed + dt
        local remainingTime = math.max(0, time - elapsed)
        TextLabel.Text = text .. " [" .. string.format("%.1f", remainingTime) .. "s]"

        if remainingTime <= 0 then
            updateConnection:Disconnect()
            local fadeOutTween = TweenService:Create(Template, tweenInfo, fadeOutGoal)
            fadeOutTween:Play()
            fadeOutTween.Completed:Wait()
            Template:Destroy()
        end
    end)
end

local function GetClosestPlayer()
    local closestPlayer = nil
    local shortestScore = math.huge

    for _, plr in pairs(Players:GetPlayers()) do
        if plr ~= player and plr.Character and plr.Character:FindFirstChild(Elisium.Camlock.AimPart) and plr.Character:FindFirstChild("Humanoid") and plr.Character.Humanoid.Health > 0 then
            local part = plr.Character[Elisium.Camlock.AimPart]
            local relativePos = part.Position - Camera.CFrame.Position
            local playerDistance = relativePos.Magnitude
            local screenPosition, onScreen = Camera:WorldToViewportPoint(part.Position)

            if onScreen then
                local angle = math.deg(math.acos(Camera.CFrame.LookVector:Dot(relativePos.Unit)))
                local mouseDistance = (Vector2.new(screenPosition.X, screenPosition.Y) - Vector2.new(Mouse.X, Mouse.Y)).Magnitude

                local score = mouseDistance * 0.3 + (angle / 90) * 0.5 + (playerDistance / 1000) * 0.2

                local ray = Ray.new(Camera.CFrame.Position, relativePos.Unit * playerDistance)
                local hitPart = Workspace:FindPartOnRayWithIgnoreList(ray, {plr.Character})

                if (not hitPart or hitPart:IsDescendantOf(plr.Character)) and score < shortestScore then
                    closestPlayer = plr
                    shortestScore = score
                end
            end
        end
    end

    return closestPlayer
end

local function ToggleLock()
    if Elisium.Camlock.Enabled then
        if target then
            notify("Lock: Unlocked!", 5)
            target = nil
        else
            target = GetClosestPlayer()
            if target then
                notify("Lock: Locked onto " .. tostring(target.Name), 5)
            else
                notify("Lock: No target found", 5)
            end
        end
    else
        notify("Lock not enabled", 5)
    end
end

if Elisium.Camlock.Mode == "Tool" then
    local Tool = Instance.new("Tool")
    Tool.RequiresHandle = false
    Tool.Name = "Lock Tool"
    Tool.Parent = player.Backpack

    local function onCharacterAdded()
        Tool.Parent = player.Backpack
    end

    player.CharacterAdded:Connect(onCharacterAdded)

    player.CharacterRemoving:Connect(function()
        Tool.Parent = player.Backpack
    end)

    Tool.Activated:Connect(function()
        ToggleLock()
    end)

elseif Elisium.Camlock.Mode == "Button" then
    local playerGui = player:WaitForChild("PlayerGui")

    local function setupGui()
        local screenGui = playerGui:FindFirstChild("LockScreenGui")

        if not screenGui then
            screenGui = Instance.new("ScreenGui")
            screenGui.Name = "LockScreenGui"
            screenGui.Parent = playerGui
        end

        local button = screenGui:FindFirstChild("LockButton")

        if not button then
            button = Instance.new("TextButton")
            button.Name = "LockButton"
            button.Size = UDim2.new(0, 100, 0, 55)
            button.Position = UDim2.new(0.5, -100, 0.8, -25)
            button.Text = "Aimlock"
            button.TextSize = 15
            button.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
            button.TextColor3 = Color3.fromRGB(255, 255, 255)
            button.Parent = screenGui
            button.Active = true
            button.Draggable = true

            local UICorner = Instance.new("UICorner")
            UICorner.CornerRadius = UDim.new(0, 25)
            UICorner.Parent = button

            button.MouseButton1Click:Connect(function()
                ToggleLock()
            end)
        end
    end

    setupGui()

    player.CharacterAdded:Connect(function()
        setupGui()
    end)
end

RunService.RenderStepped:Connect(function()
    if target and target.Character and target.Character:FindFirstChild(Elisium.Camlock.AimPart) then
        local aimPart = target.Character[Elisium.Camlock.AimPart]
        local targetPosition = aimPart.Position + aimPart.Velocity * Elisium.Camlock.Prediction
        local lookPosition = CFrame.new(Camera.CFrame.p, targetPosition)
        Camera.CFrame = Camera.CFrame:Lerp(lookPosition, Elisium.Camlock.Smoothness)

        if Elisium.TargetStrafe.Enabled then
            local lp = player.Character
            local targpos = target.Character.HumanoidRootPart.Position
            local strafeOffset
            
            if Elisium.TargetStrafe.RandomizerMode then
                strafeOffset = Vector3.new(
                    math.random(-Elisium.TargetStrafe.StrafeRadius, Elisium.TargetStrafe.StrafeRadius),
                    math.random(0, Elisium.TargetStrafe.StrafeHeight),
                    math.random(-Elisium.TargetStrafe.StrafeRadius, Elisium.TargetStrafe.StrafeRadius)
                )
            else
                strafeOffset = Vector3.new(
                    math.cos(tick() * Elisium.TargetStrafe.StrafeSpeed) * Elisium.TargetStrafe.StrafeRadius,
                    Elisium.TargetStrafe.StrafeHeight,
                    math.sin(tick() * Elisium.TargetStrafe.StrafeSpeed) * Elisium.TargetStrafe.StrafeRadius
                )
            end

            local strafePosition = targpos + strafeOffset
            strafePosition = Vector3.new(strafePosition.X, math.max(strafePosition.Y, targpos.Y), strafePosition.Z)
            
            lp:SetPrimaryPartCFrame(CFrame.new(strafePosition))
            player.Character.HumanoidRootPart.CFrame = CFrame.new(
                player.Character.HumanoidRootPart.Position,
                Vector3.new(targpos.X, player.Character.HumanoidRootPart.Position.Y, targpos.Z)
            )
        end
    end
end)

spawn(function()
    RunService.Heartbeat:Connect(function()
        if Elisium.Cframe.enabled then
            player.Character.HumanoidRootPart.CFrame =
                player.Character.HumanoidRootPart.CFrame + player.Character.Humanoid.MoveDirection * Elisium.Cframe.speed
        end
    end)
end)


for _, con in pairs(getconnections(Camera.Changed)) do
    con:Disable()
end
for _, con in pairs(getconnections(Camera:GetPropertyChangedSignal("CFrame"))) do
    con:Disable()
end


local mt = getrawmetatable(game)
local oldNameCall = mt.__namecall
setreadonly(mt, false)

mt.__namecall = newcclosure(function(Self, ...)
    local args = {...}
    local methodName = getnamecallmethod()
    if not checkcaller() and methodName == "FireServer" and Elisium.TargetAim.enabled then
        for i, Argument in ipairs(args) do
            if typeof(Argument) == "Vector3" and target and target.Character then
                args[i] = target.Character[Elisium.TargetAim.targetPart].Position + (target.Character[Elisium.TargetAim.targetPart].Velocity * Elisium.TargetAim.prediction)
            end
        end
    end
    return oldNameCall(Self, unpack(args))
end)

setreadonly(mt, true)

function drawRedCircle()
    local circle = Drawing.new("Circle")
    circle.Position = Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2, workspace.CurrentCamera.ViewportSize.Y / 2)
    circle.Radius = 120
    circle.Color = Color3.fromRGB(0, 0, 0)
    circle.Thickness = 1
    circle.Filled = false
    circle.Visible = true
end

drawRedCircle()

Features & Information

Great

Community Comments (2)

zins2zins2Jul 31, 2025

yo gang stop posting these shiddy doodoo ah scripts please.

VekosScriptsVekosScriptsJul 31, 2025

@zins2 syfm gang

More Scripts for Universal Scripts