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.

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

Mock Mode

Properties for running Brobot in mock mode for testing without GUI.

PropertyTypeDefaultDescription
brobot.mockbooleanfalseEnable mock mode
brobot.mock.action.success.probabilitydouble1.0Probability of action success (0.0-1.0)
brobot.screenshot.pathstringimagesPath to mock screenshots

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

PropertyTypeDefaultDescription
brobot.settings.find.similaritydouble0.8Default similarity threshold (0.0-1.0)
brobot.find.similaritydouble0.8Alternative property name

Wait Operations

PropertyTypeDefaultDescription
brobot.settings.wait.timeoutint10Default wait timeout in seconds

Action Timing

PropertyTypeDefaultDescription
brobot.action.pause-beforeint0Pause before action in milliseconds
brobot.action.pause-afterint0Pause after action in milliseconds

Logging

Brobot logging configuration.

PropertyTypeDefaultDescription
brobot.logging.verbosityenumNORMALVerbosity level: QUIET, NORMAL, VERBOSE
brobot.console.actions.enabledbooleanfalseEnable 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

Screen Capture

Configuration for screen capture strategies.

PropertyTypeDefaultDescription
brobot.capture.strategyenumADAPTIVECapture strategy: NATIVE, PHYSICAL, ADAPTIVE, EXTERNAL
brobot.capture.force-physicalbooleanfalseForce physical resolution capture

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.

PropertyTypeDefaultDescription
brobot.startup.auto-activatebooleanfalseAuto-activate initial states
brobot.startup.verifybooleanfalseVerify startup conditions
brobot.startup.verify-initial-statesbooleanfalseVerify initial state activation

Profile-Based Configuration

Spring Boot profiles allow you to organize configurations for different environments. Profiles can be combined for powerful configuration combinations.

Profile Strategy

Brobot uses a modular profile approach 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 headless testing:

# Enable Mock Mode
brobot.mock=true
brobot.mock.action.success.probability=0.8

# 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 impact performance (~5-30%)