- Lay foundation to protect players against malicious/unwanted mods that may degrade game experience.
- By allowing 3rd party mods to run on player's PCs, we're literary offering Remote Code Execution As A Service.
- Minimise effort for players to join servers using mods.
- Provide clear documentation with simple processes for creating, developing, uploading and using mods.
- Mod Pack
- A collection of mods, verion ranges and other supporting meta data.
- Client Side only mod,
- A mod that only enhances the game client i.e.
- Creative mode enhancers
- GUI elements (smarter scanner, galaxy navigator)
- A mod that only enhances the game client i.e.
Possible flows for a player to take
- Player launches the game into the main menu.
- They select the mods and tools menu option.
- The presented dialog will allow users to select mods that only enhance client side only.
- the player may connect to a single or multiplayer game as usual.
- Player launches StarMade
- they select a server to join that has mods enabled.
- Each server listed must only be using approved mods. Unless client has opted to using pre-approved or enabled 3rd party mods.
- The client send the server a list of client side only mods.
- This gives the server a chance to disallow client side mods from being used if they go against the server's rules.
- If there are disallowed mods, give the player a friendly warning stating a mod has been disabled while they're connected to that server.
- The game client downloads mods and verifies them for integrity
- The game server will send a list of the mods with versions used as well as their Maven repository to download them from.
- Game client connects to server.
- The game client initalises each mod to be used.
- Player launches star made.
- They create a multiplayer server or local server
- In advanced settings they may choose a mod pack that is used for the server side.
- As the game server will download mods and verifies them for integrity
- Game client connects to server.
- The game client initalises each mod to be used.
- A server administrator may curate their own mod pack or use an existing modpack from SMD.
- A modpack simply lists mods used, their supported version ranges and where to download them from.
- They may also specify an allow-list or disallow-list of client-side only mods.
- As the server starts, it will use the selected modpack and continue as normal.
- Mods may be uploaded to StarMade Dock Community Content.
- If uploaded to starmade dock, could they be
net.starmadedock.<username>:<mod>:<version>
? - Mods may be signed by SMD to verify it originates from SMD.
- If uploaded to starmade dock, could they be
- Uploads can happen via MavenPublish
- Should mods be registered on SMD first, to prevent namespace classes or users spamming the server with mod placeholders?
- Mod packs may be curated through SMD by citizens
- They may also include an allow-list or disallow-list of client-side only mods.
- Mods uploaded to SMD may be flagged by the community and/or removed by moderators if they are malicious of violate Terms of Service.
- Mods may be approved by Schine, or appointed community members
- Game clients may have a default option to download approved mods only.
- Optionally players may enable unapproved mods and add 3rd party sources (i.e. private maven repos).
- Game clients may have a default option to download approved mods only.