Skip to main content
Version: Latest

Brobot Configuration Properties Reference

This document provides a comprehensive reference for all Brobot configuration properties that can be set in application.properties or application.yml.

Looking for usage examples? See the BrobotProperties Usage Guide for how to use these properties in your code.

Table of Contentsโ€‹


Image Find Debuggingโ€‹

Properties for the comprehensive image finding debug system. See Image Find Debugging Guide for detailed usage.

Master Controlsโ€‹

PropertyTypeDefaultDescription
brobot.debug.image.enabledbooleanfalseMaster switch for image debugging
brobot.debug.image.levelenumBASICDebug level: OFF, BASIC, DETAILED, VISUAL, FULL
brobot.debug.image.output-dirstringdebug/image-findingOutput directory for debug files

File Savingโ€‹

PropertyTypeDefaultDescription
brobot.debug.image.save-screenshotsbooleantrueSave screenshots of each find operation
brobot.debug.image.save-patternsbooleantrueSave pattern images for reference
brobot.debug.image.save-comparisonsbooleantrueSave visual comparison grids

Visual Debuggingโ€‹

PropertyTypeDefaultDescription
brobot.debug.image.visual.enabledbooleantrueEnable visual debugging features
brobot.debug.image.visual.show-search-regionsbooleantrueHighlight search regions on screenshots
brobot.debug.image.visual.show-match-scoresbooleantrueDisplay similarity scores on matches
brobot.debug.image.visual.show-failed-regionsbooleantrueMark regions where patterns were not found
brobot.debug.image.visual.highlight-best-matchbooleantrueHighlight the best scoring match
brobot.debug.image.visual.create-heatmapbooleanfalseGenerate similarity heatmaps (experimental)
brobot.debug.image.visual.create-comparison-gridbooleantrueCreate pattern vs match comparison grids

Console Outputโ€‹

PropertyTypeDefaultDescription
brobot.debug.image.console.use-colorsbooleantrueEnable ANSI colors in console output
brobot.debug.image.console.show-boxbooleantrueShow decorative boxes around headers
brobot.debug.image.console.show-timestampbooleantrueInclude timestamps in console output
brobot.debug.image.console.show-stack-tracebooleanfalseShow full stack traces for errors
brobot.debug.image.console.compact-modebooleanfalseUse compact output format

Logging Detailsโ€‹

PropertyTypeDefaultDescription
brobot.debug.image.log.similarity-scoresbooleantrueLog similarity scores for all matches
brobot.debug.image.log.search-timebooleantrueLog search duration
brobot.debug.image.log.pattern-detailsbooleantrueLog pattern dimensions and properties
brobot.debug.image.log.dpi-infobooleantrueLog DPI and scaling information
brobot.debug.image.log.search-pathbooleanfalseLog the complete search path
brobot.debug.image.log.memory-usagebooleanfalseLog memory usage statistics

Real-time Monitoring (Future Feature)โ€‹

PropertyTypeDefaultDescription
brobot.debug.image.realtime.enabledbooleanfalseEnable real-time web dashboard
brobot.debug.image.realtime.portint8888Port for web dashboard
brobot.debug.image.realtime.auto-openbooleanfalseAuto-open dashboard in browser

Headless Detectionโ€‹

Properties for configuring headless mode detection. Brobot no longer auto-detects headless environments due to reliability issues. See the Headless Configuration Guide for detailed usage.

PropertyTypeDefaultDescription
brobot.core.headlessbooleanfalseExplicitly set headless mode (GUI unavailable)
Property Path

The headless property is accessed via brobot.core.headless in BrobotProperties, but HeadlessDetector also reads brobot.headless via @Value injection. Both paths reference the same configuration value. Use brobot.headless for simplicity in application.properties.

Important Notes:

  • Headless mode must be explicitly configured via brobot.headless property
  • Auto-detection has been removed due to false positives on Windows systems (September 2025)
  • Defaults to false (assumes GUI is available)
  • For CI/CD environments, set brobot.headless=true
  • This is separate from mock mode - headless means no display, mock means simulated actions

Mock Modeโ€‹

Properties for running Brobot in mock mode for testing without actual screen interaction. See the Mock Mode Guide for comprehensive usage.

PropertyTypeDefaultDescription
brobot.mockbooleanfalseEnable mock mode (simulated actions)
brobot.mock.action.successProbabilitydouble1.0Probability of action success (0.0-1.0)
brobot.screenshot.pathstringscreenshots/Path to mock screenshots

Mock vs Headless:

  • Mock Mode: Simulates actions for testing, can run with or without display
  • Headless Mode: No display available, often used in CI/CD environments
  • Both can be used together for CI/CD testing

Automation Runnerโ€‹

Properties for the AutomationRunner failure handling system. See Automation Runner Guide.

PropertyTypeDefaultDescription
brobot.automation.exit-on-failurebooleanfalseExit application on automation failure
brobot.automation.max-retriesint3Maximum retry attempts for failed operations
brobot.automation.retry-delay-mslong1000Delay between retries in milliseconds
brobot.automation.log-stack-tracesbooleantrueLog full stack traces for debugging

Core Settingsโ€‹

Basic Brobot operation settings.

Find Operationsโ€‹

Similarity Configuration

Find similarity is typically configured per-pattern via StateImage.Builder().setSimilarity() rather than globally. The following properties are used for testing and DPI configuration:

PropertyTypeDefaultDescription
brobot.find.similarity.mindouble0.60Minimum similarity threshold (test profile)
brobot.find.similarity.defaultdouble0.70Default similarity threshold (test profile)
brobot.action.similaritydouble0.70DPI configuration similarity threshold

Action Timingโ€‹

Per-Action Timing Configuration

Action timing is configured per-action via ActionConfig.Builder() methods (setPauseBeforeBegin(), setPauseAfterEnd()), not globally via properties. The brobot.action.pause-after property exists in brobot-test-defaults.properties for test-specific timing but is not bound to BrobotProperties.

PropertyTypeDefaultDescription
brobot.action.pause-afterint0Global pause after action in milliseconds (test profile only)

Recommended Approach: Use per-action timing configuration:

PatternFindOptions findOptions = new PatternFindOptions.Builder()
.setPauseBeforeBegin(0.2) // Pause before action (seconds)
.setPauseAfterEnd(0.5) // Pause after action (seconds)
.build();

Mouse Configurationโ€‹

Mouse action timing and behavior configuration.

PropertyTypeDefaultDescription
brobot.mouse.move-delayfloat0.5Delay in seconds for mouse movement
brobot.mouse.pause-before-downdouble0.0Pause before mouse down action (seconds)
brobot.mouse.pause-after-downdouble0.0Pause after mouse down action (seconds)
brobot.mouse.pause-before-updouble0.0Pause before mouse up action (seconds)
brobot.mouse.pause-after-updouble0.0Pause after mouse up action (seconds)
brobot.mouse.x-move-after-downint0X offset after mouse down (pixels)
brobot.mouse.y-move-after-downint0Y offset after mouse down (pixels)
Mouse Timing Configuration

These properties control global mouse behavior. For per-action timing, use ActionConfig.Builder() methods (setPauseBeforeBegin(), setPauseAfterEnd()). In test environments, these values are typically set to 0 for faster execution (see brobot-test-defaults.properties).

Common Use Cases:

  • move-delay: Smooths mouse movement for visual observation (set to 0 in tests)
  • pause-before-down/up: Ensures UI elements are ready before/after mouse button actions
  • x-move-after-down/y-move-after-down: Simulates drag gestures by moving mouse slightly after button press

Loggingโ€‹

Brobot logging configuration. For comprehensive logging configuration, see the Logging Configuration Guide.

PropertyTypeDefaultDescription
brobot.logging.verbosityenumNORMALVerbosity level: QUIET, NORMAL, VERBOSE
brobot.console.actions.enabledbooleantrueEnable action logging to console
brobot.console.actions.levelenumNORMALConsole action logging level

Spring Logging Levelsโ€‹

PropertyTypeDefaultDescription
logging.level.io.github.jspinak.brobotstringINFOBrobot library log level
logging.level.io.github.jspinak.brobot.debugstringINFODebug components log level
logging.level.io.github.jspinak.brobot.action.basic.findstringINFOFind operations log level
logging.level.io.github.jspinak.brobot.capturestringINFOScreen capture log level

Visual Feedback and Highlightingโ€‹

Properties for visual highlighting of found patterns and UI elements. See the Highlighting Feature Guide for detailed usage.

Aspect-Based Visual Feedback (Working)โ€‹

PropertyTypeDefaultDescription
brobot.aspects.visual-feedback.enabledbooleanfalseEnable VisualFeedbackAspect for automatic feedback
brobot.aspects.visual-feedback.highlight-durationint2Highlight duration in seconds
brobot.aspects.visual-feedback.highlight-colorstringYELLOWHighlight color (YELLOW, RED, GREEN, etc.)
brobot.aspects.visual-feedback.show-action-flowbooleantrueShow action flow arrows between operations
brobot.aspects.visual-feedback.show-confidence-scoresbooleantrueShow confidence scores on matches

Console Action Reporting (Working)โ€‹

PropertyTypeDefaultDescription
brobot.console.actions.enabledbooleantrueEnable console action reporting
brobot.console.actions.levelenumNORMALVerbosity: QUIET, NORMAL, VERBOSE
brobot.console.actions.show-match-detailsbooleantrueShow match location and scores (VERBOSE mode)
brobot.console.actions.show-timingbooleantrueShow action timing information
brobot.console.actions.use-colorsbooleantrueUse ANSI colored output
brobot.console.actions.use-iconsbooleantrueUse unicode icons in output
brobot.console.actions.report.findbooleantrueReport find operations
brobot.console.actions.report.clickbooleantrueReport click operations
brobot.console.actions.report.typebooleantrueReport type operations
brobot.console.actions.report.dragbooleantrueReport drag operations
brobot.console.actions.report.highlightbooleanfalseReport highlight operations
brobot.console.actions.report-transitionsbooleantrueReport state transitions

Planned Highlighting Features (Not Yet Implemented)โ€‹

Note: The following properties are defined in brobot-visual-feedback.properties but do not currently work because the configuration class to bind them has been removed. See the Highlighting Feature Guide for details.

PropertyTypeDefaultStatus
brobot.highlight.enabledbooleantrueโš ๏ธ Planned
brobot.highlight.auto-highlight-findsbooleantrueโš ๏ธ Planned
brobot.highlight.auto-highlight-search-regionsbooleanfalseโš ๏ธ Planned
brobot.highlight.find.colorstring#00FF00โš ๏ธ Planned
brobot.highlight.find.durationdouble2.0โš ๏ธ Planned
brobot.highlight.find.border-widthint3โš ๏ธ Planned
brobot.highlight.find.flashbooleanfalseโš ๏ธ Planned
brobot.highlight.find.flash-countint2โš ๏ธ Planned
brobot.highlight.find.flash-intervalint300โš ๏ธ Planned
brobot.highlight.search-region.colorstring#0000FFโš ๏ธ Planned
brobot.highlight.error.enabledbooleanfalseโš ๏ธ Planned
brobot.highlight.click.enabledbooleantrueโš ๏ธ Planned
... and 20+ other properties--โš ๏ธ Planned

For the complete list of planned properties and implementation status, see Highlighting Feature Guide.


DPI Configurationโ€‹

DPI (Dots Per Inch) configuration for optimal pattern matching across different screen resolutions and scaling factors. See the DPI Resolution Guide for comprehensive guidance.

DPI Controlโ€‹

PropertyTypeDefaultDescription
brobot.dpi.disablebooleantrueDisable DPI awareness to force physical resolution capture (recommended)
brobot.dpi.resize-factordouble1.0Resize factor for pattern matching (1.0 = no scaling, recommended)
brobot.dpi.pattern-sourceenumWINDOWS_TOOLPattern source hint: SIKULI_IDE, WINDOWS_TOOL, FFMPEG_TOOL
Optimal Configuration for Pattern Matching

The default configuration (dpi.disable=true, resize-factor=1.0) ensures 100% similarity when matching patterns created with:

  • Windows Snipping Tool
  • SikuliX IDE
  • FFmpeg capture tool

This forces physical resolution capture (e.g., 1920x1080) without scaling, matching the resolution of pattern images.

Pattern Source Hints:

  • WINDOWS_TOOL: Patterns created with Windows Snipping Tool (recommended)
  • SIKULI_IDE: Patterns created with SikuliX IDE
  • FFMPEG_TOOL: Patterns created with FFmpeg capture

When to Change:

  • Set dpi.disable=false for legacy applications expecting logical resolution
  • Adjust resize-factor if patterns are created at different scale (e.g., 0.5 for half-size patterns)

Screen Captureโ€‹

Configuration for screen capture strategies. See the DPI Resolution Guide and Modular Capture System for detailed information.

Main Capture Settingsโ€‹

PropertyTypeDefaultDescription
brobot.capture.providerenumJAVACV_FFMPEGCapture provider: JAVACV_FFMPEG, ROBOT, FFMPEG, SIKULIX, AUTO
brobot.capture.prefer-physicalbooleantruePrefer physical resolution captures (recommended for pattern matching)
brobot.capture.fallback-enabledbooleantrueEnable fallback to other providers if preferred fails
brobot.capture.fallback-chainstringJAVACV_FFMPEG,ROBOT,SIKULIXFallback priority chain
brobot.capture.enable-loggingbooleanfalseEnable capture operation logging for debugging
brobot.capture.auto-retrybooleantrueAuto-retry failed captures
brobot.capture.retry-countint3Number of retry attempts for failed captures

Robot Capture Settingsโ€‹

Configuration for Java Robot API capture (default provider with no external dependencies).

PropertyTypeDefaultDescription
brobot.capture.robot.scale-to-physicalbooleantrueScale captures to physical resolution (compensates for DPI scaling)
brobot.capture.robot.expected-physical-widthint1920Expected physical screen width for scaling detection
brobot.capture.robot.expected-physical-heightint1080Expected physical screen height for scaling detection

FFmpeg Settingsโ€‹

Configuration for external FFmpeg capture (requires FFmpeg installation).

PropertyTypeDefaultDescription
brobot.capture.ffmpeg.pathstringffmpegFFmpeg executable path (defaults to 'ffmpeg' in PATH)
brobot.capture.ffmpeg.timeoutint5FFmpeg capture timeout in seconds
brobot.capture.ffmpeg.formatstringpngFFmpeg output format (png recommended for quality)
brobot.capture.ffmpeg.log-levelenumerrorFFmpeg log level: error, warning, info, verbose, debug
Capture Provider Recommendations

For best pattern matching:

  1. JAVACV_FFMPEG (default) - JavaCV bundled FFmpeg, 100% match with Windows/SikuliX patterns
  2. ROBOT - Java Robot API with physical resolution, 95%+ match, no external dependencies
  3. FFMPEG - External FFmpeg (requires installation), 100% match
  4. SIKULIX - Legacy SikuliX capture, ~77% match due to resolution scaling issues

The fallback chain ensures automatic failover if JavaCV is unavailable.


Monitor Configurationโ€‹

Configuration for multi-monitor automation support.

PropertyTypeDefaultDescription
brobot.monitor.default-screen-indexint-1Monitor to use (0=primary, 1=secondary, etc., -1=auto-detect)
brobot.monitor.multi-monitor-enabledbooleanfalseEnable multi-monitor support
brobot.monitor.search-all-monitorsbooleanfalseSearch across all monitors when finding elements
brobot.monitor.log-monitor-infobooleantrueLog monitor information for each operation
Multi-Monitor Support

When multi-monitor-enabled=true, Brobot can:

  • Target specific monitors for automation operations
  • Search for patterns across all connected monitors
  • Handle different resolutions per monitor

Use default-screen-index to specify which monitor to use by default. Set search-all-monitors=true to automatically search all monitors for patterns.

Monitor Index Values:

  • -1: Auto-detect (use primary monitor)
  • 0: Primary monitor
  • 1: Secondary monitor
  • 2: Tertiary monitor
  • And so on...

GUI Accessโ€‹

Settings for handling GUI availability.

PropertyTypeDefaultDescription
brobot.gui-access.continue-on-errorbooleanfalseContinue if GUI is not available
brobot.gui-access.check-on-startupbooleantrueCheck GUI availability at startup

Startup Configurationโ€‹

Initial state and startup behavior. See the Initial States Configuration Guide for comprehensive usage.

PropertyTypeDefaultDescription
brobot.startup.verify-initial-statesbooleanfalseVerify initial state activation
brobot.startup.fallback-searchbooleanfalseSearch all states if initial states not found
brobot.startup.activate-first-onlybooleanfalseOnly activate first found state
brobot.startup.startup-delayint0Startup delay in seconds
Auto-Activation Property

The brobot.startup.auto-activate property is used in InitialStateAutoConfiguration with matchIfMissing=true, meaning auto-activation is enabled by default even when not explicitly set. This property is accessed via @Value annotation, not bound to StartupConfiguration.


Profile-Based Configurationโ€‹

Spring Boot profiles allow you to organize configurations for different environments. Profiles can be combined for powerful configuration combinations. For comprehensive profile-based testing patterns, see the Profile-Based Testing Guide.

Profile Strategyโ€‹

Standard Pattern: Use a modular profile strategy to minimize duplication:

  1. Base Configuration (application.properties) - Common settings for all profiles
  2. Feature Profiles - Each profile adds specific functionality
  3. Profile Composition - Combine multiple profiles for complex configurations

Available Profilesโ€‹

Debug Profileโ€‹

Create application-debug.properties for image finding debugging:

# Image Find Debugging
brobot.debug.image.enabled=true
brobot.debug.image.level=DETAILED
brobot.debug.image.save-screenshots=true
brobot.debug.image.save-patterns=true
brobot.debug.image.save-comparisons=true
brobot.debug.image.output-dir=debug/image-finding

# Visual Debugging
brobot.debug.image.visual.enabled=true
brobot.debug.image.visual.show-search-regions=true
brobot.debug.image.visual.show-match-scores=true
brobot.debug.image.visual.highlight-best-match=true
brobot.debug.image.visual.create-comparison-grid=true

# Console Output (with ANSI colors for Windows via Jansi)
brobot.debug.image.console.use-colors=true
brobot.debug.image.console.show-box=true
brobot.debug.image.console.show-timestamp=true

# Enhanced Logging
brobot.logging.verbosity=VERBOSE
brobot.console.actions.enabled=true
brobot.console.actions.level=VERBOSE

# Slow down for observation
brobot.action.pause-after=500
brobot.action.pause-before=200

# Spring Boot Debug Logging
logging.level.io.github.jspinak.brobot.debug=DEBUG
logging.level.io.github.jspinak.brobot.action.basic.find=DEBUG

Mock Profileโ€‹

Create application-mock.properties for testing without screen interaction:

# Enable Mock Mode (simulated actions)
brobot.mock=true
brobot.mock.action.success.probability=0.8

# Headless Configuration (if running in CI/CD without display)
brobot.headless=true

# GUI Access Settings for Mock Mode
brobot.gui-access.continue-on-error=true
brobot.gui-access.check-on-startup=false

# Automation Failure Handling
brobot.automation.exit-on-failure=false
brobot.automation.max-retries=2
brobot.automation.retry-delay-ms=500

Profile Combinationsโ€‹

Profiles can be combined using comma separation:

CommandDescriptionUse Case
./gradlew bootRunDefault (no profile)Live automation on Windows/Linux with GUI
./gradlew bootRun --args='--spring.profiles.active=debug'Debug profileLive automation with comprehensive debugging
./gradlew bootRun --args='--spring.profiles.active=mock'Mock profileTesting without GUI/display
./gradlew bootRun --args='--spring.profiles.active=mock,debug'Mock + DebugMock testing with debug output

Example Usage Scenariosโ€‹

Windows Live Automation with Debuggingโ€‹

# For debugging image finding issues on Windows
./gradlew bootRun --args='--spring.profiles.active=debug'

This enables:

  • Colorful console output (via Jansi library)
  • Visual annotations on screenshots
  • Debug file saving to debug/image-finding/
  • Detailed similarity scoring logs

CI/CD Pipeline Testingโ€‹

# For automated testing in headless environments
./gradlew test --args='--spring.profiles.active=mock'

This enables:

  • Mock mode (no GUI required)
  • Predictable test results
  • Fast execution

Development with Full Debuggingโ€‹

# For development with both mock and debug features
./gradlew bootRun --args='--spring.profiles.active=mock,debug'

This enables:

  • Mock mode for consistent testing
  • Full debug output for troubleshooting
  • No GUI dependencies

Environment Variablesโ€‹

Properties can also be set via environment variables by converting to uppercase and replacing dots with underscores:

export BROBOT_DEBUG_IMAGE_ENABLED=true
export BROBOT_DEBUG_IMAGE_LEVEL=DETAILED
export BROBOT_FIND_SIMILARITY=0.7

Best Practicesโ€‹

  1. Development: Use debug profile with DETAILED level
  2. Testing: Use mock mode with BASIC debugging
  3. Production: Minimal logging, debugging OFF
  4. CI/CD: Enable debugging on failure only
  5. Performance: Higher debug levels may impact performance (typical debug overhead)

Configuration & Setupโ€‹

Testing & Debuggingโ€‹

Features & Advancedโ€‹