Skip to content

feature: Rewrite of the protocol, removal of NeoForge for now, new API reworks, better platform independent structure#144

Merged
Aeltumn merged 136 commits intomainfrom
ver/v3
Sep 26, 2025
Merged

feature: Rewrite of the protocol, removal of NeoForge for now, new API reworks, better platform independent structure#144
Aeltumn merged 136 commits intomainfrom
ver/v3

Conversation

@Aeltumn
Copy link
Member

@Aeltumn Aeltumn commented Aug 12, 2025

Start of a longer project to rework Noxesium into a better platform for others to work with. Turns all features used by Noxesium into APIs that other mods can use properly through an entrypoint.

Major Changes:

  • New entrypoint system which allows other mods to register themselves as Noxesium extensions, allowing them to register their own custom packets and features built on top of Noxesium's handshake and protocol system as well as its new custom component systems.
  • Server/entity rules are now a generalized custom component system. These are similar to vanilla's data components and can be applied to any item, entity, block entity, or to the entire game.
  • New settings for changing the scale of different UI elements, including the scoreboard, boss bar, tab list, action bar, and titles.
  • New item component for controlling hover highlight rendering.
  • New entity components for controlling hitbox size and hitbox color.
  • New block entity component for controlling beacon beam height.
  • New option for disabling F1 to hide UI through restricted debug options component.
  • New optional Noxesium Sync mod with a system for syncing files between client and server during development.
  • New game components for constraining the size of UI elements.
  • Registries with qibs or component ids are now synced during handshaking.
  • Handshaking protocol now supports encryption/hiding of unknown entrypoints for private extensions.
  • 90% of API logic is now platform independent and available in the API module.
  • Various smaller changes and tweaks to APIs as they are now all available and testable through the server-side API.
  • Support for JSON encoded packets for simplified packet serialization. Not used by base Noxesium but available for extensions.
  • Fixed issue where qib collisions are checked on teleport.
  • Added feature which keeps the pack downloading indicator on-screen permanently while downloading a resource pack.

A full server-side plugin is now available and ready to use for everyone as well!

  • A fully standalone packet API is now available which can be used to inject into packets being sent/received by the server or modify them, during both the play and configuration phases. This is used by Noxesium's new API but can be used separately.
  • Support for server-side riptide tridents without needing to make any server patches.
  • Full APIs for all Noxesium features.
  • In-game commands under /noxesium for most features.
  • Support for multiple client versions through ViaVersion.
  • Support for defining qibs in config files and in-game, allowing you to use them with no extra code beyond installing Noxesium on client and server. With real-time config synchronization to clients.
  • Support for synchronizing lazy packets which are only sent if the other side is listening to them.
  • Support for synchronizing capabilities which lets you check what features the client supports.
  • Supports qib interactions for players not running Noxesium by simulating client logic for them.
  • Better support for servers that use proxies to transfer between multiple servers without exiting the PLAY phase.
  • Custom plugin channel handling to hide channels for any unauthorized entrypoints.
  • A new standalone external API which can be shaded into public projects to pull data from Noxesium without the rest of the API being installed.

New features (through various MRs that were edited a bit):

@Aeltumn Aeltumn added the enhancement New feature or request label Aug 12, 2025
@LukynkaCZE
Copy link
Contributor

Not sure if this is the place but it would be great if lot of stuff like packet, component and Rule classes were made platform independent with some kind of adapter class to adapt them to platform specific stuff kinda like Pathetic or Spark. I have recently implemented Noxesium integration into my minecraft server implementation (DockyardMC/Dockyard#205) for a server I'm working on and it was quite a lot of work and quite a lot of duplicate code I had to write

@Aeltumn Aeltumn merged commit 1921c78 into main Sep 26, 2025
1 check passed
@Aeltumn Aeltumn deleted the ver/v3 branch September 26, 2025 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Development

Successfully merging this pull request may close these issues.

2 participants