Live Game Skill/Web Changes

If you have a published game and you make changes to a skill or web, you have to consider how those changes may affect the players' save files. Saved data will not automatically reflect the new changes. Data may be lost and/or errors may occur. New players (or new save files) will not experience any issues.

Deleted Skills

Any of your code referencing deleted skills will need to be removed or updated. Otherwise, it may result in an error.

Old saves may still reference the deleted skill, however, once the save is overwritten, the reference will likely be removed. If another skill in a web required a connection to the deleted skill, that skill may become unobtained. Note that the points spent on the skill are not automatically returned to the player. See Dangling Levels.

Deleted Webs

Any code that references deleted skill webs must be updated or removed, as leaving those references intact may lead to errors.

Old save files may still contain references to deleted skill webs; however, these references are not loaded unless your code explicitly attempts to access them, so errors are unlikely in most cases. The outdated references can either be manually removed from the save data or automatically overwritten, depending on how your save system handles overwrites.

Web Changes

Skill Node Position Adjustments

This should not result in any errors or lost data.

Replacing the Skill of a Skill Node

This should not result in any errors, but may result in permanently lost levels if the replaced skill's max level differs from the original. This may result in Dangling Levels.

Deleted Skill Nodes

Any code that references deleted skill nodes must be updated or removed, as leaving those references intact may lead to errors.

Old saves may still reference the deleted skill node, however, once the save is overwritten, the reference will likely be removed. If another skill in the web required a connection to the deleted skill node, that skill may become unobtained. Note that the points spent on the skill are not automatically returned to the player. See Dangling Levels.

Deleted Connections

This may cause certain skill nodes that depend on previously obtained connections to become unobtained, resulting in Dangling Levels. However, this should not cause any functional issues beyond that.

Dangling Levels

A dangling level refers to a skill level that can no longer be associated with any existing skill—typically because that skill was deleted or modified. Note that this represents the level itself, not the currency or cost originally spent to obtain it.

You can use this information to compensate players for any skill points lost due to changes in skills or skill webs.

Listen to the Web.onDanglingLevelsDetected event to trigger custom logic when this situation occurs.

Web.onDanglingLevelsDetected.AddListener((web, danglingLevels) =>
{
    Debug.Log($"{danglingLevels} dangling levels were detected!");
});

Dangling levels are lost forever after the affected save data is overwritten.

Other Issues

Are you getting any other issues related to skill or web changes? Consider Getting Help.

Last updated