Skip to content

DEV BLOG

v0.2.7.1 Beta 5 Hotfix 1

We have just released a hotfix for the 5th beta of KSP2 Redux, which includes a fix for issues with Chinese, Japanese and Korean, Color Manager presets disappearing, adds 3 new missions, and a couple more bug fixes.

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 here on Discord: https://discord.com/channels/1078696971088433153/1444156522127954064/1497756315089637488.

v0.2.7 Beta 5

We have just released the 5th beta of KSP2 Redux, which includes an upgrade of the game’s Unity version from 6000.3.10f1 to 6000.4.1f1, an early release of the modding SDK, an experimental KSP1 part mod loader, first few SM+ size (1.875m) parts, support for Discord rich presence, game statistics tracking, custom flags, improved SAS and flight controls, and as always, a ton of bugfixes.

You can download the new Updater application on the Updater GitHub page. This application will now be the primary way of installing, updating and uninstalling KSP2 Redux. New installation instructions are available on the Redux GitHub page.

You will need a stock install of KSP2 0.2.2 for the initial install (meaning you CANNOT upgrade from beta 4), but this won’t be the case for any future updates, those will just be installed on top of beta 5.

You can find the full changelog on the Redux GitHub page.

Along with this new release and the (at this point almost mythical) Updater/Launcher application, we have also been working on the new website: https://ksp2redux.org, as well as on updating the modding SDK and template project for Unity 6+. You can find the instructions to set up the modding environment here: https://docs.rendezvous.dev/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/getting-started-with-modding-ea0cMbSQ3V.

Custom flags can be added to the game by creating a new folder inside your Redux install’s mods folder. You can call this anything, e.g. MyMod. Then, inside it, create a flags folder, and put your flag files in (ideally PNG). On the next game launch, you should see the flags in the campaign creation menu.

KSP1 part mod import can be tested by creating a folder called KSP1 inside mods, and then putting KSP1 mod folders inside it (generally, whatever folder would go into GameData in KSP1 will go into the KSP1 folder). Please, keep in mind that this is a very experimental initial version of this feature, and it is meant to serve as more of just a tech demo for the future KSP1 mod porting Unity tools that we are working on, meaning we won’t be providing support for mods that are not working properly or breaking the game.

API Documentation Pipeline Update

A short dev update from what ive been doing for today:

I have been working on our workflow to automatically generate API documentation from the doc comments we write in the code.

This is not as simple as it may seem because unity does not have any way to export the xml documentation like msbuild would normally have, so instead I had to force unity in the CI pipeline to generate the project files as it would with rider, then have a modern dotnet sdk build the files to generate the documentation files, which took a lot of fanangling as you might imagine (i even had to write a script to selectively fix an error for this step that only occurs when using the dotnet sdk).

Then later on in the CI/CD pipeline, I invoke docfx to build all the documentation, and push to a github repo (for ease of hosting it on our own domain).

You can see current documentation here: http://api.ksp2redux.org/

This is for the develop branch so it wont accurately reflect whats in the beta, however once the next beta is out it will redirect for that beta.

Project Shakespeare

Everyone, meet The Secret Feature™, or as we like to call it, Project Shakespeare (to honor the never-implemented, never-explained mod type called Shakespeare that can be found in the stock game’s code).

This is a very basic KSP1 part-only mod loader with currently mostly functional command modules, deployables and animations, decouplers, fuel tanks, engines, gimbals, plumes, engine mode switching, variant switching, and more. It includes support for some popular modded part modules as well, such as B9 part switching and animated decouplers.

There’s a lot that doesn’t work properly yet, such as WIP control surfaces (that’s why I didn’t put on the grid fins yet, as they result in a funny, although very motion sickness-inducing death spin), or RCS thrusters. Engine plumes are also just using the default KSP2 methalox plume attached in place of where the KSP1/Waterfall plume would be, and for some parts (e.g. the booster fuel tank in the video) the textures don’t look right, either.

IMPORTANT: this is NOT going to be a “plug-and-play” feature where you just copy all 300 of your KSP1 mods into the Redux folder and can play without any issues. It is extremely limited with a small selection of part modules and types that it can handle, it’s only able to do handle basic Module Manager patching logic in order to support things like engine plumes defined in MM patches instead of the base .cfg file (which is a pattern often used in KSP1 mods), and also, it’s EXTREMELY slow. I’ve seen loading times of like 2-3 minutes with 3 part mods, and that will possibly get even slower as I iterate on it more and introduce more module translations and other functionality (though it can be somewhat mitigated by the caching of translated parts and modules).

The purpose of this feature is to be a proof-of-concept, technical demo that lets your imagination run wild with what could be possible if your favorite KSP1 mod authors ported their mods for KSP2 for real, and it also serves as a technical showcase of what sorts of authoring and conversion tools we can and will provide to KSP1 mod developers to help them with the process of converting their mods over to KSP2 Redux.

Note: this will not be a part of beta 5, you’ll need to wait a bit longer for us to polish this more.

Mods used in the showcase are Tundra Exploration and Kerbal Reusability Expansion, some of my favorite KSP1 mods.

SAS, Flight Input, and Precision Mode

Decided to take a short break from Redux (working on the rendering pipeline) and, for a change, work a bit on Redux. This time, I looked at a few flight-control related things:

  1. SAS oscillations
  2. Flight input
  3. Precision mode

The main one is SAS. In stock KSP2, SAS has a tendency to oscillate a lot more than it did in KSP1, especially on vessels with a lot of control authority, meaning that rockets and planes can sometimes wobble back and forth instead of smoothly settling in the target direction. This gets especially noticeable under physics warp.

After comparing the KSP1 and KSP2 implementations, the PID controller used for SAS is basically the same, and not really an issue. The bigger differences are in the surrounding logic: how SAS estimates when it should stop pushing, when the flight control state gets updated, and how often the telemetry system updates data that SAS needs.

The first fix was related to the “coasting” logic. Basically, SAS needs to predict when the vessel is already rotating fast enough that it should stop applying torque and let itself coast into the target direction. KSP2 had a small difference from KSP1 here that made it worse at predicting overshoot, so it would often push for too long, overshoot, correct back, overshoot again, and so on. Fixing the formula here to match KSP1 helped with making vessels settle down instead of wobbling forever.

The second fix was about timing. Gimbals, control surfaces, reaction wheels, RCS, etc. all consume the flight control state during FixedUpdate, and with this change, SAS now updates that control state earlier in the fixed update order. That means parts are working with fresher SAS commands, instead of commands that are slightly behind what the vessel is currently doing.

There was also a fun little physics warp rabbit hole. SAS depends on telemetry data, but that was normally refreshed through the regular Update path (there’s always 1 Update per frame, so the frequency changes with FPS). Under physics warp, especially at lower FPS, you can get multiple FixedUpdate ticks between regular Updates (FixedUpdate is, as the name suggests, fixed - by default at 50 per second - and it scales with time warp speed), meaning SAS ends up acting on stale telemetry data. This was fixed by updating the necessary telemetry data on FixedUpdate instead of Update.

Outside of SAS, I also tweaked the manual flight inputs. Stock KSP2 input is very instant, which can feel a bit twitchy with keyboard controls. The updated version is closer to KSP1, where pitch/yaw/roll ramp up and decay back down instead of snapping immediately to full input or zero.

Precision mode is completely reworked. In stock KSP2, it simply limited the control authority of user inputs to 10% of the maximum. Now it also acts closer to the KSP1 version, where you can still go from -100% to 100% of the input, but the buildup and decay are much slower, meaning it’s now much easier to make finer inputs, while still letting you go all the way to the max if you keep holding the key.

All in all, these changes should make vessel controls and SAS feel a lot better, though it’s obviously not an all-powerful fix that will get rid of all issues.

In the attached video, you can see all of these changes: SAS on a rocket with very high control authority at 1x, 2x, and 4x physics warp, SAS on a plane, and then the updated normal and precision input behavior (with SAS disabled).