First of all, i suck at scripting. LmAo. So dooonttt judge. Anyway tried to create a script using Cframe and with bool values. It didnt work. I neeed heelp.
local Player = game.Players.LocalPlayer local Mouse = Player:GetMouse() local IsOpen = script.Parent.IsOpen local RightDoor = script.Parent.RightDoor script.Parent.Parent.PrimaryPart = script.Parent.Parent.Primary if (workspace.Player1.Torso.Position - workspace.Part.Position).magnitude > 20 then Mouse.KeyDown:connect(function(Key) if Key == "e" then script.Parent.Parent:SetPrimaryPartCFrame(script.Parent.Parent:GetPrimaryPartCFrame()*CFrame.fromEulerAnglesXYZ(1.5,0,0)) elseif Key == "e" then script.Parent.Parent:SetPrimaryPartCFrame(script.Parent.Parent:GetPrimaryPartCFrame()*CFrame.fromEulerAnglesXYZ(-1.5,0,0)) end end)
The Event KeyDown is deprecated, so use the UserInputService instead
As for actually scripting the door, you would have to use a RemoteEvent to do that, as with Filtering Enabled on, other players won't see it. Basically, instructions are below;
Put a RemoteEvent in the ReplicatedStorage named DoorOpen
local Player = game.Players.LocalPlayer local userinput = game:GetService("UserInputService") local door = workspace.Door -- define the door userinput.InputBegan:Connect(function(input,processed) if input.KeyCode == Enum.KeyCode.E and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") and not processed then if (door.Position-Player.Character.HumanoidRootPart.Position).magnitude < 20 then game.ReplicatedStorage:WaitForChild("DoorOpen"):FireServer() end end end)
game.ReplicatedStorage:WaitForChild("DoorOpen") local door = workspace.Door -- define the door again game.ReplicatedStorage.DoorOpen.OnServerEvent:Connect(function(player) if not open then -- open door else -- close door end open = not open end)
The reason it didn't work is that firstly, this script, by the looks of it, wouldn't work due to the fact that a LocalScript will only work if it is in the Player's PlayerGui, Backpack, Character, PlayerScripts or ReplicatedFirst. Looking at the code, I can tell that this script is probably located in the workspace, a model in which only a server script (Script) can run in.
Even if you did change this to a server script, it still wouldn't work as LocalPlayer is only accessible to the client, and even if it worked as a Local script, Filtering Enabled will stop the client from sending the door's CFrame to the Server, and in turn stop the server from replicating that to all the other clients (players), so ultimately, you will see the change, and others won't. To stop this from happening, you'd use a RemoteEvent
When scripting though, practice makes perfect, and all this will eventually make sense.