
Key RequiredUniversal

if not game:IsLoaded() then game.Loaded:Wait() end
local lPlayer = game.Players.LocalPlayer
-- thanks 3ds and kiko metatables r hard
if not getgenv().MTAPIMutex then loadstring(game:HttpGet("https://raw.githubusercontent.com/KikoTheDon/MT-Api-v2/main/__source/mt-api%20v2.lua", true))() end
if game.PlaceId == 111311599 then -- Critical Strike
local anticheat = game:GetService("ReplicatedFirst")["Serverbased AntiCheat"] -- then why put it in a localscript?
-- I literally copied the rest of this from the "Serverbased Anticheat"
local sValue = game:GetService("Players").LocalPlayer:WaitForChild("SValue")
local function constructAnticheatString()
return "CS-" .. math.random(11111, 99999) .. "-" .. math.random(1111, 9999) .. "-" .. math.random(111111, 999999) .. math.random(1111111, 9999999) .. (sValue.Value * 6) ^ 2 + 18;
end
-- to be fair the game hasn't been updated in over a year
task.spawn(function()
while true do task.wait(2)
game:GetService("ReplicatedStorage").ACDetect:FireServer(sValue.Value, constructAnticheatString());
end
end)
anticheat.Disabled = true
end
local playerNames = {}
--local npcNames = {} -- I was planning on adding npc support
local teamNames = {}
-- thanks inori and wally
local Library = loadstring(game:HttpGet('https://raw.githubusercontent.com/wally-rblx/LinoriaLib/main/Library.lua'))()
local SaveManager = loadstring(game:HttpGet('https://raw.githubusercontent.com/wally-rblx/LinoriaLib/main/addons/SaveManager.lua'))()
SaveManager:SetLibrary(Library)
SaveManager:SetFolder("HitboxExtender")
Library:Notify("hai :3")
local mainWindow = Library:CreateWindow("Personal object of abuse")
local mainTab = mainWindow:AddTab("Main")
local mainGroupbox = mainTab:AddLeftGroupbox("Hitbox Extender")
local ignoresGroupbox = mainTab:AddRightGroupbox("Ignores")
local miscGroupbox = mainTab:AddLeftGroupbox("Misc")
local extenderToggled = mainGroupbox:AddToggle("extenderToggled", {Text = "Toggle"})
local extenderSize = mainGroupbox:AddSlider("extenderSize", {Text = "Size", Min = 2, Max = 100, Default = 10, Rounding = 0})
local extenderTransparency = mainGroupbox:AddSlider("extenderTransparency", {Text = "Transparency", Min = 0, Max = 1, Default = 0.5, Rounding = 2})
-- for some reason the save manager doesn't save inputs, idk how to fix it
local customPartNameInput = mainGroupbox:AddInput("customPartList", {Text = "Custom Part Name", Default = "HeadHB"})
local extenderPartList = mainGroupbox:AddDropdown("extenderPartList", {Text = "Body Parts", AllowNull = true, Multi = true, Values = {"Custom Part", "Head", "HumanoidRootPart", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg"}, Default = "Head"})
local extenderUpdateRate = miscGroupbox:AddSlider("extenderUpdateRate", {Text = "Update Rate", Min = 0, Max = 1000, Default = 0, Rounding = 0, Suffix = "ms"})
local extenderSitCheck = ignoresGroupbox:AddToggle("extenderSitCheck", {Text = "Ignore Sitting Players"})
local ignoreSelectedPlayersToggled = ignoresGroupbox:AddToggle("ignoreSelectedPlayersToggled", {Text = "Ignore Selected Players"})
local ignorePlayerList = ignoresGroupbox:AddDropdown("ignorePlayerList", {Text = "Players", AllowNull = true, Multi = true, Values = playerNames})
--local ignoreSelectedNpcsToggled = ignoresGroupbox:AddToggle("ignoreSelectedNpcsToggled", {Text = "Ignore Selected Npcs"})
--local ignoreNpcList = ignoresGroupbox:AddDropdown("ignoreNpcList", {Text = "Npcs", AllowNull = true, Multi = true, Values = npcNames})
local ignoreSelfTeamToggled = ignoresGroupbox:AddToggle("ignoreSelfTeamToggled", {Text = "Ignore Own Team"})
local ignoreSelectedTeamsToggled = ignoresGroupbox:AddToggle("ignoreSelectedTeamsToggled", {Text = "Ignore Selected Teams"})
local ignoreTeamList = ignoresGroupbox:AddDropdown("ignoreTeamList", {Text = "Teams", AllowNull = true, Multi = true, Values = teamNames})
-- thanks roblox dev forum
local function CheckTableEquality(t1,t2)
for i,v in next, t1 do if t2[i]~=v then return false end end
for i,v in next, t2 do if t1[i]~=v then return false end end
return true
end
-- updates the player list
task.spawn(function()
while true do task.wait() -- if you cry about while true do loops then kys
local temp = {}
for i,v in ipairs(game.Players:GetPlayers()) do
if v ~= lPlayer then
temp[i] = v.Name
end
end
if not CheckTableEquality(playerNames, temp) then
playerNames = temp
ignorePlayerList.Values = temp
ignorePlayerList:SetValues()
ignorePlayerList:Display()
end
end
end)
-- updates the team list
task.spawn(function()
while true do task.wait()
local temp = {}
for i,v in pairs(game.Teams:GetTeams()) do
temp[i] = v.Name
end
if not CheckTableEquality(teamNames, temp) then
teamNames = temp
ignoreTeamList.Values = temp
ignoreTeamList:SetValues()
ignoreTeamList:Display()
end
end
end)
--task.spawn(function()
-- while true do task.wait()
-- local temp = {}
-- for i,v in ipairs(npcs) do
-- temp[i] = v.Name
-- end
-- if not CheckTableEquality(npcNames, temp) then
-- ignoreNpcList.Values = temp
-- ignoreNpcList:SetValues()
-- ignoreNpcList:Display()
-- end
-- end
--end)
SaveManager:BuildConfigSection(mainTab)
SaveManager:LoadAutoloadConfig()
-- Returns a table of every possible bodypart in a character, or nil if the character does not exist.
local function getBodyParts(character)
local humanoid = character:WaitForChild("Humanoid")
local parts = {
Head = character:WaitForChild("Head"),
HumanoidRootPart = character:WaitForChild("HumanoidRootPart"),
Humanoid = character:WaitForChild("Humanoid")
}
if humanoid.RigType == Enum.HumanoidRigType.R6 then
parts.Torso = {Torso = character:WaitForChild("Torso")}
parts["Left Arm"] = {LeftArm = character:WaitForChild("Left Arm")}
parts["Right Arm"] = {RightArm = character:WaitForChild("Right Arm")}
parts["Left Leg"] = {LeftLeg = character:WaitForChild("Left Leg")}
parts["Right Leg"] = {RightLeg = character:WaitForChild("Right Leg")}
elseif humanoid.RigType == Enum.HumanoidRigType.R15 then
parts.Torso = {
UpperTorso = character:WaitForChild("UpperTorso"),
LowerTorso = character:WaitForChild("LowerTorso")
}
parts["Left Arm"] = {
LeftHand = character:WaitForChild("LeftHand"),
LeftLowerArm = character:WaitForChild("LeftLowerArm"),
LeftUpperArm = character:WaitForChild("LeftUpperArm")
}
parts["Right Arm"] = {
RightHand = character:WaitForChild("RightHand"),
RightLowerArm = character:WaitForChild("RightLowerArm"),
RightUpperArm = character:WaitForChild("RightUpperArm")
}
parts["Left Leg"] = {
LeftFoot = character:WaitForChild("LeftFoot"),
LeftLowerLeg = character:WaitForChild("LeftLowerLeg"),
LeftUpperLeg = character:WaitForChild("LeftUpperLeg")
}
parts["Right Leg"] = {
RightFoot = character:WaitForChild("RightFoot"),
RightLowerLeg = character:WaitForChild("RightLowerLeg"),
RightUpperLeg = character:WaitForChild("RightUpperLeg")
}
end
return parts
end
-- Main function that allows the character passed to be expanded at will
local function extendCharacter(character)
local player = game.Players:GetPlayerFromCharacter(character)
local timer = 0
local originals = {}
local collisions = {}
local CharacterAdded = {}
local bodyParts = getBodyParts(character)
--Sets up original sizes, creates collision constraints, and creates hooks to bypass localscript anticheats
local function setup(i, v)
if not originals[i] then
originals[i] = {}
originals[i].Size = v.Size
originals[i].Transparency = v.Transparency
originals[i].CanCollide = v.CanCollide
originals[i].Massless = v.Massless
local sizeHook = v:AddGetHook("Size", originals[i].Size)
local transparencyHook = v:AddGetHook("Transparency", originals[i].Transparency)
local canCollideHook = v:AddGetHook("CanCollide", originals[i].CanCollide)
local masslessHook = v:AddGetHook("Massless", originals[i].Massless)
v:AddSetHook("Size", function(self, value)
originals[i].Size = value
sizeHook:Modify("Size", value)
return value
end)
v:AddSetHook("Transparency", function(self, value)
originals[i].Transparency = value
transparencyHook:Modify("Transparency", value)
return value
end)
v:AddSetHook("CanCollide", function(self, value)
originals[i].CanCollide = value
canCollideHook:Modify("CanCollide", value)
return value
end)
v:AddSetHook("Massless", function(self, value)
originals[i].Massless = value
masslessHook:Modify("Massless", value)
return value
end)
end
if not collisions[i] then
collisions[i] = {}
-- thanks to GameGuy#5286 for telling me collision constraints exist
for o,b in pairs(getBodyParts(lPlayer.Character)) do
if o ~= "Humanoid" and type(b) ~= "table" then
collisions[i][o] = Instance.new("NoCollisionConstraint", v)
collisions[i][o].Enabled = false
collisions[i][o].Part0 = v
collisions[i][o].Part1 = b
CharacterAdded[i] = lPlayer.CharacterAdded:Connect(function(char)
local temp = char:WaitForChild(o)
collisions[i][o].Part1 = temp
end)
elseif type(b) == "table" then
for g,z in pairs(b) do
if z:IsA("BasePart") then
collisions[i][g] = Instance.new("NoCollisionConstraint", v)
collisions[i][g].Enabled = false
collisions[i][g].Part0 = v
collisions[i][g].Part1 = z
CharacterAdded[i] = lPlayer.CharacterAdded:Connect(function(char)
local temp = char:WaitForChild(g)
if temp:IsA("BasePart") then
collisions[i][g].Part1 = temp
end
end)
end
end
end
end
end
end
do
local customPart = character:FindFirstChild(customPartNameInput.Value)
if customPart and customPart:IsA("BasePart") then
if not originals[customPart.Name] then
setup(customPart.Name, customPart)
end
end
for i,v in pairs(bodyParts) do
if i ~= "Humanoid" and type(v) ~= "table" then
if not originals[i] then
setup(i,v)
end
elseif type(v) == "table" then
for o,b in pairs(v) do
if not originals[o] then
setup(o,b)
end
end
end
end
end
-- resets the properties of the selected part.
-- if "all" is passed, will reset every part
local function reset(part)
if part == "custompart" or part == "all" then
local customPart = character:FindFirstChild(customPartNameInput.Value)
if customPart and customPart:IsA("BasePart") then
customPart.Size = originals[customPart.Name].Size
customPart.Transparency = originals[customPart.Name].Transparency
customPart.CanCollide = originals[customPart.Name].CanCollide
customPart.Massless = originals[customPart.Name].Massless
end
end
for i,v in pairs(bodyParts) do
if string.lower(part) == string.lower(i) or part == "all" then
if i ~= "Humanoid" and type(v) ~= "table" then
v.Size = originals[i].Size
v.Transparency = originals[i].Transparency
v.CanCollide = originals[i].CanCollide
v.Massless = originals[i].Massless
elseif type(v) == "table" then
for o,b in pairs(v) do
b.Size = originals[o].Size
b.Transparency = originals[o].Transparency
b.Massless = originals[o].Massless
for _,z in pairs(collisions[o]) do
if z.Enabled == true and z.Part0 == b then
z.Enabled = false
end
end
end
end
end
end
end
local function getChecks()
if bodyParts.Humanoid:GetState() == Enum.HumanoidStateType.Dead then
return 2
end
if extenderSitCheck.Value then
if bodyParts.Humanoid.Sit then
return 1
end
end
if ignoreSelfTeamToggled.Value then
if game.PlaceId == 2039118386 then -- Neighborhood War
local selfTeam
local playerTeam
pcall(function()
selfTeam = lPlayer.Character.HumanoidRootPart.BrickColor
playerTeam = bodyParts.HumanoidRootPart.BrickColor
end)
if selfTeam == playerTeam then
return 1
end
else
if lPlayer.Team == player.Team then
return 1
end
end
end
if ignoreSelectedTeamsToggled.Value then
local teamList = ignoreTeamList:GetActiveValues()
if table.find(teamList, tostring(player.Team)) then
return 1
end
end
if ignoreSelectedPlayersToggled.Value then
local playerList = ignorePlayerList:GetActiveValues()
if table.find(playerList, tostring(player.Name)) then
return 1
end
end
return 0
end
-- here's the actual expander code
local Heartbeat
Heartbeat = game:GetService("RunService").Heartbeat:Connect(function(deltaTime)
timer += deltaTime
if timer >= (extenderUpdateRate.Value / 100) then -- divided by 100 because milliseconds
timer = 0
local bodyPartList = extenderPartList:GetActiveValues()
local checks = getChecks()
if checks == 2 then
reset("all")
for _,v in pairs(CharacterAdded) do
v:Disconnect()
end
Heartbeat:Disconnect()
return
elseif checks == 1 then
reset("all")
return
end
if extenderToggled.Value then
if table.find(bodyPartList, "Custom Part") then
local customPart = character:FindFirstChild(customPartNameInput.Value)
if customPart then
customPart.Size = Vector3.new(extenderSize.Value, extenderSize.Value, extenderSize.Value)
customPart.Transparency = extenderTransparency.Value
customPart.CanCollide = false
customPart.Massless = true
end
else
reset("custompart")
end
for i,v in pairs(bodyParts) do
if table.find(bodyPartList, i) then
if type(v) ~= "table" then
if i ~= "HumanoidRootPart" then
v.Massless = true
end
v.Size = Vector3.new(extenderSize.Value, extenderSize.Value, extenderSize.Value)
v.Transparency = extenderTransparency.Value
v.CanCollide = false
else
for o,b in pairs(v) do
b.Massless = true
b.Size = Vector3.new(extenderSize.Value, extenderSize.Value, extenderSize.Value)
b.Transparency = extenderTransparency.Value
for _,z in pairs(collisions[o]) do
if z.Enabled == false and z.Part0 == b then
z.Enabled = true
end
end
end
end
else
reset(i)
end
end
else
reset("all")
end
end
end)
local PlayerRemoving
PlayerRemoving = game.Players.PlayerRemoving:Connect(function(v)
if v == player then
Heartbeat:Disconnect()
PlayerRemoving:Disconnect()
end
end)
end
for _,player in ipairs(game.Players:GetPlayers()) do
if player ~= lPlayer then
task.spawn(function()
if player.Character then
-- why use coroutine.wrap after I've been abusing task.spawn? fuck you that's why
coroutine.wrap(extendCharacter)(player.Character)
end
player.CharacterAdded:Connect(function(v)
coroutine.wrap(extendCharacter)(v)
end)
end)
end
end
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(v)
coroutine.wrap(extendCharacter)(v)
end)
end)
-- now, where are my schizo meds?



dont work in Bad Business
@exshyy maybe because in the lua code there is a code that makes the script only functional for critical strike
it works in arsenal and any rolve game and csgo