https://github.com/TheDR-lul/Tailgunner
https://github.com/TheDR-lul/Tailgunner
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/TheDR-lul/Tailgunner
- Owner: TheDR-lul
- License: other
- Created: 2025-10-24T20:20:16.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-10-25T12:16:58.000Z (10 months ago)
- Last Synced: 2025-10-25T14:21:20.054Z (10 months ago)
- Language: Rust
- Size: 563 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-buttplug - Tailgunner
README
# ๐ฏ Tailgunner
## Powered by A.S.S. (Adaptive Sensory System)
**Transform your War Thunder experience into a full-body immersion system!**
Tailgunner is a revolutionary haptic feedback application that bridges War Thunder's telemetry API with advanced haptic devices, translating every game event into physical sensations. Feel every hit, every G-force, every critical moment through adaptive sensory feedback.
---
## ๐ Key Features
### ๐ฎ **Full War Thunder Integration**
- โ
**100% EAC-Safe** - Reads data only from `127.0.0.1:8111` (official API)
- โ
**Real-time telemetry** - 10 updates per second
- โ
**HUD Events** - Kill feed, damage events, aircraft crashes
- Track your kills and deaths in real-time
- Filter by player names and clan tags
- Trigger haptic feedback on specific player events
- Enemy tracking and targeted feedback
- โ
**50+ Game Parameters** including:
- **Flight**: IAS, TAS, Altitude, Mach, AoA, G-Load
- **Controls**: Aileron, Elevator, Rudder, Flaps, Gear, Airbrake
- **Engine**: RPM, Temperature, Oil Temp, Manifold Pressure, Throttle
- **Weapons**: Ammo count, Cannon ready status
- **Resources**: Fuel (kg & %), Low fuel warnings
- **Tank-specific**: Stabilizer, Gear ratio, Cruise control, Driving direction
- **Crew**: Total/alive crew, Gunner/Driver state
- **Advanced**: Blisters, Gear lamps, Speed warnings
### ๐จ **Visual Pattern Constructor**
Node-based editor (similar to Blender/Unreal) for creating complex haptic patterns:
#### **Input Nodes:**
- **๐ Sensor Input** - 50+ game parameters grouped by category
- **โก Event Trigger** - Game events (Hit, Overspeed, LowFuel, etc.)
#### **Logic Nodes:**
- **๐ Condition** - Single comparisons (>, <, =, โฅ, โค, โ , between, outside)
- **๐ฏ Multi-Condition** - Complex conditions with AND/OR logic
- **โ๏ธ Logic Gates** - AND, OR, NOT, XOR operations
#### **Output Nodes:**
- **๐ฅ Vibration** - Classic vibration patterns with ADSR curves
- **๐ Linear Motion** - For strokers/thrusters (position control)
- **๐ Rotation** - For rotary devices (speed & direction)
- **๐ก Output** - Send to devices
### ๐ฏ **Smart Profiles & Dynamic Triggers**
Automatic profile switching based on vehicle type:
- **๐ก๏ธ Tank RB** - Immersive realism with engine rumble, hit feedback
- **โ๏ธ Aircraft** - G-force simulation, overspeed warnings, stall alerts
- **๐ฎ Light Background** - Subtle feedback for all vehicle types
**Advanced Trigger System:**
- **Custom Curve Editor** - Draw your own vibration intensity curves
- **Per-Trigger Settings** - Adjust cooldown, duration, and intensity individually
- **Built-in Triggers** - Pre-configured for fuel warnings, engine damage, ammo alerts
- **Profile Filtering** - Only shows events with active triggers for clarity
- **Continuous Vibration Mode** - Sustained feedback while condition is active
- **Vehicle-Specific Limits** - Auto-generated triggers based on actual aircraft data
- G-load warnings (80% of max positive/negative G)
- Flutter speed alerts (before wing rip)
- Critical overspeed warnings (95% of Vne)
**Player Identity System:**
- **Track Specific Players** - Set your nickname to filter kill events
- **Clan Tag Support** - Monitor clan member activities
- **Enemy Lists** - Create targeted feedback for specific opponents
- **Smart Kill Filtering** - "I killed someone" vs "Enemy damaged me"
### ๐ง **Advanced Device Support**
- **Buttplug.io Integration** - Universal device support via Intiface Central
- **Multiple Device Types:**
- Vibration (classic haptics)
- Linear actuators (strokers, thrusters)
- Rotary devices (rotating toys)
- **Smart QoS** - Rate limiting (5-8 cmd/s) to prevent device overload
- **Fail-Safe** - Smooth fade-out on crash/disconnect
### ๐ **Multilingual**
- ๐ฌ๐ง English (primary)
- ๐ท๐บ Russian
- Easy to add more languages
### ๐จ **Enhanced UI/UX**
- **Interactive Curve Editor** - Draw custom vibration patterns with mouse
- Add/remove points with double-click
- Drag points to adjust intensity over time
- Real-time visual feedback
- Canvas-based rendering for smooth curves
- **Smart Number Inputs** - Keyboard-friendly value editing
- Type values directly instead of only using arrows
- Backspace/Delete support
- Enter to confirm, Escape to cancel
- Auto-formatting with units (seconds, etc.)
- **Filtered Views** - Cleaner interface
- Only shows triggers with configured events
- Hides empty profiles for clarity
- **Debug Console** - Real-time event monitoring
- Live trigger activation logs
- Game state telemetry display
- HUD event debugging
- Error tracking and diagnostics
---
## ๐ฆ Installation
### Prerequisites
1. **War Thunder** with localhost API enabled
2. **Intiface Central** ([Download](https://intiface.com/central/))
3. **Compatible haptic devices**
### Quick Start
```bash
# Clone repository
git clone https://github.com/yourusername/tailgunner.git
cd tailgunner
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build production version
npm run tauri build
```
---
## ๐ฎ How to Use
### 1. **Connect Devices**
- Launch **Intiface Central**
- Start server (default: `ws://localhost:12345`)
- Connect your haptic devices
- Launch **Tailgunner**
- Click "Initialize Devices"
### 2. **Start War Thunder**
- Enable localhost API in game settings
- Launch any battle (tank, aircraft, ship)
- Tailgunner will auto-detect vehicle type
### 3. **Create Custom Patterns**
- Open **Pattern Manager**
- Click **"Create Pattern"**
- Build your haptic flow:
```
[Speed Sensor] โ [Condition: > 800] โ [Vibration Pattern] โ [Output]
```
- Save and enable pattern
### 4. **Configure Triggers**
- Go to **Game Events** tab
- **All Triggers** - View and configure all available triggers
- Enable/disable individual triggers
- Adjust cooldown (seconds between activations)
- Customize vibration duration
- Draw custom intensity curves with the interactive editor
- **Active Profiles** - Configure profile-specific event mappings
- Only shows events with configured triggers
- Per-profile customization for different vehicle types
- Real-time preview of trigger settings
---
## ๐ ๏ธ Architecture
### **Technology Stack**
- **Frontend**: React + TypeScript + Vite
- **Backend**: Rust + Tauri 2.0
- **UI**: React Flow (node editor)
- **Haptics**: Buttplug.io via WebSocket
- **I18n**: react-i18next
### **Core Systems**
#### **A.S.S. (Adaptive Sensory System)**
The engine that powers Tailgunner:
- **Telemetry Reader** - Polls WT API at 100ms intervals
- `/indicators` endpoint - Real-time telemetry (50+ parameters)
- `/hudmsg` endpoint - Kill feed and damage events
- Smart HUD initialization (processes recent 15s of events)
- Duplicate message prevention with time-based caching
- **Event Engine** - Detects game events (hits, damage, state changes)
- **Trigger Manager** - Evaluates custom conditions with persistent settings
- Custom curve point storage and serialization
- Per-trigger cooldown and pattern management
- Real-time condition evaluation with state history
- Continuous trigger support (sustained vibration)
- Event-based vs state-based trigger separation
- **Profile Manager** - Switches haptic profiles based on vehicle
- **Pattern Engine** - Converts curves to ADSR envelopes
- Custom curve-to-pattern conversion
- ADSR (Attack, Decay, Sustain, Release) generation
- Burst mode support (repeat patterns)
- **Vehicle Limits Manager** - Datamine integration
- Parses War Thunder game files (VROMFS unpacking)
- Extracts aircraft performance limits (G-load, Vne, flutter)
- Auto-generates vehicle-specific triggers
- EAC-safe (unpacks to TEMP, doesn't modify game)
- **Player Identity DB** - SQLite-based identity tracking
- Persistent storage of player names, clan tags, enemy lists
- Kill event filtering based on player identity
- **Rate Limiter** - QoS to prevent device spam
- **Device Manager** - Communicates with Buttplug.io
#### **Pattern System**
Visual node-based patterns are converted to Rust `EventTrigger` structures:
- **Condition evaluation** - Real-time checks against game state
- **Pattern execution** - ADSR envelopes, curves, continuous modes
- **Multi-device support** - Different patterns for different device types
---
## ๐ฏ Pattern Examples
### **Example 1: Speed Warning**
```
[IAS Sensor] โ [Condition: > 800 km/h] โ [Vibration: Pulsing] โ [Output]
```
*Triggers when airspeed exceeds 800 km/h*
### **Example 2: Critical G-Load**
```
[G-Load Sensor] โ [Multi-Condition: > 8G OR < -3G] โ [Vibration: Sharp] โ [Output]
```
*Triggers on extreme G-forces*
### **Example 3: Low Fuel + Enemy Hit**
```
[Fuel % Sensor] โ [Condition: < 20%] โโ
[Hit Event] โโโโโโโโโโโโโโโโโโโโโโโโโโผโ [Logic: AND] โ [Vibration: Critical] โ [Output]
```
*Intense feedback when hit while low on fuel*
### **Example 4: Rotation on Engine Speed**
```
[RPM Sensor] โ [Condition: > 2000] โ [Rotate: Continuous] โ [Output]
```
*Rotary device spins proportionally to engine RPM*
### **Example 5: Custom Vibration Curve for Low Fuel**
```
Trigger: Low Fuel (<10%)
Cooldown: 30.0s
Duration: 2.5s
Curve: Custom drawn curve (gentle ramp up โ sustained pulse โ fade out)
```
*Creates a unique sensation using the interactive curve editor*
---
## ๐ Supported Parameters
### **Flight Dynamics**
- IAS, TAS, Altitude, Mach, AoA, G-Load (Ny)
### **Aircraft Controls**
- Aileron, Elevator, Rudder, Flaps, Gear, Airbrake
- Stick/Pedal raw inputs
### **Engine Telemetry**
- RPM (multi-engine support)
- Engine, Oil, Water temps
- Manifold pressure, Throttle position
### **Tank-Specific**
- Stabilizer state, Gear ratio
- Cruise control, Driving direction
- Speed warning indicators
### **Weapons & Resources**
- Ammo count, Cannon ready status
- Fuel (kg & percentage)
- Low fuel/ammo warnings
### **Crew Status**
- Total/Current crew count
- Crew distance, Gunner/Driver state
### **Advanced**
- Blisters (1-4), Gear lamps (up/down/off)
- Roll indicators available
---
## ๐ Safety & Ethics
### **EAC-Safe Guarantee**
Tailgunner **ONLY** reads from War Thunder's official localhost API (`127.0.0.1:8111`). It does not:
- โ Inject code into game memory
- โ Modify game files
- โ Hook into DirectX/OpenGL
- โ Use any anti-cheat bypass techniques
### **Device Safety**
- **Rate Limiting**: Max 8 commands/second to prevent overheating, XD
- **Fail-Safe Mode**: Devices stop smoothly if game crashes
- **Manual Override**: Emergency stop button in UI
---
## ๐ค Contributing
We welcome contributions! Areas of interest:
- **New node types** (e.g., Constrict, Inflate)
- **Additional game parameters**
- **Community pattern library**
- **Translations** (add your language!)
- **Device profiles** (optimize for specific hardware)
### **How to Contribute**
1. Fork repository
2. Create feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit changes (`git commit -m 'Add AmazingFeature'`)
4. Push to branch (`git push origin feature/AmazingFeature`)
5. Open Pull Request
---
## ๐ License
**GNU General Public License v3.0 or later (GPL-3.0-or-later)**
This project is **free and open source software** licensed under the GPL-3.0.
โ
**You CAN:**
- Use the software for any purpose (personal, commercial, educational)
- Study and modify the source code
- Share and distribute the software
- Distribute your modifications
- Use in commercial products
โ ๏ธ **You MUST:**
- Keep the same GPL-3.0 license for derivative works
- Provide source code when distributing
- State changes made to the original code
- Include copyright and license notices
See [LICENSE](LICENSE) for full details.
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.
---
## ๐๏ธ Credits
**Tailgunner** is powered by:
- [Tauri](https://tauri.app/) - Cross-platform framework
- [Buttplug.io](https://buttplug.io/) - Haptic device control
- [React Flow](https://reactflow.dev/) - Node editor
- [War Thunder API](https://github.com/lucasvmx/WarThunder-localhost-documentation) - Telemetry documentation (Temp)
---
## ๐ฌ Community
- **Reddit**:*(coming soon)*
- **Pattern Library**: [Share your patterns](#) *(coming soon)*
---
## ๐ Roadmap
### **v0.8.1** *(Current - Released 2025-01-26)*
- โ
50+ game parameters
- โ
Multi-condition nodes
- โ
Linear & Rotate devices
- โ
Full localization (EN/RU)
- โ
Interactive vibration curve editor
- โ
Per-trigger cooldown/duration/intensity settings
- โ
Persistent trigger configuration
- โ
Profile filtering (shows only events with triggers)
- โ
Editable number inputs with keyboard support
- โ
**HUD Events System** - Kill feed, damage tracking
- โ
**Player Identity** - Track specific players/clans/enemies
- โ
**Vehicle Datamine Integration** - Auto-generated limits from game files
- โ
**Continuous Vibration Mode** - Sustained feedback for conditions
- โ
**Debug Console** - Real-time event monitoring
- โ
**Smart Kill Filtering** - Context-aware event descriptions
- โ
**Vehicle-Specific Triggers** - G-load, flutter, overspeed warnings
- โ
**HUD Initialization** - Processes recent 15s of events on startup
### **v0.9.0** *(Planned)*
- ๐ Enhanced datamine features
- Tank performance limits (turret traverse, hull break)
- Naval vessel data integration
- Weapon ballistics parameters
- ๐ Advanced pattern features
- Pattern templates library
- Community pattern sharing
- Trigger import/export (JSON)
- ๐ UI improvements
- Trigger event history viewer
- Pattern performance analyzer
- Custom event categories
### **v1.0.0** *(Future)*
- ๐ On-screen HUD overlay
- Real-time game state visualization
- Active trigger indicators
- Device status display
- Customizable position and opacity
- ๐ Advanced analytics
- Session statistics
- Trigger activation heatmaps
- Device usage metrics
- ๐ Multi-game support
- DCS World integration
- IL-2 Sturmovik support
- Generic telemetry adapter
---
## โ ๏ธ Disclaimer
Tailgunner is an **unofficial** third-party application and is **not affiliated with, endorsed by, or sponsored by Gaijin Entertainment**. War Thunderยฎ is a registered trademark of Gaijin Entertainment. Use at your own risk.
---
**Developed with โค๏ธ for the War Thunder community**
*Feel the Thunder. Be the Thunder.*