How to work with OneDayReward system

1.General information about the OneDayReward system

Enable system
(by default off): gameserver/config/events.properties
OneDayRewardSystem = True​

The OneDayReward system allows you to create rewards that players receive for fulfilling specific conditions. Rewards are configured via the XML file data/OneDayReward.xml on the server and corresponding files in the game client (for example, OneDayReward_Classic-eu.dat for the English localization). Each task has:
  • ID: Unique reward identifier.
  • Name and description: Displayed in the player interface.
  • Requirement: Condition for receiving the reward (e.g., reaching a level, accumulating PVP points).
  • Reset period: How often the reward is available (one-time, daily, etc.).
  • Rewards: Items the player will receive for completion.

2. Reward settings in OneDayReward.xml

The file data/OneDayReward.xml defines the reward structure. Here is an example of reward settings for level achievements and new requirements (PVP Points, Noblesse Conquest, Hero Conquest).

XML example for level rewards
Code:
<one_day_reward>
    <id>24</id>
    <name>Reach Level (Lv. 2)</name>
    <description>After creating a character, if you reach Lv. 2 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>2</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="29651" count="5"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>25</id>
    <name>Reach Level (Lv. 3)</name>
    <description>After creating a character, if you reach Lv. 3 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>3</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="29651" count="10"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>26</id>
    <name>Reach Level (Lv. 4)</name>
    <description>After creating a character, if you reach Lv. 4 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>4</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="10650" count="5"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>27</id>
    <name>Reach Level (Lv. 5)</name>
    <description>After creating a character, if you reach Lv. 5 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>5</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="70094" count="1"/>
    </reward_items>
</one_day_reward>

XML example for new requirements:
Code:
<one_day_reward>
    <id>101</id>
    <name>Earn PVP Points</name>
    <description>Earn 50 PVP points by defeating other players.</description>
    <reset_time>DAILY</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <pvp_points>50</pvp_points>
    </requirement>
    <reward_items>
        <reward_item id="57" count="100000"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>102</id>
    <name>Become Noblesse</name>
    <description>Become a Noblesse to receive this reward.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <noblesse_conquest/>
    </requirement>
    <reward_items>
        <reward_item id="57" count="200000"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>103</id>
    <name>Become Hero</name>
    <description>Become a Hero to receive this reward.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <hero_conquest/>
    </requirement>
    <reward_items>
        <reward_item id="57" count="500000"/>
    </reward_items>
</one_day_reward>

Описание полей XML:
  • id: Unique award number. Do not repeat the ID in the file.
  • name: The name of the award, as displayed in the interface.
  • description: Reward description, displayed in the interface.
  • reset_time: Reward reset period:
    • SINGLE: One-time reward.
    • DAILY: It resets daily.
    • WEEKLY: It is reset weekly.
    • MONTHLY: It is reset monthly.
  • distribution_type: How is the reward distributed within the group?:
    • SOLO: For player use only.
    • PARTY_RANDOM: To a random party member.
    • PARTY_ALL: To all party members in the radius.
  • requirement: Reward conditions. Supported tags:
    • <obtain_level>X</obtain_level>: Reaching level X.
    • <kill_mob>X</kill_mob>: Kill X mobs.
    • <pvp_points>X</pvp_points>: Collect X PVP points.
    • <noblesse_conquest/>: Become Noblesse.
    • <hero_conquest/>: BecomeHero.
    • <kill_raid>: killing raid boss
    • <enchant_item>: enchant item
    • <battle_in_castle_siege>: player participation in clan siege
    • <fishing>: fishing
    • <login>: first login
    • <join_clan>: join a clan
    • <battle_in_olympiad>: to participate in the Olympiad
    • <win_in_olympiad>: Olympic victory
    • <complete_quest>: Complete the quest! One-time, non-repeatable.
  • reward_items: List of items for the award.
    • id: Item ID (e.g., 57 for Adena).
    • count: Number of items.
3. Game client setup
To display rewards in the client interface, you need to update the GameClient\system\OneDayReward_Classic-eu.dat file (or a similar one for your localization).
Example entries for the client:
Code:
onedayreward_begin    id=24    reward_id=1000    reward_name=[Reach Level (Lv. 2)]    reward_desc=[After creating a character, if you reach Lv. 2 you can get a reward for that level once.]    reward_period=[Obtain Level 2.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=2    can_condition_level={1;99;0}    can_condition_day={}    category=3    reward_item={{29651;5}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=25    reward_id=1001    reward_name=[Reach Level (Lv. 3)]    reward_desc=[After creating a character, if you reach Lv. 3 you can get a reward for that level once.]    reward_period=[Obtain Level 3.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=3    can_condition_level={2;99;0}    can_condition_day={}    category=3    reward_item={{29651;10}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=26    reward_id=1002    reward_name=[Reach Level (Lv. 4)]    reward_desc=[After creating a character, if you reach Lv. 4 you can get a reward for that level once.]    reward_period=[Obtain Level 4.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=4    can_condition_level={3;99;0}    can_condition_day={}    category=3    reward_item={{10650;5}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=27    reward_id=1003    reward_name=[Reach Level (Lv. 5)]    reward_desc=[After creating a character, if you reach Lv. 5 you can get a reward for that level once.]    reward_period=[Obtain Level 5.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=5    can_condition_level={4;99;0}    can_condition_day={}    category=3    reward_item={{70094;1}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=101    reward_id=2000    reward_name=[Earn PVP Points]    reward_desc=[Earn 50 PVP points by defeating other players.]    reward_period=[Earn 50 PVP Points.]    class_filter={-1}    reset_period=1    condition_count=50    condition_level=0    can_condition_level={1;99;0}    can_condition_day={}    category=2    reward_item={{57;100000}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=102    reward_id=2001    reward_name=[Become Noblesse]    reward_desc=[Become a Noblesse to receive this reward.]    reward_period=[Achieve Noblesse Status.]    class_filter={-1}    reset_period=4    condition_count=1    condition_level=0    can_condition_level={1;99;0}    can_condition_day={}    category=1    reward_item={{57;200000}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=103    reward_id=2002    reward_name=[Become Hero]    reward_desc=[Become a Hero to receive this reward.]    reward_period=[Achieve Hero Status.]    class_filter={-1}    reset_period=4    condition_count=1    condition_level=0    can_condition_level={1;99;0}    can_condition_day={}    category=1    reward_item={{57;500000}}    targetloc_scale={}    onedayreward_end

Client field descriptions:
  • id: Must match the id in OneDayReward.xml.
  • reward_id: Unique identifier for the client (usually id + offset, for example, 1000).
  • reward_name: Reward name, displayed in the interface.
  • reward_desc: Reward description.
  • reward_period: Short description of the condition (for the interface).
  • class_filter: Class filter (-1 = available to all).
  • reset_period: Reset period:
    • 1: Daily.
    • 4: Once.
    • 2: Weekly.
    • 3: Monthly.
  • condition_count: The quantity required to fulfill the condition (e.g., 50 for PVP points, 1 for Noblesse/Hero).
  • condition_level: Required level (0 for unlevelled conditions).
  • can_condition_level: The range of levels where the reward is available {min;max;0}.
  • can_condition_day: Days when the reward is available (empty = always).
  • category: Award category (1 = achievements, 2 = combat, 3 = progress, etc.).
  • reward_item: List of items {{item_id;count}}.
  • targetloc_scale: Coordinates for events with a location (empty for most awards)
 
Last edited:
Back
Top