You should only fill the "jumparts" table once, unless more "jumpart" objects appear in the workspace over time.
To go over the list of "jumparts" you've created, do:
01 | for i = 1 , #jumparts do |
03 | jumparts [ i ] .Position = jumparts [ i ] .Position + Vector 3. new( 0 , 5 , 0 ) |
08 | for i, jumpart in pairs (jumparts) do |
A revision of your script:
02 | children = game.Workspace:GetChildren() |
03 | for i,v in pairs (children) do |
04 | if v.Name = = "jumpart" then |
05 | table.insert(jumparts,v) |
13 | script.Parent.BrickColor = BrickColor.new( "Really red" ) |
16 | for j = 1 , #jumparts do |
18 | v.Size = Vector 3. new(v.Size.x,i,v.Size.z) |
24 | for j = 1 , #jumparts do |
26 | v.Size = Vector 3. new(v.Size.x,i,v.Size.z) |
27 | v.Position = Vector 3. new(v.Position.x,v.Position.y- 4.4 ,v.Position.z) |
31 | script.Parent.BrickColor = BrickColor.new( "Lime green" ) |
35 | script.Parent.ClickDetector.MouseClick:connect(onClicked) |
Notice how we order the loops: we put the 'for i = 4, 13, 0.3 do' loop on the outside and the "for j = 1, #children do" loop on the inside. This means that for each 'i', we'll apply the change to all jumparts, and then we will wait for 0.1 seconds before advancing on to the next 'i'.
Note that this script assumes that all jumparts will be available and loaded right when the script starts running (if the script works in solo but not online, then you need to add a wait command before the script starts running; ideally you keep waiting until the parts you need have been loaded).
If the list of jumparts may change over time, you need to get a fresh list of children from the workspace every time the onClicked function is called.
[EDIT I finished the revision of the script]