49 lines
1014 B
Markdown
49 lines
1014 B
Markdown
# 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.
|