Death·Installation

Installation

DS-Death remplace la boucle mort / knockout / revive par défaut de ton ambulance job. L’installation se fait presque entièrement en drag-and-drop, avec quelques petits patchs sur esx_ambulancejob ou qb-ambulancejob pour que le flux de revive existant passe la main à DS-Death.

Télécharger

Télécharge le script depuis portal.cfx.re. Assure-toi d’être connecté avec le compte FiveM que tu as utilisé pour l’achat.

Extraire

Décompresse l’archive et dépose le dossier DS-Death obtenu n’importe où dans le dossier resources de ton serveur.

Dépendances
DS-Death nécessite mysql-async. ESX et QBCore sont tous deux pris en charge et détectés automatiquement à l’exécution.

Exécuter le SQL

Exécute le fichier SQL correspondant à ton framework. Il ajoute une seule colonne ds_death, utilisée pour conserver l’état de mort entre les déconnexions.

ESX

Exécute INSTALLATION_GUIDE/ESX.sql dans ta base de données : ajoute ds_death TINYINT(1) à la table users.

QBCore

Exécute INSTALLATION_GUIDE/QBCore.sql dans ta base de données : ajoute ds_death TINYINT(1) à la table players.

Installer l’item de revive

DS-Death nécessite un item aidkit pour réanimer les joueurs en knockout. Ajoute-le à l’inventaire que vous utilisez.

ESX (inventaire par défaut)

Exécute INSTALLATION_GUIDE/INSTALL_ITEM/ESX/item.sql dans ta base de données pour enregistrer l’item.

ESX (ox_inventory)

Ouvre INSTALLATION_GUIDE/INSTALL_ITEM/ESX/OX_INVENTORY_ITEM.md, copiez le bloc et colle-le dans ox_inventory/data/items.lua :

ox_inventory/data/items.lua
['aidkit'] = {
    label = 'Aid Kit',
    weight = 100,
    stack = true,
    consume = 0,
    allowArmed = true
},

QBCore

Ouvre INSTALLATION_GUIDE/INSTALL_ITEM/QBCORE/item.md, copiez le bloc et colle-le dans qb-core/shared/items.lua :

qb-core/shared/items.lua
['aidkit'] = {['name'] = 'aidkit', ['label'] = 'Aid Kit', ['weight'] = 0, ['type'] = 'item', ['image'] = 'aidkit.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Useful to revive knocked people'},
Utiliser un autre item
Si tu as déjà un item médical que tu préfères utiliser, modifie ItemRevive et ItemLabel dans config.lua au lieu d’installer aidkit.

Patcher ton ambulance job

DS-Death reprend la gestion du flux mort / revive : les handlers existants dans esx_ambulancejob / qb-ambulancejob doivent donc être supprimés ou redirigés. Les blocs exacts à supprimer et à remplacer sont fournis dans la resource :

ESX (esx_ambulancejob)

Suis INSTALLATION_GUIDE/ESX.txt, trois modifications au total :

  • esx_ambulancejob/client/main.lua : supprime (ou commente) le handler esx:onPlayerSpawn qui réinitialise isDead.
  • esx_ambulancejob/client/main.lua : remplace le handler de l’event esx_ambulancejob:revive par une ligne unique qui passe la main à DS-Death :
    esx_ambulancejob/client/main.lua
    RegisterNetEvent('esx_ambulancejob:revive')
    AddEventHandler('esx_ambulancejob:revive', function()
        TriggerEvent('DS-Death:revive')
    end)
  • esx_ambulancejob/client/job.lua : dans la fonction revivePlayer, remplace if IsPedDeadOrDying(closestPlayerPed, 1) then par if closestPlayerPed then, pour que l’état knockout de DS-Death compte comme réanimable.

QBCore (qb-ambulancejob)

Suis INSTALLATION_GUIDE/QBCORE.txt, deux modifications :

  • qb-ambulancejob/server/main.lua : supprime (ou commente) le bloc QBCore.Commands.Add("revive", ...) existant. DS-Death enregistre le sien.
  • qb-ambulancejob/client/dead.lua : supprime le handler gameEventTriggered qui gère le laststand / le timer de mort. DS-Death remplace ce flux.
Sauvegarde avant de patcher
Ces patchs modifient des resources du framework. Conserve une copie du dossier esx_ambulancejob / qb-ambulancejob d’origine avant de l’éditer, pour pouvoir revenir en arrière si autre chose dans ton stack dépend de l’ancien comportement.

Accorder les permissions admin

QBCore

Ajoute la permission ace à ton server.cfg pour que les admins puissent utiliser les commandes de revive :

server.cfg
add_ace group.admin ds_death allow

ESX

Les permissions passent par le tableau AuthorizedGroup dans config.lua. La valeur par défaut {'admin'} couvre déjà la plupart des configurations.

Démarrer la resource

Ajoute le script à ton server.cfg :

server.cfg
ensure DS-Death
Ordre de chargement
Assure-toi que ton framework (ESX / QBCore) et le ambulance job patché démarrent avant DS-Death dans l’ordre de chargement.

Configurer

Ouvre config.lua et adapte le script à ton serveur. Les réglages les plus utiles :

  • KnockoutTime / RespawnTime : combien de temps les joueurs restent en knockout, et à partir de quand le respawn devient possible.
  • HeadShotDeath : ignore l’état knockout et tue instantanément sur un headshot.
  • RespawnPosition / RespawnSamePos / RespawnCost : où les joueurs réapparaissent, et si le respawn coûte du liquide ou de l’argent en banque.
  • CombatLogging : soit garder le joueur mort à la reconnexion (CheckDeath), soit le faire réapparaître automatiquement (RespawnOnJoin).
  • RemoveItemsAfterRPDeath : fait perdre argent, armes et items à la mort RP, avec une whitelist KeepItems pour des choses comme les documents.
  • Progressbar : NATIVE, RPROGRESS ou CUSTOM (branche la tienne dans CustomProgress / StopCustomProgress).
  • EMSCall : place le trigger d’appel de ton téléphone dans cette fonction pour que l’appel EMS in-game passe par ton téléphone plutôt que par la notification par défaut.
  • EnableLogs : active les logs via webhook Discord, à configurer dans webhooks.lua.
Hooks personnalisés
OnKnocked, OnDeath, OnRevive et OnRespawn dans config.lua sont des fonctions vides, prêtes à accueillir tes propres triggers/exports. CanDie permet de désactiver la boucle de mort sous condition : pratique pour les zones de minijeu, les événements airsoft ou les arènes PvP.

Toujours bloqué ?

Ouvre un ticket sur notre Discord et on te dépanne.

Rejoindre le Discord →