Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Planets work on the same principle as stations, with a few differences.
The first one is that the map structure is no longer completely surrounded by a vacuum. There could be atmosphere on the planet itself, though it might still not be exactly breathable. For example, a planet completely covered in CO2.
The second one is that there is no longer a need for an artificial gravity generators. The gravity outside of the station might still be lower (or higher) then what the crew might find comfortable, but it's probably not going to be zero.
Next is power generation. Some power generators like solar panels may be less efficient in general and have less workable hours at all due to day/night cycle on the planet.
Finally, the station is going to be in a middle of some environment, be it a sea of lava, a blasted desert, a rocky mine or something else.
Where it all happens
Space Station 3D takes place several centuries in the future on a research station owned by the megacorporation known as Nanotrasen. The station deals in genetics, virology, cybernetics, xenobiology, research of exotic materials (like 'plasma' or 'bluespace' minerals), mining, scavenging or general space exploration. Most of the time this station is floating through space, but it is not unheard of having a research station on land of some planet.
While Nanotrasen's influence and power have effectively made them a government entity, they are a force that is generally far away from the station itself, leaving it's residents to deal with their everyday challenges on their own. Station's general task is to stay operational, generally intact, and do the tasks NT gives them.
Tile Objects are what they sound like, objects on the tilemap. Most (if not all) objects are actually tile objects since they exist on the tilemap and are saved by it. The page specifies the details of some of the special Tile Objects.
What's this place made of?
For technical documentation on maps, see the Tilemap System document linked below.
Maps will come in a variety in Space Station 3D but can be categorized into 2 main types; station-like and planet-like.
Station-like maps ("Stations") are any map that is mostly made up of artificial structures and is NOT anchored to any larger cosmic body like an asteroid, moon, or planet. The only thing immediately outside of the artificial structure is the vacuum of space.
This includes, regular space stations, derelict/destroyed space stations, satellites, shuttles, or other ships.
Planet-like maps ("Planets") are any map that is anchored to a larger cosmic body like an asteroid, moon, or planet. These maps have walkable 'land' outside of the artificial structures and sometimes even an atmosphere.
This includes most of the typically mining locations, like lavaland, asteroid, or even
Airlocks are currently simply acting as doors that open when a player gets near and close a few moments later only if a player is not blocking it.
This automatic behavior will be used on some common area airlocks, but secured airlocks should require an interaction to open. Clicking on them with an open hand (if your ID has access and is in your ID slot OR in your PDA which is in your ID slot) or a hand occupied with your ID that has access OR PDA that has ID in it.
Upon opening, green lights illuminate.
Upon opening, red lights illuminate.
When idle (either opened or closed), the lights turn black.
Airlocks make some sound when opening and closing.
Because the stations in SS3D are user-created, they may be highly diverse in their shapes, sizes, and arrangement. Despite this, stations will likely share many similarities.
The first and most important thing to note about stations is that they truly are surrounded by the void of space. Therefore, stations must be equipped with facilities that allow the station to be inhabited by human life, such as:
Atmospheric supply system (network of pipes & machines).
Facilities for growing & cooking food.
Places for crew members to eat and sleep.
Places for emergency and medical treatment of the crew.
Ports for cargo & arrival/departure shuttles + emergency pods.
Sustainable electricity & gravity generators.
Work stations to perform tasks for NT (?)
Station designers may take great liberties in designing the placement of these systems, but they almost certainly must be present.
Additionally to the life-sustaining aspects of the station, it’s important to remember that the station is filled with work environments, where specific sectors have restricted access to specific crew members. Medical doctors probably don’t need to be in the hydroponics basin; cargo workers probably shouldn’t be dwelling in the armory.
Because of these factors, all crew members are equipped with an ID, which almost all airlocks in the station should be programmed to respond to.
A crew member without an ID may be heavily restricted by where he can go, as doors will simply refuse to open unless they can prove they has access. IDs may also serve the purpose of locking specific equipment, such as lockers & briefcases, to prevent other crew members stealing one’s equipment.
Unfortunately, most things on the station are breakable. This includes the structure of the station like airlocks, walls, floors, and windows. These can all be broken with possible devastating effects to the station's ability to sustain life, like sucking out the atmosphere if an external wall is broken.
However, all elements of the station can also be rebuilt or added upon, using a wide range of raw materials and fabrication technology. And as long as you have the gases to do so, you can repressurize the station if needed.
The word Substance refers to a homogeneous chemical composition. This may be an element (e.g. Nitrogen, Oxygen), a compound (e.g. Nitrogen Dioxide, Benzene) or a complex mix of different compounds (Vodka, Blood). Substances are not directly interacted with by players during the game - they are simply a data template. A Substance is specific to its state - for example: Water and Ice are considered different substances.
This is mostly relevant the most to Chemistry, but in terms of atmos we can see part of this system as a combination of gasses flowing and mixing in the atmosphere of the station, as they might have reactions with each other.
The Atmospherics system (atmos).
Gasses must be able to be transferred through a complex network of pipes, and must regulate pressure between rooms. For example, if a low pressure room is adjacent to a high pressure room, and the door between them is open, air should flow from the high pressure room into the low pressure room, until pressure is equalized. Ideally, this should cause wind that, if strong enough, should blow anything not buckled down in the direction of the airflow.
The gas in the atmosphere may not be a singular gas, actually that will rarely be the case. Most atmosphere will be made up of a mix of gases. Gases naturally mix together and equalize over time, much in the way pressure equalizes overtime.
It is important to manage both the pressure and gas mixture of the atmosphere in your work station.
The system for connectable tilemap objects.
For technical documentation on this system use the link below.
Connectables are a sub-system of Tilemaps which use adjacency connection scripts to replace models depending on the status of neighboring tiles.
This works by using several differently shaped models and replacing them depending on any adjacent tiles with the same type of connectable (see the Tilemap document for more details).
Different types of connectables have different ways they allow or don’t allow connections.
As a result, we use several unique mathematical scripts known as “adjacency connectors” to handle the connection logistics.
Types of connectables are manually defined by an ID known as a “generic type” (ex. wall, table, wire, cable, etc.). When properly assigned, this ID makes sure different types of connectables properly connect to themselves but not other types of connectables.
In addition to generic types, some connectables may even have a “specific type” ID. The specific type is used to distinguish different variants of the same type of connectable. The best example is having multiple material-based table variants (wood & metal), the specific type could be used to prevent connections between different variant types while maintaining connections between the same variant types.
It should also be noted that objects will only connect if they are connected to the tilemap, removing them from the tilemap will disconnect any connections to it. Some objects can be bolted to / unbolted from the tilemap (tables, girders, sofa, etc.), while others also have ways to be attached / detached to the tilemap.
Basic connections use the “Basic Adjacency Connector” script and are ultimately the simplest connection type.
These basic shapes are defined below:
O - A variant with no connections.
U - A variant with 1 connection, to the north.
I - A variant with 2 connections opposite of each other, 1 to the north and 1 to the south.
L - A variant with 2 connections adjacent to each other, 1 to the north, and 1 to the east.
T - A variant shaped like a “T”, with 3 connections, 1 to the south, east, and west.
X - A variant shaped like a “+”, with 4 connections, 1 to the north, east, south, & west.
These pieces can be rotated to create many various shapes. This works fine for objects that do not have corner connections (pipes, cables, etc.), but this won’t suffice for objects that do (tables, walls, etc.) because it will leave gaps where the corners meet.
Cables
These heavy-duty high-voltage cables are only used between station engines and related machinery.
Two “I” shapes can cross each other while maintaining separate circuits; they do not have a junction box like the similar “X” shape.
Though similar to wires, wires are more complex (see the “Wire Adjacency Connection” section for more details).
Conveyor Belts
Currently, these do not use a “T” or “X” shape so we can either add those or resolve how a straight piece may connect in such a situation as seen in the image (these may need to get their own unique adjacency connector in the future).
HE Pipes
Heat Exchange Pipes don’t require an “O” shape.
They do however have an special “I” shaped called a “Junction” which connects between the HE pipes and regular pipes on the 4th layer (see the pipe adjacency connections section for more info).
As the name implies, window divider connections are specific to creating seamless windows and use the “Window Divider Adjacency Connector”.
The window divider adjacency connector is not meant to be used with the window models themselves, it is meant to be used with the “window dividers” component that overlays the windows. The reason for this is explained when we look at the sheer number of possible connection variations a single window tile can have. Initially there may not seem like many, but it becomes apparent when looking at the more complex shapes (“T” & “X”).
After carefully considering all possibilities, we reduced the total number of possible variations by counting any corner connection as a wall (regardless if it is a wall or window) if at least one of its adjacent connections is a wall (these specific corners are marked with purple in the image linked below). Next we discarded any shapes that would be a duplicate of another shape when rotated. After these reductions we are still left with ~170 possible connection variations between our metal walls and windows. This would also mean that there would be another ~170 possible models for EACH type of window (window, reinforced window, plasma window, etc.).
Using separated components, we are able to use just 23 window divider models with the 15 window models (using the advanced adjacency connector). Reinforced windows can use the same dividers, so they simply only require 15 models themselves. Adding a new exotic type of window (ex. gold) would require 15 gold window models as well as 23 gold window dividers for a total of 38 models, far less than 170.
The wall dividers are named based on how many sides they overlay. They are defined below:
A - A variant that overlays 0 sides but does overlay 1 corner (NE).
B1 - Overlays 1 side (N), both edges are flat.
B2 - Overlays 1 side (N), both edges are angled.
B3 - Overlays 1 side (N), both edges are full.
B4 - Overlays 1 side (N), left edge is flat & right edge is angled.
B5 - Overlays 1 side (N), left edge is angled & right edge is flat.
B6 - Overlays 1 side (N), left edge is flat & right edge is full.
B7 - Overlays 1 side (N), left edge is full & right edge is flat.
B8 - Overlays 1 side (N), left edge is angled & right edge is full.
B9 - Overlays 1 side (N), left edge is full & right edge is angled.
C1 - Overlays 2 sides (N & E) and their joining corners, both edges are flat.
C2 - Overlays 2 sides (N & E) and their joining corners, both edges are angled.
C3 - Overlays 2 sides (N & E) and their joining corners, both edges are full.
C4 - Overlays 2 sides (N & E) and their joining corners, left edge is flat & right edge is angled.
C5 - Overlays 2 sides (N & E) and their joining corners, left edge is angled & right edge is flat.
C6 - Overlays 2 sides (N & E) and their joining corners, left edge is flat & right edge is full.
C7 - Overlays 2 sides (N & E) and their joining corners, left edge is full & right edge is flat.
C8 - Overlays 2 sides (N & E) and their joining corners, left edge is angled & right edge is full.
C9 - Overlays 2 sides (N & E) and their joining corners, left edge is full & right edge is angled.
D1 - Overlays 3 sides (W, N, & E) and their joining corners, both edges are flat.
D2 - Overlays 3 sides (W, N, & E) and their joining corners, both edges are angled.
D3 - Overlays 3 sides (W, N, & E) and their joining corners, both edges are full.
D4 - Overlays 3 sides (W, N, & E) and their joining corners, left edge is angled & right edge is full.
D5 - Overlays 3 sides (W, N, & E) and their joining corners, left edge is full & right edge is angled.
E - Overlays all sides (N, E, S, & W) and all corners except SE.
The window dividers could be made even even more modular but work on this has been put on hold while we further discuss quartering tilemap tiles.
Advanced connections use the “Advanced Adjacency Connector” script. They are a direct extension to the ‘basic connections’, intended to solve the issue of gaps where the corners meet. This works by using the same shapes as the ‘basic connections’ in addition to some new variants for all shapes with possible corner connections (“L”, “T”, and “X”). These advanced corner shapes are defined below:
L2 - An “L” type variant with a connection in its corner, to the north east.
T2 - A “T” type variant with a connection in its southwest corner.
T3 - A “T” type variant with a connection in its southeast corner.
T4 - A “T” type variant with a connection in both corners, southeast and southwest.
X2 - An “X” type variant with a connection in its north east corner.
X3 - An “X” type variant with 2 adjacent corner connections, 1 north east and 1 north west.
X4 - An “X” type variant with 2 opposite corner connections, 1 north east and 1 south west.
X5 - An “X” type variant with 3 corner connections, north east, north west, and south west.
X6 - An “X” type variant with a connection in all 4 corners.
Plenum covers are part of the same prefab as the plenums. They cover the plenums and connect them together.
Carpets are a great example of a type of floor tile that can be stylized and designed to be connectable.
Carpets come in a variety of colors, all of which can connect to create some creative patterns.
Other floor types that may possibly connect are lava, grass, dirt, etc.
Tables are the iconic connectable that everyone loves from SS13. The ability to build an infinite number of possible shapes of tables is a truly satisfying feeling.
Tables also come in a variety of material-based types (wood, metal, etc.) and use unique specific types to prevent connections between these different material-based types.
Girders are basically unfinished walls so it seems fitting their generic type would be “wall” (see the ‘Walls & Windows’ section below for more details).
Girders come in a variety of material-based types similar to the tables, but unlike the tables, different girder types CAN connect to each other.
Walls and windows are very similar to girders, which makes sense as they are all “wall” by generic type. All 3 can have additional components (supports, struts, sheets, etc.) overlapping the primary model to give the effect of adding/removing parts via construction (more info can be found in the construction documentation).
In most cases, these additional components will inherit the same adjacency connector as the primary model (advanced) due to the fact that most of the components are the same complexity or simpler.
The edges are pretty self explanatory, “flat” are used on flat walls, “angled” are used on corner windows, “full” are used to extend the divider to the next tile (basically no edge).
One notable exception would be the ”window dividers” component. This component is a bit more complex in order to get window dividers to connect properly (see the for more details).
Another exception is the “door frames” component. This component bridges the gap between walls and airlocks, smoothing the transition and giving the appearance of something for the airlock to reside within (see the for more details).
Disposal connections use the “Disposal Adjacency Connector” script. Disposal connections are based on the basic connections and are similar to the other pipe connections. The disposal models themselves actually reside beneath the floor that the player walks on.
There is no need for the traditional “O” or “U” shapes but there are some unique “U” type shapes (see below). The “I” and “L” shapes act the same as they do in the basic connections.
The “T” shape acts the same in principle as well but is accompanied by arrow overlays. Due to the nature of disposals (objects travel through them), “T” shapes have a designated ‘exit’ connection side to determine which direction the object paths join into. This direction is represented by the arrow overlays (more info in the disposals documentation).
There isn’t a significant need for the “X” shape either but we do have one modeled and in theory the same directional arrows could be made for it to work the same as the “T” shape.
The unique disposal shapes are defined below:
Vertical - A special “U” type variant which connects to the north as well as turning upward and connects vertically to above-ground disposal machines. Pipes & wires cannot exist on a tile with a vertical disposal due to major clipping.
Vertical pipes only connect to pipes directly in front of them.
Broken - A special “U” type variant which replaces a variant when it gets abruptly destroyed (more about this below).
When a disposal pipe variant gets destroyed, instead of alerting nearby connections that there is no longer a connection at this location and to update their own shape as a result; we maintain connections to this tile and replace it with 1 broken variant per undestroyed connection.
Another interesting trait about disposals is that they can overlap each other in one specific situation.
This works easily in 2D but in 3D we do not have the additional space to actually have one disposal pipe go beneath the other.
Because we don’t have the extra space in 3D, our plan, as goofy as it may look, is to simply resort to allowing the disposal pipes to overlap and clip through each other in this specific situation.
You’ll notice the difference between the overlapping pipes and a true junction is that the overlapping pipes are missing the support rings near the intersection. (Alternatively we could design a new model for this overlap).
Pipe connections use the “Pipe Adjacency Connector” script. Pipe connections are based on the basic connections and are also similar to the disposal connections.
Pipes have 4 layers, the first 3 layers reside in the plenum below the floor with the disposals, while the final layer rests just above the floor.
You’ll quickly notice that pipe layers 2 & 4 are centered, while layers 1 & 3 are offset. Due to the offset nature of layers 1 & 3 they require additional model shapes and use a more complex connector script (see the “Offset Pipe Adjacency Connections” section below).
Pipe Layers 2 & 4 work just like basic connections (“U”, “I”, “L”, “T”, and “X”) with one exception. This exception is defined below:
Broken - A special “U” type variant which replaces a variant when it gets abruptly destroyed.
Similar to disposals, 2 “I” shaped pipes can cross each other perpendicularly. Although they are clipping through each other, they are not joined like an “X” shape.
Unlike disposals, pipes have another overlapping property. 2 “L” shaped pipes can coexist on the same tile as long as they are oriented opposite of each other. (In SS13 the pipes clip in this situation but we designed our models to prevent clipping here.)
Offset pipe connections use the “Offset Pipe Adjacency Connector” script. Offset pipe connections are based on the regular pipe connections and exist on pipe layers 1 & 3.
The primary difference between the pipe and offset pipe connections is what the name implies, the offset pipes are offset. Due to them being offset, they cannot simply be rotated for different orientations. To solve this, we use additional models for the different orientations. These offset shapes are defined below:
U1 - A “U” type variant which connects to the north OR west (rotate 90°).
U2 - A “U” type variant which connects to the south OR east (rotate 90°).
Broken1 - A special “U” type variant which connects to the north OR west (rotate 90°).
Broken2 - A special “U” type variant which connects to the south OR east (rotate 90°).
I - A regular “I” type variant which connects to the north and south OR east and west (rotate 90°).
L1 - A “L” type variant which connects to the north and east (not meant to be rotated).
L2 - A “L” type variant which connects to the north and west (not meant to be rotated).
L3 - A “L” type variant which connects to the south and east (not meant to be rotated).
L4 - A “L” type variant which connects to the south and west (not meant to be rotated).
T1 - A “T” type variant which connects to the south, east, and west (not meant to be rotated).
T2 - A “T” type variant which connects to the north, east, and west (not meant to be rotated).
T3 - A “T” type variant which connects to the north, west, and south (not meant to be rotated).
T4 - A “T” type variant which connects to the north, east, and south (not meant to be rotated).
X - A regular “X” type variant which connects to all 4 cardinal directions (not meant to be rotated).
What's also to be considered:
Pipe Machinery Adjacency Connections
Transit Tube Adjacency Connections
Counter connections use the “Counter Adjacency Connector” script. This script is very similar to the basic adjacency connections but has a couple of unique shapes that are specific to counters. The basic shapes “O”, “U”, “I”, “L”, “T”, and “X” are all the same from the basic connector. The unique counter shapes are defined below:
U2 - A “U” type variant that is shortened. The reason for this is it can be used to connect Counters to Walls.
Door - A special “I” type variant that can be rotated to allow it to open.
Door Frame - A special “I” type variant that is used with the Door variant (on the same tile).
Directional connections use the “Directional Adjacency Connector” script. Directional connectables, unlike most connectables, have a distinct front side and back side (ex. modular seats). They can be manually rotated in the editor and game due to this directional nature. Their default rotations are set to ‘north’. These directional shapes are defined below:
O - A variant with no connections.
Lin - An “L” type variant which, according to its design, bends inward.
Lout - An “L” type variant which, according to its design, bends outward.
I - A variant shaped like an “I” but rotated 90°, with 2 connections, 1 to the east and 1 to the west.
Uright - A variant shaped like a “U” but rotated so the only connection is to the east.
Uleft - A variant shaped like a “U” but rotated so the only connection is to the west.
Chapel Pews are the basic version of directional connectables as they do not have any corner (“L” shaped) pieces, in theory they could be added though.
The Diner Booth is an example of a more typical use of a directional connectable for modular seating as they include corner (“L” shaped) pieces.
The Sofa is very similar to the Diner Booth, but it’s also a good example of adding style variants.
Style variants are simply a variant with an alternate art style. The Sofa’s example is the addition of armrests.
The armrests by their nature are only required on the end shapes of the sofa (“Uleft” and “Uright”) and on the singular sofa shape (“O”).
Other examples of directional connectables that are not fully realized yet may include things like railings and fences...
Directionals can't connect to more than two neighbors. Once they are connected, putting any new directionals near them won't update them, unless a neighbor is disconnected.
When removing a neighbor, a connection is free, and the directional will look for other adjacent directional to form an eventual second connection and change shape.
When a directional has to change shape and has multiple options (LIn, LOut, I), the directional will choose shape in the following order:
I shape
Lin shape
Lout shape
This order is arbitrary, but it's necessary to define one as some cases are not well defined without it.
Wire connections use the “Wire Adjacency Connector” script and, like the name implies, are unique to just wires. Wire connections are some of the most unique types of connectables. Wire connections can have several variants on a single tile, can cross over each other, and even have diagonal variants.
The “O”, “U1”, “I1”, and “L1” shapes here are the same as the basic connectables but the rest are unique and defined below:
U2 - An odd “U” type variant which has its connection to the northeast instead of to the north.
Broken1 - A special “U” type variant. Simply a broken version of “U1”.
Broken2 - A special “U” type variant. Simply a broken version of “U2”.
V - An odd variant which has 2 connections, at adjacent corners, by default the northeast and northwest respectively.
I2 - An odd “I” type variant which has 2 connections at opposite corners, by default the northeast & southwest respectively.
L2 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an adjacent corner, by default the north and northeast respectively.
L3 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an adjacent corner, by default the north and northwest respectively.
L4 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an opposite corner, by default the north and southeast respectively.
L5 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an opposite corner, by default the north and southwest respectively.
Wire connections do not have “T” or “X” shapes, but instead they create these shapes by using multiple “L” shapes that are on the same tile that are rotated accordingly.
Wires can cross over each other similar to pipes, but wires can do so in many configurations.
A cross over is anywhere wires clip through each other in the middle of a tile. They are technically still isolated circuits until properly connected.
Properly connecting wires is done by having 2 (or more) wires connect at the same connection point. With 8 connection points (4 corners & 4 edges), there can be up to 7 wires connecting to the same point on a single tile.
Wires also come in a variety of color variants. Different colors can connect and cross, the only real issue with this is that the clipping of models is more noticeable when using multiple colors.
Wires, like pipes, can also be destroyed and will leave behind broken ends in any direction there is a connection.
The combination of wires’ unique properties allows for some really creative combinations which is infamously known as “wire art” in ss13 (the images below are great examples).
Airlock connections use the "Airlock Adjacency Connector" script. Airlocks are a (special) type of wall and thus connect to all types of walls and other airlocks based on requirements.
Airlocks connect to walls on either SIDE of them. Airlocks ignore connections in the front, back, and corners. If both sides ARE connected, the airlock becomes operational. If a wall on either side is destroyed or severely damaged, the airlock stops being operational.
Door frames are a required component when an airlock connects to a wall. Sometimes referred to as "wall caps". It is a small piece of wall that covers the connecting "gap" of the wall because the airlock does not have the same dimensions as the gap to cover it itself.
Door frames themselves come in different material types based on the types of walls. The type of door frame used is dependent on the wall type it is connecting (metal door frame for metal walls, wood door frame for wood walls, etc.).
This sub-section may not be final.
Door caps are similar to that of door frames because they also are meant to fill the gaps left by doors. Door caps fill the gap between the top of the door, and the ceiling.
Door caps will likely be based on the connected wall type (not sure how to decide what type if the 2 airlocks on either side are different types) or airlock type. While some special airlock types may not require a door cap.
The example above is a static option but some people are not fond of it because it blocks the view of the airlock itself a bit and if you are a player and you open the door and stand in the open doorway, the door cap will obscure you or items behind it. One way to prevent this would be to use a cutout-shader on walls and also door caps, but another way is to simply make a retractable door cap like the example below. The difficulty here is making something to blend with the wall type and the airlock.
This section may not be final.
Same as when connecting to walls, airlocks can only connect to other airlocks at their sides. This means that you must ensure both airlocks are rotated correctly for them to connect. Additionally, airlocks can only connect if they are the same base type.
Actually, airlocks don't "connect" to each other per se, rather once these conditions are met, they instead join as one object (in-game this will require the user to weld two airlock frames together to construct). They become a multi-tile airlock, and because of this are limited to 2-3 airlocks "connected" at time (based on airlock type).
Airlocks because of their nature of being doors between different rooms, may be bridging two rooms with different floor tiles. Due to this, it is hard to determine what floor tile a airlock should have beneath the airlock itself.
To resolve this we use a special floor tile for airlocks. It consists of two half tiles split with a metal track that the airlock slides on. The half tiles will use the texture based on the adjacent floor tile to blend the floors together at the doorway.
The only issue with this is that certain textures will break (wont tile properly) if you rotate the floor tile due to its custom UV. To prevent this we actually will use 2 airlock floors tiles, 1 for airlocks facing east/west and 1 for airlocks facing north/south.
Crew members should have the ability to alter, fix and or dismantle the structure of the station, that's where the Construction system comes in.
Which means that any person should be able to create or interact with walls and floor and ceiling of the station, should they have right materials and tools. The mane philosophy is allowing the player to affect the structure with a simple click of a mouse.
Rules of connectables apply.
Stations are like onions. They have layers.
The bottom layer is Plenum; the base structural layer. All the other layers are built upon this one. The plenum layer can have a few different models here like lattice and catwalk, but the main one is the plenum. This main model much like the layer it shares a name with is the core of the station's structure. Many things can be built on top and within the plenum.
The plenum has room for 3 layers of atmos pipes and 1 layer for the large disposal pipe.
Immediately on top of the plenum layer is the wires layer (this may get lowered slightly down into the plenum)((we may triple this up at some point like /tg/). There's 2 main types of wires at the moment. Wires and Cables. Cables are basically the heavy duty wires.
Above cables there is 1 layer for floor tile, 1 for atmos pipes, a couple for furniture, a few for floor overlays, and 1 for walls. On wall, there are 3 layers of wallmounts (times 4, 1 for each cardinal direction). [[[add more recent image below]]]
Floors are a layer made to support furniture, walls, and even the captain's fat ass.
Walls are pretty self-explanatory: it limits the room, seals and insulates the rooms from the sides and supports ceiling:
NOT IN THE CURRENT ROADMAP but it's fun to conceptualize the idea of possible z-layers for the station itself.
How things are built, specifically.
Even within the sections below, the construction processes may vary depending on the object type. For example the construction recipes for a metal wall will be different from a wood wall or rock wall.
Current recipes may not be final.
Have a material and a tool in hands
Apply tool to material
Select an option in the menu
Wait for build to complete
Drag the frame of the object to the desired place (optional)
Attach the object to the grid by applying a tool to it
Apply materials and tools to complete the object
For furniture building it's even more simple, as most furniture works even without being fastened or bolted to a tile, not to mention that some furniture is built right away, without the need to make a frame for it first.
The construction process for walls/windows may vary depending on their type. And these current recipes may not be final.
In any case, the wall starts with a metal wall girder. It's like a frame for a wall to be filled with metal or glass to be completed. It can be made on a spot, if player character has metal rods or what have they in one hand and a tool for connecting them in the other. Applying a tool to the materials (dictated by the crafting recipe or a choice in the opened menu for building) results in creating a physical, always upright metal girder in front of the player.
It can be dragged or pushed to be relocated to a different location. It is even connectable, meaning it can attach to nearby objects of the same type (other walls). In order to be connected to the other walls, it needs to be bolted to a tile, adjacent to the other object of the same type. Player just needs to drag the girder to the nearest wall, place it near the center of the needed tile and bolt it using a wrench.
From that point onward it can be upgraded to an actual wall or window. This is recommended because a girder isn't pressurized and wont hold in your atmosphere, or stop fire from spreading, etc.
Reinforcement and other forms of modifications should also be built on the same principle.
Like all objects in this game, many walls have unique properties. Natural rocks walls are easily destroyed via many tools in the game, yet cannot be built rebuilt.
Disposal furnitures don't change meshes when they connect to a disposal pipe, however, they should signal to disposal pipe just below them, when they have a single connection, that they need to update and become a vertical pipe.
Upon removal, they should signal to the disposal pipe that they can update their mesh to an horizontal one.
Airlocks are built like most machines, starting with a frame which is bolted to the ground, then materials and components are added.
Airlocks can be merged together up to 3 tiles long. They need to merge in the construction phase. Once the door is completed it wont be able to merge with others and will prevent other door skeletons from being bolted next to it.
Example: To build a 2 tile door, you'll need to build 2 door skeletons side by side, wrench them both and they will connect, then you can finish building the airlock.
There is a variety of things one can make with a welder and some metal rods. From floor girders to wall girders to a machine frame. So, when the materials and tools allow for several options of constructions, the player must be presented with choice. This will be done via construction menu:
This menu should include a list of possible structures according to the materials/tools available. The list should include a name and picture of each object.
Clicking on an object in the list should provide more information on the object like description, required materials and tools for construction as well as deconstruction.
Also, the structure's model with applied holographic shader will be displayed, attached to the closest adjacent tile to where player is standing and facing. Green shader for when the tile is free and red if it's not. Player character should be able to move while choosing the construction tile and the shadered model location should be updated according to the rules above. Player should also be able to rotate the structure if necessary, and also to quickly disable construction mode in case of an emergency. And, obviously, when location is available, player should be able to confirm the chosen location.
Once the location is chosen, the character should play a crafting animation, resources should be expanded and a bunch of smoke and particles should be played to obscure the change from empty space to the freshly built structure.
In many cases in SS13, when a machine is destroyed it reverts back to being a machine frame and drops all its components. In other cases the machine vanishes entirely, this is a not consistent and not acceptable for us. We need something more immersive and I'm going to take some inspiration from CDDA.
In CCDA when an object is destroyed it checks the list of items used to construct it and drops a % (with some rng) of these items. So if a wall was built with 6 wood planks and 12 nails, it may drop 2-4 planks of wood and 4-10 nails when destroyed.
I think in most cases we should NOT revert back to the previous construction state for destruction (except for like walls), we should instead use damage states and then finally destroy the primary object and leave behind some components like CDDA. To expand on the idea I think we should also drop physical debris relating to a % of the missing (destroyed) components. So in SS3D if we have something built with 4 pieces of sheet glass, when destroyed it may drop 1-2 glass sheets, and 1-2 glass shards. We can add-in particle effects when the object changes states to destroyed and then again when it gets destroyed.
In SS13 (TG) there are glass shard objects. These are dropped when a window or other glass object is broken. I want to expand this trait to all materials, so there is a damaged/broken variant of steel, wood, cloth, cardboard, uranium, diamond (maybe not this one), etc.
Yes, these objects will just be tossed down the disposals by the janitor most of the time, but they also may have more uses based on these ideas: - - (glass shards are already used in some makeshift recipes, why not other damaged material variants like a 'metal chunk') -
Using tools (like a welder/screwdriver) to fix objects back from a damaged state. Also ghetto repairs like using tape/glue to cover a cracked vending machine. If that stage of damage accounts for 20% of the vending machine's health, then doing a ghetto repair on this stage would only attribute half of that (10%) but would still make the machine functional.
Blueprint idea (not the same blueprints that the CE has): select an area and all the tiles/fixtures in the area will be saved to a file on your real-world computer.
You can load that file into a blueprint projector, which will make a hologram of the saved tiles/pipes/wires/machines/etc.
'Smart RCD' will automatically deploy the correct floor/wall/pipe/wire when used on a hologram, provided it has the materials. This way you can save builds you spend a while on and deploy them more rapidly in other rounds Furniture and machines still have to be built by hand though Maybe the chief engineer's office has a premade blueprint for each department, to make rebuilding easier Admemes could have a special blueprint projector that autobuilds the whole blueprint.
Requires:
The power system is the system that connects and grants functionality through electricity to all aspect of the station.
It’s primary purpose is to be a link between objects which produce power and objects which consume power. It is additionally be responsible for the events related to power, such as when a component's power is lost or when it is reconnected. At any time a power consuming or producing object will be able to easily access the electrical information such as available watt’s (or joules per second).
The power system will be described electrically with two components, Watts and Joules. The relationship between them is:
In other words, 60W = 60J/s. Watts and joules are different physically speaking, a joule is a measure of energy (or work) used when doing something, and a watt is a measure of how many joules you are using over time (Joules / s). If your microwave says it uses 900 watts then it is consuming 900 joules per second to heat up your microwave dinner. Therefore we can describe electrical relationships really simply and effectively, for example a 60 watt light bulb operated for an hour will use 60J * 3600s = 360kJof energy.
The power system will consist of any amount of circuits which allow the connection of producers and consumers, the circuit will be made up of continuous wires and likely Area Power Controllers (APC’s), an APC is a special object which connects to a wire on one side and allows for the wireless connection of energy consuming components to the electrical circuit.
The electrical wires will be able to be damaged, repaired, cut, and reconnected. If a wire is damaged too much it will become cut, a player or script can also cut wires. When a wire is cut or reconnected the circuit/s will be updated and refreshed. All objects on a circuit are instantaneously and logically connected to one another, the entire circuit is one logical object and has some given wattage based on its producers and consumers.
The station will be made of several circuits which logically separate objects based on geography and power consumption, circuits can be subdivided through objects such as transformers or other objects. A transformer will allow for a high wattage circuit to be subdivided to a low wattage circuit (i.e. a 2000W circuit connected to several 500W circuits)
The physics implementation has been partially inspired by a popular simulation game, Oxygen Not Included (ONI). You can find a brief description of the power system in ONI .
Add something later
Circuits allow objects to be logically connected together, a circuit does not necessarily need to be powered, it’s main function is connecting objects together across the station. For example a circuit could connect a collection of solar panels together to a Solar Panel Controller (SPC), the solar panels themselves do not actually generate watts, however by being connected to the SPC via a circuit the SPC can then itself output watts onto another circuit.
Circuits will be physically connected together via wires, however they can also be connected together logically if it’s required, for example the lights in a room might be apart of a circuit in the room but do not have literal wires reaching to them, and are instead connected “through the air” to a junction box which is physically connected to wires. (The actual implementation of deciding what objects should connect to what APCs, and how it should interact with the player is not a part of the immediate scope of this proposal, only the immediate functionality of the APC is being considered here.)
Switches are one example of an object which can be used to separate two circuits, the object itself only allows each circuit to be connected to one another when it is engaged. For this reason it must be easy to logically connect circuits together via links such as switches.
A producer is responsible for putting some wattage of power onto the circuit it is directly connected to, an example of a producer is a Solar Panel Controller (SPC), which itself will be connected to multiple solar panels. However in the actual implementation the solar panels themselves will be the energy producers. But for the sake of the example the SPC could produce a different wattage depending on how many solar panels it is connected to, and the direction of the solar panels.
Objects will be able to quickly and easily query information about its circuit, such as the amount of connected solar panels through a function such as: connectedCircuit.GetAllOfType<SolarPanel>()
A consumer will have some wattage of power it requires to operate, for example a light might need 10W of power to operate, and if it doesn’t receive more than 10J/s of energy it will fail and start flickering, then after a moment it will turn off completely until it receives power again.
Consumers on a circuit share the energy on the circuit, if a circuit has 100W of power available, each object on that circuit will reduce the available watts, if the circuit has two lights which each consume 10W then the energy available decreases to 80W (80J/s).
A battery is a special object, it is both a consumer and a producer in one. When the battery's connected circuit has excess power, for example a 100W circuit with 80W free, it will consume the excess power up to its wattage intake. A battery for example may be able to consume 200W of energy, but in this case it only has 80W available. Unlike other consumers the battery does not fail when its actual energy intake is under its required intake (200W). (In this case it's less of a required intake and more of a maximum intake.) The battery then converts the watts into energy which is stored internally, for example a battery might store 10kJ of energy.
When the intake wattage becomes negative, for example maybe the power goes off and our two lights are now on a circuit with -20W, the battery switches from a consumer to a producer, it uses its internally stored 10kJ of energy and puts it onto the circuit. The battery will output as much power per second as is required to keep all the components on the circuit powered, if the circuit requires 20W the battery will output 20W, at this rate the battery is consuming 20J/s of its stored energy and will use its entire 10kJ of storage in 1000 seconds.
People need to communicate with each other, the station needs to have a way to request supplies, security needs to share security info quickly but securely, AI and cyborgs have a unique way of communicating, and of course the spies and traitors are always on the lookout for some juicy rumors and corporate secrets. This just asks for an advanced communication systems with several points of failure.
The ideas of localized relays were proposed, where player could disrupt comms in one area of the station and it would take a while before people outside realize..