Skip to content

DEV BLOG

v0.2.8.2 Beta 6 Hotfix 2

We have just released the second hotfix for the 6th beta of KSP2 Redux, which includes SAS stability improvements for spaceplanes and high dynamic pressure regimes, a number of tracking station, EVA and parts fixes, and various smaller quality-of-life refinements.

To install, use the Redux Updater app, do not download any files from this page manually.

  • Added: Research storage to the SM+ conical crew pod
  • Updated: Stock SRB plumes now scale with atmospheric pressure
  • Updated: Kerbal helmets can only be removed above 0.15 atm of ambient pressure
  • Updated: Settings menu button transition times
  • Updated: Font assets refreshed with proper Chinese fallbacks
  • Updated: Localization updates from nightly translation runs
  • Updated: Credits
  • Removed: “Advanced Editor” toggle and gated module actions (the actions are now always available)
  • Fixed: SAS overshoot when wings or other large lifting surfaces are attached
  • Fixed: SAS overshoot in high dynamic pressure regimes (helps spaceplanes hold attitude at high q)
  • Fixed: SAS not working when using command seats
  • Fixed: Changing vessel type swapping orbital velocity, flight stats and music between vessels
  • Fixed: Pressing Launch leaving the player stuck in the VAB after the loading screen
  • Fixed: “Obstruction” notification appearing when a deployable part breaks
  • Fixed: Renaming a vessel in the tracking station overwriting flag and mission entry names in the list
  • Fixed: EVA parachute in an external seat not using agency colors
  • Fixed: EVA parachute breaking swimming animations when the kerbal gets out of a seat in water
  • Fixed: Aerodynamic stress incorrectly breaking fixed solar panels
  • Fixed: Repacking a parachute on the ground temporarily redeploying the chute
  • Fixed: Bobcat, Cheetah and XS booster shroud lengths
  • Fixed: Shakespeare solid rocket plumes
  • Added: Sticker bounding box display in the VAB
  • Fixed: Stickers causing glitchy reflections on VAB windows
  • Fixed: Science experiment list in the report window now has a separated header
  • Fixed: Small island airport disappearing
  • Fixed: Part sizes in the VAB not being translated

v0.2.8 Beta 6

We have just released the 6th beta of KSP2 Redux, which adds a large batch of new parts including SM+ decouplers, boosters, command pod, probe cores, cameras and decals, EVA parachutes, vessel categories and map icons, KSP1-style orbital camera behavior, expanded maneuver node controls, campaign flag changing, supersampling, major SDK tooling improvements, a Lua-powered Patch Manager rewrite, and as always, a ton of bugfixes and quality-of-life improvements.

To install, use the Redux Updater app, do not download any files from this page manually.

  • Added: Inline SM+ stack decoupler
  • Added: Inline SM+ stack separator
  • Added: SM+ solid rocket booster
  • Added: XS “Shrimp” solid rocket booster
  • Added: XS “Mantis” solid rocket booster
  • Added: SM+ conical crew pod
  • Added: SM+ inline probe core
  • Added: SM+ octagonal probe core
  • Added: Radial and downward camera parts
  • Added: Sticker decal part
  • Added: New camera tech node and updated SM+ tech tree placement
  • Updated: SM+ fuel tank and adapter models and textures
  • Updated: Bobcat and Cheetah engine models and textures
  • Updated: Bobcat and Cheetah engines now have shrouds
  • Updated: Bobcat and Cheetah engines now have audio
  • Updated: All Redux parts now have reentry meshes
  • Updated: Fairings now have an optional interstage node
  • Added: EVA parachutes, including gliding, agency colors, and external seat support
  • Added: Aerodynamic stress now breaks deployed parts
  • Added: Vessel categories and icons for map/tracking station identity
  • Added: KSP1-style celestial (orbital) camera behavior
  • Added: Maneuver nodes can be added and edited while paused
  • Added: Scroll wheel precision input for maneuver gizmos
  • Added: Notifications when toggling normal and precision flight input modes
  • Added: Notifications when trim is applied or reset
  • Updated: Time warp limits are no longer applied in safe orbits
  • Updated: Physics warp status text and color now change when physics warp is enabled
  • Updated: Flags planted before updating the campaign flag now retain their original flag design
  • Added: Helmet toggling is available on oxygen worlds and in command pods
  • Added: Stored research reports are now shown in the flight report window
  • Updated: Lowered minimum science rewards difficulty option to 10%
  • Added: Gateway tier 1 mission triumph video
  • Added: You can now change the campaign flag in the Settings menu
  • Added: “Advanced Editor” toggle in the Part Manager and Settings menu, with advanced part module actions moved behind it
  • Added: “Remove from symmetry” advanced part action
  • Added: “Add to Staging” toggle for docking ports
  • Added: “Preview Deployment” action for science parts in the VAB
  • Added: Mouse wheel scrolling in the R&D Center
  • Added: Color Manager tooltips
  • Updated: Mission Tracker button moved to the main VAB app bar
  • Updated: Bug Reporter is now localized
  • Added: Supersampling setting for flight and VAB (improves anti-aliasing and visual quality at the cost of performance)
  • Fixed: VAB symmetry preview ghosts
  • Fixed: Radially attached symmetry parts creating empty stages
  • Fixed: Improved performance when placing parts (caused by staging updates during VAB change processing)
  • Fixed: Stage reordering bug
  • Fixed: Symmetry issues when docking vessels
  • Fixed: Vessel combination is now atomic during docking
  • Fixed: Symmetry interfering with action group deployment
  • Fixed: Copying a part not copying its resources
  • Fixed: Procedural wings not recalculating mass in the VAB
  • Fixed: Undo reverting the VAB camera to the root part
  • Fixed: VAB part finalization/tracking null references during loading
  • Fixed: Fairing construction being laggy in snap mode
  • Fixed: Fairing construction snapping outside snap mode
  • Fixed: Fairing snapping to the wrong diameter when adding a new segment
  • Fixed: Fairing material issues with transparent base colors
  • Fixed: Strut configurations causing launch explosions or VAB crashes
  • Fixed: Radiator extension and activation are now separate toggles
  • Fixed: Thermal tab missing from the Action Group Manager
  • Fixed: Color Manager preset bugs
  • Fixed: Docking ports, decouplers and abort action staging behavior in several edge cases
  • Fixed: Kerbal and sample container animations getting out of sync during time warp
  • Fixed: Kerbal ground checks causing null references
  • Fixed: SAS/telemetry edge cases and wheel torque axis mismatch on rotated multi-wheel vessels
  • Fixed: Out-of-fuel maneuver duration calculation
  • Fixed: Maneuver nodes desyncing after thrust limiter changes
  • Fixed: Map raycasts when transform syncing is needed
  • Fixed: KSC entry breaking in the tracking station list after renaming vessels
  • Fixed: Decoupling/undocking assigning focus to the debris part via heuristic
  • Fixed: Cheat menu null reference during docking with the rendezvous menu open
  • Fixed: Kerbol shining through Kerbin
  • Fixed: Jool and Eve clouds being too bright
  • Fixed: Discord Rich Presence timer resetting when state changes
  • Fixed: Discord Rich Presence errors before a vessel is fully initialized
  • Fixed: Discord Rich Presence does not update when recovering a vessel
  • Fixed: Vessel validity checks in simulation
  • Fixed: Disposed removed portrait culling groups
  • Fixed: Thermal system and heat shield tuning issues
  • Fixed: Parachute deployment forecast making parachutes deploy too early and bypassing the Risky state
  • Fixed: Active radiators disabling cooler/device state incorrectly
  • Fixed: Incorrect lifetime checks for Module_Color
  • Fixed: Deployable, fairing, engine, RCS, reaction wheel, wheel and science module edge cases
  • Fixed: Bobcat and Cheetah engine setup issues
  • Fixed: “Mun or Bust” completing at the wrong apoapsis
  • Fixed: Pol’s Midlands experiments not being localized
  • Fixed: Crashing into Laythe ocean not being detected as a crash for mission objectives
  • Fixed: UI locks getting stuck after windows close
  • Fixed: UITK tooltip positioning and added more tooltip options
  • Fixed: Flag Site UI z-index, button localization and title styling
  • Fixed: Statistics module preventing revert to VAB
  • Fixed: Statistics manager errors when loading non-campaign saves
  • Fixed: Engineer Report icons now load asynchronously and cache sprites
  • Fixed: Bug Reporter localization coverage
  • Fixed: Chinese, Japanese and Korean font replacement null reference safeguards
  • Fixed: Various common null references and loading-state errors
  • Fixed: Color manager title spacing issues
  • Fixed: Color manager button text overflowing in some languages
  • Added: Part icon generation editor tooling including presets and category defaults
  • Added: Drag cube generation and visualization
  • Added: Reentry mesh generation and visualization
  • Added: Improved and simplified Plume editor (one-click VFX object gathering based on sub-plume hints)
  • Added: Part size registry and revised legacy part-size handling
  • Added: Fairing shroud preview in the editor
  • Added: Paintable shader custom editor
  • Added: Interaction presets, airlock and ladder interactions
  • Added: Unity Audio setup for modding and part audio preset authoring tools
  • Updated: Debug Tools bookmarks, including reentry testing bookmarks
  • Updated: Patch Manager rewritten to use Lua scripting
  • Added: Fluent Patch Manager APIs and improved diagnostics
  • Added: Generated Lua stubs for IntelliSense/autocompletion support
  • Visual Studio Code extension for Patch Manager: https://marketplace.visualstudio.com/items?itemName=infinity-sys.pm-lua
  • Added: Patch passes and config values for patches
  • Added: Additional Lua selection helpers and V-SwiFT stubs
  • Added: Audio preset patching support
  • Added: Per-part PAM hiding flags
  • Updated: Improved patch ordering, caching, cache invalidation and summary/error reporting
  • Updated: Reduced Patch Manager overhead by removing extra JSON round trips and improving hot paths
  • Fixed: Improved Patch Manager performance and reduced unnecessary allocations
  • Added: REPL support to the SpaceWarp console
  • Updated: Reworked SpaceWarp console layout and styles
  • Updated: Config registration now uses the new config system across Redux-Lib and SpaceWarp
  • Added: Internal-only config value support
  • Updated: Variant swaps are now tracked in VAB history
  • Updated: Material and variant handling for Shakespeare/imported parts
  • Fixed: V-SwiFT swapping parts back to the default variant
  • Fixed: Flight-state transform activation
  • Fixed: V-SwiFT VAB attach-node and Patch Manager integration issues
  • Added: AppShell control for unified window layout and theming
  • Added: C# dialog API and updated dialog styles
  • Added: Window resizing, draggable handle support and better game-input blocking
  • Added: Tooltip localization and automatic text resizing support
  • Added: Uppercase localization converter and converter API updates
  • Added: Moved shared Redux UI components into UitkForKsp2 for modders
  • Added: Category list is now scrollable when overflowing
  • Added: Attachment node symmetry support
  • Updated: Improved KSP1 part import performance during loading
  • Updated: Improved KSP1 part performance in the VAB
  • Updated: Improved attachment node size and bulkhead size handling
  • Updated: Cached KSP1 textures by resolved file name
  • Updated: Faster texture loading/compression paths and reduced VRAM pressure
  • Updated: Improved plume scaling
  • Fixed: Reduced large allocations from file reads
  • Fixed: Part variants resetting
  • Fixed: Imported part resource lookup and user data module adaptation issues
  • Patch Manager scripting was rewritten to use Lua. All existing patches will need to be rewritten in Lua, but the new system is more powerful and easier to learn.
  • Config registration was moved to the newer Redux/SpaceWarp config system. Mods using low-level config registration APIs may need to update.
  • UitkForKsp2 package names, namespaces, assemblies and theme structure were reorganized. Mods directly referencing old control namespaces or theme paths may need updates.
  • Part size handling was revamped. Mods or patches relying on old legacy part sizes should update their part metadata.

Redux Is Looking for More Volunteers

As we continue developing Redux and get closer and closer to the stable release, the amount of work needed to keep moving forward is increasing. We have very high ambitions, from continuing to fix and improve the base game to building out major systems like colonies, improving the visuals, adding lots of new parts, and also making the game accessible to more players.

Because of that, we are looking for more volunteers interested in helping with one or more of the following areas:

  • Unity and C# development: working on the game’s core systems, fixing bugs, improving performance, converting systems to ECS, and designing and implementing larger features such as colonies and other major gameplay systems.
  • Graphics programming and technical art: helping with the ongoing Built-in Render Pipeline to URP port, recreating and improving the game’s shaders, and working on things like new part shaders, reentry VFX, engine plumes, and other rendering, lighting and post-processing improvements.
  • 3D art: creating new vessel and colony part models and textures, working on new celestial bodies, and helping define the asset pipeline and art guidelines we will use going forward.
  • 2D art and animation: animating new in-game tutorial videos, mission animations, possible promotional material and YouTube videos, and concept art.
  • Graphic and web design: improving the website, preparing graphics for dev updates, and creating visuals and infographics for social media posts and other community-facing material.
  • Video editing: editing feature highlight and showcase videos
  • Translation: mainly Chinese (Traditional), Italian, Japanese, Korean, Portuguese (Brazil), and Spanish.

You do not need to be able to contribute all the time. This is still a volunteer project, and we know everyone has their own life, work, studies, etc. What helps the most is people who can communicate clearly and are passionate about the project.

If you are interested, please reach out to @.munix or @safarte on Discord. When you message us, please include a few references of your previous work, depending on what you want to help with. For example, this can be GitHub repositories or code samples, screenshots or renders of 3D models, shader work, animations, design work, etc. (You don’t need to provide references for translation or writing work, but if you have previous experience in those areas, feel free to share that as well.)

We cannot promise that every person who reaches out will immediately have something assigned to them, but if you have experience in one of these areas and want to help finish what KSP2 started, please reach out to us.

SAS Improvements

Hello all, I thought I’d write a quick blog post summarizing the main changes that we’ve done to SAS in KSP2 Redux, as I think it’d make for an interesting semi-technical overview.

You might think that we could’ve just ripped KSP1’s SAS system into KSP2, but that approach would not have worked, mainly given that the core of the SAS logic in KSP2 is the same algorithm as it is in KSP1.

So then, why is SAS so stable in KSP1 while it is in KSP2, if the core is the same?

The simple answer is, it has to do with how data is fed into the SAS system, and how its outputs are applied to the controls, there has to be differences in there, maybe the data coming in is stale, or maybe the outputs are being applied differently. And this is what guided our changes and our investigations into the differences in the 3 main passes we looked into the SAS system.

When I was first looking into the SAS differences, I started trying to look at how the outputs were applied, and I made the mistaken assumption that the SAS outputs were somehow going through Unity’s input system, and as such the outputs were being smoothed in a way that they weren’t in KSP2, so I tried replicating that input system to see if it improved this. The replication itself just made all the inputs feel sluggish and not fun to play with, and it did not even fix the issues with SAS in the first place, as such these changes were scrapped.

Though, I’m still mentioning this because one improvement did come out of this pass of looking at it, the stability improvements for command pods/probe cores that are the sole part of a vessel. Essentially, what was going on there was that the moment of inertia calculations for a single part were using unity’s own moment of inertia calculations directly, while every other case would apply some form of scaling to the moment of inertia based off of mass, so what I did here was just mirror the mass scaling for this case.

Main Article: SAS, Flight Input, and Precision Mode

For this pass, we looked deeper into how the algorithm worked, and the data that is being fed into it, and there were 3 main things we noticed and subsequently fixed for Beta 5.

  1. Coasting Logic The coasting logic in KSP2 was worse than KSP1 at predicting overshoots.
  2. SAS Update Order The SAS commands were being sent out to the modules after the modules had updated their state for the frame, meaning they’d be applied later than before.
  3. Telemetry Data The telemetry data being fed to the SAS was in the Update loop, meaning during time warp it would not be fresh, leading to stability issues

(More information on these changes can be found in the main article by Munix)

The prior changes still weren’t enough to bring the SAS on par with KSP1’s performance and stability, so we decided to look further into it to see anything else that could be an issue, again focusing on the inputs to the SAS system, and where the outputs are going. By comparing this to KSP1, we found one crucial difference, which will require a bit of explanation.

KSP2 Introduced interfaces for parts that apply torque and other forces to the main rigidbody that were not present in KSP1, in KSP1 all parts did these on their own immediately in their update cycle.

This change was part of what introduced the instability that this pass fixed, as this torque was no longer being applied immediately.

So when was it being applied? During the RigidbodyBehaviour’s OnFixedUpdate method near the beginning of a physics update. The entire relevant loop, including other modules, looking something like

  1. Begin the physics update
  2. Copy Unity’s Rigidbody state into the data used for the simulation
  3. Write back the current torque being provided by ITorque components and other forces to the Unity Rigidbody
  4. Use the data copied in step 1 to update the SAS commands (SAS module)
  5. Use the SAS commands to update part torque output (Parts with ITorque)
  6. End the physics update

As can be seen in the loop, the actual torque output was not being applied until the next frame and the SAS was getting data fed into it that was read before these outputs were applied, so it had stale data and an output lag.

The fix to this was quite simple, we just had to give the RigidbodyBehaviour 2 slots in the update cycle, rather than just one, keeping the early update for reading the data into the simulation state, then applying the outputs later in the cycle when everything has had a chance to update their torque and other physics outputs.

Meaning that the new correct loop in Beta 5 Hotfix 2 looks something like:

  1. Begin the physics update
  2. Copy Unity’s Rigidbody state into the data used for the simulation
  3. Use the data copied in step 1 to update the SAS commands (SAS module)
  4. Use the SAS commands to update part torque output (Parts with ITorque)
  5. Write back the current torque being provided by ITorque components and other forces to the Unity Rigidbody
  6. End the physics update

v0.2.7.2 Beta 5 Hotfix 2

We have just released the second hotfix for the 5th beta of KSP2 Redux, which includes a bunch of minor bug fixes as well as further improvements to SAS stability.

You can install the update in the Updater application (If you don’t have it yet, download on the Updater GitHub page). - Simply select the newest beta (highest number) in the dropdown and click Install.

You can find the full changelog on the Redux GitHub page or on Discord: https://discord.com/channels/1078696971088433153/1444156522127954064/1498461514145730750.