OR4NG3-FRU1T

V1rpStab script but i change the library from WindUI into Orion Library (NOT MY SCRIPT)

Jun 19th, 2026
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.61 KB | None | 0 0
  1. local playersService = game:GetService("Players")
  2. local runService = game:GetService("RunService")
  3. local workspaceService = game:GetService("Workspace")
  4.  
  5. -- Client references
  6. local clientPlayer = playersService.LocalPlayer
  7. local PlayerGui = clientPlayer:WaitForChild("PlayerGui", 10)
  8.  
  9. -- Load Orion Library
  10. local OrionLib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/jensonhirst/Orion/main/source')))()
  11.  
  12. -- Create main window
  13. local Window = OrionLib:MakeWindow({
  14. Name = "V1PRSTAB",
  15. HidePremium = false,
  16. SaveConfig = true,
  17. ConfigFolder = "GlovSakenScript",
  18. IntroEnabled = true,
  19. IntroText = "V1PRSTAB",
  20. })
  21.  
  22. ----------------------------------------------------------------
  23. -- CONFIG
  24. ----------------------------------------------------------------
  25. local DEFAULT_PROXIMITY = 8
  26. local DEFAULT_DURATION = 0.6
  27. local BEHIND_DISTANCE = 3.5
  28. local CHECK_INTERVAL = 0.06
  29. local COOLDOWN = 5
  30. local LERP_SPEED = 0.37
  31. local DELAY_BEFORE_STAB = 0.07
  32. local REMOTE_FIRE_DELAY = 0.0
  33. local AIM_SNAP_DELAY = 0.25
  34.  
  35. -- Mutable state driven by UI
  36. local isRunning = true
  37. local enabled = false
  38. local daggerEnabled = false
  39. local rangeMode = "Behind"
  40. local backstabType = "Aim"
  41. local proximity = DEFAULT_PROXIMITY
  42. local lastTrigger = 0
  43. local aimRefCount = 0
  44.  
  45. ----------------------------------------------------------------
  46. -- Helper functions
  47. ----------------------------------------------------------------
  48. local function getCharacter()
  49. return clientPlayer.Character or clientPlayer.CharacterAdded:Wait()
  50. end
  51.  
  52. local function getDaggerButton()
  53. local pg = clientPlayer:FindFirstChild("PlayerGui")
  54. if not pg then return nil end
  55. local mainUI = pg:FindFirstChild("MainUI")
  56. if not mainUI then return nil end
  57. local container = mainUI:FindFirstChild("AbilityContainer")
  58. if not container then return nil end
  59. return container:FindFirstChild("Dagger")
  60. end
  61.  
  62. local function getDaggerCooldown()
  63. local btn = getDaggerButton()
  64. if not btn then return nil end
  65. return btn:FindFirstChild("CooldownTime")
  66. or btn:FindFirstChild("Cooldown")
  67. or btn:FindFirstChildWhichIsA("NumberValue")
  68. or btn:FindFirstChildWhichIsA("StringValue")
  69. or btn:FindFirstChild("CooldownLabel")
  70. or btn:FindFirstChild("Timer")
  71. or btn:FindFirstChild("CD")
  72. end
  73.  
  74. local function readCooldownValue(cdObj)
  75. if not cdObj then return nil end
  76. if cdObj:IsA("NumberValue") then return cdObj.Value end
  77. if cdObj:IsA("StringValue") then return tonumber(cdObj.Value) end
  78. if cdObj:IsA("TextLabel") or cdObj:IsA("TextBox") then return tonumber(cdObj.Text) end
  79. if type(cdObj.Value) == "number" then return cdObj.Value end
  80. if type(cdObj.Value) == "string" then return tonumber(cdObj.Value) end
  81. if cdObj.Text ~= nil then return tonumber(cdObj.Text) end
  82. return nil
  83. end
  84.  
  85. local function getKillersFolder()
  86. local playersFolder = workspaceService:FindFirstChild("Players")
  87. if not playersFolder then return nil end
  88. return playersFolder:FindFirstChild("Killers")
  89. end
  90.  
  91. local function isValidKillerModel(model)
  92. if not model then return false end
  93. local hrp = model:FindFirstChild("HumanoidRootPart")
  94. local humanoid = model:FindFirstChildWhichIsA("Humanoid")
  95. return hrp and humanoid and humanoid.Health and humanoid.Health > 0
  96. end
  97.  
  98. local function tryActivateButton(btn)
  99. if not btn then return false end
  100. pcall(function() if btn.Activate then btn:Activate() end end)
  101. local ok, conns = pcall(function()
  102. if type(getconnections) == "function" and btn.MouseButton1Click then
  103. return getconnections(btn.MouseButton1Click)
  104. end
  105. return nil
  106. end)
  107. if ok and conns then
  108. for _, conn in ipairs(conns) do
  109. pcall(function()
  110. if conn.Function then conn.Function()
  111. elseif conn.func then conn.func()
  112. elseif conn.Fire then conn.Fire() end
  113. end)
  114. end
  115. end
  116. pcall(function() if btn.Activated then btn.Activated:Fire() end end)
  117. return true
  118. end
  119.  
  120. local function setAutoRotate(value)
  121. local char = clientPlayer.Character
  122. if not char then return end
  123. local hum = char:FindFirstChildWhichIsA("Humanoid")
  124. if hum then pcall(function() hum.AutoRotate = value end) end
  125. end
  126.  
  127. ----------------------------------------------------------------
  128. -- Aiming logic
  129. ----------------------------------------------------------------
  130. local function activateForKiller(killerModel, duration)
  131. if not killerModel or not isRunning then return end
  132. local char = getCharacter()
  133. local humanoid = char and char:FindFirstChildWhichIsA("Humanoid")
  134. local hrp = char and char:FindFirstChild("HumanoidRootPart")
  135. local khrp = killerModel:FindFirstChild("HumanoidRootPart")
  136. if not humanoid or not hrp or not khrp then return end
  137.  
  138. aimRefCount += 1
  139. if aimRefCount == 1 then pcall(function() humanoid.AutoRotate = false end) end
  140.  
  141. local function finishAiming()
  142. aimRefCount = math.max(0, aimRefCount - 1)
  143. if aimRefCount == 0 then setAutoRotate(true) end
  144. end
  145.  
  146. local function computeDesiredCFrame()
  147. local kCF = khrp.CFrame
  148. local behindPos = kCF.Position - (kCF.LookVector.Unit * BEHIND_DISTANCE)
  149. behindPos = Vector3.new(behindPos.X, kCF.Position.Y, behindPos.Z)
  150. return CFrame.new(behindPos, behindPos + kCF.LookVector.Unit)
  151. end
  152.  
  153. if backstabType == "Lerp" then
  154. local t0 = os.clock()
  155. local conn
  156. conn = runService.Heartbeat:Connect(function()
  157. if not isRunning or os.clock() - t0 >= duration then
  158. conn:Disconnect(); finishAiming(); return
  159. end
  160. if khrp and hrp then
  161. hrp.CFrame = hrp.CFrame:Lerp(computeDesiredCFrame(), LERP_SPEED)
  162. end
  163. end)
  164.  
  165. elseif backstabType == "Teleport" then
  166. local t0 = os.clock()
  167. local conn
  168. conn = runService.Heartbeat:Connect(function()
  169. if not isRunning or os.clock() - t0 >= duration then
  170. conn:Disconnect(); finishAiming(); return
  171. end
  172. if khrp and hrp then hrp.CFrame = computeDesiredCFrame() end
  173. end)
  174.  
  175. elseif backstabType == "Aim" then
  176. local t0 = os.clock()
  177. local conn
  178. conn = runService.Heartbeat:Connect(function()
  179. if not isRunning or os.clock() - t0 >= duration then
  180. conn:Disconnect(); finishAiming(); return
  181. end
  182. if khrp and hrp then
  183. local targetPos = Vector3.new(khrp.Position.X, hrp.Position.Y, khrp.Position.Z)
  184. hrp.CFrame = hrp.CFrame:Lerp(CFrame.new(hrp.Position, targetPos), LERP_SPEED * 1.6)
  185. end
  186. end)
  187. end
  188. end
  189.  
  190. ----------------------------------------------------------------
  191. -- Main watcher
  192. ----------------------------------------------------------------
  193. task.spawn(function()
  194. while isRunning do
  195. task.wait(CHECK_INTERVAL)
  196. if not enabled or not isRunning then continue end
  197.  
  198. local killersFolder = getKillersFolder()
  199. if not killersFolder then continue end
  200.  
  201. local char = getCharacter()
  202. local hrp = char and char:FindFirstChild("HumanoidRootPart")
  203. if not hrp then continue end
  204.  
  205. for _, killer in pairs(killersFolder:GetChildren()) do
  206. if not isValidKillerModel(killer) then continue end
  207. local khrp = killer:FindFirstChild("HumanoidRootPart")
  208. local dist = (khrp.Position - hrp.Position).Magnitude
  209. local shouldTrigger = false
  210.  
  211. if rangeMode == "Around" then
  212. if dist <= proximity then shouldTrigger = true end
  213. else
  214. local relative = hrp.Position - khrp.Position
  215. local forwardDot = relative:Dot(khrp.CFrame.LookVector)
  216. if forwardDot < 0.3 and (-forwardDot) <= proximity and dist <= proximity then
  217. shouldTrigger = true
  218. end
  219. end
  220.  
  221. if shouldTrigger and os.clock() - lastTrigger >= COOLDOWN then
  222. local cdNum = readCooldownValue(getDaggerCooldown())
  223. if not (cdNum and cdNum > 0.1) then
  224. lastTrigger = os.clock()
  225. task.spawn(function()
  226. activateForKiller(killer, DEFAULT_DURATION)
  227. if REMOTE_FIRE_DELAY > 0 then task.wait(REMOTE_FIRE_DELAY) end
  228. if daggerEnabled then tryActivateButton(getDaggerButton()) end
  229. if AIM_SNAP_DELAY > 0 then
  230. task.wait(AIM_SNAP_DELAY)
  231. if not isRunning then return end
  232. local khrp2 = killer:FindFirstChild("HumanoidRootPart")
  233. local char2 = getCharacter()
  234. local hrp2 = char2 and char2:FindFirstChild("HumanoidRootPart")
  235. if khrp2 and hrp2 then
  236. local targetPos = Vector3.new(
  237. khrp2.Position.X, hrp2.Position.Y, khrp2.Position.Z
  238. )
  239. hrp2.CFrame = CFrame.new(hrp2.Position, targetPos)
  240. end
  241. end
  242. end)
  243. break
  244. end
  245. end
  246. end
  247. end
  248. end)
  249.  
  250. ----------------------------------------------------------------
  251. -- Backstab Tab
  252. ----------------------------------------------------------------
  253. local BackstabTab = Window:MakeTab({
  254. Name = "Backstab",
  255. Icon = "rbxassetid://4483345998",
  256. PremiumOnly = false,
  257. })
  258.  
  259. BackstabTab:AddLabel("Settings")
  260.  
  261. BackstabTab:AddToggle({
  262. Name = "Auto Backstab",
  263. Default = false,
  264. Callback = function(state)
  265. enabled = state
  266. end,
  267. })
  268.  
  269. BackstabTab:AddToggle({
  270. Name = "Auto Stab on Backstab",
  271. Default = false,
  272. Callback = function(state)
  273. daggerEnabled = state
  274. end,
  275. })
  276.  
  277. BackstabTab:AddDropdown({
  278. Name = "Backstab Type",
  279. Default = "Aim",
  280. Options = {"Lerp", "Teleport", "Aim"},
  281. Callback = function(value)
  282. backstabType = value
  283. end,
  284. })
  285.  
  286. BackstabTab:AddDropdown({
  287. Name = "Range Mode",
  288. Default = "Behind",
  289. Options = {"Around", "Behind"},
  290. Callback = function(value)
  291. rangeMode = value
  292. end,
  293. })
  294.  
  295. BackstabTab:AddSlider({
  296. Name = "Detection Range",
  297. Min = 1,
  298. Max = 30,
  299. Default = DEFAULT_PROXIMITY,
  300. Color = Color3.fromRGB(255, 255, 255),
  301. Increment = 1,
  302. ValueName = "studs",
  303. Callback = function(value)
  304. proximity = value
  305. end,
  306. })
  307.  
  308. BackstabTab:AddSlider({
  309. Name = "Behind Distance",
  310. Min = 0.5,
  311. Max = 10,
  312. Default = BEHIND_DISTANCE,
  313. Color = Color3.fromRGB(255, 255, 255),
  314. Increment = 0.5,
  315. ValueName = "studs",
  316. Callback = function(value)
  317. BEHIND_DISTANCE = value
  318. end,
  319. })
  320.  
  321. BackstabTab:AddSlider({
  322. Name = "Remote Fire Delay (s)",
  323. Min = 0.00,
  324. Max = 0.50,
  325. Default = REMOTE_FIRE_DELAY,
  326. Color = Color3.fromRGB(255, 255, 255),
  327. Increment = 0.01,
  328. ValueName = "s",
  329. Callback = function(value)
  330. REMOTE_FIRE_DELAY = value
  331. end,
  332. })
  333.  
  334. BackstabTab:AddSlider({
  335. Name = "Aim Snap Delay (s)",
  336. Min = 0.00,
  337. Max = 0.25,
  338. Default = AIM_SNAP_DELAY,
  339. Color = Color3.fromRGB(255, 255, 255),
  340. Increment = 0.01,
  341. ValueName = "s",
  342. Callback = function(value)
  343. AIM_SNAP_DELAY = value
  344. end,
  345. })
  346.  
  347. ----------------------------------------------------------------
  348. -- Interface Tab
  349. ----------------------------------------------------------------
  350. local InterfaceTab = Window:MakeTab({
  351. Name = "Interface",
  352. Icon = "rbxassetid://4483345998",
  353. PremiumOnly = false,
  354. })
  355.  
  356. InterfaceTab:AddLabel("UI Functions")
  357.  
  358. InterfaceTab:AddButton({
  359. Name = "Unload Script",
  360. Callback = function()
  361. isRunning = false
  362. enabled = false
  363. setAutoRotate(true)
  364. OrionLib:Destroy()
  365. end,
  366. })
  367.  
  368. InterfaceTab:AddButton({
  369. Name = "Close UI",
  370. Callback = function()
  371. OrionLib:Destroy()
  372. end,
  373. })
  374.  
  375. ----------------------------------------------------------------
  376. -- Init
  377. ----------------------------------------------------------------
  378. OrionLib:Init()
Tags: V1RP
Advertisement
Add Comment
Please, Sign In to add comment