So I am trying to make a ski lift for my game, and I was making a control board. This has happened on some of my other lifts I tried to make. Basically when I press stop, of course the conveyors stop and all the chairs stop. But then, when I try to start them back up, they start, and work normally, but the chairs don’t move. But if I drop a part on them or walk into them with my character, then the go and act normally. I have tried many methods like parts moving to make them go, but it hasn’t worked. It might be roblox physics, but if there is an answer please tell me. Also if you need any code segments or screenshots, just ask and I’ll see if I can send them
You could try setting the network ownership to nil
SkiLift:SetNetworkOwnership(nil)
Not sure if it will work but it could
Hi, how would I implement this? I’m only a low intermediate scripter, so where would I put this?
Are you using the Touched() event to move parts on the lift? If so, you are probably running into the issue where the touch events don’t fire again, so the chairs do not move.
here is the stop script… I don’t think I’m using touched events
--haltscript (makes lift stop)
wait(5)
currentspeed = workspace.PublicLiftValues.CurrentSpeed
script.Parent.MouseClick:Connect(function()
print("clicked stop")
if currentspeed.Value == 15 then
currentspeed.Value = 14
wait(1)
currentspeed.Value = 12
wait(0.8)
currentspeed.Value = 9
wait(0.6)
currentspeed.Value = 6
wait(0.6)
currentspeed.Value = 2.5
wait(0.6)
currentspeed.Value = 1
wait(0.3)
currentspeed.Value = 0
print("stopped lift")
else
end
end)
and heres the start script
--startscript (makes lift go)
wait(5)
currentspeed = workspace.PublicLiftValues.CurrentSpeed
print("current speed found")
print(currentspeed.Value)
script.Parent.MouseClick:Connect(function()
print("clicked")
if currentspeed.Value == 0 then
print("clicked, starting up")
currentspeed.Value = 1
wait(1)
currentspeed.Value = 3
wait(0.8)
currentspeed.Value = 5
wait(0.6)
currentspeed.Value = 8
wait(0.6)
currentspeed.Value = 11
wait(0.6)
currentspeed.Value = 15
print(currentspeed.Value.. " is the new speed")
else
print("stop ittttt")
end
end)
I think Scripting Support suits your issue more
I did building because this might be related to roblox physics, and maybe someone there could help
You could try putting a script inside the model itself with this code :
Script.Parent:SetNetworkOwnership(nil)
Tell me if it works and if not ill keep trying to help
The model of the ropes? Because theres maybe 100 parts of the ropes and I could put that script inside…
Ohh ok. Can you send a screenshot of the ski lift in the explorer?
If there is a MoveScript in every single rope part you might want to have just one script to change everything. You can put a single script in the ropes folder with this code :
local function Update()
for i, Rope in pairs(script.Parent:GetChildren()) do
if Rope:IsA("Part") then
Rope:SetNetworkOwner(nil)
Rope.AssemblyLinearVelocity = Rope.CFrame.XVector * workspace.PublicLiftValues.CurrentSpeed.Value
end
end
end
while true do
Update()
wait(0.1)
end
Im still trying to understand what the problem is, so if you could send a video that would be helpful
I will send a video in a little bit, but basically the problem is when I tell the conveyors to go, they move but the things on the conveyor (the chairs) don’t move. But when a part or something hits/touches it, it goes again. To me, it sounds like a roblox physics issue, but I couldn’t find any other posts about it so I feel like I might be doing something wrong. I will try your script, hopefully it works! Thanks
Im glad to help and hope we can get it to work!
Okay so I tried your scripts, but it was the same as before, so when I’d stop it, and start it again they wouldn’t move
https://gyazo.com/25f67c4134c1f3108482725a57b668ce
That first clip is me stopping the lift (sorry it is kind of hard to see)
https://gyazo.com/33004af9f982ddb2b331453713b4ebb3
That second one is showing how when I start it, they don’t move until I touch it
Try putting a BoolValue into the PublicLiftValues folder and name it “ChangingSpeed”
Then change the stop script code to :
wait(5)
local CurrentSpeed = workspace.PublicLiftValues.CurrentSpeed
local CurrentlyEasing = workspace.PublicLiftValues.ChangingSpeed
script.Parent.MouseClick:Connect(function()
print("Stop Lift")
if not CurrentlyEasing.Value then
CurrentlyEasing.Value = true
local Tween = game:GetService("TweenService"):Create(CurrentSpeed, TweenInfo.new(4, Enum.EasingStyle.Quad), {Value = 0})
Tween:Play()
Tween.Completed:Wait()
CurrentlyEasing.Value = false
end
end)
And the start script code to :
wait(5)
local CurrentSpeed = workspace.PublicLiftValues.CurrentSpeed
local CurrentlyEasing = workspace.PublicLiftValues.ChangingSpeed
script.Parent.MouseClick:Connect(function()
print("Start Lift")
if not CurrentlyEasing.Value then
CurrentlyEasing.Value = true
local Tween = game:GetService("TweenService"):Create(CurrentSpeed, TweenInfo.new(4, Enum.EasingStyle.Quad), {Value = 15})
Tween:Play()
Tween.Completed:Wait()
CurrentlyEasing.Value = false
end
end)
It might help fix the problem.
I really like those scripts because they ease them with tweening (which I don’t know how to do), but it still doesn’t work. It starts the conveyors normally, but still, no luck. I made a testing game with a conveyor, a part, and two parts, one which makes the speed +1 and the other -1. After it being at 0, and then starting back up, if I went on the conveyor, I would move but the part wouldn’t. But when I touch the part, it would then go. It is annoying because I don’t know anyone else with this problem, so it might just be me. How about I share the place with you using team create and then you can see if you have the same problem?
Sure! You could try so i can really see where everything is. Still hoping we can figure this out!
Put a script inside any part inside the sky zip and make it say
script.Parent:SetNetworkOwnership(nil)
After that see if it works
What is the Sky Zip? Is it a folder or model?