🛠️Menu Props

🇫🇷 Le menu Props est idéal pour permettre à vos joueurs d’ajouter des objets de décoration ou d’aider à la création de mini-événements. Ajoutez des props qui resteront persistants, mais se supprimeront automatiquement au bout d’un certain temps que vous aurez défini. Déplacez les props avec précision grâce à l’outil Gizmo ! Vous avez peur d’un abus ? Les membres du staff peuvent gérer tous les props du serveur !

🇺🇸 The Props Menu is perfect for allowing your players to add decorative objects or help create mini-events. Add props that remain persistent but will automatically be removed after a set time you define. Move props precisely using the Gizmo tool! Worried about abuse? Staff members can manage all server props !


Preview Vidéo

Buy


Feature

🇫🇷

  • Menu RageUI Custom – Style Ă©purĂ©

  • Suppression automatique des props au bout de x minutes

  • Herse fonctionnelle (crève toutes les roues, mĂŞme s’il n’y en a qu’une qui touche)

  • Liste de props prĂ©dĂ©finis dans des catĂ©gories, ouverte Ă  tout le monde ou aux jobs.

  • Option admin ou ouverte Ă  tout le monde : possibilitĂ© de spawn n’importe quel prop (dimension max Ă  dĂ©finir pour Ă©viter les abus)

  • Admin : voir tous les props, les supprimer, savoir qui les a posĂ©s

  • Limite de props que peuvent poser les joueurs et le staff

🇺🇸

  • Custom RageUI Menu – Clean Style

  • Automatic deletion of props after x minutes

  • Functional spike strip (pops all tires, even if only one is touched)

  • List of predefined props sorted by category, available to everyone or restricted to specific jobs

  • Admin option or open to everyone: ability to spawn any prop (maximum size to be defined to prevent abuse)

  • Admin: view all props, delete them, see who placed them

  • Limit on the number of props that players and staff can place


Installation

🇫🇷 Téléchargez le script depuis votre keymaster, extrayez le fichier, placer le dans le dossier de votre choix et ajoutez-le à votre resources.cfg / server.cfg. Ensuite, ouvrez votre fichier sql.sql et insérez-le dans la base de données.

🇺🇸 Download the script from your keymaster, extract the file, place it in the folder of your choice and add it to your resources.cfg / server.cfg. Then, open your sql.sql file and insert it into the database.

DROP TABLE IF EXISTS `s_props`;
CREATE TABLE IF NOT EXISTS `s_props` (
  `id` int NOT NULL AUTO_INCREMENT,
  `identifier` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
  `prop_name` varchar(30) COLLATE utf8mb4_general_ci NOT NULL,
  `timestamp` varchar(20) COLLATE utf8mb4_general_ci NOT NULL,
  `timestamp_limit` varchar(20) COLLATE utf8mb4_general_ci NOT NULL,
  `metadata` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=275 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
COMMIT;

Configuration

🇫🇷 Vous allez utiliser plusieurs fichiers pour configurer au maximum le script. Les deux fichiers principaux sont ceux ci-dessous :

🇺🇸 You will use several files to configure the script to the maximum extent. The two main files are those below:

Config.lua
Config = {}

Config.PropsMenu = { 
    DebugPrint = false, -- If true, the function will print all information. Disable this option if you do not want to display any output
    GradeAdmin = "admin",
    EnablePropsCustomForAdmin = true, -- If False, update the translate : button_title_admincustomprops
    PropsLimitPlayer = 20,
    PropsLimitStaff = 50,
    DimensionMax = 110.0,
    KeyPressedPlaceProp = 191, -- G
    AutomaticDeleteAfter = 120, -- (os.time() + (60 * Config.PropsMenu.AutomaticDeleteAfter)) 120 = 2h
    CheckDelayDeleteProp = 20, -- in minutes (the code is 60000 x ..) / Check every x minutes to remove the props that have deleted the
    EnableStinger = true,
    StingerList = {'p_ld_stinger_s', 'p_stinger_04', 'p_stinger_02'},
    DrawOutlineColor = {r = 255, g = 255, b = 153, alpha = 100},
    ['ShowNotification'] = function(text, typenotif) -- Notification type, depending on your framework or external script (Server notifications are forwarded here)
        TriggerEvent('QBCore:Notify', text, typenotif)
    end,
    ['Input'] = function(title, label) -- Input dialog, depending on your framework or external script (return = input)
        local input = lib.inputDialog(title, {label})
        if not input and input[1] then return end
        return input[1]
    end,
    ['WhitelistProps'] = {
        -- ['xm3_prop_xm3_tent_01a'] = {'police', 'gouv', 'ambulance'},
        -- ['p_ld_stinger_s'] = {'police', 'gouv'},
        -- ['p_stinger_04'] = {'police', 'gouv'},
        -- ['p_stinger_02'] = {'police', 'gouv'},
        -- ['prop_barrier_work05'] = {'police', 'gouv'},
        -- ['prop_mp_barrier_02b'] = {'police', 'gouv'},
        -- ['reh_prop_reh_outline_01a'] = {'police', 'gouv'},
        -- ['xm_prop_body_bag'] = {'police', 'gouv', 'ambulance'},
        -- ['prop_roadcone02a'] = {'police', 'ambulance', 'gouv'}, 
        -- ['v_med_bed1'] = {'ambulance', 'gouv'},
        -- ['prop_coffin_02b'] = {'ambulance', 'gouv'},
        -- ['xm_prop_smug_crate_s_medical'] = {'ambulance', 'gouv'},
        -- ['prop_barrier_work06a'] = {'ambulance', 'police', 'gouv'},        
    },
    ["BlacklistProps"] = { 
        ["stt_prop_ramp_spiral_m"],
        ["stt_prop_ramp_adj_flip_s"],
    },
    ['PredefinedProps'] = {
        {
            RequiredJob = {"police"},
            NameMenu = "LSPD",
            Lists = {
                {name = "Herse (Longue 1)", props = "p_ld_stinger_s"},
                {name = "Herse (Longue 2)", props = "p_stinger_04"},
                {name = "Herse (Grosse)", props = "p_stinger_02"},
                {name = "Barriere (Do not cross)", props = "prop_barrier_work05"},
                {name = "Barriere (Rouge & Blanche)", props = "prop_mp_barrier_02b"},
                {name = "Barriere (Veille)", props = "prop_barrier_work06a"},
                {name = "Cible (Hauteur)", props = "gr_prop_gr_target_05c"},
                {name = "Cible (Murale)", props = "gr_prop_gr_target_w_02b"}, 
                {name = "Cible (Sol)", props = "gr_prop_gr_target_05a"},
                {name = "Corp", props = "reh_prop_reh_outline_01a"},
                {name = "Sac morgue", props = "xm_prop_body_bag"},
                {name = "CĂ´ne de Signalisation (Petit)", props = "prop_roadcone02a"},
                {name = "CĂ´ne de Signalisation (Grand 1)", props = "prop_phonebox_05a"},
                {name = "Cône de Signalisation (Très grand)", props = "prop_roadpole_01a"},
                {name = "Tente de toit", props = "xm3_prop_xm3_tent_01a"},
            },
        },
        {
            RequiredJob = {"ambulance"},
            NameMenu = "EMS",
            Lists = {
                {name = "Tente de toit", props = "xm3_prop_xm3_tent_01a"},
                {name = "Trousse de secours", props = "xm_prop_smug_crate_s_medical"},
                {name = "Barriere (Veille)", props = "prop_barrier_work06a"},
                {name = "Lit (Brancard)", props = "v_med_bed1"},
                {name = "Cercueil", props = "prop_coffin_02b"},
                {name = "CĂ´ne de Signalisation (Petit)", props = "prop_roadcone02a"},      
                {name = "Sac morgue", props = "xm_prop_body_bag"},   
            }, 
        },
        {
            NameMenu = "Électronique",
            Lists = {
                {name = "Télévision", props = "prop_tv_flat_02"},
                {name = "Ordinateur", props = "prop_monitor_w_large"},
                {name = "Laptop", props = "prop_laptop_01a"},
                {name = "Téléphone Bureau", props = "prop_off_phone_01"},
            }, 
        },
        {
            NameMenu = "Nourritures & Boissons",
            Lists = {
                {name = "Sceau a champagne", props = "vw_prop_casino_champset"},
                {name = "Flute champagne", props = "prop_cs_champ_flute"},
                {name = "Bouteille de Bière", props = "prop_amb_beer_bottle"},
                {name = "Bouteille de vin", props = "prop_wine_rose"},
                {name = "Verre cocktail", props = "prop_tequsunrise"},
                {name = "Carafe", props = "prop_pitcher_01_cs"},
                {name = "Bouteille sachet", props = "prop_cs_beer_bot_40oz"},
                {name = "Verre", props = "ex_p_ex_tumbler_04_empty"},
                {name = "Chips", props = "prop_food_chips"},
                {name = "Cacahuetes", props = "prop_peanut_bowl_01"},
                {name = "Verre de café", props = "p_ing_coffeecup_01"},
                {name = "Mug", props = "v_club_vu_coffeemug2"},
                {name = "Verre carton", props = "ng_proc_sodacup_01a"},
                {name = "Cacahuetes", props = "prop_peanut_bowl_01"},
                {name = "Assiette", props = "v_res_mplatelrg"},
                {name = "Assiette pleine", props = "prop_cs_plate_01"},
                {name = "Fourchette", props = "prop_cs_fork"},
                {name = "Plateau repas", props = "prop_food_tray_03"},
            }, 
        },
        {
            NameMenu = "Extérieure",
            Lists = {
                {name = "Banc de Parc", props = "prop_bench_01b"},
                {name = "Poubelle", props = "prop_bin_07b"},
                {name = "chaise camping", props = "hei_prop_hei_skid_chair"},
                {name = "chaise jardin", props = "gr_dlc_gr_yacht_props_seat_01"},
                {name = "chaise blanche", props = "prop_table_04_chr"},
                {name = "chaise plastique", props = "prop_table_03b_chr"},
                {name = "Table grise", props = "gr_dlc_gr_yacht_props_table_03"},
                {name = "Feu de bois", props = "gr_prop_gr_hobo_stove_01"},
            }, 
        },
    },
    ['Translate'] = { 
        ["R"] = { -- Header RageUi Translate
            menu_main_title = "MENU PROPS",
            menu_main_description = "Décorer l'extérieur",

            menu_playersprops_title = "MES PROPS",
            menu_playersprops_description = "Liste de tous vos props",

            menu_playerspropsaction_title = "ACTIONS",
            menu_playerspropsaction_description = "Que souhaitez-vous faire sur votre prop ?",

            menu_adminactions_title = "ADMIN - ACTIONS",
            menu_adminactions_description = "Gestion du prop joueur",

            menu_allprops_title = "TOUS LES PROPS",
            menu_allprops_description = "Liste des props des joueurs",

            menu_allcategory_title = "LISTE PRÉDÉFINIE",
            menu_allcategory_description = "Choisissez la catégorie que vous souhaitez",

            menu_category_title = "PRÉDÉFINI",
            menu_category_description = "Choisir mon prop dans ma liste prédéfinie",
        },
        ["B"] = { -- Button Text Translate
            separator_error_nocitizenid = "~r~ERREUR : Impossible de récupérer le Citizen ID",

            button_title_adminalllists = "~r~(ADMIN) ~s~Liste des props des joueurs",
            button_rightlabel_adminalllists = "→→→",

            button_title_playerprops = "Voir la liste de mes props",
            button_rightlabel_playerprops = "→→→",

            button_title_category = "Voir la liste de mes props",
            button_rightlabel_category = "→→→",

            button_title_admincustomprops = "~r~(Admin)~s~ Ajouter le prop via son nom",
            button_description_admincustomprops = "~c~https://forge.plebmasters.de/objects/",
            button_rightlabel_admincustomprops = "→→→",

            button_title_predefinedprops = "props", -- Job Catégory Count Props
            button_rightlabel_predefinedprops = "→→→",

            separator_category_name = "Catégorie :",
            button_rightlabel_categoryprop = "→→→",

            separator_nopropsplaced = "~r~Vous n'avez placé aucun prop",

            button_title_gizmo = "Déplacer avec Gizmo",
            button_rightlabel_gizmo = "→→→",

            button_title_deleteprops = "Supprimer le prop",
            button_rightlabel_deleteprops = "→→→",

            button_title_tp_prop = "Se téléporter vers le prop",
            button_rightlabel_tp_prop = "→→→",

            separator_nopropsfound = "Aucun prop trouvé",
        },
        
        input_customprops_title = "Objet personnalisé",
        input_customprops_label = "Nom du prop",

        prop_placed = "~g~Prop placé n°%s",
        prop_notfound = "~r~Le prop n°%s n'a pas été retrouvé.",

        prop_coords_edited = "~g~Le prop a été correctement déplacé.",

        menu_already_open = "~r~Le menu est déjà ouvert.",
        prop_whitelist = "~r~Vous n'avez pas le métier requis pour placer des props.",
        limit_reached = "~r~Vous avez atteint votre limite de props.",
        player_in_vehicle = "~r~Veuillez sortir de votre véhicule.",
        automatic_deleted = "~o~Votre prop n°%s a été supprimé automatiquement.",
        prop_suspect = "~o~L'objet que vous essayez de faire apparaître ne remplit pas nos conditions.",
        prop_deleted = "~g~Le prop n°%s a été correctement supprimé.",
        prop_not_deleted = "~o~Le serveur n'a pas réussi à supprimer le prop n°%s.",        
        prop_blacklisted = "~r~Le prop que vous essayez de placer est blacklisté.",
    }
} 

Différence : ESCROW & OPEN-SOURCE

🇫🇷 La version escrow reste assez simple, comme montré dans la vidéo. Elle est vraiment spécialement conçue pour la configuration du script. Les modifications plus poussées ne vous sont pas fournies, bien que je pense vous avoir donné accès à de nombreuses modifications. C'est pourquoi le prix reste relativement bas pour la qualité de ce dernier.

🇺🇸 The escrow version remains quite simple, as shown in the video. It is specifically designed for script configuration. More advanced modifications are not provided, although I believe I have given you access to many adjustments. Hence, the price remains relatively low considering its quality.

Mis Ă  jour

Ce contenu vous a-t-il été utile ?