I'm not sure why this won't work. There is a brick named "Power" located in a model. There is also 2 other bricks in the model: "TeleportBrick1" and "TeleportBrick2"
TeleportBrick2 does not have any scripts inside of it.
The script inside TeleportBrick1 is this:
script.Parent.Touched:connect(function(hit) if hit.Name == "Power" then hit.CFrame = script.Parent.Parent.TeleportBrick2.CFrame end end)
The script inside Power is this:
while true do script.Parent.CFrame = script.Parent.CFrame * CFrame.new(-.01, 0, 0) wait(.001) end
The script inside of Power is functioning perfectly.
The script inside of TeleportBrick1 is not functioning at all. There is no output.
The brick named "Power" happens to go directly through the center of "TeleportBrick1".
Can anyone help?
Instead or CFraming, you can always try "Position"
For instance--
while true do
while true do script.Parent.Position = script.Parent.Position * Vector3.new(-.01, 0, 0) wait(.001) end
The script may be invalid, but you get what I'm doing here.
I believe it's because you are cframing to it and not actually "hitting" it.
This will be the script for Brick A
--Enter the name of the model you want to go to here. ------------------------------------ modelname="teleporter1b" ------------------------------------ function onTouched(part) if part.Parent ~= nil then local h = part.Parent:findFirstChild("Humanoid") if h~=nil then local teleportfrom=script.Parent.Enabled.Value if teleportfrom~=0 then if h==humanoid then return end local teleportto=script.Parent.Parent:findFirstChild(modelname) if teleportto~=nil then local torso = h.Parent.Torso local location = {teleportto.Position} local i = 1 local x = location[i].x local y = location[i].y local z = location[i].z x = x + math.random(-1, 1) z = z + math.random(-1, 1) y = y + math.random(2, 3) local cf = torso.CFrame local lx = 0 local ly = y local lz = 0 script.Parent.Enabled.Value=0 teleportto.Enabled.Value=0 torso.CFrame = CFrame.new(Vector3.new(x,y,z), Vector3.new(lx,ly,lz)) wait(3) script.Parent.Enabled.Value=1 teleportto.Enabled.Value=1 else print("Could not find teleporter!") end end end end end script.Parent.Touched:connect(onTouched)
This is the script for Brick B
--Enter the name of the model you want to go to here. ------------------------------------ modelname="teleporter1a" ------------------------------------ function onTouched(part) if part.Parent ~= nil then local h = part.Parent:findFirstChild("Humanoid") if h~=nil then local teleportfrom=script.Parent.Enabled.Value if teleportfrom~=0 then if h==humanoid then return end local teleportto=script.Parent.Parent:findFirstChild(modelname) if teleportto~=nil then local torso = h.Parent.Torso local location = {teleportto.Position} local i = 1 local x = location[i].x local y = location[i].y local z = location[i].z x = x + math.random(-1, 1) z = z + math.random(-1, 1) y = y + math.random(2, 3) local cf = torso.CFrame local lx = 0 local ly = y local lz = 0 script.Parent.Enabled.Value=0 teleportto.Enabled.Value=0 torso.CFrame = CFrame.new(Vector3.new(x,y,z), Vector3.new(lx,ly,lz)) wait(3) script.Parent.Enabled.Value=1 teleportto.Enabled.Value=1 else print("Could not find teleporter!") end end end end end script.Parent.Touched:connect(onTouched)
Use this as an example and see if it works.