Closing, 'every tick' is a framerate dependent event. You need to use dt to make it framerate independent and support pausing. E.g. have a counter which you add dt to, and if the counter reaches a certain value, create a new object and reset the counter. Then if the timescale is 0, dt is 0, and no objects are created.