![[BEST] Stellar [AUTOSPRINT, KILLAURA, ANTIKB] - Roblox Script](https://rbxscripts.net/wp-content/uploads/2026/10/noFilter-39.webp)
Credits: stav
Stellar is a 1.8 PVP club keyless script mainly focused for PvP. It supports Solara and has lots of settings to fit your need.Features:AutoSprintKillauraAntiKBSpeed
--[[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
})
endComments section coming soon...
To use this script, you need a Roblox Executor. Simply copy the script from this page, paste it into your executor, and run it while you are in the ⚔️1.8 PVP Club game.
This script may require a payment or subscription. Please check the script's description for more details.
Yes, this script has a key system. You may need to complete a task or join a Discord server to get a key.
Yes, this script is designed to be compatible with mobile executors.





