Skip to main content

HyperHQ Plugin Developer Onboarding

Get started building HyperHQ plugins in under 10 minutes!

This guide is specifically designed for third-party developers from all programming backgrounds. No complex setup, no steep learning curve - just simple, practical steps to get you building.

Why Build HyperHQ Plugins?

  • 🎮 Extend HyperHQ: Add new features to the most powerful arcade frontend
  • 🌍 Global Reach: Thousands of arcade enthusiasts worldwide
  • 🛠️ Use Any Language: Python, C#, Go, JavaScript, Rust - your choice!
  • 🔒 Safe & Isolated: Plugins can't break HyperHQ or other plugins
  • 🚀 Share Innovation: Contribute to the arcade gaming community

What You Can Build

Plugin TypeExamplesDifficulty
UtilitiesFile organizers, ROM scanners, backup tools⭐ Easy
MediaVideo converters, image processors, slideshows⭐⭐ Medium
Arcade HardwareLED controllers, coin door integration, marquee displays⭐⭐⭐ Medium
Game IntegrationMAME setup wizards, Steam imports, GOG integration⭐⭐⭐⭐ Hard
Custom FrontendsSpecialized interfaces, mobile controllers, web dashboards⭐⭐⭐⭐⭐ Expert

Quick Start (Choose Your Path)

Why Python? Easy syntax, great libraries, excellent documentation.

# 1. Download template
wget https://hyperhq.dev/templates/python-starter.zip
unzip python-starter.zip
cd python-starter

# 2. Build and test
./build.sh # Creates plugin.exe
./test.sh # Validates everything works

# 3. Customize and distribute
# Edit plugin.py and plugin.json
# Share with the community

Time to first working plugin: 5 minutes

⚡ JavaScript/Node.js (Great for Web Developers)

# 1. Download template
wget https://hyperhq.dev/templates/nodejs-starter.zip
unzip nodejs-starter.zip
cd nodejs-starter

# 2. Build and test
npm install
npm run build
npm test

# 3. Ready to distribute!

Time to first working plugin: 7 minutes

🚀 C# (Best Performance)

# 1. Download template
wget https://hyperhq.dev/templates/csharp-starter.zip
unzip csharp-starter.zip
cd csharp-starter

# 2. Build and test
dotnet build
dotnet test

# 3. Publish ready executable
dotnet publish -c Release

Time to first working plugin: 10 minutes

How Simple Is It?

1. Your Plugin is Just 4 Methods

class MyPlugin:
def initialize(self, settings):
"""Setup with user settings"""
return "initialized"

def execute(self, action_data):
"""Do the main work"""
return {"success": True}

def test(self, _):
"""Health check"""
return True

def shutdown(self, _):
"""Clean up"""
return "ok"

2. Communication is Just JSON

# HyperHQ sends:
{"id":"123","method":"execute","data":{"action":"scan_files","path":"/roms"}}

# Your plugin responds:
{"id":"123","type":"response","data":{"files_found":1337}}

3. UI is Automatic

Define your settings in JSON, HyperHQ generates the UI automatically:

{
"settings": [
{"key": "apiKey", "name": "API Key", "type": "text"},
{"key": "enabled", "name": "Enable", "type": "boolean"},
{"key": "romPath", "name": "ROM Path", "type": "directory"}
]
}

HyperHQ creates a beautiful settings form automatically. No HTML, no CSS, no JavaScript required.

Developer Resources

📚 Documentation (Beginner-Friendly)

  1. Plugin Developer Guide - Complete tutorial with examples
  2. API Reference - Quick reference for all methods
  3. Architecture Overview - Technical deep-dive

🎯 Templates (Ready to Use)

LanguageDownloadFeaturesBest For
Pythonpython-starter.zipDebug logging, examples, build scriptsBeginners, rapid prototyping
Node.jsnodejs-starter.zipModern JS, async/await, packagingWeb developers
C#csharp-starter.zipHigh performance, .NET 6Performance-critical plugins
Gogo-starter.zipSmall binaries, fast executionSystem utilities
Rustrust-starter.zipMemory safety, maximum performanceAdvanced developers

Each template includes:

  • ✅ Complete working plugin
  • ✅ Build and test scripts
  • ✅ Example settings and UI
  • ✅ Debug tools
  • ✅ Packaging automation
  • ✅ Detailed README

🛠️ Developer Tools

  • Plugin Validator - Validates your plugin package before publishing
  • Debug Console - Real-time message inspection during development
  • Performance Profiler - Memory and CPU usage monitoring
  • Settings Generator - Visual tool for creating plugin.json

Common Questions

Q: Do I need to know anything about HyperHQ internals?

A: No! Your plugin communicates via simple JSON messages. HyperHQ handles all the complex stuff.

Q: What if my plugin crashes?

A: Plugins run in separate processes, so crashes can't affect HyperHQ or other plugins.

Q: Can I access HyperHQ's database?

A: Yes! Request data through the API: {"method": "getRomList", "data": {"system": "arcade"}}

Q: How do I handle long-running operations?

A: Send progress updates: {"type": "event", "data": {"progress": 50, "message": "Processing..."}}

Q: What about plugin security?

A: Plugins declare required permissions upfront. Users see exactly what your plugin can access.

Q: How do I distribute my plugin?

A: Package your plugin as a ZIP file and distribute through your preferred channels.

Next Steps

  1. Pick a template that matches your preferred language
  2. Download and test - get the "Hello World" plugin working
  3. Read the guide - understand the concepts and examples
  4. Build something small - file utility, simple integration, etc.
  5. Join the community - Discord server with active developers
  6. Share your creation - distribute your plugin to the community

Ready to Start Building?

Download your preferred starter template and build your first HyperHQ plugin today!

The arcade community is waiting for your creativity. Whether you build simple utilities or complex integrations, there's an audience ready to use your quality plugins.

Time from download to working plugin: Under 10 minutes Time from idea to finished plugin: 1-2 days

Let's build the future of arcade gaming together! 🚀