Hitbox Service, easily create Accurate Hitboxes using minimal scripting!

best of luck to you getting in contact with the owner, he’s banned from the forums lmao

:sweat_smile: Welp I didn’t know! Sorry for the inconvenience!

Hey so I’m trying to make an invisible wall using this and I’m trying to make it where when the player touches the wall it starts a dialogue prompt that says that they can’t leave the area. But it doesn’t seem to work. This is my code:

local RegionStats = Region3.new(script.Parent.Position - script.Parent.Size/2, script.Parent.Position + script.Parent.Size /2) -- gets the part's dimensions

local HitboxModule = require(game.ReplicatedStorage.HitboxModuleMain) -- requires the module.
local Typer = require(game.ReplicatedStorage.DialogeTyper)

local Hitbox = HitboxModule:CreateWithBox(script.Parent,RegionStats.CFrame, RegionStats.Size, OverlapParams.new()) -- makes hitbox

local DB = false

Hitbox:Start()

Hitbox.Touched:Connect(function(Object) -- this object that the hitbox touched.
	if DB == false and Object.Parent:FindFirstChild("Humanoid") then

		DB = true

		Typer:Type("I shouldn't leave the fair this early. I just got here.", 1.5)

		DB = false 

	end
end)

Sorry for the trouble.

try adding prints to see if it fires or not.

It’s not firing. I don’t know why.

try seeing if ur going into the part. Maybe by making it 0.5 transparency

Try create with part instead.

I’m diffidently touching the part. Sorry for the trouble.

Tried this just now. Still isn’t working. So sorry for the trouble.

ok just let us look at the game jam!1 I’ll be back after a bit.

1 Like

for some reason the .touched preset just gives me Hitbox:Start() is needed to use, and when i do it still give me the error

2 Likes

I just want to point out that both @luisgamercooI231fan and @kinglol123468 are permanently suspended from the DevForum, so it looks like Hitbox Service won’t be getting anymore updates. If you want help, you can try contacting the creator outside the DevForum though.

¯\_(ツ)_/¯

1 Like

Does this work on client sided?

i’m pretty sure it does. But you should still do it on the server because exploiters can ruin it easily.

1 Like

I trust your word for it.

I’m not sure if I’m using this in the right way but this code running on the server. Kills my Frames Per Second.

local ServerSideHandler = coroutine.wrap(function()
	
	RunService.Heartbeat:Connect(function()
		
		task.wait(0.01)
		
		for i,v in pairs(AllRunningHitBoxes) do
			
			local HitBoxParams = OverlapParams.new(v.hitboxparams)
			local HitBox = HitBoxService:CreateWithPart(v.hitboxpart, HitBoxParams)
			
			HitBox:Start()
			
			local HitRegisters = HitBox:GetItems()
			
			for i,v in pairs(HitRegisters) do
				
				if v:IsA("BasePart") then
					
					print(v)
					
				end
				
			end
			
		end
	
	end)
	
end)

ServerSideHandler()
1 Like

It’s seem like the module is updated you shoud use this instead

local RegionStats = REVsSqDrN2snr28pSsfDiS4aYpay7dbC5a - script.Parent.Size/2, script.Parent.Position + script.Parent.Size /2) -- gets the part's dimensions
local HitboxModule = require(game.ReplicatedStorage.HitboxModuleMain) -- requires the module.
local Hitbox = HitboxModule:CreateWithBox(script.Parent,RegionStats.CFrame, RegionStats.Size, OverlapParams.new()) -- makes hitbox
Hitbox.Touched:Connect(function(Object) -- this object that the hitbox touched.
print(Object)
end)
3 Likes

the module usually has lag issues when you put a .Hearbeat inside the same thread. Since the module uses .Heartbeat for inner code. I recommend you either A use @thebrickplanetboy’s method OR task.spawn a new thread in your pairs loop.

1 Like

First time using this, I used this hitbox for a projectile script and I have to say, it is very laggy, It’s my first time using this and I would like a solution of some sort. I did this:

local overlapParams = OverlapParams.new()
overlapParams.FilterDescendantsInstances = {char}
overlapParams.FilterType = Enum.RaycastFilterType.Blacklist

local newHitbox = PartHitbox:CreateWithPart(newSpin, overlapParams)
newHitbox:Start()
					
local c
c = newHitbox.Touched:Connect(function(Hit)
	if Hit.Parent:FindFirstChild("Humanoid") then
	    if Hit.Parent.Name ~= char.Name then
			local enemyHumanoid = Hit.Parent.Humanoid
			fxDMG:FireServer(input,Hit,enemyHumanoid,1)
		end
	end
	c:Disconnect()
end)

if I do Hitbox:Stop() then Hitbox.Entered:Connect(function() should stop giving error right?