Skip to main content

Plugin Data Flow Guide

Simple visual guide showing how your plugin requests and receives data from HyperHQ.

How Data Requests Work

Getting System Information

When your plugin needs to know what game systems exist:

What you get back:

  • System name (e.g., "Nintendo 64")
  • Platform (e.g., "Nintendo 64")
  • Number of games in system
  • File extensions allowed
  • Unique system ID

Getting Media Folder Paths

When your plugin needs to know where to save artwork:

What you get back:

  • Boxart folder path
  • Background folder path
  • Screenshot folder path
  • Logo folder path
  • Video folder path
  • Any custom media folders

Creating a New System

When your plugin wants to add a new game system:

What you send:

  • System name
  • Platform name
  • Allowed file extensions
  • Optional: Description, emulator info

What you get back:

  • Success confirmation
  • New system ID
  • Or error message if something went wrong

Adding Games to a System

When your plugin wants to add games:

What you send:

  • System ID
  • Array of games with:
    • Game name
    • File name
    • File path
    • Optional: Developer, publisher, year, genre, rating

What you get back:

  • Number of games added successfully
  • Number of games skipped (if any)
  • Any error messages

Complete Plugin Workflow Example

Here's how a typical plugin syncs games from an external service:

Request Types at a Glance

Read Requests (Get Data)

  • getSystems - Get list of all game systems
  • getMediaFolders - Get folder paths for media

These return data immediately for you to use.

Write Requests (Create/Update Data)

  • createSystem - Add a new game system
  • createEmulator - Add emulator configuration
  • addGames - Add games to a system

These confirm success or return error messages.

Error Handling Flow

Best Practices:

  • Always check if request succeeded
  • Log errors for debugging
  • Show user-friendly messages
  • Retry failed requests (with limits)
  • Don't crash if one request fails

Data Flow Timing

What this means:

  • Requests are fast (usually < 1 second)
  • Your plugin waits while HyperHQ processes
  • Once you get data back, you can use it immediately
  • For long operations, HyperHQ sends progress updates

Simple Request Example

Here's the simplest possible data request:

That's it! Every data request follows this simple pattern:

  1. You ask for data
  2. HyperHQ processes your request
  3. You receive the response
  4. You use the data

Quick Reference

What You WantRequest MethodWhat You Get Back
List of game systemsgetSystemsArray of systems with names, IDs, platforms
Where to save artworkgetMediaFoldersFolder paths for each media type
Add a new systemcreateSystemSuccess + new system ID
Add an emulatorcreateEmulatorSuccess + new emulator ID
Add gamesaddGamesNumber of games added successfully

Remember: All these requests happen automatically in the background. HyperHQ handles the complexity—you just send simple requests and get back the data you need!

For code examples, see: