Skip to content

Add Plugin Doctor#14022

Open
FreeArcanes wants to merge 1 commit into
runelite:masterfrom
FreeArcanes:agent/add-plugin-doctor
Open

Add Plugin Doctor#14022
FreeArcanes wants to merge 1 commit into
runelite:masterfrom
FreeArcanes:agent/add-plugin-doctor

Conversation

@FreeArcanes

Copy link
Copy Markdown
Contributor

Plugin

Plugin Doctor is a local performance diagnostic panel that measures whole-client FPS, client-thread CPU, client-cycle timing, GameTick intervals, JVM heap behavior, garbage-collection activity, and client stalls.

It provides controlled plugin ON/OFF comparisons so users can repeat matched trials and identify a likely performance contributor. Results are explicitly presented as correlations rather than direct per-plugin profiling.

Repository: https://github.com/FreeArcanes/Plugin-Doctor

Main features

  • Live client-health measurements.
  • Timed general and plugin ON/OFF captures.
  • Pause/resume with paused time and samples excluded.
  • Rejection of contaminated pairs when another plugin changes.
  • Basic user-readable and complete advanced reports.
  • Opt-in assisted switching for only the user-selected plugin, with a warning, conflict refusal, and original-state restoration when possible.
  • Detailed documentation for every metric, score, threshold, limitation, and privacy boundary.

Compliance and privacy

  • Standard build with no additional third-party dependencies.
  • No reflection, native access, process execution, dynamic code, Java serialization, or input injection.
  • No gameplay automation or game-state recommendations.
  • No network requests, telemetry, packet inspection, or player-data collection.
  • Captures and rankings remain in memory; reports are copied only after explicit user action.
  • Assisted switching is disabled by default and acts only on the selected plugin after explicit consent.

Validation

  • Java 11 target.
  • gradlew.bat clean test shadowJar passes.
  • 14 tests, including paired-trial rejection, report formatting, pause accounting, and 225 px sidebar layout regression coverage.
  • Root icon is 48x48.
  • No META-INF/services/net.runelite.client.plugins.Plugin descriptor.

@runelite-github-app

Copy link
Copy Markdown

@runelite-github-app

Copy link
Copy Markdown

This plugin requires a review from a Plugin Hub maintainer. The reviewer will request any additional changes if needed.


Internal use only: Reviewer details Maintainer details

@raiyni

raiyni commented Jul 19, 2026

Copy link
Copy Markdown
Member

We already have the debug plugin and I don't think would allow new plugins to capture this kind of information.

@raiyni raiyni added the waiting for author waiting for the pr author to make changes or respond to questions label Jul 19, 2026
@FreeArcanes

FreeArcanes commented Jul 19, 2026

Copy link
Copy Markdown
Contributor Author

That’s a fair concern. I see Plugin Doctor as serving a different purpose from Debug Tools. Debug Tools provides general diagnostic information, while Plugin Doctor is intended to help users answer a specific question: “Does this plugin consistently affect my client’s performance?”
Its main feature is a controlled comparison workflow. It records the same conditions with one selected plugin enabled and disabled, rejects the comparison if other plugins change, and presents the ON/OFF results in a readable report. It only uses local client and JVM measurements such as FPS, client-thread CPU time, cycle and tick timing, heap usage, and JVM-reported GC time.
It does not inspect network traffic, collect account or gameplay data, upload telemetry, or claim to directly profile another plugin’s code. If a particular measurement or the optional assisted-switching feature is the concern, I’m happy to remove or limit it. I’d appreciate clarification on which capability would be unacceptable so I can adjust the plugin accordingly.

@runelite-github-app runelite-github-app Bot removed the waiting for author waiting for the pr author to make changes or respond to questions label Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants