Skip to content

High-level Campaign packs implementation#50

Open
EwyBoy wants to merge 6 commits into
devfrom
feature/campaign-packs
Open

High-level Campaign packs implementation#50
EwyBoy wants to merge 6 commits into
devfrom
feature/campaign-packs

Conversation

@EwyBoy
Copy link
Copy Markdown
Collaborator

@EwyBoy EwyBoy commented May 31, 2026

Campaign Packs could become the clean way to bundle a “way to play” without forcing every mod to own the whole game setup.

A pack can point at a galaxy, tech tree set, mission set, and science set, while extensions let other mods add or remove content without having to copy the whole thing. So one mod could add a planet pack, another could add missions for it, another could rebalance the tech tree, and they can all layer onto the same campaign setup instead of creating a bunch of incompatible forks.

For players, this could just become a simple choice when starting a save: stock-style Redux campaign, KSP1-inspired progression, a planet-pack campaign, a hard-mode career, a science-only setup, etc.

For modders, the main benefit is that they can make focused content. They do not need to rebuild a full campaign definition just to add five missions or a few tech nodes. They can create a small extension that targets an existing pack or set, and the system resolves the final playable campaign from all the pieces.


Adds a runtime-side prototype for Campaign Packs, building on the editor authoring tools from KSP2Redux/SDK#3.

This is intentionally a fairly high-level and modular implementation. The goal is not to lock in every runtime decision yet, but to create a small bridge between the baked authoring JSON and the game/runtime side so we can inspect how the system behaves and iterate from there. If parts of the structure do not fit what we want later, they should be easy to add, remove, or reshape.

Adds runtime JSON definitions for:

  • Campaign packs
  • Tech tree sets
  • Mission sets
  • Science sets
  • Campaign pack extensions

Adds a runtime catalog that can:

  • Load the baked JSON definitions
  • Track loaded packs, sets, and extensions
  • Resolve effective campaign pack contents
  • Apply base sets first, then extensions, then removals
  • Report validation/load issues
  • Produce a readable summary for debugging

Adds a new Patch Manager module:

  • Loads campaign pack JSON from addressable labels
  • Logs the resolved campaign pack summary
  • Exposes a PatchManager.CampaignPacks details foldout for quick in-game inspection

Notes

The Campaign Packs does not do anything yet. For now, this is just the safe runtime inspection layer: author assets in the SDK tools, bake them to JSON, load them at runtime, and inspect the resolved result.

The intent is to keep the system flexible while we figure out the exact shape Campaign Packs should take.

@EwyBoy EwyBoy self-assigned this May 31, 2026
@EwyBoy EwyBoy requested a review from cheese3660 May 31, 2026 20:44
@EwyBoy EwyBoy assigned jan-bures and unassigned jan-bures May 31, 2026
@EwyBoy EwyBoy requested a review from jan-bures May 31, 2026 20:44
@EwyBoy EwyBoy marked this pull request as ready for review May 31, 2026 20:45
@EwyBoy EwyBoy added the enhancement New feature or request label May 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants