Skip to content

Plugin Development

Plugins are the building blocks of every Rogue Arena scenario. Each plugin is a reusable Ansible automation that configures a specific service, tool, or capability on a virtual machine — from promoting a Domain Controller to installing an application to staging an attack path.

This section covers everything you need to build your own plugins.

A plugin is an Ansible task list that runs against a virtual machine during a scenario build. You write the Ansible YAML body, define parameters that scenario architects can fill in, and optionally attach resource files. The platform handles everything else — wrapping your code in a proper Ansible play, injecting parameter values, deploying vault files, and orchestrating execution order across machines.

TypePurposeExample
ActionImmediate configuration tasksSet static IP, disable firewall
RoleComplex infrastructure setupCreate Domain Controller, configure C2 server
ApplicationSoftware installationsInstall Office, Firefox, Elastic Agent
VulnerabilitySecurity misconfigurationsEnable Kerberoasting, open SMB shares
AttackOffensive toolingDeploy attack frameworks, stage payloads
DefenseDefensive toolingInstall EDR agents, configure logging
File CopyRaw file deploymentPush installers or configs to a VM

Rogue Arena is designed to work without internet access on deployed VMs. Plugin developers never rely on external URLs, CDNs, or package repositories at deploy time.

Every plugin version has a dedicated file vault. Store installers (.exe, .msi, .iso), Docker images, scripts, configuration files, archives — anything your plugin needs. Files deploy via internal high-speed transfer directly to the VM, no internet required. See The File Vault for details.

All Linux VMs automatically point to an internal APT mirror on boot. A systemd service runs on every Linux VM that fetches the mirror manifest, rewrites /etc/apt/sources.list, and runs apt-get update — no developer action needed.

Supported distros: Ubuntu 24.04 (Noble), Ubuntu 22.04 (Jammy), Debian 12 (Bookworm), Debian 11 (Bullseye), Kali Linux (Rolling)

Pre-mirrored repos include: base distro packages plus Docker CE, VS Code, Chrome, Node.js, GitHub CLI, Grafana, Elastic 8.x, Wazuh, PostgreSQL, HashiCorp, Tailscale, and more.

What this means for you: apt-get install just works in your plugin YAML. No adding repos, no importing GPG keys, no worrying about internet access.

100+ plugins are already waiting for you in Rogue Architect — Domain Controllers, Elastic, WireGuard, Splunk, C2 frameworks, Kerberoasting configurations, and much more. Browse them, clone one that’s close to what you need, and modify it. Learning from existing plugins is the fastest way to get started.

PhaseWhat You Do
CreateWrite Ansible YAML, define parameters, upload vault resources
TestAdd the plugin to a scenario, launch a build, verify it works
PublishLock the version, set permissions, make it available to others
IterateClone to a new version, improve, and republish

Ready to build? Start with Creating a Plugin.