show all roles BYPASS 2025 WORKING
Key Required

show all roles BYPASS 2025 WORKING

[TITLE UNAVAILABLE]Script_legacyScript_legacy 4.6K views 87 executesUpdated Apr 13, 2025
1.3/ 5(4 votes)
1325% Positive
Lua Script•130 lines (4266 chars)
--[[
    Role ESP dengan Ikon & Outline Fix
    Support XENO Executor
]]

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local RoleIcons = {
    Killer = 607147197,
    Sheriff = 125117925593395,
    HomigradPolice = 418541763,
    HomigradTerrorist = 71660057329682,
    Target = 997927539
}

local RoleColors = {
    Killer = Color3.fromRGB(255, 0, 0),
    Sheriff = Color3.fromRGB(0, 0, 255),
    HomigradPolice = Color3.fromRGB(0, 0, 255),
    HomigradTerrorist = Color3.fromRGB(255, 165, 0),
    Target = Color3.fromRGB(255, 255, 0),
    Unarmed = Color3.fromRGB(0, 255, 0)
}

local weaponMarkers = {
    Killer = {"Sawn-off", "K1911", "RR-LightCompactPistolS", "JS2-Derringy", "KOLT-AR15", "JS-22", "KamatovS"},
    Sheriff = {"RR-Snubby", "GG-17", "IZVEKH-412"},
    HomigradTerrorist = {"VK's ANKM", "RY's GG-17", "AT's KAR15"},
    HomigradPolice = {"RR-40", "IZVEKH-412", "ZJ23M"}
}

local function createESP(player, role)
    local char = player.Character
    if not char or not char:FindFirstChild("Head") then return end

    -- Ikon
    local head = char.Head
    if not head:FindFirstChild("RoleESPIcon") then
        local gui = Instance.new("BillboardGui")
        gui.Name = "RoleESPIcon"
        gui.Adornee = head
        gui.Size = UDim2.new(0, 30, 0, 30)
        gui.StudsOffset = Vector3.new(0, 2, 0)
        gui.AlwaysOnTop = true
        gui.Parent = head

        local img = Instance.new("ImageLabel")
        img.BackgroundTransparency = 1
        img.Size = UDim2.new(1, 0, 1, 0)
        img.Image = "rbxassetid://" .. (RoleIcons[role] or "")
        img.Parent = gui
    else
        head.RoleESPIcon.ImageLabel.Image = "rbxassetid://" .. (RoleIcons[role] or "")
    end

    -- Outline per karakter (satu highlight)
    if not char:FindFirstChild("RoleHighlight") then
        local hl = Instance.new("Highlight")
        hl.Name = "RoleHighlight"
        hl.FillTransparency = 1
        hl.OutlineTransparency = 0
        hl.OutlineColor = RoleColors[role] or Color3.fromRGB(255, 255, 255)
        hl.Adornee = char
        hl.Parent = char
    else
        char.RoleHighlight.OutlineColor = RoleColors[role] or Color3.fromRGB(255, 255, 255)
    end
end

local function clearESP(player)
    local char = player.Character
    if char then
        local hl = char:FindFirstChild("RoleHighlight")
        if hl then hl:Destroy() end
    end
    if char and char:FindFirstChild("Head") then
        local icon = char.Head:FindFirstChild("RoleESPIcon")
        if icon then icon:Destroy() end
    end
end

local function getPlayerRole(player)
    local npc = workspace:FindFirstChild("NPCSFolder") and workspace.NPCSFolder:FindFirstChild(player.Name)
    local tool = (player.Character and player.Character:FindFirstChildOfClass("Tool")) or (npc and npc:FindFirstChildOfClass("Tool"))
    local backpack = player:FindFirstChild("Backpack")

    local function checkWeapon(weapon)
        for role, list in pairs(weaponMarkers) do
            if table.find(list, weapon) then return role end
        end
    end

    local statusGui = LocalPlayer:FindFirstChild("PlayerGui") and LocalPlayer.PlayerGui:FindFirstChild("RESETONDEATHStatusGui")
    if statusGui and statusGui:FindFirstChild("TARGETHINT") then
        local hintText = statusGui.TARGETHINT.Text
        if npc and npc:FindFirstChild("Configuration") then
            for _, val in ipairs(npc.Configuration:GetChildren()) do
                if val:IsA("StringValue") and val.Value == hintText then
                    return "Target"
                end
            end
        end
    end

    if tool then return checkWeapon(tool.Name) end

    if backpack then
        for _, item in pairs(backpack:GetChildren()) do
            local role = checkWeapon(item.Name)
            if role then return role end
        end
    end

    return "Unarmed"
end

RunService.RenderStepped:Connect(function()
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer then
            local role = getPlayerRole(player)
            if role then
                createESP(player, role)
            else
                clearESP(player)
            end
        end
    end
end)

Features & Information

- view all roles what people get murderer or sheriff or smth
#BYPASS

Community Comments (1)

good but some people dont have esp on em but good tho

More Scripts for [TITLE UNAVAILABLE]