Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Apply Force to Another Player?

Asked by 4 years ago

I have a local script that adds a BodyForce to whatever I click on. So far it's worked with all different parts, including NPCs with HRPs. However, when I publish it and hop on the server, it doesn't work on other players. It works fine on basic parts, and the NPC, but when I click on a real player on the server, they disappear for like half a second then reappears without any force applied; it flickers. Anyone got any ideas?

`local camera = workspace.CurrentCamera local player = game:GetService("Players").LocalPlayer local mouse = player:GetMouse()

mouse.Button1Down:Connect(function()

local screenRay = camera:ScreenPointToRay(mouse.X, mouse.Y)
local length = 500
local ray = Ray.new(screenRay.Origin, screenRay.Direction * length)

local hit,position = workspace:FindPartOnRayWithIgnoreList(ray, {workspace.Baseplate})

if hit then

    local hitCFrame = hit.CFrame
    local playerCFrame = player.Character.HumanoidRootPart.CFrame

    --local distance = playerCFrame:DistanceFromCharacter(hitCFrame.Position)
    --print(distance)

    print(hit.Name)

    local force = Instance.new("BodyForce")
    --local gyro = Instance.new("BodyGyro")

    local magnitude = 1000



    if hit.Parent:FindFirstChild("Humanoid") then

        print("Person!")

        force.Parent = hit.Parent.HumanoidRootPart
        --gyro.Parent = hit.Parent.HumanoidRootPart

        hit.Parent.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)

        hitCFrame = hit.Parent.HumanoidRootPart.CFrame

        -- Check if player has an int value
        -- if they dont, add it
        -- add to the int value
        -- use int value as multiplier

    else

        force.Parent = hit
        --gyro.Parent = hit

    end

    hitCFrame = CFrame.new(hitCFrame.Position, playerCFrame.Position)

    force.Parent:SetNetworkOwner(player)

    force.Force = hitCFrame:vectorToWorldSpace(Vector3.new(0,4,3) * magnitude)

    wait(0.25)

    force:Destroy()
    --gyro:Destroy()



end

end)`

Answer this question