1,550 views
Description
Script for In Plain Sight 2 with very useful features to get you to earn more cash.
Features
- + Player ESP
- + Camera ESP
- + Camera Location
- + Player's Speed
--LUNA
local Luna = loadstring(game:HttpGet("https://raw.githubusercontent.com/Nebula-Softworks/Luna-Interface-Suite/refs/heads/master/source.lua", true))()
local Window = Luna:CreateWindow({
Name = "In plain sight 2",
Subtitle = nil,
LogoID = "82795327169782",
LoadingEnabled = true,
LoadingTitle = "Meta Hub",
LoadingSubtitle = "by Metta",
ConfigSettings = {
RootFolder = nil,
ConfigFolder = "Big Hub"
},
KeySystem = false,
KeySettings = {
Title = "Luna Example Key",
Subtitle = "Key System",
Note = "Best Key System Ever!",
SaveInRoot = false,
SaveKey = true,
Key = {"Example Key"},
SecondAction = {
Enabled = true,
Type = "Link",
Parameter = ""
}
}
})
--TAB
local PlayerTab = Window:CreateTab({
Name = "Player",
Icon = "view_in_ar",
ImageSource = "Material",
ShowTitle = true
})
local EspTab = Window:CreateTab({
Name = "Esp",
Icon = "view_in_ar",
ImageSource = "Material",
ShowTitle = true
})
--PLAYER
local Input = PlayerTab:CreateInput({
Name = "Player's Speed",
Description = "Change player's speed",
PlaceholderText = "20 is recommended",
CurrentValue = "",
Numeric = true,
MaxCharacters = nil,
Enter = false,
Callback = function(Text)
local newSpeed = tonumber(Text)
if newSpeed then
local player = game.Players.LocalPlayer
-- Функция для установки скорости
local function setWalkSpeed(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = newSpeed
end
-- Устанавливаем для текущего персонажа
if player.Character then
setWalkSpeed(player.Character)
end
-- Устанавливаем для будущих персонажей
player.CharacterAdded:Connect(setWalkSpeed)
print("WalkSpeed set to: " .. newSpeed)
else
warn("Please enter a valid number!")
end
end,
Flag = "SpeedInput"
})
--ESP
local Toggle1 = EspTab:CreateToggle({
Name = "Players' Esp",
Description = nil,
CurrentValue = false,
Callback = function(Value)
if Value then
if not _G.PlayerESPData then
_G.PlayerESPData = {
Highlights = {},
Connections = {}
}
end
local function isValidPlayer(player)
return player ~= game.Players.LocalPlayer and player.Character and player.Character:FindFirstChild("Humanoid")
end
local function updateESP()
for player, highlight in pairs(_G.PlayerESPData.Highlights) do
if isValidPlayer(player) then
local humanoid = player.Character.Humanoid
if humanoid.Health > 0 then
highlight.Adornee = player.Character
highlight.Enabled = true
else
highlight.Enabled = false
end
else
highlight.Enabled = false
end
end
end
local function createPlayerESP(player)
if player == game.Players.LocalPlayer then return end
local highlight = Instance.new("Highlight")
highlight.Name = player.Name .. "_PlayerESP"
highlight.FillColor = Color3.fromRGB(0, 255, 0)
highlight.FillTransparency = 0.6
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.OutlineTransparency = 0.2
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = game.CoreGui
_G.PlayerESPData.Highlights[player] = highlight
local charAddedConn = player.CharacterAdded:Connect(function()
task.wait(0.3)
updateESP()
end)
local charRemovingConn = player.CharacterRemoving:Connect(function()
if highlight then
highlight.Enabled = false
end
end)
_G.PlayerESPData.Connections[player] = {
charAdded = charAddedConn,
charRemoving = charRemovingConn
}
end
for _, player in pairs(game.Players:GetPlayers()) do
createPlayerESP(player)
end
local playerAddedConn = game.Players.PlayerAdded:Connect(function(player)
createPlayerESP(player)
end)
local playerRemovingConn = game.Players.PlayerRemoving:Connect(function(player)
if _G.PlayerESPData.Highlights[player] then
_G.PlayerESPData.Highlights[player]:Destroy()
_G.PlayerESPData.Highlights[player] = nil
end
if _G.PlayerESPData.Connections[player] then
_G.PlayerESPData.Connections[player].charAdded:Disconnect()
_G.PlayerESPData.Connections[player].charRemoving:Disconnect()
_G.PlayerESPData.Connections[player] = nil
end
end)
_G.PlayerESPData.MainConnections = {
playerAdded = playerAddedConn,
playerRemoving = playerRemovingConn
}
_G.PlayerESPData.UpdateLoop = game:GetService("RunService").Heartbeat:Connect(function()
updateESP()
end)
else
if _G.PlayerESPData then
if _G.PlayerESPData.UpdateLoop then
_G.PlayerESPData.UpdateLoop:Disconnect()
end
if _G.PlayerESPData.MainConnections then
_G.PlayerESPData.MainConnections.playerAdded:Disconnect()
_G.PlayerESPData.MainConnections.playerRemoving:Disconnect()
end
for player, connections in pairs(_G.PlayerESPData.Connections) do
connections.charAdded:Disconnect()
connections.charRemoving:Disconnect()
end
for player, highlight in pairs(_G.PlayerESPData.Highlights) do
highlight:Destroy()
end
_G.PlayerESPData = nil
end
end
end,
Flag = "PlayerESPToggle"
})
local Toggle2 = EspTab:CreateToggle({
Name = "Cameras' Esp",
Description = nil,
CurrentValue = false,
Callback = function(Value)
if Value then
if not _G.CameraESPData then
_G.CameraESPData = {
Highlights = {},
Connections = {}
}
end
local function isCamera(model)
return model:IsA("Model") and model.Name == "ActiveCamModel" and model.Parent and model.Parent.Name == "RoundDebris" and model.Parent.Parent == game.Workspace
end
local function updateCameraESP()
for camera, highlight in pairs(_G.CameraESPData.Highlights) do
if camera and camera.Parent then
highlight.Adornee = camera
highlight.Enabled = true
else
highlight.Enabled = false
end
end
end
local function createCameraESP(camera)
if not isCamera(camera) then return end
local highlight = Instance.new("Highlight")
highlight.Name = camera.Name .. "_CameraESP"
highlight.FillColor = Color3.fromRGB(0, 0, 255)
highlight.FillTransparency = 0.6
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.OutlineTransparency = 0.2
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = game.CoreGui
_G.CameraESPData.Highlights[camera] = highlight
end
local function scanForCameras()
local roundDebris = game.Workspace:FindFirstChild("RoundDebris")
if roundDebris then
for _, camera in pairs(roundDebris:GetDescendants()) do
if camera:IsA("Model") and camera.Name == "ActiveCamModel" then
createCameraESP(camera)
end
end
end
end
scanForCameras()
local function handleDescendantAdded(descendant)
if descendant:IsA("Model") and descendant.Name == "ActiveCamModel" then
local parent = descendant.Parent
if parent and parent.Name == "RoundDebris" and parent.Parent == game.Workspace then
createCameraESP(descendant)
end
end
end
local function handleDescendantRemoving(descendant)
if _G.CameraESPData.Highlights[descendant] then
_G.CameraESPData.Highlights[descendant]:Destroy()
_G.CameraESPData.Highlights[descendant] = nil
end
end
local descendantAddedConn = game.Workspace.DescendantAdded:Connect(handleDescendantAdded)
local descendantRemovingConn = game.Workspace.DescendantRemoving:Connect(handleDescendantRemoving)
_G.CameraESPData.MainConnections = {
descendantAdded = descendantAddedConn,
descendantRemoving = descendantRemovingConn
}
_G.CameraESPData.UpdateLoop = game:GetService("RunService").Heartbeat:Connect(function()
updateCameraESP()
end)
else
if _G.CameraESPData then
if _G.CameraESPData.UpdateLoop then
_G.CameraESPData.UpdateLoop:Disconnect()
end
if _G.CameraESPData.MainConnections then
_G.CameraESPData.MainConnections.descendantAdded:Disconnect()
_G.CameraESPData.MainConnections.descendantRemoving:Disconnect()
end
for camera, highlight in pairs(_G.CameraESPData.Highlights) do
highlight:Destroy()
end
_G.CameraESPData = nil
end
end
end,
Flag = "CameraESPToggle"
})
local Toggle3 = EspTab:CreateToggle({
Name = "Camera Location",
Description = "Searching if camera is in 30 studs",
CurrentValue = false,
Callback = function(Value)
if Value then
if not _G.CameraAlertData then
_G.CameraAlertData = {
Connections = {},
LastNotification = 0
}
end
local function isCamera(model)
return model:IsA("Model") and model.Name == "ActiveCamModel" and
model.Parent and model.Parent.Name == "RoundDebris" and
model.Parent.Parent == game.Workspace
end
local function checkCameraProximity()
local player = game.Players.LocalPlayer
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local playerPosition = humanoidRootPart.Position
local roundDebris = game.Workspace:FindFirstChild("RoundDebris")
if not roundDebris then return end
for _, camera in pairs(roundDebris:GetDescendants()) do
if isCamera(camera) then
local cameraPart = camera:FindFirstChildWhichIsA("BasePart")
if cameraPart then
local distance = (playerPosition - cameraPart.Position).Magnitude
if distance <= 30 then
if os.time() - _G.CameraAlertData.LastNotification > 3 then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "⚠️ CAMERA ALERT",
Text = "Camera is within 30 studs!",
Duration = 3,
Icon = "rbxassetid://4458901886"
})
_G.CameraAlertData.LastNotification = os.time()
end
return
end
end
end
end
end
local roundDebris = game.Workspace:FindFirstChild("RoundDebris")
if roundDebris then
for _, camera in pairs(roundDebris:GetDescendants()) do
if isCamera(camera) then
checkCameraProximity()
break
end
end
end
local function handleDescendantAdded(descendant)
if isCamera(descendant) then
checkCameraProximity()
end
end
_G.CameraAlertData.descendantAddedConn = game.Workspace.DescendantAdded:Connect(handleDescendantAdded)
_G.CameraAlertData.proximityLoop = game:GetService("RunService").Heartbeat:Connect(function()
checkCameraProximity()
end)
else
if _G.CameraAlertData then
if _G.CameraAlertData.proximityLoop then
_G.CameraAlertData.proximityLoop:Disconnect()
end
if _G.CameraAlertData.descendantAddedConn then
_G.CameraAlertData.descendantAddedConn:Disconnect()
end
_G.CameraAlertData = nil
end
end
end,
Flag = "CameraAlertToggle"
})
Luna:LoadAutoloadConfig()
Script worked? 🚀 Boost it to #1 so others find it too.
Similar Scripts
334
5 hours ago
Free
+1 Assassin Leveling
+1 Assassin Leveling script by Tora isme | Auto stage, Anti damage
263
5 hours ago
Free
Huss Valley
Aetherium Hub Huss Valley Crossing script OP (No Keys)
222
5 hours ago
Free
Cold War
QCOLD MENU | Silent aim, No recoil, insta reload
170
5 hours ago
Free
Baddies
Best Baddies Extenders , Anti Inventory Break And Silent Aim
164
5 hours ago
Key System
Build a Phone Empire
Build a Phone Empire script by Softkillz
121
5 hours ago
Key System
WRONG WAY
Wrong Way script by Softkillz | Auto drive bot
🚀
Log in to boost
Boosting rockets this script to #1 on the homepage. A free account takes 30 seconds.
Log in
🚀
Out of boosts!
Grab boosts and rocket your favorite scripts to the top — plus join the booster wall with the RGB ring.
⚡ Go Pro — 10 boosts/month + zero ads
🚀
Boost this script?
It jumps to #1 in Recent Scripts and your avatar joins the booster wall.
🚀
Boosted! You're awesome 💜
Comments (0)
Log in to add a comment.