Installation

Guide for installing this resource

Ensure following order in your server.cfg

ensure ox_lib
ensure <your_frame_work>
ensure bv-ArmageddonFx

Just drag and drop the resource.

Config:

ConfigSettings = {
    log = function(discordWebhook, playerName, playerId, avataUrl, called)
        local embed = {
            {
                ["author"] = {
                    ["name"] = string.format("%s (%s)", playerName, playerId),
                    ["icon_url"] = avataUrl or "https://i.imgur.com/rwmAjNC.png" -- Player Discord Avatar
                },
                ["title"] = 'SERVER NAME',
                ["description"] = 'This player called: '..called,
                ["color"] = 16753920,
                ["thumbnail"] = {
                    ["url"] = "https://i.imgur.com/rwmAjNC.png" -- Bigger Logo // Replace me
                },
                ["footer"] = {
                    ["text"] = "Armaggedon Logger",
                    ["icon_url"] = "https://i.imgur.com/rwmAjNC.png" -- Smaller Logo // Replace me
                },
                ["timestamp"] = os.date("!%Y-%m-%dT%H:%M:%SZ")
            }
        }

        return PerformHttpRequest(discordWebhook, function(err, text, headers) end, 'POST',
                json.encode({username = "Armaggedon Log", embeds = embed}),
                        { ['Content-Type'] = 'application/json' })
    end,

    meteorProps = {
        [joaat("prop_test_boulder_01")] = true,
        [joaat("prop_test_boulder_02")] = true,
        [joaat("prop_test_boulder_03")] = true,
        [joaat("prop_test_boulder_04")] = true,
        [joaat("prop_asteroid_01")] = true
    },

    markerSettings = {
        [1] = { armType = 'meteor', rotate = false, type = 25, color = {230, 157, 11}, icon = 'meteorIcon'},
        [2] = { armType = 'missile', rotate = false, type = 25, color = {9, 232, 191}, icon = 'missileIcon'},
        [3] = { armType = 'nuke', rotate = false, type = 25, color = {161, 100, 3} , icon = 'nukeIcon'},
        [4] = { armType = 'asteroid', rotate = false, type = 25, color = {230, 11, 11} , icon = 'asterIcon'},
    },

    armaSelector = {
        Title = 'CHOOSE THE WORLD DEMISE',
        Options = {
            {
                name = 'Meteor',
                calls = 'meteor',
                info = 'Call rain of fire causing havoc to everything',
                background = 'meteor.png'
            },
            {
                name = 'Missiles',
                calls = 'missile',
                info = 'Brings a world war scenario in Los Santos.',
                background = 'missile.png'
            },
            {
                name = 'Nuke',
                calls = 'nuke',
                info = "Drop them nukes leaving dust and ashes to it's path.",
                background = 'nuke.png'
            },
            {
                name = 'Armageddon',
                calls = 'armageddon',
                info = 'Unleashing eveything that will sure end life in San Andreas. (Warning: Might cause noticable FPS drops.)',
                background = 'armageddon.png'
            }
        }
    },

    monitoringBoard = function(fallspeed, mana)
        local board = lib.showTextUI(string.format("**Current Fall Speed**: %s"..
                                                "   \n**Mana**: %s"..
                                                "   \n**Enable/Disable**: Press Capslock"..
                                                "   \n**Call**: Press E"..
                                                "   \n**Switch**: Press Y"..
                                                "   \n**Speed**: Scroll Up/Down (Hold Shift to double)"..
                                                "   \n**Rest**: Press H to rest to gain mana", 
                                                fallspeed, mana),  { position = "left-center", })
        return board
    end,

    FxMana = true,
    maxMana = 10,
    autoRefill  = true,
    refillManaAmount = 1,
    refillPerSecond = 4000,
    animDict = 'rcmcollect_paperleadinout@',
    animName = 'meditiate_idle',
    restKey  = 'H',

    resting = function(animDict, animName) 
        return IsEntityPlayingAnim(cache.ped, animDict, animName, 3, 3)
    end,

    playRestingAnimation = function(animDict, animName) 
        if ConfigSettings.resting(animDict, animName) then
            ClearPedTasks(cache.ped)
        else
            lib.requestAnimDict(animDict, animName)
            TaskPlayAnim(cache.ped, animDict, animName, 1.0, 1.0, -1, 1, 0, false, false, false)
            RemoveAnimDict(animDict)
        end
    end,

    callCooldown = 0,
    callFxKeybind = 38,
    activateFx = 'CAPITAL',
    switchFx = 246,

    speedMultiplier = 4.0,
    speedUp = 261,
    speedDown = 262,
    doubleSpeed = 21,

    waitPerDrop = 2000,
    asteroidChance = 5,

    maxForceDistance = 15,
    baseForce = 10,
    shockwaveRadius = 20,
    vehicleEffects = true,

    minSafeDistance = 150,
    minDistance = 100,
    maxDistance = 200,

    angleOffsetMin = -60,
    angleOffsetMax = 60,

    fxSpawnRates = {
        meteor = 1.0,
        missile = 1.0,
        nuke = 0.9,
        armageddon = 0.6
    },

    spawnRadius = 50,
    minSpawnChance = 0.2,
    maxSpawnChance = 1.0,

    spawnMeteorHeight = 300,
    defaultMeteorSpeed = 60.0,
    defaultAsteroidSpeed = 20.0,

    spawnMissileHeight = 100,

    spawnNuclearHeight = 1000.0,
    defaulNuclearSpeed = 200.0,

    congestionRadius = 440.0,
    maxCongestion = 20,

    maxPlayers = 128,
}

Customizing Draw Marker Icons

You can replace marker icons through Assets folder. Just make sure it's properly loaded and name's are matched.

Requirements:

  • Build 2189 or above

  • ox_lib (Latest)

Last updated