Compatibility
Minecraft: Java Edition
Platforms
Links
Creators
Details
Changelog
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.4.13] - 2026-01-21
Added
- SkillsAPI for External Plugin Integration
- New
SkillsAPIinterface for other plugins to interact with Skills - Registered via Bukkit ServicesManager (Vault-style integration)
- Skill operations:
getSkill,setSkill,addSkill,hasSkillLevel,getAllSkills,getTotalSkillPoints - Stat operations:
getStat,getAllStats(STR/DEX/INT) - HP/Mana/Stamina:
getCurrentHp,getMaxHp,getCurrentMana,getMaxMana,getCurrentStamina,getMaxStamina,restoreMana,restoreStamina - Utility:
getAvailableSkillNames,isValidSkillName,getTitle - Supports skill name resolution (display name, enum name, with/without underscores)
- New
Example Usage (for other plugins)
val registration = Bukkit.getServicesManager().getRegistration(SkillsAPI::class.java)
val api = registration?.provider ?: return
// Get skill value
val swordSkill = api.getSkill(player, "Swordsmanship") // Returns 0.0-100.0
// Set skill if below threshold
if (api.getSkill(player, "Mining") < 10.0) {
api.setSkill(player, "Mining", 10.0)
}
// Check stats
val str = api.getStat(player, "STR")
val currentHp = api.getCurrentHp(player)
[0.4.12] - 2026-01-19
Added
- Blank Spellbook Admin Command
/skilladmin give <player> spellbook blank- Gives an empty spellbook with no spells/skilladmin give <player> spellbook full- Gives a spellbook with all spells (existing behavior)- Tab completion support for
blankandfulloptions
[0.4.11] - 2026-01-18
Changed
- Mana System Overhaul (UO-Style)
- Reverted "Food Bar = Mana" system from v0.4.10
- Mana is now completely independent from the food bar
- Food bar returns to vanilla behavior (hunger/saturation)
- Vanilla HP regeneration (SATIATED) is re-enabled
- All healing sources now properly restore internal HP
Added
- Natural Mana Regeneration (INT-based)
- All players regenerate mana over time
- Base regen: 0.5 mana per 5 seconds
- INT bonus: +INT% (e.g., INT 100 = 1.0 mana per 5 seconds)
- Golden Apple Mana Recovery
- Golden Apple: +5 MP (in addition to vanilla HP effects)
- Enchanted Golden Apple: +10 MP (in addition to vanilla HP effects)
- Meditation Mana Recovery (unchanged)
- Sneaking while stationary regenerates mana faster
- 0.1 × (1 + Meditation/100) mana per 0.5 seconds
Technical
- Removed
ExhaustionListener(vanilla exhaustion restored) - Removed
syncManaToVanillafrom StatCalculator and all callers - Removed
syncFromVanillafrom ManaManager - Added
processNaturalRegenerationto ManaManager - Integrated mana regeneration into
ScoreboardManager.startUpdateTask()(avoids thread proliferation) - Simplified
CombatListener.onEntityRegainHealthto allow all healing sources
[0.4.10] - 2026-01-18
Added
- Food Bar = Mana System (REVERTED in v0.4.11)
- Food bar now represents Mana instead of hunger
- Vanilla exhaustion (running, jumping, mining, etc.) no longer depletes the food bar
- Eating restores Mana first, overflow is converted to HP (1 mana overflow = 5 internal HP)
- Food level is capped at 19 (not 20) so players can always eat even when mana is full
- Natural HP regeneration (SATIATED) is disabled - HP is restored by:
- Eating (mana overflow → HP)
- Magic spells (Heal, Greater Heal)
- Potions with Regeneration effect (golden apples, regeneration potions)
Changed
- Regeneration Handling
EntityRegainHealthEventwithREGENorMAGIC_REGENreason now checks for Regeneration potion effect- Only heals internal HP if player actually has Regeneration effect (from golden apple, potion, beacon)
- Prevents vanilla SATIATED regeneration from healing (since food bar = mana, not hunger)
Technical
- Added
ExhaustionListenerto cancel allEntityExhaustionEventfor players - Modified
FoodListenerto handle mana restoration with HP overflow - Modified
CombatListener.onEntityRegainHealthto properly handle SATIATED/REGEN/MAGIC_REGEN - Modified
StatCalculator.syncManaToVanillato cap food level at 19
[0.4.9] - 2026-01-18
Changed
- Auto-Fishing Improvement
- Skill 0-19: No auto-fishing (manual only)
- Skill 20-99: Roll probability on fish bite
- Success: Auto-reel + auto-recast (fishing continues)
- Failure: Message displayed, fish escapes, player must manually reel in
- Skill 100 (GM): Always auto-reel + auto-recast (true AFK fishing)
- This makes the skill progression more meaningful - GM is the only truly AFK-capable level
- Added failure message: "You lost your focus... the fish got away!"
Added
- NMS Ecosystem (Centralized NMS Code)
- Created
/nms/package to consolidate all NMS-related code NmsVersion.kt: Server version detection with Paper 1.20.5+ unversioned package supportReflectionCache.kt: Centralized caching for reflection lookups (classes, methods, fields)FishingNms.kt: Fishing-specific NMS operations (moved from FishingReflectionHelper)NmsManager.kt: Central manager for all NMS features- Future NMS code should follow this pattern for easier version upgrades
- Created
Removed
- Deleted
FishingReflectionHelper.kt(migrated to NMS ecosystem)
[0.4.8] - 2026-01-17
Fixed
- Pick Block (Middle-Click) Not Working
- Fixed pick block functionality not finding items in inventory
- Root cause:
StackBonusManagermodifiesmaxStackSizefrom 64 to 99 for stackable items - This caused
ItemStack.isSimilar()to fail when comparing inventory items to world blocks - Solution: Added
PickBlockListenerthat interceptsPlayerPickBlockEventwhen vanilla search fails - Custom search ignores
maxStackSizedifferences and matches by material type only - Handles special block-to-item mappings (ores → drops, wall items → regular items)
[0.4.7] - 2026-01-11
Added
- DEX Requirement for Armor (UO-Style)
- Heavy armor now requires minimum DEX to equip (like Ultima Online)
- Players with low DEX (e.g., STR/INT builds) cannot wear plate armor
- DEX requirements by armor tier:
- Netherite: DEX 50+ (full set), 35-50 per piece
- Diamond: DEX 45+ (full set), 30-45 per piece
- Iron: DEX 35+ (full set), 20-35 per piece
- Chainmail: DEX 25+ (full set), 10-25 per piece
- Leather/Gold: No DEX requirement
- Error messages shown when trying to equip with insufficient DEX
- Armor automatically removed when DEX drops below requirement
Changed
- End City Scroll Drop Rates (Rebalanced)
- End City chests now drop C5-C8 scrolls only (high-circle focus)
- New drop rates for endgame-appropriate rewards:
- C5-C6: 10% (was: none)
- C7: 5% (was: 0.5%)
- C8: 2% (was: 0.2%)
- Total ~17% per chest, ~4 scrolls per hour (25 chests)
- C7-C8 scrolls: ~1-2 per hour
- Removed C1-C4 from End City (available in Trial Chambers instead)
Fixed
- Fixed Bless spell particle effect (INSTANT_EFFECT → ENCHANT)
[0.4.6] - 2026-01-09
Changed
- Production Skill Consolidation (Breaking Change)
- Merged 4 production skills into 2:
- CRAFTING: Equipment, tools, weapons, armor (merged Blacksmithy + Craftsmanship)
- STR weight: 60%, DEX weight: 40%
- Covers: Metal items, wooden items, leather items, bows, tools, shields
- COOKING: Food and potions (merged Cooking + Alchemy)
- STR weight: 50%, INT weight: 50%
- Covers: Furnace cooking, crafted food, potions, brewing
- CRAFTING: Equipment, tools, weapons, armor (merged Blacksmithy + Craftsmanship)
- Stack bonus now uses 3 skills (max 300) instead of 4 skills (max 400)
- Formula:
stackSize = 64 + (CRAFTING + COOKING + INSCRIPTION) / 300 * 35
- Formula:
- Mending enchantment now uses CRAFTING skill for all craftable equipment
- Skill titles updated: removed Blacksmith/Alchemist, kept Artisan/Chef
- Quality system unchanged (difficulty-relative HQ/EX calculation)
- Food/Potion bonus effects unchanged (recovery bonus, duration extension)
- Merged 4 production skills into 2:
Removed
- SkillType.BLACKSMITHY (merged into CRAFTING)
- SkillType.CRAFTSMANSHIP (merged into CRAFTING)
- SkillType.ALCHEMY (merged into COOKING)
[0.4.5] - 2026-01-06
Fixed
-
Trial Chamber Vault Key Issue (CRITICAL)
- Fixed Trial Keys obtained from Trial Spawners not working with Vault blocks
- Root cause:
StackBonusManagerwas modifying Trial Key's ItemMeta when picked up - Trial Keys stack to 64, so they passed the stackability check and got modified
- This corrupted the key's NBT data, making Vault blocks reject them
- Creative-obtained keys worked because they bypassed the pickup event
- Solution: Added
TRIAL_KEYandOMINOUS_TRIAL_KEYto exclusion list inStackBonusManager
-
Rune Crafting ArrayIndexOutOfBoundsException
- Fixed crash when using 2x2 inventory crafting grid for rune crafting
- Root cause:
onPrepareRuneCraftwas using 3x3 grid indices (0-8) for all grids - 2x2 grid only has indices 0-3, causing ArrayIndexOutOfBoundsException at index 4
- Solution: Detect grid size and use appropriate vertical pairs
- 2x2 grid: (0,2), (1,3)
- 3x3 grid: (0,3), (1,4), (2,5), (3,6), (4,7), (5,8)
[0.4.4] - 2026-01-06
Added
-
/runeCommand for Power Words Casting- New command dedicated to UO-style Power Words incantations
- Example:
/rune In Mani(Heal),/rune Vas Flam(Fireball) - Aliases:
/powerwords,/pw - Word-by-word tab completion for multi-word incantations
/castcommand now only accepts English spell names
-
Spellbook Target Type Display
- Each spell page now shows target type (Self, Entity, Location, Area, etc.)
- Localized: English and Japanese translations
-
Spellbook Layout Improvements
- One spell per page for stable display (reagents always visible)
- Removed "Incantation:" label, Power Words shown directly
- Removed redundant "Mana: N" line
- Reagents displayed on separate lines with bullet points
Changed
- Command Separation
/cast <spell name>- Cast by English name (e.g.,/cast fireball)/rune <Power Words>- Cast by Power Words (e.g.,/rune Vas Flam)- Tab completion logic shared via SpellbookManager helper methods
Fixed
- Tab Completion for Power Words
- Fixed multi-word completion causing text duplication
- Now completes word-by-word:
/rune Kal→ Tab →Vas→/rune Kal Vas
[0.4.3] - 2026-01-05
Added
-
Power Words Casting Support
- Cast spells using UO-style incantations (e.g.,
/cast Vas Flamfor Fireball) - Tab completion shows both spell display names and Power Words
- Duplicate Power Words (e.g., "Kal Vas Flam") resolve to lower circle spell
- All 47 spells have unique Power Words
- Cast spells using UO-style incantations (e.g.,
-
Enchantment-Style Casting Particles
- Magical glyphs (like enchantment table) spiral around caster during chanting
- Particles rise and pulse around the player
- Intensity scales with spell circle:
- C1-C2: Basic ENCHANT particles (3-4 glyphs)
- C3-C5: Enhanced effect with foot particles (5-7 glyphs)
- C6: Adds END_ROD particles
- C7-C8: Adds WITCH particles for dramatic effect
- Effects persist until casting completes or is cancelled
-
Spellbook Power Words Display
- Each spell entry now shows its Power Words/incantation
- Localized labels: "Incantation" (English) / "詠唱" (Japanese)
- Helps players learn the UO-style casting phrases
Technical
- FloatingTextManager: Particle-based effect system replacing TextDisplay
- SpellType.fromPowerWords(): Lookup spell by Power Words with duplicate handling
- CastCommand: Enhanced parsing to accept spell names, enum names, or Power Words
[0.4.2] - 2026-01-05
Added
- Chunk-Based Mob Limit System
- Prevents server lag from automatic breeding farms and mob spawners
- Limits mob count per chunk by category:
- Passive (animals): 24 mobs
- Hostile (monsters): 32 mobs
- Ambient (bats): 8 mobs
- Water Creature (squid, dolphin): 8 mobs
- Water Ambient (fish): 16 mobs
- Protected entities exempt from limits:
- Boss mobs: Ender Dragon, Wither, Elder Guardian
- System mobs: Villager, Iron Golem, Snow Golem, Wandering Trader, Trader Llama
- Protected spawn reasons exempt from limits:
- Commands, custom spawns, golem/wither construction
- Mob conversions (zombie drowning, piglin zombification, etc.)
- Breeding blocked notification sent to players when limit reached
- Toggleable via
chunk_mob_limit.enabledin config.yml - All limits configurable in config.yml
- Bilingual support (English/Japanese)
Technical
- MobLimitCategory enum mapping Minecraft SpawnCategory to custom limits
- ProtectedEntityTypes object for exempt entity types and spawn reasons
- MobLimitManager with ConcurrentHashMap-based chunk caching
- MobLimitListener handles spawn, breed, death, and chunk load/unload events
- Cache automatically initialized on chunk load and cleared on chunk unload
[0.4.1] - 2026-01-05
Fixed
- Trial Chamber Vault Compatibility
- Fixed StackBonusListener interfering with vanilla Vault behavior
- Trial Keys now properly consumed when opening vaults
- Vault loot now generates correctly
- Added
isVaultInventory()check to exclude Vault blocks from stack bonus processing
Added
- Trial Chamber Scroll Drops
- Scrolls can now drop from Trial Chamber vault rewards
- Supports both normal and ominous trial rewards
- Drop rates by circle:
- C1-C3: 8% (common spells)
- C4-C5: 4% (mid-tier spells)
- C6: 2% (high-tier spells)
- C7: 0.8% (rare spells)
- C8: 0.3% (legendary spells)
- Configurable via
scroll.trial_chamber_enabledin config.yml
[0.3.1] - 2026-01-04
Added
-
Sleep Skip Command
/sleepcommand allows players to be counted as sleeping without being in a bed- Requirements: night time, in Overworld, at least one player already sleeping in a bed
- When enough players are sleeping (including /sleep users), night will be skipped
- Respects
playersSleepingPercentagegame rule - Auto-cancels on world change, logout, or when night is skipped
- Bilingual support (English/Japanese)
-
Sleep Notification System
- When a player enters a bed, awake players receive a clickable notification
- Notification includes a clickable button that runs
/sleepcommand - Hover text explains the action
- Messages localized in English and Japanese
-
Sleep Feature Configuration
- Added
sleep.enabledconfig option to enable/disable the sleep skip feature - Enabled by default
- When disabled,
/sleepcommand shows disabled message and bed notifications are not sent
- Added
[0.3.0] - 2026-01-04
Added
-
Health Boost for High Quality Food
- HQ food grants Health Boost I (+2 hearts) for 30 seconds when eaten
- EX food grants Health Boost I (+2 hearts) for 1 minute when eaten
- Balanced to not overshadow golden apples (which give Absorption + Regeneration)
- Food quality is now stored in PersistentDataContainer
-
GM (Skill 100) Complete Immunity
- All survival skills at level 100 now grant complete damage immunity
- Uses
event.isCancelled = trueto prevent damage AND screen shake effect - Applies to: Athletics, Swimming, Heat Resistance, Cold Resistance, Endurance
- Heat Resistance GM: Also immediately extinguishes fire (
fireTicks = 0) - Cold Resistance GM: Also immediately clears freeze (
freezeTicks = 0)
Fixed
-
Item Stacking Bug
- Fixed items with same name/quality not stacking when picked up
- Root cause:
setMaxStackSize()created different ItemMeta preventing stacking - Solution: Synchronize MaxStackSize across all items of same type using highest value
- Applies when picking up items, taking from containers, and on login
-
Food Item Stacking Issue (Floating Point Precision)
- Fixed same-quality food items not stacking due to floating point precision differences
- Root cause: Cooking skill increases during cooking, causing slightly different bonus values
- Solution: Cooking bonus now rounded to 1% precision (matching Lore display)
- Both PDC value AND Lore are now updated consistently using the same rounded value
- Existing items are automatically normalized when picking up food items
- Old and new items can now stack together after picking up any food item
-
Survival Skills Damage Rebalancing (Breaking Change)
- Environmental damage now maintains vanilla lethality regardless of STR
- STR HP bonus benefit limited to 20% (80% scales with damage)
- Formula:
0.5 × STRScale × (1 - Skill/100)whereSTRScale = 1 + ((maxHP/100 - 1) × 0.8) - Example: STR 25 (maxHP 125), Skill 0 → Damage multiplier 0.6 (near-vanilla lethality)
- Skill 100: Complete immunity (no damage, no screen shake)
- Affected skills: Athletics, Swimming, Heat Resistance, Cold Resistance, Endurance
- Contact damage (cactus/berry bush) now uses same formula via Endurance skill
-
Admin Command Skill Name Parsing
- Fixed
/skilladmin set <player> <skill> <value>failing for skills with spaces - Example:
/skilladmin set player Heat Resistance 100now works correctly - Skill name is parsed by joining all arguments between player and value
- Fixed
Changed
- Endurance Skill Expanded
- Now covers both suffocation damage and contact damage (cactus, berry bush, etc.)
- Skill gains from both suffocation (difficulty 50) and contact damage (difficulty 15)
[0.2.9] - 2026-01-04
Added
- UO-Style Runebook System
- Runebook item that stores up to 16 runes
- Purchase from level 3 Librarian villagers (40-60 emeralds)
- GUI interface with 27 slots (3 rows)
- Row 1-2: 16 rune slots (8 per row)
- Row 3: Drop zone for adding runes
- Click on registered rune to cast Recall (left-click) or Gate Travel (shift+left-click)
- Drag & drop marked runes to register them
- Right-click on registered rune to remove it (returns as item)
- Full spell casting requirements apply (reagents, mana, casting time)
- Bilingual support (English/Japanese)
Technical
- RunebookManager for item creation and rune data management
- RunebookListener for GUI handling and spell integration
- JSON storage using Gson (PDC-based persistence)
- Integration with existing SpellManager for Recall/Gate Travel
Fixed
- Clear pending runebook spell locations when casting is cancelled
- Clean up runebook data on player quit to prevent memory leaks
- Gate Travel duration now fixed at 30 seconds (UO-style)
- Japanese runebook name changed from "ルーンブック" to "ルーンの書"
[0.2.8] - 2026-01-03
Added
-
UO-Style Deadly Poison System
- 4 poison levels: Lesser, Regular, Greater, Deadly
- Each level has different damage, difficulty, and Alchemy requirements:
- Lesser Poison (弱毒): 0.5 dmg/s, difficulty 20, Alchemy 0+
- Regular Poison (毒): 1.0 dmg/s, difficulty 40, Alchemy 30+
- Greater Poison (強毒): 1.5 dmg/s, difficulty 60, Alchemy 60+
- Deadly Poison (猛毒): 2.0 dmg/s, difficulty 80, Alchemy 90+
- Custom damage system independent of vanilla POISON effect
- Poison damage reduces target to 1 HP minimum (UO-style, won't kill)
- Variable difficulty allows Poisoning skill training to 100
-
Alchemy-Poison Integration
- Brewing poison potions now creates custom poison based on Alchemy skill
- Vanilla Poison → Lesser/Regular/Greater/Deadly based on skill level
- Vanilla Strong Poison → Regular/Greater/Deadly based on skill level
- Custom poison potions show damage rate and Alchemy requirement in lore
-
Poison Level Display
- Weapon lore shows poison level and remaining charges
- Color-coded by poison level (green → dark green → cyan → purple)
- Messages display localized poison level names (English/Japanese)
Changed
- PoisoningManager Rewrite
- Complete rewrite to support poison levels
- Uses BukkitRunnable for periodic poison damage application
- Success chance now based on skill vs poison difficulty delta
[0.2.7] - 2026-01-02
Added
-
Shovel Digging System
- Digging soft blocks with shovels now gains Mining skill
- Target blocks: dirt, grass, sand, gravel, clay, soul sand, snow, mud, concrete powder, etc.
- Difficulty range: 5 (basic soil) to 25 (suspicious sand/gravel)
- Durability reduction based on Mining skill (skill 100 = 100% reduction)
- Haste speed bonus based on Mining skill (up to Haste II at skill 80+)
-
Gathering Speed Bonus System (Haste Effect)
- Mining ores, chopping logs, and digging soft blocks now apply Haste effect
- Speed bonus calculated from skill level:
- Mining: STR/10 + MiningSkill/10 (max 20%)
- Lumberjacking: LumberjackingSkill/2 (max 50%)
- Digging: MiningSkill/2 (max 50%)
- Haste level applied:
- 10-19% bonus: Haste I
- 20-39% bonus: Haste I
- 40%+ bonus: Haste II
- Does not override stronger Haste effects (beacons, potions)
-
Cooking Skill Effects
- Food cooked gets recovery bonus based on Cooking skill
- Formula: baseRecovery × (1 + skill/4/100 + qualityBonus)
- Quality modifiers: LQ -15%, NQ +0%, HQ +15%, EX +25%
- Difficulty range: 5 (dried kelp) to 100 (enchanted golden apple)
-
Alchemy Skill Effects
- Brewed potions get duration extension based on Alchemy skill
- Formula: baseDuration × (1 + skill/200) - max +50% at skill 100
- Quality affects potion strength
- Difficulty range: 15 (mundane) to 55 (special potions)
- Modifiers: Extended +15, Enhanced +20, Splash +10, Lingering +20
-
Tinkering Skill Effects
- Mending success rate for tinkering items depends on Tinkering skill
- Formula: min(100, TinkeringSkill × 100/60)
- Skill 0: 0%, Skill 30: 50%, Skill 60+: 100%
- Target items: Fishing Rod, Shears, Flint and Steel, Clock, Compass, Spyglass
-
Spear Skill (1.21.5+)
- New combat skill for spear weapons
- DEX-weighted skill (affects DEX stat calculation)
- Supports all spear tiers: wooden, stone, iron, golden, diamond, netherite
- Skill gain on dealing damage with spears
-
UO-Style Repair Degradation System
- Repairing items on anvil now reduces max durability (like Ultima Online)
- Higher Blacksmithy skill = less max durability lost per repair
- Formula: reduction = (110 - Blacksmithy skill) / 10
- GM Blacksmith (skill 100): loses 1 max durability per repair
- Skill 0: loses 11 max durability per repair
- Custom max durability stored via PersistentDataContainer
- Durability shown in item lore: "耐久度: current/max (percentage%)"
- Color-coded percentage: green (>75%), yellow (>50%), orange (>25%), red (<=25%)
- Blacksmithy skill gain on anvil repair (based on item difficulty)
-
Mending Enchantment + Crafting Skill Integration
- Mending enchantment success rate now depends on appropriate crafting skill
- Item type determines required skill:
- Metal items (iron/gold/diamond/netherite/chain/stone), trident, mace, spears → Blacksmithy
- Bow, crossbow → Bowcraft
- Leather armor, wooden items, shield → Craftsmanship
- Fishing rod, shears, flint and steel → Tinkering
- Elytra, turtle helmet → No skill required (always 100%)
- Formula: success rate = min(100, skill × 100 / 60)
- Skill 0: 0% success rate
- Skill 30: 50% success rate
- Skill 40: 67% success rate
- Skill 60+: 100% success rate (full vanilla behavior)
- When mending fails, XP goes to player instead of repairing the item
- Encourages players to level appropriate crafting skills for equipment maintenance
-
Internal Stamina System (Monster Hunter Style)
- New internal stat: Stamina (100 + DEX + Focus/2)
- Consumed while sprinting (20/sec base)
- Regenerates when not sprinting (40/sec base, boosted by Focus)
- When stamina depleted: exhausted state
- Walk speed reduced to 50% (setWalkSpeed)
- Jumping disabled (Jump Boost -200)
- Panting effect: breath particles + wolf pant sound
- Focus bonus ignored during exhaustion (fixed 40/sec recovery)
- Must recover to 50 stamina before normal movement returns
- Implementation based on SurvivalMethod plugin approach
-
Focus Skill Effects
- Max stamina bonus: +Focus/2
- Stamina consumption reduction: -(Focus/2)% (max 50%)
- Stamina regeneration bonus: +Focus% (max 100%) - only when not exhausted
- Skill gain: Every 5 seconds of sprinting
-
Scoreboard HP/Mana/Stamina Display
- Sidebar now shows ❤ HP, 🍖 Mana, ⚡ Stamina
- Real-time updates alongside STR/DEX/INT
-
Farming Skill
- New gathering skill for agriculture activities
- Skill gains from: harvesting mature crops, tilling soil, planting seeds, using bone meal
- Bonus harvest chance: skill/2 % (max 50%)
- Extra seed drop chance: skill/4 % (max 25%)
- Bone meal effectiveness bonus: +skill/5 % (max 20%)
- Crop difficulty range: 10-45 (wheat=10, pitcher plant=45)
- DEX-weighted skill (affects DEX stat calculation)
-
Bow/Crossbow Balance System
- Distance falloff: 100% at 0-15 blocks, linear to 50% at 15-30 blocks, 50% at 30+
- Movement penalty: -30% damage when shooting while moving
- Projectile shield parrying: Parrying × 0.6 (max 60%), 50% damage reduction
- Crossbow base damage increased to 10 (from 9), bow stays at 6
-
Energy Bolt Spell (5th Circle)
- Single-target direct damage spell
- Base damage: 80 (highest single-target spell)
- Reagents: Spider Eye + Blaze Powder
- Power Words: "Corp Por"
-
Power Words System
- UO-style incantations broadcast to nearby players when casting
- Each spell has unique power words (e.g., "Vas Flam" for Fireball)
-
Librarian Villager Trades
- Librarians now sell spellbooks and scrolls
- Level 1: C1 scroll (5-8 emeralds)
- Level 2: C1/C2 scroll (8-12 emeralds)
- Level 3: Empty spellbook (30-50 emeralds)
- Level 4: C2 scroll (12-15 emeralds)
Removed
- Spellbook Crafting Recipe
- Removed Book + Echo Shard = Empty Spellbook recipe
- Spellbooks are now obtained from Librarian villagers
Fixed
- MiniMessage Legacy Format Code Error
- Fixed
ArmorManager.getArmorDisplayName()converting Adventure Component to legacy § codes - Fixed
DurabilityManager.updateDurabilityLore()using legacy § color codes in item lore - Fixed
CraftingListenerandThiefListenerusing legacy § codes insendMessage() - All text now uses Adventure Components with
NamedTextColorandPlainTextComponentSerializer
- Fixed
Added
-
Armor System
- ArmorManager: Calculate total AR (Armor Rating) and DEX penalty
- ArmorConfig: Load armor stats from
armor.yml - ArmorListener: Apply DEX penalty when armor changes
armor.yml: Define armor stats for all armor types
-
Combat Configuration
- CombatConfig: Load weapon/mob/enchantment stats from YAML files
weapons.yml: Define base damage and skill type for each weaponenchantments.yml: Define damage increase per enchantment levelmobs.yml: Define physical/magic defense and attack power for 56+ mob types
-
Scroll Loot System
- ScrollDropManager: Handle scroll drops from mobs and chests
- ScrollLootListener: Listen for mob death and chest open events
- MagicMob: Define which mobs drop scrolls and drop rates
- EndChestLoot: Define end city chest scroll loot tables
-
UO-Style Skill Titles
- SkillTitleManager: Generate titles based on highest skill
- Titles: Neophyte, Novice, Apprentice, Journeyman, Expert, Adept, Master, Grandmaster
- Display on scoreboard (split into 2 lines)
- Show in
/skillscommand output
-
Admin Commands
/skilladmin check <player>: View player's skills and stats/skilladmin setstat <player> <STR|DEX|INT> <value>: Set player stats
-
Stat Lock System
- Lock STR/DEX/INT to UP, DOWN, or LOCKED mode
- Display lock icons on scoreboard
-
VengefulMobs Feature
- Passive mobs (sheep, cow, pig, etc.) fight back when attacked
- Configurable anger duration, chase distance, and aggression modes
- Per-mob overrides for damage, speed, and behavior
-
Passive Animal Combat Stats
- Added defense values for: CHICKEN, RABBIT, PIG, SHEEP, COW, MOOSHROOM, HORSE, DONKEY, MULE, LLAMA, GOAT
- Added BOGGED (1.21 swamp skeleton variant)
Changed
-
Magic Spell Base Damage Rebalance
- Increased base damage for all attack spells to compensate for reagent costs
- Magic Arrow: 2 → 20, Harm: 4 → 35, Fireball: 6 → 50
- Lightning: 8 → 65, Fire Wall: 40, Energy Bolt: 80
- Explosion: 10 → 90, Meteor Swarm: 15 → 130
- Magic now stronger than bow/crossbow to justify reagent consumption
-
Targeting Time Reverted
- Targeting time back to 5 seconds (was briefly 2 seconds)
- Since spells fire immediately on click, shorter timeout just made players rushed
-
CLAUDE.md Specification Updates
- Updated combat damage formula to match implementation
- Updated armor table (STR requirements, DEX penalties) to match armor.yml
- Added bow/crossbow balance section with penalties
- Fixed outdated magic base damage table
-
Swimming Skill Balance
- Swimming skill now only gains on drowning damage (not every air tick)
- Previously gained too fast due to air change events firing every tick
- Now consistent with other survival skills (Athletics, Heat Resistance, etc.)
- Drowning damage handling separated from Endurance skill
-
Combat Damage Formula (Breaking Change)
- Tactics now essential:
Tactics / 100(0.1 to 1.0 multiplier) - Anatomy now affects damage:
0.5 + (Anatomy / 100)(0.6 to 1.5 multiplier) - STR bonus reduced:
1 + (STR / 200)(max +50%, was +100%) - Critical multiplier increased: 2.0x (was 1.5x)
- Low skills (~10) deal ~6% damage, high skills (100) deal ~150% damage
- Tactics now essential:
-
Magic Damage Formula (Breaking Change)
- Magery now essential:
Magery / 100(0.1 to 1.0 multiplier) - EvalInt now affects damage:
0.5 + (EvalInt / 100)(0.6 to 1.5 multiplier) - Low skills (~10) deal ~6% damage, high skills (100) deal ~150% damage
- Magery now essential:
Fixed
- Fixed damage division bug where mobs took 10x less damage than intended
- Fixed Parrying skill gain only triggering on successful parry (UO-style behavior)
Removed
- Deprecated
SkillbookCommand.kt - Deprecated
SpellbookCommand.kt
[0.2.2] - 2025-12-27
Added
- VengefulMobs: Per-mob attack cooldown
- Added
attack_cooldownsetting for each mob type - Default cooldown: 1000ms (same as vanilla mobs)
- Chicken/Rabbit: 1500ms with reduced damage (1.0)
- Goat: 800ms (faster, more aggressive)
- Added
Fixed
-
Armor validation on STR change
- Now validates equipment when player joins (catches existing players after update)
- Now validates equipment when STR decreases during gameplay
- Players wearing armor they can't equip will have it removed automatically
-
Armor removal item loss in Creative mode
- Fixed items disappearing when armor is removed due to STR requirements
- Now clones ItemStack before removing from slot
-
Vanilla critical hit precision
- Changed baseDamage from Int to Double to preserve vanilla jump-attack critical bonus (1.5x)
- Previously truncated to integer, losing precision
-
VengefulMobs attack speed
- Fixed hardcoded 500ms attack cooldown that made all mobs attack too fast
- Now uses configurable per-mob cooldown (default 1000ms)
[1.0.0] - Initial Release
Added
-
34 Skills inspired by Ultima Online
- Combat: Swordsmanship, Axe, Mace Fighting, Archery, Throwing, Wrestling, Tactics, Anatomy, Parrying, Focus
- Magic: Magery, Evaluating Intelligence, Meditation, Resisting Spells, Inscription
- Crafting: Alchemy, Blacksmithy, Bowcraft, Craftsmanship, Cooking, Tinkering
- Gathering: Mining, Lumberjacking, Fishing
- Thief: Hiding, Stealth, Detecting Hidden, Snooping, Stealing, Poisoning
- Taming: Animal Taming, Animal Lore, Veterinary
- Other: Arms Lore
-
Stat System
- STR, DEX, INT calculated from related skills
- STR: +HP, mining/lumber speed bonus
- DEX: Attack speed, movement speed bonus
- INT: Mana cost reduction, cast success bonus
-
Internal HP/Mana System
- Internal HP: 100 + STR (synced with vanilla hearts)
- Internal Mana: Uses hunger bar
-
Skill Cap System
- Total skill cap: 700 points
- Individual skill cap: 100 points
- Least-used skill decreases when cap reached
-
UO-Style Skill Gain
- Gain chance decreases as skill increases
- Difficulty affects gain rate
- 0.1 point gain per successful check
-
Magic System
- 20+ spells across 8 circles
- Reagent system using Minecraft items
- Spellbook and scroll crafting
- Rune marking and recall/gate travel
-
Crafting Quality System
- LQ/NQ/HQ/EX quality based on skill
- Quality affects damage/defense and durability
-
Thief System
- Hiding and stealth movement
- Snooping and stealing from players
- Weapon poisoning
-
Taming System
- Tame wolves, cats, horses, etc.
- Animal Lore to check mob stats
- Veterinary to heal tamed animals
-
Internationalization
- English and Japanese language support
- Client locale detection
/languagecommand to change language
-
Scoreboard Display
- Show STR/DEX/INT with lock icons
- Show skill title
- Compatible with other plugins' team/BELOW_NAME displays


