Skip to content

feat: Added support for connecting to and using the server Entity Systems profiler - #415

Merged
anthonywongskyboxlabs merged 6 commits into
mainfrom
anthony.wong/server-ecs-profiler
Nov 9, 2026
Merged

anthonywongskyboxlabs merged 6 commits into
mainfrom
anthony.wong/server-ecs-profiler

Conversation

@anthonywongskyboxlabs

@anthonywongskyboxlabs anthonywongskyboxlabs commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Additional tab added to the diagnostics window

There's now a Server - Entity Systems tab that connects to the server side ECS profiler. Added a target to the request arguments for specifying whether they should be directed to the client or server.

Moved most of the code that was in ClientEntitySystems into EntitySystemProfiler, so that it can be reused by both client and server tabs. No need to review those changes

Here's a video showing it's capabilities (which are effectively the same as the Client variant).

2026-10-30.17-56-39.mp4

Versioning

If the user connects to Minecraft build that doesn't have the server ECS profiling capabilities, this warning box will pop up:

image

In the opposite case where the Minecraft Debugger is outdated, this message is displayed:
image

Changes to StatisticUpdatedMessage

Added a batching mechanism for stat message updates.

In cases where there's a lot of stat updates, the extension would become unresponsive due to dealing with a significant queue of postMessage calls. We now collect stat updates into a list and process them at a fixed interval to prevent that from happening.

@JakeShirley

Copy link
Copy Markdown
Member

The warning is nice but could we tweak the message to make it a little more "player facing"? We don't really document "ECS version" for players/creators.

private _handleRawEvent(event: MessageEvent) {
if (event.data.type === 'statistic-updated') {
this._handleEvent(event.data as StatisticUpdatedMessage);
if (event.data.type === 'statistic-updated-batch' && Array.isArray(event.data.events)) {

@AlexDenfordSkyboxLabs AlexDenfordSkyboxLabs Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this backwards compatable? I feel like an old MC will fail to work now?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This event is only used to communicate internally between the minecraft-diagnostics webview and the statistic provider. It did not require any schema change between MC and the Script Debugger.

I did test out the other tabs that rely on StatisticProvider to make sure they still worked fine when connected to both an old and new build.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh my mistake yeah ok that is fine then. Cool thanks for the clarification!

@AlexDenfordSkyboxLabs AlexDenfordSkyboxLabs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question about backwards compatability

@anthonywongskyboxlabs
anthonywongskyboxlabs merged commit 79a5e47 into main Nov 9, 2026
5 checks passed
@anthonywongskyboxlabs
anthonywongskyboxlabs deleted the anthony.wong/server-ecs-profiler branch November 9, 2026 22:23
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