KV

KVs is short for “Key Values” which is a computing term for a simple “something=something” type of information.

For example, you may have an Age attribute on a character which is represented through a KV, in this case the “key” would be “age” and every character might have a different value, e.g. “age=18” or “age=25” etc etc.

You should also read up on Pools and Groups as these are used to store certain specific types of information, however KVs are responsible for configuring most things about GPHUD as well as some character level data.

KVs may be attached to entities in GPHUD - instances, regions, zones, events, groups and characters.

The KV its self defines which type of object it can attach to, for example an “instance message of the day” is only ever attached to the instance - its a singular global setting for your instance.

KVs contain various data, including a type (text, integer, boolean, etc) along with a hierarchy implementation

For KVs with a hierarchy, the KV can be applied to different objects, and the end result will depend on the hierarchy type.

Such KVs have a SCOPE which determines which objects it applies to - some only make sense at a region level, some make sense at non-character levels, and some make sense at any level.

There is also a hierarchy type which can be AUTHORITATIVE, DELEGATING or CUMULATIVE.

A DELEGATING type allows values to be overridden by lower values, in the order instance, region, zone, event, group, character… So for example you could make the “Titler color” white at the instance level, but have it set as 'red' in the 'guards' group. All characters not in the guard group will find the 'lowest' value is the instance value, white, while people in the guards group will find the lowest value to be from the guards group and so their titler color will be red. You could even override this specifically at the character level. There are a lot more practical uses for this type.

An AUTHORITATIVE type simply takes the highest value in the stack, and this type is not presently used.

The CUMULATIVE type /sums/ all the values at all levels, and again this has significant use. If we consider a character attribute “Perception”, we could set this to 10 at the 'instance' level, then perhaps set this as '1' for elves (a race group), and perhaps set it to -2 in a dense jungle Zone, and perhaps attach -2 to a stormy weather event. This means that an Elf in the dense jungle during the stormy weather will have a final perception of 10 (instance level) +1 (for being an elf) -2 (in the jungle) -2 (stormy weather) = 7