An open API service indexing awesome lists of open source software.

https://github.com/TheDR-lul/Tailgunner


https://github.com/TheDR-lul/Tailgunner

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

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.*