diff --git a/README.md b/README.md index 762aca05..f7ce8c03 100644 --- a/README.md +++ b/README.md @@ -1,210 +1,35 @@ -#DarkMultiPlayer ${PROGRAMVERSION} +# DarkMultiPlayer -DarkMultiPlayer is a multiplayer mod for KSP 1.0.4. It supports subspace-style (and master controlled warp) warping & career mode, with an easy-to-edit server database. - -The DarkMultiPlayer server and client is cross platform, it runs under mono on linux and mac. - - -##Client +DarkMultiPlayer is a multiplayer mod for Kerbal Space Program. It supports subspace style (and master controlled warp) warping and career mode, with an easy to edit server database. -###Installation / Updating -Option a) Extract the [DarkMultiPlayer zip](https://kerbalstuff.com/mod/4) to GameData. -Option b) Download DMPUpdater from http://godarklight.info.tm/dmp/downloads/dmpupdater/, place the program next to KSP.exe (Or KSP.app/KSP.x86_64), and run it. +The DarkMultiPlayer client and server are cross platform, see [Install](#install). -###Connecting to a server -The connection window will appear on the main menu. Type in a username, press add server, type in the details, and then hit add. -A player keypair will be generated (At GameData/DarkMultiPlayer/Plugins/Data/private.txt) during the first DMP start. DMP registers your username to the server with this keypair. If you lose your keypair, you will no longer be able to connect to the server with that username until the server administrator deletes you from Universe/Players/. - -###Connecting, If you are also running a server -If you are running the server locally, you will want to connect to 127.0.0.1/localhost. -If you are running the server on a networked computer, you will most likely be connecting to a 10.x.x.x or 192.168.x.x address. -Do not type in your public IP, this usually refers to your modem, which won't be running the DMP server (Unless you have the public IP address in your computer, which is rare). - +## Install +### Client +* Download the [DMPClient zip](https://spacedock.info/mod/10) and extract to `[KSP root folder]/GameData` +* Download [DMPUpdater](http://godarklight.info.tm/dmp/downloads/dmpupdater/), place the program on your KSP folder and run it. -###Flag sharing -DMP will sync any flags under the GameData/DarkMultiPlayer/Flags folder - Put your local flags in here if you want other players to see them. All other flags will work in any location if all players have the flags installed, but it will get reset to default if a player gets near a vessel with a flag they do not have. - -###Chat window -By default, you will join the Global channel (and cannot leave it). -To PM a player, type /query playername or click on their player name in the global chat. -To start a group chat, type /join groupname. -To leave a PM or group chat, type /part or /leave in the window you want to leave. You can also press the 'Leave' button. -Group chats are indicated by the '#' mark, player chats are indicated by the '@' mark. -Newlines can be entered in the chat window with shift+enter. - -###Craft sharing window -To upload a craft, press on your user name and then click 'Upload'. -To download a craft, press on the owning player's username and select one of their uploaded vessels. - -###Screenshot sharing window -To upload a screenshot, press 'Upload'. -To view a players screenshot, press on their player name. -If the server has screenshot saving enabled, The players name will go red when there is a new screenshot to view. - -###Mods -If you try to connect to a modded server, DMP will tell you everything you are missing, and tell you everything you shouldn't have in order to connect. If there is any DLL's that need to be added, you will need to restart KSP. - -###Warping -Both regular and physics warp are available. When you warp, you will be put into your own "time" (called a subspace) which other players can sync to. All updates from the past affect future players, but future players will not affect players in the past. - - -##Server +### Server +The DarkMultiPlayer server is cross platform, meaning you can run it on any platform that supports .NET. +In Linux or macOS, you must have [Mono](http://mono-project.com) installed to be able to run the server. +* Download the [DMPServer zip](https://spacedock.info/mod/11/DarkMultiPlayer%20Server) +* Download [DMPUpdater](http://godarklight.info.tm/dmp/downloads/dmpupdater/), place the program on your server folder and run it. + - NOTE: you must have a previous server version in the folder for DMPUpdater to work. -###Installation -Option a) Extract the DarkMultiPlayer zip to a folder, Not under the KSP or GameData folders. - -###Updating -Option a) Extract the zip as above -Option b) Place DMPUpdater next to DMPServer.exe and run it. - -###Server console commands -admin - Sets a player as admin/removes admin from the player -ban - Bans a player from the server -banip - Bans an IP Address from the server -bankey - Bans a Guid from the server -connectionstats - Displays network traffic usage -countclients - Counts connected clients -dekessler - Clears out debris from the server -exit - Shuts down the server -help - Displays this help -kick - Kicks a player from the server -listclients - Lists connected clients -nukeksc - Clears ALL vessels from KSC and the Runway -pm - Sends a message to a player -quit - Shuts down the server -restart - Restarts the server -say - Broadcasts a message to clients -shutdown - Shuts down the server -whitelist - Change the server whitelist - -###Options -The file is located at DMPServerSettings.txt next to DMPServer.exe. You will need to edit this file while the server is off-line. The file is created on the first server start. - -###address -address - The address the server listens on. -WARNING: You do not need to change this unless you are running 2 servers on the same port. -Changing this setting from 0.0.0.0 will only give you trouble if you aren't running multiple servers. - -####port -The port to listen on, default 6702. - -####warpmode -The warp type. -- Mode 0: MCW_FORCE, You take a warp lock, every player will follow you into warp, and you will create a subspace when you come out of warp that everyone will sync to. -- Mode 1: MCW_VOTE: Same as MCW_FORCE, but you have to vote first - This option may be good for players doing the same thing with voice chat. -- Mode 2: MCW_LOWEST: NOT IMPLEMENTED - Warps to the lowest common warp factor. -- Mode 3: SUBSPACE_SIMPLE: NOT IMPLEMENTED - Allows you to create a subspace in the future, but you can only sync to the latest player with the '>' key. -- Mode 4: SUBSPACE: The default, and most important mode. Each player can warp at will, and they can "sync" to other players times. This is the only mode that allows QuickSaving/QuickLoading -- Mode 5: NONE: Players will be unable to warp. - +You can configure your server by editing `Config/Settings.txt`. +If your server's game difficulty is set to `CUSTOM`, you can alter gameplay settings by editing `Config/GameplaySettings.txt`. -####gamemode -- Mode 0: SANDBOX - The default sandbox game mode. -- Mode 1: SCIENCE - Everyone has their own science points. Shared science is currently not implemented. -- Mode 2: CAREER - Everyone has their own career mode points and funds. Shared science is currently not implemented. - +## Compiling +- Copy the following assemblies from `[KSP root folder]/KSP_Data/Managed`: + * `Assembly-CSharp` + * `Assembly-CSharp-firstpass` + * `UnityEngine` + * `UnityEngine.UI` +- Paste the copied assemblies where `DarkMultiPlayer.sln` is located at. -####gamedifficulty - Specify the gameplay difficulty of the server. -- Mode 0: EASY -- Mode 1: NORMAL -- Mode 2: MODERATE -- Mode 3: HARD -- Mode 4: CUSTOM - This will generate a DMPGameplaySettings.txt file you can edit. - +## Mod Control +Read `DMPModControl.txt`, it's commented. The file can be copied from a development KMPServer (The one where you can use SHA sums, not the one with the !md5 section) as the file format is the same. -####whitelisted -Enable whitelisting on the server. The commands are /whitelist [add|del] playername or /whitelist show. -- 0 : Off -- 1 : On - +If you are running a private server, it's safe enough to just add the missing parts. -####modcontrol -Enables or disables modcontrol - Only turn this off if you are running a private server where everyone has the same mods. -- 0 : Off -- 1 : On (Don't sync vessels with invalid parts) -- 2 : On (Prevent vessels with invalid parts from launching) - - -####keeptickingwhileoffline -Specify if the the server universe 'ticks' while nobody is connected or the server is shut down. - - -####sendplayertolatestsubspace -If true, sends the player to the latest subspace upon connecting. If false, sends the player to the previous subspace they were in. -NOTE: This may cause time-paradoxes, and will not work across server restarts. - - -####useutctimeinlog -Use UTC instead of system time in the log. This is useful if you want to co-ordinate logging between the server and client. - - -####loglevel -Minimum log level to display. While DMP is in alpha, it's recommended to leave this on DEBUG (0) if you want to submit bug reports. ;) - - -####screenshotsperplayer -Number of screenshots to save. You need to have a number higher than -1 in order for players to view screenshots for players they are not currently watching. -- -1 is disabled. -- 0 is unlimited. - - -####screenshotheight -The height of the screenshot in pixels. - - -####cheats -Enable use of cheats in-game. -- 0 : Off -- 1 : On - -####httpport -HTTP port for server status. 0 = Disabled - -####servername -Name of the server. This is the name that shows up in the JSON output (and server list if added) - -####maxplayers -Maximum amount of players that can join the server. - -####screenshotdirectory -Specify a custom screenshot directory. -This directory must exist in order to be used. Leave blank to store it in Universe. - -####autonuke -Specify in minutes how often /nukeksc automatically runs. 0 = Disabled - -####autodekessler -Specify in minutes how often /dekessler automatically runs. 0 = Disabled - -####numberofasteroids -How many untracked asteroids to spawn into the universe. 0 = Disabled - -####consoleidentifier -Specify the name that will appear when you send a message using the server's console. - -####servermotd -Specify the server's MOTD (message of the day). - - -####expirescreenshots -Specify the amount of days a screenshot should be considered as expired and deleted. 0 = Disabled - - -####compressionenabled -Specify whether to enable compression. Decreases bandwidth usage but increases CPU usage. 0 = Disabled - - -####expirelogs -Specify the amount of days a log file should be considered as expired and deleted. 0 = Disabled - - - - -##Mods -Read DMPModControl.txt, it's commented/documented. The file can be copied from a *development* KMPServer (The one where you can use SHA sums, not the one with the !md5 section) as the file format is the same. - -If you are running a private server, it's safe enough to just add the missing parts. - -You can get the DMP client to make a DMPModControl.txt file specific for your GameData directory by pressing Options -> Generate DMPModControl.txt file. -The whitelist option will only allow you to connect with the mods in your GameData directory. -The blacklist option will allow you to connect with any mods. +You can get the DMP client to make a `DMPModControl.txt` file specific for your GameData directory by pressing `Options -> Advanced -> Mod Control -> Generate`. The whitelist option will only allow you to connect with the mods in your GameData directory. The blacklist option will allow you to connect with any mods.