Valheim
0 of 0

File information

Last updated

Original upload

Created by

ASharpPen

Uploaded by

ASharpPen123

Virus scan

Safe to use

Tags for this mod

About this mod

Adds additional, consistent, global keys. Enables seamless player or tribe based global key checks.

Requirements
Permissions and credits
Mirrors
Changelogs
Donations
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");