It's pretty rare to get an answer here so I won't hold my breath, but if anyone can help me figure this out, I'm making a small game based on having a bunch of teleportation abilities that are required to progress through puzzles. A really big issue, however, is that if two players use Portal Creation, after the first three portals are made, other players will move those three portals instead of making their own.
elseif locale == true and p2m == true then if pFolder:FindFirstChild("Portal2") == nil then if prisma == true then Portal2 = ServerStorage.prismPortal:Clone() Portal2.Name = "Portal2" elseif prisma2 == true then Portal2 = ServerStorage.darkPortal:Clone() Portal2.Name = "Portal2" elseif prisma == false and prisma2 == false then Portal2 = ServerStorage.Portal:Clone() Portal2.Name = "Portal2" end print("Made 2", previous) Portal2:Clone() Portal2.Parent = pFolder Portal2.Position = previous + Vector3.new(0,-2,0) else print("Remade 2", previous) pFolder:FindFirstChild("Portal2").Position = previous + Vector3.new(0,-2,0) end elseif p2m == true and p3m == true then if pFolder:FindFirstChild("Portal3") == nil then if prisma == true then Portal3 = ServerStorage.prismPortal:Clone() Portal3.Name = "Portal3" elseif prisma2 == true then Portal3 = ServerStorage.darkPortal:Clone() Portal3.Name = "Portal3" elseif prisma == false and prisma2 == false then Portal3 = ServerStorage.Portal:Clone() Portal3.Name = "Portal3" end Portal3:Clone() Portal3.Position = previous + Vector3.new(0,-2,0) Portal3.Parent = pFolder else print("Remade 3", previous) pFolder:FindFirstChild("Portal3").Position = previous + Vector3.new(0,-2,0) end end local rArm = Player.Character:FindFirstChild("Right Arm") pOrb.Parent = rArm weld.Parent = rArm weld.Part0 = rArm weld.Part1 = pOrb pOrb.Position = transport -- print("RAP:", transport) -- print("RAR:", detected) -- print("TAP:", previous) task.wait(.12) p1.Enabled = true p2.Enabled = true p3.Enabled = true p4.Enabled = true task.wait(.12) p1.Enabled = false p2.Enabled = false p3.Enabled = false p4.Enabled = false
Some notes, locale, p2m, p3m, prisma, and prisma2 are all remotes from the local script.
Prisma and Prisma2 are mostly irrelevant, they're just cosmetic versions of the ability that make different portals. locale, p2m, and p3m all refer to boolean values in the local script that are used to determine which portals the player has made.
Here's the local script portion, incase it can be of help for helping me figure out why this issue is happening.
if InputObject.KeyCode == Enum.KeyCode.Z then -- print("Portal Made!") if globalCD == true then if portal1made == false then print("First Portal Made!") globalCD = false portal1made = true portal2made = false portal1 = Player.Character.Torso.Position Player.Character.Humanoid.WalkSpeed = 0 task.wait(.2) slam:Play() Remote:FireServer("Create", rightArm.Position, rightArm.Rotation, portal1, portal1made, portal2made, portal3made, prisma1, prisma2) task.wait(2) Player.Character.Humanoid.WalkSpeed = 16 task.wait(3) globalCD = true elseif portal1made == true and portal2made == false then print("Second Portal Made!") globalCD = false portal2made = true portal3made = false portal2 = Player.Character.Torso.Position Player.Character.Humanoid.WalkSpeed = 0 task.wait(.2) slam:Play() Remote:FireServer("Create", rightArm.Position, rightArm.Rotation, portal2, portal1made, portal2made, portal3made, prisma1, prisma2) task.wait(2) Player.Character.Humanoid.WalkSpeed = 16 task.wait(3) globalCD = true elseif portal2made == true and portal3made == false then print("Third Portal Made!") globalCD = false portal3made = true portal1made = false portal3 = Player.Character.Torso.Position Player.Character.Humanoid.WalkSpeed = 0 task.wait(.2) slam:Play() Remote:FireServer("Create", rightArm.Position, rightArm.Rotation, portal3, portal1made, portal2made, portal3made, prisma1) task.wait(2) Player.Character.Humanoid.WalkSpeed = 16 task.wait(3) globalCD = true end elseif globalCD == false then warn("On Cooldown!") end