Skip to content

Conversation

skuzzis
Copy link
Member

@skuzzis skuzzis commented Oct 18, 2025

This pull request introduces several improvements to the build pipeline, plugin hot-reloading, and command handling logic, as well as some API enhancements. The most significant changes include adding new build jobs for loader plugins, improving plugin hot-reload reliability and configurability, enforcing case-insensitive command handling, and extending engine and configuration APIs.

Build Pipeline Enhancements

  • Added new linux_loader and windows_loader jobs to .github/workflows/build.yml to build and package loader plugins for both platforms, including artifact upload steps. The main packaging job now depends on these loader jobs and integrates their artifacts into the final release packages. [1] [2] [3]

Plugin Hot-Reload Improvements

  • Introduced a configuration option AutoHotReload (default: true) for controlling plugin auto-reloading, with support in both configuration files and native/server helpers. The plugin manager now checks this setting before attempting hot-reloads. [1] [2] [3] [4] [5]
  • Improved reliability of plugin hot-reloading on Windows by implementing a retry mechanism to handle file locks, and preventing concurrent reloads using a reloadingPlugins set. [1] [2]

Command Handling Logic

  • Commands are now handled in a case-insensitive manner by converting names to lowercase at registration and invocation points in both native and managed code. [1] [2] [3]
  • Updated permission checks to allow non-player contexts to bypass permission requirements.

Engine and Configuration API Extensions

  • Added FindGameSystemByName to engine helpers and interfaces, allowing managed code to locate engine systems by name, with improved native implementation. [1] [2] [3] [4]
  • Improved plugin configuration serialization by enabling field inclusion in JSON output.

Miscellaneous API Improvements

  • Made Address property in CEntityKeyValues public for broader access.
  • Exposed underlying vector value in ManagedCUtlVector for advanced usage.
  • Added missing native import for SwiftlyS2.Core.Natives in plugin manager.

@skuzzis skuzzis merged commit 8c695ed into master Oct 18, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants