Skip to main content

Find bugs before your players do

Retina is a powerful static analyzer for PocketMine-MP plugins. Catch errors, deprecated API usage, thread safety issues, and more before you ship.

Quick start

Get Retina running on your plugin in under a minute

1

Install Retina

On macOS and Linux, run the installation script:
curl -sSL https://raw.githubusercontent.com/chinmay505/retina/main/install.sh | bash
On Windows, clone the repository and install dependencies:
git clone https://github.com/chinmay505/retina.git
cd retina
composer install --no-dev --optimize-autoloader
Requires PHP 8.1 or higher and Composer
2

Scan your plugin

Navigate to your plugin directory and run Retina:
retina run
Or scan a specific directory:
retina run /path/to/your/plugin
Retina will analyze your plugin and generate a detailed report.
3

Review the results

By default, Retina creates a retina-report.md file with all detected issues:
# View the report
cat retina-report.md
# Retina Analysis Report

## Summary
- Total issues: 5
- Error: 2
- Warning: 3

## Issues

### src/Main.php:42
**Category:** deprecated_api  
**Severity:** warning

Using deprecated method Player::getInventory()
Use Player::getArmorInventory() instead
4

Configure for your workflow

Create a retina.yml config file to customize analysis:
retina init
This generates a configuration file where you can adjust strictness levels, exclude specific analyzers, and more. See the configuration guide for details.

Explore by topic

Dive into documentation organized by what you want to accomplish

Core concepts

Understand how Retina’s analyzers work and what they detect

CLI reference

Complete command-line interface documentation

Configuration

Customize Retina’s behavior with retina.yml

CI/CD integration

Run Retina in your continuous integration pipeline

Key features

Everything you need to ensure plugin quality

14 specialized analyzers

Covers plugin.yml validation, event handlers, commands, async tasks, thread safety, and more

Multiple report formats

Generate reports in Markdown, JSON, HTML, or plain text for any workflow

Configurable filtering

Filter by category, analyzer, and severity to focus on what matters

PHPStan integration

Leverages PHPStan for advanced PHP static analysis alongside PocketMine-MP checks

Ready to catch bugs before they ship?

Install Retina and start analyzing your PocketMine-MP plugins today

Get started