Upgrading to API v4.0 series
Follow the compatibility notes when upgrading your mods to API v4.0 series
As API v4.0 is still in development, the breaking changes get committed and land here. They describe what broke and what should be used instead.
From 0.1.2 to 0.2.0
This version gives your kernel a minor gorgeous makeover that brings in feature additions and spectacular improvements in all fields, including some of the cosmetic changes.
Updated Terminaux to 7.0
We've updated Terminaux to 7.0 to bring improvements. However, this doesn't come without the cost of having to deal with the breaking changes, which, in this case, is many.
You can consult the list of breaking changes that result from upgrading to Terminaux 7.0 by pressing the below button:
API v7.0Breaking changes for API v7.0Detailed important changes
This section explains how to adapt the important changes to your mod code so that it works with 0.2.0 and higher. This highlights the most important changes that we have compiled for you.
LanguagePacks addon removed
The LanguagePacks addon has been removed due to the LocaleStation migration that happened during the Terminaux 7.0 preparation stage as part of the development plans. Terminaux 7.0 Beta 4, which has been scheduled for July 31st, 2025, has incorporated langauge tools according to the tools that LocaleStation provides.
As a result, we've decided to remove the LanguagePacks addon.
Condensed the language manager
LocaleStation has been used in the whole Nitrocid kernel. We've condensed the language manager to remove all the following features:
Custom languages
Installation and uninstallation of custom languages
Mod localizations
Mod localizations can be easily dealt with, but only if you've added the custom language action for your mod using the functions that LocaleStation provides.
The inter-addon communication facility will report errors when using one of the following removed functions and properties:
ModInfo.ModStrings
ModManager.GetLocalizedText()
As part of the condensation, we've also removed the following:
LanguageInfo.Codepage
LanguageInfo.Country
LanguageInfo.Transliterable
LanguageInfo.Custom
public LanguageInfo(string LangName, string FullLanguageName, bool Transliterable, int Codepage = 65001, string country = "")
public LanguageInfo(string LangName, string FullLanguageName, bool Transliterable, string[]? LanguageToken, string country = "")
Moved KernelMain
to Nitrocid
for the .Base migration
KernelMain
to Nitrocid
for the .Base migrationpublic static class KernelMain
We've recently moved KernelMain
from Nitrocid.Kernel
to Nitrocid
to satisfy the .Base migration more smoothly. This is as part of the API v4.0 version that all mods will have to use.
Due to how KernelMain
is not migrated to the .Base library, you can no longer use this class. Instead, you'll have to rely on KernelReleaseInfo
to get the properties that you were using.
Argument parser code moved to Terminaux 7.0
// Nitrocid.Arguments
public abstract class ArgumentExecutor : IArgument
public class ArgumentInfo
public class ArgumentParameters
public static class ArgumentParse
public interface IArgument
// Nitrocid.Arguments.Help
public static class ArgumentHelpPrint
The argument parser code has been moved to Terminaux 7.0, because the functions that are inside are application-independent. The arguments themselves haven't been moved because they are specific to Nitrocid.
We are working on the documentation of the argument parser in the Terminaux documentation, so be patient.
Remaining shell code moved to Terminaux 7.0
Features such as UESH scripting and process execution have been moved to Terminaux 7.0's shell implementation to match the Nitrocid one. Furthermore, this movement has resulted in us removing all relevant shell code, except the Nitrocid-specific code.
Removed console driver
public abstract class BaseConsoleDriver : IConsoleDriver
public static class ConsoleDriverTools
public interface IConsoleDriver : IDriver
public static IConsoleDriver CurrentConsoleDriverLocal
public static IConsoleDriver CurrentConsoleDriver
public enum DriverTypes
{
(...)
Console,
(...)
}
public string CurrentConsoleDriver
The console driver has been removed following Terminaux's addition of the brand new console wrapper that doesn't rely on delegated actions. This was necessary to simplify the console wrapper feature in Terminaux and to have it handle the console driver's features.
Moved theming system to Terminaux
// Nitrocid.ConsoleBase.Colors
public enum KernelColorSetErrorReasons
public static class KernelColorTools
public enum KernelColorType
// Nitrocid.ConsoleBase.Themes
public enum ThemeCategory
public class ThemeInfo
public static class ThemePreviewTools
public enum ThemeSetErrorReasons
public static class ThemeTools
The theming system that Nitrocid used has been moved to Terminaux to give all other Terminaux applications advantage for using Nitrocid's features. Calls to text writers have also been changed to reflect the appropriate theme to set.
Theme-based writers moved to Terminaux
public static class TextDynamicWriters
public static class TextWriters
The text writers that use the theme color type have been moved to Terminaux, causing us to remove those two classes entirely. This is a massive change that will mandate the usage of what Terminaux implements due to the way the migration has been done. The relevant functions have been moved to their relevant places, resulting in the ListWriterColor
being re-introduced.
All Nitrocid functions moved to Nitrocid.Base
The root namespace for all Nitrocid functions has been changed from Nitrocid to Nitrocid.Base to separate the entry point from the actual product code, since the mods use the base library as a dependency 100% of the time. Also, it was considered to be best practice to distribute NuGet packages that result from building libraries and not .exe
files.
We had planned to do this during very early development of the v0.0.x series, but we didn't do that because we had introduced kernel mods from .dll
files very late.
Calendar classes moved to Terminaux
// Nitrocid.Base.Kernel.Time.Calendars
public abstract class BaseCalendar : ICalendar
public static class CalendarTools
public enum CalendarTypes
public interface ICalendar
The calendar classes have been moved to Terminaux as we were working on porting the calendar cyclic writer to Terminaux to give the other console applications more features. Events and reminders, however, weren't moved due to them being Nitrocid-specific.
Last updated