This is a multiplayer mod for Derail Valley
- Player position sync
- todo: support parenting to trains
- todo: unbreak map markers
- todo: hands / models
- train car sync
- cargo sync
- coupling sync
- todo: damage sync
- loco sync
- shunter
- todo: all other locos
- spawning is disabled of them
- train set sync
- todo: maybe optimize the thresholds for the allowable error
- todo: moving all cars to one host
- all cars that are coupled together should be from one host (spawned by one player)
- junction sync
- todo: turntable sync
- todo: jobs
- Hard player limit: 1023 local connections max per session
- todo: properly clean up after players disconnect
- todo: NAT hole-punching
- todo: matchmaking /
- todo: probably a lot more still
- jobs and locos do not spawn
- stops the game from forcing you into full screen
- stops the game from pausing when in the menu or tabbed out
- forcefully enabled spawn mode on the remote and enables it to spawn locos
- add a instance number to the end of the title for recording multiple instance with OBS
Install BepInEx (https://github.com/BepInEx/BepInEx/releases) version 5.1 or laterCurrently included- Extract into
steamapps\Derail Valley
next toDerailValley.exe
- start the game twice in windowed mode
- on one instance run the console commands
mp.authority
andmp.listen
- on the other run
mp.connect
- all cars that are coupled together should be from one host (spawned by one player)
- all but one client must be able to accept connections from the other client
- in practice this mean you must configure port forwarding in you router
- the default port is tcp:2000 but any TCP port can be used
- one player must use the console commands
mp.authority
andmp.listen [<port>]
- the other player must run
mp.connect <public IP of the first player> [<port>]
- if the port arguments are omitted, they will default to 2000
- both IPv4 and IPv6 addresses are supported, DNS names will not be resolved
- Player names will be taken from Steam, if possible
- the local player name can be set with the console command
mp.username <new username>
(spaces are not supported) - non-ASCII characters are theoretically supported, but probably not available in the font
- the local player name can be set with the console command
- the player color is chosen at (very pseudo) random
- can be set to any RBG color with
mp.playercolor <R> <G> <B>
- can be set to any RBG color with
- all cars that are coupled together should be from one host (spawned by one player)
- todo: currently bugged, doesn’t work
- every client must connection to each other
- first connection must be to the authority, other than that order shouldn’t matter as long as at the end before players actually start playing everyone is connected to everyone else
- Derail Valley is required for building
- It must be located in or symlinked from
C:\DerailValley
- Run
mklink /J C:\DerailValley "<Path to DV>"
in a admininstrator level command prompt to create the symlink - Alternativly provide the game path during build as a command line parameter:
dotnet build -p:GameDirectory=<Path to DV>