Script rivals
Key Required

Script rivals

Havi_dy's Placemar*itsrobloxmar*itsroblox 768 views 1.2K executesUpdated Apr 5, 2026
Unrated
00
Lua Script•439 lines (18271 chars)
--// SERVIÇOS
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local SoundService = game:GetService("SoundService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera

--// CONFIGURAÇÕES
local Settings = {
    -- IMAGEM PERSONALIZADA (rbxassetid://1234567890)
    ImageUrl = "rbxassetid://108597538356810", -- COPIE O ID DA SUA IMAGEM DO ROBLOX E COLE AQUI

    Aimbot = true,
    AimPart = "Head",
    FOV = 150,
    AimSpeed = 0.6,
    TeamCheck = true,
    MaxDistance = 1000,
    
    RGB_Mode = false,
    ESP_Lines = true,
    ESP_Box = true,
    ESP_Skeleton = true,
    ESP_Health = true,

    Fly = false,
    FlySpeed = 50,
    Noclip = false,
    Safe = false,
    
    ThemeColor = Color3.fromRGB(0, 255, 150),
    DefaultColor = Color3.fromRGB(0, 255, 150)
}

--// PROTEÇÃO E LIMPEZA
if CoreGui:FindFirstChild("JN_Cheats_V17") then 
    CoreGui:FindFirstChild("JN_Cheats_V17"):Destroy() 
end
RunService:UnbindFromRenderStep("JN_Cheats_Loop_V17")

--// SISTEMA DE SOM 
local SoundOn = Instance.new("Sound")
SoundOn.SoundId = "rbxassetid://2865227271"
SoundOn.Volume = 5
SoundOn.Parent = workspace

local SoundOff = Instance.new("Sound")
SoundOff.SoundId = "rbxassetid://2865228021"
SoundOff.Volume = 5
SoundOff.Parent = workspace

local function PlaySound(state)
    if state then SoundOn:Play() else SoundOff:Play() end
end

--// CACHE DE DESENHOS
local PlayerDrawings = {}

local function CreateDrawing(class, props)
    local obj = Drawing.new(class)
    for i, v in pairs(props) do obj[i] = v end
    return obj
end

local function AddDrawings(p)
    if PlayerDrawings[p] then return end
    PlayerDrawings[p] = {
        Line = CreateDrawing("Line", {Thickness = 1.5, Color = Settings.ThemeColor, Visible = false}),
        Box = CreateDrawing("Square", {Thickness = 1.5, Color = Settings.ThemeColor, Filled = false, Visible = false}),
        HealthBar = CreateDrawing("Line", {Thickness = 2, Color = Color3.fromRGB(0, 255, 0), Visible = false}),
        Skeleton = {
            Spine = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}),
            ArmL = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}),
            ArmR = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}),
            LegL = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}),
            LegR = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false})
        }
    }
end

local function RemoveDrawings(p)
    if PlayerDrawings[p] then
        PlayerDrawings[p].Line:Remove()
        PlayerDrawings[p].Box:Remove()
        PlayerDrawings[p].HealthBar:Remove()
        for _, bone in pairs(PlayerDrawings[p].Skeleton) do bone:Remove() end
        PlayerDrawings[p] = nil
    end
end
Players.PlayerRemoving:Connect(RemoveDrawings)

--// INTERFACE GRÁFICA (GUI COM IMAGENS & BOTÃO MÓVEL)
local ScreenGui = Instance.new("ScreenGui", CoreGui)
ScreenGui.Name = "JN_Cheats_V17"
ScreenGui.ResetOnSpawn = false

-- Botão de Abrir (Logo Móvel)
local OpenBtn = Instance.new("TextButton", ScreenGui)
OpenBtn.Size = UDim2.new(0, 60, 0, 60)
OpenBtn.Position = UDim2.new(0.5, -30, 0.05, 0)
OpenBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
OpenBtn.Text = "" 
OpenBtn.TextColor3 = Settings.ThemeColor
OpenBtn.Font = Enum.Font.GothamBold
OpenBtn.TextSize = 18
OpenBtn.BorderSizePixel = 2
OpenBtn.BorderColor3 = Settings.ThemeColor
Instance.new("UICorner", OpenBtn).CornerRadius = UDim.new(1, 0)

-- TORNA O BOTÃO MÓVEL (Arrastável)
OpenBtn.Active = true
OpenBtn.Draggable = true 

-- Coloca a Imagem no Botão
local OpenBtnImage = Instance.new("ImageLabel", OpenBtn)
OpenBtnImage.Size = UDim2.new(0.8, 0, 0.8, 0)
OpenBtnImage.Position = UDim2.new(0.1, 0, 0.1, 0)
OpenBtnImage.BackgroundTransparency = 1
OpenBtnImage.ImageColor3 = Color3.new(1, 1, 1) -- Garante cor original
OpenBtnImage.Image = Settings.ImageUrl
OpenBtnImage.ScaleType = Enum.ScaleType.Fit

-- Painel Principal
local Main = Instance.new("Frame", ScreenGui)
Main.Size = UDim2.new(0, 420, 0, 310)
Main.Position = UDim2.new(0.5, -210, 1.5, 0) 
Main.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
Main.BorderSizePixel = 0
Main.Active = true
Main.Draggable = true
Instance.new("UICorner", Main)

-- Animação do Painel
local MenuOpen = false
OpenBtn.MouseButton1Click:Connect(function()
    MenuOpen = not MenuOpen
    local TargetPos = MenuOpen and UDim2.new(0.5, -210, 0.5, -155) or UDim2.new(0.5, -210, 1.5, 0)
    TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = TargetPos}):Play()
    PlaySound(MenuOpen)
end)

-- Sidebar
local SideBar = Instance.new("Frame", Main)
SideBar.Size = UDim2.new(0, 110, 1, 0)
SideBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
Instance.new("UICorner", SideBar)

-- Coloca a Imagem no Painel
local SideBarImage = Instance.new("ImageLabel", SideBar)
SideBarImage.Size = UDim2.new(0.8, 0, 0, 40)
SideBarImage.Position = UDim2.new(0.1, 0, 0, 5)
SideBarImage.BackgroundTransparency = 1
SideBarImage.ImageColor3 = Color3.new(1, 1, 1) -- Garante cor original
SideBarImage.Image = Settings.ImageUrl
SideBarImage.ScaleType = Enum.ScaleType.Fit

local PageContainer = Instance.new("Frame", Main)
PageContainer.Position = UDim2.new(0, 120, 0, 10)
PageContainer.Size = UDim2.new(1, -130, 1, -20)
PageContainer.BackgroundTransparency = 1

local Pages = {}

local function NewPage(name, order)
    local p = Instance.new("ScrollingFrame", PageContainer)
    p.Size = UDim2.new(1, 0, 1, 0)
    p.BackgroundTransparency = 1
    p.Visible = false
    p.ScrollBarThickness = 0
    Instance.new("UIListLayout", p).Padding = UDim.new(0, 5)
    
    local btn = Instance.new("TextButton", SideBar)
    btn.Size = UDim2.new(0.9, 0, 0, 35)
    btn.Position = UDim2.new(0.05, 0, 0, 50 + (order * 40))
    btn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    btn.Text = name
    btn.TextColor3 = Color3.fromRGB(200, 200, 200)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 11
    Instance.new("UICorner", btn)
    
    btn.MouseButton1Click:Connect(function()
        for _, pg in pairs(Pages) do pg.Visible = false end
        p.Visible = true
        PlaySound(true)
    end)
    Pages[name] = p
    return p
end

local PageAim = NewPage("HEADTRICK", 0)
local PageVis = NewPage("VISUALS", 1)
local PageExt = NewPage("ESTREME", 2)
local PageInf = NewPage("INFO", 3)
PageAim.Visible = true

local InfoText = Instance.new("TextLabel", PageInf)
InfoText.Size = UDim2.new(1, 0, 0, 200)
InfoText.BackgroundTransparency = 1
InfoText.Text = "Criado por:\nJN Xit\n\nVersão: 17.0 Ultimate\n(Correção de Cores da Logo)"
InfoText.TextColor3 = Color3.fromRGB(255, 255, 255)
InfoText.Font = Enum.Font.GothamBold
InfoText.TextSize = 16

local UI_Elements = {}

local function NewToggle(parent, text, setting, callback)
    local btn = Instance.new("TextButton", parent)
    btn.Size = UDim2.new(1, 0, 0, 35)
    btn.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
    btn.Text = text .. (Settings[setting] and ": ON" or ": OFF")
    btn.TextColor3 = Settings[setting] and Settings.ThemeColor or Color3.fromRGB(200, 200, 200)
    btn.Font = Enum.Font.Gotham
    Instance.new("UICorner", btn)
    
    table.insert(UI_Elements, {Btn = btn, Setting = setting})
    
    btn.MouseButton1Click:Connect(function()
        Settings[setting] = not Settings[setting]
        btn.Text = text .. (Settings[setting] and ": ON" or ": OFF")
        btn.TextColor3 = Settings[setting] and Settings.ThemeColor or Color3.fromRGB(200, 200, 200)
        PlaySound(Settings[setting])
        if callback then callback(Settings[setting]) end
    end)
end

-- Botões
NewToggle(PageAim, "Aimlock (Mouse1)", "Aimbot")
NewToggle(PageAim, "Team Checker", "TeamCheck")

NewToggle(PageVis, "Modo RGB (Chroma)", "RGB_Mode")
NewToggle(PageVis, "ESP Lines", "ESP_Lines")
NewToggle(PageVis, "ESP Box", "ESP_Box")
NewToggle(PageVis, "ESP Health", "ESP_Health")
NewToggle(PageVis, "ESP Skeleton", "ESP_Skeleton")

-- Lógica Safe e Estreme
local SafePlatform
local LastSafePos

NewToggle(PageExt, "Safe (Zona Segura)", "Safe", function(state)
    local char = LocalPlayer.Character
    local root = char and char:FindFirstChild("HumanoidRootPart")
    if state then
        if not SafePlatform then
            SafePlatform = Instance.new("Part", workspace)
            SafePlatform.Size = Vector3.new(30, 2, 30)
            SafePlatform.Position = Vector3.new(0, 50000, 0)
            SafePlatform.Anchored = true
            SafePlatform.Transparency = 0.9 
            SafePlatform.BrickColor = BrickColor.new("Lime green")
        end
        if root then
            LastSafePos = root.CFrame
            root.CFrame = SafePlatform.CFrame + Vector3.new(0, 5, 0)
        end
    else
        if root and LastSafePos then root.CFrame = LastSafePos end
    end
end)

NewToggle(PageExt, "Fly (Voar)", "Fly")
NewToggle(PageExt, "No Clip (Atravessar)", "Noclip")

--// NOCLIP LOGIC
RunService.Stepped:Connect(function()
    if Settings.Noclip and LocalPlayer.Character then
        for _, part in pairs(LocalPlayer.Character:GetDescendants()) do
            if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end
        end
    end
end)

--// FUNÇÕES CORE E ULTRA TEAM CHECKER
local function GetParts(char)
    local R15 = char:FindFirstChild("UpperTorso")
    if R15 then return char:FindFirstChild("Head"), char:FindFirstChild("UpperTorso"), char:FindFirstChild("LeftUpperArm"), char:FindFirstChild("RightUpperArm"), char:FindFirstChild("LeftUpperLeg"), char:FindFirstChild("RightUpperLeg")
    else return char:FindFirstChild("Head"), char:FindFirstChild("Torso"), char:FindFirstChild("Left Arm"), char:FindFirstChild("Right Arm"), char:FindFirstChild("Left Leg"), char:FindFirstChild("Right Leg") end
end

local function IsEnemy(p)
    if p == LocalPlayer then return false end
    if not p.Character or not p.Character.Parent then return false end
    if not p.Character:FindFirstChild("Humanoid") or p.Character.Humanoid.Health <= 0 then return false end
    
    if Settings.TeamCheck then
        if p.Team and LocalPlayer.Team and p.Team == LocalPlayer.Team then return false end
        if p.TeamColor and LocalPlayer.TeamColor and p.TeamColor == LocalPlayer.TeamColor then return false end
    end
    
    return true
end

--// LOOP PRINCIPAL (RGB, ESP, AIM)
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 1.5
FOVCircle.Transparency = 0.8
FOVCircle.Visible = false

RunService:BindToRenderStep("JN_Cheats_Loop_V17", Enum.RenderPriority.Camera.Value + 1, function()
    if Settings.RGB_Mode then Settings.ThemeColor = Color3.fromHSV(tick() % 5 / 5, 1, 1)
    else Settings.ThemeColor = Settings.DefaultColor end
    
    -- Removi a linha que forçava a imagem a ficar da cor do tema
    -- Agora a imagem manterá suas cores originais!

    OpenBtn.BorderColor3 = Settings.ThemeColor
    FOVCircle.Color = Settings.ThemeColor

    for _, ui in pairs(UI_Elements) do
        if Settings[ui.Setting] then ui.Btn.TextColor3 = Settings.ThemeColor end
    end

    FOVCircle.Visible = Settings.Aimbot
    FOVCircle.Radius = Settings.FOV
    FOVCircle.Position = UserInputService:GetMouseLocation()

    if Settings.Fly then
        local char = LocalPlayer.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if root and char:FindFirstChild("Humanoid").Health > 0 then
            if not root:FindFirstChild("JNFlyVelocity") then
                local bv = Instance.new("BodyVelocity", root)
                bv.Name = "JNFlyVelocity"
                bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
                bv.Velocity = Vector3.new(0, 0, 0)
                local bg = Instance.new("BodyGyro", root)
                bg.Name = "JNFlyGyro"
                bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
                bg.CFrame = Camera.CFrame
            end
            local bv = root:FindFirstChild("JNFlyVelocity")
            local bg = root:FindFirstChild("JNFlyGyro")
            if bv and bg then
                bg.CFrame = Camera.CFrame
                local dir = Vector3.new(0,0,0)
                if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + Camera.CFrame.LookVector end
                if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - Camera.CFrame.LookVector end
                if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - Camera.CFrame.RightVector end
                if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + Camera.CFrame.RightVector end
                bv.Velocity = dir * Settings.FlySpeed
            end
        end
    else
        local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
        if root then
            if root:FindFirstChild("JNFlyVelocity") then root.JNFlyVelocity:Destroy() end
            if root:FindFirstChild("JNFlyGyro") then root.JNFlyGyro:Destroy() end
        end
    end

    local TargetHead = nil
    local MinDist = Settings.FOV

    for _, d in pairs(PlayerDrawings) do
        d.Line.Visible = false; d.Box.Visible = false; d.HealthBar.Visible = false
        d.Line.Color = Settings.ThemeColor
        d.Box.Color = Settings.ThemeColor
        for _, bone in pairs(d.Skeleton) do bone.Visible = false end
    end

    for _, p in pairs(Players:GetPlayers()) do
        if IsEnemy(p) then
            if not PlayerDrawings[p] then AddDrawings(p) end
            local d = PlayerDrawings[p]
            local char = p.Character
            local Head, Torso, LArm, RArm, LLeg, RLeg = GetParts(char)
            
            if Head and Torso then
                local Distance3D = (Camera.CFrame.Position - Head.Position).Magnitude
                if Distance3D <= Settings.MaxDistance then
                    local HeadPos, OnScreen = Camera:WorldToViewportPoint(Head.Position)
                    
                    if OnScreen and HeadPos.Z > 0 then
                        local MousePos = UserInputService:GetMouseLocation()
                        local Dist2D = (Vector2.new(HeadPos.X, HeadPos.Y) - MousePos).Magnitude
                        
                        if Dist2D < MinDist then
                            MinDist = Dist2D
                            TargetHead = Head
                        end

                        local RootPos = Camera:WorldToViewportPoint(Torso.Position)
                        if RootPos.Z > 0 then
                            if Settings.ESP_Box then
                                local Size = Vector2.new(2000/HeadPos.Z, 2500/HeadPos.Z)
                                d.Box.Size = Size
                                d.Box.Position = Vector2.new(HeadPos.X - Size.X/2, HeadPos.Y - Size.Y/2)
                                d.Box.Visible = true
                            end
                            if Settings.ESP_Lines then
                                d.Line.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y)
                                d.Line.To = Vector2.new(HeadPos.X, HeadPos.Y)
                                d.Line.Visible = true
                            end
                            if Settings.ESP_Health then
                                local H = char.Humanoid.Health / char.Humanoid.MaxHealth
                                d.HealthBar.From = Vector2.new(HeadPos.X - (2000/HeadPos.Z)/2 - 5, HeadPos.Y + (2500/HeadPos.Z)/2)
                                d.HealthBar.To = Vector2.new(HeadPos.X - (2000/HeadPos.Z)/2 - 5, (HeadPos.Y + (2500/HeadPos.Z)/2) - (H * (2500/HeadPos.Z)))
                                d.HealthBar.Visible = true
                            end
                            if Settings.ESP_Skeleton and LArm and RArm and LLeg and RLeg then
                                local pLA = Camera:WorldToViewportPoint(LArm.Position)
                                local pRA = Camera:WorldToViewportPoint(RArm.Position)
                                local pLL = Camera:WorldToViewportPoint(LLeg.Position)
                                local pRL = Camera:WorldToViewportPoint(RLeg.Position)

                                if pLA.Z > 0 and pRA.Z > 0 and pLL.Z > 0 and pRL.Z > 0 then
                                    d.Skeleton.Spine.From = Vector2.new(HeadPos.X, HeadPos.Y); d.Skeleton.Spine.To = Vector2.new(RootPos.X, RootPos.Y)
                                    d.Skeleton.ArmL.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.ArmL.To = Vector2.new(pLA.X, pLA.Y)
                                    d.Skeleton.ArmR.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.ArmR.To = Vector2.new(pRA.X, pRA.Y)
                                    d.Skeleton.LegL.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.LegL.To = Vector2.new(pLL.X, pLL.Y)
                                    d.Skeleton.LegR.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.LegR.To = Vector2.new(pRL.X, pRL.Y)
                                    for _, bone in pairs(d.Skeleton) do bone.Visible = true end
                                end
                            end
                        end
                    end
                end
            end
        end
    end

    if Settings.Aimbot and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) and TargetHead then
        local HeadPos = Camera:WorldToViewportPoint(TargetHead.Position)
        local MouseLocation = UserInputService:GetMouseLocation()
        local MoveX = (HeadPos.X - MouseLocation.X) * Settings.AimSpeed
        local MoveY = (HeadPos.Y - MouseLocation.Y) * Settings.AimSpeed

        if mousemoverel then mousemoverel(MoveX, MoveY)
        else
            local TargetCFrame = CFrame.lookAt(Camera.CFrame.Position, TargetHead.Position)
            Camera.CFrame = Camera.CFrame:Lerp(TargetCFrame, Settings.AimSpeed + 0.2)
        end
    end
end)

Features & Information

aimboit and all

Community Comments (0)

No comments yet for this script.