-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEAT] Mod installer (aka Blue Shift support part 1) #137
Comments
There is a fundamental problem with using a static -game parameter as client will reject mismatches. The game is passed to clients in CBaseServer::FillServerInfo. |
Here's what I'm thinking:
Other thoughts:
Is the game mismatching even if both the client and the server are running the same mod? Side note, I have not tested this yet, but it is possible that we may not need to touch the SourceMod GameData files as I see references for #supported engine which suggests it will include |
This is literally what I'm trying to avoid. It's too much - size, complexity, usability, skill level. We should be able to switch mods with a command, and keep the server the same.
I think the only worth way going forward (from my experience so far) is a gui launcher. If you think about the complex problem at hand, it needs to install sc, install srcds, install mods, run bms with selected mod, run srcds with selected mod. Players nowadays expect not to have to use cli. The issue with this is, it does not solve dedicated server mod support. We can't / shouldn't control the launch process of dedicated remote servers, it's too out of scope. I think it would be best for the launcher to offload mod support to console commands, so we only have to write that part once. Listen servers suffer from player targeting issues among others and should ideally be only used for mapping.
At this point we can't, the WS isn't even being mounted.
No, the -game parameter is all that matters.
It uses both game and engine references. But even if you tackle sourcemod, other plugins will still need to be dealt with. |
I'm down with this idea. Lets go down the route of using
Agreed with this. I've seen people having troubles installing Blue Shift.
I haven't tried hosting a coop listen server and seeing the associated issues but this would still be good to look into after the mod installer is finished. Before launching the game, server hosts on windows will have to launch srcds first as the srcds instance acts a game instance blocking steam game launches. |
In order to support overhaul mods that come with their own game folder + gameinfo.txt (such as Blue Shift) we should devise an automated mod install + launch process for servers.
Mod registry
There should be a central registry file that we can ship, which for each of supported mods includes:
Plugin commands
All commands take workshop id or short name for mod resolution.
Install mod
sc_install bshift
Launch mod
This is where it gets tricky since overhaul mods require launching with custom -game parameter, which we have no direct way to affect.
As a workaround we can use a static game name
scmodlauncher
as a dynamically updating symlink pointing to the active mod directory. We then instruct users to launch with-game scmodlauncher
.We'll most likely need to do the same with the +map parameter, since server won't fully start with launch map missing.
We can ship an empty placeholder map.
The final file structure would look like this:
sc_launch
would do the following (approximately):After the restart, we can detect our placeholder map and change to the first map of the mod.
Implementation
The text was updated successfully, but these errors were encountered: