Info
Content

Drops

Sequoia's drop tables are highly configurable and easy to manage. This is accomplished by supporting multiple drop table files which can be enabled or disabled even while the server is running.

Drop Entries

A single drop entry contains the following:

  • item_id: Int: The ID of the item to drop.
  • quest_id: Int: An optional quest that is required for the item to be visible to a player. -1 indicates no quest.
  • quantity_min: Int: The minimum quantity to drop.
  • quantity_max: Int?: The maximum quantity to drop. This is optional and defaults to quantity_min if null. Otherwise, if set, will generate a random number between quantity_min and quantity_max (inclusive <- VERIFY) upon generating drops.
  • is_stack: Boolean: If true, will drop the items as a stack. Otherwise, will drop each item individually. Only has an effect for items that can actually stack. i.e. equipment items will always drop individually, such as Zakum Helmets.
  • chance: Double: The percent chance for the item to drop, such as 25.0, 50.0, 100.0, and so on.

Related Commands

  • !reload core drops: Reload all drop entries.
  • !whatdrops <item>: See which monsters drop a particular item.
  • !drops <mob>: See what items a particular monster drops.

Load Priority

A typical Sequoia server looks as follows:

  • Game Server (/)
    • World A (/world_a)
    • World B (/world_b)
    • World C (/world_c)

Drop table files are placed in a directory named drops within either the game server root or a world root, such as:

  • /drops
    • base.conf
  • /world_a/drops
    • boss_chaos_scrolls.conf
    • skill_book_buff.conf

Upon loading the final drop table for a world, world files take priority over the game server files in order to allow for worlds to override entries easily. Drops are unique on a monster/reactor ID, item ID basis (for global drops, item ID is the only key). If a lower priority file contains a conflicting key, then it will not be used.

The load priority of world files is determined by alphabetically sorting based on the file name. Because of this, it is recommended that you name your files with a numerical prefix if you're likely to have lots of overridden entries (e.g. 00-base.conf). When searching for drop files, Sequoia looks for files suffixed with .conf. If you want to disable a file without removing it, you can simply suffix it with extra characters, such as base.conf.disabled.

This system allows for easy management of drop tables, especially for limited time drop tables such as for events. For example, for a Halloween event, you could place a file named halloween.conf in the drops directory and it will be used upon reloading the drop table. Once the event ends, the file can simply be removed and the entries will no longer be used.

Drop Table Format

Drop table files are HOCON configuration files with the following format:

# Optional section that defines some file-wide properties.
META {
  # Overridden default values for values loaded from this file. These will be used as the default values for missing entry properties.
  # Useful for things such as quest-specific files.
  defaults {
    quest = 123
  }

  # Conditions that must be met for this drop table to be used.
  conditions {
    # Whitelisted/blacklisted maps that the player must be in.
    # Example: This example enables this file for all maps outside of Maple Island.
    maps {
      # Mode:
      # - whitelist: Drop for maps in entries below.
      # - blacklist: Drop for maps NOT in entries below.
      mode = "blacklist"
      
      # Configuration-defined entries (from world.conf)
      areas = [
        "maple_island"
      ]
      
      # Ranges of map IDs.
      ranges = [
        0 99999999
      ]
      
      specific = [
        0
        100
        10000
      ]
    }
  }
}

mob {
  # Mob ID
  1000 {
    # Item ID
    2340000 {
      # The quantity to drop.
      # If a single number, will drop that amount.
      # If a range (i.e. "1 5"), will drop a random value between min (inclusive) and max (exclusive).
      quantity = 1
      # The percent chance for the item to drop.
      chance = 50.0
      # If set, the quest required for the player to be able to see the item.
      quest = 1234
      # If true, will drop the items as a single stack. Otherwise, will drop each item individually. 
      # Only has an effect for items that can actually stack (i.e. equipment items will always drop individually, such as Zakum Helmets).
      # Defaults to true.
      is stack = true
    }
  }
}

reactor {
  # Reactor ID
  1234 {
    # Item ID
    2340000 {
      ...
    }
  }
}

Special IDs

Mob/Reactor:

  • global: Global drop entry.

Item:

  • mesos: Meso drop.

Override Behavior

Clear Drop Entry

Assuming there's a lower priority drop table file with the following:

mob {
  100100 {
    2340000 { quantity = 5, chance = 100 }
  }
}

...a higher priority file can override it by setting the ID of the item to null:

mob {
  100100 {
    2340000 = null
  }
}

To clear a section entirely, you can also set the section itself to null:

mob {
  100100 = null
}

To clear a section, but also add new entries, then the META section can be used:

mob {
  100100 {
    META { clear = true }
    2340000 { quantity = 5, chance = 100 }
  }
}

Default Drop Tables

Sequoia has a few pre-made drop tables included. These can be found in the resources/drops directory. Simply copy the contents of any directory into your server's drops folder to use that particular configuration.

Back to top