I'd say 0-based. I'm not even testing Construct before either all mathematics and computer software are made 1-based, or Construct is adjusted to how reality actually work.
4 mod 4 is 0, not 1. Sin, cos and tan centers around zero. A variable defaults to zero (don't tell me variables are also 1 by default in Construct). The value that is returned in place of "aaw, that's unset" is also zero, unless a NULL value is supported. The range of an unsigned byte is 0-255, not 1-256. The top-left position of a screen and object is 0,0, not 1,1. You move an object 0 pixels to not move it anywhere. In every situation when negative numbers are used, it's a pain to have 1 in the middle. I'm just going to be too annoyed over dealing with this that I'd rather stick to what I use now where things are randomly 0 and 1 based (because at least some features are 0-based).
Basically all those things you mentioned are zero-based in Construct. I think the only things where the 1-base shows are loops and arrays, where the loopindex of the first one is 1, not 0 (though if you run a for loop from 0 to 255, the first loopindex will be 0).
So yeah, if you don't regularly use arrays, pretty much the only time you need to remember the 1-base is with not-for loops. A minor annoyance, really. But an annoyance none the less.