TehGimp / KerbalMultiPlayer

A multiplayer plugin for KMP
http://sesau.ca/ksp/KMP.html
GNU General Public License v3.0
140 stars 53 forks source link

KMP is not mod friendly #452

Closed Xinayder closed 10 years ago

Xinayder commented 10 years ago

I installed Kethane yesterday with KMP installed. When I loaded my save, I tried to build a rocket and the cursor was getting stuck, so I couldn't build a rocket. I removed KMP and no problem at all.

ryannathans commented 10 years ago

Related to #390. Partial mod support coming soon. Full (what's readily compatible like Kethane) mod support coming after that. I'm working in this department and have been for about a week now.

TehGimp commented 10 years ago

We'll also need to look at whether KMP can adversely affect other mods in single-player games. Ideally KMP should act as if it wasn't even installed for single-player sessions.

Aringarosa commented 10 years ago

Google-Übersetzer

Also ich kann zum Thema Mod Freundlichkeit vielleicht etwas beitragen.

Wir spielen zu sechst auf einem GIT folgendem Server von mir und mit diversen Mods die da sind:

KSPX v0.24 ISA_MapSat X4r2 Kethane-0.8.1 KAS_v0.4.4 OrbitalConstruction-Re-Redux-r1.1 RemoteTech2_Release_1.2.7 AviationLights v3.5

Der Kethane-Mod wo die Scan-Seeds bei allen Spielern jedesmal neu ausgewürfelt, da diese eindeutig nicht vom Server gespeichert und gesendet (sehr warscheinlich vom Client nichtmal gesendet) werden ist das einzige was nicht hunderprozentig läuft.

KSPX und AviationLights sind reine Parts-Mods und selbst der Status ob ein Licht blinkt wird richtig gespeichert und syncronisiert.

ISA-MapSat ist Syncronisiert auch die Map nicht aber das ist ja auch nicht vorgesehen in der aktuellen Entwicklung. Zumal der Speicher davon nicht in der peristent.sfs ist. Das ist was für ganz später.

KAS funktioniert gut und selbst durch Haken verbundene objekte werden gut gespeichert und übertragen.

RT2 und damit habe nicht mal ich gerechnet speichert alle eingestellten Dish to Dish verbindung und syncronisiert diese auch.

Wie gesagt der Server läuft jetzt seit gut 3 Wochen mit diesen Mods und bis jetzt hatten wir keinen Fehler oder Abstürze des Servers.

Ringo

Google Translator

So I can on the subject of mod -friendliness might contribute.

We play six of us on a GIT following server by myself and with various mods which are:

KSPX v0.24 ISA_MapSat X4r2 Kethane - 0.8.1 KAS_v0.4.4 Orbital Construction -Re - Redux - r1.1 RemoteTech2_Release_1.2.7 Aviation Lights v3.5

The Kethane be mod where the scan Seeds for all players every time re- rolls , as this clearly is not stored by the server and sent (very probably not even sent to the client) is the only thing that does not work one hundred percent .

KSPX and Aviation Lights are pure Parts mods and even the status is if a light flashes properly stored and synced .

ISA MapSat is synced , the map does not but that is not provided in the current development. Especially since the memory of it is not in the peristent.sfs . That's for all later.

KAS works well and even connected by hook objects are well stored and transmitted.

RT2 and thus did not even I expected stores all set to Dish Dish connection and synchronizes them also.

As I said , the server is now running for over three weeks with these mods and until now we had no errors or crashes the server.

Ringo

ryannathans commented 10 years ago

Sounds awesome. I've got a huge update all ready for server admins to easily configure mods. It's a very large update and such it probably won't make it in to 0.1.4.0. It'll easily be ready in git after the release of 0.1.4.0. It's here working (mostly) now: https://github.com/ryannathans/KerbalMultiPlayer/tree/server-sided-modcheck

I'm still working on making it better and more usable but the fundamentals are working. When I'm finished with this I'll make it so that you can sync all your mods, like the maps from MapSat and the kethane locations.

ryannathans commented 10 years ago

https://github.com/TehGimp/KerbalMultiPlayer/pull/454

Aringarosa commented 10 years ago

Google Translator

The server returns the first / start an error message for the missing KMPModControl.txt and created them afterwards. Not critical but confusing.

Ringo

[15:34:33] [Info] : KMP Server version 0.1.4.0 [15:34:33] [Info] : Created by Shaun Esau and developed by the KMP team http://sesau.ca/ksp/KMP_contribs.html [15:34:33] [Info] : Based on Kerbal LiveFeed created by Alfred Lam [15:34:33] [Info] : [15:34:33] [Info] : Current Configuration: [15:34:33] [Info] : [15:34:33] [Info] : ipBinding : :: [15:34:33] [Info] : port : 2080 [15:34:33] [Info] : httpPort : 8081 [15:34:33] [Info] : httpBroadcast : False [15:34:33] [Info] : maxClients : 20 [15:34:33] [Info] : screenshotInterval : 3000 [15:34:33] [Info] : autoRestart : True [15:34:33] [Info] : autoHost : False [15:34:33] [Info] : saveScreenshots : True [15:34:33] [Info] : hostIPv6 : True [15:34:33] [Info] : cheatsEnabled : True [15:34:33] [Info] : backupInterval : 5 [15:34:33] [Info] : maxDirtyBackups : 36 [15:34:33] [Info] : updatesPerSecond : 100 [15:34:33] [Info] : joinMessage : Willkommen auf dem KSP-Minestar.de-Server [15:34:33] [Info] : serverInfo : Version 0.1.4.0_B7M [15:34:33] [Info] : serverMotd : [15:34:33] [Info] : serverRules : [15:34:33] [Info] : totalInactiveShips : 100 [15:34:33] [Info] : LogLevel : Debug [15:34:33] [Info] : whitelisted : False [15:34:33] [Info] : screenshotHeight : 600 [15:34:33] [Info] : profanityFilter : True [15:34:33] [Info] : safetyBubbleRadius : 20000 [15:34:33] [Info] : autoDekessler : True [15:34:33] [Info] : autoDekesslerTime : 30 [15:34:33] [Info] : profanityWords : fucker:kerper,faggot:kerpot,shit:kerp,fuck:guck,cunt:kump,piss:heph,fag:olp,dick:derp,cock:beet,asshole:hepderm,nigger:haggar [15:34:33] [Info] : [15:34:33] [Info] : /set [key] [value] to modify a setting. [15:34:33] [Info] : /set help for information about each setting. [15:34:33] [Info] : /whitelist [add|del] [user] to update whitelist. [15:34:33] [Info] : /admin [add|del] [user] to update admin list. [15:34:33] [Info] : /quit to exit, or /start to begin the server. [15:34:33] [Info] : [15:34:39] [Info] : Loading universe... [15:34:44] [Info] : Universe OK. [15:34:44] [Info] : Reading KMPModControl.txt [15:34:44] [Debug] : Exception thrown in readMd5List(), catch 1, Exception: System.IO.FileNotFoundException: Could not find file "/home/aringarosa/KMP_GIT/0.1.4.0_B7M/KMPModControl.txt". File name: '/home/aringarosa/KMP_GIT/0.1.4.0_B7M/KMPModControl.txt' at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in :0 at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in :0 at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare) at System.IO.File.OpenRead (System.String path) [0x00000] in :0 at System.IO.File.ReadAllBytes (System.String path) [0x00000] in :0 at KMPServer.Server.readModControl () [0x00000] in :0 [15:34:44] [Info] : KMPModControl.txt not found, generating... [15:34:44] [Info] : Reading KMPModControl.txt [15:34:44] [Info] : Mod control reloaded. [15:34:44] [Info] : Hosting server on port 2080 ... [15:34:44] [Info] : Listening for clients... [15:34:44] [Info] : Commands: [15:34:44] [Info] : /quit or /stop - Quit server cleanly [15:34:44] [Info] : /listclients - List players [15:34:44] [Info] : /countclients - Display player counts [15:34:44] [Info] : /kick [username] - Kick player [15:34:44] [Info] : /ban [username] - Permanently ban player and any known aliases [15:34:44] [Info] : /register [username] [token] - Add new roster entry for player with authentication token (BEWARE: will delete any matching roster entries) [15:34:44] [Info] : /update [username] [token] - Update existing roster entry for player /token (one param must match existing roster entry, other will be updated) [15:34:44] [Info] : /unregister [username/token] - Remove any player that has a matching username or token from the roster [15:34:44] [Info] : /clearclients - Attempt to clear 'ghosted' clients [15:34:44] [Info] : /countships - Lists number of ships in universe. [15:34:44] [Info] : /listships - List all ships in universe along with their ID [15:34:44] [Info] : /deleteship [ID] - Removes ship from universe. [15:34:44] [Info] : /dekessler - Remove debris that has not been updated for at least minutes (in-game time) (If no value is specified, debris that is older than 30 minutes will be cleared) [15:34:44] [Info] : /save - Backup universe [15:34:44] [Info] : /reloadmodfile - Reloads the KMPModControl.txt file. Note that this will not recheck any currently logged in clients, only those joining [15:34:44] [Info] : /setinfo [info] - Updates the server info seen on master server list [15:34:44] [Info] : /motd [message] - Sets message of the day, leave blank for none [15:34:44] [Info] : /rules [rules] - Sets server rules, leave blank for none [15:34:44] [Info] : /say <-u username> [message] - Send a Server message [15:34:44] [Info] : /help - Displays all commands in the server

[15:34:44] [Debug] : Starting ghost-check thread [15:34:44] [Debug] : Starting disconnect thread [15:34:44] [Debug] : Starting AutoDekessler: Timer Set to 30 Minutes [15:39:44] [Info] : Attempting to optimize database... [15:39:44] [Info] : Optimized in-memory universe database. [15:39:44] [Info] : Backing up old disk DB... [15:39:44] [Debug] : Successfully backup up database. [15:39:47] [Info] : Universe saved to disk.

ryannathans commented 10 years ago

Ahh, I left a bit of debugging in there. Easy fix, cheers. I actually don't recall adding that.

ArtificialOwl commented 10 years ago

Just to keep trace of bugs, already discussed on IRC.

ryannathans commented 10 years ago

Look at pull request. I've already fixed the empty line crash bug and I'm looking in to the other :)

Aringarosa commented 10 years ago

@ryannathans Google Translator devBuild: fed0faedccf1a118d5324a6b9b54c60e958d5194

I have it almost guessed. Is it due to the C directories with spaces make problems or simply Am I missing a piece to know that you have to write them differently?

"Innsewerants Space Agency" is such a folder, it throws me back to the main menu when you join with the error message "Disconnect: Required Mod Missing or Incomplete: Innsewerants". So your check works as intended only he can. Dll not found because he already does not detect the correct folder.

Ringo

ryannathans commented 10 years ago

Oh, mod folders can have spaces in them? I'll work on fixing that, cheers.

Aringarosa commented 10 years ago

Viele Modder halten sich an das ohne Leerzeichen Format. Nur einige nicht und da ist es eine Grundsatzfrage ob man sagt alles immer ohne oder beides. Für den Endnutzer ist es natürlich viel komfortabler einfach reinkopieren und gut ist. Du und Ich und die anderen hier wissen wie wir diesen Fehler umgehen können nur das können wir ja nicht von allen verlagen.

Google translator

Many modders stick to the format without spaces. Only some do not and since it is a question of principle whether you say anything more without or both. For the end user it is of course much more comfortable just purely copy and is good. You and I and the others here know how to work around this error, only that we can not even publishers of all.

Ringo

TehGimp commented 10 years ago

These concerns seem to be largely addressed in the latest dev version, and the new support for ScenarioModule syncing also means that many mods with persistent data now reliably work in a more consistent fashion with single-player gameplay. Closing this issue as if we still have bad conflicts with popular mods, each will likely need some amount of individual attention.