objects and references in Elder Scrolls Oblivion

The word "Object" in the game engine for "ES 4:Oblivion" -- as seen in the "Construction Set", or at the game Console -- is an abbreviation of "Object Type".

In other words, the term "Object" does not refer to a specific person, place, or thing, but rather to all instances of a TYPE of person, place, or thing. Specific instances of an OBJECT-TYPE are called either REFERENCES or INSTANCES.

Here's an conceptual example of a game object-type (an "Object") :

Chair < an Object (a type of Object; refers to all instances of Chairs of that type throughout the game)
|- a "Chair" (Identifier1) < a specific "instance" of a chair that appears in the game
|- a "Chair" (Identifier2) < another specific "instance" of a chair that appears in the game
|- a "Chair" (Identifier3) < another specific"instance" of a chair that appears in the game
|- et cetera

Note: the word "Object" ('Object Type', i.e. class of objects) in the context of Oblivion modifications should not be confused with the word "object" as it is used in programming (e.g. "object-oriented programming").

 

OBJECTs use what are called "Base Identifiers"-- abbreviated as "BaseID" ("BaseIDs").

REFERENCES use what are called "Reference Identifiers" -- abbreviated as "RefID" ("RefIDs").

 

To clarify these terms further, you could think of these things as Object-Types ("Objects") and Object-References ("References").

Note: Both OBJECT IDs and REFERENCE IDs may be referred to as using the short-form "formID".

= "BaseIDs" and "Records" =

Objects placed into the game world have two main identifiers, known as "FormIDs": the reference Form Identifier (the RefID) -- associated with that particular placed object-- and the base Form Identifier (the BaseID) -- used for all versions of that same object.

All objects are identified by a FormID (a 'hexid'). In the Construction Set for ES ("CS4.x"), you'll see FormIDs as an 8 digit hexadecimal number (for example, [0002457E]).

For example, every copy of the book "On Oblivion" has the same BaseID of [0002457E].
That BaseID record contains information such as the weight, value, appearance, and text of the book.

Using the same conceptual model given in the example above, we get :

Chair (BaseID) < an Object (a type of Object; identified with a BaseID )
|- a "Chair" (RefID) < a specific "instance" of a chair that appears in the game
|- a "Chair" (RefID) < another specific "instance" of a chair that appears in the game
|- a "Chair" (RefID) < another specific "instance" of a chair that appears in the game
|- et cetera

The type of record used for the BaseID depends upon the type of item. Records that are used exclusively for BaseIDs include:

There are only three types of records used for RefIDs; the specific type of record depends upon the object-type:

In the CS, when you look at objects in the "Cell View", the IDs are all RefIDs;
if you edit the object, the BaseID is provided under "Base Object" (and "Edit Base" allows you to edit it).

Note: An EditorId is the plain text Identifier of a REFERNCE (referenced object; e.g. [BearPelt01]).

 

Suggested syntax for documenting Functions and Commands:

To refer to a variable ReferenceID, use angle-brackets to indicate "this is a variable", and, where possible, preface the 'RefID' part with the suggested type of thing. Example:

placeatme <Object-RefID>
(This example spawns a thing at "me", i.e the Player Character. It's recommended for items, not NPCs...)

To refer to a variable BaseID, use angle-brackets to indicate "this is a variable", and, where possible, preface the 'BaseID' part with the suggested type of thing. Example:

player.moveto <NPC-BaseId>

(This example moves the Player-Character to the location of an NPC.)

 

Related Console Command / Example of Terminology :

[prid <RefId>] - Selects an existing INSTANCE of an object/creature/NPC using its reference FormID (RefID).
All subsequent targeted commands that use a Reference will use this object-INSTANCE (Reference) as the target. This is the same as clicking on the object-INSTANCE in the Console -- the difference is that this command can be used if the object-INSTANCE is invisible or in a different area. (from P___RefID?)


 

< back to Laisren's Oblivion Game Blog

This page by Laisren, last updated March 27, 2008 8:19 PM . Some rights reserved.
Reference sources include: [1], [2]