Importer des fichiers audio créés artisanalement et les spatialiser dans GTA V
10 avril 2026
Dans ce tutoriel, nous allons voir comment importer des fichiers audio créés artisanalement et les spatialiser dans GTA V grâce à FiveM et au mod xSound.
Nous ajouterons plus tard la méthode native audio.
Prérequis
- GTA V installé
- FiveM installé avec un serveur local fonctionnel
- Un mod installé (voir le tutoriel de création de mod et de script avec FiveM)
Installation du mod xSound
- Télécharger la dernière version de xSound depuis le dépôt GitHub.
- Décompresser l’archive, renommer le dossier obtenu en xsound et le placer dans le répertoire resources de votre serveur, par exemple : C:\Users<user>\Desktop\txData\FiveMBasicServerCFXDefault_BC1780.base\resources\xsound
- Ouvrir le fichier de configuration du serveur (server.cfg) et ajouter la ligne suivante pour s’assurer du chargement du mod : ensure xsound
Le mod est maintenant correctement installé.
Préparer le script audio dans le serveur FiveM
(optionnel si vous n’avez pas encore de dossier de script)
- Dans le répertoire resources de votre serveur, créez un nouveau dossier nommé audio_mod (ou le nom de votre choix).
- Ajoutez un fichier fxmanifest.lua dans ce dossier avec le contenu suivant :
fx_version 'cerulean'
game 'gta5'
author 'An awesome dude'
description 'Audio spatialisation demo'
version '1.0.0'
files {
'sounds/sound-1.wav'
}
client_script 'audio_script.lua'
- Créez le fichier audio_script.lua (dans le même dossier) et collez‑y le code ci‑dessous :
local spawnPos = vector3(-22.28888, 22.04243, 72.0)
local soundPos1 = vector3(spawnPos.x, spawnPos.y - 5.0, spawnPos.z - 1.0) -- ajustez `triangleWidth` si besoin
local xSound = exports.xsound
Citizen.CreateThread(function()
-- Gestion du spawn du joueur
exports.spawnmanager:setAutoSpawnCallback(function()
exports.spawnmanager:spawnPlayer({
x = spawnPos.x,
y = spawnPos.y,
z = spawnPos.z,
model = 'A_M_M_Golfer_01'
}, function()
print("Player spawned at custom location with custom model.")
end)
end)
exports.spawnmanager:setAutoSpawn(true)
exports.spawnmanager:forceRespawn()
-- Lecture du son spatialisé
xSound:PlayUrlPos("mySound", "https://cfx-nui-custom_code/sounds/sound-1.wav", 1.0, soundPos1, true)
xSound:Distance("mySound", 20.0)
xSound:setSoundDynamic("mySound", true)
end)
-- Thread séparé pour afficher les marqueurs de debug
Citizen.CreateThread(function()
while true do
Wait(0)
-- Marqueur 1 (rouge)
DrawMarker(1, soundPos1.x, soundPos1.y, soundPos1.z, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1.0, 1.0, 1.0, 255, 0, 0, 100, false, true, 2, false, nil, nil, false)
-- Cercle de distance d’écoute (rayon 20 m)
local radius = 20.0
local segments = 64
local angle = (2 * math.pi) / segments
for i = 0, segments do
local x1 = soundPos1.x + radius * math.cos(i * angle)
local y1 = soundPos1.y + radius * math.sin(i * angle)
local x2 = soundPos1.x + radius * math.cos((i + 1) * angle)
local y2 = soundPos1.y + radius * math.sin((i + 1) * angle)
DrawLine(x1, y1, soundPos1.z + 0.2, x2, y2, soundPos1.z + 0.2, 255, 0, 0, 100)
end
end
end)
Attention : lorsqu’on veut faire référence à un fichier dans notre script, le chemin doit être relatif au serveur et au mod, en suivant la convention suivante :
https://cfx-nui-${resourceName}/${filepath}Dans mon cas, le chemin correct est :https://cfx-nui-custom_code/sounds/sound-1.wav
- Enregistrez le fichier audio (sound-1.wav) dans le sous‑dossier sounds du répertoire audio_mod.
- Ouvrez le fichier server.cfg (à la racine du serveur) et ajoutez la ligne suivante :
start audio_mod
Test du script
- Lancez votre serveur FiveM.
- Connectez‑vous avec le client FiveM.
- Le joueur devrait apparaître à la position définie, et le son sound-1.wav sera joué de façon spatiale autour du point soundPos1.
- Les marqueurs rouges et le cercle de 20 m vous permettront de visualiser la zone d’écoute.





