Hello everyone, this is my first post! :D I am trying to code a door that when a player touches the door, they need to hit the 'E' key to open the door.
When a Player touches a part called 'Center', It should trigger a RemoteFunction that Invokes the Client to run a contextActionService to check for the 'E' key. If pressed, then the RemoteFunction returns true and runs code to open the door. Instead I get an error on the twelfth line saying "Unable to cast value to Object". I know it has something to do with the parameters being passed through the RemoteFunction:InvokeClient but I don't know what I'm doing wrong, can anyone help me?
local Door = script.Parent local doorTouched = false local result = false local RemoteFunction = game.ReplicatedStorage:WaitForChild("RemoteFunction") Door.Center.Touched:connect(function(hit) if not doorTouched then doorTouched = true print("You Touched It!") local player = hit.Parent.Name result = RemoteFunction:InvokeClient(player, doorTouched) if result == true then print("Door Open") end wait(1) doorTouched = false end end)
local player = game.Players.LocalPlayer local contextActionService = game:GetService("ContextActionService") game.ReplicatedStorage.RemoteFunction.OnClientInvoke = function(doorTouched) if doorTouched == true then local function onKeyPress(actionName, userInputState, inputObject) if userInputState == Enum.UserInputState.Begin then print("E was Pressed") return true end end contextActionService:BindAction("keyPress", onKeyPress, false, Enum.KeyCode.E) else return false end end