vtrix
I'm at work now, but know that the root object can be whatever you want it to be: an object (a.k.a. dictionary), an array, a boolean, a number, a string or null.
By default, root is undefined (or should be, I don't remember what I do )
The brackets [] you see in the event sheet are just because I don't have a lot of options as far as formating the look of action/condition/expression. Those brackets should contain the path to a value. Nothing to do with type.
In the example with the Wizard class,
- root[] is the base (which in this case is an object)
- root["Wizard"] is the value at the "wizard" key in the root object, and it is also an object
- root["Wizard","hp"] is the value at the "hp" key contains in the object at the "Wizard" key of the root object.
and so on and so forth.
I'll keep calling this type "object", because that's what it is called in the official JSON documentation and in javascript, but do think of it as a dictionary (key value pair)
As far as confusion with objects in construct...
Well in construct you don't really have objects per se.
You have plugins, object-types (created from plugins) and instances (created from object-types).
You don't really have "objects" (well, the term is usually mis-used interchangeably as a shorthand for object-types or instances... talking about confusion ).
And in any case, object-types or instances have nothing to do with a JSON object.
I repeat again, an object in JSON is the same as a dictionary in construct2 (and in python it's also called a dictionary)