function droneMovement(player,keypressed,direction)
local dronecframe = drone.CFrame
if keypressed == "w" then
Bodypos.Position = dronecframe:PointToWorldSpace(Vector3.new(0,0,-3))
elseif keypressed == "a" then
Bodypos.Position = dronecframe:PointToWorldSpace(Vector3.new(-3,0,0))
elseif keypressed == "s" then
Bodypos.Position = dronecframe:PointToWorldSpace(Vector3.new(0,0,3))
elseif keypressed == "d" then
Bodypos.Position = dronecframe:PointToWorldSpace(Vector3.new(3,0,0))
end
if direction == "Right" then
BodyGyro.CFrame = BodyGyro.CFrame * CFrame.new(Bodypos.Position) * CFrame.Angles(0,math.rad(-2.5),0)
end
if direction == "Left" then
BodyGyro.CFrame = BodyGyro.CFrame * CFrame.new(Bodypos.Position) * CFrame.Angles(0,math.rad(2.5),0)
end
end
droneserver.OnServerEvent:Connect(droneMovement)
thats the ^ server script where everything moves in the server
function drone.dronemovement()
local validKeys = {
["W"] = function()
droneserver:FireServer("w")
end,
["A"] = function()
droneserver:FireServer("a")
end,
["S"] = function()
droneserver:FireServer("s")
end,
["D"] = function()
droneserver:FireServer("d")
end,
}
while true do
local arr = userinputservice:GetKeysPressed()
for _,key in pairs(arr) do
local check = validKeys[key.KeyCode.Name]
if check then
check()
end
end
wait()
end
end
This is the module script where i am trying to get the part to move when in a diagonal direction when when for example W+A is pressed at the same time on the keyboard.
