For the complete documentation index, see llms.txt. This page is also available as Markdown.

📑BonusManager

Temporary and scheduled server bonuses (e.g., double EXP during a weekend or increased Excellent item drop rates on holidays). Supports up to 30 independent bonuses (Index from 0 to 29), each with its own schedule. The file is divided into 3 blocks, each starting with the block number (0, 1, or 2) on its own line and ending with end.

Section 0 — bonus start schedule

Column
Accepted Values
Description

Index

Number from 0 to 29

Which bonus this schedule entry belongs to.

Year / Month / Day / DoW / Hour / Minute / Second

Number or *

A scheduled start time. * = any value (cron-style schedule). The same Index can have multiple schedule entries.

Section 1 — bonus messages and duration

Column
Accepted Values
Description

Index

Number from 0 to 29

Which bonus this entry belongs to.

StartMessage

Message number or *

Message broadcast to all players when the bonus starts. * = no message.

FinalMessage

Message number or *

Message broadcast to all players when the bonus ends. * = no message.

BonusTime

Number, in seconds

Bonus duration. Note that this value is in seconds, unlike BloodCastle.dat, which uses minutes.

Section 2 — bonus effects

Column
Accepted Values
Description

Index

Number from 0 to 29

Which bonus this rule belongs to. The same Index may have multiple entries—all of them are active at the same time while the bonus is running.

BonusIndex

Number from 0 to 8 (see table below)

The type of bonus granted by this entry.

BonusValue_AL0 / AL1 / AL2 / AL3

Number

Bonus value for Free / VIP1 / VIP2 / VIP3. The meaning of this value depends on the BonusIndex—see the notes.

ItemIndex

Item number or *

Restricts the bonus to a specific item. * = any item.

ItemLevel

Number or *

Restricts the bonus to a specific item level. * = any level.

MapNumber

Map number or *

Restricts the bonus to a specific map. * = any map.

MonsterClass

Monster class number or *

Restricts the bonus to a specific monster. * = any monster.

MonsterLevelMin / MonsterLevelMax

Number or *

Restricts the bonus by the defeated monster's level. * = no limit on that side.

BonusIndex values

BonusIndex
Bonus Type
How BonusValue is applied

0

Experience rate

Percentage added on top of the current value (e.g., 50 = +50%).

1

Master Experience rate

Percentage added on top of the current value.

2

Item drop rate

Percentage added on top of the current value.

3

Normal item drop chance

Not a simple percentage—moves the current chance closer to the maximum possible chance by the specified proportion (see notes).

4

Excellent item drop chance

Same behavior as BonusIndex 3.

5

Ancient/Set item drop chance

Same behavior as BonusIndex 3.

6

Goblin Points

Added as a flat value (not a percentage).

7

Reset count

Added as a flat value (not a percentage).

8

Master Reset count

Added as a flat value (not a percentage).

Notes

  • BonusValue_AL0AL3 behaves in three different ways depending on the BonusIndex. This is hardcoded in the server:

    • BonusIndex 0, 1, or 2: adds a percentage to the current value (+50 = 50% more than the current value).

    • BonusIndex 3, 4, or 5: not a regular percentage—the value moves the current drop chance closer to the maximum possible chance by the specified proportion. High values can result in a much larger increase than a simple "+X%", especially when the current chance is already high, so test carefully before using large numbers.

    • BonusIndex 6, 7, or 8: adds a flat value, with no percentage involved.

  • A single bonus (Index) can have multiple entries in Block 2—for example, one entry for +Experience and another for +Normal Item Drop Rate, both active simultaneously, each with different item, map, or monster filters.

  • As in BloodCastle.dat, * in Block 0 means "any value". If Day is * and BonusTime lasts less than one full day, the bonus can reactivate every day within the scheduled period. This is how you would configure, for example, a bonus that is active throughout the entire month of April: Month = 4, Day = *, BonusTime = 86400.

Last updated