CurseForge · Hytale mod
Feats
218 achievements, server milestones and firsts, lifetime statistics and a points leaderboard for Hytale servers. Unlock toasts, a /feats browser, titles, rewards and a scan that credits existing worlds. Server-Side
Quick answer
Which Feats release should I use?
Feats-1.3.0.jar targets 0.7. Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer. No required dependencies listed for this file.
Where it goes
Where should Feats be installed in Hytale?
Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer.
Put Hytale mods on the world host or dedicated server. Singleplayer runs a local server too; Hytale does not use separate client mods.
What else does Feats-1.3.0.jar need?
Feats-1.3.0.jar. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional project dependencies. Check the creator notes before changing an existing world.
Before you install it
Add Feats without breaking your instance.
Built for Feats-1.3.0.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use Feats-1.3.0.jar. It targets 0.7; another release may target a different game build or dependency set.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Enable it on the world host
Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer.
- 04
Pick the file you checked
Use the “Get this file” button beside Feats-1.3.0.jar. It opens that exact file at the source.
About this project
What does Feats add?
Overview
Feats turns everything you already do in Hytale into something worth tracking. Break your first block, light up your base with torches, discover new zones, smelt an adamantite bar, walk 200 kilometres or bring down the Gobliterator on hard mode, and the game notices. Each feat has a rarity tier and a point value, so players can compare progress with /feats top and chase the rare Platinum feats.
The mod is a server plugin with a small UI asset pack bundled in the jar. It works in singleplayer worlds and on dedicated servers alike, and players join with an unmodified client. The World tab adds server milestones everyone shares in and server firsts that only one player can ever hold, and a scan credits players for what they did before Feats was installed. Server owners get admin commands, optional rewards, a Discord webhook, PlaceholderAPI placeholders and a JSON export, and plugin developers get a public API with an unlock event.
Features
218 feats in nine categories
| Category | Feats | Examples |
|---|---|---|
| Exploration | 15 | First Steps, Cartographer, Treasure Hunter, Gatekeeper |
| Mining | 17 | Rock Bottom, Prospector, Copper Rush, Full Spectrum |
| Building | 14 | Cornerstone, Light It Up, Home Sweet Home, Metropolis |
| Crafting | 23 | Handy, Ironclad, Adamant Wall, Movie Night |
| Combat | 26 | First Blood, Giant Killer, Duke Dethroned, Bane of the Undead |
| Survival | 19 | Welcome to Orbis, Everybody Dies, Well Fed, Veteran |
| Nature | 18 | Lumberjack, Green Thumb, Gone Fishing, Big Game Hunter |
| Chapter I | 80 | Goblinologist, Gobliterated, Chapter Closed, Fragments of Orbis |
| Misc | 6 | Chatterbox, Getting Started, Overachiever, Legend of Orbis |
Tiers and points
| Tier | Points | Feats |
|---|---|---|
| Bronze | 10 | 52 |
| Silver | 25 | 84 |
| Gold | 50 | 59 |
| Platinum | 100 | 23 |
That adds up to 7,870 points for a player who earns everything. Fifteen feats are hidden. They show as ??? with a chest icon until you earn them, so there is still something left to discover.
Some feats need several things at once. Goblinologist asks for one of every kind of goblin, Ironclad and Adamant Wall ask for every piece of an armour set, and Full Armoury asks for ten different kinds of weapon. These show a "steps" counter instead of a single number.
Meta feats chain off each other. Getting Started, Achiever, Overachiever and Legend of Orbis unlock at 10, 25, 50 and 100 feats.
Exploration
The zone ladder matches the five zones the default world names on discovery. New Horizons, Sightseer, Cartographer, Pathfinder and Master Explorer ask for 1, 2, 3, 4 and all 5 zones.
Chapter I
The Chapter I tab holds 80 feats worth 3,075 points for everything that arrived with Hytale 0.7.0. Version 1.2.0 adds the endgame.
- Goblins and the Void. A goblin ladder from Goblin Slayer to Goblin Warlord, Goblinologist for one of every kind of goblin, Know the Void for every kind of Voidspawn, spiders, Void Spectres, anomaly crystals and the anomaly keystone.
- Bosses. Defeat the Goblin Feastmaster, the Gobliterator, the Voidtaken bear, the Revenant Guardian and The Hedera in The Dread Wade. Every one of them counts toward Giant Killer and Boss Rush, and every player who hit the boss in the last minute of the fight gets the credit.
- The finale. Craft the key to The Deepworks, step through the Dungeon Completion Portal after the Gobliterator falls and trade two Gobliterator Cores for the largest backpack.
- Hard mode and challenges. A set of hidden feats waits for players who press the hard mode button, survive a whole run of The Deepworks or face the Gobliterator with nothing to lose.
- Runestones and abilities. Craft all seven Ability Runestones and all eight Modifier Runestones, cast thousands of abilities and master Fireball, Ground Slam, Enrage, Imbue Poison, Wind Strike, Chain Hook and Charged Shot.
- Gadgets and gear. Build the Scrap Drill, the Scrap Glider, Rocket Boots, the Hookshot and the Spyglass, craft Bangsticks and repair kits, and fill a whole armoury.
- Portal worlds and Fragments. Enter the Goblin Breach, The Deepworks and three different kinds of portal world, build an Ancient Gateway and enter all five Fragments it can reach.
- Dungeons, loot and lore. Use the Goblin Lab bench, repair a Breach Console, collect Voidhearts, Runestone Shards, Scraps, Coffer Keys and Spider Silk from drops and chests, and collect all twelve lore notes.
- Memories and decoration. Record up to 100 Memories, mine Kenolite, Void crystal and shiny scrap piles, decorate with goblin furniture and metal blocks, and hang one of each goblin painting.
Memories are a server wide race in Hytale 0.7.0. Once any player hands a Memory in, nobody else on the server can record that one, so on a busy shared server the higher Memory feats may be out of reach. Solo and in co-op this is fair.
Parked feats
Five feats point at content that ships in the 0.7.0 assets but never appears in a survival world. Mithril Miner and Mithril Smith need mithril ore, Onyx Eye needs onyxium ore and Prismatic needs prisma ore, none of which world generation places. Silver Bullet needs a werewolf, and werewolves never spawn. These feats are parked. They are not shown, not counted and not earnable, and they come back with the same ids once the content reaches the world. Full Spectrum stays, now asking for every metal that is actually generated, at Gold.
World milestones and server firsts
The World tab holds 15 feats that belong to the server rather than to one player. They are not part of the 218 feats or the 7,870 points and never count toward anyone's completion.
- Nine world milestones, reached once for everyone. Lights On, Full Steam, Engine Room and Pressure Rising for restoring power to the Goblin Lab and repairing its Boiler, Engine and Compressor, then Scrap Yard, Redline, End of the Chapter, Open Gates and Uprooted the first time anyone beats the Gobliterator, beats it on hard mode, completes Chapter I, builds an Ancient Gateway or defeats The Hedera.
- Six Platinum server firsts. Pioneer, Trailblazer, Historian, Keeper of Memories, Gatewright and Party Crasher go to the first player on the server to defeat the Gobliterator, step through the Dungeon Completion Portal, record 50 and 100 Memories, build an Ancient Gateway or defeat the Goblin Feastmaster.
The player who raises a milestone gets it with a toast and its points. Everyone else sees it as achieved in the World tab and gets a quiet chat line such as "Server milestone reached, Lights On, by Steve", and players who were offline get it on their next join. The Goblin Lab milestones come from the game's own flags, checked every 5 seconds, and credit whoever used a Goblin Lab device in the last minute, or nobody when no one did. A first is held by one player forever. When two players finish the same fight together, exactly one of them gets it.
Stats tracked
Feats keeps 28 lifetime totals per player and shows them on the Statistics tab.
- Time played and sessions
- Distance travelled and zones discovered
- Blocks broken, ore mined, logs chopped and blocks placed
- Items crafted, items picked up, crops harvested and fish caught
- Kills, ranged kills, boss kills and deaths
- Damage dealt and damage taken
- Chests opened, nights slept and benches used
- Abilities cast, portals entered and Memories recorded
- Meals eaten and potions drunk
- Chat messages and feats unlocked
Behind those totals Feats also counts specific ores, item groups (pickaxes, tools, weapons, armour, bars, food, potions, furniture, benches), creature groups (undead, goblins and each goblin kind, spiders, Trorks, Outlanders, Scaraks, Feran, Kweebecs, Void creatures and each kind of Voidspawn, golems and spirits, dragons, bosses, livestock, predators), each ability you cast, the Chapter I items that reach your inventory, each kind of portal world you enter and causes of death. Feats are defined against these groups, so "any pickaxe" or "any ore" just works.
The counters are hard to farm. Chat counts at most one message every 5 seconds, breaking a block you just placed earns nothing, and picking up items you just dropped does not count again. Creative mode is ignored by default, and whole worlds such as a lobby can be left out.
Unlock toasts
When a feat unlocks you get the game's own notification toast with the feat's icon, name and description, plus the Memories unlock sound. Platinum feats also show a big title in the middle of the screen. A chat line confirms the tier, the points and your new total, for example Feat unlocked Rock Bottom (Bronze, +10 pts, 2/218), and rare feats add a tag such as "(rare, 3% of players)".
On a server with other players online, Silver and better unlocks are announced to everyone else in chat. The minimum tier, the sound and the big title tier are all configurable, and each player can mute their own toasts and sounds with /feats notify off.
The feats page
/feats opens a two column browser.
- The left column shows your name, your unlocked count, a progress bar and your points with a completion percentage.
- Below that are the tabs. All feats, one tab per category with its own count, the World tab, Unlocked (newest first) and Statistics.
- Every feat row has an icon, name, description, tier, a progress bar and a progress line such as
37 / 100 · +10 pts. Unlocked rows show a check mark and the date you earned them. - Once enough players have played, each row also shows how many players own the feat, such as "12% of players", and marks rare feats.
The World tab counts what the server has achieved, such as "4 / 15 achieved". Each row says "Not yet achieved" or "Unclaimed", or who achieved it or holds it and when.
/feats view opens the same browser read only on another player.
Leaderboard, rarity and sharing
/feats top prints the ten highest scoring players the server has ever seen, including players who are offline. Each line shows points and unlocked count, and your own name is highlighted. /feats recent lists the last ten unlocks on the server, /feats compare puts your progress next to another player's per category, and /feats share posts one of your feats to everyone online with its tier, date and rarity.
Titles
Players can wear one of their Gold or Platinum feats as a title in front of their chat lines, in the tier's colour. Titles show in chat only when no other plugin formats chat, so a chat formatting plugin always keeps control.
Rewards
Rewards are off by default. Set
RewardsEnabledtotrueinFeats.jsonand run/feats admin reloador restart the server. Feats then writesRewards.jsonas an empty template on first start. Nothing is handed out until you fill it in and reload again.
Rewards can run console commands, add permissions, add the player to a group and send a chat message. They can be tied to a single feat, to every unlock of a tier, to a points total or to a number of unlocked feats. Commands and messages can use the player name, the uuid, the feat id and name, the tier and the new points total. Each reward is given once per player and is remembered through a reset, so it cannot be farmed. Reward commands run one every 100 ms, so a big catch up never floods a tick.
Admin commands
Admin permissions. Admin commands need two generated permission nodes at once. A sender needs
ryvrook.feats.command.feats.adminand the node of the sub command,ryvrook.feats.command.feats.admin.<sub>, for exampleryvrook.feats.command.feats.admin.grant. One without the other is not enough. The server console has every permission. Every other Feats command is open to all players.
| Command | What it does |
|---|---|
/feats admin view |
Open the browser read only on any player |
/feats admin grant |
Unlock a feat for a player, with rewards only when asked |
/feats admin revoke |
Take a feat away, plus meta feats no longer met |
/feats admin reset |
Erase a player's feats and statistics after a confirm |
/feats admin setstat |
Set one counter and unlock what it now meets |
/feats admin reload |
Re-read the config and the rewards file |
/feats admin rates |
The ten least and ten most earned feats |
/feats admin scan |
Catch counters up from what Hytale recorded |
The full forms are /feats admin grant <player> <feat> [--rewards], /feats admin revoke <player> <feat>, /feats admin reset <player> confirm and /feats admin setstat <player> <key> <value>. They work on offline players too, and everything except view works from the server console.
Scanning existing worlds
Installing Feats on a world that has been running for months no longer means starting from zero. Run /feats admin scan all --dry-run to see what would change, then /feats admin scan all to apply it, or name one player in place of all.
- The scan only uses what Hytale records, never inventories. It reads discovered zones, recorded Memories, death markers and the first spawn.
- The engine keeps at most five death markers per world, so the death count it gives is a lower bound.
- Respawn points, discovered instances and known recipes are not read.
- Counters are only raised, so running it a second time changes nothing.
- Online players unlock at once with the usual toasts. Offline players are updated on the Feats thread and unlock at their next join, and a player Feats has never seen gets a fresh file.
- A scan of everyone runs in batches of 25 and also backfills milestones and firsts, each going to the player with the earliest existing unlock.
Discord
The Discord webhook is off until a URL is set. With DiscordWebhookUrl filled in, Gold and Platinum unlocks are posted to your channel as embeds in the tier's colour, with the description, the points and the rarity. Posts run on a background thread at most one every 2 seconds, Discord rate limits are respected and player names can never ping anyone. The minimum tier is configurable.
PlaceholderAPI
PlaceholderAPI is optional. When it is installed, Feats registers the feats expansion. The placeholders are %feats_points%, %feats_unlocked%, %feats_total%, %feats_total_points%, %feats_rank%, %feats_title%, %feats_last%, %feats_rarity_<featId>%, %feats_stat_<key>%, %feats_has_<featId>%, %feats_first_<featId>% for the holder of a server first and %feats_milestone_<featId>% for whether a world milestone is reached. Without PlaceholderAPI Feats loads as usual.
For plugin developers
The dev.ryvrook.feats.api.FeatsApi class reads points, rank, unlocks, progress, titles and counters, adds to counters, grants feats, lists the world milestones and server firsts and registers unlock listeners. Every unlock also fires FeatUnlockedEvent on the server's event bus. The API is stable and methods are only ever added.
FeatsApi feats = FeatsApi.get(); // null when Feats is not loaded
if (feats != null) {
int points = feats.points(uuid);
feats.onUnlock(event -> System.out.println(event.playerName() + " unlocked " + event.featName()));
}
Leaderboard export
Feats writes export/feats.json with the top 100 players, the last 50 unlocks, the rarity of every feat and the world milestones and server firsts with who reached them and when, so web maps such as Atlas and other tools can show a leaderboard without linking against Feats.
Safe storage
Progress is kept in memory while a player is online and written to players/<uuid>.json on autosave, on disconnect and on shutdown. Saves run on a dedicated Feats thread so they never hold up the game. Milestones and firsts are kept in server.json in the Feats data folder and read before anyone joins. Files are written atomically, and a damaged file is set aside so the player starts fresh instead of breaking the server.
When a player joins, every feat is checked once against their counters, so catch up at join unlocks feats whose counters are already met. Players upgrading from an older version get the new feats they already qualify for on their next join.
Getting started
- Download
Feats-<version>.jar. - Put it in your Mods folder.
- Windows
%APPDATA%\Hytale\UserData\Mods - macOS
~/Library/Application Support/Hytale/UserData/Mods - Dedicated server, the server's
mods/directory
- Windows
- Start the world or server. Tracking begins the moment a player joins, and the first join unlocks Welcome to Orbis.
- Type
/featsto open the browser.
Commands
| Command | What it does |
|---|---|
/feats |
Opens the feats browser. Aliases are /feat and /achievements. |
/feats stats |
Opens the browser on the Statistics tab. |
/feats top |
Shows the top 10 players by points. |
/feats recent |
Shows the last 10 unlocks on the server. |
/feats view <name> |
Browses another player's feats, read only. |
/feats compare |
Compares your feats with the player named after it. |
/feats title |
Lists the Gold and Platinum feats you can wear as a title. |
/feats title <feat> |
Wears a feat as your title. /feats title off takes it off. |
/feats notify off |
Mutes your own toasts, sounds and big titles. on brings them back. |
/feats share <feat> |
Shows a feat you own to everyone online, once every 30 seconds. |
/feats reset |
Explains that a reset erases all of your progress. |
/feats reset confirm |
Erases your own feats and statistics. |
Player commands work on the player who runs them. /feats view and /feats compare can be turned off with AllowViewOthers. The admin commands are listed above.
Configuration
Feats.json is created in the mod's data folder on first start. Edit it and run /feats admin reload, or restart the server.
| Key | Default | Meaning |
|---|---|---|
ShowToasts |
true |
Show the on-screen notification when a feat unlocks. |
PlaySound |
true |
Play the unlock sound. |
UnlockSound |
Memories sound | Sound played on unlock. An unknown id falls back to the Memories sound. |
BigTitleMinimumTier |
"PLATINUM" |
Lowest tier that also shows a big title. OFF turns it off. |
BroadcastUnlocks |
true |
Announce unlocks to other online players in chat. |
BroadcastMinimumTier |
"SILVER" |
Lowest tier that gets announced. Anything unknown counts as SILVER. |
WelcomeHint |
true |
Show a short "x/218 unlocked, /feats to browse" line on join. |
TrackDistance |
true |
Track distance travelled once per second. |
IgnoreCreative |
true |
Stop every counter for players in Creative mode. |
DisabledWorlds |
[] |
World names where every counter stops, ignoring case. |
AllowViewOthers |
true |
Allow /feats view and /feats compare. |
Titles |
"PREFIX" |
Show chosen titles in front of chat lines. OFF leaves chat alone. |
ShowRarity |
true |
Show how many players own each feat. |
RarityMinimumPlayers |
10 |
Rarity stays hidden until this many players count. |
RareBelowPercent |
5 |
Feats owned by fewer than this percent of players are rare. |
RewardsEnabled |
false |
Hand out the rewards in Rewards.json. |
DiscordWebhookUrl |
"" |
Discord webhook for unlock posts. Empty turns it off. |
DiscordMinimumTier |
"GOLD" |
Lowest tier that gets posted to Discord. |
AutosaveSeconds |
60 |
How often changed progress is written to disk. The lowest allowed value is 10. |
ExportSeconds |
15 |
How often export/feats.json is rewritten when something changed. 0 turns the export off. The lowest other value is 5. |
PausePlaytimeWhenDisabled defaults to true and also stops time played in Creative mode and disabled worlds. Set it to false to keep time played counting there. The default UnlockSound is SFX_Memories_Unlock_Local, and a DisabledWorlds value looks like ["creative", "lobby"]. A player counts toward rarity with at least one unlock or 10 minutes of play time.
/feats admin reload applies every key without a restart except AutosaveSeconds and ExportSeconds, which keep their old timing until the server restarts.
Player progress lives in players/<uuid>.json next to the config. Delete a file while that player is offline to reset them. World milestones and server firsts live in server.json in the same folder, each with the time and the player who raised or holds it.
Compatibility
- Feats 1.1.0 and later need the Hytale 0.7.0 release server (Chapter I) or newer, because the Chapter I feats rely on events that older servers do not have.
- Feats 1.0.0 remains available for 0.6.8 servers.
- Pre-release servers log a version range warning because they report a pre-release version, and the plugin still loads.
- Works in singleplayer worlds and on dedicated servers.
- No client mod is needed. The UI files ship inside the jar as an asset pack.
- No other mods are required. PlaceholderAPI is optional.
Changelog
1.3.0
- After upgrading, run
/feats admin scan allonce so firsts and milestones go to the earliest existing unlocks. - A World tab with 15 server feats. Nine world milestones, from Lights On in the Goblin Lab to Uprooted, and six Platinum server firsts, from Pioneer to Party Crasher. They never count toward totals or completion.
- The player who raises a milestone gets its points, and everyone else gets a chat line and sees it in the World tab. A first is held by one player forever.
- The Goblin Lab milestones follow the game's own flags, checked every 5 seconds, and credit whoever used a lab device in the last minute.
/feats admin scanwith a dry run catches counters up from discovered zones, recorded Memories, death markers and the first spawn, and backfills milestones and firsts.- Records are kept in server.json and appear in the export, the API and two new placeholders.
- The zone feats ask for 1, 2, 3, 4 and all 5 zones, so Master Explorer can finally be earned.
1.2.1
- Loading a new jar with a different file name on a running server no longer fails with a duplicate asset pack.
1.2.0
- The Chapter I endgame. Chapter Closed, Under Pressure, Bigger Pockets, Scrap Metal, Weed Killer for The Hedera, Fragments of Orbis, Gatekeeper, Overtime, Loremaster, Gallery Opening, Archivist, Living Memory, Keystone, Goblinologist and Know the Void, plus four new hidden feats. Adamant Wall and Adamant Edge join Crafting. 218 feats and 7,870 points.
- Boss kills credit every player who hit the boss in the last 60 seconds, not only the killing blow.
- Flip the Switch now tracks the hard mode button The Deepworks actually uses.
- Five feats for content the game never places are parked, five goblin kind feats are folded into Goblinologist, and Full Spectrum no longer needs mithril.
- Rebalanced tiers and categories. Per ability cast feats are Bronze, food and potion feats moved to Survival, Duke Dethroned moved to Combat and Goblin Slayer opens the Chapter I goblin ladder.
- Optional rewards from Rewards.json, off by default.
- Admin commands for view, grant, revoke, reset, setstat, reload and rates, behind generated permission nodes.
- Player commands view, compare, title, notify, recent and share.
- Rarity in the browser, the chat line, the export and /feats share. Titles in chat. Big titles for Platinum unlocks and a configurable unlock sound.
- Creative mode and chosen worlds can pause every counter.
- Discord webhook, PlaceholderAPI placeholders and a public API with FeatUnlockedEvent.
1.1.0
- Chapter I tab with 71 new feats covering goblin breaches, portal worlds, the Gobliterator, the Feastmaster, hunt sites, memories, runes, gadgets and the new weapon families. 207 feats and 7,395 points in nine categories.
- Tracks ability casts and interactions, items obtained through crafting, looting and trading, portal worlds entered, and memories collected.
- Writes a leaderboard file to export/feats.json for the Atlas live map.
- Needs the Hytale 0.7.0 release server. Use 1.0.0 on 0.6.8.
1.0.0
- First release. 136 feats in eight categories, lifetime statistics, a points leaderboard, unlock toasts with a sound and the /feats browser.
- The feats commands are open to every player.
Links
- Source code
https://github.com/ryvrook/feats.git - Discord
https://discord.gg/mKgxyk6qvb - More mods by ryvrook
https://www.curseforge.com/members/ryvrook/projects
License
MIT. Made by ryvrook.
Project description from CurseForge.
Pick your setup
Feats releases for each Hytale build.
Choose the version and loader you play, then open the matching release.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Feats releases and Hytale builds
Feats-1.3.0.jar
13 Oct 2026
Looking for an older file? The official CurseForge project page is in Resources.