I have 2 scripts which used to be 1 local script but now it is 2 scripts. What I want it to do is when a guy presses a key while he sits on the driver's seat of a bus, it will tell other scripts to do their function, for example opening the door.
I keep getting an error saying "bad argument #1 to 'lower' (string expected, got Object) at Line 4 of the Server Script.
Here are the scripts:
Local script:
local mouse = game.Players.LocalPlayer:GetMouse()
local event = game.ReplicatedStorage.BusEvent
local Bus = game.Workspace:findFirstChild(game.Players.LocalPlayer.PlayerGui.TGUI.Value.Value)
event:FireServer()
Server script:
local event = game.ReplicatedStorage.BusEvent
event.OnServerEvent:Connect(function(key)
key = string.lower(key)
if key == "q" then -- LEFT SIGNAL
Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value
Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value = false
Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value = false
elseif key == "e" then -- RIGHT SIGNAL
Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value
Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value = false
Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value = false
elseif key == "x" then -- HAZARDS
Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value
Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value = false
Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value = false
elseif key == "k" then -- KNEEL
Bus.Model.Bodykit.Blinkers.DriversCab.KneelEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.KneelEnable.Value
elseif key == "m" then -- FRONT DOOR OPEN/CLOSE
Bus.Model.Bodykit.Blinkers.DriversCab.FrontEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.FrontEnable.Value
elseif key == "n" then -- BACK DOOR UNLOCK
Bus.Model.Bodykit.Blinkers.DriversCab.RearEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.RearEnable.Value
elseif key == "l" then -- HEADLIGHTS
Bus.Model.Bodykit.Blinkers.DriversCab.HeadlightsEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.HeadlightsEnable.Value
elseif key == "j" then -- INTERIOR LIGHTS
Bus.Model.Bodykit.Blinkers.DriversCab.InteriorEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.InteriorEnable.Value
elseif key == "r" then -- REVERSE
Bus.Model.Bodykit.Blinkers.DriversCab.ReverseEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.ReverseEnable.Value
end
end)
If you know what the problem is can you please help me solve the issue! I know nothing about scripting, so please help me out!

2 comments
why are you checking if the player equals a string?
The original script had that line