local Rayfield = loadstring(game:HttpGet("https://sirius.menu/gen2"))() local window = Rayfield:CreateWindow({ Name = "HSK Hub", LoadingTitle = "HSK Hub", LoadingSubtitle = "Rayfield UI", ConfigurationSaving = { Enabled = false }, Discord = { Enabled = false }, KeySystem = false }) -- 탭 생성 ("기본" 및 "로컬") local mainTab = window:CreateTab({ Name = "기본", Icon = 93364949241311 }) local localTab = window:CreateTab({ Name = "로컬", Icon = 4370318686 -- 로컬 전용 아이콘 }) -- 서비스 로드 local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local StarterGui = game:GetService("StarterGui") local Lighting = game:GetService("Lighting") local Camera = Workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer ---------------------------------------------------- -- 상태 변수 및 유틸 함수 ---------------------------------------------------- local autoCoinEnabled = false local fastShootEnabled = false local hitboxEnabled = false local hitboxSize = 15 local predictEnabled = false local espEnabled = false local dangerEnabled = false local alertEnabled = false local gunEspEnabled = false local noclipEnabled = false local infJumpEnabled = false local speedEnabled = false local targetSpeed = 32 local fullbrightEnabled = false local fovEnabled = false local targetFov = 70 local freecamEnabled = false local notifiedPlayers = {} local currentMurdererChar = nil local noclipConn = nil local infJumpConn = nil local gunHighlight = nil -- ESP 폴더 및 위기 경고 레이블 (CoreGui) local CoreGui = game:GetService("CoreGui") local espFolder = Instance.new("Folder") espFolder.Name = "ESP_Folder" espFolder.Parent = CoreGui local WarningLabel = Instance.new("TextLabel") WarningLabel.Size = UDim2.new(0, 220, 0, 45) WarningLabel.Position = UDim2.new(0.5, -110, 0.1, 0) WarningLabel.BackgroundColor3 = Color3.fromRGB(200, 0, 0) WarningLabel.Text = "⚠️ 살인자 접근 중! ⚠️" WarningLabel.TextColor3 = Color3.fromRGB(255, 255, 255) WarningLabel.TextSize = 16 WarningLabel.Font = Enum.Font.SourceSansBold WarningLabel.Visible = false WarningLabel.Parent = CoreGui local WarnCorner = Instance.new("UICorner") WarnCorner.CornerRadius = UDim.new(0, 8) WarnCorner.Parent = WarningLabel -- 탄궤적 예측 파트 local predictPart = Instance.new("Part") predictPart.Size = Vector3.new(1.5, 1.5, 1.5) predictPart.Shape = Enum.PartType.Ball predictPart.BrickColor = BrickColor.new("New Yeller") predictPart.Material = Enum.Material.Neon predictPart.CanCollide, predictPart.Anchored, predictPart.Transparency = false, true, 0.3 -- 역할 스캔 함수 local function checkRole(player) local isM, isS = false, false local function scanContainer(c) if not c then return end for _, item in ipairs(c:GetChildren()) do if item:IsA("Tool") then local n = string.lower(item.Name) if n:find("knife") or n:find("칼") or n:find("blade") then isM = true end if n:find("gun") or n:find("총") or n:find("revolver") or n:find("pistol") then isS = true end end end end if player:FindFirstChild("Backpack") then scanContainer(player.Backpack) end if player.Character then scanContainer(player.Character) end return isM, isS end -- 떨어진 총 찾기 함수 local function getDroppedGun() for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Tool") then local lN = string.lower(obj.Name) if (lN:find("gun") or lN:find("총") or lN:find("revolver") or lN:find("pistol")) and obj.Parent == Workspace then return obj end end end return nil end ---------------------------------------------------- -- [기본 탭] UI 요소 정의 ---------------------------------------------------- mainTab:CreateSection("파밍 & 전투") -- 광속 동전 자석 mainTab:CreateToggle({ Name = "🧲 광속 동전 자석 흡수", CurrentValue = false, Flag = "AutoCoinToggle", Callback = function(Value) autoCoinEnabled = Value end, }) -- 노 리로드 / 빠른 사격 mainTab:CreateToggle({ Name = "⚡ 노 리로드 / 빠른 사격", CurrentValue = false, Flag = "FastShootToggle", Callback = function(Value) fastShootEnabled = Value end, }) -- 히트박스 확장 입력 및 토글 mainTab:CreateInput({ Name = "히트박스 크기", PlaceholderText = "기본 값: 15", RemoveTextOnFocusLost = false, Callback = function(Text) hitboxSize = tonumber(Text) or 15 end, }) mainTab:CreateToggle({ Name = "📦 히트박스 확장", CurrentValue = false, Flag = "HitboxToggle", Callback = function(Value) hitboxEnabled = Value if not Value then for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local root = player.Character.HumanoidRootPart root.Size, root.Transparency, root.CanCollide = Vector3.new(2, 2, 1), 1, true end end end end, }) -- 탄궤적 예측 mainTab:CreateToggle({ Name = "🎯 탄궤적 예측 가이드", CurrentValue = false, Flag = "PredictToggle", Callback = function(Value) predictEnabled = Value if not Value then predictPart.Parent = nil end end, }) mainTab:CreateSection("ESP & 탐지") -- 역할 ESP mainTab:CreateToggle({ Name = "👁️ 역할 ESP (살인자/보안관)", CurrentValue = false, Flag = "EspToggle", Callback = function(Value) espEnabled = Value if not Value then espFolder:ClearAllChildren() end end, }) -- 실시간 무기 감지 mainTab:CreateToggle({ Name = "🚨 실시간 무기 감지 알림", CurrentValue = false, Flag = "AlertToggle", Callback = function(Value) alertEnabled = Value if not Value then notifiedPlayers = {} end end, }) -- 살인자 접근 경고 mainTab:CreateToggle({ Name = "⚠️ 살인자 접근 경고", CurrentValue = false, Flag = "DangerToggle", Callback = function(Value) dangerEnabled = Value end, }) -- 떨어진 총 ESP mainTab:CreateToggle({ Name = "🔫 떨어진 총 ESP", CurrentValue = false, Flag = "GunEspToggle", Callback = function(Value) gunEspEnabled = Value end, }) -- 떨어진 총으로 TP mainTab:CreateButton({ Name = "🚀 떨어진 총으로 TP", Callback = function() local gun = getDroppedGun() if gun and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local handle = gun:FindFirstChild("Handle") or gun if handle:IsA("BasePart") then LocalPlayer.Character.HumanoidRootPart.CFrame = handle.CFrame + Vector3.new(0, 2, 0) end end end, }) mainTab:CreateSection("이동 유틸리티") -- 무한 점프 mainTab:CreateToggle({ Name = "🦘 무한 점프", CurrentValue = false, Flag = "InfJumpToggle", Callback = function(Value) infJumpEnabled = Value if Value then infJumpConn = UserInputService.JumpRequest:Connect(function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping) end end) else if infJumpConn then infJumpConn:Disconnect() end end end, }) -- 위로 TP (+50칸) mainTab:CreateButton({ Name = "⬆️ 위로 TP (+50칸)", Callback = function() if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame + Vector3.new(0, 50, 0) end end, }) mainTab:CreateSection("시야 & 카메라") -- 풀브라이트 mainTab:CreateToggle({ Name = "💡 풀브라이트 (맵 밝게)", CurrentValue = false, Flag = "FullbrightToggle", Callback = function(Value) fullbrightEnabled = Value if Value then Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.GlobalShadows = false Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255) else Lighting.Brightness = 1 Lighting.ClockTime = 12 Lighting.GlobalShadows = true end end, }) -- FOV 변경 mainTab:CreateInput({ Name = "시야각(FOV) 입력", PlaceholderText = "기본 값: 70", RemoveTextOnFocusLost = false, Callback = function(Text) targetFov = tonumber(Text) or 70 end, }) mainTab:CreateToggle({ Name = "🔍 시야각(FOV) 고정/변경", CurrentValue = false, Flag = "FovToggle", Callback = function(Value) fovEnabled = Value if not Value then Camera.FieldOfView = 70 end end, }) -- 프리캠 mainTab:CreateToggle({ Name = "📷 카메라 프리캠 (정찰)", CurrentValue = false, Flag = "FreecamToggle", Callback = function(Value) freecamEnabled = Value if Value then Camera.CameraType = Enum.CameraType.Scriptable else Camera.CameraType = Enum.CameraType.Custom if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then Camera.CameraSubject = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") end end end, }) ---------------------------------------------------- -- [로컬 탭] UI 요소 정의 (이동 속도 & 노클립) ---------------------------------------------------- localTab:CreateSection("플레이어 이동 제어") -- 이동 속도 변경 localTab:CreateInput({ Name = "이동 속도 입력", PlaceholderText = "기본 값: 32", RemoveTextOnFocusLost = false, Callback = function(Text) targetSpeed = tonumber(Text) or 32 end, }) localTab:CreateToggle({ Name = "⚡ 이동 속도 변경", CurrentValue = false, Flag = "SpeedToggle", Callback = function(Value) speedEnabled = Value if not Value and LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then LocalPlayer.Character:FindFirstChildOfClass("Humanoid").WalkSpeed = 16 end end, }) -- 노클립 localTab:CreateToggle({ Name = "👻 노클립 (벽 통과)", CurrentValue = false, Flag = "NoclipToggle", Callback = function(Value) noclipEnabled = Value if Value then noclipConn = RunService.Stepped:Connect(function() if LocalPlayer.Character then for _, p in ipairs(LocalPlayer.Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end) else if noclipConn then noclipConn:Disconnect() end end end, }) ---------------------------------------------------- -- 메인 서비스 백그라운드 루프들 ---------------------------------------------------- -- Heartbeat 루프 (동전 자석, 알림, 속도, 무기 패스트 샷, 총 ESP) RunService.Heartbeat:Connect(function() -- 동전 자석 if autoCoinEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local root = LocalPlayer.Character.HumanoidRootPart for _, obj in ipairs(Workspace:GetDescendants()) do local name = string.lower(obj.Name) if name:find("coin") or name:find("동전") or name:find("money") then local targetPart = obj:IsA("BasePart") and obj or (obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildOfClass("BasePart"))) if targetPart then targetPart.CFrame = root.CFrame end end end end -- 무기 알림 if alertEnabled then for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local isM, isS = checkRole(player) if isM and not notifiedPlayers[player.Name .. "_M"] then notifiedPlayers[player.Name .. "_M"] = true pcall(function() StarterGui:SetCore("SendNotification", {Title = "⚠️ [살인자 경고]", Text = player.Name .. " 님이 칼을 들었습니다!", Duration = 5}) end) elseif isS and not notifiedPlayers[player.Name .. "_S"] then notifiedPlayers[player.Name .. "_S"] = true pcall(function() StarterGui:SetCore("SendNotification", {Title = "🛡️ [보안관 알림]", Text = player.Name .. " 님이 총을 들었습니다!", Duration = 5}) end) end end end end -- 역할 ESP & 위기 경고 local murdererPlayer = nil for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local char = player.Character local hl = espFolder:FindFirstChild(player.Name) if espEnabled and not hl then hl = Instance.new("Highlight") hl.Name = player.Name hl.Adornee = char hl.FillTransparency = 0.5 hl.Parent = espFolder end local isM, isS = checkRole(player) if isM then murdererPlayer = player end if espEnabled and hl then hl.FillColor = isM and Color3.fromRGB(255, 0, 0) or (isS and Color3.fromRGB(0, 120, 255) or Color3.fromRGB(0, 255, 100)) end end end currentMurdererChar = (murdererPlayer and murdererPlayer.Character and murdererPlayer.Character:FindFirstChildOfClass("Humanoid") and murdererPlayer.Character:FindFirstChildOfClass("Humanoid").Health > 0) and murdererPlayer.Character or nil if dangerEnabled and murdererPlayer and murdererPlayer.Character and LocalPlayer.Character then local myR, murR = LocalPlayer.Character:FindFirstChild("HumanoidRootPart"), murdererPlayer.Character:FindFirstChild("HumanoidRootPart") if myR and murR then WarningLabel.Visible = ((myR.Position - murR.Position).Magnitude <= 35) end else WarningLabel.Visible = false end -- 노 리로드 if fastShootEnabled and LocalPlayer.Character then local function applyFast(tool) if tool:IsA("Tool") then local lN = string.lower(tool.Name) if lN:find("gun") or lN:find("총") or lN:find("revolver") or lN:find("pistol") then if tool:FindFirstChild("Cooldown") then tool.Cooldown.Value = 0 end if tool:FindFirstChild("ReloadTime") then tool.ReloadTime.Value = 0 end if tool:FindFirstChild("Debounce") then tool.Debounce.Value = false end end end end for _, item in ipairs(LocalPlayer.Character:GetChildren()) do applyFast(item) end if LocalPlayer:FindFirstChild("Backpack") then for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do applyFast(item) end end end -- 스피드 (로컬 탭 기능) if speedEnabled and LocalPlayer.Character then local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = targetSpeed end end -- 떨어진 총 ESP if gunEspEnabled then local gun = getDroppedGun() if gun then if not gunHighlight then gunHighlight = Instance.new("Highlight") gunHighlight.Name = "GunHighlight" gunHighlight.FillColor = Color3.fromRGB(255, 255, 0) gunHighlight.OutlineColor = Color3.fromRGB(255, 255, 255) gunHighlight.Parent = CoreGui end gunHighlight.Adornee = gun else if gunHighlight then gunHighlight:Destroy() gunHighlight = nil end end else if gunHighlight then gunHighlight:Destroy() gunHighlight = nil end end end) -- RenderStepped 루프 (히트박스, 예측선, FOV, 프리캠) RunService.RenderStepped:Connect(function() -- 히트박스 확장 if hitboxEnabled then for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local root = player.Character.HumanoidRootPart root.Size, root.Transparency, root.BrickColor = Vector3.new(hitboxSize, hitboxSize, hitboxSize), 0.7, BrickColor.new("Really red") root.Material, root.CanCollide = Enum.Material.ForceField, false end end end -- 탄궤적 예측 가이드 if predictEnabled and currentMurdererChar and currentMurdererChar:FindFirstChild("HumanoidRootPart") then local murRoot = currentMurdererChar.HumanoidRootPart predictPart.Position = murRoot.Position + (murRoot.Velocity * 0.15) predictPart.Parent = Workspace else predictPart.Parent = nil end -- FOV 고정 if fovEnabled then Camera.FieldOfView = targetFov end end)