0% found this document useful (0 votes)
24 views

Message

Uploaded by

magn193c
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Message

Uploaded by

magn193c
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

local scriptSource = [[

local silentaim = {
enabled = true,
fovEnabled = true,
fovSize = 200,
fovCircleEnabled = true,
fovCircleColor = Color3.fromRGB(255, 255, 255),
hitPercent = 100,
headShotPercent = 100
}
local enemyesp = {
boxCorners = true,
boxLineSize = 0.33, -- 0.5 max
boxColor = Color3.fromRGB(255, 99, 99),
boxCornerOutline = true,
names = true,
nameSize = 12,
nameOffset = 6,
nameColor = Color3.fromRGB(255, 255, 255),
nameOutline = true,
healthBars = true,
healthBarOffset = -10,
healthBarThickness = 5,
healthBarOutline = true,
skeleton = true,
skeletonThickness = 1,
skeletonColor = Color3.fromRGB(255, 255, 255)
}

local requireModule
for i, v in next, getgc(false) do
if type(v) == "function" and debug.getinfo(v).name == "require" and
islclosure(v) then
requireModule = v
break
end
end

local publicSettings = requireModule("PublicSettings")


local replication = requireModule("ReplicationInterface")
local bulletObject = requireModule("BulletObject")
local network = requireModule("NetworkClient")

local runService = game:GetService("RunService")


local workspace = game:GetService("Workspace")
local players = game:GetService("Players")

local currentCamera = workspace.CurrentCamera


local localplayer = players.LocalPlayer
local ignore = workspace.Ignore
local new = bulletObject.new
local zero = Vector3.zero
local send = network.send
local dot = zero.Dot

local espData = {}
local healthbarData = game:HttpGet("https://i.imgur.com/FpnD6XG.png")
local defaultProperties = {
Thickness = 1,
Filled = false,
Transparency = 1,
Outline = false,
Center = true,
Visible = false
}

local fovCircle = Drawing.new("Circle")


fovCircle.Position = currentCamera.ViewportSize * 0.5
fovCircle.Visible = silentaim.fovCircleEnabled
fovCircle.Color = silentaim.fovCircleColor
fovCircle.Radius = silentaim.fovSize
fovCircle.Transparency = 1
fovCircle.Filled = false
fovCircle.NumSides = 32

local function getClosest(partName, fov)


local distance, position, closestPlayer, part = fov or math.huge, nil, nil,
nil
fovCircle.Position = currentCamera.ViewportSize * 0.5

replication.operateOnAllEntries(function(player, entry)
local character = entry._thirdPersonObject and
entry._thirdPersonObject._characterHash

if character and player.Team ~= localplayer.Team then


local screenPosition, onscreen =
currentCamera:WorldToViewportPoint(character[partName].Position)
local screenDistance = (Vector2.new(screenPosition.X,
screenPosition.Y) - fovCircle.Position).Magnitude

if screenPosition.Z > 0 and screenDistance < distance then


part = character[partName]
position = part.Position
distance = screenDistance
closestPlayer = entry
end
end
end)

return position, closestPlayer, part


end

local function trajectory(o, a, t, s, e)


local f = -a
local ld = t - o
local a = dot(f, f)
local b = 4 * dot(ld, ld)
local k = (4 * (dot(f, ld) + s * s)) / (2 * a)
local v = (k * k - b / a) ^ 0.5
local t, t0 = k - v, k + v

t = t < 0 and t0 or t; t = t ^ 0.5


return f * t / 2 + (e or zero) + ld / t, t
end

local missChance
local headChance
function network:send(name, ...)
if name == "newbullets" and silentaim.enabled and missChance <=
silentaim.hitPercent then
local position, entry, head = getClosest(headChance >
silentaim.headShotPercent and "Torso" or "Head", silentaim.fovEnabled and
silentaim.fovSize)

if position then
local a, data, time, b = ...
local velocity = trajectory(data.firepos,
publicSettings.bulletAcceleration, position, data.bullets[1][1].Magnitude,
entry._velspring.t)

for i = 1, #data.bullets do
data.bullets[i][1] = velocity
end

return send(self, name, a, data, time, b)


end
end

return send(self, name, ...)


end

function bulletObject.new(data)
if silentaim.enabled and data.onplayerhit and missChance <=
silentaim.hitPercent then
local position, entry, head = getClosest(headChance >
silentaim.headShotPercent and "Torso" or "Head", silentaim.fovEnabled and
silentaim.fovSize)

if position then
data.velocity = trajectory(data.position,
publicSettings.bulletAcceleration, position, data.velocity.Magnitude,
entry._velspring.t)
end
end

return new(data)
end

task.spawn(function()
while task.wait(0.1) do
missChance = math.random(1, 100)
headChance = math.random(1, 100)
end
end)

function draw(shape)
local drawing = Drawing.new(shape)

for i, v in pairs(defaultProperties) do
pcall(function()
drawing[i] = v
end)
end

return drawing
end
function getSquarePositions(character)
local top = currentCamera:WorldToViewportPoint(character.Head.Position +
Vector3.yAxis)
local middle = currentCamera:WorldToViewportPoint(character.Torso.Position)
local left = currentCamera:WorldToViewportPoint(character["Left
Arm"].Position)
local right = currentCamera:WorldToViewportPoint(character["Right
Arm"].Position)

local leftSize, rightSize


if left.X < right.X then
leftSize = "Left Arm"
rightSize = "Right Arm"
else
leftSize = "Left Arm"
rightSize = "Right Arm"
end

left = currentCamera:WorldToViewportPoint(character[leftSize].Position -
currentCamera.CFrame.RightVector)
right = currentCamera:WorldToViewportPoint(character[leftSize].Position +
currentCamera.CFrame.RightVector)

local size = Vector2.new(math.abs(left.X - right.X) * 2, (middle.Y - top.Y)


* 2.2)

return Vector2.new(middle.X - size.X * 0.5, top.Y), size


end

runService.Heartbeat:Connect(function()
local alive = ignore:FindFirstChild("RefPlayer")

replication.operateOnAllEntries(function(player, entry)
local data = espData[player]

if not data then


data = {}
data.visible = false
data.entry = entry
data.drawings = {
line100 = draw("Line"),
line101 = draw("Line"),
line110 = draw("Line"),
line111 = draw("Line"),
line120 = draw("Line"),
line121 = draw("Line"),
line130 = draw("Line"),
line131 = draw("Line"),
line000 = draw("Line"),
line001 = draw("Line"),
line010 = draw("Line"),
line011 = draw("Line"),
line020 = draw("Line"),
line021 = draw("Line"),
line030 = draw("Line"),
line031 = draw("Line"),
name = draw("Text"),
skeletonhead = draw("Line"),
skeletonlarm = draw("Line"),
skeletonrarm = draw("Line"),
skeletonlleg = draw("Line"),
skeletonrleg = draw("Line"),
healthbaroutline = draw("Square"),
healthbarimage = draw("Image"),
healthbarsquare = draw("Square"),
}
for drawingName, drawing in next, data.drawings do
if string.find(drawingName, "line1") then
drawing.Thickness = 3
drawing.Color = Color3.fromRGB(0, 0, 0)
end
end
data.drawings.name.Text = player.Name
data.drawings.healthbarsquare.Filled = true
data.drawings.healthbaroutline.Filled = true
data.drawings.healthbaroutline.Color = Color3.fromRGB(0, 0, 0)
data.drawings.healthbarimage.Data = healthbarData
data.drawings.healthbarimage.Visible = true
data.setVisibility = function(visible)
data.drawings.name.Visible = visible and enemyesp.names
data.drawings.line000.Visible = visible and enemyesp.boxCorners
data.drawings.line001.Visible = visible and enemyesp.boxCorners
data.drawings.line010.Visible = visible and enemyesp.boxCorners
data.drawings.line011.Visible = visible and enemyesp.boxCorners
data.drawings.line020.Visible = visible and enemyesp.boxCorners
data.drawings.line021.Visible = visible and enemyesp.boxCorners
data.drawings.line030.Visible = visible and enemyesp.boxCorners
data.drawings.line031.Visible = visible and enemyesp.boxCorners
data.drawings.line100.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line101.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line110.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line111.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line120.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line121.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line130.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.line131.Visible = visible and enemyesp.boxCorners
and enemyesp.boxCornerOutline
data.drawings.skeletonhead.Visible = visible and
enemyesp.skeleton
data.drawings.skeletonlarm.Visible = visible and
enemyesp.skeleton
data.drawings.skeletonrarm.Visible = visible and
enemyesp.skeleton
data.drawings.skeletonlleg.Visible = visible and
enemyesp.skeleton
data.drawings.skeletonrleg.Visible = visible and
enemyesp.skeleton
data.drawings.healthbaroutline.Visible = visible and
enemyesp.healthBars and enemyesp.healthBarOutline
data.drawings.healthbarimage.Transparency = visible and
enemyesp.healthBars and 1 or 0
data.drawings.healthbarimage.Visible = visible and
enemyesp.healthBars
data.drawings.healthbarsquare.Visible = visible and
enemyesp.healthBars
data.visible = visible
end

espData[player] = data
end

if (not entry._alive and data.visible) or not alive then


data.setVisibility(false)
end
end)

if alive and alive:FindFirstChild("HumanoidRootPart") then


for player, data in next, espData do
if data.entry._alive and data.entry._player.Team ~=
players.LocalPlayer.Team then
local character = data.entry._thirdPersonObject and
data.entry._thirdPersonObject._characterHash

if character then
local screenPosition, onScreen =
currentCamera:WorldToViewportPoint(character.Head.Position)

if onScreen and screenPosition.Z > 0 then


if not data.visible then
data.setVisibility(true)
end

local boxPosition, boxSize, middle


if enemyesp.boxCorners or enemyesp.names or
enemyesp.healthBars then
boxPosition, boxSize =
getSquarePositions(character)
middle = boxPosition + boxSize * 0.5
end

local p0, p1, p2, p3, sx, sy, p00, p01, p10, p11, p20,
p21, p30, p31
if enemyesp.boxCorners then
sx, sy = Vector2.new(boxSize.X, 0), Vector2.new(0,
boxSize.Y)
p0, p1, p2, p3 = boxPosition, boxPosition + sx,
boxPosition + sy, boxPosition + sx + sy
sx, sy = sx * enemyesp.boxLineSize, sy *
enemyesp.boxLineSize
p00, p01, p10, p11, p20, p21, p30, p31 = p0 + sx,
p0 + sy, p1 - sx, p1 + sy, p2 + sx, p2 - sy, p3 - sx, p3 - sy

data.drawings.line000.From = p0
data.drawings.line001.From = p0
data.drawings.line000.To = p00
data.drawings.line001.To = p01
data.drawings.line010.From = p1
data.drawings.line011.From = p1
data.drawings.line010.To = p10
data.drawings.line011.To = p11
data.drawings.line020.From = p2
data.drawings.line021.From = p2
data.drawings.line020.To = p20
data.drawings.line021.To = p21
data.drawings.line030.From = p3
data.drawings.line031.From = p3
data.drawings.line030.To = p30
data.drawings.line031.To = p31

for drawingName, drawing in next, data.drawings do


if string.find(drawingName, "line0") then
drawing.Color = enemyesp.boxColor
end
end
end

if data.drawings.line100.Visible then
data.drawings.line100.From = p0
data.drawings.line101.From = p0
data.drawings.line100.To = p00
data.drawings.line101.To = p01
data.drawings.line110.From = p1
data.drawings.line111.From = p1
data.drawings.line110.To = p10
data.drawings.line111.To = p11
data.drawings.line120.From = p2
data.drawings.line121.From = p2
data.drawings.line120.To = p20
data.drawings.line121.To = p21
data.drawings.line130.From = p3
data.drawings.line131.From = p3
data.drawings.line130.To = p30
data.drawings.line131.To = p31
end

if enemyesp.names then
local name = data.drawings.name
name.Position = Vector2.new(middle.X, boxPosition.Y
+ (enemyesp.nameOffset < 0 and boxSize.Y or 0) - enemyesp.nameOffset -
enemyesp.nameSize * 0.5)
name.Size = enemyesp.nameSize
name.Color = enemyesp.nameColor
name.Outline = enemyesp.nameOutline
end

if enemyesp.healthBars then
local healthbarimage = data.drawings.healthbarimage
local healthbarsquare =
data.drawings.healthbarsquare
local health = (data.entry._healthstate.health0 ~=
0 and data.entry._healthstate.health0 or 100) * 0.01
local squareSize = boxSize.Y * (1 - health)
healthbarimage.Position = Vector2.new(boxPosition.X
+ (enemyesp.healthBarOffset > 0 and boxSize.X or 0) + enemyesp.healthBarOffset -
enemyesp.healthBarThickness * 0.5, boxPosition.Y)
healthbarimage.Size =
Vector2.new(enemyesp.healthBarThickness, boxSize.Y)
healthbarsquare.Position = healthbarimage.Position
healthbarsquare.Size =
Vector2.new(enemyesp.healthBarThickness, squareSize)
end

if data.drawings.healthbaroutline.Visible then
local healthbaroutline =
data.drawings.healthbaroutline
healthbaroutline.Position =
data.drawings.healthbarimage.Position - Vector2.new(1, 1)
healthbaroutline.Size =
data.drawings.healthbarimage.Size + Vector2.new(2, 2)
end

if enemyesp.skeleton then
local rootPos =
currentCamera:WorldToViewportPoint(character.Torso.Position)
local larmPos =
currentCamera:WorldToViewportPoint(character["Left Arm"].Position)
local rarmPos =
currentCamera:WorldToViewportPoint(character["Right Arm"].Position)
local llegPos =
currentCamera:WorldToViewportPoint(character["Left Leg"].Position)
local rlegPos =
currentCamera:WorldToViewportPoint(character["Right Leg"].Position)

local drawings = data.drawings


drawings.skeletonhead.To =
Vector2.new(screenPosition.X, screenPosition.Y)
drawings.skeletonlarm.To = Vector2.new(larmPos.X,
larmPos.Y)
drawings.skeletonrarm.To = Vector2.new(rarmPos.X,
rarmPos.Y)
drawings.skeletonlleg.To = Vector2.new(llegPos.X,
llegPos.Y)
drawings.skeletonrleg.To = Vector2.new(rlegPos.X,
rlegPos.Y)

local fromPos = Vector2.new(rootPos.X, rootPos.Y)


for drawingName, drawing in next, drawings do
if string.find(drawingName, "skeleton") then
drawing.Thickness =
enemyesp.skeletonThickness
drawing.Color = enemyesp.skeletonColor
drawing.From = fromPos
end
end
end
elseif data.visible then
data.setVisibility(false)
end
end
end
end
end
end)

players.PlayerRemoving:Connect(function(player)
player = espData[player]

if player then
player.setVisibility(false)

for _, drawing in next, player.drawings do


drawing:Remove()
end

espData[player] = nil
end
end)
]]

local requireModule
for i, v in next, getgc(false) do
if type(v) == "function" and debug.getinfo(v).name == "require" and
islclosure(v) then
requireModule = v
break
end
end

if requireModule then
loadstring(scriptSource)()
else
queue_on_teleport("task.wait(5);" .. scriptSource)
setfflag("DebugRunParallelLuaOnMainThread", "True")
game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,
game.JobId)
end

You might also like