You can write your topic however you want, but you need to answer these questions:
-
What do you want to achieve? Keep it simple and clear!
I created a badminton game, but the hitboxes are super janky and stuff. I used overlap params but they don’t work when the birdie is going slightly fast. It’s even worst when you try to smash/spike -
What is the issue? Include screenshots / videos if possible!
The part is the hitbox fyi
Badminton 4 2 Roblox Studio 2023 06 20 19 09 02 - YouTube -
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
I’ve looked into client rendering and that stuff, but I have no clue what I’m doing, so if that’s the option it would be great if you would simplify it for me.
After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!
Underhand Serve
game.ReplicatedStorage.RemoteEvents.Serves.Underhand.OnServerEvent:Connect(function(plr)
local ogchar = plr.Character
local oghum = ogchar.Humanoid
local oghrp = ogchar.HumanoidRootPart
local leftarm = ogchar:FindFirstChild("Left Arm")
local birdie = game.ServerStorage.Birdie:Clone()
birdie.Parent = workspace
birdie.CFrame = leftarm.CFrame * CFrame.new(0,-1,0)
birdie:SetNetworkOwner(plr)
local vectorforce = Instance.new("LinearVelocity",birdie)
vectorforce.Name = "GlobalVector"
local attachment = Instance.new("Attachment",birdie)
vectorforce.Attachment0 = attachment
vectorforce.MaxForce = math.huge
vectorforce.LineVelocity = 1000
wait(0.2)
vectorforce.VectorVelocity = ogchar.HumanoidRootPart.CFrame.LookVector * (10 * plr.Power.Value/2) + ogchar.HumanoidRootPart.CFrame.UpVector * (10 * plr.Power.Value)
delay(0.2,function()
vectorforce.Enabled = false
end)
end)
Clear Script
game.ReplicatedStorage.RemoteEvents.Clear.Underhand.OnServerEvent:Connect(function(plr)
local char = plr.Character
local hum = char.Humanoid
local hrp = char.HumanoidRootPart
local part = Instance.new("Part",workspace)
part.Anchored = false
part.CanCollide = false
part.CanTouch = false
part.CanQuery = false
part.Massless = true
part.Transparency = 0.8
part.Parent = workspace
part.CFrame = char.HumanoidRootPart.CFrame
part.Size = Vector3.new(15,7,15)
part.CollisionGroup = "Net"
local weld = Instance.new("WeldConstraint",part)
weld.Part0 = part
weld.Part1 = hrp
local hitlist = {}
for t = 1,1 do
wait(0.1)
local overlapparams = OverlapParams.new()
overlapparams.CollisionGroup = "Net"
local hitcontent = workspace:GetPartsInPart(part, overlapparams)
for i,v in pairs(hitcontent) do
if v.Name == "Birdie" then
if not hitlist[v] then
hitlist[v] = true
--[[for y,x in pairs(v:GetChildren()) do
if x.Name == "VectorDelete" or x.Name == "AttachmentDelete" then
x:Destroy()
end
end]]--
v:SetNetworkOwner(plr)
local vectorforce = v.GlobalVector
vectorforce.Enabled = true
vectorforce.MaxForce = math.huge
vectorforce.LineVelocity = 1000
vectorforce.VectorVelocity = char.HumanoidRootPart.CFrame.LookVector * (10 * plr.Power.Value) + char.HumanoidRootPart.CFrame.UpVector * (10 * plr.Power.Value)
delay(0.2,function()
vectorforce.Enabled = false
end)
end
end
end
end
delay(1.5,function()
part:Destroy()
end)
end)
Spike Script
game.ReplicatedStorage.RemoteEvents.Spike.Spike.OnServerEvent:Connect(function(plr,mousepos)
local char = plr.Character
local hum = char.Humanoid
local hrp = char.HumanoidRootPart
local part = Instance.new("Part",workspace)
local module = require(game.ReplicatedStorage.TweenModule)
local goals = module.goals
local info = module.Info1
local target = game.ReplicatedStorage.Target:Clone()
target.Parent = workspace
target.CFrame = mousepos
target.Orientation = Vector3.new(0,0,90)
game.TweenService:Create(target,info,goals):Play()
part.Anchored = false
part.CanCollide = false
part.CanTouch = false
part.CanQuery = false
part.Massless = true
part.Transparency = 0.5
part.Parent = workspace
part.CFrame = char.HumanoidRootPart.CFrame
part.Size = Vector3.new(15,15,15)
part.CollisionGroup = "Net"
local weld = Instance.new("WeldConstraint",part)
weld.Part0 = part
weld.Part1 = hrp
local hitlist = {}
for t = 1,1 do
wait(0.1)
local overlapparams = OverlapParams.new()
local hitcontent = workspace:GetPartsInPart(part, overlapparams)
for i,v in pairs(hitcontent) do
if v.Name == "Birdie" then
print("Hit Birdie")
if not hitlist[v] then
hitlist[v] = true
--[[ for y,x in pairs(v:GetChildren()) do
if x.Name == "VectorDelete" or x.Name == "AttachmentDelete" then
x:Destroy()
end
end]]--
v:SetNetworkOwner(plr)
v.CFrame = CFrame.lookAt(part.Position,mousepos.Position)
local vectorforce = v.GlobalVector
vectorforce.Enabled = true
vectorforce.MaxForce = math.huge
vectorforce.LineVelocity = 1000
vectorforce.VectorVelocity = v.CFrame.LookVector * (10 * plr.Power.Value)
delay(0.2,function()
vectorforce.Enabled = false
end)
end
end
end
end
delay(1.5,function()
part:Destroy()
target:Destroy()
end)
end)
Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.