# Architecture ## Main Components ### F4SE Plugin The native plugin is responsible for: - Loading into Fallout 4 - Reading local player state - Sending local player data to the server - Receiving remote player data - Applying remote player updates safely ### External Server The server is responsible for: - Accepting client connections - Assigning player IDs - Receiving player state - Broadcasting player state - Tracking disconnects ### Creation Kit Plugin The Creation Kit side is responsible for: - Test cells - Placeholder actors - Optional Papyrus helper scripts - Debug objects - Controlled test environments ## Threading Model Networking should run separately from game update logic. Recommended approach: ```text Networking thread receives packets Networking thread stores remote player state Game update reads remote player state Game update applies actor movement ``` The networking thread should avoid directly modifying Fallout 4 game objects unless the operation is known to be safe.