Index: /java/FramclipsePlugin/src/main/resources/framscript.dtd
===================================================================
--- /java/FramclipsePlugin/src/main/resources/framscript.dtd	(revision 312)
+++ /java/FramclipsePlugin/src/main/resources/framscript.dtd	(revision 313)
@@ -24,4 +24,5 @@
 <!ATTLIST element deprecated (false|true) "false">
 <!ATTLIST element default CDATA #IMPLIED>
+<!ATTLIST element flags CDATA #IMPLIED>
 
 <!-- important difference: no <arguments> tag means the argument number is not known
Index: /java/FramclipsePlugin/src/main/resources/framscript.xml
===================================================================
--- /java/FramclipsePlugin/src/main/resources/framscript.xml	(revision 312)
+++ /java/FramclipsePlugin/src/main/resources/framscript.xml	(revision 313)
@@ -28,9 +28,9 @@
 <description><![CDATA[General visual style properties.]]></description>
 		<element name="style" type="string"/>
-		<element name="name" type="string"/>
-		<element name="info" type="string"/>
-		<element name="code" type="string"/>
-		<element name="streload" function="true"/>
-		<element name="rebuild" function="true"/>
+		<element name="name" type="string" flags="19"/>
+		<element name="info" type="string" flags="19"/>
+		<element name="code" type="string" flags="35"/>
+		<element name="streload" function="true" flags="2"/>
+		<element name="rebuild" function="true" flags="34"/>
 		<element name="tex" type="integer" min="0" max="2" default="1"/>
 		<element name="smooth" type="integer" min="0" max="1" default="1"/>
@@ -40,30 +40,30 @@
 <description><![CDATA[Properties of a show for the Framsticks Theater (from the *.show file).]]></description>
 		<element name="show" type="string"/>
-		<element name="name" type="string"/>
-		<element name="info" type="string"/>
-		<element name="dispinfo" type="integer" min="0" max="2"/>
-		<element name="userspeed" type="integer" min="0" max="5" default="3"/>
-		<element name="showlog" type="integer" min="0" max="1"/>
-		<element name="code" type="string"/>
-		<element name="expdef" type="string"/>
-		<element name="reload" function="true"/>
-		<element name="dummy" function="true">
+		<element name="name" type="string" flags="50"/>
+		<element name="info" type="string" flags="50"/>
+		<element name="dispinfo" type="integer" min="0" max="2" flags="2"/>
+		<element name="userspeed" type="integer" min="0" max="5" default="3" flags="2"/>
+		<element name="showlog" type="integer" min="0" max="1" flags="2"/>
+		<element name="code" type="string" flags="34"/>
+		<element name="expdef" type="string" flags="34"/>
+		<element name="reload" function="true" flags="2"/>
+		<element name="dummy" function="true" flags="2">
 			<description><![CDATA[This is the empty item in the Theater's menu]]></description>
 		</element>
-		<element name="about" function="true"/>
-		<element name="regname" type="string"/>
-		<element name="prev_show" type="string"/>
-		<element name="mode" type="integer" min="0" max="2"/>
-		<element name="switchmode" type="integer" min="0" max="3"/>
-		<element name="switchtime" type="integer" min="0" max="9999">
+		<element name="about" function="true" flags="34"/>
+		<element name="regname" type="string" flags="35"/>
+		<element name="prev_show" type="string" flags="35"/>
+		<element name="mode" type="integer" min="0" max="2" flags="35"/>
+		<element name="switchmode" type="integer" min="0" max="3" flags="32"/>
+		<element name="switchtime" type="integer" min="0" max="9999" flags="32">
 			<description><![CDATA[time between switching (seconds)]]></description>
 		</element>
-		<element name="switchshows" type="string">
+		<element name="switchshows" type="string" flags="32">
 			<description><![CDATA[names of the shows participating in automatic switching (comma separated). Use * as a wildcard.]]></description>
 		</element>
-		<element name="includeshows" type="string">
+		<element name="includeshows" type="string" flags="32">
 			<description><![CDATA[names of shows included in the show menu. Use * as a wildcard.]]></description>
 		</element>
-		<element name="excludeshows" type="string">
+		<element name="excludeshows" type="string" flags="32">
 			<description><![CDATA[names of shows excluded from the show menu. Use * as a wildcard.]]></description>
 		</element>
@@ -88,22 +88,22 @@
 	<type name="CheckpointEvent" context="Global context">
 <description><![CDATA[CheckpointEvent]]></description>
-		<element name="index" type="integer"/>
-		<element name="slave" type="Simulator"/>
-		<element name="ticks" type="integer"/>
-		<element name="data" type="untyped"/>
+		<element name="index" type="integer" flags="1"/>
+		<element name="slave" type="Simulator" flags="1"/>
+		<element name="ticks" type="integer" flags="1"/>
+		<element name="data" type="untyped" flags="1"/>
 	</type>
 	<type name="Collision" context="Global context">
 <description><![CDATA[Used in collision handlers (On___Collision). Contains the detailed information about the colliding parts (Part1,Part2 and their associated MechParts and Creatures). See the onFoodCollision() function in standard.expdef]]></description>
-		<element name="Part1" type="Object"/>
-		<element name="Part2" type="Object"/>
-		<element name="MechPart1" type="Object"/>
-		<element name="MechPart2" type="Object"/>
-		<element name="Creature1" type="Object"/>
-		<element name="Creature2" type="Object"/>
+		<element name="Part1" type="Object" flags="1"/>
+		<element name="Part2" type="Object" flags="1"/>
+		<element name="MechPart1" type="Object" flags="1"/>
+		<element name="MechPart2" type="Object" flags="1"/>
+		<element name="Creature1" type="Object" flags="1"/>
+		<element name="Creature2" type="Object" flags="1"/>
 	</type>
 	<type name="CrCollision" context="Global context">
 <description><![CDATA[Used in creature collision handlers (On___CrCollision).]]></description>
-		<element name="Creature1" type="Object"/>
-		<element name="Creature2" type="Object"/>
+		<element name="Creature1" type="Object" flags="1"/>
+		<element name="Creature2" type="Object" flags="1"/>
 	</type>
 	<type name="Creature" context="Global context">
@@ -113,17 +113,17 @@
 See also: Population.]]></description>
 		<element name="name" type="string"/>
-		<element name="genotype" type="string"/>
+		<element name="genotype" type="string" flags="1"/>
 		<element name="info" type="string">
 			<description><![CDATA[Additional info or comments]]></description>
 		</element>
-		<element name="group" type="untyped" deprecated="true">
+		<element name="group" type="untyped" deprecated="true" flags="8227">
 			<description><![CDATA[Deprecated. Use population instead.]]></description>
 		</element>
-		<element name="population" type="untyped"/>
-		<element name="index" type="integer">
+		<element name="population" type="untyped" flags="35"/>
+		<element name="index" type="integer" flags="35">
 			<description><![CDATA[Note that the index changes depending on the current creature position in the population. Use Creature.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
 		</element>
 		<element name="gnum" type="integer"/>
-		<element name="buildproblems" type="integer"/>
+		<element name="buildproblems" type="integer" flags="34"/>
 		<element name="energ0" type="float"/>
 		<element name="idleen" type="float"/>
@@ -144,5 +144,5 @@
 			<description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
 		</element>
-		<element name="selfcolstate" function="true" type="integer">
+		<element name="selfcolstate" function="true" type="integer" flags="32">
 			<description><![CDATA[Current self-collision state. In old versions this was a field, not a function.]]></description>
 <arguments/></element>
@@ -155,39 +155,39 @@
 		<element name="vertpos" type="float"/>
 		<element name="vertvel" type="float"/>
-		<element name="pos_x" type="float">
+		<element name="pos_x" type="float" flags="3">
 			<description><![CDATA[(pos_x,pos_y,pos_z) is the point of minimal coordinates ("bottom left corner") of the creature, including imaginary Part sizes (Part.s, usually 1.0). See also: Creature.moveAbs]]></description>
 		</element>
-		<element name="pos_y" type="float">
+		<element name="pos_y" type="float" flags="3">
 			<description><![CDATA[See Creature.pos_x]]></description>
 		</element>
-		<element name="pos_z" type="float">
+		<element name="pos_z" type="float" flags="3">
 			<description><![CDATA[See Creature.pos_x]]></description>
 		</element>
-		<element name="size_x" type="float">
+		<element name="size_x" type="float" flags="3">
 			<description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including the imaginary part sizes (Part.s, usually 1.0). A creature consisting of a single default Part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
 See also: Creature.moveAbs]]></description>
 		</element>
-		<element name="size_y" type="float">
+		<element name="size_y" type="float" flags="3">
 			<description><![CDATA[See Creature.size_x]]></description>
 		</element>
-		<element name="size_z" type="float">
+		<element name="size_z" type="float" flags="3">
 			<description><![CDATA[See Creature.size_x]]></description>
 		</element>
-		<element name="center_x" type="float">
+		<element name="center_x" type="float" flags="1">
 			<description><![CDATA[Center of gravity]]></description>
 		</element>
-		<element name="center_y" type="float">
+		<element name="center_y" type="float" flags="1">
 			<description><![CDATA[Center of gravity]]></description>
 		</element>
-		<element name="center_z" type="float">
+		<element name="center_z" type="float" flags="1">
 			<description><![CDATA[Center of gravity]]></description>
 		</element>
-		<element name="numparts" type="integer"/>
-		<element name="numjoints" type="integer"/>
-		<element name="numneurons" type="integer"/>
+		<element name="numparts" type="integer" flags="3"/>
+		<element name="numjoints" type="integer" flags="3"/>
+		<element name="numneurons" type="integer" flags="3"/>
 		<element name="user1" type="untyped"/>
 		<element name="user2" type="untyped"/>
 		<element name="user3" type="untyped"/>
-		<element name="move" function="true" type="void">
+		<element name="move" function="true" type="void" flags="32">
 			<description><![CDATA[Shift the creature by a given vector.]]></description>
 			<arguments>
@@ -197,5 +197,5 @@
 			</arguments>
 		</element>
-		<element name="moveAbs" function="true" type="void">
+		<element name="moveAbs" function="true" type="void" flags="32">
 			<description><![CDATA[Moves the creature so that its origin (pos_x,pos_y,pos_z) is placed at the given location. The origin is the point of minimal coordinates ("bottom left corner"), including imaginary part sizes (Part.s, usually 1.0).
 Assuming a simple single-stick creature "X" having parts at (0,0,0) and (1,0,0),
@@ -213,5 +213,5 @@
 			</arguments>
 		</element>
-		<element name="moveLocal" function="true" type="void">
+		<element name="moveLocal" function="true" type="void" flags="32">
 			<description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
 			<arguments>
@@ -221,5 +221,5 @@
 			</arguments>
 		</element>
-		<element name="localToWorld" function="true" type="XYZ">
+		<element name="localToWorld" function="true" type="XYZ" flags="32">
 			<description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
 			<arguments>
@@ -229,5 +229,5 @@
 			</arguments>
 		</element>
-		<element name="worldToLocal" function="true" type="XYZ">
+		<element name="worldToLocal" function="true" type="XYZ" flags="32">
 			<description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
 			<arguments>
@@ -237,8 +237,8 @@
 			</arguments>
 		</element>
-		<element name="orient" type="Orient">
+		<element name="orient" type="Orient" flags="33">
 			<description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
 		</element>
-		<element name="rotate" function="true" type="void">
+		<element name="rotate" function="true" type="void" flags="32">
 			<description><![CDATA[Rotate the creature around X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
 			<arguments>
@@ -248,5 +248,5 @@
 			</arguments>
 		</element>
-		<element name="rotateLocal" function="true" type="void">
+		<element name="rotateLocal" function="true" type="void" flags="32">
 			<description><![CDATA[Rotate the creature around (local) X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
 			<arguments>
@@ -256,56 +256,56 @@
 			</arguments>
 		</element>
-		<element name="drive" type="XYZ">
+		<element name="drive" type="XYZ" flags="34">
 			<description><![CDATA[Measured in global coordinates]]></description>
 		</element>
-		<element name="localDrive" type="XYZ">
+		<element name="localDrive" type="XYZ" flags="34">
 			<description><![CDATA[Measured in local coordinates, that is, with respect to the current orientation of the creature.
 See also: Creature.orient]]></description>
 		</element>
-		<element name="getPart" function="true" type="Part">
+		<element name="getPart" function="true" type="Part" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getJoint" function="true" type="Joint">
+		<element name="getJoint" function="true" type="Joint" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getNeuroDef" function="true" type="NeuroDef">
+		<element name="getNeuroDef" function="true" type="NeuroDef" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getMechPart" function="true" type="MechPart">
+		<element name="getMechPart" function="true" type="MechPart" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getMechJoint" function="true" type="MechJoint">
+		<element name="getMechJoint" function="true" type="MechJoint" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getNeuro" function="true" type="Neuro">
+		<element name="getNeuro" function="true" type="Neuro" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
-		<element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
-		<element name="currentGeometryAsF0" function="true" type="string"><arguments/></element>
-		<element name="geno" type="Geno">
+		<element name="selfmask" type="integer" min="0" max="2147483647" default="0" flags="32"/>
+		<element name="othermask" type="integer" min="0" max="2147483647" default="0" flags="32"/>
+		<element name="currentGeometryAsF0" function="true" type="string" flags="32"><arguments/></element>
+		<element name="geno" type="Geno" flags="35">
 			<description><![CDATA[Source genotype for this creature]]></description>
 		</element>
-		<element name="model" type="Model">
+		<element name="model" type="Model" flags="35">
 			<description><![CDATA[Source Model for this creature]]></description>
 		</element>
-		<element name="liveModel" type="Model">
+		<element name="liveModel" type="Model" flags="35">
 			<description><![CDATA[A Model object that is a copy of the current (temporary) geometry of this creature]]></description>
 		</element>
-		<element name="uid" type="string"/>
-		<element name="signals" type="CreatureSignals"/>
-		<element name="boundingBoxCollisions" function="true" type="integer">
+		<element name="uid" type="string" flags="33"/>
+		<element name="signals" type="CreatureSignals" flags="35"/>
+		<element name="boundingBoxCollisions" function="true" type="integer" flags="34">
 			<description><![CDATA[Checks approximate collisions for the selected creature.
 Returns the collision mask calculated as ( creature.selfmask & other_creatures.othermask ).
@@ -341,5 +341,5 @@
 			</arguments>
 		</element>
-		<element name="addProperty" function="true" type="Signal">
+		<element name="addProperty" function="true" type="Signal" flags="256">
 			<description><![CDATA[Create a signal that automatically reflects one of the creature's properties (i.e. its power is equal to the property value).
 Example:
@@ -388,6 +388,6 @@
 			</arguments>
 		</element>
-		<element name="size" type="integer"/>
-		<element name="clear" function="true" type="void"><arguments/></element>
+		<element name="size" type="integer" flags="1"/>
+		<element name="clear" function="true" type="void" flags="1"><arguments/></element>
 	</type>
 	<type name="CreatureSnapshot" context="Global context">
@@ -437,10 +437,10 @@
 		<element name="user2" type="untyped"/>
 		<element name="user3" type="untyped"/>
-		<element name="orient" type="Orient">
+		<element name="orient" type="Orient" flags="32">
 			<description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
 		</element>
-		<element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
-		<element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
-		<element name="uid" type="string"/>
+		<element name="selfmask" type="integer" min="0" max="2147483647" default="0" flags="32"/>
+		<element name="othermask" type="integer" min="0" max="2147483647" default="0" flags="32"/>
+		<element name="uid" type="string" flags="32"/>
 	</type>
 	<type name="Dictionary" context="Global context">
@@ -450,22 +450,22 @@
 var i;
 for(i=0;i<d.size;i++) Simulator.print(d.getKey(i)+" is "+d.get(i));]]></description>
-		<element name="clear" function="true" type="void"><arguments/></element>
-		<element name="size" type="integer"/>
-		<element name="remove" function="true" type="void">
+		<element name="clear" function="true" type="void" flags="256"><arguments/></element>
+		<element name="size" type="integer" flags="257"/>
+		<element name="remove" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="key" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="get" function="true" type="untyped">
+		<element name="get" function="true" type="untyped" flags="256">
 			<arguments>
 				<argument name="key" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="getKey" function="true" type="string">
+		<element name="getKey" function="true" type="string" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="set" function="true" type="void">
+		<element name="set" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="key" type="untyped"/>
@@ -473,5 +473,5 @@
 			</arguments>
 		</element>
-		<element name="find" function="true" type="string">
+		<element name="find" function="true" type="string" flags="256">
 			<description><![CDATA[returns the element key or null if not found]]></description>
 			<arguments>
@@ -480,12 +480,12 @@
 		</element>
 		<element name="new" function="true" type="Dictionary"><arguments/></element>
-		<element name="toString" type="string"/>
+		<element name="toString" type="string" flags="257"/>
 	</type>
 	<type name="File" context="Global context">
 <description><![CDATA[Provides read/write access to the filesystem. Can be used in the experiment definition to save the experiment state (onExpSave) or any other information. Files are created in the "data/scripts_output" subdirectory, which is either near the Framsticks executable (if this subdirectory is writable) or in your user Documents directory.]]></description>
-		<element name="name" type="string"/>
-		<element name="path" type="string"/>
+		<element name="name" type="string" flags="1"/>
+		<element name="path" type="string" flags="1"/>
 		<element name="info" type="string"/>
-		<element name="writeNameObject" function="true" type="void">
+		<element name="writeNameObject" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="name" type="string"/>
@@ -493,15 +493,15 @@
 			</arguments>
 		</element>
-		<element name="writeObject" function="true" type="void">
+		<element name="writeObject" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="writeObjectBegin" function="true" type="void">
+		<element name="writeObjectBegin" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="writeObjectField" function="true" type="void">
+		<element name="writeObjectField" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
@@ -509,10 +509,10 @@
 			</arguments>
 		</element>
-		<element name="writeObjectFields" function="true" type="void">
+		<element name="writeObjectFields" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="writeObjectFieldForce" function="true" type="void">
+		<element name="writeObjectFieldForce" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
@@ -520,29 +520,29 @@
 			</arguments>
 		</element>
-		<element name="writeObjectFieldsForce" function="true" type="void">
+		<element name="writeObjectFieldsForce" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="writeObjectEnd" function="true" type="void"><arguments/></element>
-		<element name="writeString" function="true" type="void">
+		<element name="writeObjectEnd" function="true" type="void" flags="32"><arguments/></element>
+		<element name="writeString" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="anything" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="writeComment" function="true" type="void">
+		<element name="writeComment" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="anything" type="string"/>
 			</arguments>
 		</element>
-		<element name="readLine" function="true" type="string"><arguments/></element>
-		<element name="readObject" function="true" type="void">
+		<element name="readLine" function="true" type="string" flags="32"><arguments/></element>
+		<element name="readObject" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="EOF" type="integer" min="0" max="1"/>
-		<element name="readUntilEOF" function="true" type="string"><arguments/></element>
-		<element name="getContents" function="true" type="string">
+		<element name="EOF" type="integer" min="0" max="1" flags="33"/>
+		<element name="readUntilEOF" function="true" type="string" flags="32"><arguments/></element>
+		<element name="getContents" function="true" type="string" flags="32">
 			<description><![CDATA[Shortcut to: var f=File.open(filename); c=f.readUntilEOF(); f.close(); return c;]]></description>
 			<arguments>
@@ -550,5 +550,5 @@
 			</arguments>
 		</element>
-		<element name="create" function="true" type="File">
+		<element name="create" function="true" type="File" flags="32">
 			<arguments>
 				<argument name="filename" type="string"/>
@@ -556,5 +556,5 @@
 			</arguments>
 		</element>
-		<element name="createDirect" function="true" type="File">
+		<element name="createDirect" function="true" type="File" flags="32">
 			<arguments>
 				<argument name="filename" type="string"/>
@@ -562,5 +562,5 @@
 			</arguments>
 		</element>
-		<element name="append" function="true" type="File ">
+		<element name="append" function="true" type="File " flags="32">
 			<arguments>
 				<argument name="filename" type="string"/>
@@ -568,5 +568,5 @@
 			</arguments>
 		</element>
-		<element name="appendDirect" function="true" type="File ">
+		<element name="appendDirect" function="true" type="File " flags="32">
 			<arguments>
 				<argument name="filename" type="string"/>
@@ -574,27 +574,27 @@
 			</arguments>
 		</element>
-		<element name="flush" function="true" type="void">
+		<element name="flush" function="true" type="void" flags="32">
 			<description><![CDATA[Useful for unbuffered disk files only (openDirect, appendDirect)]]></description>
 <arguments/></element>
-		<element name="open" function="true" type="File ">
+		<element name="open" function="true" type="File " flags="32">
 			<arguments>
 				<argument name="filename" type="string"/>
 			</arguments>
 		</element>
-		<element name="new" function="true" type="File "><arguments/></element>
-		<element name="newFromString" function="true" type="File ">
+		<element name="new" function="true" type="File " flags="32"><arguments/></element>
+		<element name="newFromString" function="true" type="File " flags="32">
 			<arguments>
 				<argument name="text" type="string"/>
 			</arguments>
 		</element>
-		<element name="close" function="true" type="string">
+		<element name="close" function="true" type="string" flags="32">
 			<description><![CDATA[returns file contents if it has been buffered]]></description>
 <arguments/></element>
-		<element name="exists" function="true" type="integer" min="0" max="1">
+		<element name="exists" function="true" type="integer" min="0" max="1" flags="32">
 			<description><![CDATA[Sample:
 File.exists("default.sim") -> return 0 or 1]]></description>
 <arguments/></element>
-		<element name="pathseparator" type="string"/>
-		<element name="system" function="true" type="integer">
+		<element name="pathseparator" type="string" flags="33"/>
+		<element name="system" function="true" type="integer" flags="32">
 			<description><![CDATA[Invokes a system command and returns its exit code (0 usually means the command was completed successfully).
 
@@ -610,9 +610,9 @@
 <description><![CDATA[GenePool objects are accessed by GenePools[index], or Genotype.genepool and created by GenePools.addGroup(). Usage of the static GenePool object is no longer recommended. See also: GenePools]]></description>
 		<element name="name" type="string"/>
-		<element name="index" type="integer"/>
-		<element name="size" type="integer">
+		<element name="index" type="integer" flags="35"/>
+		<element name="size" type="integer" flags="3">
 			<description><![CDATA[In standard.expdef, this is equivalent to the number of unique genotypes. Standard experiment definition uses the Genotype.instances field to indicate that some genotypes exist in multiple instances despite having only one item in the group. Other experiment definitions may create multiple copies of the same genotype.]]></description>
 		</element>
-		<element name="totalpop" type="integer">
+		<element name="totalpop" type="integer" flags="3">
 			<description><![CDATA[Takes into account the Genotype.instances field (which may give the total number of instances depending on the experiment definition).]]></description>
 		</element>
@@ -631,10 +631,10 @@
 better than the average one.]]></description>
 		</element>
-		<element name="get" function="true" type="Genotype">
+		<element name="get" function="true" type="Genotype" flags="34">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="findGeno" function="true" type="integer" deprecated="true">
+		<element name="findGeno" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Finds the Genotype matching the supplied Geno object.
 returns genotype index or -1 if not found.
@@ -644,5 +644,5 @@
 			</arguments>
 		</element>
-		<element name="findGenotype" function="true" type="Genotype">
+		<element name="findGenotype" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Finds the Genotype matching the supplied Genotype object, Geno object, or genotype string.
 returns genotype object or null if not found.]]></description>
@@ -651,10 +651,10 @@
 			</arguments>
 		</element>
-		<element name="findUID" function="true" type="integer">
+		<element name="findUID" function="true" type="integer" flags="34">
 			<arguments>
 				<argument name="uid" type="string"/>
 			</arguments>
 		</element>
-		<element name="addGeno" function="true" type="Genotype" deprecated="true">
+		<element name="addGeno" function="true" type="Genotype" deprecated="true" flags="8226">
 			<description><![CDATA[Creates a new Genotype from the supplied Geno object.
 Returns the created Genotype.
@@ -664,5 +664,5 @@
 			</arguments>
 		</element>
-		<element name="createFromGeno" function="true" type="Genotype" deprecated="true">
+		<element name="createFromGeno" function="true" type="Genotype" deprecated="true" flags="8226">
 			<description><![CDATA[same as addGeno (to comply with createFrom... convention)
 Deprecated. Use the more versatile add() instead of this function.]]></description>
@@ -671,5 +671,5 @@
 			</arguments>
 		</element>
-		<element name="createFromString" function="true" type="Genotype" deprecated="true">
+		<element name="createFromString" function="true" type="Genotype" deprecated="true" flags="8226">
 			<description><![CDATA[Uses the supplied string argument
 Deprecated. Use the more versatile add() instead of this function.]]></description>
@@ -678,5 +678,5 @@
 			</arguments>
 		</element>
-		<element name="add" function="true" type="Genotype">
+		<element name="add" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Creates a new Genotype from the supplied Genotype, Geno or string.
 Returns the created Genotype.]]></description>
@@ -685,20 +685,20 @@
 			</arguments>
 		</element>
-		<element name="worst" function="true" type="Genotype">
+		<element name="worst" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns the genotype object having the lowest fitness. Unrated genotypes (instances==0) are ranked lower than those having at least one instance.]]></description>
 <arguments/></element>
-		<element name="best" function="true" type="Genotype">
+		<element name="best" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns the genotype object having the highest fitness. Unrated genotypes (instances==0) are ranked lower than those having at least one instance.]]></description>
 <arguments/></element>
-		<element name="random" function="true" type="Genotype">
+		<element name="random" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns a random genotype object]]></description>
 <arguments/></element>
-		<element name="roulette" function="true" type="Genotype">
+		<element name="roulette" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns a fitness-proportional genotype object]]></description>
 <arguments/></element>
-		<element name="revroulette" function="true" type="Genotype">
+		<element name="revroulette" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns a reverse fitness-proportional genotype object]]></description>
 <arguments/></element>
-		<element name="tournament" function="true" type="Genotype">
+		<element name="tournament" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns a tournament winner genotype object]]></description>
 			<arguments>
@@ -706,5 +706,5 @@
 			</arguments>
 		</element>
-		<element name="randomLikeGeno" function="true" type="Genotype">
+		<element name="randomLikeGeno" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns a random genotype index similar to the target genotype. Read about details:
 http://www.framsticks.com/node/795
@@ -715,5 +715,5 @@
 			</arguments>
 		</element>
-		<element name="rouletteLikeGeno" function="true" type="Genotype">
+		<element name="rouletteLikeGeno" function="true" type="Genotype" flags="34">
 			<description><![CDATA[Returns a random genotype similar to the target genotype, fitness-proportional. Read about details:
 http://www.framsticks.com/node/795
@@ -724,5 +724,5 @@
 			</arguments>
 		</element>
-		<element name="delete" function="true" type="void">
+		<element name="delete" function="true" type="void" flags="34">
 			<description><![CDATA[Deletes a genotype.]]></description>
 			<arguments>
@@ -730,5 +730,5 @@
 			</arguments>
 		</element>
-		<element name="deleteOne" function="true" type="void">
+		<element name="deleteOne" function="true" type="void" flags="34">
 			<description><![CDATA[Deletes one individual, i.e. decreases its 'instances' and deletes the genotype if the 'instances' goes to 0.]]></description>
 			<arguments>
@@ -736,15 +736,15 @@
 			</arguments>
 		</element>
-		<element name="clear" function="true" type="void">
+		<element name="clear" function="true" type="void" flags="34">
 			<description><![CDATA[Delete all genotypes. GenePools[group].clear() is equivalent to GenePools.clearGroup(group)]]></description>
 <arguments/></element>
-		<element name="mergeInstances" function="true" type="void">
+		<element name="mergeInstances" function="true" type="void" flags="34">
 			<description><![CDATA[Merge instances of the same genotype]]></description>
 <arguments/></element>
-		<element name="splitInstances" function="true" type="void">
+		<element name="splitInstances" function="true" type="void" flags="34">
 			<description><![CDATA[Split genotype instances]]></description>
 <arguments/></element>
-		<element name="iterator" type="Object"/>
-		<element name="getStatsMin" function="true" type="float">
+		<element name="iterator" type="Object" flags="291"/>
+		<element name="getStatsMin" function="true" type="float" flags="32">
 			<description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
 			<arguments>
@@ -752,5 +752,5 @@
 			</arguments>
 		</element>
-		<element name="getStatsAvg" function="true" type="float">
+		<element name="getStatsAvg" function="true" type="float" flags="32">
 			<description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
 			<arguments>
@@ -758,5 +758,5 @@
 			</arguments>
 		</element>
-		<element name="getStatsMax" function="true" type="float">
+		<element name="getStatsMax" function="true" type="float" flags="32">
 			<description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
 			<arguments>
@@ -779,12 +779,12 @@
 g.info="my favorite genotype";
 g.moveTo(GenePools[0]);]]></description>
-		<element name="group" type="integer" deprecated="true">
+		<element name="group" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Index of the currently selected group (GenePool).]]></description>
 		</element>
-		<element name="size" type="integer"/>
-		<element name="genotype" type="integer" deprecated="true">
+		<element name="size" type="integer" flags="3"/>
+		<element name="genotype" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Index of the currently selected genotype or -1 if no genotype is selected.]]></description>
 		</element>
-		<element name="newGenotype" function="true" type="void" deprecated="true">
+		<element name="newGenotype" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Makes a new genotype from the supplied string and select the genotype. The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected. (call "copySelected" if you want to add this gentype to the genotype group).]]></description>
 			<arguments>
@@ -792,8 +792,8 @@
 			</arguments>
 		</element>
-		<element name="deleteSelected" function="true" type="void" deprecated="true">
+		<element name="deleteSelected" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Deletes selected genotype from the gene pool (uses the selected genotype object).]]></description>
 <arguments/></element>
-		<element name="deleteOne" function="true" type="void" deprecated="true">
+		<element name="deleteOne" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Deletes one individual from the gene pool = decreases 'instances' and deletes the genotype if the 'instances' goes to 0.]]></description>
 			<arguments>
@@ -801,5 +801,5 @@
 			</arguments>
 		</element>
-		<element name="copySelected" function="true" type="void" deprecated="true">
+		<element name="copySelected" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Copies the selected genotype to another group.]]></description>
 			<arguments>
@@ -807,8 +807,8 @@
 			</arguments>
 		</element>
-		<element name="getFromCreature" function="true" type="void" deprecated="true">
+		<element name="getFromCreature" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Copies a genotype from the selected creature. The resulting genotype is stored in the static Genotype object detached from the genotype group.]]></description>
 <arguments/></element>
-		<element name="getFromCreatureObject" function="true" type="void" deprecated="true">
+		<element name="getFromCreatureObject" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Copies a genotype from the creature object passed in argument. The resulting genotype is stored in the static Genotype object detached from the genotype group.]]></description>
 			<arguments>
@@ -816,11 +816,11 @@
 			</arguments>
 		</element>
-		<element name="addPerformanceFromCreature" function="true" type="void" deprecated="true">
+		<element name="addPerformanceFromCreature" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Updates the current Genotype's performance values merging them with the current Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
 <arguments/></element>
-		<element name="mutateSelected" function="true" type="void" deprecated="true">
+		<element name="mutateSelected" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Mutates the selected genotype. The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected.]]></description>
 <arguments/></element>
-		<element name="crossoverSelected" function="true" type="void" deprecated="true">
+		<element name="crossoverSelected" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Crossovers the selected genotype with another one (from the genotype group). The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected.]]></description>
 			<arguments>
@@ -828,17 +828,17 @@
 			</arguments>
 		</element>
-		<element name="worst" function="true" type="integer" deprecated="true">
+		<element name="worst" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Gets worst genotype index.]]></description>
 <arguments/></element>
-		<element name="random" function="true" type="integer" deprecated="true">
+		<element name="random" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Gets random genotype index.]]></description>
 <arguments/></element>
-		<element name="roulette" function="true" type="integer" deprecated="true">
+		<element name="roulette" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Gets fitness-proportional genotype index.]]></description>
 <arguments/></element>
-		<element name="revroulette" function="true" type="integer" deprecated="true">
+		<element name="revroulette" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Get reverse fitness-proportional genotype index.]]></description>
 <arguments/></element>
-		<element name="tournament" function="true" type="integer" deprecated="true">
+		<element name="tournament" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Gets tournament winner genotype.]]></description>
 			<arguments>
@@ -846,5 +846,5 @@
 			</arguments>
 		</element>
-		<element name="randomLikeThis" function="true" type="integer" deprecated="true">
+		<element name="randomLikeThis" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Gets a random genotype index similar to the selected one.]]></description>
 			<arguments>
@@ -852,5 +852,5 @@
 			</arguments>
 		</element>
-		<element name="likeThisRoulette" function="true" type="integer" deprecated="true">
+		<element name="likeThisRoulette" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Gets a random genotype similar to the selected one, fitness-proportional.]]></description>
 			<arguments>
@@ -858,11 +858,11 @@
 			</arguments>
 		</element>
-		<element name="findGenotype" function="true" type="integer" deprecated="true">
+		<element name="findGenotype" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Finds a genotype matching the current genotype. It only makes sense when the current genotype is a result of the genetic operator.]]></description>
 <arguments/></element>
-		<element name="findGenotypeForCreature" function="true" type="integer" deprecated="true">
+		<element name="findGenotypeForCreature" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Finds a genotype matching the selected creature.]]></description>
 <arguments/></element>
-		<element name="addGroup" function="true" type="GenePool">
+		<element name="addGroup" function="true" type="GenePool" flags="34">
 			<description><![CDATA[Adds a new gene pool.]]></description>
 			<arguments>
@@ -870,5 +870,5 @@
 			</arguments>
 		</element>
-		<element name="deleteGroup" function="true" type="void">
+		<element name="deleteGroup" function="true" type="void" flags="34">
 			<description><![CDATA[Removes a gene pool.]]></description>
 			<arguments>
@@ -876,8 +876,8 @@
 			</arguments>
 		</element>
-		<element name="clear" function="true" type="void">
+		<element name="clear" function="true" type="void" flags="34">
 			<description><![CDATA[Removes all gene pools except the first one.]]></description>
 <arguments/></element>
-		<element name="clearGroup" function="true" type="void" deprecated="true">
+		<element name="clearGroup" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[GenePools[group].clear() is more "object oriented" than GenePools.clearGroup(group)]]></description>
 			<arguments>
@@ -885,14 +885,14 @@
 			</arguments>
 		</element>
-		<element name="get" function="true" type="GenePool">
+		<element name="get" function="true" type="GenePool" flags="34">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="iterator" type="Object"/>
+		<element name="iterator" type="Object" flags="289"/>
 	</type>
 	<type name="GenMan" context="Global context">
 <description><![CDATA[Manages various genetic operations, using appropriate operators for the argument genotype format.]]></description>
-		<element name="gen_hist" type="integer" min="0" max="1" default="0">
+		<element name="gen_hist" type="integer" min="0" max="1" default="0" flags="2">
 			<description><![CDATA[Required for phylogenetic analysis]]></description>
 		</element>
@@ -904,8 +904,8 @@
 			<description><![CDATA[If active, information about employed mutation method will be stored in the 'info' field of each mutated genotype.]]></description>
 		</element>
-		<element name="operReport" function="true" type="void">
+		<element name="operReport" function="true" type="void" flags="2">
 			<description><![CDATA[Show available genetic operators]]></description>
 <arguments/></element>
-		<element name="toHTML" function="true" type="string">
+		<element name="toHTML" function="true" type="string" flags="2">
 			<description><![CDATA[returns genotype expressed as colored HTML]]></description>
 			<arguments>
@@ -913,5 +913,5 @@
 			</arguments>
 		</element>
-		<element name="toHTMLshort" function="true" type="string">
+		<element name="toHTMLshort" function="true" type="string" flags="2">
 			<description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
 			<arguments>
@@ -919,5 +919,5 @@
 			</arguments>
 		</element>
-		<element name="validate" function="true" type="Geno">
+		<element name="validate" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns validated (if possible) Geno object from supplied Geno]]></description>
 			<arguments>
@@ -925,5 +925,5 @@
 			</arguments>
 		</element>
-		<element name="mutate" function="true" type="Geno">
+		<element name="mutate" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns mutated Geno object from supplied Geno]]></description>
 			<arguments>
@@ -931,5 +931,5 @@
 			</arguments>
 		</element>
-		<element name="crossOver" function="true" type="Geno">
+		<element name="crossOver" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns crossed over genotype]]></description>
 			<arguments>
@@ -938,5 +938,5 @@
 			</arguments>
 		</element>
-		<element name="getSimplest" function="true" type="Geno">
+		<element name="getSimplest" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns the simplest genotype for a given encoding (format). 0 means f0, 4 means f4, etc.]]></description>
 			<arguments>
@@ -944,30 +944,30 @@
 			</arguments>
 		</element>
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
-		<element name="genoper_f0" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f1" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f2" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f3" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f4" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f9" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_fF" type="integer" min="0" max="0">
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
+		<element name="genoper_f0" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f1" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f2" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f3" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f4" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f9" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_fF" type="integer" min="0" max="0" flags="65">
 			<description><![CDATA[]]></description>
 		</element>
@@ -1408,38 +1408,38 @@
 	<type name="GenManStats" context="Global context">
 <description><![CDATA[Statistics for genetic operations.]]></description>
-		<element name="gen_count" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_mvalid" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_mvalidated" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_minvalid" type="integer">
+		<element name="gen_count" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_mvalid" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_mvalidated" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_minvalid" type="integer" flags="1">
 			<description><![CDATA[couldn't be repaired]]></description>
 		</element>
-		<element name="gen_mfailed" type="integer">
+		<element name="gen_mfailed" type="integer" flags="1">
 			<description><![CDATA[couldn't be performed]]></description>
 		</element>
-		<element name="gen_xovalid" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_xovalidated" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_xoinvalid" type="integer">
+		<element name="gen_xovalid" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_xovalidated" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_xoinvalid" type="integer" flags="1">
 			<description><![CDATA[couldn't be repaired]]></description>
 		</element>
-		<element name="gen_xofailed" type="integer">
+		<element name="gen_xofailed" type="integer" flags="1">
 			<description><![CDATA[couldn't be performed]]></description>
 		</element>
-		<element name="gen_mutimpr" type="float">
+		<element name="gen_mutimpr" type="float" flags="1">
 			<description><![CDATA[total cumulative mutation change]]></description>
 		</element>
-		<element name="gen_xoimpr" type="float">
+		<element name="gen_xoimpr" type="float" flags="1">
 			<description><![CDATA[total cumulative crossover change]]></description>
 		</element>
-		<element name="clrstats" function="true" type="void">
+		<element name="clrstats" function="true" type="void" flags="2">
 			<description><![CDATA[]]></description>
 <arguments/></element>
@@ -1448,22 +1448,22 @@
 <description><![CDATA[All information about a single genotype.
 This is a genetics-only object which does not contain any performance data. See also: Genotype class]]></description>
-		<element name="name" type="string"/>
-		<element name="rawgenotype" type="string">
+		<element name="name" type="string" flags="256"/>
+		<element name="rawgenotype" type="string" flags="257">
 			<description><![CDATA[Genotype, excluding the format specifier]]></description>
 		</element>
-		<element name="info" type="string">
+		<element name="info" type="string" flags="256">
 			<description><![CDATA[Additional information or comments]]></description>
 		</element>
-		<element name="format" type="integer">
+		<element name="format" type="integer" flags="257">
 			<description><![CDATA[Genotype format]]></description>
 		</element>
-		<element name="genotype" type="string"/>
-		<element name="isValid" type="integer" min="0" max="1"/>
-		<element name="getConverted" function="true" type="Geno">
+		<element name="genotype" type="string" flags="257"/>
+		<element name="isValid" type="integer" min="0" max="1" flags="257"/>
+		<element name="getConverted" function="true" type="Geno" flags="256">
 			<arguments>
 				<argument name="format" type="integer"/>
 			</arguments>
 		</element>
-		<element name="f0genotype" type="string">
+		<element name="f0genotype" type="string" flags="257">
 			<description><![CDATA[converted to f0 genotype]]></description>
 		</element>
@@ -1482,6 +1482,6 @@
 			</arguments>
 		</element>
-		<element name="autoname" type="string"/>
-		<element name="toVector" type="Vector"/>
+		<element name="autoname" type="string" flags="257"/>
+		<element name="toVector" type="Vector" flags="257"/>
 		<element name="newFromVector" function="true" type="Geno">
 			<arguments>
@@ -1498,22 +1498,22 @@
 			<description><![CDATA[Additional information or comments]]></description>
 		</element>
-		<element name="simi" type="float">
+		<element name="simi" type="float" flags="3">
 			<description><![CDATA[Read about details:
 http://www.framsticks.com/node/795
 http://www.framsticks.com/node/890]]></description>
 		</element>
-		<element name="energ0" type="float"/>
-		<element name="strsiz" type="float"/>
-		<element name="strjoints" type="float"/>
-		<element name="nnsiz" type="float"/>
-		<element name="nncon" type="float"/>
-		<element name="numparts" type="float"/>
-		<element name="numjoints" type="float"/>
-		<element name="numneurons" type="float"/>
-		<element name="numconnections" type="float"/>
+		<element name="energ0" type="float" flags="3"/>
+		<element name="strsiz" type="float" flags="35"/>
+		<element name="strjoints" type="float" flags="35"/>
+		<element name="nnsiz" type="float" flags="35"/>
+		<element name="nncon" type="float" flags="35"/>
+		<element name="numparts" type="float" flags="3"/>
+		<element name="numjoints" type="float" flags="3"/>
+		<element name="numneurons" type="float" flags="3"/>
+		<element name="numconnections" type="float" flags="3"/>
 		<element name="num" type="integer"/>
 		<element name="gnum" type="integer"/>
-		<element name="popsiz" type="integer"/>
-		<element name="instances" type="integer">
+		<element name="popsiz" type="integer" flags="32"/>
+		<element name="instances" type="integer" flags="2">
 			<description><![CDATA[Copies of this genotype]]></description>
 		</element>
@@ -1527,46 +1527,46 @@
 		<element name="vertvel" type="float"/>
 		<element name="vertpos" type="float"/>
-		<element name="fit" type="float"/>
-		<element name="fit2" type="float">
+		<element name="fit" type="float" flags="3"/>
+		<element name="fit2" type="float" flags="3">
 			<description><![CDATA[Fitness shifted by (avg-n*stddev)]]></description>
 		</element>
-		<element name="f0genotype" type="string">
+		<element name="f0genotype" type="string" flags="3">
 			<description><![CDATA[converted to f0 genotype]]></description>
 		</element>
-		<element name="convtrace1" type="string"/>
+		<element name="convtrace1" type="string" flags="3"/>
 		<element name="user1" type="untyped"/>
 		<element name="user2" type="untyped"/>
 		<element name="user3" type="untyped"/>
 		<element name="mutate" function="true" type="void"><arguments/></element>
-		<element name="isValid" type="integer" min="0" max="1"/>
-		<element name="getNormalized" function="true" type="float">
+		<element name="isValid" type="integer" min="0" max="1" flags="35"/>
+		<element name="getNormalized" function="true" type="float" flags="35">
 			<arguments>
 				<argument name="property name or index" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="geno" type="Geno">
+		<element name="geno" type="Geno" flags="35">
 			<description><![CDATA[Geno object for this Genotype]]></description>
 		</element>
-		<element name="uid" type="string">
+		<element name="uid" type="string" flags="33">
 			<description><![CDATA[Unique identifier]]></description>
 		</element>
-		<element name="getModel" function="true" type="Model"><arguments/></element>
-		<element name="splitInstances" function="true" type="void"><arguments/></element>
-		<element name="newFromString" function="true" type="Genotype">
+		<element name="getModel" function="true" type="Model" flags="35"><arguments/></element>
+		<element name="splitInstances" function="true" type="void" flags="32"><arguments/></element>
+		<element name="newFromString" function="true" type="Genotype" flags="32">
 			<arguments>
 				<argument name="genotype" type="string"/>
 			</arguments>
 		</element>
-		<element name="newFromGeno" function="true" type="Genotype">
+		<element name="newFromGeno" function="true" type="Genotype" flags="32">
 			<arguments>
 				<argument name="geno" type="Geno"/>
 			</arguments>
 		</element>
-		<element name="newFromCreature" function="true" type="Genotype">
+		<element name="newFromCreature" function="true" type="Genotype" flags="32">
 			<arguments>
 				<argument name="creature" type="Creature"/>
 			</arguments>
 		</element>
-		<element name="addPerformanceFromCreature" function="true" type="void">
+		<element name="addPerformanceFromCreature" function="true" type="void" flags="34">
 			<description><![CDATA[Updates the Genotype's performance values merging them with the supplied Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
 			<arguments>
@@ -1574,5 +1574,5 @@
 			</arguments>
 		</element>
-		<element name="moveTo" function="true" type="void">
+		<element name="moveTo" function="true" type="void" flags="32">
 			<description><![CDATA[the genotype is removed from its current pool when pool=null]]></description>
 			<arguments>
@@ -1580,5 +1580,5 @@
 			</arguments>
 		</element>
-		<element name="copyTo" function="true" type="Genotype">
+		<element name="copyTo" function="true" type="Genotype" flags="32">
 			<description><![CDATA[returns the duplicate genotype, created in the target pool]]></description>
 			<arguments>
@@ -1586,12 +1586,12 @@
 			</arguments>
 		</element>
-		<element name="delete" function="true" type="void"><arguments/></element>
-		<element name="deleteOne" function="true" type="void">
+		<element name="delete" function="true" type="void" flags="32"><arguments/></element>
+		<element name="deleteOne" function="true" type="void" flags="32">
 			<description><![CDATA[]]></description>
 <arguments/></element>
-		<element name="genepool" type="untyped">
+		<element name="genepool" type="untyped" flags="35">
 			<description><![CDATA[GenePool object or null when not in pool]]></description>
 		</element>
-		<element name="index" type="integer">
+		<element name="index" type="integer" flags="35">
 			<description><![CDATA[-1 when not in pool.
 Note that the index changes depending on the current genotype position in the pool. Use Genotype.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
@@ -1601,58 +1601,58 @@
 <description><![CDATA[Used to query for object member descriptions. Example:
 var iface=Interface.makeFrom(someobject); var description="this object has "+iface.properties+" properties, first property is "+iface.getId(0);]]></description>
-		<element name="name" type="string"/>
-		<element name="properties" type="integer"/>
-		<element name="groups" type="integer"/>
-		<element name="get" function="true" type="untyped">
+		<element name="name" type="string" flags="257"/>
+		<element name="properties" type="integer" flags="257"/>
+		<element name="groups" type="integer" flags="257"/>
+		<element name="get" function="true" type="untyped" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getId" function="true" type="string">
+		<element name="getId" function="true" type="string" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getName" function="true" type="string">
+		<element name="getName" function="true" type="string" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getGroup" function="true" type="integer">
+		<element name="getGroup" function="true" type="integer" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getGroupName" function="true" type="string">
+		<element name="getGroupName" function="true" type="string" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getType" function="true" type="string">
+		<element name="getType" function="true" type="string" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getFlags" function="true" type="integer">
+		<element name="getFlags" function="true" type="integer" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getHelp" function="true" type="string">
+		<element name="getHelp" function="true" type="string" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="findId" function="true" type="integer">
+		<element name="findId" function="true" type="integer" flags="256">
 			<arguments>
 				<argument name="name" type="string"/>
 			</arguments>
 		</element>
-		<element name="findGroupId" function="true" type="integer">
+		<element name="findGroupId" function="true" type="integer" flags="256">
 			<arguments>
 				<argument name="name" type="string"/>
 			</arguments>
 		</element>
-		<element name="findIdInGroup" function="true" type="integer">
+		<element name="findIdInGroup" function="true" type="integer" flags="256">
 			<arguments>
 				<argument name="name" type="string"/>
@@ -1660,10 +1660,10 @@
 			</arguments>
 		</element>
-		<element name="makeFrom" function="true" type="Interface">
+		<element name="makeFrom" function="true" type="Interface" flags="2">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="set" function="true" type="void">
+		<element name="set" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
@@ -1671,11 +1671,11 @@
 			</arguments>
 		</element>
-		<element name="setDefault" function="true" type="void">
+		<element name="setDefault" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="setAllDefault" function="true" type="void"><arguments/></element>
-		<element name="invoke" function="true" type="void">
+		<element name="setAllDefault" function="true" type="void" flags="256"><arguments/></element>
+		<element name="invoke" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="function name or index" type="untyped"/>
@@ -1685,12 +1685,12 @@
 	</type>
 	<type name="Joint" context="Global context">
-		<element name="p1" type="integer" min="-1" max="999999" default="-1"/>
-		<element name="p2" type="integer" min="-1" max="999999" default="-1"/>
+		<element name="p1" type="integer" min="-1" max="999999" default="-1" flags="1024"/>
+		<element name="p2" type="integer" min="-1" max="999999" default="-1" flags="1024"/>
 		<element name="rx" type="float"/>
-		<element name="ry" type="float"/>
-		<element name="rz" type="float"/>
+		<element name="ry" type="float" flags="1024"/>
+		<element name="rz" type="float" flags="1024"/>
 		<element name="dx" type="float" min="-2" max="2" default="0.0"/>
-		<element name="dy" type="float" min="-2" max="2" default="0.0"/>
-		<element name="dz" type="float" min="-2" max="2" default="0.0"/>
+		<element name="dy" type="float" min="-2" max="2" default="0.0" flags="1024"/>
+		<element name="dz" type="float" min="-2" max="2" default="0.0" flags="1024"/>
 		<element name="sh" type="integer" min="0" max="1" default="0"/>
 		<element name="stif" type="float" min="0" max="1" default="1.0"/>
@@ -1700,30 +1700,30 @@
 		<element name="Vstyle" type="string"/>
 		<element name="vr" type="float" min="0" max="1" default="0.5"/>
-		<element name="vg" type="float" min="0" max="1" default="0.5"/>
-		<element name="vb" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Loader" context="Global context">
 <description><![CDATA[Support for loading files in the Framsticks format. Used in the experiment definition to retrieve experiment state (see OnExpLoad function in standard.expdef). Registered objects (addClass) are handled automaticaly. Loader can call user functions defined by setBreakLabel.]]></description>
-		<element name="addClass" function="true" type="void">
+		<element name="addClass" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="removeClass" function="true" type="void">
+		<element name="removeClass" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Object"/>
 			</arguments>
 		</element>
-		<element name="clearClasses" function="true" type="void"><arguments/></element>
-		<element name="go" function="true" type="integer"><arguments/></element>
-		<element name="run" function="true" type="integer"><arguments/></element>
-		<element name="status" type="integer"/>
-		<element name="comment" type="string"/>
-		<element name="setBreak" function="true" type="void">
+		<element name="clearClasses" function="true" type="void" flags="32"><arguments/></element>
+		<element name="go" function="true" type="integer" flags="32"><arguments/></element>
+		<element name="run" function="true" type="integer" flags="32"><arguments/></element>
+		<element name="status" type="integer" flags="1"/>
+		<element name="comment" type="string" flags="1"/>
+		<element name="setBreak" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="break conditions" type="integer"/>
 			</arguments>
 		</element>
-		<element name="setBreakLabel" function="true" type="void">
+		<element name="setBreakLabel" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="break condition" type="integer"/>
@@ -1731,23 +1731,23 @@
 			</arguments>
 		</element>
-		<element name="abort" function="true" type="void"><arguments/></element>
-		<element name="currentObject" type="Object"/>
-		<element name="objectName" type="string"/>
-		<element name="loadObject" function="true" type="void"><arguments/></element>
-		<element name="skipObject" function="true" type="void"><arguments/></element>
-		<element name="firstComment" type="integer" min="0" max="1"/>
-		<element name="BeforeObject" type="integer"/>
-		<element name="AfterObject" type="integer"/>
-		<element name="BeforeUnknown" type="integer"/>
-		<element name="OnComment" type="integer"/>
-		<element name="OnError" type="integer"/>
+		<element name="abort" function="true" type="void" flags="32"><arguments/></element>
+		<element name="currentObject" type="Object" flags="32"/>
+		<element name="objectName" type="string" flags="32"/>
+		<element name="loadObject" function="true" type="void" flags="32"><arguments/></element>
+		<element name="skipObject" function="true" type="void" flags="32"><arguments/></element>
+		<element name="firstComment" type="integer" min="0" max="1" flags="1"/>
+		<element name="BeforeObject" type="integer" flags="1"/>
+		<element name="AfterObject" type="integer" flags="1"/>
+		<element name="BeforeUnknown" type="integer" flags="1"/>
+		<element name="OnComment" type="integer" flags="1"/>
+		<element name="OnError" type="integer" flags="1"/>
 	</type>
 	<type name="Math" context="Global context">
 <description><![CDATA[Mathematical functions library.]]></description>
-		<element name="pi" type="float"/>
-		<element name="twopi" type="float"/>
-		<element name="pi2" type="float"/>
-		<element name="pi4" type="float"/>
-		<element name="random" function="true" type="integer">
+		<element name="pi" type="float" flags="1"/>
+		<element name="twopi" type="float" flags="1"/>
+		<element name="pi2" type="float" flags="1"/>
+		<element name="pi4" type="float" flags="1"/>
+		<element name="random" function="true" type="integer" flags="1">
 			<description><![CDATA[0..num-1]]></description>
 			<arguments>
@@ -1755,6 +1755,6 @@
 			</arguments>
 		</element>
-		<element name="rnd01" type="float"/>
-		<element name="rndUni" function="true" type="float">
+		<element name="rnd01" type="float" flags="1"/>
+		<element name="rndUni" function="true" type="float" flags="1">
 			<description><![CDATA[[begin..end)]]></description>
 			<arguments>
@@ -1763,6 +1763,6 @@
 			</arguments>
 		</element>
-		<element name="rndGaussStd" type="float"/>
-		<element name="rndGauss" function="true" type="float">
+		<element name="rndGaussStd" type="float" flags="1"/>
+		<element name="rndGauss" function="true" type="float" flags="1">
 			<description><![CDATA[rndGaussStd is rndGauss(0,1)]]></description>
 			<arguments>
@@ -1771,5 +1771,5 @@
 			</arguments>
 		</element>
-		<element name="rndCustom" function="true" type="float">
+		<element name="rndCustom" function="true" type="float" flags="1">
 			<description><![CDATA[the parameter describes the desired random distribution, being a sum of uniform distributions, eg. rndCustom([-10,-1, -1,1, 1,10]) defines 3 uniform distribution intervals [-1,10) [-1,1), [1,10)]]></description>
 			<arguments>
@@ -1785,5 +1785,5 @@
 			<description><![CDATA[Set random seed for the random number generator.]]></description>
 		</element>
-		<element name="time" type="float">
+		<element name="time" type="float" flags="1">
 			<description><![CDATA[Number of seconds since the Epoch (00:00:00 UTC/GMT, January 1, 1970)]]></description>
 		</element>
@@ -1877,8 +1877,8 @@
 		<element name="stif" type="float"/>
 		<element name="rotstif" type="float"/>
-		<element name="part1" type="MechPart"/>
-		<element name="part2" type="MechPart"/>
-		<element name="stress" type="float"/>
-		<element name="rotstress" type="float"/>
+		<element name="part1" type="MechPart" flags="1"/>
+		<element name="part2" type="MechPart" flags="1"/>
+		<element name="stress" type="float" flags="1"/>
+		<element name="rotstress" type="float" flags="1"/>
 	</type>
 	<type name="MechPart" context="Global context">
@@ -1886,5 +1886,5 @@
 		<element name="y" type="float"/>
 		<element name="z" type="float"/>
-		<element name="pos" type="XYZ"/>
+		<element name="pos" type="XYZ" flags="1"/>
 		<element name="m" type="float"/>
 		<element name="s" type="float"/>
@@ -1894,6 +1894,6 @@
 		<element name="vy" type="float"/>
 		<element name="vz" type="float"/>
-		<element name="v" type="XYZ"/>
-		<element name="orient" type="Orient"/>
+		<element name="v" type="XYZ" flags="1"/>
+		<element name="orient" type="Orient" flags="1"/>
 		<element name="oxx" type="float"/>
 		<element name="oxy" type="float"/>
@@ -1914,7 +1914,7 @@
 	</type>
 	<type name="Model" context="Global context">
-		<element name="se" type="float"/>
-		<element name="Vstyle" type="string"/>
-		<element name="geno" type="Geno"/>
+		<element name="se" type="float" flags="256"/>
+		<element name="Vstyle" type="string" flags="256"/>
+		<element name="geno" type="Geno" flags="257"/>
 		<element name="newFromString" function="true" type="Model">
 			<arguments>
@@ -1927,31 +1927,31 @@
 			</arguments>
 		</element>
-		<element name="numparts" type="integer"/>
-		<element name="numjoints" type="integer"/>
-		<element name="numneurons" type="integer"/>
-		<element name="numconnections" type="integer"/>
-		<element name="getPart" function="true" type="Part">
+		<element name="numparts" type="integer" flags="259"/>
+		<element name="numjoints" type="integer" flags="259"/>
+		<element name="numneurons" type="integer" flags="259"/>
+		<element name="numconnections" type="integer" flags="259"/>
+		<element name="getPart" function="true" type="Part" flags="288">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getJoint" function="true" type="Joint">
+		<element name="getJoint" function="true" type="Joint" flags="288">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getNeuroDef" function="true" type="NeuroDef">
+		<element name="getNeuroDef" function="true" type="NeuroDef" flags="288">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="size_x" type="float">
+		<element name="size_x" type="float" flags="257">
 			<description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including imaginary Part sizes (Part.s, usually 1.0). A creature consisting of a single default part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
 See also: Creature.moveAbs]]></description>
 		</element>
-		<element name="size_y" type="float">
+		<element name="size_y" type="float" flags="257">
 			<description><![CDATA[See Model.size_x]]></description>
 		</element>
-		<element name="size_z" type="float">
+		<element name="size_z" type="float" flags="257">
 			<description><![CDATA[See Model.size_x]]></description>
 		</element>
@@ -1968,5 +1968,5 @@
 			<description><![CDATA[Affects the geometry calculation precision]]></description>
 		</element>
-		<element name="forModel" function="true" type="ModelGeometry">
+		<element name="forModel" function="true" type="ModelGeometry" flags="32">
 			<description><![CDATA[The returned ModelGeometry object can be used to calculate geometric properties (volume, area, sizes) of the associated model. The density is copied from the current global ModelGeometry.geom_density on object creation.]]></description>
 			<arguments>
@@ -1974,7 +1974,7 @@
 			</arguments>
 		</element>
-		<element name="volume" function="true" type="float"><arguments/></element>
-		<element name="area" function="true" type="float"><arguments/></element>
-		<element name="sizesAndAxes" function="true" type="Vector">
+		<element name="volume" function="true" type="float" flags="288"><arguments/></element>
+		<element name="area" function="true" type="float" flags="288"><arguments/></element>
+		<element name="sizesAndAxes" function="true" type="Vector" flags="288">
 			<description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
 <arguments/></element>
@@ -2008,7 +2008,7 @@
 			</arguments>
 		</element>
-		<element name="getInputCount" type="integer"/>
-		<element name="inputSum" type="float"/>
-		<element name="weightedInputSum" type="float"/>
+		<element name="getInputCount" type="integer" flags="1"/>
+		<element name="inputSum" type="float" flags="1"/>
+		<element name="weightedInputSum" type="float" flags="1"/>
 		<element name="getInputChannelCount" function="true" type="integer">
 			<arguments>
@@ -2060,11 +2060,11 @@
 			</arguments>
 		</element>
-		<element name="position_x" type="float"/>
-		<element name="position_y" type="float"/>
-		<element name="position_z" type="float"/>
-		<element name="creature" type="Creature"/>
-		<element name="part" type="MechPart"/>
-		<element name="joint" type="MechJoint"/>
-		<element name="fields" type="Fields">
+		<element name="position_x" type="float" flags="1"/>
+		<element name="position_y" type="float" flags="1"/>
+		<element name="position_z" type="float" flags="1"/>
+		<element name="creature" type="Creature" flags="1"/>
+		<element name="part" type="MechPart" flags="1"/>
+		<element name="joint" type="MechJoint" flags="1"/>
+		<element name="fields" type="Fields" flags="1">
 			<description><![CDATA[Neurons can have different fields depending on their class. Script neurons have their fields defined using the "prop:" syntax. If you develop a custom neuron script you should use the Fields object for accessing your own neuron fields. The Neuro.fields property is meant for accessing the neuron fields from the outside script.
 Examples:
@@ -2081,7 +2081,7 @@
  Simulator.print(iobj.getId(i)+" ("+iobj.getName(i)+")");]]></description>
 		</element>
-		<element name="def" type="NeuroDef"/>
-		<element name="classObject" type="NeuroClass"/>
-		<element name="signals" type="NeuroSignals"/>
+		<element name="def" type="NeuroDef" flags="1"/>
+		<element name="classObject" type="NeuroClass" flags="1"/>
+		<element name="signals" type="NeuroSignals" flags="1"/>
 	</type>
 	<type name="NeuroClass" context="Global context">
@@ -2129,8 +2129,8 @@
 Compatibility: this field is called "icon" in *.neuro files.]]></description>
 		</element>
-		<element name="properties" type="Interface">
+		<element name="properties" type="Interface" flags="1">
 			<description><![CDATA[Compatibility: not preset in *.neuro files.]]></description>
 		</element>
-		<element name="summary" type="string">
+		<element name="summary" type="string" flags="1">
 			<description><![CDATA[Textual summary of all features.
 Compatibility: not preset in *.neuro files.]]></description>
@@ -2139,5 +2139,5 @@
 	<type name="NeuroClassLibrary" context="Global context">
 <description><![CDATA[Set of Neuron classes. You can access the selected class in the static NeuroClass object.]]></description>
-		<element name="count" type="integer"/>
+		<element name="count" type="integer" flags="1"/>
 		<element name="class" type="integer">
 			<description><![CDATA[0 ... count-1]]></description>
@@ -2160,21 +2160,21 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string"/>
-		<element name="getInputCount" type="integer"/>
-		<element name="getInputNeuroDef" function="true" type="NeuroDef">
+		<element name="getInputCount" type="integer" flags="3"/>
+		<element name="getInputNeuroDef" function="true" type="NeuroDef" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="getInputNeuroIndex" function="true" type="integer">
+		<element name="getInputNeuroIndex" function="true" type="integer" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="getInputWeight" function="true" type="float">
+		<element name="getInputWeight" function="true" type="float" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="classObject" type="NeuroClass"/>
+		<element name="classObject" type="NeuroClass" flags="3"/>
 	</type>
 	<type name="NeuronsSimEnabled" context="Global context">
@@ -2473,6 +2473,6 @@
 			</arguments>
 		</element>
-		<element name="size" type="integer"/>
-		<element name="clear" function="true" type="void"><arguments/></element>
+		<element name="size" type="integer" flags="1"/>
+		<element name="clear" function="true" type="void" flags="1"><arguments/></element>
 	</type>
 	<type name="ODE" context="Global context">
@@ -2530,5 +2530,5 @@
 		<element name="odecol2softcfm" type="float" min="0" max="1" default="0.0"/>
 		<element name="odecol2softerp" type="float" min="0" max="1" default="0.0"/>
-		<element name="rayIntersection" function="true" type="float">
+		<element name="rayIntersection" function="true" type="float" flags="32">
 			<arguments>
 				<argument name="position x" type="float"/>
@@ -2544,16 +2544,16 @@
 	<type name="Orient" context="Global context">
 <description><![CDATA[3D orientation, stored as 3x3 matrix.]]></description>
-		<element name="xx" type="float"/>
-		<element name="xy" type="float"/>
-		<element name="xz" type="float"/>
-		<element name="yx" type="float"/>
-		<element name="yy" type="float"/>
-		<element name="yz" type="float"/>
-		<element name="zx" type="float"/>
-		<element name="zy" type="float"/>
-		<element name="zz" type="float"/>
-		<element name="x" type="XYZ"/>
-		<element name="y" type="XYZ"/>
-		<element name="z" type="XYZ"/>
+		<element name="xx" type="float" flags="256"/>
+		<element name="xy" type="float" flags="256"/>
+		<element name="xz" type="float" flags="256"/>
+		<element name="yx" type="float" flags="256"/>
+		<element name="yy" type="float" flags="256"/>
+		<element name="yz" type="float" flags="256"/>
+		<element name="zx" type="float" flags="256"/>
+		<element name="zy" type="float" flags="256"/>
+		<element name="zz" type="float" flags="256"/>
+		<element name="x" type="XYZ" flags="257"/>
+		<element name="y" type="XYZ" flags="257"/>
+		<element name="z" type="XYZ" flags="257"/>
 		<element name="new" function="true" type="Orient"><arguments/></element>
 		<element name="newFromVector" function="true" type="Orient">
@@ -2562,15 +2562,15 @@
 			</arguments>
 		</element>
-		<element name="toVector" type="Vector">
+		<element name="toVector" type="Vector" flags="257">
 			<description><![CDATA[for serialization]]></description>
 		</element>
-		<element name="clone" function="true" type="Orient"><arguments/></element>
-		<element name="set" function="true" type="void">
+		<element name="clone" function="true" type="Orient" flags="256"><arguments/></element>
+		<element name="set" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="Orient"/>
 			</arguments>
 		</element>
-		<element name="reset" function="true" type="void"><arguments/></element>
-		<element name="rotate3" function="true" type="void">
+		<element name="reset" function="true" type="void" flags="256"><arguments/></element>
+		<element name="rotate3" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="x" type="float"/>
@@ -2579,15 +2579,15 @@
 			</arguments>
 		</element>
-		<element name="rotate" function="true" type="void">
+		<element name="rotate" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="Orient"/>
 			</arguments>
 		</element>
-		<element name="revRotate" function="true" type="void">
+		<element name="revRotate" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="Orient"/>
 			</arguments>
 		</element>
-		<element name="lookAt" function="true" type="void">
+		<element name="lookAt" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="direction" type="XYZ"/>
@@ -2595,6 +2595,6 @@
 			</arguments>
 		</element>
-		<element name="normalize" function="true" type="void"><arguments/></element>
-		<element name="between2" function="true" type="void">
+		<element name="normalize" function="true" type="void" flags="256"><arguments/></element>
+		<element name="between2" function="true" type="void" flags="256">
 			<description><![CDATA[The calling Orient receives the orientation interpolated from 2 input orientations.
 Example:
@@ -2611,5 +2611,5 @@
 			</arguments>
 		</element>
-		<element name="betweenOV" function="true" type="void">
+		<element name="betweenOV" function="true" type="void" flags="256">
 			<description><![CDATA[Like between2(), but the second Orient is composed of the supplied XYZ vector (X component) and Y Z vectors from the calling object.
 Example:
@@ -2625,5 +2625,5 @@
 			</arguments>
 		</element>
-		<element name="localToWorld" function="true" type="XYZ">
+		<element name="localToWorld" function="true" type="XYZ" flags="256">
 			<arguments>
 				<argument name="point" type="XYZ"/>
@@ -2631,5 +2631,5 @@
 			</arguments>
 		</element>
-		<element name="worldToLocal" function="true" type="XYZ">
+		<element name="worldToLocal" function="true" type="XYZ" flags="256">
 			<arguments>
 				<argument name="point" type="XYZ"/>
@@ -2637,11 +2637,11 @@
 			</arguments>
 		</element>
-		<element name="angles" type="XYZ"/>
-		<element name="toString" type="string"/>
+		<element name="angles" type="XYZ" flags="257"/>
+		<element name="toString" type="string" flags="257"/>
 	</type>
 	<type name="Part" context="Global context">
-		<element name="x" type="float"/>
-		<element name="y" type="float"/>
-		<element name="z" type="float"/>
+		<element name="x" type="float" flags="1024"/>
+		<element name="y" type="float" flags="1024"/>
+		<element name="z" type="float" flags="1024"/>
 		<element name="m" type="float" min="0.1" max="999" default="1.0"/>
 		<element name="sh" type="integer" min="0" max="3" default="0"/>
@@ -2656,18 +2656,18 @@
 		<element name="as" type="float" min="0" max="1" default="0.25"/>
 		<element name="rx" type="float"/>
-		<element name="ry" type="float"/>
-		<element name="rz" type="float"/>
+		<element name="ry" type="float" flags="1024"/>
+		<element name="rz" type="float" flags="1024"/>
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string"/>
 		<element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
 		<element name="vr" type="float" min="0" max="1" default="0.5"/>
-		<element name="vg" type="float" min="0" max="1" default="0.5"/>
-		<element name="vb" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Population" context="Global context">
 <description><![CDATA[A set of Creature objects, sharing some high level simulation properties (performance calculation, NN simulation, collision detection, event handling). The groups usually have different roles in the experiment (Creatures groups and Food group in standard.expdef).]]></description>
-		<element name="index" type="integer"/>
+		<element name="index" type="integer" flags="35"/>
 		<element name="name" type="string"/>
-		<element name="size" type="integer"/>
+		<element name="size" type="integer" flags="3"/>
 		<element name="energy" type="integer" min="0" max="1" default="1">
 			<description><![CDATA[If turned off, creature's energy will be constant.]]></description>
@@ -2694,8 +2694,8 @@
 			<description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
 		</element>
-		<element name="colmask" type="integer" min="0" max="65535" default="0">
+		<element name="colmask" type="integer" min="0" max="65535" default="0" flags="32">
 			<description><![CDATA[DEPRECATED. You should use selfmask and othermask (these masks are also much easier to understand than the old colmask field).]]></description>
 		</element>
-		<element name="selfmask" type="integer" min="0" max="2147483647" default="0">
+		<element name="selfmask" type="integer" min="0" max="2147483647" default="0" flags="32">
 			<description><![CDATA[Collisions between objects can be handled in two ways:
  - standard 'mechanical' collision handler (simple 'rebound' effect)
@@ -2727,5 +2727,5 @@
 ]]></description>
 		</element>
-		<element name="othermask" type="integer" min="0" max="2147483647" default="0">
+		<element name="othermask" type="integer" min="0" max="2147483647" default="0" flags="32">
 			<description><![CDATA[See selfmask.]]></description>
 		</element>
@@ -2748,9 +2748,9 @@
 Horizontal specialized sticks get half of this value.]]></description>
 		</element>
-		<element name="createFromGenotype" function="true" type="Creature" deprecated="true">
+		<element name="createFromGenotype" function="true" type="Creature" deprecated="true" flags="8226">
 			<description><![CDATA[Uses the selected Genotype object.
 Deprecated. Use the more universal add() function.]]></description>
 <arguments/></element>
-		<element name="createFromString" function="true" type="Creature" deprecated="true">
+		<element name="createFromString" function="true" type="Creature" deprecated="true" flags="8226">
 			<description><![CDATA[Uses the supplied string argument.
 Deprecated. Use the more universal add() function.]]></description>
@@ -2759,5 +2759,5 @@
 			</arguments>
 		</element>
-		<element name="createFromGeno" function="true" type="Creature" deprecated="true">
+		<element name="createFromGeno" function="true" type="Creature" deprecated="true" flags="8226">
 			<description><![CDATA[Uses the supplied Geno object.
 Deprecated. Use the more universal add() function.]]></description>
@@ -2766,20 +2766,20 @@
 			</arguments>
 		</element>
-		<element name="add" function="true" type="Creature">
+		<element name="add" function="true" type="Creature" flags="34">
 			<arguments>
 				<argument name="genotype object or geno object or string genotype" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="findUID" function="true" type="integer">
+		<element name="findUID" function="true" type="integer" flags="34">
 			<arguments>
 				<argument name="uid" type="string"/>
 			</arguments>
 		</element>
-		<element name="get" function="true" type="Creature">
+		<element name="get" function="true" type="Creature" flags="34">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="senseCreaturesProperty" function="true" type="float">
+		<element name="senseCreaturesProperty" function="true" type="float" flags="34">
 			<description><![CDATA[arguments:
  - x,y,z (sensor position)
@@ -2802,5 +2802,5 @@
 			</arguments>
 		</element>
-		<element name="findCreatureAt" function="true" type="Creature">
+		<element name="findCreatureAt" function="true" type="Creature" flags="34">
 			<arguments>
 				<argument name="point" type="Vector"/>
@@ -2808,5 +2808,5 @@
 			</arguments>
 		</element>
-		<element name="delete" function="true" type="void">
+		<element name="delete" function="true" type="void" flags="34">
 			<description><![CDATA[Delete the creature (remove it without executing the onKill event). Removing creatures inside some event handlers (e.g. onCollision) might be unsafe.]]></description>
 			<arguments>
@@ -2814,5 +2814,5 @@
 			</arguments>
 		</element>
-		<element name="kill" function="true" type="void">
+		<element name="kill" function="true" type="void" flags="34">
 			<description><![CDATA[Kill the creature (remove it and execute its onKill handler). Killing creatures inside some event handlers (e.g. onCollision) might be unsafe. The recommended and safe way of killing a creature is by setting its energy to 0.]]></description>
 			<arguments>
@@ -2820,9 +2820,9 @@
 			</arguments>
 		</element>
-		<element name="clear" function="true" type="void">
+		<element name="clear" function="true" type="void" flags="34">
 			<description><![CDATA[Delete all creatures]]></description>
 <arguments/></element>
-		<element name="iterator" type="Object"/>
-		<element name="getStatsMin" function="true" type="float">
+		<element name="iterator" type="Object" flags="291"/>
+		<element name="getStatsMin" function="true" type="float" flags="32">
 			<description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
 			<arguments>
@@ -2830,5 +2830,5 @@
 			</arguments>
 		</element>
-		<element name="getStatsAvg" function="true" type="float">
+		<element name="getStatsAvg" function="true" type="float" flags="32">
 			<description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
 			<arguments>
@@ -2836,5 +2836,5 @@
 			</arguments>
 		</element>
-		<element name="getStatsMax" function="true" type="float">
+		<element name="getStatsMax" function="true" type="float" flags="32">
 			<description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
 			<arguments>
@@ -2857,16 +2857,16 @@
 
 See also: Creature, Population.]]></description>
-		<element name="group" type="integer" deprecated="true">
+		<element name="group" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Index of the currently selected group (Population).
 Deprecated. Pass creature object to functions needing it, instead of the old "first select, then call" approach.]]></description>
 		</element>
-		<element name="size" type="integer"/>
-		<element name="creature" type="integer" deprecated="true">
+		<element name="size" type="integer" flags="3"/>
+		<element name="creature" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Deprecated. Pass creature object to functions needing it, instead of the old "first select, then call" approach.]]></description>
 		</element>
-		<element name="createFromGenotype" function="true" type="Creature" deprecated="true">
+		<element name="createFromGenotype" function="true" type="Creature" deprecated="true" flags="8226">
 			<description><![CDATA[Uses the selected Genotype object.]]></description>
 <arguments/></element>
-		<element name="createFromString" function="true" type="Creature" deprecated="true">
+		<element name="createFromString" function="true" type="Creature" deprecated="true" flags="8226">
 			<description><![CDATA[Uses the supplied string argument.]]></description>
 			<arguments>
@@ -2874,11 +2874,11 @@
 			</arguments>
 		</element>
-		<element name="killSelected" function="true" type="void" deprecated="true">
+		<element name="killSelected" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Applies to the selected Creature.]]></description>
 <arguments/></element>
-		<element name="deleteSelected" function="true" type="void" deprecated="true">
+		<element name="deleteSelected" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Applies to the selected Creature.]]></description>
 <arguments/></element>
-		<element name="addGroup" function="true" type="Population">
+		<element name="addGroup" function="true" type="Population" flags="34">
 			<description><![CDATA[Adds a new population.]]></description>
 			<arguments>
@@ -2886,5 +2886,5 @@
 			</arguments>
 		</element>
-		<element name="deleteGroup" function="true" type="void">
+		<element name="deleteGroup" function="true" type="void" flags="34">
 			<description><![CDATA[Removes a population.]]></description>
 			<arguments>
@@ -2892,8 +2892,8 @@
 			</arguments>
 		</element>
-		<element name="clear" function="true" type="void">
+		<element name="clear" function="true" type="void" flags="34">
 			<description><![CDATA[Removes all populations except the first one.]]></description>
 <arguments/></element>
-		<element name="clearGroup" function="true" type="void" deprecated="true">
+		<element name="clearGroup" function="true" type="void" deprecated="true" flags="8226">
 			<description><![CDATA[Deprecated.
 Use Populations[pop_index].clear() instead of Populations.clearGroup(pop_index); ]]></description>
@@ -2902,5 +2902,5 @@
 			</arguments>
 		</element>
-		<element name="creatBBCollisions" function="true" type="integer" deprecated="true">
+		<element name="creatBBCollisions" function="true" type="integer" deprecated="true" flags="8226">
 			<description><![CDATA[Checks approximate collisions for the selected creature.
 Returns the collision mask calculated as ( creature.selfmask & other_creatures.othermask ).
@@ -2912,10 +2912,10 @@
 			</arguments>
 		</element>
-		<element name="get" function="true" type="Population">
+		<element name="get" function="true" type="Population" flags="34">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="findCreatureAt" function="true" type="Creature">
+		<element name="findCreatureAt" function="true" type="Creature" flags="34">
 			<arguments>
 				<argument name="point" type="Vector"/>
@@ -2923,5 +2923,5 @@
 			</arguments>
 		</element>
-		<element name="iterator" type="Object"/>
+		<element name="iterator" type="Object" flags="291"/>
 	</type>
 	<type name="Ref" context="Global context">
@@ -2936,5 +2936,5 @@
 {r.value=r.value*r.value;}
 //square receives the Reference object and changes its 'value' field]]></description>
-		<element name="value" type="untyped"/>
+		<element name="value" type="untyped" flags="256"/>
 		<element name="newO" function="true">
 			<description><![CDATA[(for internal use only) use &variablename to create Ref objects.]]></description>
@@ -2946,5 +2946,5 @@
 			</arguments>
 		</element>
-		<element name="toString" type="string"/>
+		<element name="toString" type="string" flags="257"/>
 	</type>
 	<type name="Shapes" context="Global context">
@@ -2984,20 +2984,20 @@
 
 Creating: Use "add" in Creature.signals, Neuro.signals, or World.signals.]]></description>
-		<element name="value" type="untyped">
+		<element name="value" type="untyped" flags="256">
 			<description><![CDATA[Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating functions receive() and receiveFilter() ignore this attribute.]]></description>
 		</element>
-		<element name="power" type="float">
+		<element name="power" type="float" flags="256">
 			<description><![CDATA[Signal power affects the aggregated signal value returned from receive() and receiveFilter().]]></description>
 		</element>
-		<element name="flavor" type="float">
+		<element name="flavor" type="float" flags="256">
 			<description><![CDATA[Signal flavor can be used to differentiate between signals in a single channel.]]></description>
 		</element>
-		<element name="channel" type="string">
+		<element name="channel" type="string" flags="257">
 			<description><![CDATA[Channel name, read-only.]]></description>
 		</element>
-		<element name="pos" type="XYZ">
+		<element name="pos" type="XYZ" flags="257">
 			<description><![CDATA[Signal position, read-only.]]></description>
 		</element>
-		<element name="remove" function="true">
+		<element name="remove" function="true" flags="256">
 			<description><![CDATA[Deletes the signal.]]></description>
 		</element>
@@ -3019,5 +3019,5 @@
 return "power="+Signal.power;]]></description>
 		</element>
-		<element name="addMap" function="true" type="void">
+		<element name="addMap" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="channel" type="string"/>
@@ -3025,5 +3025,5 @@
 			</arguments>
 		</element>
-		<element name="addSignals" function="true" type="void">
+		<element name="addSignals" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="channel" type="string"/>
@@ -3034,5 +3034,5 @@
 			</arguments>
 		</element>
-		<element name="addSignalsFilter" function="true" type="void">
+		<element name="addSignalsFilter" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="channel" type="string"/>
@@ -3048,5 +3048,5 @@
 	<type name="sim_params" context="Global context">
 <description><![CDATA[This object groups all simulator parameters so they can be loaded or saved with a single call (see scripts/standard_loadsave.inc). For other purposes please use specific objects, like Simulator, World, Populations, etc.]]></description>
-		<element name="print" function="true" type="void">
+		<element name="print" function="true" type="void" flags="32">
 			<description><![CDATA[One argument: message to be printed]]></description>
 			<arguments>
@@ -3054,5 +3054,5 @@
 			</arguments>
 		</element>
-		<element name="message" function="true" type="void">
+		<element name="message" function="true" type="void" flags="32">
 			<description><![CDATA[The second argument can be:
  -1 = debugging message
@@ -3066,5 +3066,5 @@
 			</arguments>
 		</element>
-		<element name="sleep" function="true" type="void">
+		<element name="sleep" function="true" type="void" flags="32">
 			<description><![CDATA[Suspends the execution for a specified interval]]></description>
 			<arguments>
@@ -3072,8 +3072,8 @@
 			</arguments>
 		</element>
-		<element name="beep" function="true" type="void">
+		<element name="beep" function="true" type="void" flags="32">
 			<description><![CDATA[Plays a default system sound]]></description>
 <arguments/></element>
-		<element name="sound" function="true" type="void">
+		<element name="sound" function="true" type="void" flags="32">
 			<description><![CDATA[Generates a simple tone on the speaker]]></description>
 			<arguments>
@@ -3082,5 +3082,5 @@
 			</arguments>
 		</element>
-		<element name="eval" function="true" type="void">
+		<element name="eval" function="true" type="void" flags="32">
 			<description><![CDATA[The argument must be a complete statement, e.g. "return 2+2;" is valid, while "2+2" is not. The EvalError object is returned for invalid statements.
 Example:
@@ -3095,5 +3095,5 @@
 			</arguments>
 		</element>
-		<element name="load" function="true" type="void">
+		<element name="load" function="true" type="void" flags="32">
 			<description><![CDATA[Load experiment file (calls onExpLoad() in the current experiment definition). This function is intended to replace the simulator state; the old state is cleared by automatically calling "resetToDefaults()" (only if "resetonexpdef" is enabled). Use "import" if you don't want to loose the old simulator state.]]></description>
 			<arguments>
@@ -3101,5 +3101,5 @@
 			</arguments>
 		</element>
-		<element name="import" function="true" type="void">
+		<element name="import" function="true" type="void" flags="32">
 			<description><![CDATA[Load some data from file. The second optional argument selects what section(s) will be imported:
  1 - experiment (works like "load" and can reset the simulator state!)
@@ -3117,5 +3117,5 @@
 			</arguments>
 		</element>
-		<element name="import" function="true" type="void">
+		<element name="import" function="true" type="void" flags="32">
 			<description><![CDATA[Equivalent to import(filename,2+4+8+16) - imports genotypes, parameters, genepool and population settings]]></description>
 			<arguments>
@@ -3123,5 +3123,5 @@
 			</arguments>
 		</element>
-		<element name="save" function="true" type="untyped">
+		<element name="save" function="true" type="untyped" flags="32">
 			<description><![CDATA[Save experiment file (calls onExpSave() in the current experiment definition)]]></description>
 			<arguments>
@@ -3129,5 +3129,5 @@
 			</arguments>
 		</element>
-		<element name="export" function="true" type="untyped">
+		<element name="export" function="true" type="untyped" flags="32">
 			<description><![CDATA[Save some data to file. arguments:
 - filename
@@ -3149,16 +3149,16 @@
 			</arguments>
 		</element>
-		<element name="start" function="true" type="void">
+		<element name="start" function="true" type="void" flags="4096">
 			<description><![CDATA[called by the user interface]]></description>
 <arguments/></element>
-		<element name="stop" function="true" type="void">
+		<element name="stop" function="true" type="void" flags="4096">
 			<description><![CDATA[the expdef script calls this to stop simulation]]></description>
 <arguments/></element>
-		<element name="running" type="integer" min="0" max="1">
+		<element name="running" type="integer" min="0" max="1" flags="4130">
 			<description><![CDATA[useful for synchronizing the user interface state]]></description>
 		</element>
-		<element name="step" function="true" type="void"><arguments/></element>
-		<element name="time" type="integer"/>
-		<element name="simspeed" type="integer">
+		<element name="step" function="true" type="void" flags="32"><arguments/></element>
+		<element name="time" type="integer" flags="34"/>
+		<element name="simspeed" type="integer" flags="4131">
 			<description><![CDATA[steps/second]]></description>
 		</element>
@@ -3170,11 +3170,11 @@
 It is a good practice to initialize the experiment before running the simulation.]]></description>
 		</element>
-		<element name="expdef_title" type="string"/>
-		<element name="expdef_info" type="string"/>
+		<element name="expdef_title" type="string" flags="3"/>
+		<element name="expdef_info" type="string" flags="3"/>
 		<element name="init" function="true" type="void">
 			<description><![CDATA[Performs initialization procedures, like resetting counters, states, gene pools, etc.]]></description>
 <arguments/></element>
 		<element name="loadexpdef" function="true" type="void"><arguments/></element>
-		<element name="usercode" type="string">
+		<element name="usercode" type="string" flags="2048">
 			<description><![CDATA[This script overrides the experiment definition]]></description>
 		</element>
@@ -3191,8 +3191,8 @@
 			<description><![CDATA[Display comments encountered in opened files]]></description>
 		</element>
-		<element name="checkpoint" function="true" type="void">
+		<element name="checkpoint" function="true" type="void" flags="32">
 			<description><![CDATA[This function was previously called "autosave".]]></description>
 <arguments/></element>
-		<element name="checkpointData" function="true" type="void">
+		<element name="checkpointData" function="true" type="void" flags="32">
 			<description><![CDATA[In the distributed/paralellized scenario the data passed as argument can be received by the controlling entity (onSlaveCheckpoint in multithreaded master experiment, /simulator/expevent in distributed network simulator)]]></description>
 			<arguments>
@@ -3200,5 +3200,5 @@
 			</arguments>
 		</element>
-		<element name="lastCheckpoint" type="untyped">
+		<element name="lastCheckpoint" type="untyped" flags="35">
 			<description><![CDATA[Most recently reported by the experiment definition script.]]></description>
 		</element>
@@ -3218,28 +3218,28 @@
 If turned off: parameters from previous experiment definition will remain (dangerous).]]></description>
 		</element>
-		<element name="new" function="true" type="Simulator"><arguments/></element>
-		<element name="slaves" type="SlaveSimulators"/>
-		<element name="cpus" type="integer"/>
-		<element name="world" type="World"/>
-		<element name="populations" type="Populations"/>
-		<element name="genepools" type="GenePools"/>
-		<element name="expparams" type="ExpParams"/>
-		<element name="expstate" type="ExpState"/>
-		<element name="loadNeurons" function="true" type="void">
+		<element name="new" function="true" type="Simulator" flags="32"><arguments/></element>
+		<element name="slaves" type="SlaveSimulators" flags="35"/>
+		<element name="cpus" type="integer" flags="35"/>
+		<element name="world" type="World" flags="35"/>
+		<element name="populations" type="Populations" flags="35"/>
+		<element name="genepools" type="GenePools" flags="35"/>
+		<element name="expparams" type="ExpParams" flags="35"/>
+		<element name="expstate" type="ExpState" flags="35"/>
+		<element name="loadNeurons" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="directory path" type="string"/>
 			</arguments>
 		</element>
-		<element name="user" type="untyped"/>
-		<element name="identity" type="integer">
+		<element name="user" type="untyped" flags="34"/>
+		<element name="identity" type="integer" flags="35">
 			<description><![CDATA[-1 for master simulator, 0...count-1 for slaves]]></description>
 		</element>
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
 		<element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
 		<element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
@@ -3264,5 +3264,5 @@
 The "official" setting used to evaluate and compare creatures is 1.]]></description>
 		</element>
-		<element name="wrldchg" function="true" type="void"><arguments/></element>
+		<element name="wrldchg" function="true" type="void" flags="32"><arguments/></element>
 		<element name="simtype" type="integer" min="0" max="1" default="0">
 			<description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
@@ -3274,5 +3274,5 @@
 			<description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
 		</element>
-		<element name="signals" type="WorldSignals"/>
+		<element name="signals" type="WorldSignals" flags="35"/>
 		<element name="odeshape" type="integer" min="0" max="1"/>
 		<element name="odestep" type="float" min="0.001" max="1" default="0.05"/>
@@ -3327,5 +3327,5 @@
 		<element name="odecol2softcfm" type="float" min="0" max="1" default="0.0"/>
 		<element name="odecol2softerp" type="float" min="0" max="1" default="0.0"/>
-		<element name="rayIntersection" function="true" type="float">
+		<element name="rayIntersection" function="true" type="float" flags="32">
 			<arguments>
 				<argument name="position x" type="float"/>
@@ -3338,5 +3338,5 @@
 			</arguments>
 		</element>
-		<element name="gen_hist" type="integer" min="0" max="1" default="0">
+		<element name="gen_hist" type="integer" min="0" max="1" default="0" flags="2">
 			<description><![CDATA[Required for phylogenetic analysis]]></description>
 		</element>
@@ -3348,8 +3348,8 @@
 			<description><![CDATA[If active, information about employed mutation method will be stored in the 'info' field of each mutated genotype.]]></description>
 		</element>
-		<element name="operReport" function="true" type="void">
+		<element name="operReport" function="true" type="void" flags="2">
 			<description><![CDATA[Show available genetic operators]]></description>
 <arguments/></element>
-		<element name="toHTML" function="true" type="string">
+		<element name="toHTML" function="true" type="string" flags="2">
 			<description><![CDATA[returns genotype expressed as colored HTML]]></description>
 			<arguments>
@@ -3357,5 +3357,5 @@
 			</arguments>
 		</element>
-		<element name="toHTMLshort" function="true" type="string">
+		<element name="toHTMLshort" function="true" type="string" flags="2">
 			<description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
 			<arguments>
@@ -3363,5 +3363,5 @@
 			</arguments>
 		</element>
-		<element name="validate" function="true" type="Geno">
+		<element name="validate" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns validated (if possible) Geno object from supplied Geno]]></description>
 			<arguments>
@@ -3369,5 +3369,5 @@
 			</arguments>
 		</element>
-		<element name="mutate" function="true" type="Geno">
+		<element name="mutate" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns mutated Geno object from supplied Geno]]></description>
 			<arguments>
@@ -3375,5 +3375,5 @@
 			</arguments>
 		</element>
-		<element name="crossOver" function="true" type="Geno">
+		<element name="crossOver" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns crossed over genotype]]></description>
 			<arguments>
@@ -3382,5 +3382,5 @@
 			</arguments>
 		</element>
-		<element name="getSimplest" function="true" type="Geno">
+		<element name="getSimplest" function="true" type="Geno" flags="34">
 			<description><![CDATA[returns the simplest genotype for a given encoding (format). 0 means f0, 4 means f4, etc.]]></description>
 			<arguments>
@@ -3388,23 +3388,23 @@
 			</arguments>
 		</element>
-		<element name="genoper_f0" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f1" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f2" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f3" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f4" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_f9" type="integer" min="0" max="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="genoper_fF" type="integer" min="0" max="0">
+		<element name="genoper_f0" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f1" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f2" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f3" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f4" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_f9" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_fF" type="integer" min="0" max="0" flags="65">
 			<description><![CDATA[]]></description>
 		</element>
@@ -4131,5 +4131,5 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="evaluateDistance" function="true" type="float">
+		<element name="evaluateDistance" function="true" type="float" flags="34">
 			<description><![CDATA[Calculates dissimilarity between two models created from Geno objects.]]></description>
 			<arguments>
@@ -4138,5 +4138,5 @@
 			</arguments>
 		</element>
-		<element name="calculateSymmetry" function="true" type="float">
+		<element name="calculateSymmetry" function="true" type="float" flags="32">
 			<description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model using default precision parameters (symPosSteps,symAlphaSteps,symBetaSteps). Returns the symmetry plane, too (sets symResultA,B,C,D).
 Note: may take a long time for large creatures.]]></description>
@@ -4145,5 +4145,5 @@
 			</arguments>
 		</element>
-		<element name="calculateSymmetry2" function="true" type="float">
+		<element name="calculateSymmetry2" function="true" type="float" flags="32">
 			<description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model using specified precision parameters. Returns the symmetry plane, too (sets symResultA,B,C,D).
 Note: may take a long time for large creatures.]]></description>
@@ -4155,5 +4155,5 @@
 			</arguments>
 		</element>
-		<element name="calculateSymmetryForPlane" function="true" type="float">
+		<element name="calculateSymmetryForPlane" function="true" type="float" flags="32">
 			<description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model and given a specific plane defined by coefficients A, B, C, D.]]></description>
 			<arguments>
@@ -4174,12 +4174,12 @@
 			<description><![CDATA[Default number of samples per full angle (#2)]]></description>
 		</element>
-		<element name="symResultA" type="float"/>
-		<element name="symResultB" type="float"/>
-		<element name="symResultC" type="float"/>
-		<element name="symResultD" type="float"/>
+		<element name="symResultA" type="float" flags="35"/>
+		<element name="symResultB" type="float" flags="35"/>
+		<element name="symResultC" type="float" flags="35"/>
+		<element name="symResultD" type="float" flags="35"/>
 		<element name="geom_density" type="float" min="0.01" max="100" default="1.0">
 			<description><![CDATA[Affects the geometry calculation precision]]></description>
 		</element>
-		<element name="forModel" function="true" type="ModelGeometry">
+		<element name="forModel" function="true" type="ModelGeometry" flags="32">
 			<description><![CDATA[The returned ModelGeometry object can be used to calculate geometric properties (volume, area, sizes) of the associated model. The density is copied from the current global ModelGeometry.geom_density on object creation.]]></description>
 			<arguments>
@@ -4187,7 +4187,7 @@
 			</arguments>
 		</element>
-		<element name="volume" function="true" type="float"><arguments/></element>
-		<element name="area" function="true" type="float"><arguments/></element>
-		<element name="sizesAndAxes" function="true" type="Vector">
+		<element name="volume" function="true" type="float" flags="288"><arguments/></element>
+		<element name="area" function="true" type="float" flags="288"><arguments/></element>
+		<element name="sizesAndAxes" function="true" type="Vector" flags="288">
 			<description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
 <arguments/></element>
@@ -4211,5 +4211,5 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="evaluateDistance" function="true" type="float">
+		<element name="evaluateDistance" function="true" type="float" flags="34">
 			<description><![CDATA[Calculates dissimilarity between two models created from Geno objects.]]></description>
 			<arguments>
@@ -4221,5 +4221,5 @@
 	<type name="Simulator" context="Global context">
 <description><![CDATA[The Framsticks simulator.]]></description>
-		<element name="print" function="true" type="void">
+		<element name="print" function="true" type="void" flags="32">
 			<description><![CDATA[One argument: message to be printed]]></description>
 			<arguments>
@@ -4227,5 +4227,5 @@
 			</arguments>
 		</element>
-		<element name="message" function="true" type="void">
+		<element name="message" function="true" type="void" flags="32">
 			<description><![CDATA[The second argument can be:
  -1 = debugging message
@@ -4239,5 +4239,5 @@
 			</arguments>
 		</element>
-		<element name="sleep" function="true" type="void">
+		<element name="sleep" function="true" type="void" flags="32">
 			<description><![CDATA[Suspends the execution for a specified interval]]></description>
 			<arguments>
@@ -4245,8 +4245,8 @@
 			</arguments>
 		</element>
-		<element name="beep" function="true" type="void">
+		<element name="beep" function="true" type="void" flags="32">
 			<description><![CDATA[Plays a default system sound]]></description>
 <arguments/></element>
-		<element name="sound" function="true" type="void">
+		<element name="sound" function="true" type="void" flags="32">
 			<description><![CDATA[Generates a simple tone on the speaker]]></description>
 			<arguments>
@@ -4255,5 +4255,5 @@
 			</arguments>
 		</element>
-		<element name="eval" function="true" type="void">
+		<element name="eval" function="true" type="void" flags="32">
 			<description><![CDATA[The argument must be a complete statement, e.g. "return 2+2;" is valid, while "2+2" is not. The EvalError object is returned for invalid statements.
 Example:
@@ -4268,5 +4268,5 @@
 			</arguments>
 		</element>
-		<element name="load" function="true" type="void">
+		<element name="load" function="true" type="void" flags="32">
 			<description><![CDATA[Load experiment file (calls onExpLoad() in the current experiment definition). This function is intended to replace the simulator state; the old state is cleared by automatically calling "resetToDefaults()" (only if "resetonexpdef" is enabled). Use "import" if you don't want to loose the old simulator state.]]></description>
 			<arguments>
@@ -4274,5 +4274,5 @@
 			</arguments>
 		</element>
-		<element name="import" function="true" type="void">
+		<element name="import" function="true" type="void" flags="32">
 			<description><![CDATA[Load some data from file. The second optional argument selects what section(s) will be imported:
  1 - experiment (works like "load" and can reset the simulator state!)
@@ -4290,5 +4290,5 @@
 			</arguments>
 		</element>
-		<element name="import" function="true" type="void">
+		<element name="import" function="true" type="void" flags="32">
 			<description><![CDATA[Equivalent to import(filename,2+4+8+16) - imports genotypes, parameters, genepool and population settings]]></description>
 			<arguments>
@@ -4296,5 +4296,5 @@
 			</arguments>
 		</element>
-		<element name="save" function="true" type="untyped">
+		<element name="save" function="true" type="untyped" flags="32">
 			<description><![CDATA[Save experiment file (calls onExpSave() in the current experiment definition)]]></description>
 			<arguments>
@@ -4302,5 +4302,5 @@
 			</arguments>
 		</element>
-		<element name="export" function="true" type="untyped">
+		<element name="export" function="true" type="untyped" flags="32">
 			<description><![CDATA[Save some data to file. arguments:
 - filename
@@ -4322,16 +4322,16 @@
 			</arguments>
 		</element>
-		<element name="start" function="true" type="void">
+		<element name="start" function="true" type="void" flags="4096">
 			<description><![CDATA[called by the user interface]]></description>
 <arguments/></element>
-		<element name="stop" function="true" type="void">
+		<element name="stop" function="true" type="void" flags="4096">
 			<description><![CDATA[the expdef script calls this to stop simulation]]></description>
 <arguments/></element>
-		<element name="running" type="integer" min="0" max="1">
+		<element name="running" type="integer" min="0" max="1" flags="4130">
 			<description><![CDATA[useful for synchronizing the user interface state]]></description>
 		</element>
-		<element name="step" function="true" type="void"><arguments/></element>
-		<element name="time" type="integer"/>
-		<element name="simspeed" type="integer">
+		<element name="step" function="true" type="void" flags="32"><arguments/></element>
+		<element name="time" type="integer" flags="34"/>
+		<element name="simspeed" type="integer" flags="4131">
 			<description><![CDATA[steps/second]]></description>
 		</element>
@@ -4343,11 +4343,11 @@
 It is a good practice to initialize the experiment before running the simulation.]]></description>
 		</element>
-		<element name="expdef_title" type="string"/>
-		<element name="expdef_info" type="string"/>
+		<element name="expdef_title" type="string" flags="3"/>
+		<element name="expdef_info" type="string" flags="3"/>
 		<element name="init" function="true" type="void">
 			<description><![CDATA[Performs initialization procedures, like resetting counters, states, gene pools, etc.]]></description>
 <arguments/></element>
 		<element name="loadexpdef" function="true" type="void"><arguments/></element>
-		<element name="usercode" type="string">
+		<element name="usercode" type="string" flags="2048">
 			<description><![CDATA[This script overrides the experiment definition]]></description>
 		</element>
@@ -4364,8 +4364,8 @@
 			<description><![CDATA[Display comments encountered in opened files]]></description>
 		</element>
-		<element name="checkpoint" function="true" type="void">
+		<element name="checkpoint" function="true" type="void" flags="32">
 			<description><![CDATA[This function was previously called "autosave".]]></description>
 <arguments/></element>
-		<element name="checkpointData" function="true" type="void">
+		<element name="checkpointData" function="true" type="void" flags="32">
 			<description><![CDATA[In the distributed/paralellized scenario the data passed as argument can be received by the controlling entity (onSlaveCheckpoint in multithreaded master experiment, /simulator/expevent in distributed network simulator)]]></description>
 			<arguments>
@@ -4373,5 +4373,5 @@
 			</arguments>
 		</element>
-		<element name="lastCheckpoint" type="untyped">
+		<element name="lastCheckpoint" type="untyped" flags="35">
 			<description><![CDATA[Most recently reported by the experiment definition script.]]></description>
 		</element>
@@ -4391,19 +4391,19 @@
 If turned off: parameters from previous experiment definition will remain (dangerous).]]></description>
 		</element>
-		<element name="new" function="true" type="Simulator"><arguments/></element>
-		<element name="slaves" type="SlaveSimulators"/>
-		<element name="cpus" type="integer"/>
-		<element name="world" type="World"/>
-		<element name="populations" type="Populations"/>
-		<element name="genepools" type="GenePools"/>
-		<element name="expparams" type="ExpParams"/>
-		<element name="expstate" type="ExpState"/>
-		<element name="loadNeurons" function="true" type="void">
+		<element name="new" function="true" type="Simulator" flags="32"><arguments/></element>
+		<element name="slaves" type="SlaveSimulators" flags="35"/>
+		<element name="cpus" type="integer" flags="35"/>
+		<element name="world" type="World" flags="35"/>
+		<element name="populations" type="Populations" flags="35"/>
+		<element name="genepools" type="GenePools" flags="35"/>
+		<element name="expparams" type="ExpParams" flags="35"/>
+		<element name="expstate" type="ExpState" flags="35"/>
+		<element name="loadNeurons" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="directory path" type="string"/>
 			</arguments>
 		</element>
-		<element name="user" type="untyped"/>
-		<element name="identity" type="integer">
+		<element name="user" type="untyped" flags="34"/>
+		<element name="identity" type="integer" flags="35">
 			<description><![CDATA[-1 for master simulator, 0...count-1 for slaves]]></description>
 		</element>
@@ -4420,5 +4420,5 @@
 			</arguments>
 		</element>
-		<element name="running" type="integer">
+		<element name="running" type="integer" flags="1">
 			<description><![CDATA[Note that if running>0 then the number of running simulations can be outdated in the very moment you read this field, because the expdef can stop itself anytime. If running==0, then it is guaranteed to stay 0 until someone calls start() on some of the slave simulator objects.]]></description>
 		</element>
@@ -4461,131 +4461,131 @@
 	</type>
 	<type name="stats" context="Global context">
-		<element name="gen_count" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_mvalid" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_mvalidated" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_minvalid" type="integer">
+		<element name="gen_count" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_mvalid" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_mvalidated" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_minvalid" type="integer" flags="1">
 			<description><![CDATA[couldn't be repaired]]></description>
 		</element>
-		<element name="gen_mfailed" type="integer">
+		<element name="gen_mfailed" type="integer" flags="1">
 			<description><![CDATA[couldn't be performed]]></description>
 		</element>
-		<element name="gen_xovalid" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_xovalidated" type="integer">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="gen_xoinvalid" type="integer">
+		<element name="gen_xovalid" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_xovalidated" type="integer" flags="1">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="gen_xoinvalid" type="integer" flags="1">
 			<description><![CDATA[couldn't be repaired]]></description>
 		</element>
-		<element name="gen_xofailed" type="integer">
+		<element name="gen_xofailed" type="integer" flags="1">
 			<description><![CDATA[couldn't be performed]]></description>
 		</element>
-		<element name="gen_mutimpr" type="float">
+		<element name="gen_mutimpr" type="float" flags="1">
 			<description><![CDATA[total cumulative mutation change]]></description>
 		</element>
-		<element name="gen_xoimpr" type="float">
+		<element name="gen_xoimpr" type="float" flags="1">
 			<description><![CDATA[total cumulative crossover change]]></description>
 		</element>
-		<element name="clrstats" function="true" type="void">
+		<element name="clrstats" function="true" type="void" flags="2">
 			<description><![CDATA[]]></description>
 <arguments/></element>
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
-		<element name="st_count" type="integer"/>
-		<element name="st_min_numparts" type="float"/>
-		<element name="st_avg_numparts" type="float"/>
-		<element name="st_max_numparts" type="float"/>
-		<element name="st_min_numjoints" type="float"/>
-		<element name="st_avg_numjoints" type="float"/>
-		<element name="st_max_numjoints" type="float"/>
-		<element name="st_min_numneurons" type="float"/>
-		<element name="st_avg_numneurons" type="float"/>
-		<element name="st_max_numneurons" type="float"/>
-		<element name="st_min_numconnections" type="float"/>
-		<element name="st_avg_numconnections" type="float"/>
-		<element name="st_max_numconnections" type="float"/>
-		<element name="st_min_num" type="float"/>
-		<element name="st_avg_num" type="float"/>
-		<element name="st_max_num" type="float"/>
-		<element name="st_min_gnum" type="float"/>
-		<element name="st_avg_gnum" type="float"/>
-		<element name="st_max_gnum" type="float"/>
-		<element name="st_min_instances" type="float"/>
-		<element name="st_avg_instances" type="float"/>
-		<element name="st_max_instances" type="float"/>
-		<element name="st_min_lifespan" type="float"/>
-		<element name="st_avg_lifespan" type="float"/>
-		<element name="st_max_lifespan" type="float"/>
-		<element name="st_min_velocity" type="float"/>
-		<element name="st_avg_velocity" type="float"/>
-		<element name="st_max_velocity" type="float"/>
-		<element name="st_min_distance" type="float"/>
-		<element name="st_avg_distance" type="float"/>
-		<element name="st_max_distance" type="float"/>
-		<element name="st_min_vertvel" type="float"/>
-		<element name="st_avg_vertvel" type="float"/>
-		<element name="st_max_vertvel" type="float"/>
-		<element name="st_min_vertpos" type="float"/>
-		<element name="st_avg_vertpos" type="float"/>
-		<element name="st_max_vertpos" type="float"/>
-		<element name="st_min_fit" type="float"/>
-		<element name="st_avg_fit" type="float"/>
-		<element name="st_max_fit" type="float"/>
-		<element name="st_min_fit2" type="float"/>
-		<element name="st_avg_fit2" type="float"/>
-		<element name="st_max_fit2" type="float"/>
-		<element name="st_min_c_velocity" type="float"/>
-		<element name="st_avg_c_velocity" type="float"/>
-		<element name="st_max_c_velocity" type="float"/>
-		<element name="st_min_c_vertvelocity" type="float"/>
-		<element name="st_avg_c_vertvelocity" type="float"/>
-		<element name="st_max_c_vertvelocity" type="float"/>
-		<element name="st_min_c_vertpos" type="float"/>
-		<element name="st_avg_c_vertpos" type="float"/>
-		<element name="st_max_c_vertpos" type="float"/>
-		<element name="st_min_pos_x" type="float"/>
-		<element name="st_avg_pos_x" type="float"/>
-		<element name="st_max_pos_x" type="float"/>
-		<element name="st_min_pos_y" type="float"/>
-		<element name="st_avg_pos_y" type="float"/>
-		<element name="st_max_pos_y" type="float"/>
-		<element name="st_min_pos_z" type="float"/>
-		<element name="st_avg_pos_z" type="float"/>
-		<element name="st_max_pos_z" type="float"/>
-		<element name="st_min_size_x" type="float"/>
-		<element name="st_avg_size_x" type="float"/>
-		<element name="st_max_size_x" type="float"/>
-		<element name="st_min_size_y" type="float"/>
-		<element name="st_avg_size_y" type="float"/>
-		<element name="st_max_size_y" type="float"/>
-		<element name="st_min_size_z" type="float"/>
-		<element name="st_avg_size_z" type="float"/>
-		<element name="st_max_size_z" type="float"/>
-		<element name="st_min_center_x" type="float"/>
-		<element name="st_avg_center_x" type="float"/>
-		<element name="st_max_center_x" type="float"/>
-		<element name="st_min_center_y" type="float"/>
-		<element name="st_avg_center_y" type="float"/>
-		<element name="st_max_center_y" type="float"/>
-		<element name="st_min_center_z" type="float"/>
-		<element name="st_avg_center_z" type="float"/>
-		<element name="st_max_center_z" type="float"/>
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
+		<element name="st_count" type="integer" flags="1"/>
+		<element name="st_min_numparts" type="float" flags="65"/>
+		<element name="st_avg_numparts" type="float" flags="65"/>
+		<element name="st_max_numparts" type="float" flags="65"/>
+		<element name="st_min_numjoints" type="float" flags="65"/>
+		<element name="st_avg_numjoints" type="float" flags="65"/>
+		<element name="st_max_numjoints" type="float" flags="65"/>
+		<element name="st_min_numneurons" type="float" flags="65"/>
+		<element name="st_avg_numneurons" type="float" flags="65"/>
+		<element name="st_max_numneurons" type="float" flags="65"/>
+		<element name="st_min_numconnections" type="float" flags="65"/>
+		<element name="st_avg_numconnections" type="float" flags="65"/>
+		<element name="st_max_numconnections" type="float" flags="65"/>
+		<element name="st_min_num" type="float" flags="65"/>
+		<element name="st_avg_num" type="float" flags="65"/>
+		<element name="st_max_num" type="float" flags="65"/>
+		<element name="st_min_gnum" type="float" flags="65"/>
+		<element name="st_avg_gnum" type="float" flags="65"/>
+		<element name="st_max_gnum" type="float" flags="65"/>
+		<element name="st_min_instances" type="float" flags="65"/>
+		<element name="st_avg_instances" type="float" flags="65"/>
+		<element name="st_max_instances" type="float" flags="65"/>
+		<element name="st_min_lifespan" type="float" flags="65"/>
+		<element name="st_avg_lifespan" type="float" flags="65"/>
+		<element name="st_max_lifespan" type="float" flags="65"/>
+		<element name="st_min_velocity" type="float" flags="65"/>
+		<element name="st_avg_velocity" type="float" flags="65"/>
+		<element name="st_max_velocity" type="float" flags="65"/>
+		<element name="st_min_distance" type="float" flags="65"/>
+		<element name="st_avg_distance" type="float" flags="65"/>
+		<element name="st_max_distance" type="float" flags="65"/>
+		<element name="st_min_vertvel" type="float" flags="65"/>
+		<element name="st_avg_vertvel" type="float" flags="65"/>
+		<element name="st_max_vertvel" type="float" flags="65"/>
+		<element name="st_min_vertpos" type="float" flags="65"/>
+		<element name="st_avg_vertpos" type="float" flags="65"/>
+		<element name="st_max_vertpos" type="float" flags="65"/>
+		<element name="st_min_fit" type="float" flags="65"/>
+		<element name="st_avg_fit" type="float" flags="65"/>
+		<element name="st_max_fit" type="float" flags="65"/>
+		<element name="st_min_fit2" type="float" flags="65"/>
+		<element name="st_avg_fit2" type="float" flags="65"/>
+		<element name="st_max_fit2" type="float" flags="65"/>
+		<element name="st_min_c_velocity" type="float" flags="65"/>
+		<element name="st_avg_c_velocity" type="float" flags="65"/>
+		<element name="st_max_c_velocity" type="float" flags="65"/>
+		<element name="st_min_c_vertvelocity" type="float" flags="65"/>
+		<element name="st_avg_c_vertvelocity" type="float" flags="65"/>
+		<element name="st_max_c_vertvelocity" type="float" flags="65"/>
+		<element name="st_min_c_vertpos" type="float" flags="65"/>
+		<element name="st_avg_c_vertpos" type="float" flags="65"/>
+		<element name="st_max_c_vertpos" type="float" flags="65"/>
+		<element name="st_min_pos_x" type="float" flags="65"/>
+		<element name="st_avg_pos_x" type="float" flags="65"/>
+		<element name="st_max_pos_x" type="float" flags="65"/>
+		<element name="st_min_pos_y" type="float" flags="65"/>
+		<element name="st_avg_pos_y" type="float" flags="65"/>
+		<element name="st_max_pos_y" type="float" flags="65"/>
+		<element name="st_min_pos_z" type="float" flags="65"/>
+		<element name="st_avg_pos_z" type="float" flags="65"/>
+		<element name="st_max_pos_z" type="float" flags="65"/>
+		<element name="st_min_size_x" type="float" flags="65"/>
+		<element name="st_avg_size_x" type="float" flags="65"/>
+		<element name="st_max_size_x" type="float" flags="65"/>
+		<element name="st_min_size_y" type="float" flags="65"/>
+		<element name="st_avg_size_y" type="float" flags="65"/>
+		<element name="st_max_size_y" type="float" flags="65"/>
+		<element name="st_min_size_z" type="float" flags="65"/>
+		<element name="st_avg_size_z" type="float" flags="65"/>
+		<element name="st_max_size_z" type="float" flags="65"/>
+		<element name="st_min_center_x" type="float" flags="65"/>
+		<element name="st_avg_center_x" type="float" flags="65"/>
+		<element name="st_max_center_x" type="float" flags="65"/>
+		<element name="st_min_center_y" type="float" flags="65"/>
+		<element name="st_avg_center_y" type="float" flags="65"/>
+		<element name="st_max_center_y" type="float" flags="65"/>
+		<element name="st_min_center_z" type="float" flags="65"/>
+		<element name="st_avg_center_z" type="float" flags="65"/>
+		<element name="st_max_center_z" type="float" flags="65"/>
 	</type>
 	<type name="StopEvent" context="Global context">
 <description><![CDATA[StopEvent]]></description>
-		<element name="index" type="integer"/>
-		<element name="slave" type="Simulator"/>
+		<element name="index" type="integer" flags="1"/>
+		<element name="slave" type="Simulator" flags="1"/>
 	</type>
 	<type name="String" context="Global context">
@@ -4776,5 +4776,5 @@
 	<type name="Symmetry" context="Global context">
 <description><![CDATA[Calculates bilateral symmetry. Details are described in http://www.framsticks.com/node/808]]></description>
-		<element name="calculateSymmetry" function="true" type="float">
+		<element name="calculateSymmetry" function="true" type="float" flags="32">
 			<description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model using default precision parameters (symPosSteps,symAlphaSteps,symBetaSteps). Returns the symmetry plane, too (sets symResultA,B,C,D).
 Note: may take a long time for large creatures.]]></description>
@@ -4783,5 +4783,5 @@
 			</arguments>
 		</element>
-		<element name="calculateSymmetry2" function="true" type="float">
+		<element name="calculateSymmetry2" function="true" type="float" flags="32">
 			<description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model using specified precision parameters. Returns the symmetry plane, too (sets symResultA,B,C,D).
 Note: may take a long time for large creatures.]]></description>
@@ -4793,5 +4793,5 @@
 			</arguments>
 		</element>
-		<element name="calculateSymmetryForPlane" function="true" type="float">
+		<element name="calculateSymmetryForPlane" function="true" type="float" flags="32">
 			<description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model and given a specific plane defined by coefficients A, B, C, D.]]></description>
 			<arguments>
@@ -4812,17 +4812,17 @@
 			<description><![CDATA[Default number of samples per full angle (#2)]]></description>
 		</element>
-		<element name="symResultA" type="float"/>
-		<element name="symResultB" type="float"/>
-		<element name="symResultC" type="float"/>
-		<element name="symResultD" type="float"/>
+		<element name="symResultA" type="float" flags="35"/>
+		<element name="symResultB" type="float" flags="35"/>
+		<element name="symResultC" type="float" flags="35"/>
+		<element name="symResultD" type="float" flags="35"/>
 	</type>
 	<type name="UserScripts" context="Global context">
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
 	</type>
 	<type name="Vector" context="Global context">
@@ -4831,17 +4831,17 @@
 var v=Vector.new();
 v.add(123); v.add("string");]]></description>
-		<element name="clear" function="true" type="void"><arguments/></element>
-		<element name="size" type="integer"/>
-		<element name="remove" function="true" type="void">
+		<element name="clear" function="true" type="void" flags="256"><arguments/></element>
+		<element name="size" type="integer" flags="257"/>
+		<element name="remove" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="position" type="integer"/>
 			</arguments>
 		</element>
-		<element name="get" function="true" type="untyped">
+		<element name="get" function="true" type="untyped" flags="256">
 			<arguments>
 				<argument name="position" type="integer"/>
 			</arguments>
 		</element>
-		<element name="set" function="true" type="void">
+		<element name="set" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="position" type="integer"/>
@@ -4849,10 +4849,10 @@
 			</arguments>
 		</element>
-		<element name="add" function="true" type="void">
+		<element name="add" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="value" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="find" function="true" type="integer">
+		<element name="find" function="true" type="integer" flags="256">
 			<description><![CDATA[returns the element index or -1 if not found]]></description>
 			<arguments>
@@ -4860,11 +4860,11 @@
 			</arguments>
 		</element>
-		<element name="avg" type="float"/>
-		<element name="stdev" type="float">
+		<element name="avg" type="float" flags="257"/>
+		<element name="stdev" type="float" flags="257">
 			<description><![CDATA[=sqrt(sum((element[i]-avg)^2)/(size-1)) which is estimated population std.dev. from sample std.dev.]]></description>
 		</element>
-		<element name="toString" type="string"/>
+		<element name="toString" type="string" flags="257"/>
 		<element name="new" function="true" type="Vector"><arguments/></element>
-		<element name="sort" function="true" type="void">
+		<element name="sort" function="true" type="void" flags="256">
 			<description><![CDATA[comparator can be null, giving the "natural" sorting order (depending on element type), otherwise it must be a function reference obtained by the "function FUNCTIONNAME" operator.
 
@@ -4877,5 +4877,5 @@
 			</arguments>
 		</element>
-		<element name="iterator" type="Object"/>
+		<element name="iterator" type="Object" flags="257"/>
 	</type>
 	<type name="World" context="Global context">
@@ -4903,5 +4903,5 @@
 The "official" setting used to evaluate and compare creatures is 1.]]></description>
 		</element>
-		<element name="wrldchg" function="true" type="void"><arguments/></element>
+		<element name="wrldchg" function="true" type="void" flags="32"><arguments/></element>
 		<element name="simtype" type="integer" min="0" max="1" default="0">
 			<description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
@@ -4913,5 +4913,5 @@
 			<description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
 		</element>
-		<element name="signals" type="WorldSignals"/>
+		<element name="signals" type="WorldSignals" flags="35"/>
 	</type>
 	<type name="WorldMap" context="Global context">
@@ -4922,6 +4922,6 @@
 Smooth: x/ysize=World.wrldsiz+2 rows of vertices (creating World.wrldsiz+1 rows of triangles, everything within the world boundaries)
 ]]></description>
-		<element name="xsize" type="integer"/>
-		<element name="ysize" type="integer"/>
+		<element name="xsize" type="integer" flags="1"/>
+		<element name="ysize" type="integer" flags="1"/>
 		<element name="getHeight" function="true" type="float">
 			<description><![CDATA[Height at any 2d coordinate]]></description>
@@ -5009,12 +5009,12 @@
 			</arguments>
 		</element>
-		<element name="size" type="integer"/>
-		<element name="clear" function="true" type="void"><arguments/></element>
+		<element name="size" type="integer" flags="1"/>
+		<element name="clear" function="true" type="void" flags="1"><arguments/></element>
 	</type>
 	<type name="XYZ" context="Global context">
 <description><![CDATA[3D vector]]></description>
-		<element name="x" type="float"/>
-		<element name="y" type="float"/>
-		<element name="z" type="float"/>
+		<element name="x" type="float" flags="256"/>
+		<element name="y" type="float" flags="256"/>
+		<element name="z" type="float" flags="256"/>
 		<element name="new" function="true" type="XYZ">
 			<description><![CDATA[3D vectors objects can be also created using the (x,y,z) notation, i.e. var v=(1,2,3) is the same as var v=XYZ.new(1,2,3);]]></description>
@@ -5031,5 +5031,5 @@
 			</arguments>
 		</element>
-		<element name="clone" function="true" type="XYZ">
+		<element name="clone" function="true" type="XYZ" flags="256">
 			<description><![CDATA[Note: copying object references does not create new objects. Use clone() if a new object is needed.
 
@@ -5039,10 +5039,10 @@
 //o2 is now (1,9999,3) but o3 is still (1,2,3)]]></description>
 <arguments/></element>
-		<element name="set" function="true" type="void">
+		<element name="set" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="XYZ"/>
 			</arguments>
 		</element>
-		<element name="set3" function="true" type="void">
+		<element name="set3" function="true" type="void" flags="256">
 			<arguments>
 				<argument name="x" type="float"/>
@@ -5051,5 +5051,5 @@
 			</arguments>
 		</element>
-		<element name="add" function="true" type="void">
+		<element name="add" function="true" type="void" flags="256">
 			<description><![CDATA[Note: it does not return a new object, just modifies the existing one]]></description>
 			<arguments>
@@ -5057,5 +5057,5 @@
 			</arguments>
 		</element>
-		<element name="sub" function="true" type="void">
+		<element name="sub" function="true" type="void" flags="256">
 			<description><![CDATA[Note: it does not return a new object, just modifies the existing one]]></description>
 			<arguments>
@@ -5063,26 +5063,26 @@
 			</arguments>
 		</element>
-		<element name="scale" function="true" type="void">
+		<element name="scale" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="float"/>
 			</arguments>
 		</element>
-		<element name="length" type="float"/>
-		<element name="normalize" function="true" type="void">
+		<element name="length" type="float" flags="257"/>
+		<element name="normalize" function="true" type="void" flags="256">
 			<description><![CDATA[scales the vector length to 1.0]]></description>
 <arguments/></element>
-		<element name="toString" type="string"/>
-		<element name="toVector" type="Vector"/>
-		<element name="rotate" function="true" type="void">
+		<element name="toString" type="string" flags="257"/>
+		<element name="toVector" type="Vector" flags="257"/>
+		<element name="rotate" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="Orient"/>
 			</arguments>
 		</element>
-		<element name="revRotate" function="true" type="void">
+		<element name="revRotate" function="true" type="void" flags="256">
 			<arguments>
 				<argument type="Orient"/>
 			</arguments>
 		</element>
-		<element name="get" function="true" type="float">
+		<element name="get" function="true" type="float" flags="256">
 			<description><![CDATA[this function makes the XYZ objects "indexable" (so you can use [] for accessing subsequent fields, like in Vector)]]></description>
 			<arguments>
@@ -5092,20 +5092,20 @@
 	</type>
 	<type name="ExpParams" context="Experiment definition">
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
 	</type>
 	<type name="ExpState" context="Experiment definition">
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
 	</type>
 	<type name="n" context="Neuron definitions">
@@ -5115,21 +5115,21 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string"/>
-		<element name="getInputCount" type="integer"/>
-		<element name="getInputNeuroDef" function="true" type="NeuroDef">
+		<element name="getInputCount" type="integer" flags="3"/>
+		<element name="getInputNeuroDef" function="true" type="NeuroDef" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="getInputNeuroIndex" function="true" type="integer">
+		<element name="getInputNeuroIndex" function="true" type="integer" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="getInputWeight" function="true" type="float">
+		<element name="getInputWeight" function="true" type="float" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="classObject" type="NeuroClass"/>
+		<element name="classObject" type="NeuroClass" flags="3"/>
 	</type>
 	<type name="Neuro" context="Neuron definitions">
@@ -5161,7 +5161,7 @@
 			</arguments>
 		</element>
-		<element name="getInputCount" type="integer"/>
-		<element name="inputSum" type="float"/>
-		<element name="weightedInputSum" type="float"/>
+		<element name="getInputCount" type="integer" flags="1"/>
+		<element name="inputSum" type="float" flags="1"/>
+		<element name="weightedInputSum" type="float" flags="1"/>
 		<element name="getInputChannelCount" function="true" type="integer">
 			<arguments>
@@ -5213,11 +5213,11 @@
 			</arguments>
 		</element>
-		<element name="position_x" type="float"/>
-		<element name="position_y" type="float"/>
-		<element name="position_z" type="float"/>
-		<element name="creature" type="Creature"/>
-		<element name="part" type="MechPart"/>
-		<element name="joint" type="MechJoint"/>
-		<element name="fields" type="Fields">
+		<element name="position_x" type="float" flags="1"/>
+		<element name="position_y" type="float" flags="1"/>
+		<element name="position_z" type="float" flags="1"/>
+		<element name="creature" type="Creature" flags="1"/>
+		<element name="part" type="MechPart" flags="1"/>
+		<element name="joint" type="MechJoint" flags="1"/>
+		<element name="fields" type="Fields" flags="1">
 			<description><![CDATA[Neurons can have different fields depending on their class. Script neurons have their fields defined using the "prop:" syntax. If you develop a custom neuron script you should use the Fields object for accessing your own neuron fields. The Neuro.fields property is meant for accessing the neuron fields from the outside script.
 Examples:
@@ -5234,7 +5234,7 @@
  Simulator.print(iobj.getId(i)+" ("+iobj.getName(i)+")");]]></description>
 		</element>
-		<element name="def" type="NeuroDef"/>
-		<element name="classObject" type="NeuroClass"/>
-		<element name="signals" type="NeuroSignals"/>
+		<element name="def" type="NeuroDef" flags="1"/>
+		<element name="classObject" type="NeuroClass" flags="1"/>
+		<element name="signals" type="NeuroSignals" flags="1"/>
 	</type>
 	<type name="this" context="Fitness formula">
@@ -5246,22 +5246,22 @@
 			<description><![CDATA[Additional information or comments]]></description>
 		</element>
-		<element name="simi" type="float">
+		<element name="simi" type="float" flags="3">
 			<description><![CDATA[Read about details:
 http://www.framsticks.com/node/795
 http://www.framsticks.com/node/890]]></description>
 		</element>
-		<element name="energ0" type="float"/>
-		<element name="strsiz" type="float"/>
-		<element name="strjoints" type="float"/>
-		<element name="nnsiz" type="float"/>
-		<element name="nncon" type="float"/>
-		<element name="numparts" type="float"/>
-		<element name="numjoints" type="float"/>
-		<element name="numneurons" type="float"/>
-		<element name="numconnections" type="float"/>
+		<element name="energ0" type="float" flags="3"/>
+		<element name="strsiz" type="float" flags="35"/>
+		<element name="strjoints" type="float" flags="35"/>
+		<element name="nnsiz" type="float" flags="35"/>
+		<element name="nncon" type="float" flags="35"/>
+		<element name="numparts" type="float" flags="3"/>
+		<element name="numjoints" type="float" flags="3"/>
+		<element name="numneurons" type="float" flags="3"/>
+		<element name="numconnections" type="float" flags="3"/>
 		<element name="num" type="integer"/>
 		<element name="gnum" type="integer"/>
-		<element name="popsiz" type="integer"/>
-		<element name="instances" type="integer">
+		<element name="popsiz" type="integer" flags="32"/>
+		<element name="instances" type="integer" flags="2">
 			<description><![CDATA[Copies of this genotype]]></description>
 		</element>
@@ -5275,46 +5275,46 @@
 		<element name="vertvel" type="float"/>
 		<element name="vertpos" type="float"/>
-		<element name="fit" type="float"/>
-		<element name="fit2" type="float">
+		<element name="fit" type="float" flags="3"/>
+		<element name="fit2" type="float" flags="3">
 			<description><![CDATA[Fitness shifted by (avg-n*stddev)]]></description>
 		</element>
-		<element name="f0genotype" type="string">
+		<element name="f0genotype" type="string" flags="3">
 			<description><![CDATA[converted to f0 genotype]]></description>
 		</element>
-		<element name="convtrace1" type="string"/>
+		<element name="convtrace1" type="string" flags="3"/>
 		<element name="user1" type="untyped"/>
 		<element name="user2" type="untyped"/>
 		<element name="user3" type="untyped"/>
 		<element name="mutate" function="true" type="void"><arguments/></element>
-		<element name="isValid" type="integer" min="0" max="1"/>
-		<element name="getNormalized" function="true" type="float">
+		<element name="isValid" type="integer" min="0" max="1" flags="35"/>
+		<element name="getNormalized" function="true" type="float" flags="35">
 			<arguments>
 				<argument name="property name or index" type="untyped"/>
 			</arguments>
 		</element>
-		<element name="geno" type="Geno">
+		<element name="geno" type="Geno" flags="35">
 			<description><![CDATA[Geno object for this Genotype]]></description>
 		</element>
-		<element name="uid" type="string">
+		<element name="uid" type="string" flags="33">
 			<description><![CDATA[Unique identifier]]></description>
 		</element>
-		<element name="getModel" function="true" type="Model"><arguments/></element>
-		<element name="splitInstances" function="true" type="void"><arguments/></element>
-		<element name="newFromString" function="true" type="Genotype">
+		<element name="getModel" function="true" type="Model" flags="35"><arguments/></element>
+		<element name="splitInstances" function="true" type="void" flags="32"><arguments/></element>
+		<element name="newFromString" function="true" type="Genotype" flags="32">
 			<arguments>
 				<argument name="genotype" type="string"/>
 			</arguments>
 		</element>
-		<element name="newFromGeno" function="true" type="Genotype">
+		<element name="newFromGeno" function="true" type="Genotype" flags="32">
 			<arguments>
 				<argument name="geno" type="Geno"/>
 			</arguments>
 		</element>
-		<element name="newFromCreature" function="true" type="Genotype">
+		<element name="newFromCreature" function="true" type="Genotype" flags="32">
 			<arguments>
 				<argument name="creature" type="Creature"/>
 			</arguments>
 		</element>
-		<element name="addPerformanceFromCreature" function="true" type="void">
+		<element name="addPerformanceFromCreature" function="true" type="void" flags="34">
 			<description><![CDATA[Updates the Genotype's performance values merging them with the supplied Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
 			<arguments>
@@ -5322,5 +5322,5 @@
 			</arguments>
 		</element>
-		<element name="moveTo" function="true" type="void">
+		<element name="moveTo" function="true" type="void" flags="32">
 			<description><![CDATA[the genotype is removed from its current pool when pool=null]]></description>
 			<arguments>
@@ -5328,5 +5328,5 @@
 			</arguments>
 		</element>
-		<element name="copyTo" function="true" type="Genotype">
+		<element name="copyTo" function="true" type="Genotype" flags="32">
 			<description><![CDATA[returns the duplicate genotype, created in the target pool]]></description>
 			<arguments>
@@ -5334,12 +5334,12 @@
 			</arguments>
 		</element>
-		<element name="delete" function="true" type="void"><arguments/></element>
-		<element name="deleteOne" function="true" type="void">
+		<element name="delete" function="true" type="void" flags="32"><arguments/></element>
+		<element name="deleteOne" function="true" type="void" flags="32">
 			<description><![CDATA[]]></description>
 <arguments/></element>
-		<element name="genepool" type="untyped">
+		<element name="genepool" type="untyped" flags="35">
 			<description><![CDATA[GenePool object or null when not in pool]]></description>
 		</element>
-		<element name="index" type="integer">
+		<element name="index" type="integer" flags="35">
 			<description><![CDATA[-1 when not in pool.
 Note that the index changes depending on the current genotype position in the pool. Use Genotype.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
@@ -5352,17 +5352,17 @@
 See also: Population.]]></description>
 		<element name="name" type="string"/>
-		<element name="genotype" type="string"/>
+		<element name="genotype" type="string" flags="1"/>
 		<element name="info" type="string">
 			<description><![CDATA[Additional info or comments]]></description>
 		</element>
-		<element name="group" type="untyped" deprecated="true">
+		<element name="group" type="untyped" deprecated="true" flags="8227">
 			<description><![CDATA[Deprecated. Use population instead.]]></description>
 		</element>
-		<element name="population" type="untyped"/>
-		<element name="index" type="integer">
+		<element name="population" type="untyped" flags="35"/>
+		<element name="index" type="integer" flags="35">
 			<description><![CDATA[Note that the index changes depending on the current creature position in the population. Use Creature.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
 		</element>
 		<element name="gnum" type="integer"/>
-		<element name="buildproblems" type="integer"/>
+		<element name="buildproblems" type="integer" flags="34"/>
 		<element name="energ0" type="float"/>
 		<element name="idleen" type="float"/>
@@ -5383,5 +5383,5 @@
 			<description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
 		</element>
-		<element name="selfcolstate" function="true" type="integer">
+		<element name="selfcolstate" function="true" type="integer" flags="32">
 			<description><![CDATA[Current self-collision state. In old versions this was a field, not a function.]]></description>
 <arguments/></element>
@@ -5394,39 +5394,39 @@
 		<element name="vertpos" type="float"/>
 		<element name="vertvel" type="float"/>
-		<element name="pos_x" type="float">
+		<element name="pos_x" type="float" flags="3">
 			<description><![CDATA[(pos_x,pos_y,pos_z) is the point of minimal coordinates ("bottom left corner") of the creature, including imaginary Part sizes (Part.s, usually 1.0). See also: Creature.moveAbs]]></description>
 		</element>
-		<element name="pos_y" type="float">
+		<element name="pos_y" type="float" flags="3">
 			<description><![CDATA[See Creature.pos_x]]></description>
 		</element>
-		<element name="pos_z" type="float">
+		<element name="pos_z" type="float" flags="3">
 			<description><![CDATA[See Creature.pos_x]]></description>
 		</element>
-		<element name="size_x" type="float">
+		<element name="size_x" type="float" flags="3">
 			<description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including the imaginary part sizes (Part.s, usually 1.0). A creature consisting of a single default Part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
 See also: Creature.moveAbs]]></description>
 		</element>
-		<element name="size_y" type="float">
+		<element name="size_y" type="float" flags="3">
 			<description><![CDATA[See Creature.size_x]]></description>
 		</element>
-		<element name="size_z" type="float">
+		<element name="size_z" type="float" flags="3">
 			<description><![CDATA[See Creature.size_x]]></description>
 		</element>
-		<element name="center_x" type="float">
+		<element name="center_x" type="float" flags="1">
 			<description><![CDATA[Center of gravity]]></description>
 		</element>
-		<element name="center_y" type="float">
+		<element name="center_y" type="float" flags="1">
 			<description><![CDATA[Center of gravity]]></description>
 		</element>
-		<element name="center_z" type="float">
+		<element name="center_z" type="float" flags="1">
 			<description><![CDATA[Center of gravity]]></description>
 		</element>
-		<element name="numparts" type="integer"/>
-		<element name="numjoints" type="integer"/>
-		<element name="numneurons" type="integer"/>
+		<element name="numparts" type="integer" flags="3"/>
+		<element name="numjoints" type="integer" flags="3"/>
+		<element name="numneurons" type="integer" flags="3"/>
 		<element name="user1" type="untyped"/>
 		<element name="user2" type="untyped"/>
 		<element name="user3" type="untyped"/>
-		<element name="move" function="true" type="void">
+		<element name="move" function="true" type="void" flags="32">
 			<description><![CDATA[Shift the creature by a given vector.]]></description>
 			<arguments>
@@ -5436,5 +5436,5 @@
 			</arguments>
 		</element>
-		<element name="moveAbs" function="true" type="void">
+		<element name="moveAbs" function="true" type="void" flags="32">
 			<description><![CDATA[Moves the creature so that its origin (pos_x,pos_y,pos_z) is placed at the given location. The origin is the point of minimal coordinates ("bottom left corner"), including imaginary part sizes (Part.s, usually 1.0).
 Assuming a simple single-stick creature "X" having parts at (0,0,0) and (1,0,0),
@@ -5452,5 +5452,5 @@
 			</arguments>
 		</element>
-		<element name="moveLocal" function="true" type="void">
+		<element name="moveLocal" function="true" type="void" flags="32">
 			<description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
 			<arguments>
@@ -5460,5 +5460,5 @@
 			</arguments>
 		</element>
-		<element name="localToWorld" function="true" type="XYZ">
+		<element name="localToWorld" function="true" type="XYZ" flags="32">
 			<description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
 			<arguments>
@@ -5468,5 +5468,5 @@
 			</arguments>
 		</element>
-		<element name="worldToLocal" function="true" type="XYZ">
+		<element name="worldToLocal" function="true" type="XYZ" flags="32">
 			<description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
 			<arguments>
@@ -5476,8 +5476,8 @@
 			</arguments>
 		</element>
-		<element name="orient" type="Orient">
+		<element name="orient" type="Orient" flags="33">
 			<description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
 		</element>
-		<element name="rotate" function="true" type="void">
+		<element name="rotate" function="true" type="void" flags="32">
 			<description><![CDATA[Rotate the creature around X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
 			<arguments>
@@ -5487,5 +5487,5 @@
 			</arguments>
 		</element>
-		<element name="rotateLocal" function="true" type="void">
+		<element name="rotateLocal" function="true" type="void" flags="32">
 			<description><![CDATA[Rotate the creature around (local) X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
 			<arguments>
@@ -5495,56 +5495,56 @@
 			</arguments>
 		</element>
-		<element name="drive" type="XYZ">
+		<element name="drive" type="XYZ" flags="34">
 			<description><![CDATA[Measured in global coordinates]]></description>
 		</element>
-		<element name="localDrive" type="XYZ">
+		<element name="localDrive" type="XYZ" flags="34">
 			<description><![CDATA[Measured in local coordinates, that is, with respect to the current orientation of the creature.
 See also: Creature.orient]]></description>
 		</element>
-		<element name="getPart" function="true" type="Part">
+		<element name="getPart" function="true" type="Part" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getJoint" function="true" type="Joint">
+		<element name="getJoint" function="true" type="Joint" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getNeuroDef" function="true" type="NeuroDef">
+		<element name="getNeuroDef" function="true" type="NeuroDef" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getMechPart" function="true" type="MechPart">
+		<element name="getMechPart" function="true" type="MechPart" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getMechJoint" function="true" type="MechJoint">
+		<element name="getMechJoint" function="true" type="MechJoint" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getNeuro" function="true" type="Neuro">
+		<element name="getNeuro" function="true" type="Neuro" flags="32">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
-		<element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
-		<element name="currentGeometryAsF0" function="true" type="string"><arguments/></element>
-		<element name="geno" type="Geno">
+		<element name="selfmask" type="integer" min="0" max="2147483647" default="0" flags="32"/>
+		<element name="othermask" type="integer" min="0" max="2147483647" default="0" flags="32"/>
+		<element name="currentGeometryAsF0" function="true" type="string" flags="32"><arguments/></element>
+		<element name="geno" type="Geno" flags="35">
 			<description><![CDATA[Source genotype for this creature]]></description>
 		</element>
-		<element name="model" type="Model">
+		<element name="model" type="Model" flags="35">
 			<description><![CDATA[Source Model for this creature]]></description>
 		</element>
-		<element name="liveModel" type="Model">
+		<element name="liveModel" type="Model" flags="35">
 			<description><![CDATA[A Model object that is a copy of the current (temporary) geometry of this creature]]></description>
 		</element>
-		<element name="uid" type="string"/>
-		<element name="signals" type="CreatureSignals"/>
-		<element name="boundingBoxCollisions" function="true" type="integer">
+		<element name="uid" type="string" flags="33"/>
+		<element name="signals" type="CreatureSignals" flags="35"/>
+		<element name="boundingBoxCollisions" function="true" type="integer" flags="34">
 			<description><![CDATA[Checks approximate collisions for the selected creature.
 Returns the collision mask calculated as ( creature.selfmask & other_creatures.othermask ).
@@ -5579,31 +5579,31 @@
 <description><![CDATA[Scene graph access (build and manipulate the 3d object tree)]]></description>
 		<element name="code" type="string"/>
-		<element name="currentNode" type="SSGNode"/>
-		<element name="rootNode" type="SSGNode"/>
-		<element name="updatingNode" type="SSGNode"/>
-		<element name="defaultStyle" type="string"/>
-		<element name="matrix00" type="float"/>
-		<element name="matrix01" type="float"/>
-		<element name="matrix02" type="float"/>
-		<element name="matrix03" type="float"/>
-		<element name="matrix10" type="float"/>
-		<element name="matrix11" type="float"/>
-		<element name="matrix12" type="float"/>
-		<element name="matrix13" type="float"/>
-		<element name="matrix20" type="float"/>
-		<element name="matrix21" type="float"/>
-		<element name="matrix22" type="float"/>
-		<element name="matrix23" type="float"/>
-		<element name="matrix30" type="float"/>
-		<element name="matrix31" type="float"/>
-		<element name="matrix32" type="float"/>
-		<element name="matrix33" type="float"/>
-		<element name="addTransform" function="true">
+		<element name="currentNode" type="SSGNode" flags="34"/>
+		<element name="rootNode" type="SSGNode" flags="34"/>
+		<element name="updatingNode" type="SSGNode" flags="34"/>
+		<element name="defaultStyle" type="string" flags="2"/>
+		<element name="matrix00" type="float" flags="34"/>
+		<element name="matrix01" type="float" flags="34"/>
+		<element name="matrix02" type="float" flags="34"/>
+		<element name="matrix03" type="float" flags="34"/>
+		<element name="matrix10" type="float" flags="34"/>
+		<element name="matrix11" type="float" flags="34"/>
+		<element name="matrix12" type="float" flags="34"/>
+		<element name="matrix13" type="float" flags="34"/>
+		<element name="matrix20" type="float" flags="34"/>
+		<element name="matrix21" type="float" flags="34"/>
+		<element name="matrix22" type="float" flags="34"/>
+		<element name="matrix23" type="float" flags="34"/>
+		<element name="matrix30" type="float" flags="34"/>
+		<element name="matrix31" type="float" flags="34"/>
+		<element name="matrix32" type="float" flags="34"/>
+		<element name="matrix33" type="float" flags="34"/>
+		<element name="addTransform" function="true" flags="32">
 			<description><![CDATA[create the transform node as a child of the current node and make it the new current node.]]></description>
 		</element>
-		<element name="addBranch" function="true">
+		<element name="addBranch" function="true" flags="32">
 			<description><![CDATA[create the branch node as a child of the current node and make it the new current node]]></description>
 		</element>
-		<element name="add" function="true" type="void">
+		<element name="add" function="true" type="void" flags="32">
 			<description><![CDATA[add a child node to the current node]]></description>
 			<arguments>
@@ -5611,6 +5611,6 @@
 			</arguments>
 		</element>
-		<element name="matrixReset" function="true"/>
-		<element name="matrixMove" function="true" type="void">
+		<element name="matrixReset" function="true" flags="32"/>
+		<element name="matrixMove" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="x" type="float"/>
@@ -5619,5 +5619,5 @@
 			</arguments>
 		</element>
-		<element name="matrixScale" function="true" type="void">
+		<element name="matrixScale" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="x" type="float"/>
@@ -5626,5 +5626,5 @@
 			</arguments>
 		</element>
-		<element name="matrixOrient" function="true" type="void">
+		<element name="matrixOrient" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="x" type="float"/>
@@ -5633,5 +5633,5 @@
 			</arguments>
 		</element>
-		<element name="matrixRotate" function="true" type="void">
+		<element name="matrixRotate" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="x" type="float"/>
@@ -5640,10 +5640,10 @@
 			</arguments>
 		</element>
-		<element name="matrixRotate1" function="true" type="void">
+		<element name="matrixRotate1" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="xyz" type="integer"/>
 			</arguments>
 		</element>
-		<element name="matrixMove1" function="true" type="void">
+		<element name="matrixMove1" function="true" type="void" flags="32">
 			<description><![CDATA[MechPart.pos can be used here]]></description>
 			<arguments>
@@ -5651,5 +5651,5 @@
 			</arguments>
 		</element>
-		<element name="matrixOrient1" function="true" type="void">
+		<element name="matrixOrient1" function="true" type="void" flags="32">
 			<description><![CDATA[MechPart.orient can be used here]]></description>
 			<arguments>
@@ -5657,5 +5657,5 @@
 			</arguments>
 		</element>
-		<element name="setMatrix" function="true" type="void">
+		<element name="setMatrix" function="true" type="void" flags="32">
 			<description><![CDATA[copy current matrix into specified node]]></description>
 			<arguments>
@@ -5663,5 +5663,5 @@
 			</arguments>
 		</element>
-		<element name="getBranch" function="true" type="integer">
+		<element name="getBranch" function="true" type="integer" flags="32">
 			<arguments>
 				<argument name="branch node" type="SSGNode"/>
@@ -5669,5 +5669,5 @@
 			</arguments>
 		</element>
-		<element name="dump" function="true" type="void">
+		<element name="dump" function="true" type="void" flags="32">
 			<arguments>
 				<argument name="node" type="SSGNode"/>
@@ -5678,34 +5678,34 @@
 	<type name="GL" context="Visual style definition">
 <description><![CDATA[OpenGL constants used in GeomBuilder and Material functions.]]></description>
-		<element name="POINTS" type="integer"/>
-		<element name="LINES" type="integer"/>
-		<element name="LINE_LOOP" type="integer"/>
-		<element name="LINE_STRIP" type="integer"/>
-		<element name="TRIANGLES" type="integer"/>
-		<element name="TRIANGLE_STRIP" type="integer"/>
-		<element name="TRIANGLE_FAN" type="integer"/>
-		<element name="QUADS" type="integer"/>
-		<element name="QUAD_STRIP" type="integer"/>
-		<element name="TEXTURE_2D" type="integer"/>
-		<element name="CULL_FACE" type="integer"/>
-		<element name="COLOR_MATERIAL" type="integer"/>
-		<element name="BLEND" type="integer"/>
-		<element name="ALPHA_TEST" type="integer"/>
-		<element name="LIGHTING" type="integer"/>
-		<element name="AMBIENT" type="integer"/>
-		<element name="DIFFUSE" type="integer"/>
-		<element name="AMBIENT_AND_DIFFUSE" type="integer"/>
-		<element name="SPECULAR" type="integer"/>
-		<element name="EMISSION" type="integer"/>
+		<element name="POINTS" type="integer" flags="513"/>
+		<element name="LINES" type="integer" flags="513"/>
+		<element name="LINE_LOOP" type="integer" flags="513"/>
+		<element name="LINE_STRIP" type="integer" flags="513"/>
+		<element name="TRIANGLES" type="integer" flags="513"/>
+		<element name="TRIANGLE_STRIP" type="integer" flags="513"/>
+		<element name="TRIANGLE_FAN" type="integer" flags="513"/>
+		<element name="QUADS" type="integer" flags="513"/>
+		<element name="QUAD_STRIP" type="integer" flags="513"/>
+		<element name="TEXTURE_2D" type="integer" flags="513"/>
+		<element name="CULL_FACE" type="integer" flags="513"/>
+		<element name="COLOR_MATERIAL" type="integer" flags="513"/>
+		<element name="BLEND" type="integer" flags="513"/>
+		<element name="ALPHA_TEST" type="integer" flags="513"/>
+		<element name="LIGHTING" type="integer" flags="513"/>
+		<element name="AMBIENT" type="integer" flags="513"/>
+		<element name="DIFFUSE" type="integer" flags="513"/>
+		<element name="AMBIENT_AND_DIFFUSE" type="integer" flags="513"/>
+		<element name="SPECULAR" type="integer" flags="513"/>
+		<element name="EMISSION" type="integer" flags="513"/>
 	</type>
 	<type name="j" context="Visual style definition">
-		<element name="p1" type="integer" min="-1" max="999999" default="-1"/>
-		<element name="p2" type="integer" min="-1" max="999999" default="-1"/>
+		<element name="p1" type="integer" min="-1" max="999999" default="-1" flags="1024"/>
+		<element name="p2" type="integer" min="-1" max="999999" default="-1" flags="1024"/>
 		<element name="rx" type="float"/>
-		<element name="ry" type="float"/>
-		<element name="rz" type="float"/>
+		<element name="ry" type="float" flags="1024"/>
+		<element name="rz" type="float" flags="1024"/>
 		<element name="dx" type="float" min="-2" max="2" default="0.0"/>
-		<element name="dy" type="float" min="-2" max="2" default="0.0"/>
-		<element name="dz" type="float" min="-2" max="2" default="0.0"/>
+		<element name="dy" type="float" min="-2" max="2" default="0.0" flags="1024"/>
+		<element name="dz" type="float" min="-2" max="2" default="0.0" flags="1024"/>
 		<element name="sh" type="integer" min="0" max="1" default="0"/>
 		<element name="stif" type="float" min="0" max="1" default="1.0"/>
@@ -5715,6 +5715,6 @@
 		<element name="Vstyle" type="string"/>
 		<element name="vr" type="float" min="0" max="1" default="0.5"/>
-		<element name="vg" type="float" min="0" max="1" default="0.5"/>
-		<element name="vb" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Loader" context="Visual style definition">
@@ -5725,5 +5725,5 @@
 	</type>
 	<type name="m" context="Visual style definition">
-		<element name="se" type="float"/>
+		<element name="se" type="float" flags="1024"/>
 		<element name="Vstyle" type="string"/>
 	</type>
@@ -5745,5 +5745,5 @@
 		<element name="dontcare" function="true"/>
 		<element name="texture" type="string"/>
-		<element name="object" type="Object"/>
+		<element name="object" type="Object" flags="1"/>
 	</type>
 	<type name="MechJoint" context="Visual style definition">
@@ -5755,12 +5755,12 @@
 		<element name="dy" type="float"/>
 		<element name="dz" type="float"/>
-		<element name="orient" type="Orient"/>
-		<element name="absorient" type="Orient"/>
-		<element name="calcorient" type="Orient"/>
-		<element name="length" type="float"/>
+		<element name="orient" type="Orient" flags="1"/>
+		<element name="absorient" type="Orient" flags="1"/>
+		<element name="calcorient" type="Orient" flags="1"/>
+		<element name="length" type="float" flags="1"/>
 		<element name="stif" type="float"/>
 		<element name="rotstif" type="float"/>
-		<element name="stress" type="float"/>
-		<element name="rotstress" type="float"/>
+		<element name="stress" type="float" flags="1"/>
+		<element name="rotstress" type="float" flags="1"/>
 	</type>
 	<type name="MechPart" context="Visual style definition">
@@ -5769,6 +5769,6 @@
 		<element name="y" type="float"/>
 		<element name="z" type="float"/>
-		<element name="pos" type="XYZ"/>
-		<element name="orient" type="Orient"/>
+		<element name="pos" type="XYZ" flags="1"/>
+		<element name="orient" type="Orient" flags="1"/>
 		<element name="m" type="float"/>
 		<element name="s" type="float"/>
@@ -5782,28 +5782,28 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string"/>
-		<element name="getInputCount" type="integer"/>
-		<element name="getInputNeuroDef" function="true" type="NeuroDef">
+		<element name="getInputCount" type="integer" flags="3"/>
+		<element name="getInputNeuroDef" function="true" type="NeuroDef" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="getInputNeuroIndex" function="true" type="integer">
+		<element name="getInputNeuroIndex" function="true" type="integer" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="getInputWeight" function="true" type="float">
+		<element name="getInputWeight" function="true" type="float" flags="3">
 			<arguments>
 				<argument type="integer"/>
 			</arguments>
 		</element>
-		<element name="classObject" type="NeuroClass"/>
+		<element name="classObject" type="NeuroClass" flags="3"/>
 		<element name="class" type="string"/>
 		<element name="state" type="float"/>
 	</type>
 	<type name="p" context="Visual style definition">
-		<element name="x" type="float"/>
-		<element name="y" type="float"/>
-		<element name="z" type="float"/>
+		<element name="x" type="float" flags="1024"/>
+		<element name="y" type="float" flags="1024"/>
+		<element name="z" type="float" flags="1024"/>
 		<element name="m" type="float" min="0.1" max="999" default="1.0"/>
 		<element name="sh" type="integer" min="0" max="3" default="0"/>
@@ -5818,12 +5818,12 @@
 		<element name="as" type="float" min="0" max="1" default="0.25"/>
 		<element name="rx" type="float"/>
-		<element name="ry" type="float"/>
-		<element name="rz" type="float"/>
+		<element name="ry" type="float" flags="1024"/>
+		<element name="rz" type="float" flags="1024"/>
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string"/>
 		<element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
 		<element name="vr" type="float" min="0" max="1" default="0.5"/>
-		<element name="vg" type="float" min="0" max="1" default="0.5"/>
-		<element name="vb" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Scene" context="Visual style definition">
@@ -5862,5 +5862,5 @@
 		<element name="genTexCoordsXZ" function="true"/>
 		<element name="genTexCoords" function="true"/>
-		<element name="node" type="SSGNode">
+		<element name="node" type="SSGNode" flags="1">
 			<description><![CDATA[This field returns the geometry node for use in GeomBuilder. You have to set all relevant geometry properties before using this field. The usual sequence:
 1. newXXX - selects the geometry type (see your OpenGL manual for explanation)
@@ -5872,36 +5872,36 @@
 	</type>
 	<type name="VisParams" context="Visual style definition">
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
-		<element name="worldpan" type="integer" min="0" max="3" default="2">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="modelpan" type="integer" min="0" max="3" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="bbox" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="joint_width" type="integer" min="10" max="150" default="100">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="shadows" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="axes" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="shownames" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="symmetryplane" type="integer" min="0" max="1" default="0">
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
+		<element name="worldpan" type="integer" min="0" max="3" default="2" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="modelpan" type="integer" min="0" max="3" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="bgcolor" type="integer" min="0" max="16777215" default="16764040" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="bbox" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="joint_width" type="integer" min="10" max="150" default="100" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="shadows" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="axes" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="shownames" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="symmetryplane" type="integer" min="0" max="1" default="0" flags="192">
 			<description><![CDATA[Displays a guess of the symmetry plane (may take a long time to compue for complex bodies).
 Use scripting and the Symmetry class to compute symmetry accurately.]]></description>
@@ -5910,14 +5910,14 @@
 	<type name="VisualModel" context="Visual style definition">
 <description><![CDATA[Visual representation of the Creature object.]]></description>
-		<element name="rootNode" type="SSGNode"/>
-		<element name="partshadow" type="float"/>
-		<element name="jointshadow" type="float"/>
-		<element name="style" type="string">
+		<element name="rootNode" type="SSGNode" flags="34"/>
+		<element name="partshadow" type="float" flags="34"/>
+		<element name="jointshadow" type="float" flags="34"/>
+		<element name="style" type="string" flags="34">
 			<description><![CDATA[visual style applied to this object]]></description>
 		</element>
-		<element name="args" type="string">
+		<element name="args" type="string" flags="34">
 			<description><![CDATA[style parameters: Vstyle=name(args)]]></description>
 		</element>
-		<element name="getArg" function="true" type="string">
+		<element name="getArg" function="true" type="string" flags="34">
 			<description><![CDATA[retrieve single style argument, as in:
 Vstyle=name(a=1,b=3)
@@ -5927,5 +5927,5 @@
 			</arguments>
 		</element>
-		<element name="color" type="integer">
+		<element name="color" type="integer" flags="34">
 			<description><![CDATA[0xBBGGRR, 0x808080=normal, 0x000000=black, 0xffffff=extra bright]]></description>
 		</element>
@@ -5933,44 +5933,44 @@
 	<type name="VisualStyle" context="Visual style definition">
 		<element name="style" type="string"/>
-		<element name="name" type="string"/>
-		<element name="info" type="string"/>
-		<element name="code" type="string"/>
-		<element name="streload" function="true"/>
-		<element name="rebuild" function="true"/>
+		<element name="name" type="string" flags="19"/>
+		<element name="info" type="string" flags="19"/>
+		<element name="code" type="string" flags="35"/>
+		<element name="streload" function="true" flags="2"/>
+		<element name="rebuild" function="true" flags="34"/>
 		<element name="tex" type="integer" min="0" max="2" default="1"/>
 		<element name="smooth" type="integer" min="0" max="1" default="1"/>
 		<element name="neurons" type="integer" min="0" max="1" default="1"/>
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
-		<element name="worldpan" type="integer" min="0" max="3" default="2">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="modelpan" type="integer" min="0" max="3" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="bbox" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="joint_width" type="integer" min="10" max="150" default="100">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="shadows" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="axes" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="shownames" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="symmetryplane" type="integer" min="0" max="1" default="0">
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
+		<element name="worldpan" type="integer" min="0" max="3" default="2" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="modelpan" type="integer" min="0" max="3" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="bgcolor" type="integer" min="0" max="16777215" default="16764040" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="bbox" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="joint_width" type="integer" min="10" max="150" default="100" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="shadows" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="axes" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="shownames" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="symmetryplane" type="integer" min="0" max="1" default="0" flags="192">
 			<description><![CDATA[Displays a guess of the symmetry plane (may take a long time to compue for complex bodies).
 Use scripting and the Symmetry class to compute symmetry accurately.]]></description>
@@ -6001,5 +6001,5 @@
 The "official" setting used to evaluate and compare creatures is 1.]]></description>
 		</element>
-		<element name="wrldchg" function="true" type="void"><arguments/></element>
+		<element name="wrldchg" function="true" type="void" flags="32"><arguments/></element>
 		<element name="simtype" type="integer" min="0" max="1" default="0">
 			<description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
@@ -6011,5 +6011,5 @@
 			<description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
 		</element>
-		<element name="signals" type="WorldSignals"/>
+		<element name="signals" type="WorldSignals" flags="35"/>
 	</type>
 	<type name="WorldMap" context="Visual style definition">
@@ -6020,6 +6020,6 @@
 Smooth: x/ysize=World.wrldsiz+2 rows of vertices (creating World.wrldsiz+1 rows of triangles, everything within the world boundaries)
 ]]></description>
-		<element name="xsize" type="integer"/>
-		<element name="ysize" type="integer"/>
+		<element name="xsize" type="integer" flags="1"/>
+		<element name="ysize" type="integer" flags="1"/>
 		<element name="getHeight" function="true" type="float">
 			<description><![CDATA[Height at any 2d coordinate]]></description>
@@ -6056,17 +6056,17 @@
 	</type>
 	<type name="Signal" context="Signal label formula">
-		<element name="value" type="untyped">
+		<element name="value" type="untyped" flags="1">
 			<description><![CDATA[Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating functions receive() and receiveFilter() ignore this attribute.]]></description>
 		</element>
-		<element name="power" type="float">
+		<element name="power" type="float" flags="1">
 			<description><![CDATA[Signal power affects the aggregated signal value returned from receive() and receiveFilter().]]></description>
 		</element>
-		<element name="flavor" type="float">
+		<element name="flavor" type="float" flags="1">
 			<description><![CDATA[Signal flavor can be used to differentiate between signals in a single channel.]]></description>
 		</element>
-		<element name="channel" type="string">
+		<element name="channel" type="string" flags="1">
 			<description><![CDATA[Channel name, read-only.]]></description>
 		</element>
-		<element name="pos" type="XYZ">
+		<element name="pos" type="XYZ" flags="1">
 			<description><![CDATA[Signal position, read-only.]]></description>
 		</element>
@@ -6080,5 +6080,5 @@
 			</arguments>
 		</element>
-		<element name="resultCount" type="integer"/>
+		<element name="resultCount" type="integer" flags="1"/>
 		<element name="getType" function="true" type="integer">
 			<description><![CDATA[0 = Unknown
@@ -6152,6 +6152,6 @@
 		</element>
 		<element name="listMacros" function="true" type="void"><arguments/></element>
-		<element name="stdin" type="Object"/>
-		<element name="stdout" type="Object"/>
+		<element name="stdin" type="Object" flags="3"/>
+		<element name="stdout" type="Object" flags="3"/>
 		<element name="msgtype" type="integer" min="0" max="1"/>
 	</type>
@@ -6159,24 +6159,24 @@
 <description><![CDATA[Manages charts for monitoring creatures performance.
 This class has no corresponding static object. If you want to use it, you have to create an object or get a reference to the existing object.]]></description>
-		<element name="selected" type="integer"/>
-		<element name="addSelected" function="true">
+		<element name="selected" type="integer" flags="258"/>
+		<element name="addSelected" function="true" flags="256">
 			<description><![CDATA[Add the chart for currenly selected property]]></description>
 		</element>
-		<element name="add" function="true">
+		<element name="add" function="true" flags="288">
 			<description><![CDATA[return the new Window object with chart as its client
 arguments: property to be tracked]]></description>
 		</element>
-		<element name="removeAll" function="true"/>
-		<element name="resetAll" function="true">
+		<element name="removeAll" function="true" flags="256"/>
+		<element name="resetAll" function="true" flags="256">
 			<description><![CDATA[Removes all data from the chart windows.]]></description>
 		</element>
-		<element name="createChart" function="true">
+		<element name="createChart" function="true" flags="288">
 			<description><![CDATA[return the new chart object (can be client for Window)
 arguments: property to be tracked]]></description>
 		</element>
-		<element name="creature" type="untyped"/>
+		<element name="creature" type="untyped" flags="290"/>
 	</type>
 	<type name="CreatureSelection" context="Command line interface">
-		<element name="count" type="integer"/>
+		<element name="count" type="integer" flags="1"/>
 		<element name="get" function="true" type="Creature">
 			<arguments>
@@ -6198,15 +6198,15 @@
 	<type name="DynaChart" context="Command line interface">
 <description><![CDATA[Line chart (visual object). Can be used as the client object in the Window.]]></description>
-		<element name="new" function="true" type="DynaChart"><arguments/></element>
-		<element name="add" function="true">
+		<element name="new" function="true" type="DynaChart" flags="32"><arguments/></element>
+		<element name="add" function="true" flags="288">
 			<description><![CDATA[add new value]]></description>
 		</element>
-		<element name="clear" function="true" type="void"><arguments/></element>
-		<element name="xscale" type="integer" min="1" max="20"/>
+		<element name="clear" function="true" type="void" flags="288"><arguments/></element>
+		<element name="xscale" type="integer" min="1" max="20" flags="288"/>
 	</type>
 	<type name="DynaChart2D" context="Command line interface">
 <description><![CDATA[2D Line chart (visual object). Can be used as the client object in the Window.]]></description>
-		<element name="new" function="true" type="DynaChart2D"><arguments/></element>
-		<element name="add" function="true" type="void">
+		<element name="new" function="true" type="DynaChart2D" flags="32"><arguments/></element>
+		<element name="add" function="true" type="void" flags="288">
 			<description><![CDATA[add (x,y) values for the next graph point]]></description>
 			<arguments>
@@ -6215,6 +6215,6 @@
 			</arguments>
 		</element>
-		<element name="clear" function="true" type="void"><arguments/></element>
-		<element name="memory" type="integer" min="1" max="1000" default="100">
+		<element name="clear" function="true" type="void" flags="288"><arguments/></element>
+		<element name="memory" type="integer" min="1" max="1000" default="100" flags="288">
 			<description><![CDATA[maximum number of (x,y) pairs drawn in the graph.]]></description>
 		</element>
@@ -6235,5 +6235,5 @@
 		<element name="draw" function="true"/>
 		<element name="quit" function="true"/>
-		<element name="active" type="integer" min="0" max="1"/>
+		<element name="active" type="integer" min="0" max="1" flags="1"/>
 		<element name="banner" type="string"/>
 		<element name="user_interaction" type="integer" min="0" max="1" default="1">
@@ -6244,5 +6244,5 @@
 		<element name="minfps" type="integer" min="1" max="100" default="5"/>
 		<element name="maxfps" type="integer" min="1" max="100" default="30"/>
-		<element name="fps" type="float">
+		<element name="fps" type="float" flags="1">
 			<description><![CDATA[Frames Per Second (measured)]]></description>
 		</element>
@@ -6250,9 +6250,9 @@
 		<element name="messagesVisible" type="integer" min="0" max="1"/>
 		<element name="clearMessages" function="true"/>
-		<element name="messagesWindow" type="Object">
+		<element name="messagesWindow" type="Object" flags="1">
 			<description><![CDATA[get window object (class Window)]]></description>
 		</element>
-		<element name="size_x" type="integer"/>
-		<element name="size_y" type="integer"/>
+		<element name="size_x" type="integer" flags="1"/>
+		<element name="size_y" type="integer" flags="1"/>
 		<element name="createWindow" function="true" type="Window">
 			<description><![CDATA[create and return the new window object.]]></description>
@@ -6290,25 +6290,25 @@
 			<description><![CDATA[How many frames are to be generated?]]></description>
 		</element>
-		<element name="imgex_enable" function="true"/>
-		<element name="imgex_disable" function="true"/>
-		<element name="imgex_now" function="true"/>
-		<element name="imgex_currframe" type="integer"/>
-		<element name="imgex_enabled" type="integer" min="0" max="1"/>
-		<element name="imgex_lastfile" type="string"/>
+		<element name="imgex_enable" function="true" flags="8"/>
+		<element name="imgex_disable" function="true" flags="8"/>
+		<element name="imgex_now" function="true" flags="8"/>
+		<element name="imgex_currframe" type="integer" flags="18"/>
+		<element name="imgex_enabled" type="integer" min="0" max="1" flags="18"/>
+		<element name="imgex_lastfile" type="string" flags="18"/>
 	</type>
 	<type name="NeuroDiagram" context="Command line interface">
 <description><![CDATA[Can be used as the client object in the Window.]]></description>
-		<element name="new" function="true"/>
-		<element name="showCreature" function="true" type="void">
+		<element name="new" function="true" flags="32"/>
+		<element name="showCreature" function="true" type="void" flags="288">
 			<arguments>
 				<argument type="Creature"/>
 			</arguments>
 		</element>
-		<element name="showModel" function="true" type="void">
+		<element name="showModel" function="true" type="void" flags="288">
 			<arguments>
 				<argument type="Model"/>
 			</arguments>
 		</element>
-		<element name="hide" function="true" type="void"><arguments/></element>
+		<element name="hide" function="true" type="void" flags="288"><arguments/></element>
 	</type>
 	<type name="RowFormat" context="Command line interface">
@@ -6348,5 +6348,5 @@
 			<description><![CDATA[The character used for separating columns]]></description>
 		</element>
-		<element name="header" type="string">
+		<element name="header" type="string" flags="1">
 			<description><![CDATA[Contains the field names with the same formatting applied (i.e. with fill and separators)]]></description>
 		</element>
@@ -6354,51 +6354,51 @@
 	<type name="ShowManager" context="Command line interface">
 		<element name="show" type="string"/>
-		<element name="name" type="string"/>
-		<element name="info" type="string"/>
-		<element name="dispinfo" type="integer" min="0" max="2"/>
-		<element name="userspeed" type="integer" min="0" max="5" default="3"/>
-		<element name="showlog" type="integer" min="0" max="1"/>
-		<element name="code" type="string"/>
-		<element name="expdef" type="string"/>
-		<element name="reload" function="true"/>
-		<element name="dummy" function="true">
+		<element name="name" type="string" flags="50"/>
+		<element name="info" type="string" flags="50"/>
+		<element name="dispinfo" type="integer" min="0" max="2" flags="2"/>
+		<element name="userspeed" type="integer" min="0" max="5" default="3" flags="2"/>
+		<element name="showlog" type="integer" min="0" max="1" flags="2"/>
+		<element name="code" type="string" flags="34"/>
+		<element name="expdef" type="string" flags="34"/>
+		<element name="reload" function="true" flags="2"/>
+		<element name="dummy" function="true" flags="2">
 			<description><![CDATA[This is the empty item in the Theater's menu]]></description>
 		</element>
-		<element name="about" function="true"/>
-		<element name="regname" type="string"/>
-		<element name="prev_show" type="string"/>
-		<element name="mode" type="integer" min="0" max="2"/>
-		<element name="switchmode" type="integer" min="0" max="3"/>
-		<element name="switchtime" type="integer" min="0" max="9999">
+		<element name="about" function="true" flags="34"/>
+		<element name="regname" type="string" flags="35"/>
+		<element name="prev_show" type="string" flags="35"/>
+		<element name="mode" type="integer" min="0" max="2" flags="35"/>
+		<element name="switchmode" type="integer" min="0" max="3" flags="32"/>
+		<element name="switchtime" type="integer" min="0" max="9999" flags="32">
 			<description><![CDATA[time between switching (seconds)]]></description>
 		</element>
-		<element name="switchshows" type="string">
+		<element name="switchshows" type="string" flags="32">
 			<description><![CDATA[names of the shows participating in automatic switching (comma separated). Use * as a wildcard.]]></description>
 		</element>
-		<element name="includeshows" type="string">
+		<element name="includeshows" type="string" flags="32">
 			<description><![CDATA[names of shows included in the show menu. Use * as a wildcard.]]></description>
 		</element>
-		<element name="excludeshows" type="string">
+		<element name="excludeshows" type="string" flags="32">
 			<description><![CDATA[names of shows excluded from the show menu. Use * as a wildcard.]]></description>
 		</element>
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
 	</type>
 	<type name="SimStatsCharts" context="Command line interface">
 <description><![CDATA[Manages charts for monitoring simulator statistics.
 This class has no corresponding static object. If you want to use it, you have to create an object or get a reference to the existing object.]]></description>
-		<element name="selected" type="integer"/>
-		<element name="sscAddSelected" function="true"/>
-		<element name="add" function="true"/>
-		<element name="removeAll" function="true"/>
-		<element name="resetAll" function="true">
+		<element name="selected" type="integer" flags="258"/>
+		<element name="sscAddSelected" function="true" flags="256"/>
+		<element name="add" function="true" flags="288"/>
+		<element name="removeAll" function="true" flags="256"/>
+		<element name="resetAll" function="true" flags="256">
 			<description><![CDATA[Removes all data from the chart windows.]]></description>
 		</element>
-		<element name="createChart" function="true"/>
+		<element name="createChart" function="true" flags="288"/>
 	</type>
 	<type name="TrackingCam" context="Command line interface">
@@ -6423,5 +6423,5 @@
 			<description><![CDATA[0=side view, 90=top view]]></description>
 		</element>
-		<element name="setTarget" function="true" type="void">
+		<element name="setTarget" function="true" type="void" flags="32">
 			<description><![CDATA[select a new target for the camera]]></description>
 			<arguments>
@@ -6432,5 +6432,5 @@
 			</arguments>
 		</element>
-		<element name="moveTarget" function="true" type="void">
+		<element name="moveTarget" function="true" type="void" flags="32">
 			<description><![CDATA[notify about the target location/size change]]></description>
 			<arguments>
@@ -6441,5 +6441,5 @@
 			</arguments>
 		</element>
-		<element name="setViewDir" function="true" type="void">
+		<element name="setViewDir" function="true" type="void" flags="32">
 			<description><![CDATA[heading: 0..360, height: -90..+90]]></description>
 			<arguments>
@@ -6448,53 +6448,53 @@
 			</arguments>
 		</element>
-		<element name="setOrient" function="true" type="void">
+		<element name="setOrient" function="true" type="void" flags="32">
 			<arguments>
 				<argument type="Orient"/>
 			</arguments>
 		</element>
-		<element name="interacting" type="integer" min="0" max="2"/>
+		<element name="interacting" type="integer" min="0" max="2" flags="35"/>
 	</type>
 	<type name="VisualStyle" context="Command line interface">
 		<element name="style" type="string"/>
-		<element name="name" type="string"/>
-		<element name="info" type="string"/>
-		<element name="code" type="string"/>
-		<element name="streload" function="true"/>
-		<element name="rebuild" function="true"/>
+		<element name="name" type="string" flags="19"/>
+		<element name="info" type="string" flags="19"/>
+		<element name="code" type="string" flags="35"/>
+		<element name="streload" function="true" flags="2"/>
+		<element name="rebuild" function="true" flags="34"/>
 		<element name="tex" type="integer" min="0" max="2" default="1"/>
 		<element name="smooth" type="integer" min="0" max="1" default="1"/>
 		<element name="neurons" type="integer" min="0" max="1" default="1"/>
-		<element name="clear" function="true"/>
-		<element name="add" function="true"/>
-		<element name="remove" function="true"/>
-		<element name="addGroup" function="true"/>
-		<element name="removeGroup" function="true"/>
-		<element name="changedProperty" type="integer"/>
-		<element name="changedPropertyId" type="string"/>
-		<element name="worldpan" type="integer" min="0" max="3" default="2">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="modelpan" type="integer" min="0" max="3" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="bbox" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="joint_width" type="integer" min="10" max="150" default="100">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="shadows" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="axes" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="shownames" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="symmetryplane" type="integer" min="0" max="1" default="0">
+		<element name="clear" function="true" flags="34"/>
+		<element name="add" function="true" flags="34"/>
+		<element name="remove" function="true" flags="34"/>
+		<element name="addGroup" function="true" flags="34"/>
+		<element name="removeGroup" function="true" flags="34"/>
+		<element name="changedProperty" type="integer" flags="35"/>
+		<element name="changedPropertyId" type="string" flags="35"/>
+		<element name="worldpan" type="integer" min="0" max="3" default="2" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="modelpan" type="integer" min="0" max="3" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="bgcolor" type="integer" min="0" max="16777215" default="16764040" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="bbox" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="joint_width" type="integer" min="10" max="150" default="100" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="shadows" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="axes" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="shownames" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="symmetryplane" type="integer" min="0" max="1" default="0" flags="192">
 			<description><![CDATA[Displays a guess of the symmetry plane (may take a long time to compue for complex bodies).
 Use scripting and the Symmetry class to compute symmetry accurately.]]></description>
@@ -6505,5 +6505,5 @@
 This class has no corresponding static object. If you want to use it, you have to create an object or get a reference to the existing object.
  See also: GLDisplay]]></description>
-		<element name="style" type="integer">
+		<element name="style" type="integer" flags="256">
 			<description><![CDATA[bitfield:
 1 - border
@@ -6513,13 +6513,13 @@
 16 - resizable]]></description>
 		</element>
-		<element name="title" type="string"/>
-		<element name="backcolor" type="integer">
+		<element name="title" type="string" flags="256"/>
+		<element name="backcolor" type="integer" flags="256">
 			<description><![CDATA[format: 0xAABBGGRR (alpha,blue,green,red)]]></description>
 		</element>
-		<element name="pos_x" type="integer"/>
-		<element name="pos_y" type="integer"/>
-		<element name="size_x" type="integer"/>
-		<element name="size_y" type="integer"/>
-		<element name="client" type="Object">
+		<element name="pos_x" type="integer" flags="256"/>
+		<element name="pos_y" type="integer" flags="256"/>
+		<element name="size_x" type="integer" flags="256"/>
+		<element name="size_y" type="integer" flags="256"/>
+		<element name="client" type="Object" flags="256">
 			<description><![CDATA[what is displayed in the window]]></description>
 		</element>
