About this mod
This framework allows mod authors to inject custom achievements in game, which can be viewed from an in-game menu.
- Requirements
- Permissions and credits
-
Translations
- Spanish
- Russian
- Polish
- Mandarin
- Italian
- German
- French
- Changelogs
Skip the spoiler if you're not interested in the idea behind the mod.
The first time I noticed that it would be great if mods had achievements was with jayserpa's Leaps of Faith, which gave you a bonus each time you completed a jump, and I thought it would be great to have achievements for completing all 12 jumps. Then in 2023 I played some well known quest mods such as The Forgotten City, BS: Bruma, Project AHO, and again I thought how cool it would be to have achievements for those.
However, these things usually require you to add events to the game and then you need to code the event listeners in papryus, add the globals, and even then you cannot inject achievements into steam, and up until a few weeks ago I didn't have much knowledge regarding mod making (nor I claim to have it now).
Then recently many frameworks came out that allowed users to define their own implementation of things without having to touch a single line of code, such as Description Framework and The Dragonborn's Bestiary, which prompted me to see if something could be done to allow users and especially mod authors to define custom achievements, using only a simple json file, without touching a single line of Papryus or C++. This, to me, is huge, because it means that no patches are required to inject the achievements and even users who don't know how to code can create their own, as seen with all the addons made for TDB and Description Framework.
Via the MCM Settings or ini file you will be able to choose whether you want a popup to appear (for immersion puposes) upon achievement unlock, whether you want to disable the popup sound and if you do use a sound, you will be able to select between some pre-determined sounds to play - similarly to how you can select ringtones in your phone, with the default being the skill levelup sound as I found it fitting.
You can also choose whether to use per-character achievements or global achievements. In the first case the mod will generate a file for each character you have, while in the second case, the achievements will be shared between characters.
NOTE: if you have multiple characters with the same name (firstly: why would you?) the framework will use the same json file for the achievements, which means that you will have the same achievements unlocked for both characters.
The framework is also somewhat able to check whether you have completed an achievement previously to its installation, although not for all achievements.
NEW in 1.1:
- If an achievement gets stucked and isn't unlocking you can now force the unlock via console commands, if you installed Custom Console.
The command to run is the following:
ai uach --name "Achievement Name" --group "AchievementGroup"
which stands for "AchievementInjector UnlockAchievement". Note that the group name is the name of the json configuration file, so SkyrimSE, Dawnguard, Dragonborn, etc.While not a requirement, I still recommend Achievements Mods Enabler if you want the base game achievements to be also counted by steam, and in case you want to reset your steam achievements to reacquire them, Steam Achievement Manager allows you to do just that with a simple interface.
- The Sinister Seven, configuration made by me, integrated in the FOMOD.
- A Tale of Blood and Snow, configuration made by DarthVitrial, integrated in the FOMOD.
- Vigilant, configuration made by Vicn and Aelarr (jap, eng).
- Unslaad, configuration made by Vicn and Aelarr (jap, eng).
- Sirenroot, configuration made by Everglaid, found in Sirenroot's modpage.
- Grave Digging, configuration made by CAMGS11235, found in their modpage.
- Idrinth Thalui, configuration made by Idrinth, found in their modpage.
- Legacy of the Dragonborn configuration made by Dragonify, found on this modpage.
- Bards College Expansion, Clockwork, Falskaar, Moon and Star and Moonpath to Elsweyr also got configurations made by Dragonify on this modpage.
- Wyrmstooth, Carved Brink, Leaps of Faith, Project AHO, Ascend and Beyond Skyrim: Bruma, configurations made by Zmea on this modpage.
- Aethernautics, Blackreach Railroad, Brhuce Hammar Legacy, Dwemer Spectres, The Lost Wonders of Mzark and The Wheels of Lull, configurations by reissue1426 on this modpage.
- Wayshrines of the Hold, configuration made by Durai and included in WotH's modpage.
- East Empire Expansion, configuration made by Spacedroner and found on this modpage.
This should honestly be compatible with everything. It's just a .dll mod that reads game events and serializes them from and into json files, so I don't see it being incompatible with other stuff. The .esp is also eslified so it will not take a full mod slot. About mod intergrations:
- Compatible with Proteus. If you don't want achievements to change for each character enable global achievements.
- In theory this should be compatible with locations added by CoMAP, but I haven't tested it.
- An Untarnished UI patch is available in the FOMOD, and another one was made by Wuerfelhusten and is available here. (Not updated to 1.1)
- An Outlander UI patch is available in their modpage.
Always check that UI Patches are updated to the latest version of the mod or you could miss on UI features if the menus have been updated.
I will state here that due to its dll nature and the fact that I save data in external files, the mod is safe to install and uninstall at any time. If you uninstall it and then reinstall it, it will try to keep up with what's happened during the previous period and try to understand if you've completed more achievements in the meantime.
As of version 1.0, some vanilla achievements are not working:
- Artificier - limited functionality, received after crafting any item;
- Master Criminal;
- Architect;
- Solstheim Explorer;
- Auriel's Bow.
I'm still proud that out of 75 achievements, only 5 aren't working.
All configurations will be loaed into "Data/AchievementInjector/" and most stuff is logged into "~/Documents/My Games/Skyrim/SKSE/".
You can also check the the configuration file schema provided on github.
Currently there are 20 event types that you can configure to create your achievements.
While it's true that you don't need to code anything to create a configuration file, it's also true that you will most likely need to know some creation kit or xedit basics to find the formid of most stuff, which is however less taxing than learning a whole language I guess. If your mod requires other events, let me know and we can talk about adding more.
Advanced features include:
- Ability to localize achievement entries.
- Ability to run console command on achievement completion.
- Ability to customize the unlock sound of your achievement.
To make it easy for mod authors to adapt to the APIs of the mod I've written a wiki page that you can find here. It also contains informations about how to using the creation kit so if you don't have muh experience go check it out.
If you need further assistance either DM me here on nexus or join this discord server where I have a dedicate subspace.
Another special mention goes to Komegaki that created the icons for the configurations available in the base FOMOD. When I realized that I suck at art they were the first author to come to mind, and they've been so available since the very first time I asked that they really deserve the special mention. Kudos to you kome!
Here is instead a list of all the other people that helped me with suggestions and code revisions, which is probably too short of a list as so many more people helped me but getting all of them on a list would probably make me write an entire book, so yeah here we go:
- Thanks to CharmedBaryon for maintaining CommonlibSSE-NG.
- Thanks to JPSteel and OsmosisWrench for helping me understand the very basics of how flash works.
- Thanks to Solus, NoahBoddie, Shekhinaga and PO3 for the many suggestions and their support throughout the development.
- Thanks to Doodlum for their Ko-fi widget.
- Thanks to Everglaid, Vicn and DarthVitrial for basically testing the framework while writing their own configurations.
- Thanks to cozysienna for the thumbnail image.
And thanks to everyone else from the r/skyrimmods discord that have helped in minor ways, you guys are awesome and you're too many to put in a list.