tModLoader

tModLoader

857 ratings
Achievement Mod
4
3
9
4
4
2
2
   
Award
Favorite
Favorited
Unfavorite
Mod Side: Client
tModLoader Version: 1.4.3, 1.4.4
File Size
Posted
Updated
111.774 KB
Feb 2, 2023 @ 5:21pm
May 25, 2023 @ 10:36am
8 Change Notes ( view )

Subscribe to download
Achievement Mod

Description
Allows you to unlock achievements like in vanilla and allows other mods to add achievements.
Contains configuration options like having separate achievements for each player.
Adds the /achievement command which you can use to give/take/reset achievements.
Usage:
/achievement clear
/achievement grant [achievement name]
/achievement revoke [achievement name]

You can also type /achievement unlockvanilla to unlock all vanilla achievements.

Your achievements are saved to a json file which can be found in a folder called AchievementData.
The folder is found in the same place that your player and world folders are located.

For Developers:

If you are a developer and want to add an achievement use Mod.Call in PostSetupContent

Mod.Call("AddAchievement", this (reference to your mod),
Name of your achievement (string, don't put spaces),
Achievement Category (Terraria.Achievements.AchievementCategory),
Texture path (string, the texture should be 128x64, it will contain the unlocked and locked sprite of the achievement),
Custom border texture path (string, can be null, if you add a texture it should be 72x72),
Show progress bar (bool), Show achievement card (bool), Achievement card order (float), Conditions (string array))

Example:

if (ModLoader.TryGetMod("TMLAchievements", out Mod mod))
mod.Call("AddAchievement", this, "AchievementName", AchievementCategory.Collector, "YourMod/Assets/Textures/Achievement", null, false, false, 2.5f, new string[] { "Collect_" + ItemID.RodofDiscord });

This will create an achievement which you unlock by collecting a Rod of Discord

Setting show progress bar to true will show how many conditions are completed.

Achievement card order is the order of your achievement if you set show achievement card to true
The achievement Timber!! has an order of 1, while Champion of Terraria (Defeat the moon lord) has an order of 36
Setting the order will allow you put the achievement in the correct place in terms of progression.

How to add conditons:
To add a condition you simply add a string in the conditions array.
If you want to add a item condition add the string "Collect_" + the item id. Example: "Collect_" + ItemID.RodofDiscord
If you want to add a craft item condition add the string "Craft_" + the item id. Example: "Craft_" + ItemID.OnyxBlaster
If you want to add a mine tile condition add the string "Mine_" + the tile id. Example: "Mine_" + TileID.GrayBrick
If you want to add a kill npc condition add the string "Kill_" + the npc id. Example: "Kill_" + NPCID.Mimic

If you want a custom condition do "Event_ExampleEvent". Use Mod.Call("Event", "ExampleEvent"); to complete the condition.

If you want a custom value condition do "ValueEvent_ExampleValue_100". If the value reaches 100 the condition is completed. Use Mod.Call("ValueEvent", "ExampleValue", 1f); change the value by 1

Complete Example:
new string[] { "Collect_" + ItemID.AbigailsFlower, "Craft_" + ItemID.GoldenDelight, "Kill_" + NPCID.PurpleSlime }

To complete the achievement with those conditions you will need to collect abigails flower, craft a golden delight, and kill a purple slime.

Finally you will need to add an entry in the localization file of your mod for your achievement name and description.

You can type /achievement debuglist if you want the names of all achievements (including modded ones). Typing the command will print the names of all achievements to your client.log file.

You can modify this to create a texture for your achievement.

https://i.imgur.com/sO6F6Mg.png
Originally posted by tModLoader:
Developed By metalkingpig
104 Comments
LaggyCrow Apr 8 @ 7:00am 
Loving the mod, Cant wait for new update. Thank you.
"loser your mod is useless now" 🤓
keytowite Feb 24 @ 5:01pm 
man someone had a bad day at kindergarten
lilbrybry Feb 16 @ 3:16pm 
loser your mod is useless now
Repeat Jan 27 @ 8:11pm 
Would it be possible to add custom achievement categories?
Knightz Dec 8, 2023 @ 5:41pm 
me talking pig
:steamhappy:
Lion8cake Nov 1, 2023 @ 5:04pm 
that would be awesome thank you
metalkingpig  [author] Nov 1, 2023 @ 8:03am 
@Lion8cake You can't modify vanilla achievements using this mod, but I might be able to add it if you want.
Lion8cake Nov 1, 2023 @ 3:25am 
is there any way to edit existing achievement obtainment methods? Say i want to remove the Hot Reels achievement to be obtained in certain conditions, am i able to do that easily through this mod?
blahblahbal Oct 31, 2023 @ 9:07am 
Nevermind, I got it working. Had the wrong mod calling lmao.