Advertisement
SK1R4_script

Skira's Universal ESP

Jun 11th, 2025 (edited)
640
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.54 KB | Gaming | 0 0
  1. --==[[ quick execute: loadstring(game:HttpGet("https://pastebin.com/raw/PSNsEKug"))() ]]==--
  2.  
  3. local Players = game:GetService("Players")
  4. local RunService = game:GetService("RunService")
  5.  
  6. local localPlayer = Players.LocalPlayer
  7.  
  8. local espColors = {
  9.     Red = Color3.fromRGB(255, 0, 0),
  10.     Blue = Color3.fromRGB(0, 0, 255),
  11.     Green = Color3.fromRGB(0, 255, 0),
  12.     Yellow = Color3.fromRGB(255, 255, 0),
  13.     Pink = Color3.fromRGB(255, 105, 180),
  14.     Purple = Color3.fromRGB(128, 0, 128),
  15.     Black = Color3.fromRGB(0, 0, 0),
  16.     White = Color3.fromRGB(255, 255, 255),
  17.     Rainbow = "Rainbow",
  18.     ["Team Color"] = "TeamColor",
  19. }
  20.  
  21. local espStyles = {
  22.     "Small Square",
  23.     "Medium Square",
  24.     "Big Square",
  25.     "Lines",
  26. }
  27.  
  28. local selectedColor = "Red"
  29. local selectedStyle = "Small Square"
  30. local espEnabled = true
  31.  
  32. local function getKeys(tbl)
  33.     local keys = {}
  34.     for k in pairs(tbl) do
  35.         table.insert(keys, k)
  36.     end
  37.     return keys
  38. end
  39.  
  40. local screenGui = Instance.new("ScreenGui")
  41. screenGui.Name = "FunnyStuffGoingOn"
  42. screenGui.Parent = localPlayer:WaitForChild("PlayerGui")
  43.  
  44. local mainFrame = Instance.new("Frame")
  45. mainFrame.Size = UDim2.new(0, 280, 0, 450)
  46. mainFrame.Position = UDim2.new(0, 50, 0, 50)
  47. mainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
  48. mainFrame.BorderSizePixel = 0
  49. mainFrame.Parent = screenGui
  50. mainFrame.Active = true
  51. mainFrame.Draggable = true
  52.  
  53. local closeButton = Instance.new("TextButton")
  54. closeButton.Size = UDim2.new(0, 30, 0, 30)
  55. closeButton.Position = UDim2.new(1, -35, 0, 5)
  56. closeButton.Text = "X"
  57. closeButton.TextColor3 = Color3.new(1, 0, 0)
  58. closeButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
  59. closeButton.Parent = mainFrame
  60. closeButton.Font = Enum.Font.SourceSansBold
  61. closeButton.TextSize = 20
  62.  
  63. local reopenButton = Instance.new("TextButton")
  64. reopenButton.Size = UDim2.new(0, 60, 0, 30)
  65. reopenButton.Position = UDim2.new(0, 50, 0, 50)
  66. reopenButton.Text = "OPEN"
  67. reopenButton.TextColor3 = Color3.new(1, 1, 1)
  68. reopenButton.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
  69. reopenButton.Font = Enum.Font.SourceSansBold
  70. reopenButton.TextSize = 22
  71. reopenButton.Visible = false
  72. reopenButton.Parent = screenGui
  73.  
  74. reopenButton.MouseButton1Click:Connect(function()
  75.     mainFrame.Visible = true
  76.     reopenButton.Visible = false
  77. end)
  78.  
  79. local minimizeButton = Instance.new("TextButton")
  80. minimizeButton.Size = UDim2.new(0, 30, 0, 30)
  81. minimizeButton.Position = UDim2.new(1, -70, 0, 5)
  82. minimizeButton.Text = "-"
  83. minimizeButton.TextColor3 = Color3.new(1, 1, 1)
  84. minimizeButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
  85. minimizeButton.Font = Enum.Font.SourceSansBold
  86. minimizeButton.TextSize = 28
  87. minimizeButton.Parent = mainFrame
  88.  
  89. minimizeButton.MouseButton1Click:Connect(function()
  90.     mainFrame.Visible = false
  91.     reopenButton.Visible = true
  92. end)
  93.  
  94. local title = Instance.new("TextLabel")
  95. title.Position = UDim2.new(0, 10, 0, -30)
  96. title.Size = UDim2.new(1, -20, 0, 20)
  97. title.BackgroundTransparency = 1
  98. title.TextColor3 = Color3.new(1, 1, 1)
  99. title.TextScaled = true
  100. title.Text = "SKIRA'S UNIVERSAL ESP"
  101. title.Parent = mainFrame
  102.  
  103. local function createLabel(text, parent, posY)
  104.     local label = Instance.new("TextLabel")
  105.     label.Text = text
  106.     label.Size = UDim2.new(1, -20, 0, 24)
  107.     label.Position = UDim2.new(0, 10, 0, posY)
  108.     label.BackgroundTransparency = 1
  109.     label.TextColor3 = Color3.new(1,1,1)
  110.     label.Font = Enum.Font.SourceSansBold
  111.     label.TextSize = 18
  112.     label.TextXAlignment = Enum.TextXAlignment.Left
  113.     label.Parent = parent
  114.     return label
  115. end
  116.  
  117. local function createButtonList(title, options, parent, posY, callback)
  118.     createLabel(title, parent, posY)
  119.  
  120.     local buttonHeight = 40
  121.     local padding = 6
  122.     local totalHeight = (#options) * (buttonHeight + padding) - padding
  123.     local visibleHeight = math.min(totalHeight, 4 * (buttonHeight + padding))
  124.  
  125.     local scroll = Instance.new("ScrollingFrame")
  126.     scroll.Size = UDim2.new(1, -20, 0, visibleHeight)
  127.     scroll.Position = UDim2.new(0, 10, 0, posY + 28)
  128.     scroll.BackgroundColor3 = Color3.fromRGB(50,50,50)
  129.     scroll.BorderSizePixel = 0
  130.     scroll.ScrollBarThickness = 8
  131.     scroll.CanvasSize = UDim2.new(0, 0, 0, totalHeight)
  132.     scroll.Parent = parent
  133.  
  134.     local layout = Instance.new("UIListLayout")
  135.     layout.SortOrder = Enum.SortOrder.LayoutOrder
  136.     layout.Padding = UDim.new(0, padding)
  137.     layout.Parent = scroll
  138.  
  139.     for i, option in ipairs(options) do
  140.         local btn = Instance.new("TextButton")
  141.         btn.Size = UDim2.new(1, 0, 0, buttonHeight)
  142.         btn.Text = option
  143.         btn.Font = Enum.Font.SourceSans
  144.         btn.TextSize = 20
  145.         btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
  146.         btn.TextColor3 = Color3.new(1,1,1)
  147.         btn.Parent = scroll
  148.  
  149.         btn.MouseEnter:Connect(function()
  150.             btn.BackgroundColor3 = Color3.fromRGB(120, 120, 120)
  151.         end)
  152.         btn.MouseLeave:Connect(function()
  153.             btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
  154.         end)
  155.         btn.MouseButton1Click:Connect(function()
  156.             callback(option)
  157.         end)
  158.     end
  159.  
  160.     return scroll, buttonHeight + padding, totalHeight
  161. end
  162.  
  163. local markers = {}
  164.  
  165. local function clearMarkers()
  166.     for player, markerList in pairs(markers) do
  167.         for _, m in ipairs(markerList) do
  168.             if m.gui then
  169.                 m.gui:Destroy()
  170.             end
  171.             if m.line then
  172.                 if m.line.att0 then m.line.att0:Destroy() end
  173.                 if m.line.att1 then m.line.att1:Destroy() end
  174.                 m.line.beam:Destroy()
  175.             end
  176.         end
  177.         markers[player] = nil
  178.     end
  179. end
  180.  
  181. local function createBillboard(part, size, color)
  182.     if not part then return end
  183.     local billboard = Instance.new("BillboardGui")
  184.     billboard.Size = UDim2.new(0, size, 0, size)
  185.     billboard.AlwaysOnTop = true
  186.     billboard.Adornee = part
  187.     billboard.Parent = part
  188.     billboard.Name = "ESP_Billboard"
  189.  
  190.     local frame = Instance.new("Frame")
  191.     frame.BackgroundColor3 = color
  192.     frame.Size = UDim2.new(1, 0, 1, 0)
  193.     frame.BorderSizePixel = 0
  194.     frame.Parent = billboard
  195.  
  196.     return billboard
  197. end
  198.  
  199. local function createLine(part0, part1, color)
  200.     if not (part0 and part1) then return end
  201.  
  202.     local attachment0 = part0:FindFirstChild("ESP_Attachment0")
  203.     if not attachment0 then
  204.         attachment0 = Instance.new("Attachment")
  205.         attachment0.Name = "ESP_Attachment0"
  206.         attachment0.Parent = part0
  207.     end
  208.  
  209.     local attachment1 = part1:FindFirstChild("ESP_Attachment1")
  210.     if not attachment1 then
  211.         attachment1 = Instance.new("Attachment")
  212.         attachment1.Name = "ESP_Attachment1"
  213.         attachment1.Parent = part1
  214.     end
  215.  
  216.     local beam = part0:FindFirstChild("ESP_Beam")
  217.     if not beam then
  218.         beam = Instance.new("Beam")
  219.         beam.Name = "ESP_Beam"
  220.         beam.FaceCamera = true
  221.         beam.Width0 = 0.15
  222.         beam.Width1 = 0.15
  223.         beam.Transparency = NumberSequence.new(0)
  224.         beam.Attachment0 = attachment0
  225.         beam.Attachment1 = attachment1
  226.         beam.Parent = part0
  227.     end
  228.  
  229.     beam.Color = ColorSequence.new(color)
  230.  
  231.     return {
  232.         beam = beam,
  233.         att0 = attachment0,
  234.         att1 = attachment1,
  235.     }
  236. end
  237.  
  238. local partConnections = {
  239.     Torso = {"Head", "LeftUpperArm", "RightUpperArm", "LeftUpperLeg", "RightUpperLeg"},
  240.     Head = {},
  241.     LeftUpperArm = {"LeftLowerArm"},
  242.     RightUpperArm = {"RightLowerArm"},
  243.     LeftUpperLeg = {"LeftLowerLeg"},
  244.     RightUpperLeg = {"RightLowerLeg"},
  245.     LeftLowerArm = {"LeftHand"},
  246.     RightLowerArm = {"RightHand"},
  247.     LeftLowerLeg = {"LeftFoot"},
  248.     RightLowerLeg = {"RightFoot"},
  249. }
  250.  
  251. local function getColor(colorName, time, player)
  252.     if colorName == "Rainbow" then
  253.         local hue = (time % 5) / 5
  254.         return Color3.fromHSV(hue, 1, 1)
  255.     elseif colorName == "Team Color" and player and player.TeamColor then
  256.         return player.TeamColor.Color
  257.     end
  258.     return espColors[colorName] or Color3.new(1, 0, 0)
  259. end
  260.  
  261. local function updateMarkersForPlayer(player)
  262.     if not espEnabled then return end
  263.     local character = player.Character
  264.     if not character then return end
  265.  
  266.     markers[player] = markers[player] or {}
  267.  
  268.     for _, m in ipairs(markers[player]) do
  269.         if m.gui then m.gui:Destroy() end
  270.         if m.line then
  271.             if m.line.att0 then m.line.att0:Destroy() end
  272.             if m.line.att1 then m.line.att1:Destroy() end
  273.             m.line.beam:Destroy()
  274.         end
  275.     end
  276.     markers[player] = {}
  277.  
  278.     if selectedStyle == "Lines" then
  279.         for partName, connectedParts in pairs(partConnections) do
  280.             local part0 = character:FindFirstChild(partName)
  281.             if part0 then
  282.                 for _, conPartName in ipairs(connectedParts) do
  283.                     local part1 = character:FindFirstChild(conPartName)
  284.                     if part1 then
  285.                         local color = getColor(selectedColor, tick(), player)
  286.                         local lineData = nil
  287.                         for _, marker in ipairs(markers[player]) do
  288.                             if marker.line and marker.line.att0.Parent == part0 and marker.line.att1.Parent == part1 then
  289.                                 lineData = marker.line
  290.                                 break
  291.                             end
  292.                         end
  293.                         if not lineData then
  294.                             lineData = createLine(part0, part1, color)
  295.                             table.insert(markers[player], {line = lineData})
  296.                         else
  297.                             lineData.beam.Color = ColorSequence.new(color)
  298.                         end
  299.                     end
  300.                 end
  301.             end
  302.         end
  303.     else
  304.         local sizeMap = {
  305.             ["Small Square"] = 8,
  306.             ["Medium Square"] = 16,
  307.             ["Big Square"] = 28,
  308.         }
  309.         local size = sizeMap[selectedStyle] or 8
  310.  
  311.         for _, part in ipairs(character:GetChildren()) do
  312.             if part:IsA("BasePart") then
  313.                 local color = getColor(selectedColor, tick(), player)
  314.                 local gui = createBillboard(part, size, color)
  315.                 if gui then
  316.                     table.insert(markers[player], {gui = gui})
  317.                 end
  318.             end
  319.         end
  320.     end
  321. end
  322.  
  323. local function refreshAllESP()
  324.     clearMarkers()
  325.     for _, player in pairs(Players:GetPlayers()) do
  326.         if player.Character then
  327.             updateMarkersForPlayer(player)
  328.         end
  329.     end
  330. end
  331.  
  332. Players.PlayerAdded:Connect(function(player)
  333.     player.CharacterAdded:Connect(function()
  334.         refreshAllESP()
  335.     end)
  336. end)
  337. for _, player in pairs(Players:GetPlayers()) do
  338.     player.CharacterAdded:Connect(function()
  339.         refreshAllESP()
  340.     end)
  341. end
  342.  
  343. RunService.Heartbeat:Connect(function()
  344.     if not espEnabled then return end
  345.     if selectedColor == "Rainbow" or selectedColor == "Team Color" or selectedStyle == "Lines" then
  346.         for player, list in pairs(markers) do
  347.             for _, m in ipairs(list) do
  348.                 if m.gui then
  349.                     m.gui.Frame.BackgroundColor3 = getColor(selectedColor, tick(), player)
  350.                 elseif m.line and m.line.beam then
  351.                     m.line.beam.Color = ColorSequence.new(getColor(selectedColor, tick(), player))
  352.                 end
  353.             end
  354.         end
  355.     end
  356. end)
  357.  
  358. closeButton.MouseButton1Click:Connect(function()
  359.     espEnabled = false
  360.     clearMarkers()
  361.     screenGui:Destroy()
  362. end)
  363.  
  364. local colorScroll, colorBtnHeight, colorTotalHeight = createButtonList("ESP Colors", getKeys(espColors), mainFrame, 10, function(selection)
  365.     selectedColor = selection
  366.     refreshAllESP()
  367. end)
  368.  
  369. local styleScroll, styleBtnHeight, styleTotalHeight = createButtonList("ESP Styles", espStyles, mainFrame, 230, function(selection)
  370.     selectedStyle = selection
  371.     refreshAllESP()
  372. end)
  373.  
  374. refreshAllESP()
  375.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement