[Resource] TR_Mainland CS ID Guidelines

[This page is outdated! See instead the wiki page: https://wiki.project-tamriel.com/wiki/Tamriel_Data_ID_Guidelines]

These are ID naming conventions for the content files of Tamriel Rebuilt, such as TR_Mainland.esm and the in-development claims and release files that will be merged in it. This concerns new objects or scripts created when working on TR claims or section files -- objects that are typically unique or tied to a specific claim, rather than the generic objects used repeatedly throughout the entire mod.

These are NOT the more strict ID conventions for assets in Tamriel_Data, the unified BSA/ESM that Tamriel Rebuilt and Project Tamriel use. If you are creating CS objects for a TR asset, those will go in Tamriel_Data and use Tamriel_Data's naming scheme (starting with "T_", not with "TR_").

 

General pattern

TR_[map]_[location]_[...]_[what is it]

Ideally the ID of an object would tell you what it is, where it is, and what it's for, but IDs are limited to either 23 or 31 characters:

  • up to 23 characters for NPCs, Creatures, Containers
  • up to 31 characters for anything else

While in the Construction Set, you don't have to keep count of characters except for scripts and journals/topics -- the CS will truncate IDs if they go over the limit. Hence the character limit is something you only need to keep in mind for script or journal IDs or when using other editors like tes3cmd to modify IDs.

[Map]: see below.
[Location] may refer to the settlement (if available) or region, initials or a shortened version of the claim name, whatever is most convenient.
Other optional prefixes for specific object types are described in examples on this page -- they can show that the object is linked with a quest  (_q_), linked to a faction (_MG_, _FG_...)...
Prefixes indicating object type (such as Container, Light) are not generally needed unless objects from different types could try to use the same ID: if an ID already says "chest", it has no need for a "_cont_" prefix. Again scripts and journals/topics are an exception as the CS lets you give them the same name as existing objects, which leads to errors later -- for scripts adding a _sc_ prefix or suffix is best.
 

 
Map

The map ("m0"/"m1" to "m7") division, pictured below, is an arbitrary geographic division roughly tied to the borders of Imperial districts. While it no longer corresponds to public release steps, it is used both for internal organisation and for wide dialogue filtering.

The map prefix gives a general idea of which part of the mod an object is linked to. The prefix is _m4_ if the object is located in map 4.
More rarely objects in the Vvardenfell area can use "m0", typically for TR content plugins such as TR_Factions.
For interiors, "_i" can also be used instead of "_m" and can show that the object was simply one added during the interior development phase.

Always add this prefix, even when something else in the ID already points to a more specific location. Think town initials are enough? Look at m1 journal IDs and see if you can guess where these quests take place.
 

 
Examples

These examples illustrate general guidelines. When making new object IDs, don't rely on the first TR objects you can see listed in the CS. Some old ones don't follow any convention and every now and then new incorrect IDs seep through.

 

New objects in Interior/Exterior claims

Notes: see the Interior modding tutorial for how to name the cell. You can also use that plus a map prefix as a basis for any new object IDs.

ID ok?  
T_MwDe_andasdesk no! - IDs starting with "T_" are Tamriel_Data IDs
TR_furn_andasdesk no! - missing map prefix
TR_m4_andasdesk ok - could use more claim/location info
TR_m4_andothren_andasdesk too long - would be ok if it weren't a container (character limit)
TR_m4_andoth_andasdesk good  
TR_i4_andoth_andasdesk good - interiors may use "i" instead of m

 

NPCs

Notes:
"_o_" - denotes a hostile NPC
"_s_" - a slave
"_q_" - quest NPCs, typically not present by default

ID ok?  
T_Mw_Amelphia no! - IDs starting with "T_" are Tamriel_Data IDs
TR_Amelphia no! - missing map prefix
TR_m3_Amelphia ok - preferably add last name if there is one
TR_m3_Amelphia_Tarramon good  
TR_m3_o_Amelphia good - a hostile NPC
TR_m3_q_Amelphia good - a NPC enabled by a quest
TR_m3_OE_MG_Amelphia good - a NPC with faction(MG)/location(OE)

 

Script IDs

Notes:
The compiler doesn't verify that script IDs are different from object/journal IDs.

ID ok?  
T_ScNpc_Mw_Map3_Amelphia no! - IDs starting with "T_" are Tamriel_Data IDs
TR_Amelphia_Sc no! - missing map prefix
TR_m3_Amelphia no! - can not be distinguished from the ID of the object/NPC it's on
TR_m3_Amelphia_sc good  
TR_m3_sc_NPC_Amelphia good  
TR_m3_OE_MG_AmelphiaSC good  
TR_m3_OE_MG_q_AmelphiaTarramon_SC no! - over 31 characters

 

Journal IDs

General pattern:
TR_[map]_[Faction initials if any]_[Settlement initials or "wil"derness otherwise]_[Quest title or Faction questgiver]

Notes:
The CS doesn't verify that journal IDs are different from object/script IDs. Just take care not to give any object the same ID as your journal.

ID ok?  
TT_Foeburner no! - missing TR
TR_Wil_Foeburner no! - missing map prefix
TR_m3_Foeburner no - missing location or faction
TR_m3_wil_Foeburner good - a misc quest started in the wilderness, in a dungeon...
TR_m3_OE_Foeburner good - a misc quest started in Old Ebonheart
TR_m3_TG_Foeburner good - a Thieves Guild quest
TR_m3_TG_Fentus1 good - a Thieves Guild quest given by Fentus
TR_m3_TG_OE_Fentus5_LostInChunzefk no - over 31 characters

 

Quest object IDs

ID ok?  
T_De_q_Pillow no! - IDs starting with "T_" are Tamriel_Data IDs
TR_cheesegs no! - what the hell?
TR_m3_cheesegs ??? - what's this?
TR_m3_q_cheesegs ??? - it's a quest item, but...?
TR_m3_OE_q_cheesegs ok - it's linked to a quest in OE
TR_m3_OE_MG_cheesegs good - still don't know what's cheesegs, but it's in an OE Mages Guild quest

 

Assets

What are you doing here? no! Go away!