Use VCE loops
[0] [x] [ ] [Onactivate] [Self] [VCE_Ifvariable] [count] [==] [10] [1 3]
[1] [x] [ ] [Onvariablefalse] [Self] [VCE_modvariable] [Brick] [count] [Add] [1]
[2] [x] [1000] [Onvariablefalse] [Self] [VCE_Ifvariable] [count] [==] [10] [1 3]
[3] [x] [ ] [Onvariabletrue] [Self] [Setcolor] [16]
This counts to 10 in ten seconds, and when it reaches 10, it changes color.
This can be used for really long times, such as the below:
[0] [x] [ ] [Onactivate] [Self] [VCE_Ifvariable] [count] [==] [1200] [1 3]
[1] [x] [ ] [Onvariablefalse] [Self] [VCE_modvariable] [Brick] [count] [Add] [1]
[2] [x] [30000] [Onvariablefalse] [Self] [VCE_Ifvariable] [count] [==] [1200] [1 3]
[3] [x] [ ] [Onvariabletrue] [Self] [Setcolor] [16]
This would take ten minutes to change color.
[0] [x] [ ] [Onactivate] [Self] [VCE_Ifvariable] [count] [==] [7200] [1 3]
[1] [x] [ ] [Onvariablefalse] [Self] [VCE_modvariable] [Brick] [count] [Add] [1]
[2] [x] [30000] [Onvariablefalse] [Self] [VCE_Ifvariable] [count] [==] [7200] [1 3]
[3] [x] [ ] [Onvariabletrue] [Self] [Setcolor] [16]
This would take an hour.
That initial event was just to get it started, in order to not use relays.