At least the following changes have been made in 0.98 in regards to modders.
- Else section in script actions.
- Option to not stagger script starting times.
- Ability to copy and import text scripts. Useful if you want to copy scripts from the graphical script editor to the ini files.
- Making a bot use an item on the ground will now make it pick the item up, and activate it. Useful for making bots grab weapons from a table.
- New script action: wieldAllItems. Useful if a bot has many unknown items to wield.
- Animating an object's Z position is now possible.
- Texture offsets can now be defined in the editor for non-sprite objects.
- New script activation type: Hit. Activated whenever an object is hit, but not necessarily damaged (due to immunity or armor).
- Intro texts can now have keywords.
- Ability to offset an object's texture coordinates.
- Min_speed for particles.
- EmitAngle for particles. Can be used to make directional particle emitters.
- New script action: CloneTarget. It clones the currently targeted object, removing all joints, and teleports it to the specified object. It can be targeted using setSpawnedAsTarget.
- Named script variables can now have a minus sign. For example using addToVariable(-health) works.
- New script action: teleportRandom. Teleports the target to a random object.
- Object edges now respond to the changeTexture script.
- Heightmap and texture map export now create the required directories for them to work.
- New script action: moveBotAwayFrom. Allows bots to run away.
- New script action: allowCombatInterrupt. Use this if you want to command a bot with scripts during combat.
- When copying a single actor in the editor, its scripts that refer to itself are now updated to refer to the new copy, just like when copying a group of objects.
- Driftmoon now works when installed on a network share. Useful if you want to keep a single installation on a shared folder.
- Improved the script introText to allow showing portraits.
- Script parameters can now have more decimal places than two. For example 0.0001 is now allowed.
- It's now possible to change the bounciness/elasticity of walls and physics objects.
- New script condition: raycast can be used to check if there is anything in the way that the object would collide with. Useful for creating proximity sensors.
- New property in races.ini: noPlayerAutoAttack will prevent the player from autoattacking a race, such as mines and spider webs.
- You can now import existing mod directories using the Create New Mod tool.
- Phased out the .obj object format loading button from the editor. To support old mods, the game will still load .obj files within the game.
- CallScript functions now default to interrupting the currently running script, instead of running on the next frame as previously. The old functionality can be used by specifying the Force Immediate parameter to 0. The new default makes it even easier to make scripts act like method calls in programming languages.
- Possibility to change the Z offset of particles.
- The long awaited search field in the image selector.
- New script condition: isTalking can tell you when a bot is talking.
- Ability to precisely copy the object's physics shape into its graphics ("match with physics").
- Objects can now be rotated in all three axis.
- It's now possible to reset a map using the changeMap call. Resetting is not possible through the main map.
- Items can now have a condition that checks whether the item can be used.
- New script action: changeScriptActivationType can change the activation type of scripts, for example when you want to temporarily disable a script.
- New script condition: subConditionIsTrue can be used to split complex conditions into separate scripts.
- It's now possible to change an item's behaviour dependent on the user's difficulty level, see the torches for an example.
- New script action: makeBotImmuneTo can make a bot immune to another bot's attacks.
- New script action: teleportToTarget teleports another object to the current script target.
- Fixed crash when hiding an object with a joint still attached to another object.
- teleportCloser now checks the path to the object we're teleporting to, not the object that is being teleported.
- New script activation type: EnterMap. Activated each time the player enters the map, except when the map is loaded from a save.
- New property in races.ini: availableWieldSlots can be used to prevent certain types of bots wielding certain items. Such as preventing animals from wielding weapons. This is activated only for mods made with version 0.95 upwards.
- The default mod now includes a prototype for a ring that changes the player's race.
- Changebotrace now properly handles skills.
- Ability to make a mod that adds to the main game. By putting all your items, races and other definitions to the script_add folder, they are loaded in addition to the ones in the scripts folder. For example if you have races.ini in your script_add folder, but not in your script folder, the game will add your races to the main game's races list.
- Removed the 3D button for sprites, it's replaced by the new free angle functionality.
- Written scripting language now supports the SINGLE keyword.
- New property in items.ini: ammoHitEffectObject makes it possible to create explosive ammo.
- Bots can now have multiple weapons of the same type, and if one of them is wielded via a script, the game will no longer override the selection.
- Ini file reader will now warn if a value has been specified multiple times. Useful, because only the first one is ever used.
- It's now possible to run scripts on levelup. They can for example be used to give special skills when reaching certain levels.
- Physics joints are no longer created for objects that have been hidden. To prevent breaking physics puzzles, hidden objects from old maps that have joints are set to not hidden.
- New script action: callScriptForObjects. Allows calling scripts for all nearby objects, useful for area spells.
- New script action: addPathfinderNode. Useful if you create new walls dynamically. Pressing Shift-F5 now shows the paths during gameplay.
- New script actions: createAttachJoint/deleteAttachJoint. Same as the attach joint in the physics tab for objects.
- New script action: callScriptFromFile. Same as callScript, but the script is read from scripts.ini. Useful if you need to use the same script for many objects.
- New script action: dropAllItems. Simply makes the object or bot drop all the items it is holding.
- Script variables that take a number can now be referenced by caller.variablename and target.variablename.