Raycast Hitbox 4.01: For all your melee needs!

I have parts mode turned on, as I’m dealing with like objects (using this for like axes/pickaxes and detecting hits on blocks)

Then it is working as intended with PartsMode. It is like touched, you will have to supply your own model ignore list and to detect that you are not hitting the same humanoid twice.

3 Likes

Using a debounce and what not won’t work tho :confused:

if CurrentHitting then return end
	
CurrentHitting = hit.Parent

print('Hit')

CurrentHitting = nil

Would still prints multiple times

I just use bounding box collision checks within a whitelist.
It works efficiently and accurately.

1 Like

try adding a wait(n) below the print

1 Like

Will this module be getting updates anytime soon? I used it in a test melee system and it worked very well with no bugs besides 1 small one that randomly occurred. I would love to use this in my next project but it’s not viable if this is discontinued, so please think about giving it a bunch of updates.

1 Like

Not sure what updates you are expecting, other than additions. It is considered feature complete and will probably remain in Beta until the next addition (which does not have an ETA due to my tight schedule). After that, it probably will no longer be updated and any future additions will have to be done by the user.

I will still publish bug fixes but that will be the extent of my support for this module. I am planning on making Spherecast-like hitbox system but that will probably be for another module.

5 Likes

This module makes me curious. I know I should test it to reach my own conclusion about the (probably dumb) questions I am about to ask, but I want to ask you since you know the most about the module.

1). Is this module viable for games that utilize hand to hand combat? The videos in the opening post really only show its effectiveness with slashing motions (with swords), and I’m working with jabbing motions (punches). It probably is viable, but I just wanted to be completely sure before trying to utilize it.

2). I know the opening post states that this module doesn’t support multi-hit, but how fast can the raycasting be used in rapid succession without issue? Some of the combat system I’m trying to developing involves combos of rapid strikes that can get really fast. (10+ strikes a second).

I have seen some games that use fists, It works perfectly fine for them!

Everytime you call the stop and start something can be hit again, If you manage to stop and start it 10 times in a second i think it should work

2 Likes

If you’re making a Jojo game (I’m assuming because the content of your post highly fits that criteria), you would probably be better off using a rudimentary forward cast per punch. You’ll lose a lot of accuracy which this module is designed to give, but that may work better for your case.

This module is definitely something that can be used for hand-based combat because the primary target of this module is melee weapons. Hands are melee weapons. It’s just a little more difficult to accurately implement than swords, which I’m assuming was the outline used to develop this module as a starting point and then developers would be free to figure out how to apply this to other things.

Raycasting itself is inexpensive so long as your casts are short so you can always fire off a couple hundred rays per frame. The same principle should apply with this module because as far as I am aware, the creation and activation sequences should not be doing anything intensive. Always worth a good field test.

5 Likes

Good guess, but no. Dragon Ball game with high speed combos such as High Speed Rush and whatnot. And thanks for the advice. I’ll try using a standard forward cast for regular melee, and then weapons such as Trunks’ sword would definitely use this module. But I will test it out and see what it can do for regular melee. If I had to place the rays, 4 corners and a center might be a good approach. Time to start there.

1 Like

I have a quick question if in initialize for exemple a fireball everytime i use a spell in my game . Is it gonna be laggy ? To initialize a lot of part fast like that ?

1 Like

Depends on the rate of fire. I do recommend not initializing all the time, but it also doesn’t hurt to test it yourself. Maybe a fireball every 0.5s (minimum) it can be okay.

1 Like

Can you detect multiple targets and hit them with a single strike animation? And can it detect parts? I’m making a block system and I want it to be able to actually have the saber hit the other saber to block, not just having a block function and nothing ever passing it.

1 Like
  1. Yes, it can detect multiple targets with one swing.

  2. Each created hitbox has a setting called PartsMode where it will fire the OnHit event per part. I’ve seen some people use this mode for shield blocking and armor breaking. I recommend having this module Client sided if you are enabling this mode.

2 Likes

I’d prefer you took these kind of questions to private messages so the thread does not get derailed. The A.I is using a mixture of behaviour tree logic and estimates the next player’s move based on proximity, speed, etc. There is no one way to create AIs but a good hint I keep telling myself is, be in the shoes of the AIs, and code your AI like it is yourself; determine how you would go about seeing what the enemies will do and think two steps ahead. If the player dodged, your AI should follow up with a counter. If the player attacks, side step, etc.

4 Likes

Your module is awesome dude! But I have a question. For everytime player punches should it create a new hitbox? (If not how I should do?)

1 Like

Nope. You’ll notice that part of the module’s API is to start and stop a hit cycle. Just create one hitbox around the player’s hands. When they start punching, use the start method so that it can start capturing targets and performing hit actions (e.g. damage). When the punch should be ending, use the stop method.

2 Likes

I tried do that but when I dont deinitialize the hitbox stop working for some reason.

1 Like

Perhaps that’s something you’d like to create a support request for or take up privately after a bit of debugging then, the latter case being that you could potentially be wrongly using the module and resulting in errors or are running into limitations.