LET'S TALK ABOUT MODDING!
[data]
type=entity
[properties]
sprite1=moddedzombie_idle
sprite2=moddedzombie_walk
sprite3=moddedzombie_attack
sound1=moddedzombie_scream
sound2=moddedzombie_hit
[stats]
hp=100
multiplier=multiplier_normal
[onSpawn]
chasePlayer=ai_choose_random
speed=5
sprite=sprite1
[onChasePlayer]
sprite=sprite2
[onAttack]
sprite=sprite3
playsound=sound2
[onDeath]
awardPlayer=addMoney
sprite=sprite4
playsound=sound1
addMoney=zombie_money_normal
Here's the basic syntax used for modding. In order to keep things simple yet flexible, I decided to make modding done through .ini files. The ini file and a folder with the same name (which contains the sprites/sounds) are both placed in the Mods folder. The ini file is parsed by the game when the mod is active to add custom content.
The basic syntax uses the section as a condition or a definition, and then uses the keys to define the actions relating to that condition. There are hundreds (and believe me, I really do mean hundreds, thousands even) of conditions, actions, etc. which can be used. There are also constants for certain actions that can make your life easier.
The data section must always be first. It declares what the modded object is. For characters, etc. you'd choose 'entity'. An entity is anything which plays a part during the actual game. For custom gamemodes, you'd want 'controller'. A controller is a dynamic, invisible object which handles rules and variables during a game. There's also a 'weapon' type for adding weapons, and a 'other' type for different kinds of mods, such as texture changes.
Sprites and sounds are put into the mod folder. As you can see, sprite1 is equal to moddedzombie_idle in the example above. If it was animated, you'd need to put a file for each frame in the mod folder, labeled: moddedzombie_idle_0, moddedzombie_idle_1, and so on. However, you only have to reference the base name within the properties section, as the _num is added through code.
The game will be released with a full documentation + a few examples of mods made by people who have helped test the game in order to further explain how to make mods. I think that modding will bring a whole new level of customization to the game, and I can't wait to see what others can make!
-----
More information on mods and custom maps coming soon!
Also, DD peaked today at popularity on IndieDB at rank 63 today! It might not mean much but it really made me happy. Thanks everyone!