Jeux Tarifs Pro Infrastructure Guides Blog Partenariat À propos

Installer VORP Core sur RedM : le guide complet (installation, admin, objets, métiers, API)

Installer le framework roleplay VORP Core sur un serveur RedM avec txAdmin, devenir administrateur, ajouter des objets et des métiers, et écrire des scripts avec l'API de VORP (argent, inventaire, callbacks), avec des exemples complets.

3 min de lecture Mis à jour le 21 octobre 2026

VORP Core est le framework roleplay le plus utilisé sur RedM. Il gère les comptes, les personnages, l'argent (dollars et or), l'inventaire, les métiers, la banque, les écuries et bien plus. Ce guide explique comment l'installer, l'administrer et écrire des scripts qui l'utilisent.

Ce que contient VORP

RessourceRôle
vorp_coreLe cœur : comptes, personnages, argent, notifications, API
vorp_characterCréation et choix du personnage
vorp_inventoryInventaire, objets, armes
vorp_menuMenus utilisés par les autres ressources
vorp_bankingBanques des villes
vorp_stables ou équivalentÉcuries et chevaux possédés
vorp_adminMenu d'administration en jeu
oxmysqlLien avec la base de données

Installer VORP avec txAdmin

C'est la méthode conseillée : txAdmin télécharge les versions compatibles de chaque ressource, crée les tables et écrit le server.cfg.

  1. Ouvrez txAdmin. Au premier lancement, l'assistant démarre seul. Sinon, créez un nouveau profil de serveur.
  2. Dans Popular Recipes, choisissez VORP Core.
  3. Gardez les identifiants de base de données proposés : sur EsoterHost, ils sont déjà remplis avec la base MariaDB de votre serveur.
  4. Collez votre clé de licence Cfx.re (cfxk_…) et lancez le déploiement.
  5. Démarrez le serveur, connectez-vous et créez votre personnage.
Si l'installation s'arrête en erreur

Le plus souvent, GitHub a limité les téléchargements. Attendez quelques minutes et relancez le déploiement. Si une ressource précise échoue, notez son nom dans le journal de txAdmin.

L'ordre des ressources

Si vous modifiez le server.cfg à la main, gardez cet ordre : les dépendances d'abord, le cœur ensuite, puis les modules.

resources.cfg
ensure oxmysql
ensure vorp_core
ensure vorp_menu
ensure vorp_inputs
ensure vorp_character
ensure vorp_inventory
ensure [vorp]
ensure [scripts]

Devenir administrateur

VORP utilise deux niveaux de droits.

1. Le groupe VORP, enregistré dans la table users :

admin.sql
-- Votre identifiant Steam ou license, visible dans la table users après votre première connexion
UPDATE users SET `group` = 'admin' WHERE identifier = 'steam:110000112345678';

Reconnectez-vous ensuite. Le groupe admin donne accès aux commandes de VORP (/addmoney, /additem, /setjob…) et au menu d'administration.

2. Les droits ACE de FXServer, dans le server.cfg, pour les commandes de vos propres scripts :

permissions.cfg
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1234567 group.admin

Ajouter un objet

Les objets se déclarent dans la table items de la base de données. Les colonnes exactes varient selon la version de VORP : regardez une ligne existante et suivez son modèle.

objets.sql
INSERT INTO items (item, label, `limit`, can_remove, type, usable, `desc`) VALUES
  ('pain', 'Pain', 10, 1, 'item_standard', 1, 'Un pain frais du boulanger'),
  ('whisky', 'Whisky', 5, 1, 'item_standard', 1, 'Une bouteille de whisky du saloon'),
  ('peau_lapin', 'Peau de lapin', 20, 1, 'item_standard', 0, 'À vendre au trappeur');

Ajoutez l'image de chaque objet dans vorp_inventory/html/img/items/ avec le même nom (pain.png), puis redémarrez le serveur.

Rendre un objet utilisable

server.lua
local VORPcore = exports.vorp_core:GetCore()

exports.vorp_inventory:registerUsableItem('pain', function(data)
  local src = data.source
  exports.vorp_inventory:closeInventory(src)
  exports.vorp_inventory:subItem(src, 'pain', 1)
  TriggerClientEvent('mon-script:manger', src)
  VORPcore.NotifyRightTip(src, 'Vous mangez un morceau de pain', 3000)
end)
client.lua
RegisterNetEvent('mon-script:manger', function()
  local ped = PlayerPedId()
  SetEntityHealth(ped, math.min(GetEntityHealth(ped) + 20, GetEntityMaxHealth(ped)))
end)

L'API de VORP pour vos scripts

Récupérez l'objet principal une fois, en haut de vos fichiers serveur :

server.lua
local VORPcore = exports.vorp_core:GetCore()

Le joueur et son personnage

server.lua
local user = VORPcore.getUser(source)          -- le compte du joueur
if not user then return end
local perso = user.getUsedCharacter            -- le personnage joué

print(perso.firstname, perso.lastname)         -- nom du personnage
print(perso.money, perso.gold)                 -- dollars et or
print(perso.job, perso.jobGrade)               -- métier et grade
print(perso.charIdentifier)                    -- identifiant unique du personnage

L'argent

server.lua
perso.addCurrency(0, 25.0)      -- ajoute 25 $  (0 = dollars, 1 = or, 2 = points de rôle)
perso.removeCurrency(0, 10.0)   -- retire 10 $
perso.addCurrency(1, 2)         -- ajoute 2 lingots d'or

L'inventaire

server.lua
local nb = exports.vorp_inventory:getItemCount(source, nil, 'whisky')
exports.vorp_inventory:addItem(source, 'whisky', 1)
exports.vorp_inventory:subItem(source, 'whisky', 1)

-- Vérifier la place avant d'ajouter
local peut = exports.vorp_inventory:canCarryItem(source, 'whisky', 1)

Les métiers

server.lua
perso.setJob('sheriff')          -- change le métier
perso.setJobGrade(2)             -- change le grade

Les notifications

server.lua
VORPcore.NotifyRightTip(source, 'Message à droite de l\'écran', 4000)
VORPcore.NotifyLeft(source, 'Titre', 'Message à gauche', 'menu_textures', 'stamp_locked_rank', 4000)
VORPcore.NotifyObjective(source, 'Objectif affiché en bas', 4000)

Les callbacks

Un callback permet au client de demander une information au serveur et d'attendre la réponse.

server.lua
VORPcore.Callback.Register('mon-script:solde', function(source, cb)
  local user = VORPcore.getUser(source)
  if not user then return cb(0) end
  cb(user.getUsedCharacter.money)
end)
client.lua
local VORPcore = exports.vorp_core:GetCore()

RegisterCommand('solde', function()
  local solde = VORPcore.Callback.TriggerAwait('mon-script:solde')
  TriggerEvent('chat:addMessage', { args = { 'Banque', ('Vous avez %.2f $ sur vous'):format(solde) } })
end, false)
Versions de VORP

VORP évolue régulièrement et certaines fonctions changent de nom entre les versions. Si une fonction de ce guide n'existe pas sur votre serveur, consultez la documentation officielle sur docs.vorp-core.com, ou ouvrez le fichier vorp_core/server/ de votre installation.

Exemple complet : vendre des peaux au trappeur

Un script VORP complet : le joueur approche du trappeur, appuie sur E, et vend toutes ses peaux de lapin.

config.lua
Config = {}
Config.Trappeur = vector3(-334.3, 773.2, 116.25)   -- Valentine
Config.Objet = 'peau_lapin'
Config.PrixUnitaire = 1.5
client.lua
local TOUCHE_E = 0xCEFD9220

local function texte3D(c, t)
  local ok, x, y = GetScreenCoordFromWorldCoord(c.x, c.y, c.z)
  if not ok then return end
  SetTextScale(0.35, 0.35)
  SetTextColor(255, 255, 255, 230)
  SetTextCentre(true)
  DisplayText(CreateVarString(10, 'LITERAL_STRING', t), x, y)
end

CreateThread(function()
  while true do
    local attente = 1000
    local d = #(GetEntityCoords(PlayerPedId()) - Config.Trappeur)
    if d < 2.0 then
      attente = 0
      texte3D(Config.Trappeur + vector3(0.0, 0.0, 1.0), 'E : vendre vos peaux')
      if IsControlJustReleased(0, TOUCHE_E) then
        TriggerServerEvent('trappeur:vendre')
        Wait(1000)
      end
    end
    Wait(attente)
  end
end)
server.lua
local VORPcore = exports.vorp_core:GetCore()

RegisterNetEvent('trappeur:vendre', function()
  local src = source
  if #(GetEntityCoords(GetPlayerPed(src)) - Config.Trappeur) > 4.0 then return end

  local user = VORPcore.getUser(src)
  if not user then return end

  local nb = exports.vorp_inventory:getItemCount(src, nil, Config.Objet)
  if nb <= 0 then
    return VORPcore.NotifyRightTip(src, "Vous n'avez rien à vendre", 3000)
  end

  exports.vorp_inventory:subItem(src, Config.Objet, nb)
  local total = nb * Config.PrixUnitaire
  user.getUsedCharacter.addCurrency(0, total)
  VORPcore.NotifyRightTip(src, ('%d peaux vendues pour %.2f $'):format(nb, total), 4000)
end)
fxmanifest.lua
fx_version 'cerulean'
game 'rdr3'
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'
lua54 'yes'

dependencies { 'vorp_core', 'vorp_inventory' }
shared_script 'config.lua'
client_script 'client.lua'
server_script 'server.lua'

Problèmes fréquents

SymptômeCause probableSolution
Écran noir après la création du personnagevorp_character démarré avant vorp_coreVérifiez l'ordre des ensure
No such export GetCore in resource vorp_coreAncienne version de VORPMettez VORP à jour, ou utilisez l'ancienne syntaxe de votre version
Objet invisible dans l'inventaireImage manquante ou nom différentAjoutez nom.png dans vorp_inventory/html/img/items/
Commandes d'administration refuséesGroupe VORP non définiPassez votre compte en admin dans la table users et reconnectez-vous
Argent perdu au redémarrageArrêt brutal du serveurArrêtez toujours le serveur depuis txAdmin ou le panel

Pour aller plus loin


EsoterHost n'est ni approuvé, ni sponsorisé, ni affilié à Rockstar Games ou à Cfx.re. RedM et Red Dead Redemption 2 sont des marques de leurs propriétaires.

Ce guide vous a-t-il aidé ? Une question ? Ouvrez un ticket

Vous ne trouvez pas votre réponse ?

Notre équipe répond à vos tickets 7j/7, directement depuis votre espace client.