Great video! i had to pause several times because while I was brainlessly following other tutorials, you explained what specific lines of code did and everything just clicked, thank you!!
how is this so underrated yet the edit is absolutely amazing and the teaching finally actually teached me the most of raycasting, you deserve a million subs dude
Been working on procedural animation recently and needed to look into raycasting. This is the best tutorial ive seen for any topic in roblox studio by far. Thank you and i hope you post more! I typically never comment but this was amazing
Well I don't speak English very well, so I'm screwed, but finally a young person who knows how to make tutorials! This way of learning, here is a real tutorial and not just a presentation of a script
This is such a good raycasting tutorial!!!!! I could 100% see a new roblox scripter easily learning how raycasting works with this video. Great job using animations to explain how raycasting works!
While the video does great at explaining how raycasts work... the main raycasting of the gun is all happening on the client, which doesn't really work well in a multiplayer environment.
It doesn’t, you’re right. But for games with small servers or small Raycasts / second, it’s totally fine. In my experience, even 20-40 Raycasts per second works fine
I wish I've find you sooner your video is very helpful and made with efforts! I've been struggling trying to learn raycasting for a while and this video help me out a lot you deserve more subscriber 💖
this is good good job and also can you make more vids on advanced stuff? pls like stuff that isnt taught yet bc most ppl say read the docs but i like hearing than reading
This is actually the best explanation, but these are extremely hard to make so i ront expect a full scripting tutorial with these types of explanation and jokes lmfao
You could, but this video was made before I found that property out. Behind the scenes however, roblox most likely uses Raycasting to deduce the floor material
This is one of the best tutorials on ray casting I have came across on RUclips (along with ByteBlox’s)! I am looking forward to more uploads from you :)
Yup. It’s used everywhere, especially in places where we would never even think of. When a gun is firing, we fire a ray where the origin is the gun and the direction is where our mouse points (just like in the video) When you select a troop in a tower defense game (or in my game, battle mania), a Raycast is done from the foot to the ground so the script knows where the ground is and to place the troop effectively
I was talking specifically about the "Normal" of the raycast. I know raycasts are used for basically everything, super useful tool. But before now I had no clue what the normal of a raycast instance was, and during the video I was wondering when anyone would ever use it.@@scripting
@@AntiNuke_ Gotcha. Yeah, the normal is used like in the footsteps example, and perhaps also making a thrown object ricochet off surfaces it hits. For example, a ball is thrown. It hits a wall. Apply a lesser force on that ball with the direction of the normal of the surface. Repeat. If you do this to a laser, it can give a laser bouncing off / ricochet effect
Yep, I just actually used the normal of an object to make a script that makes the camera bounce off an object it hits using a raycast from the head to the camera position detecting what the camera is hitting.@@scripting
Gave up on this tutorial 6 minutes in. The added graphics got in the way of seeing the script. Script was added without it being noted in audio. Couldn’t get past an error when trying to get the mouse position in the Handle script.
Very good tutorial. The only thing i need to know now is how people make it so when you shoot a gun with raycasting. It will leave a trail so it looks like it is a kind of bullet, a lot of games have this :D
so sorry if im bring stupid here--at 5:20, where exactly do you put the localscript? StarterPlayer, ReplicatedStorage, or whatever? I'm unsure where it's supposed to be
6:38 when i ran it i got an error "Players:GetNameFromUserIdAsync() failed: HTTP 429 (Too Many Requests)" anyone know the issue? this is the code local laser = script.Parent local getMouseRemote = game.ReplicatedStorage.getMouseRemote laser.Activated:Connect(function() local player = game.Players:WaitForChild(laser.Parent.Name) local rayorigin = laser.Handle.Rayorigin.Position local mouseposition = getMouseRemote:InvokeClient(player) local raydirection = (mouseposition - rayorigin).Unit * 400 local raycastresult = workspace:Raycast(rayorigin, raydirection) if raycastresult then print(raycastresult.Instance) raycastresult.Instance:Destroy() end end)
@@corbinwalton9996 I know how to do that, but I wanted to use raycast to make projectiles instead and if it would touch the character I would now lower the health.
I have a question, how much did you Need to study(practice) scripting and other game aspecpts before being sure to make a big project like the ‘Battle Mania’. I am asking this because i currently have about 1year scripting knowledge, and i don’t really know to build on blender, make Vfxs and that stuff😅
I’ve been scripting for 8 years. So, by the time I began battle mania, I already knew how to script anything I wanted lol. Keep on scripting though, script whatever you want to script and whatever is interesting, and you’ll get there.
also while making a raycast i noticed it said that the ray cast params had to be included in the raycast result when i tried doing it how u did it, it failed to work but when i added the params above the result and into the result it worked, so uh just wanted to ask why it worked for u but not me? : edit nvm my brain farted
So that’s because it shouldn’t be OnClickInvoke, it should be OnClientInvoke The reason it doesn’t give you an error when it’s in server script service is because local scripts cannot run there
Highlight the area of your script you want to de-indent. Then press control + [ Doing that will de-indent those lines. Pressing control + [ will apply an indent to those lines. You’re welcome
if anyone has any idea if this works, is there a way to make it so that I can have the ray fire off when I press space bar as oppose to having a weapon active? thanks! I should also mention I want the ray to originate from the Player
Yes you can. The way it’s done is like this: fire a Raycast. From the Position of the Raycast Result, fire another one again in the same direction. And another. … and so on
Raycasts only give you the first thing. Imagine a really slim needle that only touches one spot. That’s kind of what the “laser”is. To get everything, you can use region3. Basically, you create a region around the thing the ray touches and get everything in that region.
loading 414GB of information... (watching vid) ... successfully loaded 414GB of information (415724112 GB left) cool vid! i hope u will get 83275329856352735265+ subscribers
If you learned a lot from the video, check out my beginner’s guide to roblox scripting book: ruclips.net/user/shortsDLYJ8l-XZm0?si=3owoBWGS6MV8h4TG
@@scripting I’ll check it out
7:30 Actually it is an Humanoid property called FloorMaterial. If the cheraxter is jumping, it will say that it's Air material.
This video explain raycasting very well, good job!
(i hope you get popular)
Thank you so much!
I’m not making a game,I’m just watching this for entertainment
Based
ok
*i asked my mom to buy me your book as my birthday gift
Happy birthday and thank you!🙏
@@scriptingyou're my favorite roblox studio youtuber :D
@@scriptinghey i followed the link and went on kindle but it says there's no more hard copies left 😭
@HeyShattered Check the Barnes and noble one
@HeyShattered www.barnesandnoble.com/w/unofficial-beginners-guide-to-roblox-scripting-kushal-timsina/1144181010
Damn this is a good video you explained everything so well! I really hope you make it as a big youtuber cause I believe you have a ton of potential.
Great video! i had to pause several times because while I was brainlessly following other tutorials, you explained what specific lines of code did and everything just clicked, thank you!!
It's a shame that mostly coders will watch this and not more people, because it's a fantastic video
It is. Thanks!
This is sooo digestable not just mindless ramblings on 30 lines of codes
I hopw that you get the attention and subscribers you deserve
yeah, i love these type of videos that are so well made
This is easily one of the best tutorials ever made
nah no way, this video only have 7 comments and 20 likes, this video is so well made and yet so underrated
Took 2 months to make this video 😅
how is this so underrated yet the edit is absolutely amazing and the teaching finally actually teached me the most of raycasting, you deserve a million subs dude
Been working on procedural animation recently and needed to look into raycasting. This is the best tutorial ive seen for any topic in roblox studio by far. Thank you and i hope you post more! I typically never comment but this was amazing
Ur teaching is so underrated ong. U deserve more subscribers
Very nice tutorial and editing!
I will be recommending this video to anyone asking me about raycasting
Thanks
Well I don't speak English very well, so I'm screwed, but finally a young person who knows how to make tutorials! This way of learning, here is a real tutorial and not just a presentation of a script
this is genuinely the best scripting tutorial ive seen on youtube, i hope you gain more traction because this is criminally underrated.
This is such a good raycasting tutorial!!!!! I could 100% see a new roblox scripter easily learning how raycasting works with this video. Great job using animations to explain how raycasting works!
Wish i saw this sooner, i've been trying to learn about raycasting for a while now.
While the video does great at explaining how raycasts work... the main raycasting of the gun is all happening on the client, which doesn't really work well in a multiplayer environment.
It doesn’t, you’re right. But for games with small servers or small Raycasts / second, it’s totally fine. In my experience, even 20-40 Raycasts per second works fine
multithread it
Super cool tutorial, thx ! (btw love the editing)
the best video explaining raycast on youtube
thank you so much!
Interesting and Entertaining Video Lesson!
Perfectly balanced as all things should be.
Yet another useful video. Thankyou!
Anytime for you guys
I'm subscribing bro this content is fire. 6:23
This Tutorial Helped me Alot, Before watching this, i didn't even know What raycasting Is, Now i do. Thanks!
This video really helped me understand raycasting, the maths of it, etc.... Thank you, great work!
the most important script is on screen for a total of two seconds 💀
Good thing there’s pause! 😂
Wow that was probably the best roblox tutorial I've ever seen. Super high quality 👍
Dude this is so insanely helpful. The explanations are perfect and I understood everything, thanks!!
I wish I've find you sooner your video is very helpful and made with efforts! I've been struggling trying to learn raycasting for a while and this video help me out a lot you deserve more subscriber 💖
thank you, i always thought this was hard but you explained it in such a simple way!
ngl , this video is both entertaining and easy to understand , im looking forward to the shapecast video
Glad you enjoyed it!
real lifesaver, keep up the good stuff bro
Most entertaining tutorial I've ever watched lol. Great vid. :)
this is good good job and also can you make more vids on advanced stuff? pls like stuff that isnt taught yet bc most ppl say read the docs but i like hearing than reading
Sure! What stuff do you wanna see?
@@scripting could you maybe explain the for stuff like "for i,v'
That Is The Best Video That Actually Helps I Keep Coming Back To It Because I Can't Remember how to do it :)
Im not a dev but I find these video entertaining
:D
This vid was really helpful. It helped me make a custom footstep sound script. 😊
This is actually the best explanation, but these are extremely hard to make so i ront expect a full scripting tutorial with these types of explanation and jokes lmfao
Thanks i think this would be a great help for my game
hold on, at 7:34 ish, doesnt the roblox humanoid have a floormaterial property? couldnt you use that instead??
You could, but this video was made before I found that property out. Behind the scenes however, roblox most likely uses Raycasting to deduce the floor material
@@scripting ohh! okay
This is one of the best tutorials on ray casting I have came across on RUclips (along with ByteBlox’s)! I am looking forward to more uploads from you :)
I RARELY COMMENT BUT THIS IS SO WELL EXPLAINED,,, TYSM
Thank you for the car analogy to explain the normal of an object, I was literally thinking "what practical use does this have".
Yup. It’s used everywhere, especially in places where we would never even think of.
When a gun is firing, we fire a ray where the origin is the gun and the direction is where our mouse points (just like in the video)
When you select a troop in a tower defense game (or in my game, battle mania), a Raycast is done from the foot to the ground so the script knows where the ground is and to place the troop effectively
I was talking specifically about the "Normal" of the raycast. I know raycasts are used for basically everything, super useful tool. But before now I had no clue what the normal of a raycast instance was, and during the video I was wondering when anyone would ever use it.@@scripting
@@AntiNuke_ Gotcha. Yeah, the normal is used like in the footsteps example, and perhaps also making a thrown object ricochet off surfaces it hits.
For example, a ball is thrown. It hits a wall. Apply a lesser force on that ball with the direction of the normal of the surface. Repeat.
If you do this to a laser, it can give a laser bouncing off / ricochet effect
Yep, I just actually used the normal of an object to make a script that makes the camera bounce off an object it hits using a raycast from the head to the camera position detecting what the camera is hitting.@@scripting
Underrated , keep it up
Gave up on this tutorial 6 minutes in. The added graphics got in the way of seeing the script. Script was added without it being noted in audio. Couldn’t get past an error when trying to get the mouse position in the Handle script.
Which error? If you watch the whole video, you should understand it
thanks broski, i spent SO LONG wondering why my raycast gun didnt work for some reason. seems like the multiply by 500 thing was all i needed
very good explanations would look to see more videos like this but chill on the sfx and tv glitch
Awesome video
Very good tutorial. The only thing i need to know now is how people make it so when you shoot a gun with raycasting. It will leave a trail so it looks like it is a kind of bullet, a lot of games have this :D
You can make a bullet and use ApplyImpulse on it to make it fire
followed the code and at the point around 5:30 instead of the raycast returning the values it returns nil
I believe it’s because for the Attachment.Position, it should have been Attachment.WorldPosition
Your so underated
Best Raycasting guide out rn
You know it 💯
thank you for teaching me about normals you are amazing
No problem! :)
if u continue like this, u will be the biggest roblox devolper youtuber.
Most definitely
21 yo cs major and this is good quality education i hope to educate people one day in the future
Thank you man. I’m 20 y/o cs major
Why does it say “ray origin” is not a valid member of part?
REALLY WELL EXPLAINED!
YOU ARE UNDER RATED
Man amazing work man 😂 😂 👏👏👏
wow really helpfull straight to the point and explained so that it can be understood easily! Thank you! (Just got a new sub)
Thanks!
so sorry if im bring stupid here--at 5:20, where exactly do you put the localscript? StarterPlayer, ReplicatedStorage, or whatever? I'm unsure where it's supposed to be
Hi. You’re not being stupid, don’t worry. All questions are good questions! The local script can go in starter gui or starter pack.
Am only at halfway but like DAMN THIS IS AWESOME TUTORIAL
The top of my left eye enjoyed the first half
6:38 when i ran it i got an error
"Players:GetNameFromUserIdAsync() failed: HTTP 429 (Too Many Requests)"
anyone know the issue? this is the code
local laser = script.Parent
local getMouseRemote = game.ReplicatedStorage.getMouseRemote
laser.Activated:Connect(function()
local player = game.Players:WaitForChild(laser.Parent.Name)
local rayorigin = laser.Handle.Rayorigin.Position
local mouseposition = getMouseRemote:InvokeClient(player)
local raydirection = (mouseposition - rayorigin).Unit * 400
local raycastresult = workspace:Raycast(rayorigin, raydirection)
if raycastresult then
print(raycastresult.Instance)
raycastresult.Instance:Destroy()
end
end)
9:17 THE HARDEST CUBE EDIT I HAVE EVER SEEN🔥🔥🔥🔥🥶🥶
SO UNDERRATED
okay what was that shortcut at 20:09
I swear I'm always learning new studio shortcuts that save me hours
ctrl + [ or ]
So how do you make a gun with projectiles with raycast?
check if what it hits is a player by checking if its parent has a humanoid and then lower the humanoids health if there is one
@@corbinwalton9996 I know how to do that, but I wanted to use raycast to make projectiles instead and if it would touch the character I would now lower the health.
5:26 bro didnt cooked with this idea
You are extremely underrated
I have a question, how much did you Need to study(practice) scripting and other game aspecpts before being sure to make a big project like the ‘Battle Mania’. I am asking this because i currently have about 1year scripting knowledge, and i don’t really know to build on blender, make Vfxs and that stuff😅
I’ve been scripting for 8 years. So, by the time I began battle mania, I already knew how to script anything I wanted lol. Keep on scripting though, script whatever you want to script and whatever is interesting, and you’ll get there.
@@scriptingJust one more question, did you also build and did the vfx stuff for the Game or you Had someone(or a team) to build that stuff?
@oleNikolic I work with a 3d modeler / animator. Everything else was made by myself
Thank you, now I know how to make a Part go to the position where you clicked and make it look at the part
Of course!
also i tried to make a visulizer for the raycast(to help me do it easier) and then it was floating so idk whats that about
Is this inspired by Cary time traveler video.. 😱
Nope
@@scripting Oh, because I thought of the baby reference.. they used. 🤔
@PurpleLegoPieces the baby picture was one I found from unsplash, a free stock image site
isn't the a humanoid property called floor material?
this video explained raycasting very well. although why did you give it to ur little brother again?
Thanks. The reason we gave it to the little brother is because it isn’t dangerous. It’s a toy! 😅
Uh, guys i think u guys got an error, and it isnt working now, to fix that, i did so the rayoriigin is the worldposition instead of position.
Yes, that was fixed later in the video
also while making a raycast i noticed it said that the ray cast params had to be included in the raycast result when i tried doing it how u did it, it failed to work but when i added the params above the result and into the result it worked, so uh just wanted to ask why it worked for u but not me? : edit nvm my brain farted
Where do you create the mousepos script at 5:20?
I believe it’s a local script in starter gui
@@scripting when I put it there is says
OnClickInvoke is not a valid member of RemoteFunction "ReplicatedStorage.GetMousePosition"
when I put it anywhere besides ServerScriptService it gives me an error but even when its there it doesnt work
So that’s because it shouldn’t be OnClickInvoke, it should be OnClientInvoke
The reason it doesn’t give you an error when it’s in server script service is because local scripts cannot run there
@@scripting ohhh right im blind, sorry for wasting your time, thx for help
is there a way to make the raycast like into a visible object like a laser or a bullet
You can. You’d make a part and set the CFrame to look where you want it to and the size.Z (or size.X) to the raycastResult.Distance
How do u remove the indents if u end up removing an "if" statement, its always so annoying to have to remove them.
Highlight the area of your script you want to de-indent. Then press control + [
Doing that will de-indent those lines. Pressing control + [ will apply an indent to those lines.
You’re welcome
@ thank you my brain dies when it looks odd like that after so this is very helpful
when i was clicking, it never gave me the distance or the instance.
Make sure your code is typed correctly and you are using the exact code from the video. You might be missing a line
@@scripting I figured out that it wont register the click, is there any way to fix that?
@trujer1931 it depends on your Raycasting code
@@scripting okay, thanks
@@scripting also, thats weird cause im using the same laser gun that you were
if anyone has any idea if this works, is there a way to make it so that I can have the ray fire off when I press space bar as oppose to having a weapon active? thanks!
I should also mention I want the ray to originate from the Player
finally a good explain video for idiots like me
I fully think that if you’re watching this video, you are not an idiot
Is it possible to make the raycast go through everything? Or i have to use somrthing else
Yes you can. The way it’s done is like this: fire a Raycast. From the Position of the Raycast Result, fire another one again in the same direction. And another. … and so on
@@scriptingthanks
time to take the script and redo it without learning anything-
is it impossible to get all the things the ray is touching?
Raycasts only give you the first thing. Imagine a really slim needle that only touches one spot. That’s kind of what the “laser”is. To get everything, you can use region3. Basically, you create a region around the thing the ray touches and get everything in that region.
@@scripting tysm, btw this is the fastest answer i ever got
Amazing 😂
Why didn't you explain where the local script is located?
Starterpack
bro what did the monkeys do to you😭
loading 414GB of information... (watching vid)
...
successfully loaded 414GB of information (415724112 GB left)
cool vid! i hope u will get 83275329856352735265+ subscribers
you forgot to code the bullet btw
The laser itself uses Raycasting
Bullet object wasn’t needed
@@scripting yeah i just realized it today,it was meant to represent where the ray start
LocalPlayer is not a valid member of "Players" wth
Use a local script
It's gone.
incrível!
ur a g
ur a g for watching
=po
yit
nbv
Thanks so much! This helped me with the Normal and understanding it. I needed to use normal for my game thingy majicg rippoff asefeaasdsf a