🎣 AlbaFish
Educational toolkit for analyzing Albion Online fishing mechanics through network packet analysis
⚠️ FOR EDUCATIONAL PURPOSES ONLY =)
This library is designed for learning about network protocols, packet analysis, and game mechanics research.
NOT intended for creating game bots or automation tools.
📚 What is this?
AlbaFish is a Python library that captures and parses Albion Online network packets to understand fishing mechanics. It's built for:
- 🎓 Learning about Photon protocol and packet analysis
- 🔬 Research into game networking and event systems
- 📊 Understanding MMO client-server communication
✨ Features
- 🎯 Real-time fishing event monitoring (cast, bite, catch, etc.)
- 🐟 Complete Albion Online item database (11,000+ items)
- ⚡ Both sync and async API support
- 🎨 Decorator-based event routing
- 🔧 Middleware system for event processing
- 📦 Type hints and comprehensive error handling
🚀 Quick Start
Installation
pip install albafish
Requirements:
- Python 3.7+
scapy>=2.5.0(installed automatically)- Administrator/root privileges (for packet capture)
- Windows: Npcap
- Linux:
libpcap-dev - macOS:
libpcap(usually pre-installed)
Basic Example
import albafish
# Create item database
items = albafish.ItemDatabase()
# Simple callback
def on_catch(event):
fish_name = items.get_name(event.item_id)
print(f"🎣 Caught: {fish_name}")
# Create monitor
monitor = albafish.FishingMonitor(on_catch=on_catch, items_db=items)
# Start monitoring (requires admin/root)
monitor.start()
Decorator Style
from albafish import create_router
router = create_router()
@router.on_catch(tier=8, fish_only=True)
def rare_fish(event):
print("🐟 Rare T8 fish!")
@router.on_bite()
def bite_alert(event):
print("🎣 Fish is biting!")
router.start()
Async Support
import asyncio
from albafish import create_async_router
router = create_async_router()
@router.on_catch()
async def handle_catch(event):
print(f"Caught item: {event.item_id}")
await asyncio.sleep(0.1) # async operations
asyncio.run(router.start())
📖 Documentation
Events
on_cast- Rod cast startedon_cast_end- Float landed in wateron_bite- Fish is bitingon_start_pull- Started pullingon_pulling- Pulling in progresson_catch- Item caughton_failed- Fish escapedon_death- Player died
Filtering
# Catch only T7+ fish
@router.on_catch(min_tier=7, fish_only=True)
def rare_fish(event):
pass
# Specific tiers
@router.on_catch(tier=[6, 7, 8])
def high_tier(event):
pass
# Specific items
@router.on_catch(item_ids=[142, 143, 144])
def specific_items(event):
pass
🛠️ Advanced Usage
Custom Event Bus
from albafish import FishingMonitor, EventBus, LoggingMiddleware
bus = EventBus()
bus.add_middleware(LoggingMiddleware())
monitor = FishingMonitor(event_bus=bus)
Player Filtering
# Auto-detect player (default)
monitor = FishingMonitor(auto_detect_player=True)
# Specific player ID
monitor = FishingMonitor(player_id=12345)
📋 Examples
Check the /examples folder for more:
basic_monitor.py- Simple event monitoringdecorator_router.py- Decorator-based routingasync_example.py- Async/await usagefiltered_catch.py- Advanced filtering
⚠️ Important Notes
- Requires elevated privileges - Run as Administrator (Windows) or with
sudo(Linux/Mac) - Educational use only - Not for game automation or botting
- Network capture - Monitors UDP port 5056 by default
- Privacy - Only captures game packets, no personal data
🤝 Contributing
This is an educational project. Feel free to:
- Report bugs
- Suggest improvements
- Share your learning experiences
Not accepted:
- Features for game automation
- Bot-related functionality
- Commercial use requests
📜 License
Non-Commercial License - Free for educational and research purposes only.
See LICENSE for details.
👤 Author
evyshape
Disclaimer: This tool is for educational purposes. The author is not responsible for any misuse.
Albion Online is a trademark of Sandbox Interactive GmbH.
=)
Metadata
Release files for albafish 1.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| albafish-1.0.6.tar.gz | 172.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| albafish-1.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 357.1 kB
Release files / albafish-1.0.6.tar.gz
| Download URL | albafish-1.0.6.tar.gz |
|---|---|
| Size | 172.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a3e8013149ccd98cd74dc4b7856920fde9ca6bbb27b64d32482aae7d48e45af
|
|
BLAKE2b-256 checksum How to use checksums |
e7499b08aeafee728022dbe6b0901cba88c6eb69d95f98d1e7a36d8b034de8c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|
Release files / albafish-1.0.6-py3-none-any.whl
| Download URL | albafish-1.0.6-py3-none-any.whl |
|---|---|
| Size | 184.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fdbac39b039c72e89e624fff5fa1422a0f2c731cc0a795af0a5df4fae326a2f6
|
|
BLAKE2b-256 checksum How to use checksums |
569e9a567402a2edd22eebfa888ac0167d55e4fce07f0bca0332efea60c2694a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|