premium banner
Daily and weekly quest system โ€” kill mobs, mine ores, chop trees, harvest crops with auto-generated pools, level-scaled rewards, and milestone notifications.

Description

๐Ÿ“œ EcoTale Quests

Daily & Weekly quest system for Hytale servers

Give players daily and weekly quests โ€” kill mobs, mine ores, chop trees, harvest crops, earn currency, gain XP โ€” with automatic generation from 46+ quest candidates, wildcard targets, level-scaled rewards, a native GUI panel, an admin settings panel, fully localized quest names, and real-time chat progress notifications.

Version Java License Ecotale Discord


โœจ Features

Feature Description
๐Ÿ“‹ Daily Quests Up to 10 fresh quests every day from a generated pool (4 active at once)
๐Ÿ“… Weekly Quests Up to 5 weekly quests with bigger rewards (2 active at once)
โš”๏ธ Kill Mobs 11 mob types โ€” zombie, skeleton, spider, trork, kweebec, scarrak, feran, outlander, raptor, magma golem + any mob wildcard
โ›๏ธ Mine Ores 8 ore types โ€” copper, iron, silver, gold, cobalt, emerald, mythril + any ore wildcard
๐Ÿช“ Chop Wood 7 tree types โ€” oak, birch, pine, willow, redwood, jungle + any wood wildcard
๐ŸŒพ Harvest Crops 10 crop types โ€” wheat, potato, carrot, berry, tomato, onion, pumpkin, corn, melon + any crop wildcard
๐Ÿ’ฐ Earn Currency Meta-quests โ€” earn a total amount of currency from any source
โœจ Gain XP Meta-quests โ€” gain RPG experience from any source
๐ŸŽฏ Wildcard Targets any_mob, any_ore, any_wood, any_crop โ€” match any action of that type
๐Ÿ–ฅ๏ธ GUI Panel Native quest panel with Daily/Weekly tabs, accept/abandon/info buttons
๐Ÿ› ๏ธ Admin Panel Admin settings GUI โ€” toggle modules, reload config, save settings
๐Ÿ“Š Localized Progress Fully translated quest names in chat (e.g. [Q] ะ”ะพะฑั‹ั‚ัŒ: ะ–ะตะปะตะทะพ: 3/22)
๐ŸŽฒ Auto-Generation 46+ quest candidates, pools generated automatically each day/week
๐Ÿ“ˆ Level Scaling Quest difficulty and rewards scale with player RPG level
๐Ÿ… Milestone Alerts Additional notifications at 25%, 50%, 75% progress
๐Ÿ›ก๏ธ Abuse Protection Accept cooldowns, world filtering, duplicate prevention, expiry enforcement
๐Ÿ’พ JSON Storage Per-player quest data saved as JSON files
๐ŸŒ Localization RU / EN / PT-BR / FR / DE / ES โ€” all quest names, targets, and UI elements fully translated
๐Ÿ”ง Hot Reload /quests reload โ€” no restart needed
๐Ÿ… Adventurer Ranks Eโ†’S rank progression, rank badges on quests, rank-locked quests
โฐ Quest Timers Configurable time limits for quests with countdown display
๐Ÿ“Œ Quest Board Physical wall-mounted quest board block โ€” interact with [F] to open quests

๐Ÿ“ฆ Requirements

Dependency Required Description
Ecotale โ‰ฅ 1.0.0 โœ… Economy & currency system
RPG Leveling โ‰ฅ 0.2.0 โœ… Level-scaling for mob rewards
EconomyAPI โ‰ฅ 1.4.5 โœ… Economy & currency system
MMO Skill Tree โ‰ฅ 0.11.2 โœ… Level-scaling for mob rewards
Endless Leveling โ‰ฅ 5.13 โœ… Level-scaling for mob rewards

๐Ÿš€ Getting Started

# 1. Copy JAR files to the server's mods/ folder
cp EcoTaleQuests-1.3.1.jar /server/mods/

# 2. Make sure Ecotale-1.0.7.jar is also in mods/
# 3. Start the server โ€” config & lang files are created automatically
# 4. Customize quest templates if needed
nano mods/com.crystalrealm_EcoTaleQuests/EcoTaleQuests.json

That's it. Quest pools are generated on first startup. Players can immediately browse and accept quests.

๐ŸŽฎ Commands

Command Description Permission
/quests tracker for on/off HUD for player
/quests Show active quests with progress ecotalequests.command.quests
/quests available Browse available quests to accept ecotalequests.command.quests
/quests accept Accept a quest from the pool ecotalequests.command.quests
/quests abandon Abandon an active quest ecotalequests.command.quests
/quests info Detailed quest information ecotalequests.command.quests
/quests gui Open the quest GUI panel ecotalequests.use
/quests admin Open the admin settings panel ecotalequests.admin.settings
/quests stats Your quest completion statistics ecotalequests.use
/quests rank Your adventurer rank and progress ecotalequests.use
/quests reload Reload config & lang files ecotalequests.admin.reload
/quests lang Switch language (en/ru/pt_br/fr/de/es) โ€”
/quests help Command reference โ€”

[!NOTE] Quest IDs use short 8-character identifiers (e.g., a3f7b2c1).

๐Ÿ–ฅ๏ธ GUI Panels

Player Quest Panel (/quests gui)

Native GUI built on Hytale's InteractiveCustomUIPage API with .ui layouts:

  • Daily tab โ€” available daily quests with Accept / Abandon / Info buttons
  • Weekly tab โ€” available weekly quests with Accept / Abandon / Info buttons
  • Progress bar and status displayed for each active quest

The panel auto-refreshes after accepting or abandoning a quest.

Admin Settings Panel (/quests admin)

Admin-only panel for server configuration:

  • Toggle modules on/off (mob kills, mining, woodcutting, farming, currency, XP)
  • Reload โ€” reload config & lang files
  • Refresh โ€” regenerate quest pools
  • Save โ€” persist current settings to disk

๐Ÿ” Permissions

Base Permissions โ€” all players:

ecotalequests.use              # /quests, available, accept, abandon, info, gui, stats

VIP Tiers (configurable in VipTiers):

ecotalequests.multiplier.vip        # ร—1.25 quest reward multiplier (VIP)
ecotalequests.multiplier.mvp        # ร—1.50 quest reward multiplier (MVP)
ecotalequests.multiplier.mvp_plus   # ร—2.00 quest reward multiplier (MVP+)

Admin:

ecotalequests.admin.reload     # /quests reload
ecotalequests.admin.settings   # /quests admin (settings panel)
ecotalequests.*                # All permissions

โš™๏ธ Configuration

Config file: mods/com.crystalrealm_EcoTaleQuests/EcoTaleQuests.json

๐Ÿ“‹ General & Limits

{
  "General": {
    "DebugMode": false,
    "Language": "ru",
    "NotifyOnProgress": true,
    "NotifyOnComplete": true,
    "AutoSaveIntervalMinutes": 5
  },
  "QuestLimits": {
    "MaxDailyActive": 4,
    "MaxWeeklyActive": 2,
    "DailyPoolSize": 10,
    "WeeklyPoolSize": 5,
    "MaxAbandonPerDay": 3,
    "DailyResetTime": "00:00",
    "WeeklyResetDay": "MONDAY"
  }
}
Key Default Description
MaxDailyActive 4 Max daily quests a player can have active at once
MaxWeeklyActive 2 Max weekly quests active at once
DailyPoolSize 10 How many daily quests are generated each day
WeeklyPoolSize 5 How many weekly quests are generated each week
MaxAbandonPerDay 3 Max quest abandonments per day
DailyResetTime 00:00 Time when daily pool refreshes
WeeklyResetDay MONDAY Day of week for weekly pool refresh

๐ŸŽฒ Quest Generation Templates

Each template defines a quest that can appear in the generated pool:

{
  "Generation": {
    "mobTemplates": [
      { "target": "Kweebec",     "minAmount": 5,  "maxAmount": 15 },
      { "target": "Trork",       "minAmount": 3,  "maxAmount": 10 },
      { "target": "Scarak",      "minAmount": 5,  "maxAmount": 20 },
      { "target": "Feran",       "minAmount": 3,  "maxAmount": 12 },
      { "target": "Fen_Stalker", "minAmount": 2,  "maxAmount": 8  },
      { "target": "Void_Dragon", "minAmount": 1,  "maxAmount": 3  }
    ],
    "oreTemplates": [
      { "target": "copper", "minAmount": 10, "maxAmount": 30 },
      { "target": "iron",   "minAmount": 8,  "maxAmount": 25 },
      { "target": "gold",   "minAmount": 5,  "maxAmount": 15 },
      { "target": "cobalt", "minAmount": 3,  "maxAmount": 10 }
    ],
    "woodTemplates": [
      { "target": "oak",    "minAmount": 15, "maxAmount": 40 },
      { "target": "birch",  "minAmount": 15, "maxAmount": 40 },
      { "target": "pine",   "minAmount": 10, "maxAmount": 30 },
      { "target": "ebony",  "minAmount": 5,  "maxAmount": 15 }
    ],
    "cropTemplates": [
      { "target": "wheat",   "minAmount": 20, "maxAmount": 50 },
      { "target": "pumpkin", "minAmount": 10, "maxAmount": 30 },
      { "target": "berry",   "minAmount": 15, "maxAmount": 40 }
    ]
  }
}

The generator picks from these templates randomly, applies level scaling to amounts, and creates quest objectives.

๐Ÿ’ฐ Rewards

{
  "Rewards": {
    "dailyBaseCoins": 15.0,
    "weeklyBaseCoins": 75.0,
    "bonusXpPerQuest": 50,
    "levelScalingFactor": 0.08,
    "vipMultiplier": 1.25,
    "premiumMultiplier": 1.5
  }
}
Key Default Description
dailyBaseCoins 15.0 Base currency reward for daily quests
weeklyBaseCoins 75.0 Base currency reward for weekly quests
bonusXpPerQuest 50 Bonus RPG XP per completed quest
levelScalingFactor 0.08 Reward multiplier per player level (level ร— factor)

Reward formula: Final Reward = Base ร— (1 + level ร— factor)

๐Ÿ›ก๏ธ Protection

{
  "Protection": {
    "acceptCooldownSeconds": 30,
    "allowedWorlds": [],
    "blockAbuseInCreative": true
  }
}
Key Default Description
acceptCooldownSeconds 30 Cooldown between accepting quests
allowedWorlds [] (all) Restrict quest progress to specific worlds
blockAbuseInCreative true Prevent quest progress in creative mode

๐Ÿ“ Quest Lifecycle

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    accept    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   progress   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  AVAILABLE   โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚   ACTIVE    โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚   COMPLETED   โ”‚
โ”‚  (in pool)   โ”‚             โ”‚ (tracking)  โ”‚   (100%)     โ”‚  (rewarded!)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                   โ”‚
                          abandon  โ”‚  expire
                                   โ–ผ
                            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                            โ”‚  ABANDONED /  โ”‚
                            โ”‚   EXPIRED     โ”‚
                            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  1. Pool Generation โ€” Server generates daily/weekly quest pools from config templates
  2. Browse & Accept โ€” Players view available quests (GUI or chat) and accept
  3. Progress Tracking โ€” Actions automatically tracked via ECS events and balance polling
  4. Notifications โ€” Players receive chat messages on every action + milestones at 25/50/75%
  5. Completion & Reward โ€” At 100%, currency is deposited via Ecotale API + bonus XP granted
  6. Expiry โ€” Unfinished quests expire at the next daily/weekly reset

Key Design Decisions

  • ECS Event Pattern โ€” Block listeners use Hytale's EntityEventSystem<EntityStore, Event> with ArchetypeChunk for player resolution
  • Reflection-first โ€” All Store, PlayerRef, Message calls use reflection for stub compatibility
  • Ecotale API (static) โ€” Rewards and currency tracking via com.ecotale.api.EcotaleAPI (static API from Ecotale-1.0.7)
  • Balance Polling โ€” CoinQuestListener checks balances every 2 seconds โ€” if increased, the difference counts as earnings
  • RPG API Auto-detect โ€” Tries get(), getInstance(), getAPI() methods for cross-version compatibility
  • JSON Storage โ€” File-based persistence (quests/ for pools, players/<uuid>.json for progress) โ€” no database required
  • Immutable Quests โ€” Quest objects are immutable; only PlayerQuestData tracks mutable progress state
  • HyUI GUI โ€” Tabbed quest panel with accept/abandon buttons, progress bars, auto-refresh

๐Ÿ”Œ EcoTale Ecosystem

EcoTaleQuests is part of the CrystalRealm EcoTale plugin family:

Plugin Description
EcoTaleIncome Earn currency through mob kills, mining, woodcutting, farming
EcoTaleBanking Banking system โ€” deposits, loans, credit score, interest
EcoTaleQuests Daily & weekly quest system โ† you are here

๐ŸŒ Localization

Built-in support for 6 languages: English, Russian, Brazilian Portuguese, French, German, Spanish. Language files are auto-generated on first start.

Per-player switching:

/quests lang en
/quests lang ru
/quests lang pt_br
/quests lang fr
/quests lang de
/quests lang es

Shortcut aliases also work: /quests langen, /quests langru, /quests langpt, /quests langfr, /quests langde, /quests langes

All quest names are fully localized. Players see translated quest descriptions (ะ”ะพะฑั‹ั‚ัŒ: ะ–ะตะปะตะทะพ ร—24, ะฃะฑะธั‚ัŒ: ะ›ัŽะฑั‹ะต ะผะพะฑั‹ ร—22) in both GUI and chat โ€” never raw internal IDs.

100+ localization keys, including:

  • quest.completed / quest.action_progress โ€” progress and completion messages
  • quest.desc.* โ€” descriptions for all 6 quest types
  • quest.type.* โ€” category names (ะœะพะฑั‹, ะ ัƒะดะฐ, ะ”ะตั€ะตะฒะพ, ะฃั€ะพะถะฐะน, ะ’ะฐะปัŽั‚ะฐ, ะžะฟั‹ั‚)
  • target.* โ€” 40+ targets (mobs, ores, trees, crops) including wildcards (ะ›ัŽะฑั‹ะต ะผะพะฑั‹, ะ›ัŽะฑะฐั ั€ัƒะดะฐโ€ฆ)
  • cmd.* โ€” command feedback
  • gui.* โ€” GUI panel elements

Custom translations: Edit the generated JSON files in mods/com.crystalrealm_EcoTaleQuests/lang/

โš ๏ธ Issues & Feature Requests

Please report any bugs, issues, or feature suggestions via GitHub Issues.
This helps keep feedback organized and allows faster tracking and fixes.

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file.


Made with โค๏ธ by CrystalRealm for the Hytale community