Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
TitlesMod
Earn titles by exploring, building, crafting, fighting bosses and levelling skills. Combine them into your own title like Dragonslayer's Adept Runner for skill and stat bonuses. WIP, AI-generated.
By AwesomeMods
| Date uploaded | 2 weeks ago |
| Version | 0.10.0 |
| Download link | AwesomeMods-TitlesMod-0.10.0.zip |
| Downloads | 36 |
| Dependency string | AwesomeMods-TitlesMod-0.10.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2202ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.2README
TitlesMod
Work in progress: this mod is still in development and testing, so expect bugs and balance changes. Titles, names and bonuses may still change between versions. The code was generated with AI assistance.
Earn titles as you play Valheim and build your own full title from them, like Dragonslayer's Adept Runner of the Mistlands or Unbroken Jack of All Trades, Lumberjack. All equipped titles give their bonuses.
Building your title
A full title has five parts: prefix - word - main title - word - suffix.
- Main title (middle): skill thresholds like Adept Runner, and Jack of All Trades.
- Epithets (prefix or suffix, your choice): every other title, like Dragonslayer, Lumberjack, Mistlands, Unbroken. One epithet can't be in both places at once, and tiers of the same ladder (like Dead and Lich) don't stack: equipping one removes the other.
- Connecting words between them, picked from a list: the, of, of the, from, and, or, 's, :, ,, - or none. Server owners can change the list in the config.
Examples: Dragonslayer's Adept Runner of the Mistlands, Lumberjack and Master Miner the Unbroken, Bronzesmith: Novice Cook.
How to earn titles
| Type | Example |
|---|---|
| Discover a biome | Mistlands: enter the Mistlands (+5 Dodge) |
| Discover an item | Bronzesmith: discover bronze (+5 Crafting) |
| Learn a recipe | Fisher: learn to craft a fishing rod (+5 Fishing) |
| Craft ammo | Fletcher: craft 1000 arrows (+10 Bows). Boltwright: craft 1000 bolts (+10 Crossbows) |
| Gather resources | Lumberjack: gather 500 wood (+5 Wood Cutting) |
| Build | DIY (10), Handyman/Handywoman (100), Builder (1000), Designer (5000), Architect (10000): +5% chance per tier that a wood or stone piece costs no materials (Architect 25%) |
| Repair | Fixer (100 hammer repairs): damaged buildings within 2 m repair themselves. Mender (1000): within 10 m |
| Get a specific drop | Serpent Hunter: obtain a serpent trophy (+5 Spears) |
| Defeat a boss | Dragonslayer: defeat Moder (+5 Swords) |
| Combat | Monster Hunter: defeat 500 creatures (+5 Blocking) |
| Die | Dead (1), Undead (10), Death (50), Lich (100), Eternal (1000): -10% skill loss on death per tier (Eternal -50%) |
| Progression (main) | Jack of All Trades: get 5 skills above level 20 (+100% skill experience = double XP) |
| Progression | Unbroken: get 10 skills to level 10 (every skill is kept at its highest threshold on death) |
| Skill threshold (main) | Adept Runner: reach Run level 50 (Run never drops below 50 on death, -9% run stamina) |
With PaladinMod installed there is also Paladin (main title): craft your first consecrated shield (+10% armor).
Plus a few rewards for finishing a whole set, like Worldwalker (every biome) and a hidden title for every boss.
Unbroken
While Unbroken is equipped, dying never lowers any skill (modded skills too) below the highest threshold (10, 25, 50, 75, 90, 100) it has reached. A skill at 62 stays at 50 or more, one at 31 stays at 25 or more. Skills below 10 lose levels as usual.
Skill threshold titles
Every vanilla skill has six threshold titles: Novice (10), Apprentice (25), Adept (50), Veteran (75), Master (90) and Legendary (100). While one is equipped, dying never lowers that skill below its level. Other skills still lose levels as usual. Threshold titles never add levels to the skill itself.
Each skill also gives a fitting perk that grows with the tier (Legendary = 6x Novice):
| Skill | Perk per tier | Skill | Perk per tier | |
|---|---|---|---|---|
| Swords | +2% stamina regen | Run | -3% run stamina | |
| Knives | -2% attack stamina | Jump | -3% jump stamina, -5% fall damage | |
| Clubs | +1 armor | Sneak | -4% sneak stamina | |
| Polearms | +3 max health | Swim | -4% swim stamina | |
| Spears | +3 max stamina | Dodge | -3% dodge stamina | |
| Axes | +1 armor | Ride | +2 max stamina | |
| Bows | +2% stamina regen | Fishing | +2% stamina regen | |
| Crossbows | +2 max health | Cooking | +3% health regen | |
| Unarmed | +3 max health | Farming | +2 max health | |
| Blocking | -3% block stamina | Crafting | +10 carry weight | |
| Elemental Magic | +3% Eitr regen | Pickaxes | +4% mining damage | |
| Blood Magic | 0.5% lifesteal, +2 max Eitr | Wood Cutting | +4% chop damage |
The titles window shows the tiers you earned plus only the next one for each skill.
- Press Shift+F9 to open the titles window. Main titles have an Equip button, epithets have Prefix and Suffix buttons. The two buttons at the top pick the connecting words, and the Type button filters the list.
- Other players see your full title under your name.
- Progress is saved on your character, so it follows you to every world and server.
- Gathering counts items you pick up from the world. Picking up items that someone dropped, or that fell out of a broken chest, does not count.
- A kill counts if you hit the creature within 60 seconds before it died, so everyone who helps with a boss gets credit.
Console commands (F5)
titles: list all titles and their idstitle <id> [prefix|suffix]: equip a title you earned.title noneremoves all,title none prefix(ormain,suffix) empties one place.title_word <prefix|suffix> <word>: the connecting word after the prefix / before the suffix, e.g.title_word suffix of the.noneremoves it.titles_unlock <id|all>: (needs devcommands) unlock titles for testingtitles_reset: (needs devcommands) remove all titles and progress from this character
Config
BepInEx/config/com.yourname.titlesmod.cfg: menu shortcut, a multiplier for all skill and stat bonuses (0 = no bonuses, death protection still works), the kill credit time, whether to show titles on name tags, the list of connecting words, and the option to turn off the built-in titles.
Feedback
This mod is still being tested. Bug reports and balance feedback are very welcome!
For mod authors
Any mod can add its own titles, or add bonuses for its own skills to existing titles.
- Reference
TitlesMod.dllin your project (the XML docs ship next to it). - Add
[BepInDependency("com.yourname.titlesmod")]to your plugin class. - Call the API from your plugin's
Awake():
using TitlesMod;
// A new title with your own requirement and a bonus for your own skill.
// Skills are named by their vanilla name ("Swords", "Run", "All")
// or by the Jotunn skill identifier you registered.
TitleAPI.RegisterTitle(
new TitleDefinition("mymod_master_chef", "Master Chef", "Cook 200 meals.")
.Require(TitleRequirement.Counter("mymod:meals_cooked", 200, "Cook meals"))
.Bonus("Cooking", 5)
.Bonus("com.me.mymod.baking", 10));
// Raise your counter whenever it happens in your mod.
TitleAPI.IncrementCounter("mymod:meals_cooked");
// Add a bonus for your skill to a title from this mod (or any other mod).
// This works even if that title is registered after your mod loads.
TitleAPI.AddSkillBonus("boss_eikthyr", "com.me.mymod.baking", 5);
TitleAPI.AddSkillBonus("gather_wood", mySkillType, 5); // or the SkillType Jotunn gave you
// Skill threshold title for your own skill: unlocked at level 50, and while equipped
// the skill never drops below 50 on death.
TitleAPI.RegisterTitle(TitleDefinition.SkillMilestone("mymod_baker_50", "Master Baker", "com.me.mymod.baking", 50, "Baking"));
// Or protect your skill on an existing title.
TitleAPI.AddSkillFloor("boss_eikthyr", "com.me.mymod.baking", 25);
// Stat bonuses while equipped (keys in TitleStats: HealthRegen, StaminaRegen, EitrRegen, MaxHealth,
// MaxStamina, MaxEitr, Armor, ArmorPercent, Lifesteal, ChopDamage, MiningDamage, CarryWeight, RunStamina, JumpStamina,
// SwimStamina, SneakStamina, DodgeStamina, AttackStamina, BlockStamina, FallDamage, SkillGain, DeathSkillLoss, FreeBuildChance, RepairAura).
TitleAPI.AddStatBonus("mymod_baker_50", TitleStats.HealthRegen, 10);
// Your own stat: give it a label, then apply it yourself in your mod.
TitleStats.RegisterLabel("mymod:BakingSpeed", "+{0}% baking speed");
TitleAPI.AddStatBonus("mymod_baker_50", "mymod:BakingSpeed", 15);
float bakingBonus = TitleAPI.GetStatBonus("mymod:BakingSpeed");
// Titles are main titles by default. Epithets go in front or after, the player decides,
// so give them a plain noun name that reads well on both sides ("Breadmaker").
TitleAPI.RegisterTitle(new TitleDefinition("mymod_bread", "Breadmaker", "Bake 50 breads.")
.AsEpithet()
.Require(TitleRequirement.Counter("mymod:bread", 50, "Bake bread")));
TitleDefinition prefix = TitleAPI.GetEquippedTitle(TitleSlot.Prefix);
string full = TitleAPI.GetFullTitle(); // "Breadmaker's Master Baker of the Mistlands"
TitleAPI.AddConnector("for"); // one more connecting word players can pick
// Keep every skill at the highest of these levels it has reached when dying.
new TitleDefinition("mymod_safe", "Steadfast", "...").ProtectAllSkillsAtTiers(20, 40, 60, 80);
// A tier ladder: give titles the same group and register them lowest first.
// The titles window then shows only the earned tiers plus the next one.
TitleAPI.RegisterTitle(TitleDefinition.SkillMilestone("mymod_baker_75", "Grand Baker", "com.me.mymod.baking", 75, "Baking"));
SkillMilestone already puts titles of the same skill in one group ("skill:<name>"). For other ladders use .SetGroup("mymod:fish").
Requirement helpers (prefab names are the same as for the spawn command):
| Helper | Meaning |
|---|---|
DiscoverBiome(Heightmap.Biome.Plains) |
enter a biome |
DiscoverItem("Silver") |
have ever held the item |
KnowRecipe("FishingRod") |
know the crafting recipe |
Gather("Wood", 500) |
pick up this many from the world |
Obtain("TrophyWolf") |
pick up a specific drop once |
Build("piece_workbench", 1) or Build("*", 100) |
place pieces |
Kill("Eikthyr") or Kill("*", 500) |
help kill creatures |
Counter(key, amount, label) |
your own counter (TitleAPI.IncrementCounter) |
SkillLevel("Run", 50) |
reach a skill level (real level, without bonuses or buffs) |
SkillsAbove(5, 20) |
have this many skills (any, including modded) above a level |
SkillsAtLeast(10, 10) |
same, but the level itself counts too (level 10 or higher) |
Craft("ArrowFire", 200) |
craft this many items (20 per arrow craft; Valheim's own statistic, so older crafts count) |
CraftAmmo(AmmoArrows, 1000, "Craft arrows") |
craft any ammo of one type (AmmoArrows, AmmoBolts, or a modded ammo type) |
Die(10) |
die this many times (Valheim's own death count, so older deaths count) |
HasTitle("boss_eikthyr") |
another title is already earned |
Custom(player => ..., label) |
any check you write |
You can also subclass TitleRequirement, grant a title directly with TitleAPI.Unlock(id), and listen to TitleAPI.OnTitleUnlocked / TitleAPI.OnTitleEquipped / TitleAPI.OnSlotChanged. TitleAPI.GetSkillBonus(skill) and TitleAPI.GetSkillFloor(skill) return what the equipped titles currently give. TitleAPI.GetEquippedTitle() without a slot returns the main title.
The bonus is applied in Skills.GetSkillLevel, the same method every skill check uses, so your skill gets the bonus without any extra patch on your side.
Optional dependency
If your mod should also work without TitlesMod, use [BepInDependency("com.yourname.titlesmod", BepInDependency.DependencyFlags.SoftDependency)] and keep every TitlesMod call in a separate class, called only when Chainloader.PluginInfos.ContainsKey("com.yourname.titlesmod") is true. That way your mod never loads TitlesMod types when it is missing.
CHANGELOG
Changelog
0.16.8
- The mod is now feature complete. Future updates will mainly add new titles and fix bugs.
- New title "Gym": be over your carry weight limit for the first time. +10 carry weight.
- New sailing ladder (distance sailed at the helm, Valheim's own statistic, so earlier sailing counts): Bait 1 km, Deckhand 10, Sailor 20, Navigator 40, Captain 60, Commodore 75, Admiral 100 km. +1/3/5/7/9/12/15% sailing speed while you steer.
- Death titles are no longer cosmetic: Gravity -10% fall damage, Extra Wet +5 Swim and -5% swim stamina, Oops +5 armor, Toasty -10% frost damage taken and +10% fire damage taken, Roadkill +15 Dodge.
- New title "Cold": get cold (or freezing) for the first time. -5% fire damage taken, +5% frost damage taken.
- New title "Freezing": start freezing for the first time. -10% fire damage taken, +10% frost damage taken.
- New title "Noob": join a world with a brand new character. +5 max health, +10 max stamina, +15 carry weight.
- New title "Meadows": enter the Meadows. +5 Bows.
- New counter: time spent sitting while resting (Resting status effect: by a fire, under a roof).
- New meditation ladder (time sitting while resting): "Mindful" (10 seconds), "Meditator" (1 minute), "Serene" (5 minutes), "Zen" (30 minutes), "Enlightened" (1 hour), "Sage" (24 hours). +10% Eitr regen per tier up to Enlightened (+50%); Sage +100%.
- New cosmetic titles "Chill", "Relax", "Jacuzzi" and "Moist": get into a hot tub for the first time.
- New blood magic ladder: "Bloody" (first spell, +10 max health, +10% health regen), "Bloodied" (10 spells, +20/+20%), "Blood" (50 spells, +30/+30%).
- Leaper ladder rebalanced: jump stamina -4/11/18/26/33/40%, fall damage -5/14/23/32/41/50% (Novice to Legendary).
- Without a prefix, the "word after prefix" now still shows in front of the main title: "The Fish", "Never Dead". Words that attach to the title before them ('s, :, er, ...) are left out when there is nothing before them.
- Performance: trackers (map exploration, biomes, dungeons, days played, resting, hot tub) stop running once you have earned every title that needs them. Counter progress is saved at most once per second.
- Fixed: titles with a long bonus text (like Bloodbinder) overlapped the next row in the titles window. Their text now shrinks to fit.
- The titles window filter has a new option "Show: Unearned": only the titles you have not earned yet.
- New cosmetic dungeon titles, earned the first time you enter: Burial, Chamber and Dungeon (burial chambers), Smouldering and Tomb, Sunken and Crypt, Cave (frost caves), Howling and Cavern, Sealed and Tower, Infested and Mine, Fortress (Charred fortress).