Skip to content
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

Proposal: Change Northstar.CustomServers to Northstar.Core #724

Open
ASpoonPlaysGames opened this issue Sep 26, 2023 · 9 comments
Open

Proposal: Change Northstar.CustomServers to Northstar.Core #724

ASpoonPlaysGames opened this issue Sep 26, 2023 · 9 comments
Labels
discussion feedback wanted Feedback is wanted whether the changes by this PR are desired

Comments

@ASpoonPlaysGames
Copy link
Contributor

ASpoonPlaysGames commented Sep 26, 2023

What?

  • Rename Northstar.CustomServers to something like Northstar.Core
  • Move all mod API stuff out of Northstar.Custom and into Northstar.Core
  • Potentially move some UI changes (mod settings, mod menu) out of Northstar.Client into Northstar.Core

Why?

TLDR: consolidating scripts and allowing for better vanilla compatibility.

There is too much overlap between Northstar.Custom and Northstar.CustomServers. For example, Safe I/O is in Northstar.Custom because it is, well, custom. However, an argument could also be made that it should be in Northstar.CustomServers because it is providing a modding API, not custom content. Being in Northstar.Custom also means that it doesn't work for things like vanilla compatibility as Northstar.Custom is RequiredOnClient.

Also, Northstar.Client contains modding API things such as mod settings, and the mods menu. Without these, a lot of mods break and in the case of the mods menu, users cannot enable/disable mods.

What would this look like?

  • Northstar.Client: Client and UI changes that are used to access things like the server browser, authenticating with Atlas, etc.
  • Northstar.Custom: Strictly custom content, such as gamemodes.
  • Northstar.Core: All modding API, custom server stuff, and basic mod UI functionality (mods menu)

Only Northstar.Core would be considered a "core" mod. Disabling Northstar.Client and Northstar.Custom would be a perfectly viable way of playing on vanilla servers (assuming we deal with the server command restriction stuff)

EDIT: oh yeah so this will cause issues btw if mod managers or people don't delete old files :)

@ASpoonPlaysGames ASpoonPlaysGames added feedback wanted Feedback is wanted whether the changes by this PR are desired discussion labels Sep 26, 2023
@Dinorush
Copy link
Contributor

I think this would be a good change. The line between Custom and CustomServers has always been blurry and this would definitely shift Northstar.Custom to a more "approved mods" role to decouple it from CustomServers.

Moving modding API from Client to Core seems reasonable as well, but I haven't worked with Client much.

@ASpoonPlaysGames
Copy link
Contributor Author

Moving modding API from Client to Core seems reasonable as well, but I haven't worked with Client much.

Honestly this bit is like a side-thing, I'm not too fussed about it compared to the Northstar.CustomServers thing

@ASpoonPlaysGames
Copy link
Contributor Author

would definitely shift Northstar.Custom to a more "approved mods" role

I think ideally (when mod autodownload) Northstar.Custom should be like, a vetted collection of modded content that is like an "authentic" Northstar experience. Playing without Northstar.Custom would be as close to a vanilla experience as possible (but with server browser and such)

@GeckoEidechse
Copy link
Member

GeckoEidechse commented Sep 26, 2023

I wouldn't mind a little clean-up 👀

Though, given that we cannot really remove files on manual install and mod-manager install, I'd say this is blocked at the very least until I have removing old mods folder before installing new one when doing Northstar update added to FlightCore.
(it's on my TODO list)

Even then this does not capture VTOL and Viper users.
As such I would also suggest adding the old mods to blacklist to ensure maximum compatibility.

EDIT: FlightCore, VTOL, Viper, all support removing core mod files now :D

 

Also I think when this discussion previously happened, the idea was to split up Northstar.CustomServer into Northstar.Server and Northstar.CustomServer where

  • Northstar.Server had the content for hosting "vanilla" servers
  • Northstar.CustomServer had the content for hosting Northstar-like servers

@ASpoonPlaysGames
Copy link
Contributor Author

Though, given that we cannot really remove files on manual install and mod-manager install, I'd dsy this is blocked at the very least until I have removing old mods folder before installing new one when doing Northstar update added to FlightCore.

Yeah that's like the main problem that I'm facing here I think. It would be a lot of removed files from places like Northstar.Custom which could cause issues if we then update those files in their new locations.

Also I think when this discussion previously happened, the idea was to split up Northstar.CustomServer into Northstar.Server and Northstar.CustomServer

I think that this just causes more issues, we would end up with even more duplicated scripts and nuisances across the mods.

Also, a "Northstar-like" server without other mods such as Northstar.Custom is just a "vanilla" server already? I don't think we need to make a distinction like that by splitting it up

@uniboi
Copy link
Contributor

uniboi commented Sep 26, 2023

I think separating between pure core client and server mods was a mistake since a lot of things are required on both the Client and Server to avoid desync and the like.

And I do agree with Spoon that a Northstar.Server "Vanilla"-like server mod does not make any sense.
Other than that I'm too tired rn to think

@GeckoEidechse
Copy link
Member

I'm not 100% sure any more cause it's been a while but basically the idea behind the Northstar.Server and Northstar.CustomServer split was that Northstar.CustomServer would be the server-only equivalent to Northstar.Custom.

A "vanilla" server is defined as a server that a vanilla client can connect to by running connect <server-ip>, e.g. via binding that command to a keybind. Allowing players that don't have Northstar installed to still join self-hosted servers.

In order to preserve the vanilla experience alive past an eventual shut-down of vanilla servers @BobTheBob9 put quite a lot of importance on maintaining vanilla compat.

@ASpoonPlaysGames
Copy link
Contributor Author

While I agree that this is pretty important, I don't think it warrants a split in scripts. We have control over preprocessor stuff these days, so a "vanilla" server mode could in theory just be a toggle

@GeckoEidechse
Copy link
Member

Forgot to mention here that FlightCore, Viper, VTOL, all support removing old core script files now :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion feedback wanted Feedback is wanted whether the changes by this PR are desired
Projects
Status: No status
Development

No branches or pull requests

4 participants