INSTALLATION

FOR THIS SCRIPT YOU MUST HAVE THE MINIMUM VERSION OF THE GAME IN: 2545

If you use a previous one it will not work for you.

+set sv_enforceGameBuild 2545

If you have a later one, no problem.

1. DOWNLOAD

The first step is to download the product we have just purchased. To do this we will go to our KEYMASTER account and search for "Buty-Activities".

2. DEPENDENCIES AND INSTALLATION

This SCRIPT only has one dependency, which is a small shopping cart add-on, which is used in one of the missions.

The creator of this prop is bzzz.tebex.io, a magnificent modeler. Download it here or on their website:

It has to be ensured above the script, like this:

ensure bzzz_basket
ensure Buty-Activities

You must install the SQL that comes in the script, so that everything works correctly.

These database entries are not used by the MAIN SCRIPT, they are used by the LEADERBOARD and Daily Mission System.

CREATE TABLE `leaderboard` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`identifier` LONGTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
	`points` INT(11) NULL DEFAULT NULL,
	`missions` LONGTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

CREATE TABLE `leaderboard_timer` (
	`weeklytimer` INT(11) NULL DEFAULT NULL,
	`dailytimer` INT(11) NULL DEFAULT NULL
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

CREATE TABLE `daily_missions` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`name` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
	`amount` INT(11) NULL DEFAULT NULL,
	`prize` INT(11) NULL DEFAULT NULL,
	`claimed` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

3. CONFIG

The following will explain all the settings, one of the most important things that I recommend you spend a few minutes to understand in order to offer your users the best possible experien

Configuration = {
    FrameWork = "esx", -- esx | qbcore
    
    CoreFolderName = "", 

    SQLWrapper = "oxmysql", -- oxmysql, mysql-async or ghmattisql

    UseTarget = true, TargetName = "qtarget", -- Put the name of your target here

    DailyLimit = {true, 24}, ResetTime = 16, -- In case you want to limit the profits. The first number is the daily limit and the second number is the reset time

    Marker = { -- In case you want a question mark to appear in the heads of the NPCs with a mission
        UseMarker = true, 
        Type = 32,
        Color = {106, 3, 247}
    },

    Blip = { -- In case you want the missions to appear marked on the map
        UseBlip = true,
        Name = "Mystery Person",
        Type = 280,
        Color = 57,
    },

    ScenarioAnim = { -- These are the animations that NPCs will do when they are waiting for you
        {"anim@amb@waving@female", "air_wave"},
        {"anim@amb@waving@male","ground_wave"},
        {"amb@world_human_hang_out_street@female_arms_crossed@base","base"},
        {"anim@amb@nightclub@peds@","rcmme_amanda1_stand_loop_cop"},
        {"mini@hookers_spvanilla","idle_reject_loop_a"},
        {"amb@world_human_hang_out_street@male_b@idle_a","friends@fra@ig_1"},
        {"mp_move@prostitute@m@french","idle"},
        {"anim@mp_celebration@idles@female","celebration_idle_f_a"},
        {"anim@mp_corona_idles@male_d@idle_a","idle_a"},
        {"amb@world_human_hang_out_street@female_hold_arm@idle_a","idle_a"},
        {"random@drunk_driver_1","drunk_driver_stand_loop_dd2"},
        {"amb@world_human_hang_out_street@Female_arm_side@idle_a","idle_a"},
        {"rcmjosh1","idle"},
        {"timetable@amanda@ig_3","ig_3_base_tracy"},
        {"anim@mp_player_intcelebrationfemale@knuckle_crunch","knuckle_crunch"},
        {"move_p_m_two_idles@generic","fidget_sniff_fingers"},
        {"anim@miss@low@fin@vagos@","idle_ped06"},
        {"misscarsteal4@aliens","rehearsal_base_idle_director"},
    },

    EndAnim = { 

        completed = { -- These are the animations that NPCs will do when you complete a mission
            {"anim@mp_player_intupperslow_clap","idle_a"},
            {"anim@arena@celeb@flat@solo@no_props@","angry_clap_a_player_a"},
            {"anim@mp_player_intcelebrationmale@slow_clap","slow_clap"},
            {"anim@mp_player_intselfieblow_kiss","exit"},
            {"anim@mp_player_intselfiedock","idle_a"},
            {"mp_action","thanks_male_06"},
            {"anim@mp_player_intselfiethumbs_up","idle_a"},
            {"anim@amb@nightclub@mini@dance@dance_solo@female@var_a@","high_center_up"},
            {"misschinese2_crystalmazemcs1_ig","dance_loop_tao"},
            {"anim@mp_player_intupperraining_cash","idle_a"},
            {"anim@mp_player_intcelebrationpaired@f_f_sarcastic","sarcastic_left"},
            {"anim@mp_player_intincarsalutestd@ps@","idle_a"},
            {"anim@mp_player_intcelebrationmale@thumbs_up","thumbs_up"},  
            {"anim@mp_player_intcelebrationmale@freakout","freakout"},
            {"anim@mp_player_intupperair_shagging", "idle_a"},   
            {"anim@mp_player_intselfieblow_kiss", "exit"},
            {"amb@world_human_cheering@male_a", "base"}, 
        },

        notcompleted = { -- These are the animations that NPCs will do when you cancel a mission
            {"misscarsteal4@actor","stumble"},
            {"mp_player_int_upperfinger","mp_player_int_finger_01_enter"},
            {"mp_player_intfinger","mp_player_int_finger"},
            {"anim@mp_player_intupperfinger","idle_a_fp"},
            {"anim@arena@celeb@podium@no_prop@","flip_off_a_1st"},
            {"anim@arena@celeb@podium@no_prop@","flip_off_c_1st"},
            {"gestures@m@standing@casual","gesture_damn"},
            {"anim@am_hold_up@male","shoplift_mid"},
            {"anim@mp_player_intcelebrationfemale@face_palm","face_palm"},
            {"random@car_thief@agitated@idle_a","agitated_idle_a"},
            {"missminuteman_1ig_2","tasered_2"},
            {"anim@mp_player_intupperface_palm","idle_a"},
            {"mp_suicide","pistol"},
            {"mp_suicide","pill"},
            {"anim@gangops@hostage@","victim_fail"},
            {"anim@heists@ornate_bank@chat_manager","fail"},
            {"mp_player_int_upper_nod","mp_player_int_nod_no"},
            {"gestures@m@standing@casual","gesture_no_way"},  
            {"misscommon@response","screw_you"},
            {"gestures@f@standing@casual","gesture_shrug_hard"},
            {"anim@mp_player_intcelebrationfemale@face_palm", "face_palm"},
            {"random@car_thief@agitated@idle_a", "agitated_idle_a"},
        },

    }
}

Webhooks = { -- If you want there to be LOGs of important information on Discord, fill out the following

    Active = false,

    Config = {
        Webhook = "https://discord.com/api/webhooks/1141399499349180477/7Qx-SVp5kB-Qxv7GfCkwIMIL9WymMuhHcnmeWD5DsAciLESR701gw7djI7RRLN0Pqpw4",
        Color = 65280,
    },

    Text = {
        DailyLimit = "**> Player Information** " .. "\n" .. "** Player Name:** {name} " .."\n" .. "\n" .. "**â—Ŋ Player Identifier:** {identifier}" .. "\n" .. "\n" .. "**# [DAILY LIMIT]**" .. "\n" .. "\n" .. "❌I can't do any more activities for today**" .. "\n" .. "\n" .. "⏰ **May work in: ** {TotalTime}",
    
        GetMoney = "**# Player Name:** ```{name}``` " .. "\n" .. "**# Player Identifier:** ```{identifier}```" .. "\n" .. "**# INFO:** ```Helped a person and got {money}$ 💰 ```",
    
        GetItem = "**# Player Name:** ```{name}``` " .. "\n" .. "**# Player Identifier:** ```{identifier}```" .. "\n" .. "**# INFO:** ```Helped a person and got x{money} {nameitem} đŸ“Ļ```",
    },
}

Payments = { -- Each mission has a difficulty, you can put what you pay on each difficulty. You can also change the difficulty of each mission in the ACTIVITIES folder
    EASY = {180, 350},
    MEDIUM = {350, 490},
    HARD = {490, 620},
    ILLEGAL = {490, 620},
}

Activities = {animation, buying, delivery, npc_interaction, prop, talk, transport, illegal}

If you want to edit the aesthetics or design. You have the HTML open so you can modify the style and everything as you want.

The script is RESPONSIVE for all resolutions as well.

4. TRANSLATIONS AND MISSION CONFIGURATION

  • The SCRIPT has a large amount of text, since each mission tells you a different story and each time a player accesses a mission that story will be different. It is in 3 languages: English, Spanish and French, although you can translate it to all the languages ​​you want in this file. There is a TRANSLATES.lua file

  • Although there are almost 100 missions with different stories, there are different types of missions, in these files is where you can configure each mission (coordinates and many other options). Likewise, you can create as many missions as you want. There is an ACTIVITIES folder with all the types and their configurations.

Last updated