RubberWorm
From Worms Knowledge Base
RubberWorm  

Developer:  Pisto, Kawoosh 
Latest version:  RubberWorm3x (3.6.31.0):
Original by Pisto (3.6.29.0):

Supported games:  W:A 
Supported W:A version:  3.6.31.0, 3.6.29.0 
Language:  C 
License:  Partially opensource 
Download:  3.6.31.0:
3.6.29.0 (original): 
RubberWorm (or wkRubberWorm) is a module for WormKit that can modify parts of the Worms Armageddon physics to create WormPotlike effects, and adapts some features of wkMagic to the 3.6.29.0 and 3.6.31.0 versions. It was originally released by Pisto on 6 April 2008, and then ported by Kawoosh to the latest beta update with several new features.
RubberWorm's effects are applied to the game when certain scheme settings are set to certain values. These settings are normally unused, such as crate probabilities for superweapons. As such, only an external scheme editor can create schemes that will enable RubberWorm effects, though RubberWorm does also provide a chat command interface allowing a host to enable RubberWorm effects in the lobby of a WormNET game. The scheme can then be extracted from the replay afterwards.
For a complete and trusted online play, all players must run WA through WormKit or with WormKitDS, and should have the same version of the RubberWorm dll file.
Contents
 1 General Info
 2 Features
 2.1 Bouncing worms
 2.2 Gravity modifications
 2.3 Central gravity (black hole mode)
 2.4 Air viscosity
 2.5 Wind influence
 2.6 Anti worm sink
 2.7 Crate finder
 2.8 Friction modifications
 2.9 Shot doesn't end turn, Loss of control doesn't end turn, Fire doesn't pause timer, Improved rope, Continuous crate shower
 2.10 Version override
 2.11 Crate rate variability
 2.12 Crate limit variability
 3 Chat command interface
 4 Future plans
 5 See also
General Info
Installation and use
As any WormKit module, it has to be placed in the W:A main folder (or you can use the installer), and the game must be run through WormKit or with WormKitDS (included in the installer). Changes to the game are applied only when any feature of RubberWorm is enabled.
Source code
wkRubberWorm is written in C, and a part of the source code, lacking of addresses and structs (as wkMagic), is public for demonstrative purpose.
3.6.31.0 custom version
There is a 3.6.31.0compatible RubberWorm version, modified by Kawoosh to work on 3.6.31.0. It has all basic features of old RubberWorm, KaosMod, TrastulloPerAtrox and some of LaserFix and will not make desyncs when playing with an old WA+RubberWorm user*. The same concerns replays  you can safely view old 3.6.29.0 RubberWorm replays using this version. Read more here.
*If none of the new features, listed below, is enabled. Some of them were also part of old LaserFix module, and are though compatible.
New features
/wdca  weapons don't change automatically.
 Controlled by the seventh bit of the crate probability of Mole Squadron (add 64 to enable).
/ope  enables a special game mode in which all objects can be pushed by explosions. Like ldet and sdet, it is stored in the same byte as 6th bit.
 Controlled by the sixth bit of the crate probability of Mole Squadron (add 32 to enable).
/flames  allows you to enlarge the number of max possible flames at the map, up to 25500. Activated by the Scales of Justice crate probability parameter.
 Flames is set by the crate probability of Scales of Justice (the number of max possible flames will be the chosen value multiplied by 100).
/kaosmod[1/2/3/4/5]  this mod is only needed for kaos players, as it changes the utilities crate probabilities percentages, needed for a kaos scheme and league.
 Controlled by the crate probability of Earthquake (add 16 for kaosmod1, 48 for kaosmod2, 80 for kaosmod3, 112 for kaosmod4 or 144 for kaosmod5 to enable).
An explaination table is shown below.
Default  Kaosmod1  Kaosmod2  Kaosmod3  Kaosmod4  Kaosmod5  

Fast Walk  20 (18.2%)  20 (19.6%)  20 (20.0%)  25 (25.0%)  25 (25.0%)  25 (25.0%) 
Laser Sight  10 (9.1%)  10 (9.8%)  15 (15.0%)  15 (15.0%)  25 (25.0%)  15 (15.0%) 
Damage x2  15 (13.6%)  10 (9.8%)  10 (10.0%)  5 (5.0%)  0 (0.0%)  5 (5.0%) 
Invisibility  5 (4.5%)  5 (4.9%)  5 (5.0%)  0 (0.0%)  5 (5.0%)  5 (5.0%) 
Low Gravity  15 (13.6%)  15 (14.7%)  15 (15.0%)  20 (20.0%)  5 (5.0%)  25 (25.0%) 
Crate Spy  15 (13.6%)  15 (14.7%)  15 (15.0%)  20 (20.0%)  10 (10.0%)  10 (10.0%) 
Jet Pack  10 (9.1%)  10 (9.8%)  10 (10.0%)  10 (10.0%)  10 (10.0%)  10 (10.0%) 
Double Time  15 (13.6%)  12 (11.8%)  10 (10.0%)  10 (10.0%)  5 (5.0%)  5 (5.0%) 
Crate Shower  5 (4.5%)  5 (4.9%)  0 (0.0%)  0 (0.0%)  0 (0.0%)  0 (0.0%) 
/speed[value]  speed limit for roping and objects (16default, 32ts, 255nolim (like in ts3))
 Speed is set by the crate probability of Mine Strike.
/ts8  TS8 aliase command (version164) which can be directly integrated into the scheme file.
 Activated by a value of 164 (in decimal notation) of the crate probability of Select Worm.
/fuseex  extends the selectable fuse up to 9 for grenades, bananas, mad cow herds, etc.
 Controlled by the eighth bit of the crate probability of Mole Squadron (add 128 to enable).
These features have been ported from italian wkTrastulloPerAtrox.dll module:
/reaim: auto reaiming at the turn start
 Controlled by the crate probability of Earthquake (add 1 to enable).
/cira: circular aiming (tslike)
 Controlled by the crate probability of Earthquake (add 2 to enable).
/alp: antilock power (tslike)
 Controlled by the crate probability of Earthquake (add 4 to enable).
/usw: unlock sdet weapons (armageddon, earthquake, nuketest)
 Controlled by the crate probability of Earthquake (add 8 to enable).
Features
Bouncing worms
The original purpose of RubberWorm. Every time a worm hits an object or the terrain (in any direction), it bounces off of it. If it's during a rope roll, it can continue roping, and it never takes fall damage or loses the turn. The feature is always off if the worm is flying for a jump.
The worms' "boing" sound can switched on/off typing in the ingame chat /boing (not in RubberWorm3x).
 Worm bounciness (or technically, the coefficient of restitution) is determined by the quotient of the value for the Armageddon crate probability divided by 255. For example, if the value is set to 0, the coefficient of restitution is 0, resulting in no bounce. If 255, the coefficient is 1, resulting in a perfectly elastic collision (the worm bounces with the same speed with which it hit the object or terrain).
Gravity modifications
Gravity can be made stronger or weaker, eliminated or even reversed. When reversed, a worm can stand on its head and shoot, but walking is obviously buggy. Also, should an object encounter no obstacle and fall into the sky, it will be sent to water when it reaches a certain height, otherwise it would block the game indefinitely.
 Activated by the crate probability of the Mail Strike, if the high bit (eighth bit) is clear. The other bits control the strength of gravity, from 64 to +63 in two's complement format (the seventh bit is the sign bit); a value of 0 or 12 results in default gravity.
Central gravity (black hole mode)
Gravity points towards the center of the map, or away from it (antigravity). These modes can either be proportional, where gravity is stronger near the center of the map, or constant, where gravity is the same strength for all locations.
In black hole mode, the object may either start a steady orbit or fall in the middle of the map and never stop flying: to avoid the first case objects that don't explode after some seconds (like worms, mines, crates and barrels) have a very small air viscosity value (see below); for the second case, objects nearer than 15 pixel to the center are sent to water.
Antigravity has a similar safeguard to reversed gravity (see above).
The strength of the gravity can be adjusted.
 Activated by the crate probability of the Mail Strike. The high bit (eighth bit) enables black hole mode; the seventh bit enables proportional mode; the other bits control the strength of the black hole's gravity, from 32 to +31 in two's complement format (the sixth bit is the sign bit).
Air viscosity
Objects flying through the air lose speed up to a steady velocity, determined by gravity and wind (imagine throwing a rock in the water). Some objects, such as crates, graves, barrels, parachuting worms, and Mail Strike letters, will not experience this effect. It is adjustable: a value of 63 makes the air pasty as water.
 Activated by the crate probability of the Concrete Donkey. A higher value produces a stronger effect. If the value is odd, the effect will apply to worms as well as objects.
Wind influence
Like air viscosity, it can be applied to only objects or worms too, but never to those objects (like bazooka) that are already influenced by wind or crates, graves, barrels. How much the wind moves the objects is adjustable.
 Activated by the crate probability of the Suicide Bomber. A higher value produces a stronger effect, with the highest value (255) corresponding to the wind susceptibility of the Bazooka. If the value is odd, the effect will apply to worms as well as objects.
Anti worm sink
If activated, a worm that hits the water is prevented from drowning and instead teleported to the last location where it has been motionless. The turn does not end. If the teleport results in the worm falling and hitting water again (for example, if the terrain has since been destroyed by a weapon), it drowns normally.
 This feature is activated by a nonzero value for the crate probability of the French Sheep Strike.
Crate finder
Arrows point to crates, as they do in certain missions. This feature can give a player an advantage if other players do not have RubberWorm, so a chat message is used to alert other players to its use.
 Type /arrows in the ingame chat to activate this.
Friction modifications
Currently, the velocity of a worm is slowed by 4% each frame that a worm slides along the terrain. This is given by multiplying velocity by F*0.01, where the default F value is 96. A lower value results in a higher degree of friction, with F=0 reducing velocity to zero immediately (infinite friction). Values between 96 and 100 give slippier terrains, while a value of 100 results in no friction. Values above 100 will result in the worm's velocity actually increasing as it slides.
 The friction value is stored in the crate probability of the Salvation Army.
Shot doesn't end turn, Loss of control doesn't end turn, Fire doesn't pause timer, Improved rope, Continuous crate shower
To edit these options, start with a value of zero and add the corresponding number for each option you want to enable (listed below). Then set the crate probability of the Mole Squadron to the resulting sum.
Shot doesn't end turn
Firing a weapon doesn't end the player's turn. There's no retreat time and you can't control any weapon (such as Sheep or Supersheep) when turn time runs out.
 Controlled by the first bit of the crate probability of Mole Squadron (add 1 to enable).
Loss of control doesn't end turn
When activated, control of the active worm will not be lost in any circumstances (fall from a great height, weapon explosion, etc) except death.
 Controlled by the second bit of the crate probability of Mole Squadron (add 2 to enable).
Fire doesn't pause timer
The timer doesn't pause while firing any weapon. Useful with Shot doesn't turn, because without it one could extend his turn time for a very long time using drill or blow torch, for example.
 Controlled by the third bit of the crate probability of Mole Squadron (add 4 to enable).
Improved rope
Changes the rope physics to simulate Worms 2 (higher accelleration, 162 degrees of shooting)
 Controlled by the fourth bit of the crate probability of Mole Squadron (add 8 to enable).
Continuous crate shower
Normally, the game checks between turns the crate probability settings, and determines if and which crate must be spawned. With this feature, you can force the game to do this job every 5 seconds, also during turns. If you want a crate shower like Worms World Party, use SchemeEddy to check that the probability of no crate falling per turn is 0%. Keep in mind that the WWP crate shower spawns a completely random crate, that is it doesn't check the probability of each single weapon (that's why you can grab even Surrender).
 Controlled by the fifth bit of the crate probability of Mole Squadron (add 16 to enable).
Version override
 There are many engine version that come with the last update, and some of them may be interesting for their different behaviour. You shouldn't emulate the earliest versions of the 3.x, as they may lead to crashes (like, for not supporting the new scheme format, colored/big maps).
 Version is set by the crate probability of Select Worm.
Version numbers showdown
Hex  Dec  Status  Version  Notes 

01  1  Alpha  3.5 Beta 3pre3  Due to the impossibility to use the zero in rubberworm's scheme byte, 3.5 Beta 23pre1 cannot be emulated. 
02  2  Alpha  3.5 Beta 3pre4  
03  3  Alpha  3.5 Beta 3pre8  
04  4  Alpha  3.5 Beta 3pre9  
05  5  Alpha  3.5 Beta 3pre10  
06  6  Alpha  3.5 Beta 3pre11  
07  7  Alpha  3.5 Beta 3pre12  
08  8  Alpha  3.5 Beta 3pre13  
09  9  Alpha  3.5 Beta 3pre14  
0A  10  Alpha  3.5 Beta 3pre15  
0B  11  Alpha  3.5 Beta 3pre15[BattyRope1]  The first official batty rope 
0C  12  Alpha  3.5 Beta 3pre15[BattyRope2]  
0D  13  Alpha  3.5 Beta 3pre16  
0E  14  Alpha  3.5 Beta 3pre17  
0F  15  Alpha  3.5 Beta 3pre17[BattyRope3]  
10  16  Alpha  3.6.18  
11  17  Alpha  3.6.19.19  
12  18  Alpha  3.6.19.10  
13  19  Beta  3.6.19.11  
14  20  Beta  3.6.19.12  
15  21  Alpha  3.6.19.13  
16  22  Beta  3.6.19.14  
17  23  Beta  3.6.19.15  
18  24  Alpha  3.6.19.16  
19  25  Alpha  3.6.19.16[150% speed]  The first 150% speed 
1A  26  Beta  3.6.19.17  
1B  27  Alpha  3.6.19.17[150% speed]  
1C  28  Beta  3.6.19.1819  
1D  29  Beta  3.6.20.1  
1E  30  Beta  3.6.20.23  
1F  31  Alpha  3.6.21.0  
20  32  Beta  3.6.21.13  
21  33  Alpha  3.6.22.0  
22  34  Beta  3.6.22.1  
23  35  Beta  3.6.23.0  
24  36  Alpha  3.6.23.0[BattyRope5]  
25  37  Beta  3.6.23.01  
26  38  Beta  3.6.23.2.24.1  
27  39  Alpha  3.6.24.1[TestStuff1]  
28  40  Alpha  3.6.24.1[TestStuff2]  
29  41  Beta  3.6.24.2  
2A  42  Beta  3.6.25.1  
2B  43  Alpha  3.6.26.1  
2C  44  Beta  3.6.26.4  
2D  45  Alpha  3.6.26.4c  
2E  46  Alpha  3.6.26.4c[TestStuff3]  
2F  47  Alpha  3.6.26.4c  Repeats the 45 (2D). 
30  48  Beta  3.6.26.5  
31  49  Alpha  3.6.26.6  
32  50  Alpha  3.6.27.1a  
33  51  Alpha  3.6.27.1b2  
34  52  Alpha  3.6.27.3ae  
35  53  Alpha  3.6.27.3f  
36  54  Alpha  3.6.27.3g  
37  55  Alpha  3.6.27.3hi  
38  56  Alpha  3.6.27.3jm  
39  57  Alpha  3.6.27.3n  
3A  58  Alpha  3.6.27.3oq  
3B  59  Alpha  3.6.27.45  
3C  60  Alpha  3.6.27.6  
3D  61  Alpha  3.6.27.78  
3E  62  Alpha  3.6.27.9  
3F  63  Alpha  3.6.27.9[BattyRope5]  
40  64  Alpha  3.6.27.9[150% speed]  
41  65  Alpha  3.6.27.9[TestStuff3]  No objects speed limit (except jetpack). The speed of roping and the objects moving around is completely unlimited. 
42  66  Alpha  3.6.27.9  
43  67  Alpha  3.6.27.10  
44  68  Alpha  3.6.27.11  
45  69  Alpha  3.6.27.11[TestStuff4]  The speed is now limited to twice the normal one, and the jetpack also gets double speed. 
46  70  Alpha  3.6.27.11  Repeats the 68 (44). 
47  71  Alpha  3.6.27.1213  
48  72  Alpha  3.6.28.0  
49  73  Alpha  3.6.28.0[BattyRope5]  Used in both 3.6.28.0 and 3.6.29.0 
4A  74  Alpha  3.6.28.0[150% speed]  Used in both 3.6.28.0 and 3.6.29.0 
4B  75  Alpha  3.6.28.0[TestStuff5]  Used in both 3.6.28.0 and 3.6.29.0 
4C  76  Beta  3.6.28.0  Repeats the 72 (48). 
4D  77  Alpha  3.6.28.1316  
4E  78  Alpha  3.6.28.1719  All objects (including weapons, like sheeps, grenades, missiles, etc.) get pushed by explosions. 
4F  79  Alpha  3.6.28.2021  
50  80  Alpha  3.6.28.22  
51  81  Alpha  3.6.28.2324  
52  82  Beta  3.6.29.0  
53  83  Alpha  3.6.29.1  
54  84  Alpha  3.6.29.2  
55  85  Alpha  3.6.29.3  
56  86  Alpha  3.6.29.3[BattyRope6]  
57  87  Alpha  3.6.29.3[150% speed]  
58  88  Alpha  3.6.29.3[TestStuff6]  
59  89  Alpha  3.6.29.38  
5A  90  Alpha  3.6.29.99b  
5B  91  Alpha  3.6.29.10  
5C  92  Alpha  3.6.29.12  
5D  93  Alpha  3.6.29.13  
5E  94  Alpha  3.6.29.1419  
5F  95  Alpha  3.6.29.20  
60  96  Alpha  3.6.29.20[BattyRope6]  
61  97  Alpha  3.6.29.20[150% speed]  
62  98  Alpha  3.6.29.20[TestStuff6]  
63  99  Alpha  3.6.29.20[RacingStuffpre]  The first RacingStuff. 
64  100  Alpha  3.6.29.20  Repeats the 95 (5F). 
65  101  Alpha  3.6.29.21  
66  102  Alpha  3.6.29.21[BattyRope6]  
67  103  Alpha  3.6.29.21[150% speed]  
68  104  Alpha  3.6.29.20[TestStuff6]  
69  105  Alpha  3.6.29.20[RacingStuff]  
6A  106  Alpha  3.6.29.21  The last version which wouldn't deattach a rope if the terrain supporting it doesn't exist anymore. Repeats the 101 (65). 
6B  107  Alpha  3.6.29.22  Since this version, a rope cannot be attached to the air anymore (previously only a standard explosion could break it). 
6C  108  Alpha  3.6.29.22[BattyRope7]  
6D  109  Alpha  3.6.29.22[150% speed]  
6E  110  Alpha  3.6.29.22[TestStuff7]  
6F  111  Alpha  3.6.29.22[RacingStuff]  
70  112  Alpha  3.6.29.22[BoomRacing]  The first BoomRacing. 
71  113  Alpha  3.6.29.22  Repeats the 107 (6B). 
72  114  Alpha  3.6.29.23  
73  115  Alpha  3.6.29.23[BattyRope7]  
74  116  Alpha  3.6.29.23[150% speed]  
75  117  Alpha  3.6.29.23[TestStuff7]  
76  118  Alpha  3.6.29.23[RacingStuff]  
77  119  Alpha  3.6.29.23[BoomRacing]  
78  120  Alpha  3.6.29.23  Repeats the 114 (72). 
79  121  Alpha  3.6.29.24  
7A  122  Alpha  3.6.29.24[BattyRope7]  
7B  123  Alpha  3.6.29.24[150% speed]  
7C  124  Alpha  3.6.29.24[TestStuff7]  
7D  125  Alpha  3.6.29.24[RacingStuff]  
7E  126  Alpha  3.6.29.24[BoomRacing]  
7F  127  Alpha  3.6.29.24  Repeats the 121 (79). 
80  128  Alpha  3.6.29.24e  
81  129  Alpha  3.6.29.2536  
82  130  Alpha  3.6.29.37  
83  131  Alpha  3.6.29.38  
84  132  Alpha  3.6.29.3940  
85  133  Alpha  3.6.29.4143  
86  134  Alpha  3.6.29.44  
87  135  Alpha  3.6.29.45  
88  136  Alpha  3.6.29.46  
89  137  Alpha  3.6.29.47  
8A  138  Alpha  3.6.29.47[BattyRope8]  
8B  139  Alpha  3.6.29.47[150% speed]  
8C  140  Alpha  3.6.29.47[TestStuff8]  
8D  141  Alpha  3.6.29.47[RacingStuff]  
8E  142  Alpha  3.6.29.47[BoomRacing]  
8F  143  Alpha  3.6.29.4748  
90  144  Alpha  3.6.29.49  
91  145  Alpha  3.6.29.49[BattyRope8]  
92  146  Alpha  3.6.29.49[150% speed]  
93  147  Alpha  3.6.29.49[TestStuff8]  
94  148  Alpha  3.6.29.49[RacingStuff]  
95  149  Alpha  3.6.29.49[BoomRacing]  
96  150  Alpha  3.6.29.4951  
97  151  Alpha  3.6.29.52  
98  152  Alpha  3.6.29.53  
99  153  Alpha  3.6.30.0  
9A  154  Alpha  3.6.30.0[BattyRope8]  
9B  155  Alpha  3.6.30.0[150% speed]  
9C  156  Alpha  3.6.30.0[TestStuff8]  
9D  157  Alpha  3.6.30.0[RacingStuff]  
9E  158  Alpha  3.6.30.0[BoomRacing]  
9F  159  Beta  3.6.30.0  Repeats the 153 (99). 
A0  160  Alpha  3.6.30.23  
A1  161  Alpha  3.6.31.0  
A2  162  Alpha  3.6.31.0[BattyRope8]  
A3  163  Alpha  3.6.31.0[150% speed]  
A4  164  Alpha  3.6.31.0[TestStuff8]  
A5  165  Alpha  3.6.31.0[RacingStuff]  
A6  166  Alpha  3.6.31.0[BoomRacing]  
A7  167  Beta  3.6.31.0  Repeats the 161 (A1). 
A8  168  Alpha  3.6.31.1  This version can NOT be emulated yet. 
Note: 3.6.29.53[RubberWorm] isn't present in the list, as it wasn't developed together.
Crate rate variability
Controls the number of crates that appear per turn. When a value of Crate Rate exists, the Crate Count automatically will be turned on.
 Set by the crate probability of the Indian Nuclear Test. The value 1 only will turn on the Crate Count
Crate limit variability
Controls the number of crates that can exist on the map at any one time (five at default)
 Set by the crate probability of the Magic Bullet.
Chat command interface
These commands can be used in the host/join lobby. Omitting the parameter either activates the feature with a default value, or sets it off.
Command  Effect 

/help  Displays list of commands in the chat window. 
/show  Displays a list of all enabled features to all players. 
/showme  Displays a dialogue box with all enabled features to the host only. 
/clear  Disables all features. 
/sdet or /multishot  Enables the shot doesn't end turn feature. 
/ldet or /stoicworm  Enables the loss of control doesn't end turn feature. 
/fdpt or /nopause  Enables the timer doesn't pause while firing feature. 
/ir or /rope+  Enables the improved rope feature. 
/rubber### [0255]  Enables the bouncing worms feature.
0 .............. no bounce 
/version### [1255]  Enables the arbitrary version override feature. 
/version or /fr or /ts3  Enables the teststuff3 feature. 
/antisink  Enables the antisink feature. 
/visc### [0255]  Enables the air viscosity feature.
odd number ..... affects worms too 
/wind### [0255]  Enables the wind response feature.
1 to 255 ....... low sensitivity to wind 
/jetpack### [1255]  Sets value of jetpack fuel.
255 ............ infinite fuel 
/friction### [0100]  Sets terrain friction.
0 .............. infinite friction 
/glue  Alias for friction0 
/ice  Alias for friction99 
/gravity### [64 to 63]  Sets gravity strength.
64 ............ reversed gravity, strength 5.3x 
/pbh### [32 to 31]  Proportional black hole (variable is gravitational strength) 
/cbh### [32 to 31]  Constant black hole (variable is gravitational strength) 
/defg  Disables all gravity modification features. 
/cratelimit### [1255]  Sets maximum number of coexisting crates. 
/craterate### [1255]  Sets number of crates spawned per turn and enables the crate counter. 
/cratecount  Alias for /craterate1 (just enables the crate counter). 
/crateshower  Enables the continuous crate shower feature. 
Future plans
Pisto gave up coding RubberWorm, though version 1.0 has been developed inconstantly for over a year. He lost interest in Worms, but also in programming in general. The source code of Kawoosh's RubberWorm31 0.0.1.9, RubberWorm 0.7 (a version compatible with the old 3.6.28.0 update), and of the never going to be 1.0 has been given to Deadcode: his aim is to add the emulation of RubberWorm in the official updates. This is going to happen in the next update after 3.6.31.0.
Prerelease with aliasedbounces
On 26th August 2009 a test build of RubberWorm 1.0 has been released. The reason for sharing it is to show some of the new features, mainly aliasedbounce. It allows to emulate the real behaviour of an object colliding with an object with a slope, a great lack of the Worms Armageddon default engine.