✈️NOXEN A10

Noxen A10 - Complete Documentation

Table of Contents

  1. Introduction

  2. Features

  3. Installation

  4. Configuration

  5. Usage

  6. API Reference

  7. Technical Details

  8. Troubleshooting

  9. Credits


Introduction

Noxen A10 is a sophisticated FiveM resource that brings realistic A-10 Warthog aircraft strafe runs to your server. This script provides an immersive tactical air support system with a cinematic targeting interface, realistic sound effects, and dynamic damage mechanics.

What is the A-10 Warthog?

The A-10 Thunderbolt II, commonly known as the "Warthog," is a single-seat, twin turbofan engine, straight wing jet aircraft designed for close air support (CAS) of ground forces. Its GAU-8/A Avenger 30mm rotary cannon is legendary for its distinctive "BRRRT" sound.

Escrow Protection

This is a premium protected resource. The core functionality is encrypted to protect the intellectual property. However, two key files are provided unencrypted for your customization needs:

  • config/client/cl_config.lua - Basic configuration options

  • client/api.lua - API integration layer for framework compatibility

This ensures you can fully integrate the resource into your server while maintaining code security.


Features

Core Features

  • Interactive Targeting System - Advanced orbital-style camera system for precise target selection

  • Realistic Flight Path - A-10 aircraft spawns dynamically and follows a realistic approach trajectory

  • Dynamic Sound System - Distance-based 3D audio with multiple sound variations including:

    • Flyover sounds

    • Flyby sounds (close proximity)

    • GAU-8 cannon fire

    • Impact sounds (close, mid, far)

  • Visual Effects

    • Tracer rounds animation

    • Particle effects for explosions and smoke

    • Camera shake based on proximity

    • Post-processing effects during targeting

  • Damage System

    • Progressive damage to vehicles within blast radius

    • Damage scaling based on distance from impact

    • Realistic vehicle deformation

    • Window smashing effects

    • Persistent smoke effects on damaged vehicles

  • Multiplayer Synchronization - All effects are synchronized across all players

Technical Features

  • Performance Optimized - Efficient entity pooling and cleanup

  • Distance-Based Rendering - Effects only apply within reasonable range (1000m)

  • Camera System - Fully integrated custom camera management

  • UI System - Modern, responsive targeting interface with HTML5/CSS3/jQuery


Installation

Requirements

  • A working FiveM server

  • Basic understanding of server resource management

Step-by-Step Installation

  1. Download the Resource

    cd resources
    git clone [repository-url] noxen_a10
    # OR extract the downloaded ZIP file
  2. Add to Server Configuration

    Open your server.cfg file and add:

    ensure noxen_a10
  3. Restart Your Server

    restart noxen_a10
    # OR
    refresh
    ensure noxen_a10
  4. Verify Installation

    Check your server console for any errors. You should see the resource loaded successfully.

File Structure

noxen_a10/
├── client/
│   ├── main.lua              # Core A-10 strike logic [ENCRYPTED]
│   ├── api.lua               # Public API and events [✅ EDITABLE]
│   ├── cam.lua               # Camera management system [ENCRYPTED]
│   ├── native_ui.lua         # Native UI drawing utilities [ENCRYPTED]
│   ├── sound/
│   │   └── logic.lua         # Sound playback system [ENCRYPTED]
│   └── web/
│       ├── index.html        # Targeting UI interface [ENCRYPTED]
│       ├── jquery.js         # jQuery library [ENCRYPTED]
│       ├── soundPlayer.js    # NUI sound player [ENCRYPTED]
│       └── sounds/           # Sound files directory [ENCRYPTED]
├── config/
│   └── client/
│       └── cl_config.lua     # Client configuration [✅ EDITABLE]
├── server/
│   └── main.lua              # Server-side synchronization [ENCRYPTED]
├── stream/
│   └── noxen_a10.ytd         # Texture dictionary [ENCRYPTED]
└── fxmanifest.lua            # Resource manifest [ENCRYPTED]

Legend:

  • [EDITABLE] - Files you can modify for customization

  • 🔒 [ENCRYPTED] - Protected files (cannot be modified)


Configuration

Important Note: Editable Files

This resource is escrow-protected. Only the following files are accessible and editable by the client:

  • config/client/cl_config.lua - Configuration file

  • client/api.lua - API file for custom integrations

All other files are encrypted and cannot be modified.

Client Configuration

Edit config/client/cl_config.lua:

Config = {}

-- Enable or disable the /a10 command
-- Set to true to allow players to use the command directly
-- Set to false to control access via exports/events only
Config.EnableCommand = false

Configuration Options

Option
Type
Default
Description

EnableCommand

boolean

false

Enables/disables the /a10 command for all players


Usage

For Players

Using the Command (if enabled)

If Config.EnableCommand is set to true:

  1. Type /a10 in chat

  2. The targeting system will activate

  3. Move your mouse to the edges of the screen to pan the camera

  4. Use mouse wheel to adjust height (50m - 600m)

  5. Press E to confirm target and call the strike

  6. Press ESC to cancel

Targeting System Controls

Control
Action

Mouse Movement (edge of screen)

Pan camera to select target area

Mouse Wheel Up

Increase camera height

Mouse Wheel Down

Decrease camera height

E Key

Confirm target and call strike

ESC Key

Cancel targeting

For Developers

Custom Integration with API.lua

The client/api.lua file is specifically designed for custom integrations. You can modify this file to integrate the A-10 system with your existing scripts.

Example: Adding Permission Checks

Edit client/api.lua:

API = {}

function API.Call()
    -- Add your custom checks here
    -- Example: Check if player has permission
    if not PlayerHasPermission() then
        print("You don't have permission to call A-10 strike!")
        return
    end
    
    -- Call the A-10 system
    A10.CallA10(false)
end

-- Custom permission check function
function PlayerHasPermission()
    -- Add your permission logic here
    -- Return true or false
    return true
end

-- Event handler (already included)
AddEventHandler("noxen_a10:Call", function()
    API.Call()
end)

Using the Event System

You can trigger the A-10 strike from your own scripts:

-- Trigger the targeting system
TriggerEvent("noxen_a10:Call")

Direct API Call

-- Call directly from another resource (if api.lua allows it)
exports['noxen_a10']:Call()

Expected Behavior

  1. Targeting Phase: Player enters an orbital camera view with a modern HUD overlay

  2. Approach Phase (~8.5 seconds):

    • A-10 aircraft spawns 1050m away

    • Approaches target with engine sounds

    • Plane adjusts pitch dynamically toward target

  3. Strike Phase:

    • GAU-8 cannon fires 30 rounds over ~1 second

    • Tracer rounds visible from plane to target

    • Multiple explosions at target area

    • Impact sounds based on player distance

    • Camera shake (if player nearby)

  4. Exit Phase (~20.5 seconds):

    • Plane pulls up and exits the area

    • Damaged vehicles emit smoke

    • Aircraft is automatically cleaned up


API Reference

Available Integration Methods

Since this resource is escrow-protected, you can integrate it using the provided editable files.

Client-Side Integration

Method 1: Using Events (Recommended)

-- From any client-side script
TriggerEvent("noxen_a10:Call")

This will trigger the targeting system for the local player.

Method 2: Using Exports

-- From any resource
exports['noxen_a10']:Call()

Method 3: Modifying API.lua (Advanced)

You can edit client/api.lua to add custom logic:

-- Example: Integration with ESX
API = {}

function API.Call()
    ESX = exports['es_extended']:getSharedObject()
    local xPlayer = ESX.GetPlayerData()
    
    -- Check if player has required job
    if xPlayer.job.name ~= 'army' then
        ESX.ShowNotification('You must be in the army to call A-10 strikes!')
        return
    end
    
    -- Check if player has enough money
    if xPlayer.money < 50000 then
        ESX.ShowNotification('You need $50,000 to call an A-10 strike!')
        return
    end
    
    -- Remove money and call strike
    TriggerServerEvent('noxen_a10:removeMoney', 50000)
    A10.CallA10(false)
end

AddEventHandler("noxen_a10:Call", function()
    API.Call()
end)

Client-Side Events

noxen_a10:Call

Triggers the A-10 targeting system.

Parameters: None

Usage:

TriggerEvent("noxen_a10:Call")

Notes: This event is handled in client/api.lua which you can customize.

Configuration-Based Customization

Edit config/client/cl_config.lua:

Config = {}

-- Enable /a10 command for all players
Config.EnableCommand = false  -- Set to true to enable command

-- You can add more config options here
-- These will be accessible from the encrypted files

Integration Examples

Example 1: QBCore Integration

Add to client/api.lua:

local QBCore = exports['qb-core']:GetCoreObject()

function API.Call()
    local PlayerData = QBCore.Functions.GetPlayerData()
    
    if PlayerData.job.name == 'police' and PlayerData.job.grade.level >= 4 then
        A10.CallA10(false)
    else
        QBCore.Functions.Notify('Insufficient permissions', 'error')
    end
end

Example 2: Item-Based Usage

Add to client/api.lua:

function API.Call()
    -- Trigger server event to check if player has item
    TriggerServerEvent('noxen_a10:checkItem')
end

RegisterNetEvent('noxen_a10:itemConfirmed', function()
    A10.CallA10(false)
end)

Then create a server-side script in your inventory system to handle the item check.


Technical Details

Strike Mechanics

Spawn Configuration

  • Model: strikeforce (game vehicle)

  • Spawn Distance: 1050m ahead, 200m above target

  • Speed Multiplier: 0.1 * TimeFrame

  • Landing Gear: Retracted

  • Entity State: Frozen (not affected by physics)

Damage System

The damage system uses a radius-based calculation:

-- Damage radius: 10m
-- Damage calculation: 100 * max(0.1, (10 - distance) / 10)
-- Only affects entities within 10m of each explosion point

Affected Entities:

  • Vehicles (CVehicle)

  • Pedestrians/NPCs (CPed)

Vehicle Damage Effects:

  • Broken rudder

  • All doors broken

  • Multiple damage points across vehicle body

  • All windows smashed

  • Smoke particle effects

Audio System

The resource uses a custom NUI-based audio system for realistic 3D positional audio:

Sound Categories:

  1. Flyover Sounds (2 variations)

    • Played during approach

    • Volume: Distance-based (750m max range)

  2. Flyby Sounds (4 variations)

    • Played when player within 60m of target

    • Volume: 0.35

  3. Impact Sounds (Close/Mid/Far)

    • Close (<150m): 4 variations

    • Mid (150-450m): 4 variations

    • Far (>450m): 3 variations

    • Volume: Distance-based calculation

  4. Cannon Fire (2 variations)

    • Played 1.85s after strike begins

    • Volume: Distance-based (650m max range)

Camera System

The targeting camera system provides:

  • Fixed FOV: 50.0

  • Height range: 50m - 600m

  • Auto-focus on target position

  • Post-processing effect: MP_OrbitalCannon

  • Radar disabled during targeting

Performance Considerations

  • Range Limit: 1000m from player position

  • Entity Pooling: Uses game pool for vehicles and peds

  • Cleanup: Automatic entity deletion after strike

  • Network Optimization: Only entity owners apply damage

Visual Effects

Tracer Animation

-- 30 rounds fired
-- Each round:
--   - Duration: 0.4 seconds
--   - Color: RGB(235, 195, 52) - Golden yellow
--   - Delay between rounds: 30ms

Particle Effects

  • Impact: core/exp_grd_grenade_lod (scale: 0.6)

  • Smoke: core/exp_grd_grenade_smoke (scale: 0.4, duration: 5s)

Camera Shake

-- Shake type: "SMALL_EXPLOSION_SHAKE"
-- Range: 10m from target
-- Intensity: 0.2 * max(0.2, (50 - distance) / 50)

Troubleshooting

Common Issues

Strike Not Working

Symptoms: Nothing happens when calling the strike

Solutions:

  1. Check console for errors

  2. Verify resource is started: ensure noxen_a10

  3. Ensure you're within 1000m of the target location

  4. Check that the model loads (wait for strikeforce to load)

No Sound Playing

Symptoms: Visual effects work but no audio

Solutions:

  1. Check browser console (F8 in-game, type con_browserDevTools true)

  2. Verify sound files exist in client/web/sounds/

  3. Check file formats (.ogg files)

  4. Ensure NUI is not muted

Targeting Camera Not Opening

Symptoms: Command runs but camera doesn't change

Solutions:

  1. Check for conflicting camera scripts

  2. Verify cam.lua is loading properly

  3. Check console for Lua errors

  4. Ensure native functions are available

Plane Spawns But Doesn't Move

Symptoms: Aircraft appears but stays stationary

Solutions:

  1. This is actually intended - the plane is frozen and moved manually

  2. If it's not moving at all, check for script errors

  3. Verify A10.TimeFrame is being updated (main thread running)

Vehicles Not Taking Damage

Symptoms: Strike completes but vehicles are unaffected

Solutions:

  1. Verify you're the network owner of the vehicle

  2. Check server permissions for damage natives

  3. Ensure entities are networked properly

  4. Check for godmode/invincibility scripts

Debug Mode

To enable additional logging, you can modify the code temporarily:

-- In client/main.lua, add print statements
print("Strike called at:", targetPosition)
print("Player distance:", distanceFromTarget)
print("Entity count:", #allEntity)

Performance Issues

If experiencing FPS drops during strikes:

  1. Reduce particle count: Modify the loop in A10.PlayHitSounds (line 159) from 30 to 15

  2. Increase delay between rounds: Change Wait(30) to Wait(50) (line 273)

  3. Reduce damage points: Reduce the damagePoints array size (lines 205-242)


Credits

Development

  • Developer: Noxen

  • Resource Name: noxen_a10

  • Version: 1.0.0

Libraries & Assets

  • jQuery - JavaScript library for NUI

  • Pizzicato.js - Audio library for sound effects

  • GTA V Natives - Rockstar Games

Sound Design

All A-10 and GAU-8 sounds are carefully selected to provide realistic audio feedback based on real-world recordings.


Support

For support, bug reports, or feature requests:

  1. Check this documentation first

  2. Search existing issues

  3. Provide detailed information:

    • FiveM version

    • Server artifact version

    • Error messages (console and client)

    • Steps to reproduce


License

This resource is provided as-is. Please check with the original author for licensing terms and conditions.


Changelog

Version 1.0.0

  • Initial release

  • Interactive targeting system

  • Realistic A-10 strike mechanics

  • Distance-based audio system

  • Dynamic damage system

  • Multi-player synchronization


Thank you for using Noxen A10! Enjoy the BRRRT! 🛩️

Last updated