Skip to content

Custom UI anchors#11550

Open
Car-Role wants to merge 6 commits intorunelite:masterfrom
Car-Role:Custom-UI-Anchors
Open

Custom UI anchors#11550
Car-Role wants to merge 6 commits intorunelite:masterfrom
Car-Role:Custom-UI-Anchors

Conversation

@Car-Role
Copy link
Copy Markdown
Contributor

Custom UI Anchors

Adds user-defined anchor regions to RuneLite: create, resize, and position "boxes" pinned to any corner, edge, or center of the game window. Drag overlays into a box to assign them; they stack (vertical, horizontal, or wrapping) and stay put when the window is resized.

Configurable per region: name, constraint (where it pins), alignment (how contents sit inside), stacking direction, position, and size. Sidebar panel lists all regions with full property editing. In-game overlay (hold Alt or open the panel) shows each box with drag/resize handles.

Plugin Hub compliance

  • No reflection into client internals. java.lang.reflect.Type is Gson plumbing against this plugin's own config strings only.
  • No deobfuscation, bytecode manipulation, or mixins.
  • Only public API used (Client, Overlay, OverlayManager, ConfigManager, ClientThread, MouseManager).

Provides customizable UI anchors to handle client resizing
Implemented a new approach to capture overlays without using reflection by making the customizer overlay drag-targetable and tracking overlays when they are dragged. Added onDrag callback to capture overlay references, a runtime map to store tracked overlays, and scanAndReacquireOverlays method to restore overlay tracking on startup using the public anyMatch API. Includes cleanup logic to remove stale overlay references.
@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

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.

1 participant