right but i mean the “script launching” construct is really opinionated - when you launch a script, many things are torn down and rebuilt, including polls. there are good technical reasons for this and we’re actually likely to move further in this direction. (allowing, among other things, a workaround to the SC duplicate class problem.)
a script without an engine isn’t a good idea right now. but i agree this isn’t well documented and since it’s come up a couple times, we should just fix that behavior (by instantiating an “empty” engine in SC, if none is specified.)
but again, i’d strongly suggest that functionality that doesn’t interact directly with an engine, be placed in a module in your lib and included with include() or dofile(). (the former is more portable; it first checks your local lib, then checks global locations if it doesn’t find the requested file. so it’s like require without caching and with a more limited/specific search sequence.) tehn’s awake/lib/halfsecond is a basic example of this pattern.
(and sorry, this is probably better topic for ‘develpoment’ thread. like some other topics here)