
Veil Origins
The Best Alternative to the most popular origins mod. built from scratch for the community. ❤️
Список изменений
v1.0.3
Added
Unicode Font Handler System
-
New
UnicodeFontHandler- Custom font rendering system for improved Unicode support- Uses Java AWT to load TrueType fonts with full Unicode character support
- Generates bitmap texture atlases for efficient GPU rendering
- Automatic glyph caching for performance
- Graceful fallback to Minecraft's default font for unsupported characters
- Auto-detects system fonts with good Unicode coverage (Segoe UI Symbol, Arial Unicode MS, DejaVu Sans, etc.)
- Pre-caches common Unicode ranges: Basic Latin, Latin-1 Supplement, General Punctuation, Symbols, Dingbats
-
New
UnicodeFontUtils- Utility class for formatted text with Unicode- Symbol text helpers:
checkText(),crossText(),energyText(),diamondText(), etc. - Status indicators with color-coded symbols
- Progress bar generation using Unicode block characters (█░)
- Cooldown formatting with automatic time conversion
- Decorative elements: separators, boxed titles, bullet points
- Symbol text helpers:
-
Unicode Symbol Constants - Easy access to commonly used symbols:
- ✓ ✗ ⚡ ♦ ♥ ★ ● → ← ↑ ↓ ∞ ☠ ☀ ☽
HUD Configuration System
-
New HUD Config Screen - Press H to open a dedicated screen for customizing HUD elements
- Toggle individual HUD elements on/off with visual ON/OFF indicators
- Adjust HUD opacity (0-100%) with visual slider
- "Enable All" / "Disable All" quick preset buttons
- Changes save automatically
-
New Keybind -
Hkey opens the HUD Configuration screen (configurable in Controls) -
Granular HUD Toggles - Control visibility of each HUD element individually:
- Origin Info Panel (name and level display)
- Resource Bar (blood, heat, hydration, etc.)
- XP Progress Bar
- Ability Indicators (cooldown boxes)
- Passive Indicators (e.g., double jump ready)
- Cooldown Overlays (animated cooldown fill)
- Keybind Hints ([R], [V] labels)
- Unicode Symbols (✓/✗ vs ASCII)
-
Config Screen in Mod List - Access mod settings from the NeoForge mod list "Config" button
Vampire & Vampling - New Passives
-
Vampiric Double Jump - Sprint and double-tap jump while airborne to perform a damaging leap!
- Deals damage to nearby enemies (6 HP for Vampire, 3 HP for Vampling)
- Knocks back enemies hit
- Provides forward momentum boost
- Visual crimson spore particles and smoke effects
- Audio feedback with bat takeoff and phantom flap sounds
- Cooldown: 1.5s (Vampire) / 2s (Vampling)
-
Blood Drain Gaze - Crouch and stare at a creature with blood for 5 seconds to drain it!
- Works on any creature with blood: large animals, villagers, pillagers, players
- Excludes undead (zombies, skeletons), constructs (iron golems), and tiny creatures (bats, chickens)
- Progress bar UI while focusing
- Crimson particle stream from target to player
- Deals continuous damage while healing the vampire
- Slows and weakens the target
- Bonus effects when fully draining a creature (Regeneration II, Strength I)
- Range: 8 blocks (Vampire) / 5 blocks (Vampling)
Werewolf & Wolfling - Dietary Preferences
-
Rotten Flesh Immunity - Can eat rotten flesh without the hunger debuff
- Also provides minor healing (2 HP for Werewolf, 1 HP for Wolfling)
- "The rotten flesh satisfies your feral hunger!"
-
Raw Meat Preference - Eating raw meat provides bonus effects
- Regeneration (II for Werewolf, I for Wolfling)
- Saturation bonus
- "The raw meat invigorates you!"
Vampire & Vampling - Dietary Preferences
-
Raw Meat Bonus - Eating raw meat provides regeneration
- "The blood in the meat sustains you!"
- Full Vampires also get Strength I boost
-
Cooked Meat Weakness - Cooked meat provides little nourishment
- Applies Weakness I effect
- "The cooked meat provides little nourishment..."
Changed
-
Code Quality: ChatFormatting - Replaced all
§section symbol color codes with properChatFormattingenum- Affected files:
OriginCommand,OriginEventHandler,SelectOriginPacket,FoodEventHandler,HudConfigScreen,RadialMenuScreen - Uses
.withStyle()and.append()for multi-colored Component messages - More maintainable, type-safe, and IDE-friendly
- Affected files:
-
Unicode Symbol Rendering -
OriginHudOverlaynow usesUnicodeFontHandler.getSymbol()for proper fallback- Automatically falls back to ASCII if Unicode symbol can't be rendered
-
Config Split - Configuration now separated into two files:
veil_origins-common.toml- Gameplay settings (cooldowns, damage, abilities, sizes)veil_origins-client.toml- Client-side HUD/display settings
-
Translation Keys - Added translation keys for all config options for localization support
Fixed
HUD Config Screen
- Fixed background rendering above buttons - Corrected render order so widgets display on top of background
- Fixed Unicode minus symbol not rendering - Changed
−10(U+2212) to ASCII-10
Config Loading Crash
- Fixed crash on startup: "Cannot get config value before config is loaded"
- Root cause:
onLoadhandler tried to access both COMMON and CLIENT config values when only one was loaded - Now checks which config spec is being loaded and only accesses values from that config
- Root cause:
Multiplayer Origin Synchronization
- Fixed non-host players unable to use origin abilities (R and V keybinds) in multiplayer
- Root cause: Origin data was not being synced from server to client for non-host players
SyncOriginDataPacket.handle()now properly updates the client-side origin cache- Added
VeilOriginsAPI.setPlayerOriginClient()for client-side cache updates without triggering server-side passives - Sync packets are now sent:
- When a player logs in
- When a player respawns
- When a player selects or changes their origin
- When origin is set/reset via commands
- Added periodic resource bar sync (every 1 second) to keep HUD accurate
- Non-host players can now see their origin HUD elements and use all abilities
Technical
- Added
UnicodeFontHandler- Custom Unicode font rendering with AWT, texture atlas, and glyph caching - Added
UnicodeFontUtils- Utility methods for formatted text with Unicode symbols - Added
HudConfigScreen- New GUI screen for HUD configuration - Added
OptionsScreenHandler- Utility for opening HUD config from various contexts - Added
HUD_CONFIGkeybind (H key) with handler inKeyInputHandler - Registered
IConfigScreenFactoryfor NeoForge mod list config button - Split
ModConfigEventhandler to load COMMON and CLIENT configs separately - Added
VampiricDoubleJumpPassive- Server-validated double jump with client-side input detection - Added
BloodDrainGazePassive- Crosshair-based drain mechanic with entity type filtering - Added
FoodEventHandler- Handles dietary effects for wolf and vampire origins - Added
DoubleJumpPacket- Network packet for double jump synchronization - Entity blood detection uses type ID blacklist for reliable cross-version compatibility
- Initialized
UnicodeFontHandlerinVeilOrigins.onClientSetup()for early availability
