Skip to content
CAI
Software that uses CAICheck a score

CortexaX/OpenPCL

55.5

Adequate · 1 October 2026

44.3k

lines of production code

VB.NET

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an open-source Minecraft launcher that manages game instances, modpacks, and Java environments through a customizable WPF interface. It supports downloading and installing mods from platforms like CurseForge and Modrinth, while providing tools for instance export, crash analysis, and system optimization. The launcher also facilitates online multiplayer networking via a peer-to-peer implementation and includes features for user authentication and home page customization.

How it got here

2022 — OpenPCL fork and PCL2 initial release

15 changes.

The project was forked as OpenPCL under the MIT license, establishing a new public development model and open-source build process. This period focused on the initial release of Plain Craft Launcher 2, featuring a complete WPF UI overhaul, custom animated controls, and a modular architecture supporting multiplayer networking, music, and crash analysis.

2025–2026 — Online multiplayer and instance management overhaul

7 changes.

This period focused on introducing a dedicated online multiplayer interface for room creation and joining, alongside a comprehensive redesign of the instance management UI with new mod handling and export capabilities. The work also established foundational configuration structures in the PCLCS module and vendored the Terracotta networking library to support backend link modes and cross-platform builds.

Features

Introduction of PCLCS configuration and resource management components

This change introduces the PCLCS module, which provides the foundational configuration structures and resource definitions for the application. Configs.cs establishes a new settings schema for managing Java installations, including migration tracking and versioning. Constants.cs defines core enumerations for resource types (mods, packs, shaders), platforms (CurseForge, Modrinth), and mod loaders (Forge, Fabric, etc.), alongside cache version constants. Java.cs implements the logic for discovering, validating, and sorting Java runtimes from common system paths. Resource.cs provides mapping utilities between internal mod loader types and CurseForge API types. Finally, WikiEntry.cs and WikiEntries.txt introduce a local database for mapping Minecraft mods to their Chinese names and platform slugs, enabling localized resource identification.

PCLCS · high confidence

New 'Other' section with Help, About, and Toolbox pages

The launcher now includes a new 'Other' navigation section (accessible via the left sidebar) containing three sub-pages: 'Help' (with searchable, categorized documentation), 'About & Credits' (displaying developer info, contributors, and sponsors), and 'Toolbox' (featuring utilities like 'Daily Luck', 'Memory Optimization', 'Cache Cleanup', and a 'Custom Download' tool with URL/folder/name validation).

Plain Craft Launcher 2/Pages/PageOther · high confidence

New Download Install page with NeoForge support

The Download Install page has been rebuilt to support NeoForge alongside Forge and Fabric. The new UI allows users to select and install NeoForge versions, with automatic loading of version lists from BMCLAPI and official sources. The page also includes improved handling for OptiFine, LiteLoader, Fabric API, and OptiFabric, with better error messages and clearer installation instructions.

Plain Craft Launcher 2/Pages/PageDownload · high confidence

New MyMsg input and selection dialog controls

Added MyMsgInput and MyMsgSelect user controls to the Plain Craft Launcher 2 message system. MyMsgInput provides a text entry dialog with configurable validation rules, allowing users to input and validate text before submission. MyMsgSelect offers a radio-button selection dialog, enabling users to choose from a list of options. Both controls feature consistent styling with the existing MyMsgText dialog, including warning states, animations, and drag-to-move functionality.

Plain Craft Launcher 2/Controls/MyMsg · high confidence

The Settings interface has been restructured into a left-hand navigation panel with four distinct sub-pages: Launch, Link, System, and UI. The Launch page now provides granular control over startup behavior, including version isolation strategies, custom window titles, launcher visibility modes, process priority, and window sizing. It also features a real-time memory allocation visualizer with automatic configuration options. The new Link page introduces multiplayer connection settings, allowing users to choose between direct P2P or low-latency relay modes and configure custom EasyTier nodes. The System page centralizes download source preferences (with mirror/official fallback logic), community resource formatting, and launcher update/telemetry controls.

Plain Craft Launcher 2/Pages/PageSetup · high confidence

New crash analysis module and comprehensive Minecraft module refactoring

This update introduces a new CrashAnalyzer module (ModCrash.vb) that automatically collects and categorizes Minecraft logs, crash reports, and launcher output to provide detailed crash analysis and reporting. It also includes a major refactoring of the core Minecraft modules (ModDownload, ModJava, ModLaunch, ModMinecraft, ModModpack, ModWatcher), improving Java detection and migration, streamlining the launch process with better error handling and telemetry, enhancing modpack installation support for various formats (CurseForge, MMC, Modrinth, etc.), and refining the game process watcher to better manage launcher visibility and state.

Plain Craft Launcher 2/Modules/Minecraft · high confidence

New game selection and download management interfaces

The launcher now includes dedicated UI pages for managing game instances and downloads. The left selection panel displays a list of detected Minecraft folders with context menus for actions like renaming, opening, and deleting, and provides buttons to create new folders, add existing ones, or import modpacks. The right panel presents game versions organized into categorized cards (such as standard, modded, and error states) with options to favorite or delete specific instances. Additionally, a download manager interface has been added to display real-time progress, speed, and remaining file counts, allowing users to monitor and cancel active download tasks.

Plain Craft Launcher 2/Pages · high confidence

New home page customization tutorial added

A new \Custom.xaml\ resource file has been added to the launcher's resources, providing a comprehensive, interactive tutorial for users to customize the PCL home page. This file demonstrates how to use custom WPF components like \MyCard\, \MyButton\, \MyImage\, and \MyListItem\ to create text, images, and buttons, and explains how to configure custom events (such as opening web pages, launching games, or copying text) and advanced features like variable-based visibility toggles and horizontal layouts.

Plain Craft Launcher 2/Resources · high confidence

New instance management UI and export options

The instance settings page now features a new left-hand navigation sidebar (PageInstanceLeft) allowing users to switch between Overview, Setup, Mod Management, and Export views. The Mod Management view (PageInstanceMod) has been redesigned with a new list item component (MyLocalModItem) that supports swipe-to-select for bulk enabling/disabling, updating, or deleting mods. Additionally, a new Export page (PageInstanceExport) has been added, providing granular control over what is included in exported modpacks, such as game settings, mod configurations, resource packs, and specific mod data like JEI/EMI favorites or Journeymap maps.

Plain Craft Launcher 2/Pages/PageInstance · high confidence

New modules for custom events, music playback, and Taowa multiplayer networking

The launcher now includes several new modules in the Modules directory. ModEvent introduces a system for defining and triggering custom events (such as opening files, running commands, or launching the game) via XAML-attached properties. ModMusic adds background music support, allowing users to play audio files from a dedicated folder with randomization and UI controls. ModTaowa and its supporting modules (ModTaowaCore, ModTaowaEasyTier, ModTaowaInternal) implement the 'Taowa' multiplayer networking feature, enabling users to host and join Minecraft sessions via the EasyTier peer-to-peer network with automatic node resolution and state management. Additionally, ModSecret provides internal configuration constants and theme color definitions, while ModDevelop and ModMain provide foundational services like hint notifications and dialog boxes.

Plain Craft Launcher 2/Modules · high confidence

New online multiplayer room creation and joining interface

The launcher now includes a dedicated UI for online multiplayer, allowing users to create rooms by specifying a port and generating an invite code, or join existing rooms by entering an invite code. The interface displays loading states, connection status, and real-time metrics such as latency, player count, and server port/IP.

Plain Craft Launcher 2/Pages/PageLink · high confidence

Plain Craft Launcher 2 Base module restructured with new animation and networking capabilities

The Base module has been significantly reorganized into dedicated files for specific concerns. A new ModAnimation module introduces a custom animation engine supporting various types (Number, Color, Scale, TextAppear, Code, ScaleTransform, RotateTransform) and easing functions. ModNet has been refactored to use HttpClient instead of the obsolete WebRequest and WebClient classes, adding support for GZip compressed responses and improved retry logic. ModLoader now features a robust state management system with progress tracking, cancellation support, and UI thread synchronization. ModValidate provides a flexible input validation framework with rules for regex, integers, length, and more. ModBase centralizes versioning, path management, and icon definitions. MyBitmap offers a universal image conversion utility with caching and WebP support.

Plain Craft Launcher 2/Modules/Base · high confidence

Plain Craft Launcher 2 initial release with WPF UI and clipboard fixes

The Plain Craft Launcher 2 application is introduced, featuring a new WPF-based user interface with custom styling, window resizing, and tabbed navigation. The launcher now requires .NET Framework 4.6.2 and includes assembly binding redirects for Newtonsoft.Json and other libraries. A new ClipboardInterceptor behavior is added to prevent WPF clipboard exceptions in TextBox, RichTextBox, and DataGrid controls. The application also implements single-instance enforcement via mutex and includes various startup checks for environment and permissions.

Plain Craft Launcher 2 · high confidence

Behavioural changes

4 commits (0 fixes) modifying patches

A change to existing behaviour in patches — 4 commits, 10 files.

patches · medium confidence · unverified

New custom UI controls with animated interactions

The launcher now uses a suite of custom-styled controls (MyButton, MyCard, MyCheckBox, MyComboBox, MyComboBoxItem, MyDropShadow, MyExtraButton) that replace standard WPF defaults. These controls provide consistent visual theming and add interactive animations, including color transitions on hover, scale effects on click, and animated drop shadows, to improve the responsiveness and aesthetic of the interface.

Plain Craft Launcher 2/Controls · high confidence

New launch page UI and device-code Microsoft login flow

The launch page now uses a redesigned layout with separate left (version/login/launch) and right (custom content/logs) panels. Microsoft account authentication has been replaced with a device-code flow: a new MyMsgLogin dialog opens a verification webpage, copies the user code to the clipboard, and polls for the token, displaying specific error messages for declined authorization, expired tokens, account security interrupts, or service abuse. The new MySkin component allows users to view, save, and refresh their skin and cape images, with a context menu for quick actions. The right panel supports customizable home content via local files, network URLs, or presets, and includes a launch log viewer.

Plain Craft Launcher 2/Pages/PageLaunch · high confidence

Plain Craft Launcher 2 version updated to 2.13.0.1

The Plain Craft Launcher 2 application version has been updated to 2.13.0.1. This change is reflected in the assembly metadata and the Windows application manifest, which now targets Windows 10 for compatibility.

Plain Craft Launcher 2/My Project · high confidence

Project forked as OpenPCL under MIT license

The repository has been rebranded from PCL2 to OpenPCL, adopting the MIT license and establishing a new public development model. This change introduces a fully open-source, auditable, and reproducible build process for the launcher, including the restoration of theme customization logic and the internalization of the Taowa multiplayer implementation (replacing the external Terracotta executable).

(repo-wide) · high confidence

The Terracotta library source code has been vendored into the project to support the Taowa link mode. This includes the Android JNI bindings (TerracottaAndroidAPI.java) for initializing the backend and handling VpnService requests, as well as the Rust core implementation covering the application state machine, room management via the scaffolding protocol, and the EasyTier networking layer (with platform-specific executable and linkage implementations).

ThirdParty/Terracotta, ThirdParty/Terracotta/timestamp, repository · high confidence

Fixes

Resource download pages now preserve previously expanded cards when navigating between items

When browsing the resource download list, clicking a resource item to view its details now remembers which other cards in the list were already expanded. Upon returning to the list view, those previously expanded cards remain open, improving navigation continuity. This fix addresses a bug where the expansion state was lost during navigation.

Plain Craft Launcher 2/Pages/PageDownload/Resource · high confidence

Dependencies

Initial project structure and dependency manifests for PCLCS, PCL, and Terracotta

This change introduces the build configuration files for the Plain Craft Launcher solution. It adds the C\# project file for the PCLCS library, targeting .NET Framework 4.8 and referencing PolySharp, Newtonsoft.Json, and internal MeloongCore components. It also adds the VB.NET project file for the main Plain Craft Launcher 2 application, which targets .NET Framework 4.8 and includes references to several third-party libraries such as CacheCow, ThrottleDebounce, Imazen.WebP, NAudio, and Ookii.Dialogs.Wpf. Additionally, it introduces the Rust Cargo manifests for the Terracotta third-party module and its timestamp sub-crate, defining dependencies like reqwest, rocket, and serde.

(dependencies) · high confidence

Terracotta v0.4.2 source and build infrastructure added

The \ThirdParty/Terracotta\ directory now vendors the source code for Terracotta v0.4.2 (upstream commit 70d5421) under the AGPL-3.0 license, replacing the previously used standalone \terracotta.exe\ binary. This addition includes a comprehensive Rust build system (\build.rs\) that downloads EasyTier transition assets and embeds a local web status UI, along with platform-specific packaging for Windows, macOS (including a background daemon), Linux, and Android. GitHub Actions workflows are provided to build binaries for multiple architectures (x86\_64, ARM64, RISC-V, LoongArch) and publish releases to Gitee and CNB mirrors.

ThirdParty · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 54 → 55 (+1.1)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 81 → 81 (+0.0)
  • Architecture 70 → 70 (+0.0)
  • Maturity 52 → 53 (+0.2)
  • Readiness 47 → 47 (+0.0)
  • Security 65 → 74 (+8.8)

Resolved (15)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Hotspot: PCLCS/Java.cs (PCLCS/Java.cs)
  • Hotspot: Plain Craft Launcher 2/Controls/MyButton.xaml.vb (Plain Craft Launcher 2/Controls/MyButton.xaml.vb)
  • Hotspot: Plain Craft Launcher 2/Controls/MyIconTextButton.xaml.vb (Plain Craft Launcher 2/Controls/MyIconTextButton.xaml.vb)
  • Hotspot: Plain Craft Launcher 2/Controls/MyListItem.xaml.vb (Plain Craft Launcher 2/Controls/MyListItem.xaml.vb)
  • Hotspot: Plain Craft Launcher 2/Controls/MyRadioBox.xaml.vb (Plain Craft Launcher 2/Controls/MyRadioBox.xaml.vb)
  • Hotspot: Plain Craft Launcher 2/Controls/MyRadioButton.xaml.vb (Plain Craft Launcher 2/Controls/MyRadioButton.xaml.vb)
  • Hotspot: Plain Craft Launcher 2/Modules/Base/PclLogger.vb (Plain Craft Launcher 2/Modules/Base/PclLogger.vb)
  • Hotspot: Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb (Plain Craft Launcher 2/Modules/Minecraft/ModDownload.vb)
  • Hotspot: Plain Craft Launcher 2/Modules/Minecraft/ModJava.vb (Plain Craft Launcher 2/Modules/Minecraft/ModJava.vb)
  • Hotspot: Plain Craft Launcher 2/Modules/ModTaowaEasyTier.vb (Plain Craft Launcher 2/Modules/ModTaowaEasyTier.vb)
  • Hotspot: Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb (Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb)
  • Hotspot: Plain Craft Launcher 2/Pages/PageSetup/PageSetupLeft.xaml.vb (Plain Craft Launcher 2/Pages/PageSetup/PageSetupLeft.xaml.vb)
  • Off-boarding risk: anonymized user #1

New (2)

  • Off-boarding risk: anonymized user #1
  • Orphaned files with no living knowledge

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

CortexaX/OpenPCL was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 5e947bfa596fb893b0d0765f1f7f40fff938e9ec — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.