Items represent physical objects within the universe that have a mass and volume. Items exist in two forms: as stackable items or as unique items. Stackable items are identical in every way, and one is no different than the next. Unique items have additional characteristics that are not shared between other items. These two types of items are treated fundamentally differerently in the game.
Items are different than they are traditionally thought of in other games. Items are more of a Composition than a distinct thing. The most basic example of this is an Iron Plate. In most games, an Iron Plate is an item and it has predetermined stats. In Celestial Frontier, an Iron Plate has two attributes: A material (Iron) and an item type (Plate). There may be dozens of materials that can be used to make a plate, so Celestial Frontier may have dozens of different types of Metal Plates.
The fundamental requirements of every item in the game are a material type and an item type. The most basic items in the game are represented by [Material Type, Item Type]
. This might include items like [Iron, Plate]
or [Copper, Wire]
, or [V409, Damator]
. In a sense, items are a composition of attributes. The physical items are permutations and combinations of these attributes.
The item composition is more dynamic than a simple pair of attributes. Items can have additional attributes such as Size. An example of a large iron plate might be [Large, Iron, Plate]
. Because the composition is dynamic, we'll include the attribute type within the representation. Now we can represent a large iron plate as [{size: Large}, {materialType: Iron}, {itemType: Plate}]
. Now we can have any number of attributes within our basic composition. This creates a very large assortment of different items out of very few materials and item types. It also eliminates the need to have many unique variations of the same type of item in the game.
The collection of attributes that make up the item is called the Assembly Footprint. The wiki represents these concepts in standard JSON notation, but internally these attributes are represented by a simple numeric array. The assembly footprint orders attributes differently and always includes a quantity, even if it is 1. The large iron plate example would then become: [{itemType: Plate}, {size: Large}, {materialType: Iron}, {quantity: 1}]
. Every assembly footprint begins with an item type and ends in a quantity.
When items are moved within the game, it will keep track of items whose assembly footprint are the same (using basic numeric array comparison). When items share an assembly footprint, they stack together.
Basic items are used in engineering recipes to create more complex components. Complex components include items like Structural Components or Power Cores. When the player constructs a more complex item, it represents itself by nesting the source materials within its own assembly footprint. The most basic example of a composite item, the Structural Component, can be represented by [{itemType: StructuralComponent}, {composition: [Source Materials]}, {quantity: 1}]
.
Here is an example of a structural component built out of 1 steel plate, flattened out into an assembly footprint:
[
{ itemType: StructuralComponent },
{ itemType: Plate },
{ materialType: Steel },
{ quantity: 1 }
{ quantity: 1 }
]
The attributes of the above item are derived from the assembly footprint. The stats of a structural component are based on the attributes of the plate that is nested within it. A stronger plate will yield a stronger structural component. The attributes of the plate are derived from the attributes of the material.
Composite items provide for a rich ecosystem of items within the game. The concept of a structural component can be made out of any material that a player finds.
Assembly footprints have no limits to the complexity of the items that they can represent. When a composite item is simple and contains only one ore two nested basic items, the item can usually be represented in the game in one line. An example of a one line composite item would be a Mechanical Component [1 Steel]
or a CSA2 Cable [1 Copper]
. When composite items are used together to create a more complex item, it will become so complex that a single line representation becomes very difficult.
Instead, we'll see an item that represents itself as Electric Motor [EXPAND]
. This is an advanced composite item and players can expand the details of that item inline to see the composition.
Electric Motor
| 3 Mechanical Component [1 Steel]
| 500 CSA2 Cable [1 Copper]
The electric motor above was created using 3 mechanical components and 500 cables. The mechanical components were created with 1 unit of steel. The Cable was created as a CSA2 cable out of 1 unit of copper. All of these attributes together decide the attributes of the electric motor.
If we continue this path of nesting items within other items, we can imagine a drone that is created out of a frame, power core, electric motor, and a processing unit being a large assembly footprint.
When an assembly footprint becomes so large that it is no longer likely to be produced in considerable quantities that warrant it to be stackable, it may eventually be produced as a Unique Item instead.
Unique items refer to items that have a unique id and unique characteristics or attributes. A unique item may have their properties changed over time or be able to be modified. Within the game, each unique item is stored by itself and must be interacted with individually. Unique items will not stack.
Because unique items are not uniform, you cannot set up a buy order for unique items.
All equipment is Celestial Frontier are Unique Items. This has been done to create a simplified layer above components and resources. The label for unique items is generated based on their attributes rather than their composition, so you might see a 4.7 kW Construction Drone
, which is more intuitive than listing out the 16 different pieces of that construction drone. It gives an immediate sense of value and capabilities for that drone.