NorthstarMods icon indicating copy to clipboard operation
NorthstarMods copied to clipboard

Proposal: Change `Northstar.CustomServers` to `Northstar.Core`

Open ASpoonPlaysGames opened this issue 1 year ago • 9 comments

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 avatar Sep 26 '23 19:09 ASpoonPlaysGames

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.

Dinorush avatar Sep 26 '23 19:09 Dinorush

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 avatar Sep 26 '23 19:09 ASpoonPlaysGames

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)

ASpoonPlaysGames avatar Sep 26 '23 19:09 ASpoonPlaysGames

I wouldn't mind a little clean-up :eyes:

~~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

GeckoEidechse avatar Sep 26 '23 19:09 GeckoEidechse

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

ASpoonPlaysGames avatar Sep 26 '23 19:09 ASpoonPlaysGames

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

uniboi avatar Sep 26 '23 20:09 uniboi

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.

GeckoEidechse avatar Sep 26 '23 20:09 GeckoEidechse

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

ASpoonPlaysGames avatar Sep 30 '23 12:09 ASpoonPlaysGames

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

GeckoEidechse avatar Feb 11 '24 20:02 GeckoEidechse