Hello! I have been experimenting with free models to try and get players to teleport inside of a small interior prop of a subway train when they approach the prop subway train. There seems to be an issue with teleportation scripts as I spawn on top of the interior and not inside.
SCRIPT(s) (Requested)
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)
How can I get a player to spawn inside the prop interior instead of outside it?
-Wafflesandwich1
Hmm. It seems you are over thinking this. So here's what you could do to make it easier. Here's what I would do. Place a brick inside the interior prop where you want people to spawn. And one where you want people to touch to teleport to that other interior brick.
local tpdoorbrick = game.Workspace.tpdoorbrick --locating door tp brick local tpinteriorbrick = game.Workspace.tpinteriorbrick -- locating the brick u tp to tpdoorbrick.Touched:connect(function(hit) --function that occurs when you touch the tp brick if hit.Parent and hit.Parent.Humanoid and hit.Parent.Humanoid.Health > 0 and hit.Parent.Character then -- these 2 lines are checking to see if the player is there/real hit.Parent.Torso.CFrame = tpinteriorbrick.CFrame.new + Vector3.new(0, 3, 0) --[[ teleporting the player to the interior. the plus vector3.new is to put the player above the brick so he doesn't spawn in the floor, but not on top of the prop. the reason i put him 3 studs above the ground, is because the torso is 3 studs above the ground--]] end) --ending the function
This is just a way more simple way of doing it. I hope it works for you and keep scripting!