>
Guide 2026-03-04

Scripts de pêche et chasse pour FiveM

OntelMonke

OntelMonke

Administrateur et développeur chez Agency Scripts

Mécaniques de base de la pêche

Un système de pêche offre l'une des activités secondaires les plus relaxantes et les plus enrichissantes sur un serveur de jeu de rôle. La boucle principale consiste à équiper une canne à pêche, à s'approcher d'un plan d'eau valide, à lancer la ligne, à attendre une bouchée et à terminer un mini-jeu de capture. Commencez par définir les zones de pêche sous forme de zones polygonales ou de cercles basés sur un rayon qui couvrent les lacs, les rivières, le littoral océanique et les jetées. Chaque zone devrait avoir son propre tableau de population de poissons avec des espèces qui appartiennent logiquement à cet environnement : des espèces d'eau douce comme le bar et la truite dans les lacs, des espèces d'eau salée comme le thon et le requin au large, et des poissons spécifiques aux rivières comme le saumon près de l'eau courante. Lorsque le joueur lance sa ligne, démarrez un chronomètre aléatoire entre un temps d'attente minimum et maximum, influencé par l'appât utilisé, l'heure de la journée, les conditions météorologiques et le niveau de compétence de pêche du joueur. Une compétence plus élevée réduit le temps d'attente et augmente les chances d'attraper des espèces rares. L'animation de diffusion doit utiliser TaskStartScenarioInPlace avec un scénario de pêche pour que le personnage du joueur tienne visuellement une canne et se tienne au bord de l'eau.

Le mini-jeu Catch

Le mini-jeu est ce qui sépare un système de pêche engageant d'un script AFK ennuyeux. Concevez un mini-jeu basé sur les compétences qui apparaît sous la forme d'une superposition NUI lorsqu'un poisson mord. Une approche populaire est le mécanisme de barre mobile dans lequel un marqueur oscille d'avant en arrière sur une jauge et le joueur doit appuyer sur une touche lorsque le marqueur se trouve dans une zone cible en surbrillance. La taille de la zone cible évolue en fonction du niveau de difficulté du poisson, les espèces communes offrant une fenêtre généreuse et les poissons légendaires nécessitant un timing précis. Ajoutez plusieurs tours à une seule tentative de capture, où chaque pression de touche réussie rapproche le poisson et un échec lui permet de nager plus loin. Implémentez un tensiomètre qui augmente au fur et à mesure que le joueur tourne et diminue lorsqu'il laisse la ligne reposer, la ligne se cassant si la tension dépasse la valeur maximale de la canne. Les différents niveaux de cannes devraient avoir des seuils de tension plus élevés, donnant aux joueurs une raison d'améliorer leur équipement à mesure qu'ils progressent dans l'arbre de compétences de pêche.

-- Fish loot table configuration
Config.FishingZones = {
    ['alamo_sea'] = {
        label = 'Alamo Sea',
        center = vector3(482.12, 3614.89, 33.17),
        radius = 200.0,
        fishTable = {
            { item = 'fish_bass',       label = 'Largemouth Bass',  weight = {1.5, 4.2},  chance = 35, difficulty = 1, price = 45 },
            { item = 'fish_catfish',    label = 'Channel Catfish',  weight = {2.0, 8.5},  chance = 25, difficulty = 2, price = 65 },
            { item = 'fish_bluegill',   label = 'Bluegill',         weight = {0.3, 1.2},  chance = 30, difficulty = 1, price = 20 },
            { item = 'fish_golden',     label = 'Golden Trout',     weight = {1.0, 3.0},  chance = 8,  difficulty = 4, price = 250 },
            { item = 'item_boot',       label = 'Old Boot',         weight = {0.5, 0.5},  chance = 2,  difficulty = 1, price = 0 },
        },
        requiredBait = { 'bait_worm', 'bait_minnow', 'bait_lure' },
    },
}

Zones de chasse et frai des animaux

La chasse nécessite une approche plus dynamique que la pêche car les animaux sont des entités visibles et mobiles que les joueurs doivent suivre, traquer et tirer. Définissez des zones de chasse dans les zones sauvages comme les forêts du comté de Blaine, les contreforts du mont Chiliad et les régions désertiques autour de Sandy Shores. Dans chaque zone, reproduisez des animaux en utilisant les modèles animaux natifs de GTA à intervalles contrôlés. Utiliser CreatePed avec des hachages de modèles animaux et confiez-leur des tâches d'errance en utilisant TaskWanderStandard ils se déplacent donc naturellement dans les limites de la zone. Contrôlez soigneusement la densité d'apparition pour éviter les problèmes de performances : limitez chaque zone à 5 à 8 animaux actifs à la fois par joueur, et n'engendrez des animaux que lorsqu'un joueur possédant un permis de chasse ou une arme se trouve à une distance raisonnable de la zone. Faites disparaître les animaux proprement lorsqu'aucun chasseur n'est à proximité pour libérer des emplacements d'entité. Regroupez les animaux en troupeaux pour des espèces comme les cerfs, où en tirer un fait fuir les autres en utilisant TaskSmartFleePed, créant une expérience de chasse réaliste qui récompense le patient qui traque plutôt que de courir et de tirer.

Tables de butin et récolte

Lorsqu’un joueur réussit à tuer un animal, il ne doit pas simplement recevoir des objets instantanément. Implémentez un mécanisme de récolte où le joueur s'agenouille à côté de la carcasse de l'animal et effectue une animation de dépeçage qui dure plusieurs secondes, pendant lesquelles il est vulnérable. Le butin lâché dépend de l'espèce animale, de l'arme utilisée et du placement du tir. Un tir net dans la tête avec un fusil donne plus de viande intacte et une peau immaculée, tandis que la pulvérisation sur l'animal avec une arme automatique endommage la peau et détruit une partie de la viande. Suivez le placement du tir en comparant la position des dégâts mortels aux coordonnées de l'os de la tête de l'animal. Chaque animal doit laisser tomber une combinaison de viande crue, une peau ou une peau et des éléments secondaires comme des bois, des plumes ou de la graisse selon l'espèce. Utilisez les métadonnées des articles pour stocker le niveau de qualité de chaque article récolté, ce qui affecte le prix de vente et la qualité des produits fabriqués lorsqu'ils sont traités par un maroquinier ou un cuisinier.

-- Server-side harvesting logic
RegisterNetEvent('hunting:harvest')
AddEventHandler('hunting:harvest', function(netId, weaponHash, boneHit)
    local src = source
    local entity = NetworkGetEntityFromNetworkId(netId)
    if not DoesEntityExist(entity) then return end

    local model = GetEntityModel(entity)
    local animalData = Config.Animals[model]
    if not animalData then return end

    -- Determine quality based on weapon and hit location
    local quality = 'poor'
    if boneHit == 'head' then
        if IsCleanWeapon(weaponHash) then
            quality = 'pristine'
        else
            quality = 'good'
        end
    elseif IsCleanWeapon(weaponHash) then
        quality = 'good'
    end

    local priceMultiplier = Config.QualityMultipliers[quality] -- pristine=1.5, good=1.0, poor=0.5

    -- Give loot items
    for _, loot in ipairs(animalData.lootTable) do
        if math.random(100) <= loot.chance then
            local count = math.random(loot.min, loot.max)
            exports.ox_inventory:AddItem(src, loot.item, count, {
                quality = quality,
                animal = animalData.label,
                weight = math.random(loot.weightMin * 10, loot.weightMax * 10) / 10,
            })
        end
    end

    -- Delete carcass after harvesting
    DeleteEntity(entity)
    TriggerClientEvent('hunting:harvested', src)
end)

Système de progression des compétences

Un système de progression maintient la pêche et la chasse intéressantes sur le long terme en récompensant les joueurs dévoués avec des améliorations tangibles. Suivez des niveaux de compétence distincts pour la pêche et la chasse, chacun augmentant grâce aux captures ou aux victimes réussies. À mesure que les compétences de pêche augmentent, le chronomètre de morsure raccourcit, les poissons rares deviennent plus courants dans la table de butin, la zone cible du mini-jeu s'élargit légèrement et le joueur débloque l'accès à des sites de pêche premium fermés derrière des seuils de compétence. Pour la chasse, des niveaux de compétence plus élevés permettent au joueur de voir les traces d'animaux comme des marqueurs au sol subtils, d'augmenter la portée de détection pour repérer les animaux, de réduire le rayon de bruit lors du déplacement dans les broussailles et de débloquer la possibilité d'utiliser des cris et des odeurs qui attirent des espèces spécifiques vers l'emplacement du chasseur. Stockez l'XP de compétence dans ton base de données et calculez le niveau à l'aide d'une formule de mise à l'échelle où chaque niveau successif nécessite plus d'XP que le précédent, empêchant les joueurs d'atteindre leur maximum trop rapidement tout en offrant une progression constante et gratifiante au cours de chaque session de jeu.

Équipement et mises à niveau

Les niveaux d'équipement donnent aux joueurs des objectifs à court terme et des objectifs de dépenses significatifs dans le cadre de l'économie de la pêche et de la chasse. Pour la pêche, proposez une progression allant des cannes en bois de base qui ne peuvent attraper que des poissons communs, aux cannes en fibre de verre avec une meilleure gestion de la tension, en passant par les cannes en fibre de carbone qui réduisent la difficulté de capture et augmentent les chances de poissons rares. Associez des cannes à des rouleaux qui affectent la rapidité avec laquelle le joueur peut récupérer la ligne pendant le mini-jeu. Les types d'appâts doivent influencer directement les espèces de poissons qui peuvent être capturées : des vers pour l'eau douce en général, des ménés pour les poissons prédateurs, des leurres spécialisés pour les espèces rares et des appâts de qualité supérieure qui doublent le taux de morsure. Pour la chasse, offrez des avantages spécifiques aux armes : un arc à poulies est silencieux mais nécessite une portée plus proche, un fusil à verrou est idéal pour tuer proprement à distance et un fusil de chasse est efficace pour les oiseaux mais endommage la peau des animaux plus gros. Ajoutez des accessoires de chasse comme des jumelles pour une portée de repérage étendue, des combinaisons ghillie qui réduisent le rayon de détection du joueur par les animaux et un couteau de chasse qui accélère l'animation de récolte. Vendez tout l'équipement via un PNJ magasin d'appâts à proximité des lieux de pêche et une pourvoirie de chasse dans les zones rurales, créant ainsi des points de rassemblement naturels où les amateurs de plein air peuvent se rencontrer et partager des conseils.

Vente de captures et économie de plein air

Connectez la pêche et la chasse à l'économie plus large de ton serveur en fournissant plusieurs points de vente pour vendre les produits récoltés. Un PNJ du marché aux poissons devrait acheter tous les poissons aux prix de base, les spécimens rares et lourds bénéficiant de tarifs plus élevés. Un PNJ boucher achète de la viande crue et des peaux d’animaux. Au-delà des ventes de PNJ, activez les échanges entre joueurs afin qu'un pêcheur expérimenté puisse fournir du poisson frais à un restaurateur, ou qu'un chasseur puisse vendre des peaux immaculées à un artisan du cuir qui les transformera en vêtements ou en meubles. Mettez en place un système de demande quotidienne dans lequel certains types de poisson ou de viande valent plus certains jours, encourageant les joueurs à diversifier leurs activités plutôt que d'élever les mêmes espèces lucratives de manière répétée. Ajoutez un panneau de trophées sur les lieux de pêche et de chasse qui affiche les plus gros poissons capturés et les animaux les plus rares récoltés chaque semaine, les détenteurs de records recevant des bonus en espèces ou des récompenses cosmétiques exclusives. Pensez aux événements saisonniers comme des tournois de pêche ou des compétitions de chasse qui rassemblent la communauté autour de ces activités de plein air.

Optimisation des performances et du frai

Les systèmes extérieurs qui génèrent des entités nécessitent une optimisation minutieuse pour éviter de dégrader les performances du serveur. Pour le frai des animaux, utilisez un système basé sur la proximité qui crée des enclos pour animaux uniquement lorsqu'un chasseur se trouve dans une plage configurable, généralement de 150 à 200 mètres. Implémentez un budget d'entité global qui plafonne le nombre total d'animaux de chasse sur l'ensemble du serveur, en répartissant le budget entre les zones actives en fonction du nombre de chasseurs. Utilisez des pools d'entités qui recyclent les animaux disparus plutôt que d'en créer de nouveaux, réduisant ainsi les frais généraux liés aux opérations répétées. CreatePed appels. Pour la pêche, évitez complètement de générer des entités de poisson visibles, car elles ne servent à rien et gaspillent des emplacements d'entité. Utilisez plutôt des effets de particules ou des animations subtiles de la surface de l’eau pour indiquer un poisson sur la ligne. Cachez les configurations de zone dans la mémoire partagée plutôt que de les lire depuis la base de données à chaque interaction. Pour les deux systèmes, la base de données par lots écrit en accumulant les gains, les captures et les suppressions XP en mémoire et en les vidant dans la base de données toutes les 30 à 60 secondes plutôt qu'à chaque événement individuel. Cela réduit considérablement le volume de requêtes dans la base de données pendant les heures de pointe, lorsque de nombreux joueurs pêchent ou chassent simultanément.

Partager cet article

Prêt à améliorer votre serveur ?

Découvrez nos scripts FiveM premium dans la boutique Agency Scripts ou rejoignez notre communauté Discord pour le support et les mises à jour.