Educational toolkit for analyzing Albion Online fishing mechanics through network packets
Project description
🎣 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.
=)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file albafish-1.0.5.tar.gz.
File metadata
- Download URL: albafish-1.0.5.tar.gz
- Upload date:
- Size: 172.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59a982eacd6843364b08364732663f0cd09629b1198fcbe891f46564633b2e5d
|
|
| MD5 |
0fd1e1d97a8569fee34f762023dbbde3
|
|
| BLAKE2b-256 |
118390ed28ef5825252a40459d84ff0ebe171a55394a2c800ee5e7a8f42ca0bc
|
File details
Details for the file albafish-1.0.5-py3-none-any.whl.
File metadata
- Download URL: albafish-1.0.5-py3-none-any.whl
- Upload date:
- Size: 184.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69ee3aa6c386fd455fbb6865b4ab6d17a29258ddc8258b2cfe427fae926a36e9
|
|
| MD5 |
a81868347e8dffe4af17f42e96001b0f
|
|
| BLAKE2b-256 |
d016efdda2b7c7320353088f136bfac381f91342b167c3f0e4a1167c05ac921a
|