Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

I need a part that cancollide = true if it's under 50 speed, and cancollide = false if it's over?

Basically it's designed for a vehicle, if the vehicle is going over 50 SPS, the part detects it and cancollide = false, and back to cancollide = true if it's under. Except this doesn't happen. What have I done wrong?

P = script.Parent
Player = game.Players.LocalPlayer
Human = Player.Character
Torso = Human.Torso


while true do
    wait(.05)
    local intSpeed = math.floor((Torso.Velocity.magnitude)/1.6)
    if Torso.Velocity >= 50  then P.CanCollide = false end
    if Torso.Velocity <= 50 then P.CanCollide = true end
end

1 answer

Magnitude
It was hiding just under your nose

P = script.Parent
Player = game.Players.LocalPlayer
Human = Player.Character
Torso = Human.Torso


while true do
    wait(.05)
    local intSpeed = math.floor((Torso.Velocity.magnitude)/1.6)
    if intSpeed >= 50  then P.CanCollide = false end
    if intSpeed <= 50 then P.CanCollide = true end
end

If it wasn't intSpeed that you needed, or you're a little confused about the dampening going on (why it only works at 80 instead of 50), you might want to get rid of that little division up there.

3 comments

0

It still doesn't work. When in a vehicle, and travelling at 50, this SHOULD make a part's cancollide property change. I used transparency instead to test it easier., but it still doesn't.

0

Do you know if the Torso's Velocity does actually change when in a car?

0

I believe so. I got the velocity part from a speed tracking script that does work.

This discussion is preserved as it was. New answers, comments, and votes are closed.