![Spectravax Hub [EASY KEY!]](https://scriptblox.com/images/sb/rbx-819313a4d5c7de5d1c2fd270fdf65638-a9e2f7a53599.png)
Key Required

getgenv().deletewhendupefound = true
local localplr = game.Players.LocalPlayer
local lib = loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Lib-18698"))()
lib.makelib("Troll Slapping Tower (2AreYouMental110)")
local maintab = lib.maketab("Main")
local slaptab = lib.maketab("Gloves")
local buildtab = lib.maketab("Build")
lib.makelabel("ALTS: normalxsx_casual1, normalxsx_casual2, normalxsx_casual3, normalxsx_casual4, normalxsx_casual5",maintab)
local apb = false
local ofs = -3.5
local conn = {}
lib.maketoggle("Auto Place Block (Requires Block Glove)",maintab,function(bool)
apb = bool
while apb do
task.wait()
pcall(function()
(workspace:FindFirstChild("BlockSlap",true) or game.Players:FindFirstChild("BlockSlap",true)).PlaceBlock:FireServer((localplr.Character.HumanoidRootPart.CFrame + Vector3.new(0,ofs,0)) * CFrame.fromEulerAnglesYXZ(math.rad(90),0,0))
end)
end
end)
lib.maketextbox("Set Height Offset (-3.5 for floating platform)",maintab,function(txt)
ofs = tonumber(txt)
end)
loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Anti-Slap-or-Fling-FOR-TROLL-GAMES-40702"))()
local av = true
lib.maketoggle("Infinite Yield Anti-Void",maintab,function(bool)
av = bool
end,true)
local af = false
lib.maketoggle("Anti-Time Stop (client sided)",maintab,function(bool)
af = bool
end)
function da(c)
if c:IsA("BasePart") then
c:GetPropertyChangedSignal("Anchored"):Connect(function()
if af and c.Anchored == true then
c.Anchored = false
end
end)
elseif c:IsA("Humanoid") then
c:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
if af and c.WalkSpeed < 16 then
c.WalkSpeed = 16
end
end)
c:GetPropertyChangedSignal("JumpPower"):Connect(function()
if af and c.JumpPower < 50 then
c.JumpPower = 50
end
end)
end
end
local OrgDestroyHeight = workspace.FallenPartsDestroyHeight
workspace.FallenPartsDestroyHeight = -500000
local antivoidloop = game:GetService("RunService").Stepped:Connect(function()
local root = (localplr.Character and localplr.Character:FindFirstChild("HumanoidRootPart"))
if av and root and root.Position.Y <= OrgDestroyHeight + 25 then
root.Velocity = root.Velocity + Vector3.new(0, 250, 0)
end
end)
function onca(c)
table.insert(conn,c.DescendantAdded:Connect(function(child)
if nse and string.find(child.Name,"Velocity") then
child:Destroy()
localplr.Character.Humanoid.Sit = false
localplr.Character.Humanoid.PlatformStand = false
end
da(child)
end))
table.insert(conn,c.ChildAdded:Connect(function(child)
da(child)
end))
for i,v in pairs(c:GetChildren()) do
da(v)
end
end
if localplr.Character then
onca(localplr.Character)
end
table.insert(conn,localplr.CharacterAdded:Connect(onca))
local aw = false
local amtw = 1
lib.maketextbox("Set Win Multiplier (DO NOT SET HIGHER THAN 10/20 OTHERWISE YOU MAY CRASH!)",maintab,function(txt)
amtw = tonumber(txt)
end)
lib.maketoggle("Auto Win",maintab,function(bool)
aw = bool
local winpad = nil
for i,v in pairs(workspace:GetChildren()) do
if v:IsA("BasePart") and v.Color == Color3.fromRGB(0,255,0) and v:FindFirstChildWhichIsA("ProximityPrompt") then
winpad = v
end
end
while aw do
task.wait()
for i=1,amtw do
localplr.Character:PivotTo(winpad.CFrame)
winpad.ProximityPrompt.HoldDuration = 0
fireproximityprompt(winpad.ProximityPrompt,0)
end
end
end)
local fxyz = Vector3.new(0,10,0)
lib.maketextbox("Set Fling XYZ (seperate with commas, example: 0,10,0)",maintab,function(txt)
local xyz = string.split(txt,",")
fxyz = Vector3.new(tonumber(xyz[1]),tonumber(xyz[2]),tonumber(xyz[3]))
end)
lib.makebutton("Fling All Players",maintab,function()
local event = nil
for i,v in pairs(game.Players:GetPlayers()) do
if v:FindFirstChild("Backpack") and v.Backpack:FindFirstChild("IsSlapTool",true) then
event = v.Backpack:FindFirstChild("IsSlapTool",true).Parent.Event
break
elseif v.Character and v.Character:FindFirstChild("IsSlapTool",true) then
event = v.Character:FindFirstChild("IsSlapTool",true).Parent.Event
break
end
end
if event then
for i,v in pairs(game.Players:GetPlayers()) do
if v.Character and v ~= localplr then
task.wait()
event:FireServer("slash",v.Character,fxyz)
end
end
end
end)
local plrnames = {}
local plrs = {}
local plrdd = lib.makedropdown("Fling Player",maintab,{},function(plr)
local event = nil
local splr = plrs[plr]
for i,v in pairs(game.Players:GetPlayers()) do
if v:FindFirstChild("Backpack") and v.Backpack:FindFirstChild("IsSlapTool",true) then
event = v.Backpack:FindFirstChild("IsSlapTool",true).Parent.Event
break
elseif v.Character and v.Character:FindFirstChild("IsSlapTool",true) then
event = v.Character:FindFirstChild("IsSlapTool",true).Parent.Event
break
end
end
if event then
event:FireServer("slash",splr.Character,fxyz)
end
end)
function getname(plr)
if plr then
if plr.DisplayName == plr.Name then
return plr.Name
else
return plr.DisplayName.."/"..plr.Name
end
end
end
lib.makebutton("Bring All Players",maintab,function()
local event = nil
if not localplr.Character:FindFirstChild("SwapperSlap") and not localplr.Backpack:FindFirstChild("SwapperSlap") then
game.ReplicatedStorage.EquipSlapEvent:FireServer("SwapperSlap")
localplr.Backpack:WaitForChild("SwapperSlap",99999).Parent = localplr.Character
event = localplr.Character.SwapperSlap.Event
elseif localplr.Backpack:FindFirstChild("SwapperSlap") then
localplr.Backpack.SwapperSlap.Parent = localplr.Character
event = localplr.Character.SwapperSlap.Event
end
if event then
for i,v in pairs(game.Players:GetPlayers()) do
if v.Character and v ~= localplr then
event:FireServer("swap",localplr.Character.HumanoidRootPart.Position,localplr.Character.HumanoidRootPart.Position,v)
end
end
end
end)
local plrdd2 = lib.makedropdown("Bring Player",maintab,{},function(plr)
local event = nil
local splr = plrs[plr]
if not localplr.Character:FindFirstChild("SwapperSlap") and not localplr.Backpack:FindFirstChild("SwapperSlap") then
game.ReplicatedStorage.EquipSlapEvent:FireServer("SwapperSlap")
localplr.Backpack:WaitForChild("SwapperSlap",99999).Parent = localplr.Character
event = localplr.Character.SwapperSlap.Event
elseif localplr.Backpack:FindFirstChild("SwapperSlap") then
localplr.Backpack.SwapperSlap.Parent = localplr.Character
event = localplr.Character.SwapperSlap.Event
end
if event then
event:FireServer("swap",localplr.Character.HumanoidRootPart.Position,localplr.Character.HumanoidRootPart.Position,splr)
end
end)
function dp(plr,ns)
local name = getname(plr)
table.insert(plrnames,name)
table.sort(plrnames,function(a,b)
return a:lower() < b:lower()
end)
if not ns then
lib.updatedropdown(plrdd,plrnames)
lib.updatedropdown(plrdd2,plrnames)
end
plrs[name] = plr
end
for i,v in pairs(game.Players:GetPlayers()) do
dp(v,true)
end
lib.updatedropdown(plrdd,plrnames)
lib.updatedropdown(plrdd2,plrnames)
table.insert(conn,game.Players.PlayerAdded:Connect(dp))
table.insert(conn,game.Players.PlayerRemoving:Connect(function()
local name = getname(plr)
pcall(function()
plrs[name] = nil
table.remove(plrnames,table.find(plrnames,name))
end)
table.sort(plrnames,function(a,b)
return a:lower() < b:lower()
end)
lib.updatedropdown(plrdd,plrnames)
lib.updatedropdown(plrdd2,plrnames)
end))
local asb = false
lib.maketoggle("Auto Spam Bricks (Requires Brick Glove)",maintab,function(bool)
asb = bool
while asb do
task.wait()
pcall(function()
(workspace:FindFirstChild("BrickSlap",true) or game.Players:FindFirstChild("BrickSlap",true)).Event:FireServer("lego")
end)
end
end)
local asbh = false
lib.maketoggle("Auto Spam Black Holes (Requires Galaxy Glove)",maintab,function(bool)
asbh = bool
while asbh do
task.wait()
pcall(function()
(workspace:FindFirstChild("GalaxySlap",true) or game.Players:FindFirstChild("GalaxySlap",true)).BlackholeEvent:FireServer()
end)
end
end)
local ass = false -- lol
local resetsw = 0
lib.maketoggle("Auto Spam Swapper (PERMANENT DAMAGE)",maintab,function(bool)
ass = bool
while ass do
task.wait(.2)
resetsw += 1
local event = nil
if resetsw%3 == 0 then
if localplr.Character:FindFirstChild("SwapperSlap") then
localplr.Character.SwapperSlap:Destroy()
elseif localplr.Backpack:FindFirstChild("SwapperSlap") then
localplr.Backpack.SwapperSlap:Destroy()
end
game.ReplicatedStorage.EquipSlapEvent:FireServer("SwapperSlap")
localplr.Backpack:WaitForChild("SwapperSlap",99999).Parent = localplr.Character
event = localplr.Character.SwapperSlap.Event
else
if localplr.Character:FindFirstChild("SwapperSlap") then
event = localplr.Character.SwapperSlap.Event
elseif localplr.Backpack:FindFirstChild("SwapperSlap") then
event = localplr.Backpack.SwapperSlap.Event
end
end
if event then
for i,v in pairs(game.Players:GetPlayers()) do
if v.Character and v ~= localplr then
pcall(function()
event:FireServer("swap",v.Character.HumanoidRootPart.Position,localplr.Character.HumanoidRootPart.Position,v)
end)
end
end
end
end
end)
local nkbd = false
function dkb(kb)
if kb:IsA("BasePart") and (kb.Color == Color3.fromRGB(175,0,175) or kb.Color == Color3.fromRGB(17,17,17) or kb.Color == Color3.fromRGB(107,50,124) or kb.Color == Color3.fromRGB(255,0,0)) and kb:FindFirstChildWhichIsA("TouchTransmitter") then
kb.CanTouch = not nkbd
end
end
function dnkbd()
for i,v in pairs(workspace:GetChildren()) do
if v:IsA("BasePart") then
dkb(v)
elseif v:IsA("Model") then
for i,v in pairs(v:GetChildren()) do
dkb(v)
end
end
end
end
lib.maketoggle("No Killbrick Damage",maintab,function(bool)
nkbd = bool
dnkbd()
end)
local cd = nil
local cd2 = nil
local slapsize = Vector3.new(2.46, 3.255954, 0.915844)
function set0mass(part)
part.Massless = true
end
table.insert(conn,localplr.Backpack.ChildAdded:Connect(function(child)
if cd and child:IsA("Tool") and child:FindFirstChild("Speed") then
child.Speed.Value = cd
end
if cd2 and child:IsA("Tool") and child:FindFirstChild("IsSlapTool") then
set0mass(child.Handle)
child.Handle.Size = slapsize*cd2
end
end))
lib.maketextbox("Set Cooldown for Gloves (-1 to default)",slaptab,function(txt)
txt = tonumber(txt)
if txt == -1 then
cd = nil
else
cd = txt
end
if cd then
for i,v in pairs(localplr.Backpack:GetChildren()) do
if v:IsA("Tool") and v:FindFirstChild("Speed") then
v.Speed.Value = cd
end
end
for i,v in pairs(localplr.Character:GetChildren()) do
if v:IsA("Tool") and v:FindFirstChild("Speed") then
v.Speed.Value = cd
end
end
end
end)
lib.maketextbox("Set Size for Gloves (-1 to default)",slaptab,function(txt)
txt = tonumber(txt)
if txt == -1 then
cd2 = nil
else
cd2 = txt
end
if cd2 then
for i,v in pairs(localplr.Backpack:GetChildren()) do
if v:IsA("Tool") and v:FindFirstChild("IsSlapTool") then
set0mass(v.Handle)
v.Handle.Size = slapsize*cd2
end
end
for i,v in pairs(localplr.Character:GetChildren()) do
if v:IsA("Tool") and v:FindFirstChild("IsSlapTool") then
set0mass(v.Handle)
v.Handle.Size = slapsize*cd2
end
end
end
end)
lib.makelabel("Gloves",slaptab)
local names = {}
for i,v in pairs(game.ReplicatedStorage.SlapTools:GetChildren()) do
local sgs = string.gsub(v.Name,"Slap"," Glove")
table.insert(names,sgs)
end
table.sort(names,function(a,b)
return a:lower() < b:lower()
end)
for i,v in pairs(names) do
lib.makebutton("Get "..v,slaptab,function()
local sgs = string.gsub(v," Glove","Slap")
if localplr.Backpack:FindFirstChild(sgs) then
localplr.Backpack[sgs]:Destroy()
end
game.ReplicatedStorage.EquipSlapEvent:FireServer(sgs)
localplr.Backpack:WaitForChild(sgs,99999).Parent = localplr.Character
end)
end
local partcfr = {}
if getgenv().savedblockz then
partcfr = getgenv().savedblockz
end
lib.makelabel("\u{26A0}\u{FE0F} Building does not save across servers!",buildtab)
lib.makelabel("\u{26A0}\u{FE0F} Going higher than ~400 parts will start to glitch building!",buildtab)
local pa = lib.makelabel("Part Amount: 0",buildtab)
local wt = lib.makelabel("Wait Time: ??",buildtab)
local awt = lib.makelabel("Actual Wait Time: ??",buildtab)
local mouse = localplr:GetMouse()
local singleframe = 1/60
local credit = " (BY 2AreYouMental110)"
local display = Instance.new("Part")
display.Anchored = true
display.Transparency = 1
display.Color = Color3.fromRGB(117,112,116)
display.Size = Vector3.new(8,10,1)
display.CanCollide = false
display.CastShadow = false
display.Name = "DisplayBuild"
display.CanQuery = false
display.Parent = workspace
local display2 = Instance.new("Highlight")
display2.FillTransparency = 1
display2.OutlineColor = Color3.fromRGB(255,0,0)
display2.DepthMode = Enum.HighlightDepthMode.Occluded
display2.Parent = game.CoreGui
local on = true
local obs = false
local mb = true
local dist = 10
local snapcf = false
local snapcf2 = false
function convrot(int)
return (int*360)/(math.pi*2)
end
function snap(cframe)
local x,y,z = cframe:ToOrientation()
local cfr2 = {math.rad(math.round(convrot(x)/45)*45),math.rad(math.round(convrot(y)/45)*45),math.rad(math.round(convrot(z)/45)*45)}
return CFrame.new(cframe.Position) * CFrame.fromOrientation(table.unpack(cfr2))
end
function snap2(cframe)
return CFrame.new(math.round(cframe.Position.X),math.round(cframe.Position.Y),math.round(cframe.Position.Z)) * (cframe - cframe.Position)
end
function getpos()
local cfr = (CFrame.new(((mouse.Hit.Position - localplr.Character:GetPivot().Position).Unit * dist)) * mouse.Hit.Rotation) + localplr.Character:GetPivot().Position
if snapcf then
cfr = snap(cfr)
end
if snapcf2 then
cfr = snap2(cfr)
end
return cfr
end
local deq = false
lib.makebutton("Get Build Tools",buildtab,function()
if localplr.Backpack:FindFirstChild("funny build"..credit) then
localplr.Backpack["funny build"..credit]:Destroy()
end
if localplr.Character:FindFirstChild("funny build"..credit) then
localplr.Character["funny build"..credit]:Destroy()
end
if localplr.Backpack:FindFirstChild("funny delete"..credit) then
localplr.Backpack["funny delete"..credit]:Destroy()
end
if localplr.Character:FindFirstChild("funny delete"..credit) then
localplr.Character["funny delete"..credit]:Destroy()
end
local fb = Instance.new("Tool")
fb.Name = "funny build"..credit
fb.RequiresHandle = false
fb.Equipped:Connect(function()
display.Transparency = 0.6
end)
fb.Unequipped:Connect(function()
display.Transparency = 1
end)
fb.Parent = localplr.Backpack
fb.Activated:Connect(function()
local hit = mouse.Hit
if snapcf then
hit = snap(hit)
end
if obs then
hit = getpos()
end
if snapcf2 then
hit = snap2(hit)
end
table.insert(partcfr,hit)
lib.updatelabel("Part Amount: "..tostring(#partcfr),pa)
local plcbl = workspace:FindFirstChild("PlaceBlock",true) or game.Players:FindFirstChild("PlaceBlock",true)
if plcbl then
plcbl:FireServer(hit)
end
end)
local fb = Instance.new("Tool")
fb.Name = "funny delete"..credit
fb.RequiresHandle = false
fb.Equipped:Connect(function()
deq = true
end)
fb.Unequipped:Connect(function()
deq = false
end)
fb.Parent = localplr.Backpack
fb.Activated:Connect(function()
if display2.Adornee ~= nil then
for i,v in pairs(partcfr) do
if v.Position == display2.Adornee.Position then
partcfr[i] = nil
lib.updatelabel("Part Amount: "..tostring(#partcfr),pa)
break
end
end
end
end)
end)
lib.maketoggle("Make Blocks",buildtab,function(bool)
mb = bool
end,true)
lib.makebutton("Delete Last Block",buildtab,function()
partcfr[#partcfr] = nil
lib.updatelabel("Part Amount: "..tostring(#partcfr),pa)
end)
lib.makebutton("Delete All Blocks",buildtab,function()
partcfr = {}
lib.updatelabel("Part Amount: "..tostring(#partcfr),pa)
end)
lib.maketoggle("Use other build positioning system",buildtab,function(bool)
obs = bool
end)
lib.makeslider("Set Block Distance",buildtab,0,50,function(num)
dist = num
end)
lib.maketoggle("Snap Rotation",buildtab,function(bool)
snapcf = bool
end)
lib.maketoggle("Snap Position",buildtab,function(bool)
snapcf2 = bool
end)
coroutine.wrap(function()
while on do
task.wait()
pcall(function()
if obs then
display.CFrame = getpos()
else
local hit = mouse.Hit
if snapcf then
hit = snap(hit)
end
if snapcf2 then
hit = snap2(hit)
end
display.CFrame = hit
end
if mouse.Target and mouse.Target.Name == "PlacedBlock" and deq then
display2.Adornee = mouse.Target
else
display2.Adornee = nil
end
end)
end
end)()
function getping()
local ping = nil
pcall(function()
local ps = game.CoreGui:FindFirstChild("PerformanceStats",true)
for i,v in pairs(ps:GetChildren()) do
if v:FindFirstChild("StatsMiniTextPanelClass") and v.StatsMiniTextPanelClass.TitleLabel.Text == "Ping" then
ping = tonumber(string.sub(v.StatsMiniTextPanelClass.ValueLabel.Text,1,string.find(v.StatsMiniTextPanelClass.ValueLabel.Text,"ms")-1))/1000
end
end
end)
if not ping then
ping = 0.5
end
return ping
end
coroutine.wrap(function()
while on do
local s = tick()
local waittime = ((2-(#partcfr/15)*singleframe))-getping()
task.wait(waittime)
if mb and (workspace:FindFirstChild("PlaceBlock",true) or game.Players:FindFirstChild("PlaceBlock",true)) then
local plcbl = workspace:FindFirstChild("PlaceBlock",true) or game.Players:FindFirstChild("PlaceBlock",true)
for i,v in pairs(partcfr) do
if i%15 == 0 then
task.wait()
end
plcbl:FireServer(v)
end
elseif localplr.Backpack:FindFirstChild("funny build"..credit) or localplr.Character:FindFirstChild("funny build"..credit) then
game.ReplicatedStorage.EquipSlapEvent:FireServer("BlockSlap")
end
lib.updatelabel("Wait Time: "..tostring(waittime+((#partcfr/15)*singleframe)),wt)
lib.updatelabel("Actual Wait Time: "..tostring(tick() - s),awt)
end
end)()
local plrf = Instance.new("Folder")
plrf.Name = "PLRFOLDER"
plrf.Parent = workspace
mouse.TargetFilter = plrf
function oca(c)
c.Parent = plrf
end
function opa(p)
if p.Character then
oca(p.Character)
end
table.insert(conn,p.CharacterAdded:Connect(oca))
end
table.insert(conn,game.Players.PlayerAdded:Connect(opa))
for i,v in pairs(game.Players:GetPlayers()) do
opa(v)
end
lib.ondestroyedfunc = function()
apb = false
nse = false
aw = false
asb = false
asbh = false
ass = false
nkbd = false
on = false
av = false
af = false
dnkbd()
for i,v in pairs(conn) do
v:Disconnect()
end
for i,v in pairs(localplr.Backpack:GetChildren()) do
if v:IsA("Tool") and v:FindFirstChild("IsSlapTool") then
v.Handle.Massless = false
v.Handle.Size = slapsize
end
end
for i,v in pairs(localplr.Character:GetChildren()) do
if v:IsA("Tool") and v:FindFirstChild("IsSlapTool") then
v.Handle.Massless = false
v.Handle.Size = slapsize
end
end
if localplr.Backpack:FindFirstChild("funny build"..credit) then
localplr.Backpack["funny build"..credit]:Destroy()
end
if localplr.Character:FindFirstChild("funny build"..credit) then
localplr.Character["funny build"..credit]:Destroy()
end
if localplr.Backpack:FindFirstChild("funny delete"..credit) then
localplr.Backpack["funny delete"..credit]:Destroy()
end
if localplr.Character:FindFirstChild("funny delete"..credit) then
localplr.Character["funny delete"..credit]:Destroy()
end
display:Destroy()
display2:Destroy()
workspace.FallenPartsDestroyHeight = OrgDestroyHeight
for i,v in pairs(plrf:GetChildren()) do
v.Parent = workspace
end
plrf:Destroy()
getgenv().savedblockz = partcfr
end
Put this in pastebin pls