Ran into a small issue when using the module; when a tool DmgPoint comes across multiple DmgPoints packed together on a humanoid, it deals damage according to the amount of DmgPoints hit.
I was just wondering if the fix would be to put a debounce in the sword script itself?
Thanks
Can you clarify this part? Do you have PartMode turned on? The module ignores any successive DmgPoint collisions once 1 DmgPoint has confirmed a hit. Are you sure the amount of hits are 100% equal to the amount of DmgPoints? If you call HitStart/HitStop rapidly, this will also reset the collision logic, allowing DmgPoints to start listening for hits again.
A debounce would fix it, but technically shouldn’t be needed since the module does that for you (well, filters the other DmgPoints at least)
Thank you for your reply,
I checked and the sword has partMode set to true (I was using the test.rblx with the dummies). It seems like it’s dealing damage proportionate to the more condensed parts of a character (usually 40+ dmg when across the shoulders and 20+ when slashing a single shoulder)
Yeah if you want the sword to damage once, try setting partmode off or false. PartMode is designed to replicate the normal touched behaviour. What you are seeing is intended functionality as the roblox sword also damages that many times.
Hi there, sorry for the late reply, did not have time to be on the DevForum but I’m back again. This seems to be the normal behaviour of the linkedswords created by Roblox (I merely ported the damage logic to them and did not edit any other functionality).
The 20+ damage is due to the initial 10 damage hitting a part (upon starting a swing), and then another 10 damage once the sword comes back up, similar to how Touched works. Multiply this damage with the amount of parts in the humanoid (and where the sword intercepted) and you got yourself the logic you witnessed.
If you require precise damage (such as only 10 damage through the entire swing), you will need to modify the sword script a little, such as removing :HitStop() and only using HitStop() after the swing is completed.
I may make another sword example that doesn’t use LinkedSwords since I do feel it’s not a good representation of the module.
Teaser for Version 3.31 (coming soon)
This minor update is targeted towards users looking to use this module for mesh deformation. I am currently testing performance and will update once I can confirm my production game runs without issue with this update. This will be exclusive to SetPoints as attachments do not work with mesh deformation bones (as of this post).
The module already damages multiple targets at once. It just cannot hit the same target(s) you hit again until you hitstop. Do you mean hitting the same target again?
Oh, sorry, it was an error with my script.
I had a bunch of AI with the same name “Guard”, and in the script that’s supposed to damage multiple guards, it adds their name to a table and checks if that name is already there.
Is it an animation problem or is it my code problem? I’m pretty sure my code is fine, my best guess was that the attachments’ positions didn’t move together with the part. But I’m unsure, thanks!
I used Moon Animator to animate, SetPoints instead of making attachments for the hitbox
Animations should work right out of the gate with this module. There are pretty much only two things that can cause this:
Your code. I don’t see any code so it’s hard to say much about it but you should be using SetPoints on the actual weapon and not torso for example (so the weapon influences the rotation of the raycasts).
Replication issue. If this module is on the serverside, Server sees the position of your weapon differently from what the client sees. A good way to test if its your code or simply replication issue is to use attachments instead of SetPoints just to see if the issue still persists. If it does, it a roblox replication issue and the only solution at this time is to put the hit detection logic on the client side. If it works, it will be your code that is the root problem.
Again, im just speculating since I haven’t seen your script.
I tested it out and turns out it’s the replication issue. Do I just implement my system on the client side now?
I also used a loop to check the position of my sword. Turns out it actually changes its position on the client, but on the server nothing changes at all. What should I do? Could it be a problem from the new animator? (I used this module a while ago with LoadAnimation and it worked just as fine)
Question, does this work with projectiles? Like grenades or bow arrows. Just checking because I tried this on the server and it isn’t the best hitbox on the server, should I switch to the client and replicate it, or am I doing something wrong with the hitbox attachments.
Unfortunately I’m actually not sure what causes the replication bug (I only seen it but never experienced it. Its a question that engineers or other people can give), only that putting the module client sided and then sending the target it hit to the server (with sanity checks) is the workaround. Unless there are some ways to fix the replication bug, putting it on the client is the only suggestion I can give at this time.
@rutheniumm This module can be used for projectiles however was not intended for that use. While it can be easily setup for projectiles, I would actually recommend FastCast for that since you will have more control over things like gravity (and also uses raycasting as a solution). You are experiencing server sided latency which is not the best experience, so yeah you can go with client sided preferably for maximum responsiveness or try the FastCast module instead which is designed specifically for projectiles.
If you want to keep using this module, there are a few solutions.
Again, putting it through the client side with serversided sanity checks. This ensures the user gets the best experience with a little bit more work on the security.
Increase the width of the hitbox with more attachments on the server to compensate for latency.
Great module and all, but i have partmode enabled and it doest want to return any parts, it keeps returning the Model, am i doing something wrong? or am i having an actual problem with this module, i’d really like to know
so i am trying to use this system to make an advanced sword combat where it includes blocking deflecting,etc. so i just need a way to see whn it collides with another hitbox how do i do tht?
On the Github link in the OP, there is a section in advanced tutorials about PartMode which should allow you to do what you are describing. It listens to part hits (like Touched events does) and you can use this to determine what to do once it hits a certain part / hitbox.
so i was trying to use SetPoint instead of attachment and it stopped detecting hits.
i set points each time they atked using-
local points = {}
for i= tools[tool].Tool.Hitbox.Position.Y - tools[tool].Tool.Hitbox.Size.Y/2, tools[tool].Tool.Hitbox.Position.Y + tools[tool].Tool.Hitbox.Size.Y/2,0.5 do
for x = tools[tool].Tool.Hitbox.Position.X-tools[tool].Tool.Hitbox.Size.X/2,tools[tool].Tool.Hitbox.Position.X + tools[tool].Tool.Hitbox.Size.X/2,0.5 do
points[#points+1] = Vector3.new(x,i,tools[tool].Tool.Hitbox.Position.Z);
end
end
tools[tool].hitbox:SetPoints(tools[tool].Tool.Hitbox,points)
and yes i do hitstart and hitstop it worked before