when i first worked with arrays, it took me some time to realize they are the only objects that are accessed with an index starting at 0 for the first element, while all the other plugins goe to some length to have any first element indexed by 1.
i was guessing that you (the devs) did this to keep in line with the idea of 'simplified' programming, since 0-indexed stuff is admittedly a reoccuring source of (human) errors.
but since most of the medium-and-above-complexity events / conditions & expressions that are often used in working with lists of objects are centered around 0 as a starting point (e.g. the LoopIndex, the random() expression), all the 1-indexed plugins actually generate more complexity by demanding extra attention to treat them different.
so i was wondering if you are planning to strictly implement everything as 1-indexed, or if that is a notion you would open to negotiations :)
How about an option to have random not use 0? Clearly there are uses for both, but personally I'd prefer to have it not start with zero. Then again, I wish I could use decimals for a lot of stuff, but I don't see that happening.
it is more intuitive for random to return values between 1 and random's argument in brackets. ie. for random(2) the "2" argument tells that it is the maximum number returned by the random function. but as you say it'll break a lot of things, i personally prefer the old fashioned 1+random(2)
Wasn't there a plan to change the random() expression to also be able to use two values for a range? How about random(3) returns 1, 2, or 3 and random(0, 3) would return 0, 1, 2, or 3? You could have it both ways.