Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
LocalPlayer = Players.LocalPlayer
CONFIG = {
LineDistance = ,
LineThickness = ,
LineThicknessAlert = ,
NormalColor = .(, , ),
AlertColor = .(, , ),
DetectionRadius = ,
EnableVFX = ,
FlashSpeed = ,
VignetteIntensity = ,
HeadCircleRadius = ,
HeadBoxSize = ,
}
playerLines = {}
playerHeadCircles = {}
playerHeadBoxes = {}
playerNameTags = {}
warningUI =
connections = {}
isRunning =
()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.IgnoreGuiInset =
screenGui.DisplayOrder =
vignette = .()
vignette.Name =
vignette.Size = .(, , , )
vignette.BackgroundTransparency =
vignette.BorderSizePixel =
vignette.Parent = screenGui
warningText = .()
warningText.Name =
warningText.Size = .(, , , )
warningText.Position = .(, -, , )
warningText.BackgroundTransparency =
warningText.Text =
warningText.TextColor3 = .(, , )
warningText.TextStrokeColor3 = .(, , )
warningText.TextStrokeTransparency =
warningText.Font = .Font.GothamBold
warningText.TextSize =
warningText.TextTransparency =
warningText.Parent = screenGui
directionIndicator = .()
directionIndicator.Name =
directionIndicator.Size = .(, , , )
directionIndicator.Position = .(, -, , )
directionIndicator.BackgroundTransparency =
directionIndicator.Text =
directionIndicator.TextColor3 = .(, , )
directionIndicator.TextStrokeColor3 = .(, , )
directionIndicator.TextStrokeTransparency =
directionIndicator.Font = .Font.Gotham
directionIndicator.TextSize =
directionIndicator.TextTransparency =
directionIndicator.Parent = screenGui
(()
screenGui.Parent = :()
)
screenGui.Parent
screenGui.Parent = LocalPlayer:()
{
Gui = screenGui,
Vignette = vignette,
Text = warningText,
Direction = directionIndicator
}
()
line = .()
line.Thickness = CONFIG.LineThickness
line.Color = CONFIG.NormalColor
line.Transparency =
line.Visible =
line
()
circle = .()
circle.Radius = CONFIG.HeadCircleRadius
circle.Color = CONFIG.NormalColor
circle.Thickness =
circle.Filled =
circle.Transparency =
circle.Visible =
circle
()
lines = {}
i = ,
line = .()
line.Thickness =
line.Color = CONFIG.NormalColor
line.Transparency =
line.Visible =
.(lines, line)
lines
()
text = .()
text.Size =
text.Color = .(, , )
text.Center =
text.Outline =
text.OutlineColor = .(, , )
text.Visible =
text
(player)
character = player.Character
myCharacter = LocalPlayer.Character
character myCharacter
, ,
head = character:()
humanoid = character:()
myHRP = myCharacter:()
head myHRP humanoid humanoid.Health <=
, ,
lookVector = head.CFrame.LookVector
eyePosition = head.Position + .(, , )
endPosition = eyePosition + (lookVector * CONFIG.LineDistance)
rayParams = RaycastParams.()
rayParams.FilterType = .RaycastFilterType.Exclude
rayParams.FilterDescendantsInstances = {character}
rayResult = :(eyePosition, lookVector * CONFIG.LineDistance, rayParams)
hitMe =
actualEndPos = endPosition
rayResult
actualEndPos = rayResult.Position
hitModel = rayResult.Instance:()
hitModel == myCharacter
hitMe =
toMe = (myHRP.Position - eyePosition).Unit
dot = lookVector:(toMe)
distance = (myHRP.Position - eyePosition).Magnitude
dot > distance < CONFIG.LineDistance
projection = eyePosition + lookVector * distance * dot
perpDistance = (myHRP.Position - projection).Magnitude
perpDistance < CONFIG.DetectionRadius
hitMe =
actualEndPos = myHRP.Position
hitMe, eyePosition, actualEndPos
(boxLines, headPos, size, color, visible)
visible
_, line (boxLines)
line.Visible =
halfSize = size /
corners = {
.(headPos.X - halfSize, headPos.Y - halfSize),
.(headPos.X + halfSize, headPos.Y - halfSize),
.(headPos.X + halfSize, headPos.Y + halfSize),
.(headPos.X - halfSize, headPos.Y + halfSize)
}
i, line (boxLines)
nextIndex = i % +
line.From = corners[i]
line.To = corners[nextIndex]
line.Color = color
line.Visible =
()
isRunning
camera = .CurrentCamera
watchingPlayers = {}
_, player (Players:())
player ~= LocalPlayer
playerLines[player]
playerLines[player] = ()
playerHeadCircles[player] = ()
playerHeadBoxes[player] = ()
playerNameTags[player] = ()
line = playerLines[player]
headCircle = playerHeadCircles[player]
headBox = playerHeadBoxes[player]
nameTag = playerNameTags[player]
character = player.Character
head = character character:()
humanoid = character character:()
head humanoid humanoid.Health >
isLooking, startPos, endPos = (player)
headScreen, headOnScreen = camera:(head.Position)
headOnScreen headScreen.Z >
headPos2D = .(headScreen.X, headScreen.Y)
distanceFactor = .( / headScreen.Z, , )
dynamicRadius = CONFIG.HeadCircleRadius * distanceFactor
dynamicBoxSize = CONFIG.HeadBoxSize * distanceFactor
currentColor = CONFIG.NormalColor
pulse =
isLooking
pulse = .(.(() * CONFIG.FlashSpeed))
currentColor = CONFIG.AlertColor
.(watchingPlayers, player)
headCircle.Position = headPos2D
headCircle.Radius = dynamicRadius + (isLooking pulse * )
headCircle.Color = currentColor
headCircle.Thickness = isLooking
headCircle.Visible =
(headBox, headPos2D, dynamicBoxSize + (isLooking pulse * ), currentColor, )
nameTag.Text = player.Name
nameTag.Position = .(headPos2D.X, headPos2D.Y - dynamicRadius - )
nameTag.Color = isLooking CONFIG.AlertColor .(, , )
nameTag.Size = .( * distanceFactor, , )
nameTag.Visible =
startPos endPos
startScreen = camera:(startPos)
endScreen = camera:(endPos)
startScreen.Z >
line.From = .(startScreen.X, startScreen.Y)
line.To = .(endScreen.X, endScreen.Y)
isLooking
line.Color = CONFIG.AlertColor
line.Thickness = CONFIG.LineThicknessAlert + (pulse * )
line.Transparency = + (pulse * )
line.Color = CONFIG.NormalColor
line.Thickness = CONFIG.LineThickness
line.Transparency =
line.Visible =
line.Visible =
line.Visible =
line.Visible =
headCircle.Visible =
(headBox, .(, ), , CONFIG.NormalColor, )
nameTag.Visible =
line.Visible =
headCircle.Visible =
(headBox, .(, ), , CONFIG.NormalColor, )
nameTag.Visible =
warningUI CONFIG.EnableVFX
isBeingWatched = #watchingPlayers >
isBeingWatched
pulse = .(.(() * CONFIG.FlashSpeed))
warningUI.Vignette.BackgroundColor3 = CONFIG.AlertColor
warningUI.Vignette.BackgroundTransparency = - (CONFIG.VignetteIntensity * ( + pulse * ))
warningUI.Text.TextTransparency = + (pulse * )
warningUI.Text.TextSize = + (pulse * )
names = {}
_, p (watchingPlayers)
.(names, p.Name)
warningUI.Direction.Text = .(names, )
warningUI.Direction.TextTransparency =
warningUI.Vignette.BackgroundTransparency =
warningUI.Text.TextTransparency =
warningUI.Direction.TextTransparency =
(player)
playerLines[player]
playerLines[player]:()
playerLines[player] =
playerHeadCircles[player]
playerHeadCircles[player]:()
playerHeadCircles[player] =
playerHeadBoxes[player]
_, line (playerHeadBoxes[player])
line:()
playerHeadBoxes[player] =
playerNameTags[player]
playerNameTags[player]:()
playerNameTags[player] =
()
isRunning =
_, conn (connections)
(() conn:() )
player, _ (playerLines)
(player)
warningUI warningUI.Gui
warningUI.Gui:()
warningUI = ()
.(connections, Players.PlayerRemoving:(cleanupPlayer))
.(connections, RunService.RenderStepped:(updateSystem))
(()
isRunning
()
.StopLookChams
()
.StopLookChams =
)
[UPD] Blind Shot