Skip to content

Feature Request #19

Description

@LandingCrew

Would it be possible to expose an API that lets other SKSE plugins add/remove items from a wheel at runtime?

Desired Operations

// Register a wheel owned by external mod
int RegisterWheel(const char* modName);

// Set slot contents by FormID
void SetSlot(int wheelIndex, int slotIndex, RE::FormID formID);

// Get wheel status and slot population
bool IsWheelOpen();
int GetActiveWheelIndex();
int GetSlotCount(int wheelIndex);
RE::FormID GetSlotFormID(int wheelIndex, int slotIndex);

// Wheel position (for mods that want a dedicated screen location)
void SetWheelPosition(int wheelIndex, float x, float y);
void GetWheelPosition(int wheelIndex, float* x, float* y);

// Clear a slot or whole wheel
void ClearSlot(int wheelIndex, int slotIndex);
void ClearWheel(int wheelIndex);

// Optional: callback when player selects from our wheel
void RegisterSelectionCallback(int wheelIndex, void(*callback)(RE::FormID selectedItem));

Use Case

I'm working on a skse mod that recommends weapons, spells, and potions based on context using utility-based agents with Q-learning (think of it like a caddy handing you the right thing, so you dont need to dig though menus). Instead of rendering my own UI, I'd love to push recommendations directly into a Wheeler wheel. I currently populate an ImGui widget as shown below but this is not ideal as Wheeler is a much more elegant solution.

Recommended some basic spells
Image

Recommended a magika potion or melee due to low magika
Image

Notes

Could be SKSE ModEvents or direct exports - whatever fits Wheeler's architecture best
Updates would happen every few hundred ms during gameplay
Happy to help implement/test if you point me in the right direction, but I would not like to maintain a fork

Thanks!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions