{"id":50353860,"url":"https://github.com/TheDR-lul/Tailgunner","last_synced_at":"2026-06-15T13:00:50.693Z","repository":{"id":320721302,"uuid":"1082817843","full_name":"TheDR-lul/Tailgunner","owner":"TheDR-lul","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-25T12:16:58.000Z","size":576,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-25T14:21:20.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheDR-lul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-24T20:20:16.000Z","updated_at":"2025-10-25T12:17:01.000Z","dependencies_parsed_at":"2025-10-25T14:21:33.496Z","dependency_job_id":"cec6ba87-c92b-4abb-bd49-30d91877bfb2","html_url":"https://github.com/TheDR-lul/Tailgunner","commit_stats":null,"previous_names":["thedr-lul/tailgunner"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/TheDR-lul/Tailgunner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDR-lul%2FTailgunner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDR-lul%2FTailgunner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDR-lul%2FTailgunner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDR-lul%2FTailgunner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheDR-lul","download_url":"https://codeload.github.com/TheDR-lul/Tailgunner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDR-lul%2FTailgunner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34363557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-29T22:00:23.926Z","updated_at":"2026-06-15T13:00:50.684Z","avatar_url":"https://github.com/TheDR-lul.png","language":"Rust","funding_links":[],"categories":["Game Mods"],"sub_categories":["Audio Sync"],"readme":"# 🎯 Tailgunner\n## Powered by A.S.S. (Adaptive Sensory System)\n\n**Transform your War Thunder experience into a full-body immersion system!**\n\nTailgunner 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.\n\n---\n\n## 🚀 Key Features\n\n### 🎮 **Full War Thunder Integration**\n- ✅ **100% EAC-Safe** - Reads data only from `127.0.0.1:8111` (official API)\n- ✅ **Real-time telemetry** - 10 updates per second\n- ✅ **HUD Events** - Kill feed, damage events, aircraft crashes\n  - Track your kills and deaths in real-time\n  - Filter by player names and clan tags\n  - Trigger haptic feedback on specific player events\n  - Enemy tracking and targeted feedback\n- ✅ **50+ Game Parameters** including:\n  - **Flight**: IAS, TAS, Altitude, Mach, AoA, G-Load\n  - **Controls**: Aileron, Elevator, Rudder, Flaps, Gear, Airbrake\n  - **Engine**: RPM, Temperature, Oil Temp, Manifold Pressure, Throttle\n  - **Weapons**: Ammo count, Cannon ready status\n  - **Resources**: Fuel (kg \u0026 %), Low fuel warnings\n  - **Tank-specific**: Stabilizer, Gear ratio, Cruise control, Driving direction\n  - **Crew**: Total/alive crew, Gunner/Driver state\n  - **Advanced**: Blisters, Gear lamps, Speed warnings\n\n### 🎨 **Visual Pattern Constructor**\nNode-based editor (similar to Blender/Unreal) for creating complex haptic patterns:\n\n#### **Input Nodes:**\n- **📊 Sensor Input** - 50+ game parameters grouped by category\n- **⚡ Event Trigger** - Game events (Hit, Overspeed, LowFuel, etc.)\n\n#### **Logic Nodes:**\n- **🔍 Condition** - Single comparisons (\u003e, \u003c, =, ≥, ≤, ≠, between, outside)\n- **🎯 Multi-Condition** - Complex conditions with AND/OR logic\n- **⚙️ Logic Gates** - AND, OR, NOT, XOR operations\n\n#### **Output Nodes:**\n- **💥 Vibration** - Classic vibration patterns with ADSR curves\n- **📏 Linear Motion** - For strokers/thrusters (position control)\n- **🔄 Rotation** - For rotary devices (speed \u0026 direction)\n- **📡 Output** - Send to devices\n\n### 🎯 **Smart Profiles \u0026 Dynamic Triggers**\nAutomatic profile switching based on vehicle type:\n- **🛡️ Tank RB** - Immersive realism with engine rumble, hit feedback\n- **✈️ Aircraft** - G-force simulation, overspeed warnings, stall alerts\n- **🎮 Light Background** - Subtle feedback for all vehicle types\n\n**Advanced Trigger System:**\n- **Custom Curve Editor** - Draw your own vibration intensity curves\n- **Per-Trigger Settings** - Adjust cooldown, duration, and intensity individually\n- **Built-in Triggers** - Pre-configured for fuel warnings, engine damage, ammo alerts\n- **Profile Filtering** - Only shows events with active triggers for clarity\n- **Continuous Vibration Mode** - Sustained feedback while condition is active\n- **Vehicle-Specific Limits** - Auto-generated triggers based on actual aircraft data\n  - G-load warnings (80% of max positive/negative G)\n  - Flutter speed alerts (before wing rip)\n  - Critical overspeed warnings (95% of Vne)\n\n**Player Identity System:**\n- **Track Specific Players** - Set your nickname to filter kill events\n- **Clan Tag Support** - Monitor clan member activities\n- **Enemy Lists** - Create targeted feedback for specific opponents\n- **Smart Kill Filtering** - \"I killed someone\" vs \"Enemy damaged me\"\n\n### 🔧 **Advanced Device Support**\n- **Buttplug.io Integration** - Universal device support via Intiface Central\n- **Multiple Device Types:**\n  - Vibration (classic haptics)\n  - Linear actuators (strokers, thrusters)\n  - Rotary devices (rotating toys)\n- **Smart QoS** - Rate limiting (5-8 cmd/s) to prevent device overload\n- **Fail-Safe** - Smooth fade-out on crash/disconnect\n\n### 🌍 **Multilingual**\n- 🇬🇧 English (primary)\n- 🇷🇺 Russian\n- Easy to add more languages\n\n### 🎨 **Enhanced UI/UX**\n- **Interactive Curve Editor** - Draw custom vibration patterns with mouse\n  - Add/remove points with double-click\n  - Drag points to adjust intensity over time\n  - Real-time visual feedback\n  - Canvas-based rendering for smooth curves\n- **Smart Number Inputs** - Keyboard-friendly value editing\n  - Type values directly instead of only using arrows\n  - Backspace/Delete support\n  - Enter to confirm, Escape to cancel\n  - Auto-formatting with units (seconds, etc.)\n- **Filtered Views** - Cleaner interface\n  - Only shows triggers with configured events\n  - Hides empty profiles for clarity\n- **Debug Console** - Real-time event monitoring\n  - Live trigger activation logs\n  - Game state telemetry display\n  - HUD event debugging\n  - Error tracking and diagnostics\n\n---\n\n## 📦 Installation\n\n### Prerequisites\n1. **War Thunder** with localhost API enabled\n2. **Intiface Central** ([Download](https://intiface.com/central/))\n3. **Compatible haptic devices**\n\n### Quick Start\n```bash\n# Clone repository\ngit clone https://github.com/yourusername/tailgunner.git\ncd tailgunner\n\n# Install dependencies\nnpm install\n\n# Run in development mode\nnpm run tauri dev\n\n# Build production version\nnpm run tauri build\n```\n\n---\n\n## 🎮 How to Use\n\n### 1. **Connect Devices**\n- Launch **Intiface Central**\n- Start server (default: `ws://localhost:12345`)\n- Connect your haptic devices\n- Launch **Tailgunner**\n- Click \"Initialize Devices\"\n\n### 2. **Start War Thunder**\n- Enable localhost API in game settings\n- Launch any battle (tank, aircraft, ship)\n- Tailgunner will auto-detect vehicle type\n\n### 3. **Create Custom Patterns**\n- Open **Pattern Manager**\n- Click **\"Create Pattern\"**\n- Build your haptic flow:\n  ```\n  [Speed Sensor] → [Condition: \u003e 800] → [Vibration Pattern] → [Output]\n  ```\n- Save and enable pattern\n\n### 4. **Configure Triggers**\n- Go to **Game Events** tab\n- **All Triggers** - View and configure all available triggers\n  - Enable/disable individual triggers\n  - Adjust cooldown (seconds between activations)\n  - Customize vibration duration\n  - Draw custom intensity curves with the interactive editor\n- **Active Profiles** - Configure profile-specific event mappings\n  - Only shows events with configured triggers\n  - Per-profile customization for different vehicle types\n  - Real-time preview of trigger settings\n\n---\n\n## 🛠️ Architecture\n\n### **Technology Stack**\n- **Frontend**: React + TypeScript + Vite\n- **Backend**: Rust + Tauri 2.0\n- **UI**: React Flow (node editor)\n- **Haptics**: Buttplug.io via WebSocket\n- **I18n**: react-i18next\n\n### **Core Systems**\n\n#### **A.S.S. (Adaptive Sensory System)**\nThe engine that powers Tailgunner:\n- **Telemetry Reader** - Polls WT API at 100ms intervals\n  - `/indicators` endpoint - Real-time telemetry (50+ parameters)\n  - `/hudmsg` endpoint - Kill feed and damage events\n  - Smart HUD initialization (processes recent 15s of events)\n  - Duplicate message prevention with time-based caching\n- **Event Engine** - Detects game events (hits, damage, state changes)\n- **Trigger Manager** - Evaluates custom conditions with persistent settings\n  - Custom curve point storage and serialization\n  - Per-trigger cooldown and pattern management\n  - Real-time condition evaluation with state history\n  - Continuous trigger support (sustained vibration)\n  - Event-based vs state-based trigger separation\n- **Profile Manager** - Switches haptic profiles based on vehicle\n- **Pattern Engine** - Converts curves to ADSR envelopes\n  - Custom curve-to-pattern conversion\n  - ADSR (Attack, Decay, Sustain, Release) generation\n  - Burst mode support (repeat patterns)\n- **Vehicle Limits Manager** - Datamine integration\n  - Parses War Thunder game files (VROMFS unpacking)\n  - Extracts aircraft performance limits (G-load, Vne, flutter)\n  - Auto-generates vehicle-specific triggers\n  - EAC-safe (unpacks to TEMP, doesn't modify game)\n- **Player Identity DB** - SQLite-based identity tracking\n  - Persistent storage of player names, clan tags, enemy lists\n  - Kill event filtering based on player identity\n- **Rate Limiter** - QoS to prevent device spam\n- **Device Manager** - Communicates with Buttplug.io\n\n#### **Pattern System**\nVisual node-based patterns are converted to Rust `EventTrigger` structures:\n- **Condition evaluation** - Real-time checks against game state\n- **Pattern execution** - ADSR envelopes, curves, continuous modes\n- **Multi-device support** - Different patterns for different device types\n\n---\n\n## 🎯 Pattern Examples\n\n### **Example 1: Speed Warning**\n```\n[IAS Sensor] → [Condition: \u003e 800 km/h] → [Vibration: Pulsing] → [Output]\n```\n*Triggers when airspeed exceeds 800 km/h*\n\n### **Example 2: Critical G-Load**\n```\n[G-Load Sensor] → [Multi-Condition: \u003e 8G OR \u003c -3G] → [Vibration: Sharp] → [Output]\n```\n*Triggers on extreme G-forces*\n\n### **Example 3: Low Fuel + Enemy Hit**\n```\n[Fuel % Sensor] → [Condition: \u003c 20%] ─┐\n[Hit Event] ─────────────────────────┼→ [Logic: AND] → [Vibration: Critical] → [Output]\n```\n*Intense feedback when hit while low on fuel*\n\n### **Example 4: Rotation on Engine Speed**\n```\n[RPM Sensor] → [Condition: \u003e 2000] → [Rotate: Continuous] → [Output]\n```\n*Rotary device spins proportionally to engine RPM*\n\n### **Example 5: Custom Vibration Curve for Low Fuel**\n```\nTrigger: Low Fuel (\u003c10%)\nCooldown: 30.0s\nDuration: 2.5s\nCurve: Custom drawn curve (gentle ramp up → sustained pulse → fade out)\n```\n*Creates a unique sensation using the interactive curve editor*\n\n---\n\n## 📊 Supported Parameters\n\n### **Flight Dynamics**\n- IAS, TAS, Altitude, Mach, AoA, G-Load (Ny)\n\n### **Aircraft Controls**\n- Aileron, Elevator, Rudder, Flaps, Gear, Airbrake\n- Stick/Pedal raw inputs\n\n### **Engine Telemetry**\n- RPM (multi-engine support)\n- Engine, Oil, Water temps\n- Manifold pressure, Throttle position\n\n### **Tank-Specific**\n- Stabilizer state, Gear ratio\n- Cruise control, Driving direction\n- Speed warning indicators\n\n### **Weapons \u0026 Resources**\n- Ammo count, Cannon ready status\n- Fuel (kg \u0026 percentage)\n- Low fuel/ammo warnings\n\n### **Crew Status**\n- Total/Current crew count\n- Crew distance, Gunner/Driver state\n\n### **Advanced**\n- Blisters (1-4), Gear lamps (up/down/off)\n- Roll indicators available\n\n---\n\n## 🔐 Safety \u0026 Ethics\n\n### **EAC-Safe Guarantee**\nTailgunner **ONLY** reads from War Thunder's official localhost API (`127.0.0.1:8111`). It does not:\n- ❌ Inject code into game memory\n- ❌ Modify game files\n- ❌ Hook into DirectX/OpenGL\n- ❌ Use any anti-cheat bypass techniques\n\n### **Device Safety**\n- **Rate Limiting**: Max 8 commands/second to prevent overheating, XD\n- **Fail-Safe Mode**: Devices stop smoothly if game crashes\n- **Manual Override**: Emergency stop button in UI\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Areas of interest:\n- **New node types** (e.g., Constrict, Inflate)\n- **Additional game parameters**\n- **Community pattern library**\n- **Translations** (add your language!)\n- **Device profiles** (optimize for specific hardware)\n\n### **How to Contribute**\n1. Fork repository\n2. Create feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit changes (`git commit -m 'Add AmazingFeature'`)\n4. Push to branch (`git push origin feature/AmazingFeature`)\n5. Open Pull Request\n\n---\n\n## 📝 License\n\n**GNU General Public License v3.0 or later (GPL-3.0-or-later)**\n\nThis project is **free and open source software** licensed under the GPL-3.0.\n\n✅ **You CAN:**\n- Use the software for any purpose (personal, commercial, educational)\n- Study and modify the source code\n- Share and distribute the software\n- Distribute your modifications\n- Use in commercial products\n\n⚠️ **You MUST:**\n- Keep the same GPL-3.0 license for derivative works\n- Provide source code when distributing\n- State changes made to the original code\n- Include copyright and license notices\n\nSee [LICENSE](LICENSE) for full details.\n\nThis program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.\n\n---\n\n## 🎖️ Credits\n\n**Tailgunner** is powered by:\n- [Tauri](https://tauri.app/) - Cross-platform framework\n- [Buttplug.io](https://buttplug.io/) - Haptic device control\n- [React Flow](https://reactflow.dev/) - Node editor\n- [War Thunder API](https://github.com/lucasvmx/WarThunder-localhost-documentation) - Telemetry documentation (Temp)\n\n---\n\n## 💬 Community\n\n- **Reddit**:*(coming soon)*\n- **Pattern Library**: [Share your patterns](#) *(coming soon)*\n\n---\n\n## 🚀 Roadmap\n\n### **v0.8.1** *(Current - Released 2025-01-26)*\n- ✅ 50+ game parameters\n- ✅ Multi-condition nodes\n- ✅ Linear \u0026 Rotate devices\n- ✅ Full localization (EN/RU)\n- ✅ Interactive vibration curve editor\n- ✅ Per-trigger cooldown/duration/intensity settings\n- ✅ Persistent trigger configuration\n- ✅ Profile filtering (shows only events with triggers)\n- ✅ Editable number inputs with keyboard support\n- ✅ **HUD Events System** - Kill feed, damage tracking\n- ✅ **Player Identity** - Track specific players/clans/enemies\n- ✅ **Vehicle Datamine Integration** - Auto-generated limits from game files\n- ✅ **Continuous Vibration Mode** - Sustained feedback for conditions\n- ✅ **Debug Console** - Real-time event monitoring\n- ✅ **Smart Kill Filtering** - Context-aware event descriptions\n- ✅ **Vehicle-Specific Triggers** - G-load, flutter, overspeed warnings\n- ✅ **HUD Initialization** - Processes recent 15s of events on startup\n\n### **v0.9.0** *(Planned)*\n- 🔄 Enhanced datamine features\n  - Tank performance limits (turret traverse, hull break)\n  - Naval vessel data integration\n  - Weapon ballistics parameters\n- 🔄 Advanced pattern features\n  - Pattern templates library\n  - Community pattern sharing\n  - Trigger import/export (JSON)\n- 🔄 UI improvements\n  - Trigger event history viewer\n  - Pattern performance analyzer\n  - Custom event categories\n\n### **v1.0.0** *(Future)*\n- 🔄 On-screen HUD overlay\n  - Real-time game state visualization\n  - Active trigger indicators\n  - Device status display\n  - Customizable position and opacity\n- 🔄 Advanced analytics\n  - Session statistics\n  - Trigger activation heatmaps\n  - Device usage metrics\n- 🔄 Multi-game support\n  - DCS World integration\n  - IL-2 Sturmovik support\n  - Generic telemetry adapter\n\n---\n\n## ⚠️ Disclaimer\n\nTailgunner 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.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Developed with ❤️ for the War Thunder community**\n\n*Feel the Thunder. Be the Thunder.*\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheDR-lul%2FTailgunner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheDR-lul%2FTailgunner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheDR-lul%2FTailgunner/lists"}