A comprehensive, standalone origin system for Minecraft 1.21.1 through 26.2
Transform your Minecraft experience with unique character origins, abilities, and passives.
⚠️ IMPORTANT DISCLAIMER ⚠️
This mod is a completely SEPARATE and INDEPENDENT project.
It is NOT an official port, fork, or affiliate of the original Origins mod by Apace100.
Veil Origins is built from the ground up with its own codebase, unique abilities, and custom systems for NeoForge.
Please do not report issues from this mod to the original Origins developers.
✨ Features
Veil Origins is a massive expansion to the origins genre, introducing 28 unique playable origins, each with custom abilities, visual effects, and playstyles.
✅ 28 Unique Origins - Ranging from the blood-thirsty Vampire to the reality-bending Riftwalker.
✅ Active Ability System - Use [R] and [V] to trigger powerful active skills.
✅ Full Skill Trees - 22 skill trees with over 560 skills, tiers, branches, and ascended powers.
✅ Leveling & Prestige - Earn XP, level your origin, and prestige for permanent power.
✅ Drone Companions - Technomancers deploy allay-style drones that follow, fetch items, and defend you.
✅ Custom HUD & UI - Beautiful animated HUD with a built-in Config Screen (Press 'H').
✅ Vampire Blood System - Complete overhaul of hunger for Vampires with blood bars and bottles.
✅ Multiplayer Ready - Fully synchronized for servers and dedicated-server safe.
🎭 Available Origins
💀 High Impact
Drastic gameplay changes.
Origin
Description
Key Abilities
Vampire
The ultimate night predator. Replaces hunger with a Blood System.
Blood Drain, Bat Form, Vampiric Leap
Werewolf
Ruler of the moon. Buffed at night, eats raw meat.
Wolf Form, Howl
Necromancer
Master of the undead.
Raise Dead, Life Siphon
Veilborn
Walk between life and death.
Veil Step, Soul Harvest
Riftwalker
Dimensional traveler who bends space.
Dimensional Hop, Pocket Dimension
Umbrakin
Native to the shadows.
Shadow Meld, Darkness Bolt
Voidtouched
Corrupted by the void.
Void Tear, Reality Shift
Ethereal
Ghostly being phased between dimensions.
Phase Shift, Possession
Deepdweller
(NEW) Predator of the deep dark - mighty underground, frail in sunlight.
Tremor Pulse, Depths' Blessing
Blightborn
(NEW) Living host of rot - disease is your ally, fire and light purify.
## v1.1.0 - The Companion & Polish Update (2026-10-13)
### Added
#### New Origins (7) - 28 Total
- **Emberling** - Small fire-spirit origin with ember abilities
- **Stormborn** - Lightning and storm caller
- **Luminary** - Light-wielding radiant origin
- **Sandstalker** - Desert predator with sand-based abilities
- **Deepdweller** - Deep-dark dweller with ambush and warden-touched powers
- **Blightborn** - Corruption and disease origin
- **Hexweaver** - Curse and hex caster with mirror/amplify magic
#### Technomancer Drone Companions
- **Drone Controller item** - Deploy and command your personal drone squad
- Right-click air: deploy a drone of the selected type
- Sneak + right-click air: cycle drone type (utility, combat, scout, repair)
- Right-click a drone: cycle its mode (follow, stay, aggressive, harvest, patrol, passive)
- Sneak + right-click a drone: check its charge and mode
- Sneak + click a beacon or lodestone: mark a squad recharge station
- **Utility Drone** - Allay-style helper that follows you, orbits nearby, and fetches dropped items back to your feet
- **Combat Drone** - Ranged defender; guards an area in AGGRESSIVE mode
- **Scout Drone** - Fast, long-range flier; light bodyguard duty
- **Repair Drone** - Passive medic that restores nearby allied drones
- **Owner Defense System** - All combat-capable drones retaliate against whatever hurts you - hostile mobs AND other players - and assist against your targets
- **Charge System** - Drones drain charge while deployed and recharge near a marked beacon or lodestone station; low-charge drones return to their owner
- **Friendly-Fire Guard** - Drones can never attack you, your other drones, your tamed pets, or your companions
#### Skill Tree Enhancements
- **OR-prerequisites** - Skills can now require "any one of" a set of prerequisites (`requiresAny`)
- Skill tooltips show a "Requires one of:" line for OR-grouped prerequisites
#### Ability Dashboard
- **Locked ability indicators** - Skill-gated abilities now display a lock state so you can see what to unlock
- **Scrollable passives panel** - The passives list no longer clips at 6 entries; mouse-wheel scroll with a scrollbar and overflow hint
### Changed
- **Full localization** - All user-facing text moved into `en_us.json` (messages, tooltips, GUI labels, config names)
- **Drone deployment simplified** - Drones behave like allay-style companions: they follow, fetch, and defend - no port infrastructure required
### Fixed
#### Skill Tree Deadlocks (CURSEFORGE REPORTS)
- **Fixed 10 apex skills being permanently unreachable** - Convergent apexes required skills on BOTH sides of mutually-exclusive branches
- Affected apexes across starborne, tidecaller, voidtouched, crystalline, cindersoul, deepdweller, hexweaver and more
- Verified: 561 skills, 0 unreachable in every supported version
#### Summons & Companions
- **Fixed summoned minions and companions attacking their owner** - Target interception at the AI source; wild undead and minions can no longer acquire the owner as a target
- **Fixed Necromancer undead re-acquiring the player between sweep ticks** - `LivingChangeTargetEvent` interception
#### Origin Passives
- **Fixed Starborne flight not returning after death** - Passives are now re-equipped on respawn
#### UI
- **Fixed origin selection carousel overflowing the screen at GUI scale 4** - Cards now fit-scale to the window
- **Fixed ability dashboard overflow** - Passives panel now scrolls
#### Earlier Hotfixes Rolled In
- Dedicated-server classloading safety for client-only screens and handlers
- Per-player cooldown isolation (abilities no longer share cooldowns between players)
- Spore cloud behavior rewrite
- F-keybind firing the wrong ability
- Origin data sync on login/respawn/dimension change
- Riftwalker XP sources and dimension persistence
- Phantom insomnia for bed-blocking origins
- HUD scale option respected by all overlays
- Mojibake/encoding issues in displayed text
### Technical
- Added `AbstractDroneEntity` base with modes, charge, orbit-follow, friendly-target guard
- Added `UtilityDroneEntity`, `CombatDroneEntity`, `ScoutDroneEntity`, `RepairDroneEntity`
- Added drone AI goals: `DroneFollowOwnerGoal`, `DroneOwnerHurtByTargetGoal`, `DroneOwnerHurtTargetGoal`, `DroneAggressiveTargetGoal`, `DroneGuardGoal`, `DronePatrolGoal`, `DroneHarvestGoal`, `DronePickupItemGoal`, `DroneMoveToWaypointGoal`, `DroneHoverGoal`
- Added `DroneControllerItem` + `DroneAbility` for the Technomancer
- Added drone models and renderers with per-type textures
- Added `requiresAny` support to `Skill`/`SkillTreeData` and unlock evaluation
- Added locked/unlocked reconstruction of skill-gated abilities on the client
- `audit_tree_deadlocks.py` - structural analyzer proving 561/561 skills reachable per version
- All version branches verified green: 26.2, 1.21.11, 1.21.10, 1.21.1
## v1.1.0 - The Companion & Polish Update (2026-10-13)
### Added
#### New Origins (7) - 28 Total
- **Emberling** - Small fire-spirit origin with ember abilities
- **Stormborn** - Lightning and storm caller
- **Luminary** - Light-wielding radiant origin
- **Sandstalker** - Desert predator with sand-based abilities
- **Deepdweller** - Deep-dark dweller with ambush and warden-touched powers
- **Blightborn** - Corruption and disease origin
- **Hexweaver** - Curse and hex caster with mirror/amplify magic
#### Technomancer Drone Companions
- **Drone Controller item** - Deploy and command your personal drone squad
- Right-click air: deploy a drone of the selected type
- Sneak + right-click air: cycle drone type (utility, combat, scout, repair)
- Right-click a drone: cycle its mode (follow, stay, aggressive, harvest, patrol, passive)
- Sneak + right-click a drone: check its charge and mode
- Sneak + click a beacon or lodestone: mark a squad recharge station
- **Utility Drone** - Allay-style helper that follows you, orbits nearby, and fetches dropped items back to your feet
- **Combat Drone** - Ranged defender; guards an area in AGGRESSIVE mode
- **Scout Drone** - Fast, long-range flier; light bodyguard duty
- **Repair Drone** - Passive medic that restores nearby allied drones
- **Owner Defense System** - All combat-capable drones retaliate against whatever hurts you - hostile mobs AND other players - and assist against your targets
- **Charge System** - Drones drain charge while deployed and recharge near a marked beacon or lodestone station; low-charge drones return to their owner
- **Friendly-Fire Guard** - Drones can never attack you, your other drones, your tamed pets, or your companions
#### Skill Tree Enhancements
- **OR-prerequisites** - Skills can now require "any one of" a set of prerequisites (`requiresAny`)
- Skill tooltips show a "Requires one of:" line for OR-grouped prerequisites
#### Ability Dashboard
- **Locked ability indicators** - Skill-gated abilities now display a lock state so you can see what to unlock
- **Scrollable passives panel** - The passives list no longer clips at 6 entries; mouse-wheel scroll with a scrollbar and overflow hint
### Changed
- **Full localization** - All user-facing text moved into `en_us.json` (messages, tooltips, GUI labels, config names)
- **Drone deployment simplified** - Drones behave like allay-style companions: they follow, fetch, and defend - no port infrastructure required
### Fixed
#### Skill Tree Deadlocks (CURSEFORGE REPORTS)
- **Fixed 10 apex skills being permanently unreachable** - Convergent apexes required skills on BOTH sides of mutually-exclusive branches
- Affected apexes across starborne, tidecaller, voidtouched, crystalline, cindersoul, deepdweller, hexweaver and more
- Verified: 561 skills, 0 unreachable in every supported version
#### Summons & Companions
- **Fixed summoned minions and companions attacking their owner** - Target interception at the AI source; wild undead and minions can no longer acquire the owner as a target
- **Fixed Necromancer undead re-acquiring the player between sweep ticks** - `LivingChangeTargetEvent` interception
#### Origin Passives
- **Fixed Starborne flight not returning after death** - Passives are now re-equipped on respawn
#### UI
- **Fixed origin selection carousel overflowing the screen at GUI scale 4** - Cards now fit-scale to the window
- **Fixed ability dashboard overflow** - Passives panel now scrolls
#### Earlier Hotfixes Rolled In
- Dedicated-server classloading safety for client-only screens and handlers
- Per-player cooldown isolation (abilities no longer share cooldowns between players)
- Spore cloud behavior rewrite
- F-keybind firing the wrong ability
- Origin data sync on login/respawn/dimension change
- Riftwalker XP sources and dimension persistence
- Phantom insomnia for bed-blocking origins
- HUD scale option respected by all overlays
- Mojibake/encoding issues in displayed text
### Technical
- Added `AbstractDroneEntity` base with modes, charge, orbit-follow, friendly-target guard
- Added `UtilityDroneEntity`, `CombatDroneEntity`, `ScoutDroneEntity`, `RepairDroneEntity`
- Added drone AI goals: `DroneFollowOwnerGoal`, `DroneOwnerHurtByTargetGoal`, `DroneOwnerHurtTargetGoal`, `DroneAggressiveTargetGoal`, `DroneGuardGoal`, `DronePatrolGoal`, `DroneHarvestGoal`, `DronePickupItemGoal`, `DroneMoveToWaypointGoal`, `DroneHoverGoal`
- Added `DroneControllerItem` + `DroneAbility` for the Technomancer
- Added drone models and renderers with per-type textures
- Added `requiresAny` support to `Skill`/`SkillTreeData` and unlock evaluation
- Added locked/unlocked reconstruction of skill-gated abilities on the client
- `audit_tree_deadlocks.py` - structural analyzer proving 561/561 skills reachable per version
- All version branches verified green: 26.2, 1.21.11, 1.21.10, 1.21.1
## v1.1.0 - The Companion & Polish Update (2026-10-13)
### Added
#### New Origins (7) - 28 Total
- **Emberling** - Small fire-spirit origin with ember abilities
- **Stormborn** - Lightning and storm caller
- **Luminary** - Light-wielding radiant origin
- **Sandstalker** - Desert predator with sand-based abilities
- **Deepdweller** - Deep-dark dweller with ambush and warden-touched powers
- **Blightborn** - Corruption and disease origin
- **Hexweaver** - Curse and hex caster with mirror/amplify magic
#### Technomancer Drone Companions
- **Drone Controller item** - Deploy and command your personal drone squad
- Right-click air: deploy a drone of the selected type
- Sneak + right-click air: cycle drone type (utility, combat, scout, repair)
- Right-click a drone: cycle its mode (follow, stay, aggressive, harvest, patrol, passive)
- Sneak + right-click a drone: check its charge and mode
- Sneak + click a beacon or lodestone: mark a squad recharge station
- **Utility Drone** - Allay-style helper that follows you, orbits nearby, and fetches dropped items back to your feet
- **Combat Drone** - Ranged defender; guards an area in AGGRESSIVE mode
- **Scout Drone** - Fast, long-range flier; light bodyguard duty
- **Repair Drone** - Passive medic that restores nearby allied drones
- **Owner Defense System** - All combat-capable drones retaliate against whatever hurts you - hostile mobs AND other players - and assist against your targets
- **Charge System** - Drones drain charge while deployed and recharge near a marked beacon or lodestone station; low-charge drones return to their owner
- **Friendly-Fire Guard** - Drones can never attack you, your other drones, your tamed pets, or your companions
#### Skill Tree Enhancements
- **OR-prerequisites** - Skills can now require "any one of" a set of prerequisites (`requiresAny`)
- Skill tooltips show a "Requires one of:" line for OR-grouped prerequisites
#### Ability Dashboard
- **Locked ability indicators** - Skill-gated abilities now display a lock state so you can see what to unlock
- **Scrollable passives panel** - The passives list no longer clips at 6 entries; mouse-wheel scroll with a scrollbar and overflow hint
### Changed
- **Full localization** - All user-facing text moved into `en_us.json` (messages, tooltips, GUI labels, config names)
- **Drone deployment simplified** - Drones behave like allay-style companions: they follow, fetch, and defend - no port infrastructure required
### Fixed
#### Skill Tree Deadlocks (CURSEFORGE REPORTS)
- **Fixed 10 apex skills being permanently unreachable** - Convergent apexes required skills on BOTH sides of mutually-exclusive branches
- Affected apexes across starborne, tidecaller, voidtouched, crystalline, cindersoul, deepdweller, hexweaver and more
- Verified: 561 skills, 0 unreachable in every supported version
#### Summons & Companions
- **Fixed summoned minions and companions attacking their owner** - Target interception at the AI source; wild undead and minions can no longer acquire the owner as a target
- **Fixed Necromancer undead re-acquiring the player between sweep ticks** - `LivingChangeTargetEvent` interception
#### Origin Passives
- **Fixed Starborne flight not returning after death** - Passives are now re-equipped on respawn
#### UI
- **Fixed origin selection carousel overflowing the screen at GUI scale 4** - Cards now fit-scale to the window
- **Fixed ability dashboard overflow** - Passives panel now scrolls
#### Earlier Hotfixes Rolled In
- Dedicated-server classloading safety for client-only screens and handlers
- Per-player cooldown isolation (abilities no longer share cooldowns between players)
- Spore cloud behavior rewrite
- F-keybind firing the wrong ability
- Origin data sync on login/respawn/dimension change
- Riftwalker XP sources and dimension persistence
- Phantom insomnia for bed-blocking origins
- HUD scale option respected by all overlays
- Mojibake/encoding issues in displayed text
### Technical
- Added `AbstractDroneEntity` base with modes, charge, orbit-follow, friendly-target guard
- Added `UtilityDroneEntity`, `CombatDroneEntity`, `ScoutDroneEntity`, `RepairDroneEntity`
- Added drone AI goals: `DroneFollowOwnerGoal`, `DroneOwnerHurtByTargetGoal`, `DroneOwnerHurtTargetGoal`, `DroneAggressiveTargetGoal`, `DroneGuardGoal`, `DronePatrolGoal`, `DroneHarvestGoal`, `DronePickupItemGoal`, `DroneMoveToWaypointGoal`, `DroneHoverGoal`
- Added `DroneControllerItem` + `DroneAbility` for the Technomancer
- Added drone models and renderers with per-type textures
- Added `requiresAny` support to `Skill`/`SkillTreeData` and unlock evaluation
- Added locked/unlocked reconstruction of skill-gated abilities on the client
- `audit_tree_deadlocks.py` - structural analyzer proving 561/561 skills reachable per version
- All version branches verified green: 26.2, 1.21.11, 1.21.10, 1.21.1
## v1.1.0 - The Companion & Polish Update (2026-10-13)
### Added
#### New Origins (7) - 28 Total
- **Emberling** - Small fire-spirit origin with ember abilities
- **Stormborn** - Lightning and storm caller
- **Luminary** - Light-wielding radiant origin
- **Sandstalker** - Desert predator with sand-based abilities
- **Deepdweller** - Deep-dark dweller with ambush and warden-touched powers
- **Blightborn** - Corruption and disease origin
- **Hexweaver** - Curse and hex caster with mirror/amplify magic
#### Technomancer Drone Companions
- **Drone Controller item** - Deploy and command your personal drone squad
- Right-click air: deploy a drone of the selected type
- Sneak + right-click air: cycle drone type (utility, combat, scout, repair)
- Right-click a drone: cycle its mode (follow, stay, aggressive, harvest, patrol, passive)
- Sneak + right-click a drone: check its charge and mode
- Sneak + click a beacon or lodestone: mark a squad recharge station
- **Utility Drone** - Allay-style helper that follows you, orbits nearby, and fetches dropped items back to your feet
- **Combat Drone** - Ranged defender; guards an area in AGGRESSIVE mode
- **Scout Drone** - Fast, long-range flier; light bodyguard duty
- **Repair Drone** - Passive medic that restores nearby allied drones
- **Owner Defense System** - All combat-capable drones retaliate against whatever hurts you - hostile mobs AND other players - and assist against your targets
- **Charge System** - Drones drain charge while deployed and recharge near a marked beacon or lodestone station; low-charge drones return to their owner
- **Friendly-Fire Guard** - Drones can never attack you, your other drones, your tamed pets, or your companions
#### Skill Tree Enhancements
- **OR-prerequisites** - Skills can now require "any one of" a set of prerequisites (`requiresAny`)
- Skill tooltips show a "Requires one of:" line for OR-grouped prerequisites
#### Ability Dashboard
- **Locked ability indicators** - Skill-gated abilities now display a lock state so you can see what to unlock
- **Scrollable passives panel** - The passives list no longer clips at 6 entries; mouse-wheel scroll with a scrollbar and overflow hint
### Changed
- **Full localization** - All user-facing text moved into `en_us.json` (messages, tooltips, GUI labels, config names)
- **Drone deployment simplified** - Drones behave like allay-style companions: they follow, fetch, and defend - no port infrastructure required
### Fixed
#### Skill Tree Deadlocks (CURSEFORGE REPORTS)
- **Fixed 10 apex skills being permanently unreachable** - Convergent apexes required skills on BOTH sides of mutually-exclusive branches
- Affected apexes across starborne, tidecaller, voidtouched, crystalline, cindersoul, deepdweller, hexweaver and more
- Verified: 561 skills, 0 unreachable in every supported version
#### Summons & Companions
- **Fixed summoned minions and companions attacking their owner** - Target interception at the AI source; wild undead and minions can no longer acquire the owner as a target
- **Fixed Necromancer undead re-acquiring the player between sweep ticks** - `LivingChangeTargetEvent` interception
#### Origin Passives
- **Fixed Starborne flight not returning after death** - Passives are now re-equipped on respawn
#### UI
- **Fixed origin selection carousel overflowing the screen at GUI scale 4** - Cards now fit-scale to the window
- **Fixed ability dashboard overflow** - Passives panel now scrolls
#### Earlier Hotfixes Rolled In
- Dedicated-server classloading safety for client-only screens and handlers
- Per-player cooldown isolation (abilities no longer share cooldowns between players)
- Spore cloud behavior rewrite
- F-keybind firing the wrong ability
- Origin data sync on login/respawn/dimension change
- Riftwalker XP sources and dimension persistence
- Phantom insomnia for bed-blocking origins
- HUD scale option respected by all overlays
- Mojibake/encoding issues in displayed text
### Technical
- Added `AbstractDroneEntity` base with modes, charge, orbit-follow, friendly-target guard
- Added `UtilityDroneEntity`, `CombatDroneEntity`, `ScoutDroneEntity`, `RepairDroneEntity`
- Added drone AI goals: `DroneFollowOwnerGoal`, `DroneOwnerHurtByTargetGoal`, `DroneOwnerHurtTargetGoal`, `DroneAggressiveTargetGoal`, `DroneGuardGoal`, `DronePatrolGoal`, `DroneHarvestGoal`, `DronePickupItemGoal`, `DroneMoveToWaypointGoal`, `DroneHoverGoal`
- Added `DroneControllerItem` + `DroneAbility` for the Technomancer
- Added drone models and renderers with per-type textures
- Added `requiresAny` support to `Skill`/`SkillTreeData` and unlock evaluation
- Added locked/unlocked reconstruction of skill-gated abilities on the client
- `audit_tree_deadlocks.py` - structural analyzer proving 561/561 skills reachable per version
- All version branches verified green: 26.2, 1.21.11, 1.21.10, 1.21.1
## v1.0.6 - The Enhancement Update (2026-01-23)
### Added
#### Origin Toggle Configuration System (INS-9)
- **Server-side origin enable/disable system** - Server owners can now control which origins are available
- Configuration file: `origins-config.txt` in server root directory
- Auto-generated on first server startup with all origins enabled by default
- Simple boolean format: `origin_name=true` or `origin_name=false`
- Covers all origins: base mod, official DLC, UGC DLC, sub-mods, and extension mods
- Origins identified by internal name to ensure uniqueness across all mods
- No client-side modifications required
- Disabled origins won't appear in origin selection screen
#### Skill-Enhanced Abilities (INS-5)
- **Mycomorph - Fungal Network GUI** - Waystones-style teleportation system
- Visual network map showing all fungal nodes
- Labeled nodes with custom names
- Click to teleport between connected nodes
- Unlocked via skill tree progression
- **Werewolf - Wolf Pack Ability** - Summon wolf companions
- Enhanced by perma_wolf, feral, and berserker skills
- Wolves fight alongside you and follow commands
- Skill tree unlocks increase pack size and wolf strength
- **Vampire - Enhanced Bat Form** - Improved transformation
- Mist form skill adds phase-through-walls capability
- Nosferatu skill enhances bat speed and damage
- Additional skill bonuses for stealth and lifesteal
- **Technomancer - Drone Summons** - Deploy combat drones
- Turret mode for stationary defense
- Drone army skill increases max drone count
- Drones attack enemies and defend the player
- **Umbrakin - Shadow Step** - Teleportation ability
- Short-range teleport with stealth bonuses
- Enhanced by shadow skills for longer range
- Leaves shadow trail effect
- **Riftwalker - Enhanced Dimensional Hop** - Improved teleportation
- Blink skill reduces cooldown
- Teleport skill increases range
- Dimensional mastery adds invulnerability frames
- **Necromancer - Enhanced Raise Dead** - Improved undead summoning
- Undead mastery skill increases minion count
- Death army skill adds skeleton archers
- Minions persist longer and deal more damage
### Changed
#### Skill System Architecture (INS-5)
- **Unified skill effect system** - Skills now properly modify abilities at runtime
- `SkillEffectHandler.hasSpecialEffect(player, "effect_id")` checks for active skill effects
- `SkillEffectHandler.getCooldownReduction(player)` calculates total cooldown bonuses
- Origin abilities check for skill effects and modify behavior accordingly
- Skill tooltips now show activation hints and requirements
### Fixed
#### Skill Tree Functionality (INS-5)
- **Fixed skills not applying to abilities** - Skills now properly enhance and modify origin abilities
- Root cause: Abilities weren't checking for unlocked skills at runtime
- Added skill effect checks to all ability activation code
- Skills now unlock new features, improve stats, and add special effects
- Properly syncs skill effects between server and client
### Technical
- Added `FungalNetworkScreen.java` - GUI for Mycomorph teleportation network
- Added `FungalTeleportPacket.java` - Network packet for fungal node teleportation
- Added `WolfPackAbility.java` - Werewolf wolf summoning ability
- Added `DroneAbility.java` - Technomancer drone deployment system
- Added `ShadowStepAbility.java` - Umbrakin teleportation ability
- Updated multiple ability files with skill effect checks
- Enhanced `SkillTreeScreen.java` with activation hints in tooltips
- Added `SKILL_ABILITY_ENHANCEMENT.md` documentation
- Registered new abilities in origin definitions
- Implemented packet handlers for new network messages
## v1.0.6 - The Enhancement Update (2026-01-23)
### Added
#### Origin Toggle Configuration System (INS-9)
- **Server-side origin enable/disable system** - Server owners can now control which origins are available
- Configuration file: `origins-config.txt` in server root directory
- Auto-generated on first server startup with all origins enabled by default
- Simple boolean format: `origin_name=true` or `origin_name=false`
- Covers all origins: base mod, official DLC, UGC DLC, sub-mods, and extension mods
- Origins identified by internal name to ensure uniqueness across all mods
- No client-side modifications required
- Disabled origins won't appear in origin selection screen
#### Skill-Enhanced Abilities (INS-5)
- **Mycomorph - Fungal Network GUI** - Waystones-style teleportation system
- Visual network map showing all fungal nodes
- Labeled nodes with custom names
- Click to teleport between connected nodes
- Unlocked via skill tree progression
- **Werewolf - Wolf Pack Ability** - Summon wolf companions
- Enhanced by perma_wolf, feral, and berserker skills
- Wolves fight alongside you and follow commands
- Skill tree unlocks increase pack size and wolf strength
- **Vampire - Enhanced Bat Form** - Improved transformation
- Mist form skill adds phase-through-walls capability
- Nosferatu skill enhances bat speed and damage
- Additional skill bonuses for stealth and lifesteal
- **Technomancer - Drone Summons** - Deploy combat drones
- Turret mode for stationary defense
- Drone army skill increases max drone count
- Drones attack enemies and defend the player
- **Umbrakin - Shadow Step** - Teleportation ability
- Short-range teleport with stealth bonuses
- Enhanced by shadow skills for longer range
- Leaves shadow trail effect
- **Riftwalker - Enhanced Dimensional Hop** - Improved teleportation
- Blink skill reduces cooldown
- Teleport skill increases range
- Dimensional mastery adds invulnerability frames
- **Necromancer - Enhanced Raise Dead** - Improved undead summoning
- Undead mastery skill increases minion count
- Death army skill adds skeleton archers
- Minions persist longer and deal more damage
### Changed
#### Skill System Architecture (INS-5)
- **Unified skill effect system** - Skills now properly modify abilities at runtime
- `SkillEffectHandler.hasSpecialEffect(player, "effect_id")` checks for active skill effects
- `SkillEffectHandler.getCooldownReduction(player)` calculates total cooldown bonuses
- Origin abilities check for skill effects and modify behavior accordingly
- Skill tooltips now show activation hints and requirements
### Fixed
#### Skill Tree Functionality (INS-5)
- **Fixed skills not applying to abilities** - Skills now properly enhance and modify origin abilities
- Root cause: Abilities weren't checking for unlocked skills at runtime
- Added skill effect checks to all ability activation code
- Skills now unlock new features, improve stats, and add special effects
- Properly syncs skill effects between server and client
### Technical
- Added `FungalNetworkScreen.java` - GUI for Mycomorph teleportation network
- Added `FungalTeleportPacket.java` - Network packet for fungal node teleportation
- Added `WolfPackAbility.java` - Werewolf wolf summoning ability
- Added `DroneAbility.java` - Technomancer drone deployment system
- Added `ShadowStepAbility.java` - Umbrakin teleportation ability
- Updated multiple ability files with skill effect checks
- Enhanced `SkillTreeScreen.java` with activation hints in tooltips
- Added `SKILL_ABILITY_ENHANCEMENT.md` documentation
- Registered new abilities in origin definitions
- Implemented packet handlers for new network messages
## v1.0.6 - The Enhancement Update (2026-01-23)
### Added
#### Origin Toggle Configuration System (INS-9)
- **Server-side origin enable/disable system** - Server owners can now control which origins are available
- Configuration file: `origins-config.txt` in server root directory
- Auto-generated on first server startup with all origins enabled by default
- Simple boolean format: `origin_name=true` or `origin_name=false`
- Covers all origins: base mod, official DLC, UGC DLC, sub-mods, and extension mods
- Origins identified by internal name to ensure uniqueness across all mods
- No client-side modifications required
- Disabled origins won't appear in origin selection screen
#### Skill-Enhanced Abilities (INS-5)
- **Mycomorph - Fungal Network GUI** - Waystones-style teleportation system
- Visual network map showing all fungal nodes
- Labeled nodes with custom names
- Click to teleport between connected nodes
- Unlocked via skill tree progression
- **Werewolf - Wolf Pack Ability** - Summon wolf companions
- Enhanced by perma_wolf, feral, and berserker skills
- Wolves fight alongside you and follow commands
- Skill tree unlocks increase pack size and wolf strength
- **Vampire - Enhanced Bat Form** - Improved transformation
- Mist form skill adds phase-through-walls capability
- Nosferatu skill enhances bat speed and damage
- Additional skill bonuses for stealth and lifesteal
- **Technomancer - Drone Summons** - Deploy combat drones
- Turret mode for stationary defense
- Drone army skill increases max drone count
- Drones attack enemies and defend the player
- **Umbrakin - Shadow Step** - Teleportation ability
- Short-range teleport with stealth bonuses
- Enhanced by shadow skills for longer range
- Leaves shadow trail effect
- **Riftwalker - Enhanced Dimensional Hop** - Improved teleportation
- Blink skill reduces cooldown
- Teleport skill increases range
- Dimensional mastery adds invulnerability frames
- **Necromancer - Enhanced Raise Dead** - Improved undead summoning
- Undead mastery skill increases minion count
- Death army skill adds skeleton archers
- Minions persist longer and deal more damage
### Changed
#### Skill System Architecture (INS-5)
- **Unified skill effect system** - Skills now properly modify abilities at runtime
- `SkillEffectHandler.hasSpecialEffect(player, "effect_id")` checks for active skill effects
- `SkillEffectHandler.getCooldownReduction(player)` calculates total cooldown bonuses
- Origin abilities check for skill effects and modify behavior accordingly
- Skill tooltips now show activation hints and requirements
### Fixed
#### Skill Tree Functionality (INS-5)
- **Fixed skills not applying to abilities** - Skills now properly enhance and modify origin abilities
- Root cause: Abilities weren't checking for unlocked skills at runtime
- Added skill effect checks to all ability activation code
- Skills now unlock new features, improve stats, and add special effects
- Properly syncs skill effects between server and client
### Technical
- Added `FungalNetworkScreen.java` - GUI for Mycomorph teleportation network
- Added `FungalTeleportPacket.java` - Network packet for fungal node teleportation
- Added `WolfPackAbility.java` - Werewolf wolf summoning ability
- Added `DroneAbility.java` - Technomancer drone deployment system
- Added `ShadowStepAbility.java` - Umbrakin teleportation ability
- Updated multiple ability files with skill effect checks
- Enhanced `SkillTreeScreen.java` with activation hints in tooltips
- Added `SKILL_ABILITY_ENHANCEMENT.md` documentation
- Registered new abilities in origin definitions
- Implemented packet handlers for new network messages
## v1.0.5 - The Progression Update (2026-01-06)
### Added
#### New Origin Selection Screen - Card Carousel
- **Replaced radial menu with card carousel** for origin selection
- 8 origin cards displayed in horizontal carousel with smooth scrolling
- Cards scale based on distance from center (3D depth effect)
- Each card shows: origin name, impact level (stars), description, abilities, passives
- Color-coded accent bars based on origin theme
- Navigation: arrow keys, mouse scroll, click arrows, or click cards directly
- Shuffle button (R key) to get new random origin options
- Smooth animations and hover effects
#### New Ability Dashboard
- **Completely redesigned ability menu** with comprehensive origin information
- **Three-column layout:**
- **Left Column - Origin Info & Stats:**
- Origin name with theme color accent
- Impact level with stars (★☆☆, ★★☆, ★★★)
- Full description (word-wrapped)
- Resource bar with origin-specific name (Blood, Rage, Soul Energy, Heat, etc.)
- Stat modifiers display (Health, Speed, Damage) with +/- percentages
- **Center Column - Abilities:**
- Detailed ability slots with icon, keybind badge, name
- Description and stats (cost, cooldown)
- Status indicator (READY in green, countdown in red)
- Color-coded accent bar showing ability state
- Hover highlighting with origin theme color
- **Right Column - Passives & Progression:**
- List of passive abilities with thematic icons
- Level display
- XP progress bar with current/needed values
- Skill points available
- Unlocked skills count
- Press [T] from ability menu to jump directly to skill tree
- Smooth open animation
#### Complete Skill Tree System
- **22 Unique Skill Trees** - Each origin has a detailed skill tree with 25-35 skills
- Tiered progression (Tier 1-5) with level requirements
- Mutually exclusive branches for meaningful choices
- Synergy skills that require multiple paths
- Forbidden skills with powerful effects but drawbacks
- Ascended skills that transcend origin weaknesses
- **Skill Tree GUI** - Press the skill tree keybind to open
- Zoomable and pannable tree view
- Color-coded branches (Offense, Defense, Utility, Elemental, etc.)
- Visual indicators for unlocked, available, and locked skills
- Detailed tooltips with effects, requirements, and exclusions
- Click to unlock skills with skill points
- **Skill Effects System** - Skills now apply real gameplay effects
- Attribute modifiers (health, armor, speed, damage, attack speed)
- Special effects (lifesteal, stealth damage, summons, etc.)
- Resource modifiers (regen rate, max resource)
- Cooldown reduction bonuses
- Damage type bonuses and resistances
#### Complete Progression System
- **Origin Leveling (1-50)** - Gain XP through combat, exploration, and origin-themed activities
- XP scales exponentially with level
- Each level grants +1 Skill Point
- Milestone rewards at levels 10, 25, and 50
- Level 10: 10% cooldown reduction
- Level 25: 15% ability power increase
- Level 50: Unlocks Legendary Ability and Hybrid Mode
- **Prestige System (0-10)** - Reset to level 1 with permanent bonuses after reaching level 50
- Each prestige grants +5% to all origin stats permanently
- Cosmetic aura changes with prestige level
- +10% XP gain bonus per prestige level
- Maximum 10 prestiges per origin
- **Skill Points** - Earned on level up, used for skill tree talents
- 1 skill point per level (50 total before prestige)
- Persists across sessions and server restarts
#### Legendary Abilities
- **Ultimate powers unlocked at Level 50** - Activated by holding R + Attack
- Each origin has a unique legendary ability with powerful effects:
- **Veilborn - Veil Mastery**: Become invulnerable and drain life from all nearby enemies
- **Vampire - Blood Moon Rising**: Transform into a bat swarm, draining all nearby creatures
- **Werewolf - Alpha's Fury**: Summon a wolf pack and unleash a devastating howl
- **Stoneheart - Mountain's Wrath**: Create a massive earthquake, becoming invulnerable
- **Frostborn - Absolute Zero**: Freeze everything in a massive radius
- **Cindersoul - Volcanic Eruption**: Rain fire and destruction on enemies
- **Tidecaller - Tsunami**: Summon a devastating tidal wave
- **Starborne - Supernova**: Explode with stellar energy, blinding and damaging all
- **Skyborn - Eye of the Storm**: Become the center of a devastating tornado
- **Umbrakin - Eternal Night**: Plunge the area into darkness, becoming invisible and deadly
- **Riftwalker - Dimensional Collapse**: Tear reality apart, scattering enemies
- **Voidtouched - Void Singularity**: Create a black hole that pulls and destroys
- **Mycomorph - Fungal Apocalypse**: Release devastating spores that infect all enemies
- **Crystalline - Prismatic Burst**: Release stored crystal energy in an explosion
- **Technomancer - System Overload**: Overclock all systems with an EMP blast
- **Ethereal - Spectral Dominion**: Become fully ethereal and terrify enemies
- **Dryad - Nature's Wrath**: Summon nature's fury to heal allies and punish enemies
- **Necromancer - Army of the Dead**: Raise a massive undead army
- **Vampling - Blood Frenzy**: Enter a blood frenzy with speed and lifesteal
- **Wolfling - Pack Leader**: Summon wolves and gain pack bonuses
#### Origin Hybrid System
- **Combine two origins at Level 50** - Activate via command or future GUI
- Duration: 300 seconds (5 minutes)
- Cooldown: 1 hour after deactivation
- Combines first ability and first passive from each origin
- Warning messages at 60s, 30s, 10s, and 5s remaining
- Cannot hybrid with the same origin
#### Passive XP Gains
- Origins now gain XP passively based on themed activities:
- Cindersoul: XP in the Nether
- Tidecaller: XP while in water
- Starborne: XP in sunlight during day
- Umbrakin: XP at night or in darkness
- Frostborn: XP in cold biomes
- Skyborn: XP at high altitude (Y > 150)
- Stoneheart: XP underground (Y < 50)
- Dryad: XP during photosynthesis (sunlight)
- Werewolf/Wolfling: XP at night
- Vampire/Vampling: XP at night
#### New Admin Commands
- `/veilorigins setlevel <player> <1-50>` - Set player's origin level
- `/veilorigins addxp <player> <amount>` - Add XP to player
- `/veilorigins setprestige <player> <0-10>` - Set prestige level
- `/veilorigins addskillpoints <player> <amount>` - Add skill points
- `/veilorigins info <player>` - Show detailed progression info
- `/veilorigins hybrid activate <player> <origin>` - Force activate hybrid mode
- `/veilorigins hybrid deactivate <player>` - Force deactivate hybrid mode
### Fixed
#### UI Blur Rendering Issue
- **Fixed blur rendering over UI elements** in Minecraft 1.21.11
- Default `renderBackground()` adds blur effect that was rendering ON TOP of custom UI
- Added `renderBackground()` override to all custom screens to prevent blur
- Affected screens: SkillTreeScreen, OriginCardCarouselScreen, AbilityBarScreen, RadialMenuScreen, HudConfigScreen
#### Dedicated Server Crash - NoClassDefFoundError: LocalPlayer
- **Fixed server crash when players join dedicated servers**
- Root cause: Client-only class `LocalPlayer` was referenced in network packet handlers
- Created `ClientPacketSender.java` to isolate client-side packet sending code
- Created `SyncOriginDataPacketHandler.java` for client-side packet handling
- Server now properly handles all network packets without client class references
#### "Modifier is already applied" Error on Respawn
- **Fixed crash when players respawn after dying**
- Root cause: Player entity is replaced on respawn, but UUID stays the same
- Changed `PLAYER_ORIGINS` cache from `Map<Player, Origin>` to `Map<UUID, Origin>`
- Updated all passive classes to remove modifiers before adding (prevents duplicates)
- Added `.copyOnDeath()` to attachment type to preserve data across respawns
#### Ethereal Possession Ability
- **Fixed possession not working correctly**
- Rewrote possession so mob follows player (not player teleporting to mob)
- Player moves normally with WASD, possessed mob syncs to player position
- Player gets invisibility effect while possessing
- Fixed mob AI restoration after possession ends
- Properly clears targets, recomputes navigation, gives movement impulse to "wake up" mob
#### HUD Sync and Data Bleeding
- **Fixed HUD not syncing level, XP, resource bar, cooldowns on dedicated server**
- Created `ClientOriginData.java` for client-side cache of synced data
- Sync interval changed from 20 ticks to 5 ticks (4x faster updates)
- Now tracks and syncs level/XP changes immediately
- **Fixed data bleeding between servers/worlds**
- Added `ClientOriginData.clear()` and `ClientPossessionHandler.clear()` on login AND logout
- Added `VeilOriginsAPI.clearClientCache()` to clear origin cache when switching servers
- Client now properly clears all cached data before receiving new server data
#### Skill Tree Persistence and Functionality
- **Fixed skills not saving/syncing on dedicated servers**
- Added `unlockedSkills` field to `SyncOriginDataPacket` (comma-separated string)
- Skills now persist in world data via player data attachments
- Skills sync from server to client on login, respawn, and skill unlock
- **Fixed "Skill not found" warnings on dedicated server**
- Root cause: `SkillTrees.initialize()` was called in `commonSetup` which runs asynchronously
- Moved initialization to mod constructor to ensure trees are ready before players join
- Added `synchronized` guard and logging to prevent double-initialization
- **Fixed skills not applying actual effects**
- Unified skill system to use `SkillTrees.java` (detailed skills with effects)
- `SkillEffectHandler` now properly applies attribute modifiers from skill definitions
- Skills apply health, armor, speed, damage, attack speed, and special effects
### Technical
- Added `SkillTrees.java` - Registry of 22 detailed skill trees with 25-35 skills each
- Added `SkillTreeData.java` - Data structure for skill tree with connections
- Added `Skill.java` - Skill node with tiers, branches, prerequisites, exclusions, effects
- Added `SkillEffect.java` - Effect definitions (attribute modifiers, special effects)
- Added `SkillEffectHandler.java` - Applies/removes skill effects to players
- Added `SkillTreeScreen.java` - Interactive GUI for viewing and unlocking skills
- Added `ClientOriginData.java` - Client-side cache for synced origin data
- Added `ClientPacketSender.java` - Client-side packet sending isolation
- Added `SyncOriginDataPacketHandler.java` - Client-side sync packet handling
- Updated `UnlockSkillPacket.java` - Uses `SkillTrees` for skill lookup and validation
- Updated `SyncOriginDataPacket.java` - Added `unlockedSkills` field
- Updated `OriginEventHandler.java` - Uses `SkillEffectHandler` for skill effects
- Updated `VeilOriginsAPI.java` - Added `clearClientCache()` method
- Updated `ClientEventHandler.java` - Clears all caches on login/logout
## v1.0.5 - The Progression Update (2026-01-06)
### Added
#### New Origin Selection Screen - Card Carousel
- **Replaced radial menu with card carousel** for origin selection
- 8 origin cards displayed in horizontal carousel with smooth scrolling
- Cards scale based on distance from center (3D depth effect)
- Each card shows: origin name, impact level (stars), description, abilities, passives
- Color-coded accent bars based on origin theme
- Navigation: arrow keys, mouse scroll, click arrows, or click cards directly
- Shuffle button (R key) to get new random origin options
- Smooth animations and hover effects
#### New Ability Dashboard
- **Completely redesigned ability menu** with comprehensive origin information
- **Three-column layout:**
- **Left Column - Origin Info & Stats:**
- Origin name with theme color accent
- Impact level with stars (★☆☆, ★★☆, ★★★)
- Full description (word-wrapped)
- Resource bar with origin-specific name (Blood, Rage, Soul Energy, Heat, etc.)
- Stat modifiers display (Health, Speed, Damage) with +/- percentages
- **Center Column - Abilities:**
- Detailed ability slots with icon, keybind badge, name
- Description and stats (cost, cooldown)
- Status indicator (READY in green, countdown in red)
- Color-coded accent bar showing ability state
- Hover highlighting with origin theme color
- **Right Column - Passives & Progression:**
- List of passive abilities with thematic icons
- Level display
- XP progress bar with current/needed values
- Skill points available
- Unlocked skills count
- Press [T] from ability menu to jump directly to skill tree
- Smooth open animation
#### Complete Skill Tree System
- **22 Unique Skill Trees** - Each origin has a detailed skill tree with 25-35 skills
- Tiered progression (Tier 1-5) with level requirements
- Mutually exclusive branches for meaningful choices
- Synergy skills that require multiple paths
- Forbidden skills with powerful effects but drawbacks
- Ascended skills that transcend origin weaknesses
- **Skill Tree GUI** - Press the skill tree keybind to open
- Zoomable and pannable tree view
- Color-coded branches (Offense, Defense, Utility, Elemental, etc.)
- Visual indicators for unlocked, available, and locked skills
- Detailed tooltips with effects, requirements, and exclusions
- Click to unlock skills with skill points
- **Skill Effects System** - Skills now apply real gameplay effects
- Attribute modifiers (health, armor, speed, damage, attack speed)
- Special effects (lifesteal, stealth damage, summons, etc.)
- Resource modifiers (regen rate, max resource)
- Cooldown reduction bonuses
- Damage type bonuses and resistances
#### Complete Progression System
- **Origin Leveling (1-50)** - Gain XP through combat, exploration, and origin-themed activities
- XP scales exponentially with level
- Each level grants +1 Skill Point
- Milestone rewards at levels 10, 25, and 50
- Level 10: 10% cooldown reduction
- Level 25: 15% ability power increase
- Level 50: Unlocks Legendary Ability and Hybrid Mode
- **Prestige System (0-10)** - Reset to level 1 with permanent bonuses after reaching level 50
- Each prestige grants +5% to all origin stats permanently
- Cosmetic aura changes with prestige level
- +10% XP gain bonus per prestige level
- Maximum 10 prestiges per origin
- **Skill Points** - Earned on level up, used for skill tree talents
- 1 skill point per level (50 total before prestige)
- Persists across sessions and server restarts
#### Legendary Abilities
- **Ultimate powers unlocked at Level 50** - Activated by holding R + Attack
- Each origin has a unique legendary ability with powerful effects:
- **Veilborn - Veil Mastery**: Become invulnerable and drain life from all nearby enemies
- **Vampire - Blood Moon Rising**: Transform into a bat swarm, draining all nearby creatures
- **Werewolf - Alpha's Fury**: Summon a wolf pack and unleash a devastating howl
- **Stoneheart - Mountain's Wrath**: Create a massive earthquake, becoming invulnerable
- **Frostborn - Absolute Zero**: Freeze everything in a massive radius
- **Cindersoul - Volcanic Eruption**: Rain fire and destruction on enemies
- **Tidecaller - Tsunami**: Summon a devastating tidal wave
- **Starborne - Supernova**: Explode with stellar energy, blinding and damaging all
- **Skyborn - Eye of the Storm**: Become the center of a devastating tornado
- **Umbrakin - Eternal Night**: Plunge the area into darkness, becoming invisible and deadly
- **Riftwalker - Dimensional Collapse**: Tear reality apart, scattering enemies
- **Voidtouched - Void Singularity**: Create a black hole that pulls and destroys
- **Mycomorph - Fungal Apocalypse**: Release devastating spores that infect all enemies
- **Crystalline - Prismatic Burst**: Release stored crystal energy in an explosion
- **Technomancer - System Overload**: Overclock all systems with an EMP blast
- **Ethereal - Spectral Dominion**: Become fully ethereal and terrify enemies
- **Dryad - Nature's Wrath**: Summon nature's fury to heal allies and punish enemies
- **Necromancer - Army of the Dead**: Raise a massive undead army
- **Vampling - Blood Frenzy**: Enter a blood frenzy with speed and lifesteal
- **Wolfling - Pack Leader**: Summon wolves and gain pack bonuses
#### Origin Hybrid System
- **Combine two origins at Level 50** - Activate via command or future GUI
- Duration: 300 seconds (5 minutes)
- Cooldown: 1 hour after deactivation
- Combines first ability and first passive from each origin
- Warning messages at 60s, 30s, 10s, and 5s remaining
- Cannot hybrid with the same origin
#### Passive XP Gains
- Origins now gain XP passively based on themed activities:
- Cindersoul: XP in the Nether
- Tidecaller: XP while in water
- Starborne: XP in sunlight during day
- Umbrakin: XP at night or in darkness
- Frostborn: XP in cold biomes
- Skyborn: XP at high altitude (Y > 150)
- Stoneheart: XP underground (Y < 50)
- Dryad: XP during photosynthesis (sunlight)
- Werewolf/Wolfling: XP at night
- Vampire/Vampling: XP at night
#### New Admin Commands
- `/veilorigins setlevel <player> <1-50>` - Set player's origin level
- `/veilorigins addxp <player> <amount>` - Add XP to player
- `/veilorigins setprestige <player> <0-10>` - Set prestige level
- `/veilorigins addskillpoints <player> <amount>` - Add skill points
- `/veilorigins info <player>` - Show detailed progression info
- `/veilorigins hybrid activate <player> <origin>` - Force activate hybrid mode
- `/veilorigins hybrid deactivate <player>` - Force deactivate hybrid mode
### Fixed
#### UI Blur Rendering Issue
- **Fixed blur rendering over UI elements** in Minecraft 1.21.11
- Default `renderBackground()` adds blur effect that was rendering ON TOP of custom UI
- Added `renderBackground()` override to all custom screens to prevent blur
- Affected screens: SkillTreeScreen, OriginCardCarouselScreen, AbilityBarScreen, RadialMenuScreen, HudConfigScreen
#### Dedicated Server Crash - NoClassDefFoundError: LocalPlayer
- **Fixed server crash when players join dedicated servers**
- Root cause: Client-only class `LocalPlayer` was referenced in network packet handlers
- Created `ClientPacketSender.java` to isolate client-side packet sending code
- Created `SyncOriginDataPacketHandler.java` for client-side packet handling
- Server now properly handles all network packets without client class references
#### "Modifier is already applied" Error on Respawn
- **Fixed crash when players respawn after dying**
- Root cause: Player entity is replaced on respawn, but UUID stays the same
- Changed `PLAYER_ORIGINS` cache from `Map<Player, Origin>` to `Map<UUID, Origin>`
- Updated all passive classes to remove modifiers before adding (prevents duplicates)
- Added `.copyOnDeath()` to attachment type to preserve data across respawns
#### Ethereal Possession Ability
- **Fixed possession not working correctly**
- Rewrote possession so mob follows player (not player teleporting to mob)
- Player moves normally with WASD, possessed mob syncs to player position
- Player gets invisibility effect while possessing
- Fixed mob AI restoration after possession ends
- Properly clears targets, recomputes navigation, gives movement impulse to "wake up" mob
#### HUD Sync and Data Bleeding
- **Fixed HUD not syncing level, XP, resource bar, cooldowns on dedicated server**
- Created `ClientOriginData.java` for client-side cache of synced data
- Sync interval changed from 20 ticks to 5 ticks (4x faster updates)
- Now tracks and syncs level/XP changes immediately
- **Fixed data bleeding between servers/worlds**
- Added `ClientOriginData.clear()` and `ClientPossessionHandler.clear()` on login AND logout
- Added `VeilOriginsAPI.clearClientCache()` to clear origin cache when switching servers
- Client now properly clears all cached data before receiving new server data
#### Skill Tree Persistence and Functionality
- **Fixed skills not saving/syncing on dedicated servers**
- Added `unlockedSkills` field to `SyncOriginDataPacket` (comma-separated string)
- Skills now persist in world data via player data attachments
- Skills sync from server to client on login, respawn, and skill unlock
- **Fixed "Skill not found" warnings on dedicated server**
- Root cause: `SkillTrees.initialize()` was called in `commonSetup` which runs asynchronously
- Moved initialization to mod constructor to ensure trees are ready before players join
- Added `synchronized` guard and logging to prevent double-initialization
- **Fixed skills not applying actual effects**
- Unified skill system to use `SkillTrees.java` (detailed skills with effects)
- `SkillEffectHandler` now properly applies attribute modifiers from skill definitions
- Skills apply health, armor, speed, damage, attack speed, and special effects
### Technical
- Added `SkillTrees.java` - Registry of 22 detailed skill trees with 25-35 skills each
- Added `SkillTreeData.java` - Data structure for skill tree with connections
- Added `Skill.java` - Skill node with tiers, branches, prerequisites, exclusions, effects
- Added `SkillEffect.java` - Effect definitions (attribute modifiers, special effects)
- Added `SkillEffectHandler.java` - Applies/removes skill effects to players
- Added `SkillTreeScreen.java` - Interactive GUI for viewing and unlocking skills
- Added `ClientOriginData.java` - Client-side cache for synced origin data
- Added `ClientPacketSender.java` - Client-side packet sending isolation
- Added `SyncOriginDataPacketHandler.java` - Client-side sync packet handling
- Updated `UnlockSkillPacket.java` - Uses `SkillTrees` for skill lookup and validation
- Updated `SyncOriginDataPacket.java` - Added `unlockedSkills` field
- Updated `OriginEventHandler.java` - Uses `SkillEffectHandler` for skill effects
- Updated `VeilOriginsAPI.java` - Added `clearClientCache()` method
- Updated `ClientEventHandler.java` - Clears all caches on login/logout