Index: java/Framclipse/com.framsticks.framclipse/res/framscript.xml
===================================================================
--- java/Framclipse/com.framsticks.framclipse/res/framscript.xml	(revision 1281)
+++ java/Framclipse/com.framsticks.framclipse/res/framscript.xml	(revision 1319)
@@ -1680,4 +1680,7 @@
 			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
+		<element name="f0_p_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, the color of every newly created gray Part will be mutated on creation]]></description>
+		</element>
 		<element name="f0_j_new" type="float" min="0" max="100" default="4.0">
 			<description><![CDATA[]]></description>
@@ -1695,12 +1698,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_j_vred" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0_j_vgrn" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0_j_vblu" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_j_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, every newly created Joint will be assigned a color that is the average color of both joined Parts]]></description>
 		</element>
 		<element name="f0_n_new" type="float" min="0" max="100" default="3.0">
@@ -1735,13 +1732,7 @@
 			<description><![CDATA[Ensure that ellipsoids and cylinders have circle cross-section]]></description>
 		</element>
-		<element name="f0s_use_elli" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[Use ellipsoids in mutations]]></description>
-		</element>
-		<element name="f0s_use_cub" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[Use cuboids in mutations]]></description>
-		</element>
-		<element name="f0s_use_cyl" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[Use cylinders in mutations]]></description>
-		</element>
+		<element name="f0s_use_elli" type="integer" min="0" max="1" default="1"/>
+		<element name="f0s_use_cub" type="integer" min="0" max="1" default="1"/>
+		<element name="f0s_use_cyl" type="integer" min="0" max="1" default="1"/>
 		<element name="f0s_p_new" type="float" min="0" max="100" default="5.0">
 			<description><![CDATA[]]></description>
@@ -1771,4 +1762,7 @@
 			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
+		<element name="f0s_p_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, the color of every newly created gray Part will be mutated on creation]]></description>
+		</element>
 		<element name="f0s_j_new" type="float" min="0" max="100" default="5.0">
 			<description><![CDATA[]]></description>
@@ -1780,12 +1774,6 @@
 			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
-		<element name="f0s_j_vred" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0s_j_vgrn" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0s_j_vblu" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
+		<element name="f0s_j_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, every newly created Joint will be assigned a color that is the average color of both joined Parts]]></description>
 		</element>
 		<element name="f0s_n_new" type="float" min="0" max="100" default="5.0">
@@ -1820,7 +1808,11 @@
 			<description><![CDATA[Modifiers: LlRrCcQqFfMmEeWwSsAaIiDdGgBb]]></description>
 		</element>
-		<element name="f1_mut_exmod" type="string" max="30">
-			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmEeWwSsAaIiDdGgBb)]]></description>
+		<element name="f1_smModifiers" type="string" max="100">
+			<description><![CDATA[Modifier symbols that will be added or deleted during mutation
+(from the full set: LlRrCcQqFfMmEeWwSsAaIiDdGgBb).
+
+You may use the extended syntax: after every allowed symbol, you may include its probability value in parentheses.
+Without parentheses, all allowed symbols behave as if they had (1.0) appended.
+If you include (0.0) after a symbol, this bans that symbol as if it was not present in this string.]]></description>
 		</element>
 		<element name="f1_nmNeu" type="float" min="0" max="100" default="4.0">
@@ -1868,7 +1860,11 @@
 			<description><![CDATA[Maximum allowed number of repetitions for the '#' repetition gene]]></description>
 		</element>
-		<element name="f4_mut_exmod" type="string" max="30">
-			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmEeWwSsAaIiDdGgBb)]]></description>
+		<element name="f4_mut_modifiers" type="string" max="100">
+			<description><![CDATA[Modifier symbols that will be added or deleted during mutation
+(from the full set: LlRrCcQqFfMmEeWwSsAaIiDdGgBb).
+
+You may use the extended syntax: after every allowed symbol, you may include its probability value in parentheses.
+Without parentheses, all allowed symbols behave as if they had (1.0) appended.
+If you include (0.0) after a symbol, this bans that symbol as if it was not present in this string.]]></description>
 		</element>
 		<element name="f8_mut_chg_begin_arg" type="float" min="0" max="100" default="7.0">
@@ -2230,5 +2226,5 @@
 - Full/NumberOfBranches - a compromise between the two other settings.
 - Full/(NumberOfBranches+1) - because the originating stick also counts as a branch. This setting guarantees that in the worst case, when at least two neighboring branches have sticks controlled by bending muscles and their controlling signals are at extreme values, the sticks can touch and overlap, but will not intersect. This setting is in most cases too strict because (1) all branches are very rarely controlled by muscles, (2) there are often 'empty' branches - multiple commas with no sticks in-between, and (3) the share of the originating stick is effectively wasted because this stick itself has no muscle at the branching point so it will not bend; the muscle bending range is symmetrical and the default range is equal for all muscles in a branching, but the sticks equipped with muscles in a branching are rarely evenly spaced.
-- Full: Always 1 (the complete angle) - because we do not have to care about the physical plausibility and avoid intersecting sticks, and other genetic representations do not impose such constraints, so this full angle setting can be useful as the default bending range when comparing the performance of various genetic encodings.]]></description>
+- Full: always the complete angle - because we do not have to care about the physical plausibility and avoid intersecting sticks, and other genetic representations do not impose such constraints, so this full angle setting can be useful as the default bending range when comparing the performance of various genetic encodings.]]></description>
 		</element>
 		<element name="conv_f8_f1_maxlen" type="integer" min="10" max="10000" default="500">
@@ -4907,4 +4903,7 @@
 			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
+		<element name="f0_p_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, the color of every newly created gray Part will be mutated on creation]]></description>
+		</element>
 		<element name="f0_j_new" type="float" min="0" max="100" default="4.0">
 			<description><![CDATA[]]></description>
@@ -4922,12 +4921,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_j_vred" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0_j_vgrn" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0_j_vblu" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_j_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, every newly created Joint will be assigned a color that is the average color of both joined Parts]]></description>
 		</element>
 		<element name="f0_n_new" type="float" min="0" max="100" default="3.0">
@@ -4962,13 +4955,7 @@
 			<description><![CDATA[Ensure that ellipsoids and cylinders have circle cross-section]]></description>
 		</element>
-		<element name="f0s_use_elli" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[Use ellipsoids in mutations]]></description>
-		</element>
-		<element name="f0s_use_cub" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[Use cuboids in mutations]]></description>
-		</element>
-		<element name="f0s_use_cyl" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[Use cylinders in mutations]]></description>
-		</element>
+		<element name="f0s_use_elli" type="integer" min="0" max="1" default="1"/>
+		<element name="f0s_use_cub" type="integer" min="0" max="1" default="1"/>
+		<element name="f0s_use_cyl" type="integer" min="0" max="1" default="1"/>
 		<element name="f0s_p_new" type="float" min="0" max="100" default="5.0">
 			<description><![CDATA[]]></description>
@@ -4998,4 +4985,7 @@
 			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
+		<element name="f0s_p_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, the color of every newly created gray Part will be mutated on creation]]></description>
+		</element>
 		<element name="f0s_j_new" type="float" min="0" max="100" default="5.0">
 			<description><![CDATA[]]></description>
@@ -5007,12 +4997,6 @@
 			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
-		<element name="f0s_j_vred" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0s_j_vgrn" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0s_j_vblu" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
+		<element name="f0s_j_color" type="float" min="0" max="100" default="0.01">
+			<description><![CDATA[If this value is above zero, apart from this mutation occurring, every newly created Joint will be assigned a color that is the average color of both joined Parts]]></description>
 		</element>
 		<element name="f0s_n_new" type="float" min="0" max="100" default="5.0">
@@ -5047,7 +5031,11 @@
 			<description><![CDATA[Modifiers: LlRrCcQqFfMmEeWwSsAaIiDdGgBb]]></description>
 		</element>
-		<element name="f1_mut_exmod" type="string" max="30">
-			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmEeWwSsAaIiDdGgBb)]]></description>
+		<element name="f1_smModifiers" type="string" max="100">
+			<description><![CDATA[Modifier symbols that will be added or deleted during mutation
+(from the full set: LlRrCcQqFfMmEeWwSsAaIiDdGgBb).
+
+You may use the extended syntax: after every allowed symbol, you may include its probability value in parentheses.
+Without parentheses, all allowed symbols behave as if they had (1.0) appended.
+If you include (0.0) after a symbol, this bans that symbol as if it was not present in this string.]]></description>
 		</element>
 		<element name="f1_nmNeu" type="float" min="0" max="100" default="4.0">
@@ -5095,7 +5083,11 @@
 			<description><![CDATA[Maximum allowed number of repetitions for the '#' repetition gene]]></description>
 		</element>
-		<element name="f4_mut_exmod" type="string" max="30">
-			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmEeWwSsAaIiDdGgBb)]]></description>
+		<element name="f4_mut_modifiers" type="string" max="100">
+			<description><![CDATA[Modifier symbols that will be added or deleted during mutation
+(from the full set: LlRrCcQqFfMmEeWwSsAaIiDdGgBb).
+
+You may use the extended syntax: after every allowed symbol, you may include its probability value in parentheses.
+Without parentheses, all allowed symbols behave as if they had (1.0) appended.
+If you include (0.0) after a symbol, this bans that symbol as if it was not present in this string.]]></description>
 		</element>
 		<element name="f8_mut_chg_begin_arg" type="float" min="0" max="100" default="7.0">
@@ -5355,5 +5347,5 @@
 - Full/NumberOfBranches - a compromise between the two other settings.
 - Full/(NumberOfBranches+1) - because the originating stick also counts as a branch. This setting guarantees that in the worst case, when at least two neighboring branches have sticks controlled by bending muscles and their controlling signals are at extreme values, the sticks can touch and overlap, but will not intersect. This setting is in most cases too strict because (1) all branches are very rarely controlled by muscles, (2) there are often 'empty' branches - multiple commas with no sticks in-between, and (3) the share of the originating stick is effectively wasted because this stick itself has no muscle at the branching point so it will not bend; the muscle bending range is symmetrical and the default range is equal for all muscles in a branching, but the sticks equipped with muscles in a branching are rarely evenly spaced.
-- Full: Always 1 (the complete angle) - because we do not have to care about the physical plausibility and avoid intersecting sticks, and other genetic representations do not impose such constraints, so this full angle setting can be useful as the default bending range when comparing the performance of various genetic encodings.]]></description>
+- Full: always the complete angle - because we do not have to care about the physical plausibility and avoid intersecting sticks, and other genetic representations do not impose such constraints, so this full angle setting can be useful as the default bending range when comparing the performance of various genetic encodings.]]></description>
 		</element>
 		<element name="conv_f8_f1_maxlen" type="integer" min="10" max="10000" default="500">
@@ -7842,4 +7834,11 @@
 			</arguments>
 		</element>
+		<element name="cloneReplacingMaterial" function="true" type="SSGNode" flags="32">
+			<description><![CDATA[returns a clone of the input object with all materials replaced by the specified material]]></description>
+			<arguments>
+				<argument name="node" type="SSGNode"/>
+				<argument name="material" type="Material"/>
+			</arguments>
+		</element>
 		<element name="dump" function="true" type="void" flags="32">
 			<arguments>
@@ -8126,8 +8125,14 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="rgb_parts_joints" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[The color of body Parts and Joints can be individually controlled by the (red, green, blue) genes, instead of the only-green look reflecting assimilation ability]]></description>
+		</element>
+		<element name="show_parts_as_balls" type="integer" min="0" max="1" default="1" 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">
+		<element name="joint_width" type="integer" min="10" max="150" default="80" flags="192">
 			<description><![CDATA[]]></description>
 		</element>
@@ -8146,4 +8151,5 @@
 		<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).
+The plane is only shown in the 3D body view of a creature, not in the world view.
 Use scripting and the ModelSymmetry class to compute symmetry accurately.
 Details of the symmetry estimation procedure are described in http://www.framsticks.com/bib/Jaskowski-and-Komosinski-2008]]></description>
@@ -8249,8 +8255,14 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="rgb_parts_joints" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[The color of body Parts and Joints can be individually controlled by the (red, green, blue) genes, instead of the only-green look reflecting assimilation ability]]></description>
+		</element>
+		<element name="show_parts_as_balls" type="integer" min="0" max="1" default="1" 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">
+		<element name="joint_width" type="integer" min="10" max="150" default="80" flags="192">
 			<description><![CDATA[]]></description>
 		</element>
@@ -8269,4 +8281,5 @@
 		<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).
+The plane is only shown in the 3D body view of a creature, not in the world view.
 Use scripting and the ModelSymmetry class to compute symmetry accurately.
 Details of the symmetry estimation procedure are described in http://www.framsticks.com/bib/Jaskowski-and-Komosinski-2008]]></description>
@@ -8567,4 +8580,12 @@
 Not implemented in the old Framsticks Theater application.]]></description>
 		</element>
+		<element name="envmap_probe_position" type="XYZ">
+			<description><![CDATA[Used to generate the environment texture map for reflective materials.
+Not implemented in the old Framsticks Theater application.]]></description>
+		</element>
+		<element name="envmap_skybox" type="string">
+			<description><![CDATA[Alternative skybox used for the environment texture map generation. The default empty value means using the same 'envmap' as displayed in the world.
+Not implemented in the old Framsticks Theater application.]]></description>
+		</element>
 		<element name="bgcolor" type="integer" min="0" max="16777215" default="16777215">
 			<description><![CDATA[Not implemented in the old Framsticks Theater application.]]></description>
@@ -9114,4 +9135,5 @@
 			</arguments>
 		</element>
+		<element name="filter" type="integer" flags="256"/>
 	</type>
 	<type name="Rectangle" context="Framsticks Theater">
@@ -9443,8 +9465,14 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="rgb_parts_joints" type="integer" min="0" max="1" default="1" flags="192">
+			<description><![CDATA[The color of body Parts and Joints can be individually controlled by the (red, green, blue) genes, instead of the only-green look reflecting assimilation ability]]></description>
+		</element>
+		<element name="show_parts_as_balls" type="integer" min="0" max="1" default="1" 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">
+		<element name="joint_width" type="integer" min="10" max="150" default="80" flags="192">
 			<description><![CDATA[]]></description>
 		</element>
@@ -9463,4 +9491,5 @@
 		<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).
+The plane is only shown in the 3D body view of a creature, not in the world view.
 Use scripting and the ModelSymmetry class to compute symmetry accurately.
 Details of the symmetry estimation procedure are described in http://www.framsticks.com/bib/Jaskowski-and-Komosinski-2008]]></description>
