Heyo Devforum! Recently, I have made a topic on this issue, but no one responded, and I didn’t have any examples, but this time I do. So, in the below gyazo clips, you can see that the balloon just teleports you outside for no apparent reason and for the zipline, it only teleports you to the lobby area if you jump into it.
Balloon:
https://gyazo.com/c3a28edd756d335d333c38718c52c402
Zipline Working:
https://gyazo.com/be053796e171595d84d3aab9ec85cf33
Zipline Not Working:
https://gyazo.com/7f4e783606e89602f2ca76031d55bbae
These models were created in a model testing place, and finished in the main place. I have no idea why this is happening, so here are my scripts. Could anyone please take a look?
Balloons:
repeat wait() until game.Workspace:WaitForChild("Tower of Troubling Tutorials")
local balloons = game.Workspace:WaitForChild("Tower of Troubling Tutorials").Balloons:GetChildren()
local runservice = game:GetService("RunService")
local player = game.Players.LocalPlayer
local playermodule = require(player:WaitForChild("PlayerScripts"):WaitForChild("PlayerModule"))
local controls = playermodule:GetControls()
for i, balloon in pairs(balloons) do
local isonballoon = false
local part = balloon.Part
part.Touched:Connect(function(hit)
local balloonpart = script.Balloon
local timeuntilpop = balloon.TimeUntilPop
local speed = balloon.Speed
local animation = script.BalloonHold
if not isonballoon and player.Character and hit:IsDescendantOf(player.Character) then
isonballoon = true
local character = player.Character
local humanoid = character.Humanoid
local balloonclone = balloonpart:Clone()
local holderpart = balloonclone.Holder
local partto = balloon.PartTo
balloonclone.Parent = game.Workspace:WaitForChild("Tower of Troubling Tutorials").Balloons:FindFirstChild(balloon.Name).Part
character.HumanoidRootPart.CFrame = partto.CFrame
print(character.HumanoidRootPart.Position)
local weld = Instance.new("Weld")
weld.Part0 = character.Head
weld.Part1 = holderpart
weld.C1 = CFrame.new(0,-0.75,0)
weld.Parent = holderpart
holderpart.CFrame = character.Head.CFrame
local loadanimation = humanoid:LoadAnimation(animation)
loadanimation:Play()
local bodygyro = Instance.new("BodyGyro", balloonclone.Sphere)
bodygyro.MaxTorque = Vector3.new(math.huge,math.huge,math.huge)
bodygyro.CFrame = CFrame.new()
local bodyvelocity = Instance.new("BodyVelocity", balloonclone.Sphere)
bodyvelocity.MaxForce = Vector3.new(0,1000000,0)
bodyvelocity.Velocity = Vector3.new(0,speed.Value,0)
coroutine.wrap(function()
while isonballoon and not controls:GetActiveController():GetIsJumping() do
runservice.Heartbeat:Wait()
end
weld:Destroy()
loadanimation:Stop()
balloonclone:Destroy()
isonballoon = false
end)()
wait(timeuntilpop.Value)
weld:Destroy()
loadanimation:Stop()
balloonclone:Destroy()
bodygyro:Destroy()
bodyvelocity:Destroy()
isonballoon = false
end
end)
end
Ziplines:
repeat wait() until game.Workspace:WaitForChild("Tower of Troubling Tutorials")
local ziplines = game.Workspace:WaitForChild("Tower of Troubling Tutorials").Ziplines:GetChildren()
local tweenservice = game:GetService("TweenService")
local runservice = game:GetService("RunService")
local player = game.Players.LocalPlayer
local playermodule = require(player:WaitForChild("PlayerScripts"):WaitForChild("PlayerModule"))
local controls = playermodule:GetControls()
for i, zipline in pairs(ziplines) do
local isonzip = false
local line = zipline.Line
local linestart = zipline.LineStart
local finish = zipline.End
local start = zipline.Start
local speed = zipline.Speed
local slider = script.Slider
local animation = script.ZiplineHold
start.Touched:Connect(function(hit)
if not isonzip and player.Character and hit:IsDescendantOf(player.Character) then
isonzip = true
local character = player.Character
local humanoid = character.Humanoid
local sliderclone = slider:Clone()
sliderclone.Parent = game.Workspace:WaitForChild("Tower of Troubling Tutorials").Ziplines
sliderclone.PrimaryPart.CFrame = linestart.CFrame
local sliderpart = sliderclone.SliderPart
local movingsliderpart = sliderclone.Part
local weld = Instance.new("Weld")
weld.Part0 = character.Head
weld.Part1 = sliderpart
weld.C1 = CFrame.new(0,-0.9,0)
weld.Parent = sliderpart
sliderpart.CFrame = character.Head.CFrame
local tweeninfo = TweenInfo.new(speed.Value)
local goal = {}
goal.CFrame = finish.CFrame
local tween = tweenservice:Create(movingsliderpart, tweeninfo, goal)
tween:Play()
local loadanimation = humanoid:LoadAnimation(animation)
loadanimation:Play()
coroutine.wrap(function()
while isonzip and not controls:GetActiveController():GetIsJumping() do
runservice.Heartbeat:Wait()
end
weld:Destroy()
loadanimation:Stop()
sliderclone:Destroy()
isonzip = false
end)()
wait(speed.Value)
weld:Destroy()
loadanimation:Stop()
sliderclone:Destroy()
isonzip = false
end
end)
end
Why is this happening?