OR4NG3-FRU1T

q

May 14th, 2026
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.62 KB | None | 0 0
  1. -- Services declaration
  2. local playersService = game:GetService("Players")
  3. local lightingService = game:GetService("Lighting")
  4. local userInputService = game:GetService("UserInputService")
  5. local runService = game:GetService("RunService")
  6. local replicatedStorage = game:GetService("ReplicatedStorage")
  7. local materialService = game:GetService("MaterialService")
  8. local workspaceService = game:GetService("Workspace")
  9. local statsService = game:GetService("Stats")
  10. local debrisService = game:GetService("Debris")
  11. local textChatService = game:GetService("TextChatService")
  12.  
  13. -- Client references
  14. local clientPlayer = playersService.LocalPlayer
  15. local PlayerGui = clientPlayer:WaitForChild("PlayerGui", 10)
  16.  
  17. -- Load WindUI library
  18. local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
  19.  
  20. -- Create main window
  21. local Window = WindUI:CreateWindow({
  22. Title = "BlockSaken",
  23. Icon = "shield",
  24. Author = "By Guest2512",
  25. Folder = "BlockSakenScript",
  26. Size = UDim2.fromOffset(350, 300),
  27. Transparent = false,
  28. Theme = "Dark",
  29. Resizable = false,
  30. SideBarWidth = 150,
  31. HideSearchBar = true,
  32. ScrollBarEnabled = false,
  33. })
  34.  
  35. -- Window toggle key
  36. Window:SetToggleKey(Enum.KeyCode.K)
  37.  
  38. -- Window text font
  39. WindUI:SetFont("rbxasset://fonts/families/AccanthisADFStd.json")
  40.  
  41. -- Mobile open button configuration
  42. Window:EditOpenButton({
  43. Title = "BlockSaken",
  44. Icon = "shield",
  45. CornerRadius = UDim.new(0,16),
  46. StrokeThickness = 0,
  47. Color = ColorSequence.new(
  48. Color3.fromHex("000000"),
  49. Color3.fromHex("000000")
  50. ),
  51. OnlyMobile = true,
  52. Enabled = true,
  53. Draggable = true,
  54. })
  55.  
  56. ----------------------------------------------------------------
  57. -- Sentinel Tab
  58. ----------------------------------------------------------------
  59. local SentinelTab = Window:Tab({
  60. Title = "Auto-Block",
  61. Icon = "shield",
  62. })
  63.  
  64. ----------------------------------------------------------------
  65. -- Guest1337 Section
  66. ----------------------------------------------------------------
  67. local GuestSection = SentinelTab:Section({
  68. Title = "Guest1337",
  69. Opened = true,
  70. })
  71.  
  72. -- Guest variables
  73. local guestAutoBlockAudioOn = false
  74. local guestAutoPunchOn = false
  75. local guestVerifyFacingCheckOn = false
  76. local guestShowVisionRange = false
  77. local guestDetectionRange = 15
  78. local guestDetectionRangeSq = guestDetectionRange * guestDetectionRange
  79. local guestVisionRange = 15
  80. local guestVisionAngle = 90
  81. local guestAimPunchActive = false
  82. local guestPunchPrediction = 4
  83. local guestAimPunchDuration = 0.8
  84. local guestCenterPart, guestLeftPart, guestRightPart, guestLeftToKillerPart, guestRightToKillerPart, guestLeftToCenterPart, guestCenterToRightPart = nil, nil, nil, nil, nil, nil, nil
  85.  
  86. -- Sound IDs that trigger auto-block
  87. local guestAutoBlockTriggerSounds = {
  88. ["102228729296384"] = true, ["140242176732868"] = true, ["112809109188560"] = true, ["136323728355613"] = true,
  89. ["115026634746636"] = true, ["84116622032112"] = true, ["108907358619313"] = true, ["127793641088496"] = true,
  90. ["86174610237192"] = true, ["95079963655241"] = true, ["101199185291628"] = true, ["119942598489800"] = true,
  91. ["84307400688050"] = true, ["113037804008732"] = true, ["105200830849301"] = true, ["75330693422988"] = true,
  92. ["82221759983649"] = true, ["109348678063422"] = true, ["81702359653578"] = true, ["85853080745515"] = true,
  93. ["108610718831698"] = true, ["112395455254818"] = true, ["109431876587852"] = true, ["12222216"] = true,
  94. ["79980897195554"] = true, ["119583605486352"] = true, ["71834552297085"] = true, ["116581754553533"] = true,
  95. ["86833981571073"] = true, ["110372418055226"] = true, ["105840448036441"] = true, ["86494585504534"] = true,
  96. ["80516583309685"] = true, ["131406927389838"] = true, ["89004992452376"] = true, ["117231507259853"] = true,
  97. ["101698569375359"] = true, ["101553872555606"] = true, ["140412278320643"] = true, ["106300477136129"] = true,
  98. ["117173212095661"] = true, ["104910828105172"] = true, ["140194172008986"] = true, ["85544168523099"] = true,
  99. ["114506382930939"] = true, ["99829427721752"] = true, ["120059928759346"] = true, ["104625283622511"] = true,
  100. ["105316545074913"] = true, ["126131675979001"] = true, ["82336352305186"] = true, ["93366464803829"] = true,
  101. ["84069821282466"] = true,
  102. ["128856426573270"] = true,
  103. ["121954639447247"] = true,
  104. ["128195973631079"] = true,
  105. ["124903763333174"] = true,
  106. ["119089145505438"] = true,
  107. ["98111231282218"] = true,
  108. ["119089145505438"] = true,
  109. }
  110.  
  111. -- Punch animations to track for aim punch
  112. local guestTrackedPunchAnimations = {
  113. ["87259391926321"] = true, ["140703210927645"] = true, ["136007065400978"] = true, ["129843313690921"] = true,
  114. ["86709774283672"] = true, ["108807732150251"] = true, ["138040001965654"] = true, ["86096387000557"] = true,
  115. ["81905101227053"] = true, ["108807732150251"] = true,
  116. }
  117.  
  118. -- Target killer usernames for aim punch
  119. local guestAimTargets = {"Slasher", "c00lkidd", "JohnDoe", "1x1x1x1", "Noli", "Sixer", "Nosferatu"}
  120.  
  121. local guestHumanoid, guestHRP = nil, nil
  122. local guestPunchAiming = false
  123. local guestPunchLastTriggerTime = 0
  124. local guestOriginalWS, guestOriginalJP, guestOriginalAutoRotate = nil, nil, nil
  125. local guestAimConnection = nil
  126. local guestSoundHooks = {}
  127. local guestSoundBlockedUntil = {}
  128. local guestLastLocalBlockTime = 0
  129. local guestLocalBlockCooldown = 0.7
  130. local guestAutoPunchDelay = 0.5
  131. local guestSoundBlockDuration = 0.4
  132. local guestRemoteEvent = game:GetService("ReplicatedStorage"):WaitForChild("Modules"):WaitForChild("Network"):WaitForChild("RemoteEvent")
  133.  
  134. -- Get valid killer target (by username)
  135. local function guestGetValidTarget()
  136. local killersFolder = workspaceService:FindFirstChild("Players") and workspaceService.Players:FindFirstChild("Killers")
  137. if killersFolder then
  138. for _, name in ipairs(guestAimTargets) do
  139. local target = killersFolder:FindFirstChild(name)
  140. if target and target:FindFirstChild("HumanoidRootPart") then
  141. return target.HumanoidRootPart, target:FindFirstChild("Humanoid")
  142. end
  143. end
  144. end
  145. return nil, nil
  146. end
  147.  
  148. -- Fire block ability
  149. local function guestFireRemoteBlock()
  150. guestRemoteEvent:FireServer("UseActorAbility", { buffer.fromstring("\"Block\"") })
  151. end
  152.  
  153. -- Fire punch ability
  154. local function guestFireRemotePunch()
  155. guestRemoteEvent:FireServer("UseActorAbility", { buffer.fromstring("\"Punch\"") })
  156. end
  157.  
  158. -- Attempt to block (and optionally punch)
  159. local function guestAttemptBlock(char, hrp)
  160. if not guestAutoBlockAudioOn then return end
  161. local t = tick()
  162. if t < guestLastLocalBlockTime + guestLocalBlockCooldown then return end
  163.  
  164. local myChar = playersService.LocalPlayer.Character
  165. local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
  166. if not myRoot or not hrp then return end
  167.  
  168. guestFireRemoteBlock()
  169. guestLastLocalBlockTime = t
  170.  
  171. if guestAutoPunchOn then
  172. task.delay(guestAutoPunchDelay, guestFireRemotePunch)
  173. end
  174. end
  175.  
  176. -- Create a visual sphere part for vision cone
  177. local function guestCreateVisionPart()
  178. local part = Instance.new("Part")
  179. part.Size = Vector3.new(1, 1, 1)
  180. part.Shape = Enum.PartType.Ball
  181. part.Anchored = true
  182. part.CanCollide = false
  183. part.Transparency = 0.5
  184. part.Color = Color3.fromRGB(255, 0, 0)
  185. part.Parent = workspaceService
  186. return part
  187. end
  188.  
  189. -- Create a line part for vision cone connections
  190. local function guestCreateConnectionPart()
  191. local part = Instance.new("Part")
  192. part.Size = Vector3.new(0.2, 0.2, 1)
  193. part.Anchored = true
  194. part.CanCollide = false
  195. part.Transparency = 0.5
  196. part.Color = Color3.fromRGB(255, 0, 0)
  197. part.Parent = workspaceService
  198. return part
  199. end
  200.  
  201. -- Update size and orientation of a connection line
  202. local function guestUpdateConnectionPart(part, startPos, endPos)
  203. if not part or not startPos or not endPos then return end
  204. local distance = (endPos - startPos).Magnitude
  205. part.Size = Vector3.new(0.2, 0.2, distance)
  206. part.CFrame = CFrame.new((startPos + endPos) / 2, endPos)
  207. end
  208.  
  209. -- Update visual representation of killer vision cone
  210. local function guestUpdateVisionCone()
  211. if not guestShowVisionRange then
  212. if guestCenterPart then guestCenterPart.Position = Vector3.new(0, -1000, 0) end
  213. if guestLeftPart then guestLeftPart.Position = Vector3.new(0, -1000, 0) end
  214. if guestRightPart then guestRightPart.Position = Vector3.new(0, -1000, 0) end
  215. if guestLeftToKillerPart then guestLeftToKillerPart.Position = Vector3.new(0, -1000, 0) end
  216. if guestRightToKillerPart then guestRightToKillerPart.Position = Vector3.new(0, -1000, 0) end
  217. if guestLeftToCenterPart then guestLeftToCenterPart.Position = Vector3.new(0, -1000, 0) end
  218. if guestCenterToRightPart then guestCenterToRightPart.Position = Vector3.new(0, -1000, 0) end
  219. return
  220. end
  221.  
  222. local targetHRP = guestGetValidTarget()
  223. if not targetHRP then
  224. if guestCenterPart then guestCenterPart.Position = Vector3.new(0, -1000, 0) end
  225. if guestLeftPart then guestLeftPart.Position = Vector3.new(0, -1000, 0) end
  226. if guestRightPart then guestRightPart.Position = Vector3.new(0, -1000, 0) end
  227. if guestLeftToKillerPart then guestLeftToKillerPart.Position = Vector3.new(0, -1000, 0) end
  228. if guestRightToKillerPart then guestRightToKillerPart.Position = Vector3.new(0, -1000, 0) end
  229. if guestLeftToCenterPart then guestLeftToCenterPart.Position = Vector3.new(0, -1000, 0) end
  230. if guestCenterToRightPart then guestCenterToRightPart.Position = Vector3.new(0, -1000, 0) end
  231. return
  232. end
  233.  
  234. pcall(function()
  235. local look = targetHRP.CFrame.LookVector
  236. local right = targetHRP.CFrame.RightVector
  237. local centerPos = targetHRP.Position + look * guestVisionRange
  238. local halfAngle = math.rad(guestVisionAngle / 2)
  239.  
  240. local leftDir = (look * math.cos(halfAngle) - right * math.sin(halfAngle))
  241. local rightDir = (look * math.cos(halfAngle) + right * math.sin(halfAngle))
  242.  
  243. local leftPos = targetHRP.Position + leftDir * guestVisionRange
  244. local rightPos = targetHRP.Position + rightDir * guestVisionRange
  245.  
  246. if not guestCenterPart then guestCenterPart = guestCreateVisionPart() end
  247. if not guestLeftPart then guestLeftPart = guestCreateVisionPart() end
  248. if not guestRightPart then guestRightPart = guestCreateVisionPart() end
  249. if not guestLeftToKillerPart then guestLeftToKillerPart = guestCreateConnectionPart() end
  250. if not guestRightToKillerPart then guestRightToKillerPart = guestCreateConnectionPart() end
  251. if not guestLeftToCenterPart then guestLeftToCenterPart = guestCreateConnectionPart() end
  252. if not guestCenterToRightPart then guestCenterToRightPart = guestCreateConnectionPart() end
  253.  
  254. guestCenterPart.Position = centerPos
  255. guestLeftPart.Position = leftPos
  256. guestRightPart.Position = rightPos
  257.  
  258. guestUpdateConnectionPart(guestLeftToKillerPart, leftPos, targetHRP.Position)
  259. guestUpdateConnectionPart(guestRightToKillerPart, rightPos, targetHRP.Position)
  260. guestUpdateConnectionPart(guestLeftToCenterPart, leftPos, centerPos)
  261. guestUpdateConnectionPart(guestCenterToRightPart, centerPos, rightPos)
  262. end)
  263. end
  264.  
  265. -- Remove all vision cone parts
  266. local function guestCleanupVisionCone()
  267. if guestCenterPart then guestCenterPart:Destroy(); guestCenterPart = nil end
  268. if guestLeftPart then guestLeftPart:Destroy(); guestLeftPart = nil end
  269. if guestRightPart then guestRightPart:Destroy(); guestRightPart = nil end
  270. if guestLeftToKillerPart then guestLeftToKillerPart:Destroy(); guestLeftToKillerPart = nil end
  271. if guestRightToKillerPart then guestRightToKillerPart:Destroy(); guestRightToKillerPart = nil end
  272. if guestLeftToCenterPart then guestLeftToCenterPart:Destroy(); guestLeftToCenterPart = nil end
  273. if guestCenterToRightPart then guestCenterToRightPart:Destroy(); guestCenterToRightPart = nil end
  274. end
  275.  
  276. -- Extract numeric ID from SoundId string
  277. local function guestExtractNumericSoundId(sound)
  278. if not sound or not sound.SoundId then return nil end
  279. local sid = tostring(sound.SoundId)
  280. local num = sid:match("%d+")
  281. if num then return num end
  282. local hash = sid:match("[&%?]hash=([^&]+)")
  283. if hash then return "&hash="..hash end
  284. local path = sid:match("rbxasset://sounds/.+")
  285. if path then return path end
  286. return nil
  287. end
  288.  
  289. -- Get world position of a sound
  290. local function guestGetSoundWorldPosition(sound)
  291. if not sound then return nil end
  292. if sound.Parent and sound.Parent:IsA("BasePart") then
  293. return sound.Parent.Position, sound.Parent
  294. end
  295. if sound.Parent and sound.Parent:IsA("Attachment") and sound.Parent.Parent and sound.Parent.Parent:IsA("BasePart") then
  296. return sound.Parent.Parent.Position, sound.Parent.Parent
  297. end
  298. local found = sound.Parent and sound.Parent:FindFirstChildWhichIsA("BasePart", true)
  299. if found then return found.Position, found end
  300. return nil, nil
  301. end
  302.  
  303. -- Get character model from any descendant
  304. local function guestGetCharacterFromDescendant(inst)
  305. if not inst then return nil end
  306. local model = inst:FindFirstAncestorOfClass("Model")
  307. if model and model:FindFirstChildOfClass("Humanoid") then
  308. return model
  309. end
  310. return nil
  311. end
  312.  
  313. -- Try to block when a dangerous sound plays
  314. local function guestAttemptBlockForSound(sound, preId)
  315. if not guestAutoBlockAudioOn then return end
  316. if not sound or not sound:IsA("Sound") then return end
  317.  
  318. local id = preId or guestExtractNumericSoundId(sound)
  319. if not id or not guestAutoBlockTriggerSounds[id] then return end
  320.  
  321. local t = tick()
  322. if guestSoundBlockedUntil[sound] and t < guestSoundBlockedUntil[sound] then return end
  323. if t < guestLastLocalBlockTime + guestLocalBlockCooldown then return end
  324.  
  325. local myChar = playersService.LocalPlayer.Character
  326. local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
  327. if not myRoot then return end
  328.  
  329. local _, soundPart = guestGetSoundWorldPosition(sound)
  330. if not soundPart then return end
  331.  
  332. local char = guestGetCharacterFromDescendant(soundPart)
  333. local plr = char and playersService:GetPlayerFromCharacter(char)
  334. if not plr or plr == playersService.LocalPlayer then return end
  335.  
  336. local hrp = char:FindFirstChild("HumanoidRootPart")
  337. if not hrp then return end
  338.  
  339. local distSq = (hrp.Position - myRoot.Position).Magnitude^2
  340. local pingComp = 0.2 * guestDetectionRange
  341. if distSq > guestDetectionRangeSq + pingComp then return end
  342.  
  343. if guestVerifyFacingCheckOn then
  344. local success, result = pcall(function()
  345. local dirToPlayer = (myRoot.Position - hrp.Position).Unit
  346. local dot = hrp.CFrame.LookVector:Dot(dirToPlayer)
  347. local cosAngle = math.cos(math.rad(guestVisionAngle / 2))
  348. local close = distSq < 25
  349. return close or dot >= cosAngle
  350. end)
  351. if not success or not result then return end
  352. end
  353.  
  354. guestAttemptBlock(char, hrp)
  355. guestSoundBlockedUntil[sound] = t + guestSoundBlockDuration
  356. end
  357.  
  358. -- Hook a newly created sound
  359. local function guestHookSound(sound)
  360. if not sound or not sound:IsA("Sound") or guestSoundHooks[sound] then return end
  361.  
  362. local preId = guestExtractNumericSoundId(sound)
  363. if not preId then return end
  364.  
  365. local playedConn = sound.Played:Connect(function()
  366. if guestAutoBlockAudioOn then
  367. task.spawn(guestAttemptBlockForSound, sound, preId)
  368. end
  369. end)
  370.  
  371. local propConn = sound:GetPropertyChangedSignal("IsPlaying"):Connect(function()
  372. if sound.IsPlaying and guestAutoBlockAudioOn then
  373. task.spawn(guestAttemptBlockForSound, sound, preId)
  374. end
  375. end)
  376.  
  377. local destroyConn = sound.Destroying:Connect(function()
  378. if playedConn.Connected then playedConn:Disconnect() end
  379. if propConn.Connected then propConn:Disconnect() end
  380. if destroyConn.Connected then destroyConn:Disconnect() end
  381. guestSoundHooks[sound] = nil
  382. guestSoundBlockedUntil[sound] = nil
  383. end)
  384.  
  385. guestSoundHooks[sound] = {playedConn, propConn, destroyConn, id = preId}
  386.  
  387. if sound.IsPlaying then
  388. task.spawn(guestAttemptBlockForSound, sound, preId)
  389. end
  390. end
  391.  
  392. -- Hook all existing killer sounds
  393. local function guestHookExistingSounds()
  394. local killersFolder = workspaceService:FindFirstChild("Players") and workspaceService.Players:FindFirstChild("Killers")
  395. if killersFolder then
  396. for _, desc in ipairs(killersFolder:GetDescendants()) do
  397. if desc:IsA("Sound") then
  398. pcall(guestHookSound, desc)
  399. end
  400. end
  401. end
  402. end
  403.  
  404. -- Setup sound monitoring on killers
  405. local function guestSetupSoundHooks()
  406. local killersFolder = workspaceService:FindFirstChild("Players") and workspaceService.Players:FindFirstChild("Killers")
  407. if killersFolder then
  408. guestHookExistingSounds()
  409. killersFolder.DescendantAdded:Connect(function(desc)
  410. if desc:IsA("Sound") then
  411. pcall(guestHookSound, desc)
  412. end
  413. end)
  414. end
  415. end
  416.  
  417. -- Setup local character references
  418. local function guestSetupCharacter(char)
  419. guestHumanoid = char:FindFirstChild("Humanoid")
  420. guestHRP = char:FindFirstChild("HumanoidRootPart")
  421.  
  422. if guestAimConnection then
  423. guestAimConnection:Disconnect()
  424. guestAimConnection = nil
  425. end
  426.  
  427. local animator = guestHumanoid and guestHumanoid:FindFirstChildOfClass("Animator")
  428. if animator and guestAimPunchActive then
  429. guestAimConnection = animator.AnimationPlayed:Connect(function(track)
  430. local animId = track.Animation.AnimationId:match("%d+")
  431. if guestAimPunchActive and guestTrackedPunchAnimations[animId] then
  432. guestPunchLastTriggerTime = tick()
  433. guestPunchAiming = true
  434. end
  435. end)
  436. end
  437. end
  438.  
  439. -- Initial setup
  440. guestSetupSoundHooks()
  441.  
  442. -- Character respawn handling
  443. playersService.LocalPlayer.CharacterAdded:Connect(function(char)
  444. task.delay(0.5, function()
  445. guestCleanupVisionCone()
  446. guestSetupCharacter(char)
  447. end)
  448. end)
  449.  
  450. if playersService.LocalPlayer.Character then
  451. guestSetupCharacter(playersService.LocalPlayer.Character)
  452. end
  453.  
  454. -- Main per-frame loop
  455. runService.RenderStepped:Connect(function()
  456. if guestAimPunchActive and guestHumanoid and guestHRP and guestPunchAiming then
  457. local elapsed = tick() - guestPunchLastTriggerTime
  458. if elapsed > guestAimPunchDuration then
  459. guestPunchAiming = false
  460. if guestOriginalWS then
  461. guestHumanoid.WalkSpeed = guestOriginalWS
  462. guestHumanoid.JumpPower = guestOriginalJP
  463. guestHumanoid.AutoRotate = guestOriginalAutoRotate
  464. guestOriginalWS, guestOriginalJP, guestOriginalAutoRotate = nil, nil, nil
  465. end
  466. return
  467. end
  468.  
  469. if not guestOriginalWS then
  470. guestOriginalWS = guestHumanoid.WalkSpeed
  471. guestOriginalJP = guestHumanoid.JumpPower
  472. guestOriginalAutoRotate = guestHumanoid.AutoRotate
  473. end
  474.  
  475. guestHumanoid.AutoRotate = false
  476. guestHRP.AssemblyAngularVelocity = Vector3.zero
  477.  
  478. local targetHRP = guestGetValidTarget()
  479. if targetHRP then
  480. local predictPos = targetHRP.Velocity.Magnitude > 0.5
  481. and (targetHRP.Position + targetHRP.Velocity * (guestPunchPrediction / 60))
  482. or targetHRP.Position
  483.  
  484. local dir = (predictPos - guestHRP.Position).Unit
  485. local yaw = math.atan2(-dir.X, -dir.Z)
  486. guestHRP.CFrame = CFrame.new(guestHRP.Position) * CFrame.Angles(0, yaw, 0)
  487. end
  488. end
  489.  
  490. pcall(guestUpdateVisionCone)
  491. end)
  492.  
  493. -- UI Controls (Clean & Minimal)
  494. GuestSection:Toggle({
  495. Title = "Auto Block",
  496. Type = "Checkbox",
  497. Default = false,
  498. Callback = function(state)
  499. guestAutoBlockAudioOn = state
  500. end
  501. })
  502.  
  503. GuestSection:Slider({
  504. Title = "Auto Block Radius",
  505. Step = 1,
  506. Value = { Min = 1, Max = 20, Default = 15 },
  507. Callback = function(value)
  508. guestDetectionRange = value
  509. guestDetectionRangeSq = value * value
  510. end
  511. })
  512.  
  513. GuestSection:Divider()
  514.  
  515. GuestSection:Toggle({
  516. Title = "Verify Facing Check",
  517. Type = "Checkbox",
  518. Default = false,
  519. Callback = function(state)
  520. guestVerifyFacingCheckOn = state
  521. end
  522. })
  523.  
  524. GuestSection:Slider({
  525. Title = "Set Vision Range",
  526. Step = 1,
  527. Value = { Min = 1, Max = 20, Default = 15 },
  528. Callback = function(value)
  529. guestVisionRange = value
  530. end
  531. })
  532.  
  533. GuestSection:Slider({
  534. Title = "Set Vision Angle",
  535. Step = 1,
  536. Value = { Min = 1, Max = 200, Default = 90 },
  537. Callback = function(value)
  538. guestVisionAngle = value
  539. end
  540. })
  541.  
  542. GuestSection:Toggle({
  543. Title = "Show Vision Range",
  544. Type = "Checkbox",
  545. Default = false,
  546. Callback = function(state)
  547. guestShowVisionRange = state
  548. if not state then
  549. guestCleanupVisionCone()
  550. end
  551. end
  552. })
  553.  
  554. GuestSection:Divider()
  555.  
  556. GuestSection:Toggle({
  557. Title = "Auto Punch",
  558. Type = "Checkbox",
  559. Default = false,
  560. Callback = function(state)
  561. guestAutoPunchOn = state
  562. end
  563. })
  564.  
  565. GuestSection:Toggle({
  566. Title = "Aim Punch",
  567. Type = "Checkbox",
  568. Default = false,
  569. Callback = function(state)
  570. guestAimPunchActive = state
  571. if state and playersService.LocalPlayer.Character then
  572. guestSetupCharacter(playersService.LocalPlayer.Character)
  573. end
  574. end
  575. })
  576.  
  577. GuestSection:Slider({
  578. Title = "Punch Prediction",
  579. Step = 1,
  580. Value = { Min = 0, Max = 10, Default = 4 },
  581. Callback = function(value)
  582. guestPunchPrediction = value
  583. end
  584. })
  585.  
  586. ----------------------------------------------------------------
  587. -- Interface Tab
  588. ----------------------------------------------------------------
  589. local InterfaceTab = Window:Tab({
  590. Title = "Interface",
  591. Icon = "scan",
  592. Locked = false,
  593. })
  594.  
  595. ----------------------------------------------------------------
  596. -- UI Functions Section
  597. ----------------------------------------------------------------
  598. local UIFunctionsSection = InterfaceTab:Section({
  599. Title = "UI Functions",
  600. Opened = true,
  601. })
  602.  
  603. -- Close UI
  604. InterfaceTab:Button({
  605. Title = "Close UI",
  606. Locked = false,
  607. Callback = function()
  608. Window:Destroy()
  609. end
  610. })
Advertisement
Add Comment
Please, Sign In to add comment