I have a part and I would like to see how high it is from the ground (The part under it) with the front-facing down, I think I need to use raycasts? I could use any help!

Yup! You can do this easily with raycasting.

First, create a ray with the origin position set as the parts position **and** the direction set downwards:

```
local MaxDistance = 10 --Maximun distance the ray can go
local Part = workspace.Part --Your part from where you want to raycast
local R = Ray.new(Part.Position, Vector3.new(0,-1*MaxDistance,0)) -- First parameter is the origin and second is the direction. Since it is going downwards, the Y coordinate of the direction has to be negative
local PartFound, Pos = workspace:FindPartOnRay(R)
--Pos is the Vector3 value of where the ray hit a part at.
```

So now, to get the distance between the Part and the other part under it (the ground), just get the difference between the two Y coordinates of the origin and where the ray hit the ground.

So:

```
local DistanceToGround = Part.Position.Y-Pos.Y
print(DistanceToGround) -- This prints the distance in studs between the part and the ground
```

Hopes this solves your question

To find how high a part is from the ground using raycasts, it’s pretty simple.

First you want to create a raycast with the appropriate arguments:

```
local groundDistanceRay = Ray.new(part.Position, Vector3.new(0, -500, 0)
```

The first argument of the raycast is the `origin`

which is where the ray will begin, and the second argument is the `direction`

which is a vector direction of where the ray will point. Since we set the direction as -500 on the Y axis, it will point down for 500 studs.

The next step to finding the distance from the ground is to use `workspace:FindPartOnRay`

.

```
local groundDistanceRay = Ray.new(part.Position, Vector3.new(0, -500, 0)
local part, position = workspace:FindPartOnRayWithIgnoreList(groundDistanceRay, {part}) -- just makes sure the ray doesnt hit itself
```

Now that you have the position, you can simply find the distance with some basic vector math.

```
local groundDistanceRay = Ray.new(part.Position, Vector3.new(0, -500, 0)
local part, position = workspace:FindPartOnRayWithIgnoreList(groundDistanceRay, {part}) -- just makes sure the ray doesnt hit itself
local groundDistance = (part.Position - position).Magnitude
print(groundDistance)
```

Thanks for all the help guys!

Why is this not working ?

local MaxDistance = 200 --Maximun distance the ray can go

local Part = script.Parent --Your part from where you want to raycast

while true do

wait(1)

local R = Ray.new(Part.Position, Vector3.new(0,-1*MaxDistance,0))

local PartFound, Pos = workspace:FindPartOnRay(R)

local DistanceToGround = Part.Position.Y-Pos.Y

if DistanceToGround <100 then

game.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(game.Players.LocalPlayer.Name…" ,"…“please pull up”, “All”)

end

end

this is a helicopter script

Hey, how do I perform a raycast operation and only get the distance from the RayOrigin to the intersecting part? Just the distance and nothing else, and like e.g print the distance integer out into the console with `print()`

using the Raycast() command?

Follow raycast documentation: Raycasting | Documentation - Roblox Creator Hub

`workspace:Raycast()`

returns a RaycastResult from which you can get `RaycastResult.Distance`

.