Gallery

Description
GlymeraRaces - Choose Your Race, Become Your Race
An RP race system with a full RPG progression layer for Hytale. Every player picks a race on first join and physically morphs into the chosen mob model. 16 race groups, 119 humanoid mob variants, full stat profile per race - HP, damage, speed, stamina pool, defense, mana, and four damage resistances. Then level up, spend skill points, and ascend your race into stronger evolved forms as you play. Switch races again after a configurable cooldown.
New in v4.0.0: account-wide levels & XP from hunting, per-race stat growth, a seven-attribute skill tree with respec, and a linear race ascension system that unlocks prestige forms through play. All account-wide, all config-tunable, existing worlds migrate automatically.
What is GlymeraRaces?
When a new player joins, a non-dismissable selection page opens. They pick a race - say Trork, Skeleton, or Wraith - and from then on their player model is replaced by the chosen mob model. Other players see them as that mob. Their HP, stamina, damage output, movement speed, defense, and elemental resistances scale according to that race's stat profile. After a configurable cooldown (default 7 real-time days), the next login offers the chance to keep the current race ("Stay as you are") or switch.
Roleplay-friendly. Mechanical. Reversible.
How It Works
- First join - the race-selection page opens automatically and cannot be closed
- Pick a race group (Trork, Goblin, Skeleton, etc.)
- Pick a variant within that group (e.g. Skeleton_Knight vs Skeleton_Burnt_Praetorian)
- Optional preview - click "Preview (5s)" to morph temporarily, see yourself in the inventory avatar render, then auto-revert
- Confirm with "Become this" - the morph and stats apply permanently
- After cooldown the page reopens on next login with "Stay as you are" highlighted - keep or switch
RPG Progression (v4.0.0)
GlymeraRaces is no longer just a one-time choice - your race grows with you. Progression is account-wide (kept when you switch race) and everything is tunable in config.json.
Levels & XP
- Account-wide levels with a configurable cap (default 50). Smooth XP curve (
xpToNext = xpBase * level^xpCurveExp). - XP comes from hunting mobs, scaled by the target's max HP - tougher kills are worth more. Granted on the killing blow.
/grace infoshows your level and XP; you get a level-up notice and skill points each level.
Per-race stat growth
- Each race levels up its own way: Trork stacks HP, Goblin gets faster, Skeleton and Wraith gain mana, Zombie and Tuluk harden their defense, and so on. Your starting race profile is just level 1 - it scales as you play.
Skill tree
- Earn skill points (default 10 at level 1, +4 per level) and spend them across seven attributes: Vitality (HP), Power (damage), Defense (all incoming damage), Agility (speed), Endurance (stamina), Arcane (mana), Warding (Fire/Ice/Poison resistance).
- An allocation cap (default 80% of your total points on any one attribute) keeps builds varied.
- Full respec any time. Open it all with
/grace progress- a clean UI with+ / -buttons per attribute.
Race Ascension (evolution)
- Every race has a linear ascension ladder (base -> Ascended -> Exalted), gated by level.
- Ascending grants an escalating stat tier and a title - and unlocks extra "prestige" forms of your race that aren't available at the start. Earn new looks through play.
- Most variants are available immediately; only a few prestige forms sit behind ascension, so early variety is unchanged. Ascension progress is per-race and kept across switches.
Race Pool
16 race groups, 119 individually choosable humanoid variants. All variants are real Hytale ModelAsset keys (validated at server start).
| Group | Variants | Theme |
|---|---|---|
| Human | 1 | Vanilla baseline |
| Kweebec | 15 | Plant-folk, life stages and colours |
| Trork | 10 | Grey-green ork warriors |
| Outlander | 10 | Hardened humans, bandits, cultists |
| Goblin | 10 | Small, sneaky, scrappy |
| Feran | 7 | Winged demon-kin |
| Skeleton | 40 | Standard / Burnt / Frost / Sand / Pirate / Incandescent |
| Werewolf | 1 | Lycanthrope |
| Zombie | 8 | Standard, Burnt, Frost, Sand, Aberrant... |
| Ghoul | 1 | Pale flesh-eating undead |
| Shadow Knight | 1 | Dark armored knight |
| Wraith | 2 | Ghostly specters |
| Hedera | 1 | Vine-bound humanoid |
| Tuluk | 2 | Ancient stone-folk |
| Klops | 4 | One-eyed brutes (Gentleman, Merchant, Miner) |
| Scarak | 7 | Insectoid raiders |
Stat Profile Per Race
Each race has a stats block in config.json with these multipliers / bonuses:
| Stat | Type | Effect |
|---|---|---|
hpMultiplier |
Multiplicative on Max HP | 1.30 = +30% max HP |
damageMultiplier |
Multiplicative on outgoing damage | 1.20 = deal 20% more |
speedMultiplier |
Multiplicative on movement BaseSpeed | 1.10 = 10% faster |
staminaPoolMultiplier |
Multiplicative on Stamina max | 1.10 = larger stamina pool (regen rate stays Hytale-default) |
defenseMultiplier |
Multiplicative on incoming damage | 0.85 = take 15% less |
manaBonus |
Additive on Mana max | +50 means race gets 50 max mana |
resistances.fire/ice/poison/physical |
Damage-type-specific | 0.5 = take half from that type, 1.5 = take 50% more |
The HP and Stamina multipliers wrap the final value including armor bonuses (e.g. Trork at 1.30x with a +9 iron helm gets (100+9)*1.30 = 142 max HP). Defense stacks multiplicatively with armor and effect resistances. Damage-out is applied as the final scaling step before final apply.
Default Profiles
| Race | HP | DMG | SPD | STA | DEF | Mana+ | Fire | Ice | Poison | Phys |
|---|---|---|---|---|---|---|---|---|---|---|
| Human | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0 | 1.00 | 1.00 | 1.00 | 1.00 |
| Kweebec | 0.85 | 1.05 | 1.10 | 1.10 | 1.00 | 20 | 1.00 | 0.85 | 0.90 | 1.10 |
| Trork | 1.30 | 1.20 | 0.90 | 0.95 | 0.85 | 0 | 1.00 | 1.10 | 1.00 | 1.00 |
| Outlander | 1.10 | 1.10 | 1.00 | 1.00 | 1.00 | 10 | 1.00 | 1.00 | 1.00 | 1.00 |
| Goblin | 0.70 | 0.90 | 1.20 | 1.10 | 1.10 | 0 | 1.00 | 1.00 | 0.90 | 1.00 |
| Feran | 1.00 | 1.20 | 1.10 | 1.00 | 0.95 | 50 | 0.80 | 1.00 | 1.00 | 1.00 |
| Skeleton | 0.90 | 1.00 | 1.00 | 1.00 | 1.00 | 40 | 1.30 | 0.50 | 0.30 | 1.00 |
| Werewolf | 1.20 | 1.30 | 1.20 | 1.10 | 0.90 | 0 | 1.00 | 1.00 | 1.00 | 1.00 |
| Zombie | 1.40 | 0.90 | 0.75 | 0.80 | 0.85 | 0 | 1.00 | 0.70 | 0.50 | 1.00 |
| Ghoul | 1.10 | 1.10 | 1.10 | 1.00 | 0.95 | 20 | 1.00 | 0.80 | 0.60 | 1.00 |
| ShadowKnight | 1.30 | 1.20 | 0.95 | 1.00 | 0.80 | 30 | 1.00 | 1.00 | 1.00 | 0.80 |
| Wraith | 0.80 | 1.10 | 1.20 | 1.20 | 0.85 | 80 | 1.00 | 0.50 | 0.50 | 0.50 |
| Hedera | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 40 | 0.80 | 1.00 | 1.20 | 1.00 |
| Tuluk | 1.20 | 1.10 | 0.90 | 1.00 | 0.85 | 0 | 1.00 | 1.20 | 1.00 | 1.00 |
| Klops | 1.40 | 1.20 | 0.80 | 0.90 | 0.85 | 0 | 1.00 | 1.00 | 1.00 | 1.00 |
| Scarak | 0.90 | 1.10 | 1.20 | 1.10 | 1.00 | 0 | 1.00 | 1.00 | 0.80 | 1.00 |
All values are tunable in config.json.
Armor Hide Layer
For non-Human races, equipped armor is automatically hidden visually so the mob model is not covered in mismatched plate. The armor remains in the inventory and all defensive stats stay active (HP bonus, damage resistances, durability loss). Only the visual rendering is suppressed. Three enforcement layers ensure the player cannot toggle armor visibility back on through the inventory UI:
PlayerSettingsrecord fieldshideHelmet/Cuirass/Gauntlets/Pantsset to true- Periodic 2-second task re-clamps any drift
- Inbound
SyncPlayerPreferencespacket filter rewrites client toggle attempts before they reach the server
Equipped weapons stay visible because hand items only render when actively drawn from the hotbar.
Live Preview Workflow
Each variant card has two buttons:
- Preview (5s) - applies the morph and stats temporarily, opens the native Hytale inventory page so the player sees themselves in the avatar render area, then auto-restores after 5 seconds and reopens the variant list
- Become this - confirms and saves the choice
The Inventory page blocks player movement and actions while open (Hytale-native behaviour), so the player cannot do anything during preview. Auto-restoration is triggered server-side - no commands needed to exit.
Death and Respawn
When a player dies, Hytale strips active effects. GlymeraRaces detects this within 2 seconds (periodic enforcer task) and re-applies the morph + stats + speed + hide-flags automatically. The player respawns and stays in their chosen race form.
Disconnect During Selection
If a player closes the client while the first-join page is open (or in the middle of a preview), the next login sees a clean state - any leftover preview morph effects are stripped before the selection UI opens again.
Commands
| Command | Who | Description |
|---|---|---|
/grace |
Everyone | Open the race-selection UI (or shows remaining cooldown) |
/grace info |
Everyone | Show your current race, variant, cooldown, level and XP |
/grace progress |
Everyone | Open the progression UI (level, XP, skill allocation, ascension, respec) |
/grace set <player> <race> <variant> |
OP | Set a player's race directly (use - for default variant) |
/grace reload |
OP | Reload config.json and re-apply to all online players |
/grace cooldownReset <player> |
OP | Reset a player's race-change cooldown |
/grace addxp <player> <amount> |
OP | Give a player XP |
/grace setlevel <player> <level> |
OP | Set a player's level |
Configuration
File: mods/Glymera_GlymeraRaces/config.json (created on first start with sensible defaults).
| Setting | Default | Description |
|---|---|---|
cooldownDays |
7 | Real-time days a player must keep their race before being offered a change again on join |
races.<RaceName>.enabled |
true | Whether this race appears in the selection UI |
races.<RaceName>.description |
string | Short one-line description shown in the UI |
races.<RaceName>.variants[] |
list | Variant entries - each has id (mob model key) and displayName |
races.<RaceName>.stats |
object | The stat profile (see table above) |
After editing, run /grace reload to apply without a server restart. Online players are re-applied automatically.
Installation
- Place
GlymeraRaces-1.0.0.jarin your server'smods/folder - Start (or restart) the server
- Done
Good to Know
- All 119 variants use real Hytale
ModelAssetkeys - validated at server startup. Any reference error halts loading, so you cannot deploy a broken setup unnoticed. - Damage-out scaling fires for both melee and projectiles (any
EntitySourcedamage event from a player). - Hytale has no "Magic" damage cause - the four resistances are Fire / Ice / Poison / Physical. "Frost" is internally called
Icein Hytale. - Stamina-regen rate is asset-fixed and cannot be modified - only the pool size is scaled by
staminaPoolMultiplier. - Race choice is persistent across server restarts - per-player JSON in
mods/Glymera_GlymeraRaces/data/<uuid>.json. - The "Skipping pack at Glymera_GlymeraRaces: missing or invalid manifest.json" warning at startup is benign - effects and UI are still loaded (consistent with other Glymera plugins).
Made with care by Glymera for the Hytale community
Changelog
GlymeraRaces Changelog
v5.0.0 (2026-08-28) — Hytale 0.6.0 (Update 6)
- Rebuilt for Hytale 0.6.0 (Update 6). Requires server 0.6.0 or newer; this version does not run on 0.5.x, and older versions of this plugin do not run on 0.6.0.
- Migrated to the 0.6.0 APIs (network protocol hytale/3, new command-permission API, block/chunk/entity API changes). Everything that was open to players before is open to players again.
- Upgrade: delete the old jar from
mods/, drop in the new one and keep the plugin's data folder — configs and saved data carry over unchanged. Restart the server.
v4.0.0 (2026-06-15)
Big one: GlymeraRaces grows from a static race-morph system into a full RPG progression layer, while keeping everything that was already there. Driven by a CurseForge request ("add more races and a more in-depth levelling RPG system").
Everything new is account-wide (kept when you switch race) and config-tunable (/grace reload). Existing players and existing config.json files are migrated automatically on first boot — nothing is lost.
New: Levels & XP
- Account-wide levels with a configurable cap (default 50). XP curve:
xpToNext(level) = round(xpBase * level^xpCurveExp)(defaults100,1.5). - XP is earned from mob kills only, scaled by the victim's max HP (
xpPerVictimMaxHp) plus a flat amount (xpFlatPerKill). Granted on the killing blow, detected inside the existing damage-filter system (no new ECS systems, no polling). - Level-up message + automatic stat re-apply.
/grace infonow shows your level and XP.
New: Per-race stat growth
- Each race now grows its own stats per level — Trork piles on HP, Goblin gains speed, Skeleton/Wraith gain mana, Zombie/Tuluk harden their defense, etc. Tunable per race under
races.<id>.growth. - Growth folds into the existing apply path (HP/Stamina/Mana via
EntityStatMapmodifiers, speed viaMovementManager, damage/defense via the damage filter). No new stat mechanics, just richer values.
New: Skill points & attribute allocation
- Earn skill points (default 10 at level 1, +4 per level) and spend them across seven attributes: Vitality (HP), Power (damage), Defense (all incoming damage), Agility (speed), Endurance (stamina), Arcane (mana), Warding (Fire/Ice/Poison resistance).
- Allocation cap (default 80% of total earnable points on any single attribute) forces build variety.
- Respec supported (refund all points). Points are kept when you switch race.
New: Race Ascension (evolution)
- Every race group has a linear ascension ladder (default 3 rungs: base → Ascended → Exalted), gated by level (and optionally skill thresholds).
- Ascending grants an escalating stat tier and a title, and can unlock extra "prestige" forms of that race that aren't selectable at the start — new race content earned through play.
- Most variants stay available immediately (tier 0); only a few prestige forms sit behind ascension, so early variety is unchanged. Ascension progress is per race group and persists across switches.
- Locked forms are shown in the variant picker with their unlock level; they cannot be selected until unlocked.
New: Progress UI & commands
/grace progressopens a progression page (built from the existing UI templates): level + XP, unspent points,+ / -allocation per attribute, an Ascend button when eligible, and a Respec option./grace addxp <player> <amount>(OP) and/grace setlevel <player> <level>(OP) for testing/administration.
Compatibility & internals
config.jsongains alevelingblock (curve, caps, skill scaling) and per-racegrowth+ascension; missing pieces are filled in on load, your tuned values are preserved.- Per-player data files gain
level / xp / totalXp / unspentSkillPoints / skills / ascension; legacy files are upgraded on first load and granted their starting points once. - All stat effects are computed once per player ("effective stats" = race base × per-level growth × ascension tier, then + skill allocation) and cached for the hot damage path; recomputed on level/skill/ascension/race change.
- No new Hytale APIs and no new asset risk: the morph/hide/resistance/preview systems are unchanged.
v3.0.0 / v2.0.0
Maintenance releases (per-release full-major version bump policy).
v1.0.0 (2026-05-02)
Initial release.
Concept
RP race system with mandatory first-join selection. Players pick a race when they first join the server and morph into the chosen mob model. Each race has its own stat profile (HP, damage, speed, stamina pool, defense, mana, four damage resistances). After a configurable real-time cooldown, players are offered the option to switch on next join.
Features
- 16 race groups, 119 humanoid mob variants (Human, Kweebec, Trork, Outlander, Goblin, Feran, Skeleton, Werewolf, Zombie, Ghoul, ShadowKnight, Wraith, Hedera, Tuluk, Klops, Scarak). All variants are real Hytale
ModelAssetkeys, validated at server start. - First-join enforcement: race selection UI cannot be closed; player picks before they can play.
- Race-change cooldown (default 7 real-time days). After cooldown, on next join the UI offers "Stay as you are" (highlighted default) plus the race list.
- Drilldown UI: Race group page → variant page. Each variant card has a Preview and a Choose button.
- 5-second live preview: clicking Preview applies the morph + stats temporarily, opens the native Inventory page so the player sees themselves in the avatar render area, then auto-restores after 5 seconds and reopens the variant list.
- Stats per race: HP / Stamina-pool (multiplicative
EntityStatMapmax modifiers), Mana (additive), Damage-out + Defense (ECS damage filter), Speed (MovementManager), Resistances Fire/Ice/Poison/Physical (per-variant effect assets). - Auto armor-hide for non-Human races (3-layer enforcement).
- Auto re-apply after death (2s enforcer).
/grace reloadre-applies to online players.
Commands
/grace,/grace info,/grace set(OP),/grace reload(OP),/grace cooldownReset(OP)
Only Marc can read this.