Skip to content


The GuidReference system is a data association tool in IdleKit for visualizing relationships between different IEntityData (e.g., ICurrencyData contains a GuidReference to IRarityData ). They provide optional C# attributes that the user can use to link to other IEntityData in a dropdown (as shown below).



This attribute provides a link to a type of IEntityData via an identifier. It is used by the GuidReferenceHelper to link data together without using a hard reference.

e.g: Links the rarityId to an IGuidReferenceableAsset marked with GuidReferenceable(typeof(IRarityData))

    public class CurrencyData : ICurrencyData

        [SerializeField, GuidReference(typeof(IRarityData))]
        protected string _rarityId;
        public virtual string rarityId => _rarityId;



A customized attribute that helps to identify the IEntityData associated with the EntityDataAsset. The attribute enables other IEntityData to be able to link with the IEntityData in this EntityDataAsset with a GuidReference attribute.

e.g., Enables this IRarityData to be linkable in the CurrencyData

    public class RarityDataAsset : ScriptableObject, IRarityDataAsset<IRarityData>
        protected RarityData _data;
        public virtual IRarityData data => _data;

        public virtual string id =>;


The interface that marks the ScriptableObject-based EntityDataAssets.


It contains an important Unity menu items [MenuItem("IdleKit/Guids/Force Update")]. The method helps re-establish GuidReference links between the EntityDataAssets.


Used by the EntityDataAssets to render the GuidReference links in Unity inspector.