How do I make a single script that manages multiple parts in my game?
I have a script that shrinks a part that the player touches. Instead of having to insert the same script in hundreds of different parts (Which creates lag) my goal is to have one single script control all the parts with a certain name (i.e ShrinkingPart) to shrink. This is the script for each part.
02 | local d = script.Parent.Decal |
05 | function onTouched(hit) |
06 | if (debounce = = true ) then |
09 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
11 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
13 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
15 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
17 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
19 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
21 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
23 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
25 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
27 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
29 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
31 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
33 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
35 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
37 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
39 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
41 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
43 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
45 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
47 | script.Parent.Mesh.Scale = Vector 3. new(script.Parent.Mesh.Scale.x- 0.05 ,script.Parent.Mesh.Scale.y,script.Parent.Mesh.Scale.z- 0.05 ) |
49 | script.Parent.CanCollide = false |
50 | script.Parent.Transparency = 1 |
53 | d.Parent = script.Parent |
54 | script.Parent.CanCollide = true |
55 | script.Parent.Mesh.Scale = Vector 3. new( 1 , 1 , 1 ) |
56 | script.Parent.Transparency = 0 |
61 | connection = script.Parent.Touched:connect(onTouched) |