Why do Roblox hitboxes suck?
Ойындар
I decided to write and produce this 6-minute video to explain and clear misinformation about Roblox hitboxes being bad, took me 2 days to put together of straight work.
Links:
Join The Cursors Roblox group:
www.roblox.com/groups/7103305...
Discord server:
/ discord
#roblox #robloxdev #hitbox #criminality
Пікірлер: 1 300
noob, congrattation in 200k views
For the amount of time and years i've played roblox, this has been something i definitely picked up on. This applies to A LOT of interactions like racing and fighting games
@CopperCogStudio
11 ай бұрын
In racing games it is the worst because you will always think you are ahead of them, even though you are not. Client prediction is used to mitigate this, but so far its not a thing in roblox.
@nateypateyu
11 ай бұрын
@@CopperCogStudio especially in games like Car Crushers, latency is really bad
Bruh my ping be 📈📈📈📈
@moab6217
11 ай бұрын
Bro i swear mines like typically 10k at most like 50k
@toustikcz640
11 ай бұрын
@@moab6217what 💀
@cheesesoldier7136
11 ай бұрын
@@moab6217i witnesssed 120k once 💀 i still cant understand how some people call 200 ping almost unplayable
@okey664
11 ай бұрын
@@cheesesoldier7136because it kinda is But yeah 120k ping is crazy (i got 200k once)
@RedNumber19
11 ай бұрын
I love my 1 month, 23 days, 4 hours and 55 minutes ping (that’s not a joke it used to happen)
This is why developers recommended you to play in YOUR region server because of less ping latency
@CopperCogStudio
11 ай бұрын
yeah pretty much
@pires5727
10 ай бұрын
if they atleast added a brazil or south america server... it really sucks to pvp with 200+ ms
@arthurbarroso4152
10 ай бұрын
@@pires5727 verdade parceiro, 400 ping ms é muito ruim caba
@amiroslinos7298
10 ай бұрын
I don't have
@nexus8824
10 ай бұрын
but unless the devs implement a server browser, it's pretty much useless ngl.
I keep seeing a bunch of people who didn't even watch the video and comment: "Why doesn't my opponent get hit from far away?", They do you just can't see it because you are hitting them from your perspective, while in their perspective your position is delayed, just like yours is for them. "Ok but how do we fix the hitbox?", You can't really fix latency, Latency as mentioned is a physical limitation between the time it takes for packets to arrive between machines over the internet, there are some techniques out there done to mitigate latency. Client Prediction: Client prediction will basically simulate other player's physics on your client so it can predict where they are actually at on the server's world state and that way make it seem like all positions are instant. Also to clarify lag/latency is the time it takes for a message to be sent from your pc over to the server on the internet. Lag compensation: Lag compensation allows to cast hit registration from the server's world state, and rewind said hitboxes according to the latency of a player so it can predict what the player was seeing on their screen. Unfortunately, the methods above cannot be done with Roblox's default tools and require devs to learn complex frameworks such as chickynoid, so you can't really do anything for now.
@air_opl
10 ай бұрын
this is surely not possible but, what if somehow a server or client could be improved in order to have packets deliver faster no matter your ping?
@CopperCogStudio
10 ай бұрын
@@air_opl . . .
@smileyfacedev
10 ай бұрын
@@air_opl What do you think ping is?
@Load_Lua
10 ай бұрын
a better method of client prediction is taking the velocity of the character and comparing it to the client's world state to predict what the client sees. what im trying to say is you can have the client advise the server's prediction, and with a few checks, determine if what the client sent was legitimate or not.
@CopperCogStudio
10 ай бұрын
@@Load_Lua This is not how lag compensation works, I advise you to read an article on what it is.
Hey! Dev here, I've recently made something similar. A good way to approach is by either neglecting client-side registration or the other method which I'll explain So by neglecting client-side registration, while the hitbox may suck, you can increase the sizes of the hitbox to properly compensate for the latency If you dont want to stop using client regs, you can instead use sanity checks to check if the distance between the attacker and the victim is sane and well fair. While me personally i use the second method to not risk exploitation, you can implement your own!
@CopperCogStudio
Жыл бұрын
I just use lag compensation to rewind the hitboxes.
Incredibly well made video, bad part is that i got no arguments now whenever i die
@CopperCogStudio
10 ай бұрын
lmao
@alguienxder3xd539
10 ай бұрын
dont worry, just say lag until this guy does "why roblox performace sucks"
@manexie
10 ай бұрын
@@alguienxder3xd539 ty man
Me: (Punches the air) A random player 10377483872738372 studs away: (OOOOOOOOF)
I kinda figured out about latency on Roblox simply by playing it, but I remember once having two devices in the same room playing Roblox, and it was crazy to me how long it took for a player jumping on one device to show on another It really put things into perspective
@ToreAlt
10 ай бұрын
its not about how close you are with each device, but how good of a connection you have with the server. even if both are in the same room, if the server is far away chances are it will take its time to send it back to the other device
@ask343
10 ай бұрын
@@ToreAlt ye ik
Thats like saying "the person has bad internet so your position on screen is delayed" with an extra step
No matter your ping, Whenever you step on a small object, Your character shoots up to the pearly gates
Tycoon's collect buttons are never gona get fixed 💀💀😭
@CopperCogStudio
10 ай бұрын
fax
The problem is that roblox is just filled with children who don't understand this bs. So when you say "I have 200 ping dude, I can't hit you", the child on the other side says "get good kid, skill issue"
@Brandon-ct8vo
10 ай бұрын
Just... don't take it personally, then? Most people don't really care about any complaints their opponent throws out anyways
@eduespro
10 ай бұрын
@@Brandon-ct8voIt is hard to not care They write like brats And brats are Annoying
@Velainary
10 ай бұрын
@@Brandon-ct8vo yeah, I guess you are right. I understand it's not that much of a big deal, just a small but frustrating knowing that it isn't your fault but nobody believes you.
Praying for the video that explains how to fix latency when it comes to hitboxes, i'm planning a game out rn and i would really like to have a game thats fair for both sides
@Idkwhattoputhere...306
10 ай бұрын
I Believe its seperate from how latency works with R6 and 15 models where the amount of lagg will decide how delayed your actions are to other peoples prespectives. But with a sword, it would lock its hitbox to the character thats being seen by other people which is why things like reaching happens and Why baiting is an actual viable strat in SF
@Paradoxuss
10 ай бұрын
There is no way to fix latency, what you could do is compensate for it Run the hitbox on either the client with server sided sanity checks or on the server while compensating for the player's ping by adjusting the hitbox size
@berendberend702
10 ай бұрын
I don't think it is actually possible to make it 100% fair/accurate. If you process collisions on the server, there will be a difference between the clients perspective and the server. However, if you do it on the client, it can be abused by exploiters and there will be an even bigger difference for the other players.
@Paradoxuss
10 ай бұрын
One thing that should be mentioned tho, try to optimize your scripts as much as possible as to not make em resource intensive, that should help lowering the server's ping
Well made video! Thanks for explaining this, and also for completely destroying the one and only argument I have whenever someone kills me "unfairly".
Me who already knows why but still watches it: hmm interesting.
@TheKris.
10 ай бұрын
same
why this video getting recommended 4 months later 😭😭
@pd_heart
11 ай бұрын
fr
Goated video + informative + 5/5 + helpful + interesting + well made + straight to the point + well edited + good presentation
Conclusion: most pvp games are unplayable for south americans
@llmugetsull
19 күн бұрын
yup, hence why im quitting pvp roblox games
@Tgaf.
19 күн бұрын
@@llmugetsull same
This is ultimately the reason why I stopped playing MM2
Alternative title: Robloxian discovers that time is relative and the theory of relativity.
@CopperCogStudio
11 ай бұрын
???
@professorg2590
11 ай бұрын
@@CopperCogStudio Time is relative
@professorg2590
11 ай бұрын
@@CopperCogStudio en.wikipedia.org/wiki/Relativity_of_simultaneity
@professorg2590
11 ай бұрын
@@CopperCogStudio Google relativity of simultaneity.
@papelhat4265
11 ай бұрын
brother thinks hes albert einstein 😭
THANK YOU. So many people complain about this without understanding how these things work. It feels so good to hear someone to talk about this. You earned a sub!
i like at the end you went "there are better ways" and didnt explain or elaborate further
@aghitsaplane4262
10 ай бұрын
>"there is a better ways" >Refuses to elaborate >Ends the video
I wish more people would understand this
@CopperCogStudio
11 ай бұрын
same i hate npcs who just say "baaadhitbox"
most hitboxes lag behind meaning if your moving forward, its dogshit, but if your moving backward, you have immense reach
@destroyeralex6627
10 ай бұрын
Tes
@BwugInTheRain_Fan
10 ай бұрын
True
@Iconsumebodilyfluids
10 ай бұрын
That is still because of the latency issue.
Finally someone said it, Its frustrating to see someone blame the hitboxes or even the character model boundaries
4:58 This is so annoying to deal with if you run away and spam your mele they will not get hit but you will. If they run a way you have to be in front of them and predict where they are going also they can hit you in this state.
@CopperCogStudio
Жыл бұрын
They cant hit you either, it looks likey they can but they suffer from the same issues you do, this is why you see so many stupid videos nowdays such as "roblox hitboxes be like"
For those saying that this is a Roblox only problem, there are various instances that this can apply to different games One popular example is “peeker’s advantage”, which can be seen on Valorant, CS:GO, Rainbow 6, Fortnite, and any game, really, including Roblox. So, lets say we’re playing a game where guns immediately kill you, and we have two people: Camper and Peeker Camper is just camping a random part of the map, while Peeker is about to peek out and shoot Camper. Peeker has a higher chance of winning, since he would see Camper before Camper could see Peeker, giving Camper no time to react. This is because it takes a while for Peeker’s character to replicate to Camper’s PoV It’s kind of hard to explain, but I’m just saying that this doesn’t just apply to Roblox’s engine. The reason why you might not feel it is because games usually pair you to a server located close to you, while Roblox sometimes just puts you in a completely random server, throwing off your ping. Thats why when I join a game like Arsenal, if I don’t get put in a server I am near, I would go to the server browser and find a server closest to me to ensure the best possible ping. If you really want to feel this issue it in different games, just change your server to somewhere super far away, and you’ll feel it.
@CopperCogStudio
10 ай бұрын
This guy gets it!
Thanks for covering this topic, man. I was in need of this kind of system to make the most accurate and fair hitboxes for my game.
@CopperCogStudio
11 ай бұрын
np
Solution: Go outside and hit people with real weapons, there is no Latency in real life.
@CopperCogStudio
10 ай бұрын
FAX
@salad3966
10 ай бұрын
Technically there is, but it's VERY small
@voidomega4211
10 ай бұрын
Speed of light: Ima about to end this man’s whole career
@amalgam4595
10 ай бұрын
are@@salad3966 you mentioning reaction time?
@notcrispeeweevile1388
10 ай бұрын
@@amalgam4595 One could argue that the speed of light is a form of latency
Combat Warriors needs to take notes
@CompanyLethalizer
10 ай бұрын
and mortem metallum
@esmeralda1914
10 ай бұрын
and blood & iron
@yuwelcome
10 ай бұрын
Its not their fault, it's roblox, they're literally using the best methods ffs people are dumb.
Adding client sided hitboxes is like asking for your game to get hacked
@CopperCogStudio
11 ай бұрын
Well yes, but unfortunately roblox doesnt offers a different way to solve the problem atm, They did said they are working on server authoritative physics which hopefully brings an end to client sided hitboxes and movement practices.
@wedoalittletrolling723
11 ай бұрын
Imagine if Roblox servers we're hosted by developers of their own games, and Luau wasn't all sandboxed. Yeah, scary to think an exploiter could legit do more damage to you than simply messing around a roblox game, since they could dox your server, RCE vuln will be even more dangerous since they could execute system calls. In-fact that's how hosting servers outside of roblox works, and if you're not careful and you trust the client too much (and let's say you intend on hosting the servers yourself) and your server-side is not very secure, you basically risk getting your actual computer hacked. It's best try getting used to not trusting the client and experimenting with server-side stuff on Roblox where they provide free servers and a sandboxed Lua.
i always knew this was a thing, but i just didn't know how to explain it. and in this video it explains it but also showed me some areas i didn't even know about in this topic, being some ways that developers make hitboxes.
Kinda sad that someone had to tell those shitters why it works like that :3
@CopperCogStudio
10 ай бұрын
Ong
One thing I like to do in some pvp roblox games that is more melee based? Spin. Not even just click because touching the blade by any means = Damage.
Good video, I wasn’t expecting you to make a in-depth video about this
@CopperCogStudio
Жыл бұрын
Well I did, i figured out my channel already has grown roots so, not uploading would be a waste of a future carrier.
In my own scripting ventures, I find it extremely difficult to program a faster fighting game (such as super smash brothers) due to latency. I utilize raycasting for nearly every single hitbox in my game, which feels great when you're the one attacking, but frustrating when getting hit. There is no easy solution, but as you mention at 6:09, there could be better solutions rather then solely relying on client side hitbox detection. I have not found anything smooth enough to solve this problem, so I'm very interested in seeing what this supposed "better way" is.
I appreciate how comprehendible your explanation was! Now I know why I stink at sword fighting :/
i personally have a generally good amount of experience making game combat mechanics, and i must say that you explained this VERY well. good job
THANK YOU SO MUCH, You explained everything very well!✨
I usually use the touched event method but they dont work out as i intended, such as touched firing way too man times upon touched (i added debounce but it still didnt fix it). But now with modules such as zone plus, it made it more easier for me to detect parts. Anyways great video!
ngl learned a good chunk of information from this gonna abuse my local rome genre now
Never knew the server was also behind that is interesting.
Latency is such a huge battle, I would very much be interested in that discussion!
Extremely informative video bro, i truly appreciate it
I always told people that and they never believe me. That's why I can't play fighting games on roblox. Latency is in EVERY multiplayer games, it depends of the server and your internet. As you guessed roblox is the worst server ever, basicly the latency is so big on roblox it will put you atleast 1s in the past. So when you're moving, see yourself 1s in the past or so now you will understand how someone can hit you so far. The best example is playing a JOJO game or a game with a time stop ability, you will jump to avoid being on the ground, you see yourself in the air and think you're safe. Then the opponent start punching the ground where you jumped from and suddenly when the TS end, you get hit by all of his attacks, because for the server you were still on the ground. Conclusion: It'S ANNOYING ASF AND UNPLAYABLE
@basicallychris8751
10 ай бұрын
skill issue 🤷
@spidel
10 ай бұрын
@@basicallychris8751nice rage bait
@k0lg040
10 ай бұрын
Don't you mean you see yourself in the future but the other's see you in the past
@Thy_Guardian
10 ай бұрын
@@k0lg040 Ye basicly. Well you shouldn't be in the future, it's the server that has delay and put your imput in the past
@MachineHandler
10 ай бұрын
I honestly wish that rollback was added into Roblox. Because apparently that's not even possible with how Roblox's servers work.
My favorite part of the video is reading the comments and seeing you getting frustrated at people who did not understand the video at all.
@cent5399
10 ай бұрын
fr
@CopperCogStudio
10 ай бұрын
Fax
@notcrispeeweevile1388
10 ай бұрын
My favorite part was when I read the comments, and found the same thing. Then I noticed he also doesn't understand some of the comments.
Very well explained, thanks for elaborating on so many points.
This is amazing, I even learned a bit of scripting knowledge from it, please make more
Honestly this was an eye opener since I mainly used raycasting or touched event. Never really realized spatial queries exist tbh
@CopperCogStudio
4 ай бұрын
wake up because now shapecasting exists too.
@DarkestGames86
4 ай бұрын
Touched kinda sucks ass, region3s or spatial queries are better
@kiracorn-person
3 ай бұрын
@@DarkestGames86 just use part bounds in box for touched event
what the hell i was just complaining about this stuff im being watchex
@CopperCogStudio
10 ай бұрын
The fog is comming, The fog is comming, The fog is comming.
@ObstructionXD
10 ай бұрын
@@CopperCogStudioI agree
your videos are actually so helpful thank you
Very informative, I’ve been looking to script a combat system for a while now and info like this is helpful
@CopperCogStudio
Жыл бұрын
Wait till you see my video today and i show you all a 100% exploit proof method.
It would be awesome if Roblox were able to render the player's real-time ping information and provide it for game scripts. It would let the developers create their own movement predictions to reduce ghost hits, etc.
@CopperCogStudio
10 ай бұрын
I recommend you checking out chickynoid, it already does a lot of what you mentioned.
i figured that player positions had a delay on others' screens
you're so underrated, this is a really good video, nice explanation and visuals
finally someone explained it good, im sick of people blaming the developers for making big hitboxes when they know nothing about how hitboxes work
Excellent video, shame you dont have more subs and views
for a first video, this was great!
I am not sure why this video is blowing up now, but I do find it very informative and already saved it for latter. Thanks man.
I greatly appreciate the fact you went out of your way to explain the different type of hitboxes and functions in roblox studio too with visual examples as a lot of your information would've been hard to understand without a visual example
@CopperCogStudio
11 ай бұрын
the only issue I see is that I was not really clear explaining the latency issues on this video, so I might release a part 2 with server sided hitboxes with lag compensation
@gamecubebro
11 ай бұрын
@@CopperCogStudio Yeah that's fair, I already was capable of understanding myself cause I learnt a lot of Computer Science myself but also. At 6:08 you said there's a better way than client hitboxes but never elaborated, can you do that in the Part 2?
@CopperCogStudio
11 ай бұрын
@@gamecubebro yes, the reason why i didnt elaborated is because it is a topic that involves server authoritative movement and lag compensation which is stuff that is really complex and also unheard of on roblox. I have a video on my game where i showcase these things being applied: kzread.info/dash/bejne/fZqko7CPlLOam5s.html
@gamecubebro
11 ай бұрын
@@CopperCogStudio Alright thanks man!
Thanks for the explanation.
What I've been telling the kids who keep saying I'm exploiting since I started playing roblox:
amazing explanation! now i can refer this video to people rather than explain it myself
I always knew the reason was lag, but the way this video is formatted, along with the information on how hitboxes are coded was very good However, the part from 4:58 to 6:00 required me to rewatch it a couple of times to understand. I reccomend adding subtitles and/or using visual elements to highlight and emphasize what you are talking about. Overall, I like this video and I wish to see more like this in the future. Maybe you could explain how exploiting works, I'd like to see a video on that.
i have fun sometimes with the latency when driving cars. i would drive and swerve in front of others' cars ahead of them while they're driving, and they would get hit hard by me, while i appear untouched/unaffected
very well put together explanation on how latency affects gameplay I think a lot of players would get a lot from watching this video…
i already knew this but this was still a really fun video to watch, underrated.
Yoooo this explaining was so good I thought I was learning how to code lol
although as a developer as 5 years, this really annoys me about touched function 1. they sometimes doesn't work due lightspeed of velocity 2. parts touched and bounce back but the touched function doesn't work already i wish they fixed it already
@dahorrorazguy7905
11 ай бұрын
Just use a different hitboxing method, touched events should only be used for simple things
@ps_lol
11 ай бұрын
@@dahorrorazguy7905 yea i know
in the strongest battlegrounds, side dashing wont move your hitbox effectively, it just has 3 states, instead of being stuck to your body
@Lopal12
10 ай бұрын
me who uses arrow keys and cant do that
@JK-9107
10 ай бұрын
@@Lopal12why you using arrow keys
This is definitely quite informative on how hitboxes work, both client and server, and you've went through thouroughly to explain everything that you can do to make hitboxes. Maybe next try to mention further about other obscure methods (like HitboxServiceV4, that was mentioned in your criminality melee example?) You've earned a sub from me.
@CopperCogStudio
11 ай бұрын
That is just raycasting, it just cast raycast every frame. The obscure methods require other methods since they are not vanilla roblox methods
@JakeDRavioli
11 ай бұрын
@@CopperCogStudio ah, fair enough. still a good video though!
latency is an absolute pain to deal with especially for games like tag and racing games
Everytime you say "lag" this what we be referring to
this is why i usually play much more aggressive when im using melee weaponry
Good job explaining all those ping intricacies
this really helped me comprehend why do my hitboxes suck in most roblox games, though its sad i cant really do much about my ping
Massive respect for using Fluidity music ♥️♥️
Finally someone else who understands why MM2 knives suck
Interesting, and good explanation.
we need more people like this putting survival of the fittest gameplay in the backround
@CopperCogStudio
10 ай бұрын
its Untitled Melee Game
One good idea is to check gun raycasts on the client when the ping is under a certain amount. If the ping is under 100ms, the raycast is on the client, if the ping is over that, it checks on the server.
@jazzy_burrito
27 күн бұрын
I like this. I think this is a solution that I should experiment with.
Update: theres a new method for hitboxes with the release of shapecasting, go check it out for better methods than raycasting! devforum.roblox.com/c/updates/announcements/36 Edit: Thanks to everyone who is coming due to this video blowing up, I knew if I stayed patient, it would eventually blow up.
@FidhGG
Жыл бұрын
yes
@MajesticUC
11 ай бұрын
this is my favourite roblox feature
Fantastic video very entertaining and strangely soothing
as a roblox scripter great job on the vid!! everything was explained in a fair and concise manner and the video was super well structured, felt this video reach my soul as making a pvp system when latency problems like these exist make me explode from inside out (as well as the fact there are multiple dev arguments over whether your game should use raycasting/magnitude/spatial queries for your hitbox system)
in roblox i ve seen so many people saying me hacker and saying others hackers because they think they used a exploit for make the range of their weapon bigger but they don't fully understand the hitbox and the thing this video explains
@CopperCogStudio
11 ай бұрын
I mean yes those exploits do exist due to the nature of client sided hitbox, but 70% of the time its just latency.
People complaining about their gaming PC getting 130ms of ping: 😠 My poor excuse for a setup running at 90,000 ping and 0.001 fps: 🔥🙂this is fine🔥
@CopperCogStudio
10 ай бұрын
Ping is based arround your internet connection, not hardware speed
@RandomBadAnimations
10 ай бұрын
@@CopperCogStudio yeah my internet ain't anything too special either
@RandomBadAnimations
10 ай бұрын
@@CopperCogStudio if my setup was in a videogame, it would be the crappy starter setup that you have to grind on to get the better setup.
@ruanruan4510
10 ай бұрын
@@CopperCogStudio i mean not really when i swapped pcs my ping reduced by a lot but its of cource also based on internet connection
BROOOO the fluidity tutorial music theme…. You have my ABSOLUTE respect.
@CopperCogStudio
11 ай бұрын
I loved that game when i was a kid
Thanks for explaining!
There’s a script on Roblox which fixes hit boxes for everyone, it just teleports everyone a little bit in front based on their ping and when they move and where, also it doesn’t really fix the issue cause… auk why.
@CopperCogStudio
11 ай бұрын
While that script sounds like a terrible idea, theres a concept in video games called client prediction that is similar to this. Since positions from the players arrive late to the client, The positions where you see the players standing at, is already late. Client prediction will grab these positions on your client and predict where they are probably at from the server's world state, this way you can see a result closer to their real position, and it no longer looks like they are hitting you from farther away because you can somewhat see their true position. Unfortunately, there's no current way to do this on Roblox atm.
1:30 is that why sometimes you just instantly die when touching a sword? because the damage event keeps being triggered several times at once?
@CopperCogStudio
10 ай бұрын
most likely
@tylern6420
10 ай бұрын
@@CopperCogStudio that or it just doesnt debounce
@theguythatcodes
10 ай бұрын
@@tylern6420 but why would that happen
@tylern6420
10 ай бұрын
@@theguythatcodes roblox moment i guess
Even the melee hitboxes, its pretty accurate that you get a chance getting hit or not hitted because distance or far
btw, you can check your ping in performance stats, you can toggle them on in settings, or CTRL+F7
This is make me rage badly In some game people just hit and kill me without touching me
so basically, Black Magic 2 hitboxes explained
@-Trin-Cacau
10 ай бұрын
No way someone remembers this game lol
@sanicboi9187
10 ай бұрын
Finally found someone else who plays lmao
A bad thing though is that even if you use a ethernet cable and have a really good internet you still can have a high ping because of server localization ,what i mean is servers on other continents example: north american servers and european clients are away from each other which gradually increases ping ,also the localization of the client may be a problem if one is for example: form north america ,one from europe and one from asia. The ping will gradually increase when clients are localizated in other continents.
i do not even play pvp and i found this shit so interesting that i watched the whole thing 3 times over to see if i understood right
finally, someone who understands my pain.
amazing video, i always get triggered when someone speaks about hitboxes based off misinformation.
@CopperCogStudio
10 ай бұрын
I keep getting triggered by people also spreading missinformation on the comments.
heres smth to do if your bored and want to witness broken hitbox so go to a game called “obby creator” and after you finish the tutorial place a wedge, hollow cylinder, and scroll down until you see this option called “water” now go forward you can also wallhop a hallow cylinder without 2 objects