Can you explain what every raycastParam value does?

So I was reading the doc for raycasts but I can hardly understand what roblox writes
(IDK I just have a hard time understanding stuff)

So any who I was wondering if anyone could explain it in a really simple way. Or the simplest way possible.

Thank you!

every thing but IgnoreWater. That value I already knows what it does. I mean its in the name . . .

FilterDescendantsInstances: an array of objects that are filtered by the raycast via FilterType

FilterType: a RaycastFilterType Enum which is either Include or Exclude.

Include means only parts which are descendants of objects in the filter list will be considered in the raycast.
Exclude means every part in the raycast will be considered except those that are descendants of objects in the filter list.
Think of it as a blacklist or whitelist.

CollisionGroup: the name of the CollisionGroup that the raycast will use.

RespectCanCollide: If this is true, it will use a parts CanCollide value instead of its CanQuery value to determine which parts to include in the raycast.