So I'm trying to make a boat seat move and I'm not 100% clear on Filtering Enabled yet but if you can help and explain this to me a bit, I would really appreciate it.
I don't know if I did this right?
so Both the MoveEvent and StopEvent are in the VehicleSeat, as well as the localscript and script, are in the vehicleseat as well.
--Client
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local MoveEvent = script:WaitForChild("MoveEvent")
local StopEvent = script:WaitForChild("StopEvent")
local KeysDown = {}
UserInputService.InputBegan:connect(function(Input)
local KeyCodeName = Input.KeyCode.Name
if KeyCodeName == "W" then
MoveEvent:FireServer("Forwards")
elseif KeyCodeName == "S" then
MoveEvent:FireServer("Backwards")
elseif KeyCodeName == "A" then
MoveEvent:FireServer("Left")
elseif KeyCodeName == "D" then
MoveEvent:FireServer("Right")
end
if KeyCodeName ~= "Unknown" then
KeysDown[KeyCodeName] = true
end
end)
UserInputService.InputEnded:connect(function(Input)
local KeyCodeName = Input.KeyCode.Name
if KeyCodeName == "W" then
if KeysDown["S"] then
MoveEvent:FireServer("Backwards")
else
StopEvent:FireServer("Forwards")
end
elseif KeyCodeName == "S" then
if KeysDown["W"] then
MoveEvent:FireServer("Forwards")
else
StopEvent:FireServer("Backwards")
end
elseif KeyCodeName == "A" then
if KeysDown["D"] then
MoveEvent:FireServer("Right")
else
StopEvent:FireServer("Left")
end
elseif KeyCodeName == "D" then
if KeysDown["A"] then
MoveEvent:FireServer("Left")
else
StopEvent:FireServer("Right")
end
end
if KeyCodeName ~= "Unknown" then
KeysDown[KeyCodeName] = nil
end
end)
--Server
local Boat = script.Parent
local Players = game:GetService("Players")
local MoveEvent = script:WaitForChild("MoveEvent")
local StopEvent = script:WaitForChild("StopEvent")
Boat.MaxSpeed = 18
maxspeed = Boat.MaxSpeed
Boat.BodyPosition.position = Boat.Position
Boat.BodyGyro.cframe = Boat.CFrame
speed = 0
Boat.ChildAdded:connect(function(Weld)
if Weld:IsA("Weld") then
local Torso = Weld.Part1
if Torso then
end
end
end)
Boat.ChildRemoved:connect(function(Child)
end)
MoveEvent.OnServerEvent:connect(function(Player, Type)
if Type == "Forwards" then
Forwards = 1
if speed < maxspeed then speed = speed + 0.1 end
Boat.BodyVelocity.velocity = Boat.CFrame.lookVector*speed
elseif Type == "Backwards" then
Forwards = -1
if speed < 18 then speed = speed + 0.1 end
Boat.BodyVelocity.velocity = Boat.CFrame.lookVector*-speed
elseif Type == "Left" then
Turn = -1
Boat.BodyGyro.cframe = Boat.BodyGyro.cframe * CFrame.fromEulerAnglesXYZ(0,0.01,0)
elseif Type == "Right" then
Turn = 1
Boat.BodyGyro.cframe = Boat.BodyGyro.cframe * CFrame.fromEulerAnglesXYZ(0,-0.01,0)
end
end)
StopEvent.OnServerEvent:connect(function(Player, Type)
if Type == "Forwards" or Type == "Backwards" then
Forwards = nil
elseif Type == "Left" or Type == "Right" then
Turn = nil
end
end)
