Skip to content

Add instant-replay plugin#14211

Open
georgeparamore wants to merge 3 commits into
runelite:masterfrom
georgeparamore:instant-replay
Open

Add instant-replay plugin#14211
georgeparamore wants to merge 3 commits into
runelite:masterfrom
georgeparamore:instant-replay

Conversation

@georgeparamore

Copy link
Copy Markdown
Contributor

Instant Replay

A rolling-buffer clip recorder for OSRS — like ShadowPlay's instant replay. Keeps the last N seconds of gameplay in memory and automatically saves a video clip on new personal bests, valuable drops, collection log slots, pets, quests, combat achievements, and deaths, or on a manual hotkey.

How it captures: via DrawManager — the same API the core screenshot plugin uses. It only sees the game's rendered frames (never the desktop or other windows), only runs while logged in, keeps frames in memory only, and writes to disk only on a trigger. Nothing is uploaded anywhere.

Compliance: Java only, no native code, no external processes, no reflection, no runtime downloads. One third-party dependency — JCodec, a pure-Java MP4 encoder — used for the optional MP4 output; verification metadata is included in this PR. Clips are written as MJPEG-AVI by a small hand-rolled muxer, or as MP4 via JCodec (encoded in parallel chunks off the game thread).

Video only — capturing game audio from inside the JVM isn't practical under Hub rules; this is noted in the README.

Repo: https://github.com/georgeparamore/instant-replay

Rolling-buffer gameplay clip recorder. Adds JCodec (pure-Java MP4 encoder)
to the third-party verification metadata.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@runelite-github-app

runelite-github-app Bot commented Jul 23, 2026

Copy link
Copy Markdown

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@runelite-github-app

runelite-github-app Bot commented Jul 23, 2026

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

@georgeparamore

Copy link
Copy Markdown
Contributor Author

Thanks for the automated feedback. To clarify where those flags come from:

The System.out / System.err / printStackTrace usages are entirely inside the third-party JCodec dependency (org.jcodec), not in the plugin's own code. JCodec is a pure-Java H.264/MP4 encoder, used only for the optional "MP4" clip format. The plugin's own classes use slf4j (log.*) exclusively — there are no System.out/err/in or printStackTrace calls anywhere in com.cliprecorder.

I can confirm the split: a scan of the plugin source has zero matches, while ~11 of JCodec's bundled classes reference those APIs internally.

A couple of options, whichever you prefer:

  1. Keep JCodec for in-plugin MP4 export (smaller files than the default MJPEG-AVI). The flagged I/O is confined to the dependency and isn't reachable in a way that spams the client — but I understand if a dependency tripping the scanner isn't acceptable.
  2. Drop the MP4 feature / JCodec entirely, shipping AVI-only. That makes the plugin 100% pure-JDK with no third-party dependency and no verification metadata needed, and the scanner passes clean. I'm happy to do this if you'd rather not take on the dependency.

Let me know which you'd prefer and I'll adjust the PR accordingly. Thanks for your time reviewing!

@riktenx

riktenx commented Jul 23, 2026

Copy link
Copy Markdown
Member

use of jcodec dependency is not allowed

@riktenx riktenx added the waiting for author waiting for the pr author to make changes or respond to questions label Jul 23, 2026
Remove the JCodec third-party dependency and its verification metadata per
maintainer feedback. Plugin is now pure-JDK; manifest points at the AVI-only
commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@runelite-github-app runelite-github-app Bot removed waiting for author waiting for the pr author to make changes or respond to questions dependency change labels Jul 23, 2026
@georgeparamore

Copy link
Copy Markdown
Contributor Author

Understood, thanks - I've removed JCodec entirely. The plugin now ships AVI-only (MJPEG-in-AVI via its own muxer) and is 100% pure-JDK with no third-party dependencies. I've also reverted the verification-template and verification-metadata changes, so this PR is now just the single plugins/instant-replay manifest file. Build is green and the scanner no longer flags anything.

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