Enhanced Progress Tracker
Adds additional, consistent, global keys. Enables seamless player or tribe based global key checks.
Last updated | 3 years ago |
Total downloads | 4432 |
Total rating | 1 |
Categories | Mods Utility |
Dependency string | ASharpPen-Enhanced_Progress_Tracker-1.0.1 |
Dependants | 15 other packages depend on this package |
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.800README
Enhanced Progress Tracker
This mod enables additional features for the global key management, which handles general in-game progress.
Do you find the inconsistency of the key naming annoying? This mod adds keys for any mob (including modded ones), with a consistent naming scheme.
It also attempts to allow for individual and group based progress. Only relevant for multiplayer.
Features
- Global key for any mob killed
- Consistent key naming
- Create tribes of players, for shared progress tracking.
- Player based global keys
- Tribe based global keys
- Server-to-client configs
Limitations
Unable to use individual / tribe keys automatically, in the parts of valheim that run server-side. Eg. raids.
Any mod that tries to use the "raw" list of keys, will get all of the keys generated by this mod, and not a list specific to the individual/tribe. The mod will either have to filter itself, or check for key-existance using the standard "GetGlobalKey".
How does it work?
Enhanced Progress Tracker sets additional keys on creature death. It makes a lot of them, to allow for selecting which tracking mode is used. The individual and tribe keys will simply have a specifier for type of key, as well as the name of player or tribe.
When the game checks for progress, it asks for the existance of a specific key, such as "defeated_bonemass". Depending on the key-mode set, EPT will then check for keys that are more specific, such as "defeated_bonemass:Player:Asharppen" and return whether or not it finds it.
If using key-mode "Tribe", and a player is not in one, that player will be getting the default world progress.
What do the keys look like?
New keys will be named: KILLED_{PREFABNAME} Eg. "KILLED_GREYDWARF_ELITE"
Additional keys with specifiers will also be added for both default, and the new format above:
KILLED_{PREFABNAME}:Player:{PlayerName}
KILLED_{PREFABNAME}:Tribe:{TribeName}
Eg. killing bonemass with all keys enabled, generates the following:
KILLED_BONEMASS
KILLED_BONEMASS:Player:Asharppen
KILLED_BONEMASS:Tribe:AsharppensTribe
defeated_bonemass
defeated_bonemass:Player:Asharppen
defeated_bonemass:Tribe:AsharppensTribe
If you are in doubt how a key looks, you can always use the console "listkeys" to list all the keys registered in the world.
Creating a tribe
Tribes are created / added to in the "enhanced_progress_tracker.tribes.cfg". A player can only be in one tribe.
[TribeName.UniqueIndex]
Name = PlayerName
Eg.
[MyTribe.0]
Name = Asharppen
[TestTribe.0]
Name = APlayer
[TestTribe.15]
Name = TestTesterson
Configuration
General configuration can be found in the "enhanced_progress_tracker.cfg" file.
[General]
## Choose key tracking mode. This decides how progress is tracked. Default, Player, Tribe.
KeyMode = Default
[Keys]
## Enables player key recording. Meaning each player will get a global key recorded, when a creature dies.
RecordPlayerKeys = true
## Enables tribe key recording. Meaning each tribe will get a global key recorded, when a creature dies.
RecordTribeKeys = true
[KillTracking]
## If players are within the set distance on creature death, they will have their (or their tribe's) progress updated. If 0 or less, this setting is disabled.
TrackPlayersWithinDistance = 100
Mod integrating/depending on EPT:
Generally any mod that uses global keys, and is not running server-side, will have to make no changes to be able to use the enhanced keys.
If in need of the individual/tribal keys while server-side, a dependency will be required.
EPT has an extension class for ZoneSystem that allows for checking global keys, with more parameters added to the key check.
Eg. ZoneSystem.instance.HasGlobalKey(Player.m_localPlayer, "defeated_bonemass");
ChangeLog
v1.0.1
- Additional error descriptions and handling. v1.0.0
- Initial release