<p>Translation IDs are 6-or-8-character strings. I like to use letters and follow a pattern, so random words can bubble up through the babble. </p>
<p>TL keys are 6 characters (favoring letters), and "de" is prefixed for their description. The first 2 letters indicate the category, while the last 4 indicate the individual. The last four are kind of freeform, usually the first 2 letters of each word of the English display name. If it's only one word, then it's its first 4 letters. If it's too short, "a" is suffixed for padding. If that pattern would recreate an existing code, I smudge which significant name characters are taken. If "a" is already used, I use "b," "c," all the way to 9. </p>
<p>Base IDs apply to a few other things, but it's virtually only for entities. They identify a specific type of entity, not a particular instance of that entity. They are 6-character hexadecimal strings (favoring numbers). I like that they correspond to color hex codes, so I can find out everyone's secret color. Generally, a category's earliest and most representative entities are the purest in hue. </p>
<p>The first three digits represent categorization, while the last increment by one for each member within that group. Commons start at 000 and increment numerically, while elites and bosses start at aaa and increment alphabetically. </p>
<p>Every entity with the base.gd script has a ref ID that is an integer between 0 and ∞. It identifies a specific instance of an entity. </p>
<h2>structure </h2>
<h3>translation key </h3>
<p>Every entity has an exported String name_key variable, and its desc_key can be derived from it by prefixing it with "de." </p>
<p>Every entity also has the <code>get_display_name</code> and <code>write_name</code> methods (same thing), plus <code>write_desc</code>. Use these to get the name and desc. </p>
<h3>base ID </h3>
<p>Every entity has an exported Color base_id variable. It also has a reference to the player_base_id and perk base ids. </p>
<p>Get the base_id with <code>get_base_id()</code> (as Color) and <code>get_base_id_in_hex()</code> (in a String). </p>
<p>To determine if the entity is the player, call <code>get_is_player()</code>. To determine if the entity is a perk, call <code>get_is_perk()</code>.
<h3>ref ID</h3>
<p>The MessageBus assigns them sequentially as integers starting at 0 during the <span class="code">_ready</span> stage of each entity. The earlier the ref ID, the older the entity. </p>