--[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ac740f78fe5a7b664a4ef7b"))() end) end) --[[rscripts:analytics:end]] --[[ Stellar A dominant -- combat focused 1.8 PVP Club script by @.__stav ]] local cloneref = cloneref or function(obj) return obj end local ReplicatedStorage = cloneref(game:GetService('ReplicatedStorage')) local UserInputService = cloneref(game:GetService('UserInputService')) local HttpService = cloneref(game:GetService('HttpService')) local RunService = cloneref(game:GetService('RunService')) local GuiService = cloneref(game:GetService('GuiService')) local Players = cloneref(game:GetService('Players')) local lplr = Players.LocalPlayer local Raycast = loadstring(game:HttpGet('https://gitlab.com/stxvv/koolrewrite/-/raw/master/libraries/Raycast.lua?ref_type=heads'))() local function isAlive(plr) plr = plr or lplr local obj if plr:IsA('Model') then obj = { Character = plr } else obj = plr end return (obj.Character and obj.Character:FindFirstChild('Humanoid') and obj.Character.Humanoid.Health > 0) and true or false end local function getClosestEntity(range, angle, wallcheck) local minrnge, entity = range, nil for _, v in Players:GetPlayers() do if isAlive(v) and v ~= lplr then if wallcheck and not Raycast:CanSee(v.Character:WaitForChild('HumanoidRootPart', 2)) then continue end local plrDir = math.deg(lplr.Character:WaitForChild('HumanoidRootPart', 2).CFrame.LookVector:Angle((v.Character:WaitForChild('HumanoidRootPart', 2).Position - lplr.Character:WaitForChild('HumanoidRootPart', 2).Position).Unit)) if plrDir > angle / 2 then continue end local dist = (v.Character:WaitForChild('HumanoidRootPart', 2).Position - lplr.Character:WaitForChild('HumanoidRootPart', 2).Position).Magnitude if dist < minrnge then minrnge = dist entity = v end end end return entity end local function getTool(plr) plr = plr or lplr if isAlive(plr) then return plr.Character and plr.Character:FindFirstChildOfClass('Tool') or nil end return nil end --[[ Emulation ]] local function decompile(scriptPath: ModuleScript | LocalScript): string local sucByte, bytecode = pcall(getscriptbytecode, scriptPath) if not sucByte then return `-- Failed to get script bytecode, error:\n\n--[[\n{bytecode}\n--]]` end local okRequest: boolean, httpResult = pcall(request, { Url = 'https://api.lua.expert/decompile', Method = 'POST', Body = HttpService:JSONEncode({ script = base64encode(bytecode), }), Headers = { ['Content-Type'] = 'application/json' }, }) if not okRequest then return `-- Failed to decompile, error:\n\n--[[\n{httpResult}\n--]]` end if httpResult.StatusCode ~= 200 then return `-- Error occurred while requesting the API, error:\n\n--[[\n{httpResult.Body}\n--]]` end return string.gsub(httpResult.Body, string.char(0x00CD), ' ') end local req, fakereq = require, nil local function require(obj) local exec = select(1, identifyexecutor()) if not require or table.find({'Solara', 'Xeno'}, exec) then local source = decompile(obj) local func = loadstring(source) if getfenv then getfenv(func).require = fakereq getfenv(func).script = obj end local suc, res = pcall(function() return func() end) if suc and res ~= nil then return res else return error('Requested module experienced an error while loading') end end return req(obj) end fakereq = require local ControllerInput = { IsBlocked = function() local MenuIsOpen if lplr:GetAttribute('DuelMenuOpen') or lplr:GetAttribute('DuelFrozen') or lplr:GetAttribute('SettingsOpen') then MenuIsOpen = true else MenuIsOpen = GuiService.MenuIsOpen if not MenuIsOpen then if not UserInputService:GetFocusedTextBox() then if lplr:GetAttribute('UpgradeShopOpen') or lplr:GetAttribute('RobuxShopOpen') or lplr:GetAttribute('CosmeticsOpen') or lplr:GetAttribute('CosmeticCrateOpen') then MenuIsOpen = true else MenuIsOpen = lplr:GetAttribute('DailyRewardsOpen') == true end else MenuIsOpen = true end end end return MenuIsOpen end } local Dependencies = { Geometry = require(ReplicatedStorage.MinecraftMeleeGeometry), HitVisuals = require(ReplicatedStorage.MeleeHitVisuals), isBlocked = ControllerInput.IsBlocked, vmSwing = -10 } do local restP, unstableSince, lastClone, parts = nil, nil, nil, {} pcall(function() RunService:UnbindFromRenderStep('Swing') end) local function getViewmodel() if not isAlive(lplr) then return end if not workspace.CurrentCamera:FindFirstChild('MinecraftSwordViewmodel') or not workspace.CurrentCamera:FindFirstChild('MinecraftSwordViewmodel'):FindFirstChild('Sword') then return end if not lplr.PlayerGui:FindFirstChild('FixedFovHeldItems'):FindFirstChildOfClass('ViewportFrame'):FindFirstChild('Sword') then return end return workspace.CurrentCamera, workspace.CurrentCamera:FindFirstChild('MinecraftSwordViewmodel'):FindFirstChild('Sword'), lplr.PlayerGui:FindFirstChild('FixedFovHeldItems'):FindFirstChildOfClass('ViewportFrame'):FindFirstChild('Sword') end local function swingQ(p, e) local t = math.clamp(e / 0.3, 0, 1) local s2, s3, s4, s5 = math.sin(t * t * math.pi), math.sin(math.sqrt(t) * math.pi), math.sin(math.sqrt(t) * math.pi * 2), math.sin(t * math.pi) local off, yaw, v6 = Vector3.new(-s3 * 0.4, s4 * 0.2, -s5 * 0.2), CFrame.Angles(0, 0.7853981633974483, 0), CFrame.Angles(0, math.rad(s2 * -20), 0) * CFrame.Angles(0, 0, math.rad(s3 * -20)) * CFrame.Angles(math.rad(s3 * -80), 0, 0) return CFrame.new(p + off) * yaw * v6 * yaw:Inverse() * CFrame.new(-p) end RunService:BindToRenderStep('Swing', Enum.RenderPriority.Last.Value + 101, function() local cam, orig, clone = getViewmodel() if not cam then return end local k, ls = 0.7002075382097097 / math.tan(math.rad(cam.FieldOfView) * 0.5), cam.CFrame:ToObjectSpace(orig:GetPivot()) local lp = Vector3.new(ls.X, ls.Y, ls.Z / k) if not restP then restP = lp unstableSince = nil elseif (lp - restP).Magnitude < 0.03 then restP = lp unstableSince = nil else if not unstableSince then unstableSince = os.clock() + 1.2 end if not (os.clock() >= unstableSince) then return end restP = lp unstableSince = nil end local e = os.clock() - Dependencies.vmSwing if e < 0 or e > 0.3 then return end local Q = swingQ(restP, e) if clone ~= lastClone then lastClone = clone table.clear(parts) for _, v in ipairs(clone:GetDescendants()) do if v:IsA('BasePart') then table.insert(parts, v) end end end for _, v in ipairs(parts) do if v.Parent then v.CFrame = Q * v.CFrame end end end) end local Rayfield = loadstring(game:HttpGet('https://sirius.menu/gen2'))() local Window = Rayfield:CreateWindow({ name = 'Stellar', subtitle = 'A PVP client for 1.8 PVP Club.', sidebarLayout = true, showName = 'Stellar 1.0.0', configuration = { autoSave = true, autoLoad = true, fileName = 'Stellar', } }) local Tabs = { Combat = Window:CreateTab({name = 'Combat'}), Movement = Window:CreateTab({name = 'Movement'}), Interface = Window:CreateTab({name = 'Interface'}) } --[[ Combat ]] do Tabs.Combat:CreateSection({name = 'Sprint'}) Tabs.Combat:CreateToggle({ name = 'AutoSprint', description = 'Automatically sprints for you.', flag = 'sprint', value = false, callback = function(callback) if callback then repeat ReplicatedStorage.MinecraftCombat.Sprint:FireServer(true) task.wait() until Window.unloaded or not Window:Get('sprint') else ReplicatedStorage.MinecraftCombat.Sprint:FireServer(false) end end }) end do if not shared.seq then shared.seq = 0 end local lastSwing, lastAttack = 0, 0 local function getKillauraValues(range, angle, wallcheck) -- haha very funny gpt moment (it's not, i can assure :/) if not isAlive(lplr.Character) then return end if Dependencies.isBlocked() then return end if lplr.Character:GetAttribute('EatingApple') or lplr.Character:GetAttribute('BowDrawStarted') then return end local entity = getClosestEntity(range, angle, wallcheck) if not entity then return end local eye = Dependencies.Geometry.Eye(lplr.Character.PrimaryPart.Position, lplr.Character:GetAttribute('Sneaking')) local dir = CFrame.lookAt(lplr.Character.PrimaryPart.Position, entity.Character.PrimaryPart.Position).LookVector local dist, part = Dependencies.Geometry.Hit(eye, dir, entity.Character.PrimaryPart.Position, entity.Character:GetAttribute('Sneaking'), range) if not dist then return end return {char = entity.Character, root = entity.Character.PrimaryPart, dist = dist, part = part, eye = eye, dir = dir} end Tabs.Combat:CreateSection({name = 'Killaura'}) Tabs.Combat:CreateToggle({ name = 'Killaura', description = 'Automatically attacks players around you.', flag = 'killaura', value = false, callback = function(callback) if callback then repeat task.wait() until (Window:Get('killaura_range') and Window:Get('killaura_angle') and Window:Get('killaura_itemcheck') and Window:Get('killaura_wallcheck') and Window:Get('killaura_swing') and Window:Get('killaura_attackinterval')) ~= nil repeat task.wait() if isAlive(lplr) then local item = getTool(lplr) if Window:Get('killaura_itemcheck') and item and item.Name ~= 'Diamond Sword' then continue end local entity = getKillauraValues(Window:Get('killaura_range'), Window:Get('killaura_angle'), Window:Get('killaura_wallcheck')) if entity then if workspace.SkySpawn.CourtyardArchitecture['Arena red wool floor edge'].Position.Y <= lplr.Character.PrimaryPart.Position.Y then continue end if Window:Get('killaura_swing') and os.clock() >= lastSwing then Dependencies.vmSwing = os.clock() lastSwing = os.clock() + math.max(0.15, Window:Get('killaura_attackinterval')) lplr.Character:SetAttribute('LocalAttackSwing', os.clock()) end if Window:Get('killaura_attackinterval') and os.clock() >= lastAttack then lastAttack = os.clock() + Window:Get('killaura_attackinterval') shared.seq += 1 local payload = { version = 2, character = lplr.Character, seq = shared.seq, sentAt = workspace:GetServerTimeNow(), eye = entity.eye, targetRoot = entity.root.Position, hitPart = entity.part, } Dependencies.HitVisuals.Predict(entity.char) ReplicatedStorage.MinecraftCombat.Attack:FireServer(entity.char, entity.eye + entity.dir * entity.dist, entity.dir, nil, payload) end end end until Window.unloaded or not Window:Get('killaura') end end }) Tabs.Combat:CreateSlider({ name = 'Attack Interval', description = 'Seconds between attacks.', range = {0.05, 1}, increment = 0.01, value = 0.05, flag = 'killaura_attackinterval' }) Tabs.Combat:CreateSlider({ name = 'Range', range = {1, 11.25}, increment = 0.01, value = 11.25, flag = 'killaura_range' }) Tabs.Combat:CreateToggle({ name = 'Item Check', description = 'Automatically checks to see if you are holding the correct item.', flag = 'killaura_itemcheck' }) Tabs.Combat:CreateToggle({ name = 'Wall check', description = 'Automatically checks to see if the person is in your line of sight.', flag = 'killaura_wallcheck' }) Tabs.Combat:CreateSlider({ name = 'Angle', range = {1, 360}, increment = 1, value = 360, suffix = '°', flag = 'killaura_angle' }) Tabs.Combat:CreateToggle({ name = 'Swing', description = 'Automatically plays the swing animation.', flag = 'killaura_swing' }) end do Tabs.Combat:CreateSection({name = 'Knockback'}) Tabs.Combat:CreateToggle({ Name = 'AntiKB', description = 'Allows for you to have no knockback at all', flag = 'velocity', callback = function(callback) if callback then if not isfile('antikbtrust.txt') then Window:Popup({ title = 'Toggle AntiKB?', content = 'This clears all connections relating to knockback, and allows for better hits. You have a risk of detection/being caught by the moderators. You can\'t revert back.', options = { {text = 'Cancel', callback = function() Window:Set('velocity', false) end}, {text = 'Continue', style = 'danger', callback = function() if ReplicatedStorage:FindFirstChild('MinecraftKnockbackMotion') then writefile('antikbtrust.txt', '') ReplicatedStorage.MinecraftKnockbackMotion:Destroy() else Window:Notify({ title = 'Failed to enable Velocity', content = 'Connection must\'ve been destroyed already.', duration = 5, }) end end} } }) end else if not Window.unloaded and isfile('antikbtrust.txt') then delfile('antikbtrust.txt') end end end }) end --[[ Movement ]] do local speedConn local rayParams = RaycastParams.new() Tabs.Movement:CreateSection({name = 'Speed'}) Tabs.Movement:CreateToggle({ name = 'Speed', description = 'Increases your movement speed.', flag = 'speed', value = false, callback = function(callback) if callback then repeat task.wait() until Window:Get('speed_value') ~= nil speedConn = RunService.PreSimulation:Connect(function(dt) -- https://github.com/7GrandDadPGN/VapeV4ForRoblox/blob/main/src/games/universal%20-%20base/base.lua (SpeedMethods - CFrame) if Window.unloaded and speedConn then speedConn:Disconnect() speedConn = nil end if isAlive(lplr) and lplr.Character:FindFirstChild('HumanoidRootPart') and not Window.unloaded then local root = lplr.Character:WaitForChild('HumanoidRootPart', 2) local dest = (lplr.Character.Humanoid.MoveDirection * math.max(((not Window.unloaded and Window:Get('speed_value')) or 1) - lplr.Character.Humanoid.WalkSpeed, 0) * dt) rayParams.FilterDescendantsInstances = {lplr.Character, workspace.CurrentCamera} rayParams.CollisionGroup = root.CollisionGroup local ray = workspace:Raycast(root.Position, dest, rayParams) if ray then dest = (ray.Position + ray.Normal) - root.Position end root.CFrame += dest end end) else if speedConn then speedConn:Disconnect() speedConn = nil end end end }) Tabs.Movement:CreateSlider({ name = 'Value', range = {1, 32}, increment = 0.1, value = 32, flag = 'speed_value' }) end --[[ Interface ]] do Tabs.Interface:CreateSection({name = 'Theming'}) local Themes = { Default = 'default', Cobalt = 'cobalt', Ember = 'ember', Amethyst = 'amethyst', Frost = 'frost', Rose = 'rose' } Tabs.Interface:CreateDropdown({ Name = 'Interface Theme', multiSelect = false, options = {'Default', 'Cobalt', 'Ember', 'Amethyst', 'Frost', 'Rose'}, value = 'Default', callback = function(callback) Window:ChangeTheme(Themes[callback]) end }) end do Tabs.Interface:CreateSection({name = 'Unload'}) Tabs.Interface:CreateButton({ name = 'Unload', description = 'Automatically unloads Stellar. Useful if a moderator joins your server.', callback = function() pcall(function() RunService:UnbindFromRenderStep('Swing') end) Window:Unload() end }) end