I am making a script that is in a part. Within this part is the script and several Smoke. I have tried several things to get the smoke to appear and disappear after certain amount of time. I decided that I would script the smoke to turn on and off using the enabled feature of the properties. This is what I've tried, but something doesn't seem to work, as the smoke with not enable or disable after the time has passed.
01 | local children = workspace:GetChildren() |
02 | if children = = "Smoke" then |
03 | a = children |
04 | while true do |
05 | wait( 0.01 ) -- Don't touch |
06 | a.Enabled = true |
07 | wait( 5 ) -- How long you want the smoke to stay on |
08 | a.Enabled = false |
09 | wait( 12 ) -- How long you want the smoke to stay off then go back on |
10 | end |
11 | end |
Edit: You would use GetDescendants as GetChildren only returns direct children
GetChildren returns an array, not a value, you would have to use pairs instead to go through each value.
However, you can just put the script inside the smoke.
1 | local smoke = script.Parent |
2 |
3 | while true do |
4 | wait( 0.01 ) -- Don't touch |
5 | smoke.Enabled = true |
6 | wait( 5 ) -- How long you want the smoke to stay on |
7 | smoke.Enabled = false |
8 | wait( 12 ) -- How long you want the smoke to stay off then go back on |
9 | end |
Using GetDescendants
01 | local smoke |
02 |
03 | repeat wait( 1 ) |
04 | for i,v in pairs (workspace:GetDescendants()) do |
05 | if v.Name = = "Smoke" and v:IsA( "Smoke" ) then |
06 | smoke = v |
07 | break |
08 | end |
09 | end |
10 | until smoke |
11 |
12 | while true do |
13 | wait( 0.01 ) -- Don't touch |
14 | smoke.Enabled = true |
15 | wait( 5 ) -- How long you want the smoke to stay on |
16 | smoke.Enabled = false |
17 | wait( 12 ) -- How long you want the smoke to stay off then go back on |
18 | end |