ddon-server/Arrowgene.Ddon.Scripts/scripts/enemies/drop_generators
Paul Campbell bb2ec29ea9 feat: Area/Dungeon Boss AP reward
- Enemies which are now labeled as an area boss will reward AP when
  the group is defeated.
- The amount of AP is configurable via the new setting AreaBossApReward.
  - The default value is 500 AP for the current Area the defeated enemy
    is in.
- Added a new member to instance enemy properties which allows a rank to
  be assigned to a scripts. The rank helps to control the order scripts
  are executed. The scripts with a lower rank are executed before
  scripts with a higher rank.
- Added a new script module InstanceEnemyDropGenerator. This module can
  be used to have the server assign drops to an enemy when killed.
  Intended to eventually replace the event item generator via json.
- Fixed a few await warnings introduced from PR #919 related to
  scripting.
2025-07-05 10:36:47 -04:00
..
bbm feat: Area/Dungeon Boss AP reward 2025-07-05 10:36:47 -04:00
normal feat: Area/Dungeon Boss AP reward 2025-07-05 10:36:47 -04:00
README.md feat: Area/Dungeon Boss AP reward 2025-07-05 10:36:47 -04:00

Scriptable Enemy Drop Generator

It's possible to have the server inject additional drops when an enemy is killed by providing .csx scripts in this directory. These scripts are hotloadable. Each drop generator should implement the interface IInstanceEnemyDropGenerator.

Warning

This script module is called in a transaction so don't call functions which use or generate packets directly.

public interface IInstanceEnemyDropGenerator
{
    public GameMode GameMode { get; }
    public List<InstancedGatheringItem> Generate(GameClient client, InstancedEnemy enemyKilled);
}

Guidelines

The scripts in this directory should be organized by the game mode the generator is used in.

enemies
  drop_generator
    normal
      dungeon_boss.csx
      ...
    bbm
      ...

If you need to know the location or stage the enemy is killed on, the InstancedEnemy object has a field enemyKilled.StageLayoutId which contains the location of the enemy.