PHPackages                             elkuku/maxfield-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. elkuku/maxfield-bundle

ActiveSymfony-bundle

elkuku/maxfield-bundle
======================

Ingress Maxfield: Linking and Fielding Strategy Generator - Symfony Bundle

011PHP

Since Mar 15Pushed 1mo agoCompare

[ Source](https://github.com/elkuku/php-maxfield)[ Packagist](https://packagist.org/packages/elkuku/maxfield-bundle)[ RSS](/packages/elkuku-maxfield-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Maxfield Bundle
===============

[](#maxfield-bundle)

Symfony Bundle implementing [Ingress Maxfield](https://github.com/tvwenger/maxfield) — generates optimal portal linking and fielding plans for the Ingress mobile game.

Installation
------------

[](#installation)

```
composer require elkuku/maxfield-bundle
```

---

Portal File Format
------------------

[](#portal-file-format)

Create a plain text file with one portal per line:

```
# Lines starting with # are comments and are ignored

PortalName; IntelURL; [keys]; [SBUL]

```

FieldRequiredDescription`PortalName`YesAny name (no `;` or `#` characters)`IntelURL`YesIntel map URL containing `pll=lat,lon``keys`NoNumber of keys already in inventory (integer)`SBUL`NoMark portal as having a Softbank Ultra Link (raises outgoing link limit from 8 to 24)**Example:**

```
# My operation portals
Town Hall; https://intel.ingress.com/intel?pll=38.032646,-78.477578; 3
Library; https://intel.ingress.com/intel?pll=38.032570,-78.477450
Post Office; https://intel.ingress.com/intel?pll=38.033100,-78.476900; 0; SBUL

```

- Portals with duplicate coordinates are silently skipped.
- A minimum of 3 portals is required to create any fields.

---

Usage
-----

[](#usage)

### Console command

[](#console-command)

```
bin/console maxfield:plan  [options]
```

OptionDefaultDescription`--num-agents` / `-n``1`Number of agents participating in the operation`--num-iterations``1000`Candidate field plans to generate; higher = better plan, slower`--max-route-solutions``1000`Max agent routing solutions to evaluate (multi-agent only)`--max-route-runtime``60`Max seconds for agent routing (multi-agent only)`--outdir` / `-o``.`Directory to write output files into (created if absent)`--output-csv`offAlso write machine-readable CSV files`--res-colors` / `-r`offUse Resistance color scheme (informational only)**Examples:**

```
# Single agent, defaults
bin/console maxfield:plan portals.txt

# Three agents, save to a specific directory, include CSV
bin/console maxfield:plan portals.txt --num-agents=3 --outdir=./output --output-csv

# Verbose output with more iterations for better quality
bin/console maxfield:plan portals.txt --num-iterations=5000 -v
```

### PHP API

[](#php-api)

Inject `MaxfieldPlanner` and call `run()`:

```
use Elkuku\MaxfieldBundle\Service\MaxfieldPlanner;

class MyController
{
    public function __construct(private readonly MaxfieldPlanner $planner) {}

    public function generate(): void
    {
        $plan = $this->planner->run(
            filename: '/path/to/portals.txt',
            numAgents: 2,
            numFieldIterations: 1000,
            maxRouteSolutions: 1000,
            maxRouteRuntime: 60,
            outdir: '/tmp/my-operation',
            outputCsv: true,
            verbose: false,
        );

        // $plan->graph->ap        — total AP
        // $plan->graph->numLinks  — number of links
        // $plan->graph->numFields — number of fields
        // $plan->assignments      — array of Assignment objects
    }
}
```

`run()` returns the completed `Plan` object and also writes all output files to `$outdir`.

---

Output Files
------------

[](#output-files)

All files are written to the directory specified by `--outdir`.

FileDescription`key_preparation.txt`Keys needed, in inventory, and still to farm — per portal`key_preparation.csv`Same data in CSV format (`--output-csv` only)`ownership_preparation.txt`Which portals need full resonators before linking begins`agent_key_preparation.txt`Keys each individual agent needs to carry`agent_key_preparation.csv`Same data in CSV format (`--output-csv` only)`agent_assignments.txt`Full link order for all agents combined`agent_assignments.csv`Same data in CSV format (`--output-csv` only)`agent_N_assignment.txt`Individual assignment sheet for agent N### Reading the assignment files

[](#reading-the-assignment-files)

Links must be made **in the listed order**. Each entry shows:

```
Link ; Agent ;   # ; Link Origin name
                 # ; Link Destination name

```

- **Link** — global sequence number
- **Agent** — which agent makes this link (1-based)
- **\#** — portal number on the portal map

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance59

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b5bd92201ea7950588e6bb334a7121d89979486cca91015f7e17a45a9c3c419d?d=identicon)[elkuku](/maintainers/elkuku)

---

Top Contributors

[![elkuku](https://avatars.githubusercontent.com/u/33978?v=4)](https://github.com/elkuku "elkuku (19 commits)")

### Embed Badge

![Health badge](/badges/elkuku-maxfield-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/elkuku-maxfield-bundle/health.svg)](https://phpackages.com/packages/elkuku-maxfield-bundle)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
