Tower System - Terasology/GooeyDefence GitHub Wiki
Gooey Defence, is a tower defence gameplay template. This means that one of the most important features of the module is the towers that give the genre it's name. In Gooey Defence, these are freeform multiblock structures, with a minimum of three parts. Together these parts allow players to build a wide variety of towers.
The first part of a tower is the core. These add power to the other two block types.
Next are targeters, which select and attack the enemies. They don't actually apply any damage of effects however.
The last are effectors which complement the targeters by applying effects and damage to the targeted enemies.
All three types are needed for a tower to work. Lack a core, and the other two won't work. Lack a targeter and the effector won't have any enemies to affect. Don't have a targeter, and the attacks won't do anything.
Additionally you can, and indeed are encouraged, to have multiple variants of both Targeters and Effectors on a single tower. For instance, adding an Ice Effector, Damage Effector along with a Chain Targeter and Aoe Targeter will result in each attack dealing damage and applying a slowing effect. Additionally all enemies in range will be attacked, with some being attacked again by the Chain Targeter.
In this way complex towers can be built with multiple different focuses
For a block to be considered part of a tower, all it needs to be doing is touch other tower blocks. In order to allow players to spread out towers there is a plain block which provides no effect, but counts as part of the tower.
More detailed information on how towers work in game is found in the player guide, which is located in the readme
The main way to extend the tower system is to add additional effector, core or targeter blocks. At present a block cannot implement more than one of these types, with the behaviour being undefined if you try. You could add additional block types, however they would end up being considered as 'plain' blocks and not treated specially. There is currently no plans to add support for custom block types, however I welcome PR's adding this.
Additionally all tower blocks share the same base, which is detailed on the Tower Block Base page