← Back to Blog

Scout Optimizer Range Filtering: Smarter System Collection for Progressive Exploration

Published November 4, 2025 • 6 min read

Scouts in EVE Frontier know the frustration: you've just checked every system within 10 light-years of your current position, haven't found what you're looking for, and now need to search further out. The problem? If you simply increase your search radius to 20 light-years, you'll re-check all those same systems you just visited.

Today we're introducing range-based filtering to the Scout Optimizer—a simple but powerful enhancement that lets you specify a minimum and maximum distance from your starting point, so you can focus your search on unexplored outer regions without wasting time on areas you've already covered.

The Problem: Inefficient Progressive Search

The typical scout workflow looks like this:

  1. Set a starting system and search radius (e.g., 10 LY)
  2. Scout Optimizer collects all systems within that bubble
  3. Run optimization, visit all systems, find nothing interesting
  4. Expand search to 20 LY... but now you're re-checking 10 LY of already-visited systems

This is inefficient. Scouts were forced to choose between:

Users were vocal about this pain point. One scout put it perfectly: "I want to search the outer ring without including the inner circle I just finished."

The Solution: Min-Max Range Input

The fix is conceptually simple: instead of only accepting a maximum radius, the Scout Optimizer now supports a range with both minimum and maximum bounds.

How It Works

The same input field that previously accepted a single number (like 20) now also accepts range notation:

The placeholder text now reads: "Max Radius (LY) or Range (e.g., 10-20)" to guide users on the new format.

Example: Progressive Scouting

First pass: Enter 10 → Scout Optimizer collects 47 systems within 10 LY, you visit them all, no luck.

Second pass: Enter 10-20 → Scout Optimizer now collects only the 63 systems in the 10-20 LY band—none of which you've already visited.

Third pass: Enter 20-30 → Expand to the next ring, again excluding everything you've already checked.

Edge Cases and Validation

The parser handles several edge cases gracefully:

The validation ensures that both values are positive, finite numbers, and that the minimum doesn't exceed the maximum.

Implementation: Minimal, Backward Compatible

This feature required only a small code change—about 25 lines modified in the ScoutOptimizer component. The key insight was that the distance check in the system collection logic is simple geometry:

// Before: single max radius
const r = parseFloat(radius);
return distance <= r;

// After: min-max range
const range = parseRadiusInput(radius);
return distance >= range.min && distance <= range.max;

The parseRadiusInput helper function detects whether the input contains a hyphen (range format) or is just a number (legacy format), and returns { min, max } bounds. Single numbers are treated as { min: 0, max: value } to maintain backward compatibility.

Because the input is parsed at collection time and stored as a raw string in session storage, there were no persistence changes required. Existing bookmarks and saved sessions continue to work exactly as before.

Why This Matters

This isn't just a convenience feature—it fundamentally changes how scouts can approach systematic exploration:

1. Fuel Efficiency

By excluding already-visited inner regions, scouts can optimize routes that only cover new ground. This means:

2. Time Savings

No more manually tracking which systems you've already checked. The range filter does the spatial math for you, instantly excluding the inner zones.

3. Systematic Coverage

Scouts can now methodically expand outward in concentric shells:

This creates a mental map of "I've fully scouted everything within 20 LY of my base" that's impossible to achieve with simple max-radius filtering.

4. Resource Discovery Optimization

When hunting for specific resources or wormholes, scouts can use intelligence from their first pass to inform the second:

User Feedback: "This is exactly what we needed"

We deployed this feature to a preview branch and invited a few active scouts to test it. The response was immediate and enthusiastic:

"Finally! I've been doing this manually for weeks—now it's just one input field."
"The 10-20 format is obvious once you see the placeholder. Took me 5 seconds to figure it out."
"This saves me probably 20 minutes per scouting session. I can actually plan systematic sweeps now."

The feature went from user request to production deployment in under two hours—and it's already changing how scouts operate in the field.

What's Next

This enhancement opens the door to several future improvements:

Try It Now

Range filtering is live in production on ef-map.com. To use it:

  1. Open the Routing panel
  2. Switch to the Scout Optimizer tab
  3. Enter a range like 10-20 in the radius field
  4. Watch the system count update to show only the outer band
  5. Run optimization and scout the unexplored frontier

For more on how the Scout Optimizer works under the hood, check out our deep dive on the genetic algorithm approach to solving the traveling salesman problem in space.

Related Features

scout optimizer range filtering exploration workflow user experience incremental search progressive exploration fuel efficiency systematic coverage