Automated system for counting and exporting BODs (Bulk Order Deeds) from Ultima Online to Excel spreadsheets.
This project automates the process of counting BODs organized in specific bags in Ultima Online, generating detailed reports in Excel format (.xlsx) with visual formatting based on material type (Verite, Agapite, Gold, etc.).
- Modern Dark Theme Interface - Professional and easy on the eyes
- Automatic BOD counting in configured bags
- Excel export with color formatting by material
- Custom export directory selection
- Real-time status updates with progress indicators
- One-click folder access to view generated reports
- Support for different material types (Verite, Agapite, Gold, Valorite, Bronze, Copper)
- Reports organized by item type (LBOD, COIF, LEGS, TUNIC, ARMS, GLOVES, GORGET, HELM)
- Empty cells highlighted in red for easy identification
- Python 3.8 or higher
- UO Stealth installed and configured
- Ultima Online running
git clone <your-repository>
cd bodsxlsexportpip install -r requirements.txtOr install manually:
pip install pandas openpyxlOpen the bs_config.py file and edit the bag IDs according to your in-game setup:
veritePackList = {
'20veritelbod': 0x43ab4b98, # Replace with your bag ID
'20veritelegs': 0x43ab4b96,
# ... add or remove as needed
}
agapitePackList = {
'10agapitelbod': 0x43a6b818,
# ... configure your bags
}
goldPackList = {
'copperlbod': 0x43a37e25,
# ... configure your bags
}How to get a bag ID:
- In UO Stealth, use the command to get object IDs
- Click on the desired bag
- Copy the hexadecimal ID and paste it in the configuration file
In the xlsGenerator.py file, line 13, adjust the path where reports will be saved:
full_path = os.path.join("D:\\UOSTEALTH2025\\Scripts\\BodCollector", filename)Replace with your desired path.
Make sure UO Stealth is running and your character is logged into the game.
- Open UO Stealth
- Go to Script menu
- Click Open and select
countBodsGenXLS.py - Click the Play button to start the script
- Select export directory - Click "Browse" to choose where to save reports
- Select the BOD collection you want to count (Verite, Agapite or Gold)
- Click ** Start** to begin counting
- Monitor the status - Watch real-time progress updates
- Open reports - Click ** Open** to view generated Excel files
The file will be saved in the configured directory with the name:
bod_report_YYYYMMDD_HHMMSS.xlsx
Example: bod_report_20251016_143025.xlsx
The generated Excel report contains:
- Columns: Organized by material and quantity (e.g., VERITE 20e, AGAPITE 15e)
- Rows: Item types (LBOD, COIF, LEGS, etc.)
- Colors:
- 🟢 Green: Verite
- 🔵 Blue: Valorite
- 🟣 Purple: Agapite
- 🟡 Yellow: Gold
- 🔴 Red: Zero quantity (missing)
bodsxlsexport/
│
├── countBodsGenXLS.py # Main script with modern GUI
├── xlsGenerator.py # Excel spreadsheet generator
├── bs_config.py # Bag configuration and IDs
├── requirements.txt # Project dependencies
├── README.md # This documentation
├── image.png # Interface screenshot
│
└── modules/
├── common_utils.py # Utility functions
└── connection.py # UO Stealth connection functions
Note: This project is an automation tool for personal use in Ultima Online. Make sure you comply with the rules of the server where you play.
