SS1984 - Modules - Types

Unique Datum Identifiers

A replacement for plain \refs. Ensures the reference still points to the exact same datum/client, but doesn't prevent GC like tags do.

An unintended side effect of how UIDs are formatted: locate() ignores the number and attempts to locate the reference. This is considered a feature — backwards compatibility.

Before: var/my_ref = "\ref[my_datum]" var/datum/thing = locate(my_ref)

After: var/my_UID = my_datum.UID() var/datum/thing = locateUID(my_UID)

/proc/UID_ofInput is not a typed variable, which allows you to use it anywhere, especially if you don't want to track datum/non-datum typing.
/proc/locateUIDLocates a datum based off of the UID
/proc/is_type_in_UID_listIf the list UID_list contains a datum UID who's type matches thing's type, returns the UID of that datum in the list. Otherwise returns null.
/datum/admin_verb/uid_logOpens a lof of UIDs