---
# System prepended metadata

title: Networks

---

# Networks

- Also involves a computer update
- **LONG IN THE FUTURE - needed for final rendition of science system, but this is very low priority.**

## General
- Singleton global datums for records, techwebs, etc, kinda sucks
- Inspired by Nebula networking systems

## Networks
- Different computer networks made in game 
- Networks consist of relays, and functional objects
- Client-server architecture, kinda
    - Mainframe manages an entire network
    - Some servers are singletons - should only have one per network, more won't work (only one will be allowed to be linked)
    - Others can be duplicated (research correlation servers, triangulation nodes, relay, routers, etc)
    - Servers represent network functionality
    - Clients request network functionality
        - A server can act like a client

## Relays, Communication
- Power networks can transmit a network across
- Network cables can transmit a network across
- Machinery either connect to wired networks, or wireless networks.
- Wireless:
    - Wired cables can connect to wireless relays
    - Wired networks can be bridged with subspace relays

## Devices
- /datum/network_connection/wired, /datum/network_connection/wireless, and /datum/component/network_connection
    - Unsure real structure yet, may need to move away from components
- Each device utilizes a network connection
- Connects to any network the connection can access
- Toggle between networks
- Connection types:
    - Wired (network cable or wires)
        - If network cable, cables should be **smart wire only** and **extraordinarily cheap.**
    - Area (APC)
    - Wireless (relays)
- Bridge connection types (inter-network bridging):
    - Physical connection to a router
        - Layered wires - router handles internetwork bridging, don't directly connect by default
    - Subspace relays to expand a network into another area.

## Servers
- A network has servers with roles on them
- Mainframe determines network ID and everything else
- File servers store data
    - Special mainframes that store science, security, and medical data?
    - Logging server, read-only for the most part, logs network actions to disk
- Router controls inter-network communication
- Firewall controls network security
- Access Controller controls what can access a network
- Mainframe links to servers via ID + network ID
    - Optional mainframe "Secret" key used to authenticate root level servers
- Taking out servers limits network functionality
- Taking out mainframe or severing connection completely kills the network.
- Multiple mainframes per network won't work
    - Department mainframes are nigh-indestructible and have static, overriding IDs
    - Other mainframes will automatically section into numbers - physically impossible to conflict.
    - Servers can be registered to multiple mainframes but why would you do that??

## Authentication
- All devices have an unchangable network ID
- You can block IDs using the firewall
- You can entirely block wireless or inter-network communication with the firewall
- Networks have secret keys used to allow servers to be linked
- Networks have user accounts
    - One superuser account per mainframe
        - RNG password for remote shell access
        - Always accessible via directly interacting with the mainframe physically
        - Allows full access to network (not servers, but you can simply bypass servers via mainframe)
    - Every server has a superuser account
        - Same rules as above
        - Allows control to that server
    - Resources like techweb access defaults to "can access network", but can be locked to certain user permission flags instead
    - Access controller manages this
        - Permissions lists that things check for
- Other networks have virtual accounts
    - Allow permission control of internetwork behavior
- Each crewmember has a default account
- Each ID has a default account
- Each crewmember has the same default account as their ID

## Inter-Network
- Each department has a set of network devices
- Station has a master network with default permissions
- To get data from another network, one network has to go through this master network from its network, to the destination, and return data.
- Primary network is fully wireless, other than wirenet connections to department networks
    - Default network for station equipment
- Full structure:
    - Station has a master network
    - Subnetworks for each department + AI and cyborgs
    - Each network will have the same basic machines
        - Mainframe
        - Logging server
        - Access Controller
        - Router
        - Firewall
        - Fileserver(s)
        - Wireless transreceiver
        - Connected to station main network
    - Special machinery
        - Security records fileserver
        - Medical records fileserver
        - Research mainframe (not a fileserver, stores master research data)
            - Research correlation servers (not a fileserver)
            - Backup individual records to files
        - AI control machinery

## Shell
- Shell commands for modular computers
- Nebula has servers just be subtypes of modular computers - we should do this too.
- Login to other nodes with shell
- ACL on each computer for what flags are required on an account to log in
    - Defaults to allowing network login - also required for network functionality
    - Might need to make this more permissive
- Shell executes command on remote computers if connected
    - Allows for bounce chaining
- Shell commands and most GUI programs are linked so you can do *most* but not all things on GUI with shell

## Silicons
- Cyborgs get an innate ability to connect to any network
    - Connecting to unsafe networks might be a bad idea - they need to be "anchored" on a primary network that gives them access
    - Defaults to the AI's network
- New server peripherels?
    - Door controller
    - APC controller
    - Cameranet controller
    - Miniature combiined AI access manager for subnetworks
- New devices?
    - All devices using default wireless connection to their APC, which then connects to a network node in substation
    - Taking out cameranet won't prevent silicons from using network to access, they'll just be blindfiring kinda
- AI can connect to any network with an AI relay
    - Can be configured to block out AIs
- Camera access decoupled from control
    - In exchange, **greatly** increased control from AIs for machinery
    - To make cutting out AI more difficult, could do control cutting + APC cut?
    - WIP

## Triangulation
- New servers that can be duplicated:
    - Trianglation servers
    - Relays
- Wireless relays with a triangulation server allows for
    - Logging server to automatically give approximate location of a device that does a static action
        - This gets more accurate with time if the user isn't moving
    - Active triangulation of "socket" systems like ongoing voicecalls/downloads that continually become more accurate as time goes on
    - AI actions count as one of these always.

## Devices
- Security HUDs - facial recognition uses security records server
- Diagnostic HUDs - basic damage can be evaluated, anything more requires connection to servers
- Medical HUDs - anything but the "healthbar" which is always usable
- AI, cyborgs - Network control, arbitrary cameranet access
- **Science**
    - All kinds of fabricators can download designs if they can access a research server in some way
    - R&D consoles use this entirely
    - Genetics console download genetic data
    - Efficiency upgrades depend on this
- Modular Computers - mostly serving as thin-ish clients, allows for local storage + processing but mostly requires this
    - Tablets having scanners for network IDs on things
- PDAs - should be combined with tablets when possible.
- Most machinery should be linked if possible
    - Security system:
    - Individual network keys?
        - Station master door, APC, air alarm controllers?
        - APCs governing rooms? Doors defaulting to APC network?
    - APCs being able to either join a powerline network or a network cable specifically?
    - Everything controllable by command line with the right authentication keys
        - Silicon transreceiver nodes automatically grant this?
        - Wires to cut for network control + AI control at once?
        - Normal clients: stationwide access codes on a master server? Server forcing syncs? Department servers? Etc
            - Enforced network crosspoints at routers would make this easier.

## Antagonism
- Break into the research server and rm -rf / science's work
- Use shells to bounce connections around to make tracking harder
    - Steal people's IDs for automatic network login
- Break into the physical servers to give yourself network all access
- Break the logging server
- Gain permissions on door controller, manually key doors open with shell
- Fuck with the AI/cyborgs for fun and profit
- Take down network lines and relays
- Gain access to devices and fuck with them
    - If this is implemented it should be extraordinarily obvious so you don't have AIs getting lynched for no reason
