Configuration et Ressources
Guide de configuration et localisation des assets du serveur.
Structure des Fichiers
Arborescence Typique
resources/
├── [vorp]/
│ ├── vorp_core/
│ ├── vorp_inventory/
│ ├── vorp_menu/
│ └── vorp_character/
├── [bcc]/
│ ├── bcc-boats/
│ ├── bcc-stables/
│ ├── bcc-wagons/
│ └── ... (autres scripts BCC)
├── [dependencies]/
│ ├── bcc-utils/
│ ├── feather-menu/
│ ├── fred_metabolism/
│ └── ox_lib/
└── [standalone]/
├── hard_jobs/
├── fred_hud/
└── ... (scripts autonomes)
Localisation des Assets
Images d'Items
Inventaire VORP:
vorp_inventory/html/img/
Formats supportés: .png, .jpg, .webp
Nomenclature:
- Nom du fichier = nom de l'item
- Exemple:
apple.pngpour l'itemapple
Dimensions recommandées:
- 128x128 pixels (minimum)
- 256x256 pixels (optimal)
- 512x512 pixels (haute qualité)
Icons UI
Fred HUD:
fred_hud/ui/assets/icons/
Feather Menu:
feather-menu/ui/assets/
Props 3D
Les props ne sont pas stockés dans les scripts, ils sont référencés par leur nom de modèle RedM.
Base de données props: http://rdr2.mooshe.tv/
Exemples de props:
p_bottlejd01x- Bouteille de whiskyp_apple02x- Pommes_canbeans01x- Boîte de haricotsw_repeater_carbine01- Carabine
Configuration VORP Core
Fichier Principal
Localisation: vorp_core/config/config.lua
Sections Importantes
Langue du Serveur
Config.defaultlang = "fr_lang" -- Français
Fichiers de traduction dans:
vorp_core/translation/
├── en_lang.lua
├── fr_lang.lua
├── es_lang.lua
└── ...
Économie de Départ
Config.StartMoney = {
cash = 50, -- Argent liquide
gold = 5, -- Or
rol = 100 -- Monnaie RP
}
Job par Défaut
Config.DefaultGroup = "user"
Config.DefaultJob = "unemployed"
Config.DefaultJobGrade = 0
Config.Salary = 10 -- Salaire de base
Whitelist
Config.Whitelist = false -- Désactivée par défaut
Config.CheckDuplicateLicense = true
Personnages
Config.MaxCharacters = 5 -- Max 5 personnages par compte
Config.SaveDiscordId = true
Respawn
Config.RespawnTime = 15 -- Secondes avant respawn
Config.RespawnKey = 0x760A9C6F -- Touche G
Config.HealthOnRespawn = 100
Config.HealthOnRevive = 100
Cores
Config.MaxHealth = 500
Config.MaxStamina = 100
Config.DisablePvP = false -- PvP activé
Configuration BCC Scripts
BCC Boats
Fichier: bcc-boats/config.lua
Config = {
MaxBoats = 3,
DefaultBoatInventory = 200,
Shops = {
Valentine = {
coords = vector3(x, y, z),
blip = {
sprite = 1306026896,
color = "BLIP_MODIFIER_MP_COLOR_32"
},
hours = {
active = false,
open = 8,
close = 20
},
boats = {
{model = "rowboat", price = 500},
{model = "canoe", price = 300}
}
}
}
}
BCC Stables
Fichier: bcc-stables/config.lua
Config = {
MaxHorses = 5,
HardDeath = true,
DeathThreshold = 5,
Stables = {
Valentine = {
coords = vector3(-365.9, 787.7, 116.2),
horses = {
{model = "a_c_horse_americanpaint_overo", price = 150},
{model = "a_c_horse_morgan_bay", price = 200}
}
}
}
}
BCC Wagons
Fichier: bcc-wagons/config.lua
Config = {
MaxWagons = 2,
DefaultWagonInventory = 500,
Shops = {
Valentine = {
coords = vector3(x, y, z),
wagons = {
{model = "wagonarmoured01x", price = 800},
{model = "cart01", price = 200}
}
}
}
}
Configuration Fred Metabolism
Fichier: fred_metabolism/config/items.lua
Ajouter un Item Consommable
{
dbName = "mon_item", -- Nom en base de données
displayName = "Mon Item", -- Nom affiché
hunger = 30, -- Restaure faim
hungerGold = 0, -- Durée gold core (secondes)
thirst = 20, -- Restaure soif
thirstGold = 0, -- Durée gold core
metabolism = 50, -- Métabolisme
alcohol = 0, -- Alcoolémie ajoutée
stress = -10, -- Réduit stress
staminaInnerCore = 0, -- Stamina inner
staminaInnerCoreGold = 0, -- Stamina inner gold
staminaOuterCoreGold = 0, -- Stamina outer gold
healthInnerCore = 0, -- Santé inner
healthInnerCoreGold = 0, -- Santé inner gold
healthOuterCoreGold = 0, -- Santé outer gold
animation = "eat", -- Type d'animation
propName = "p_apple02x", -- Prop 3D
VFX = nil, -- Effets visuels
returnItem = nil -- Item retourné
}
Animations Disponibles
eat- Mangerdrink- Boiredrink_cup- Tassesmoke- Fumerbowl- Bolshortbottle- Bouteille courtelongbottle- Bouteille longuesyringe- Seringueberry- Baies
Configuration Hard Jobs
Mining
Fichier: hard_jobs/Mining/server/main.lua
Config.MiningZones = {
{
name = "Valentine Mine",
coords = vector3(x, y, z),
radius = 50.0,
blip = true,
ores = {
{type = "iron", chance = 60, amount = {1, 3}},
{type = "gold", chance = 20, amount = {1, 2}},
{type = "copper", chance = 40, amount = {1, 3}}
}
}
}
Config.Prices = {
iron = 5,
gold = 20,
copper = 8
}
Police Job
Fichier: hard_jobs/policejob/server/main.lua
Config.PoliceStations = {
{
name = "Valentine Sheriff",
coords = vector3(-275.5, 805.1, 118.4),
blip = {
sprite = 1220015732,
color = "BLIP_MODIFIER_MP_COLOR_2"
},
armory = vector3(-277.0, 806.0, 118.4),
cells = {
vector3(-279.0, 808.0, 118.4),
vector3(-279.0, 810.0, 118.4)
}
}
}
Config.PoliceWeapons = {
"WEAPON_REVOLVER_CATTLEMAN",
"WEAPON_REPEATER_CARBINE",
"WEAPON_SHOTGUN_DOUBLEBARREL"
}
Base de Données
Tables Principales
users
CREATE TABLE `users` (
`identifier` varchar(50) NOT NULL,
`group` varchar(50) DEFAULT 'user',
`warnings` int(11) DEFAULT 0,
`banned` tinyint(1) DEFAULT 0,
PRIMARY KEY (`identifier`)
);
characters
CREATE TABLE `characters` (
`charidentifier` int(11) NOT NULL AUTO_INCREMENT,
`identifier` varchar(50) NOT NULL,
`firstname` varchar(50) NOT NULL,
`lastname` varchar(50) NOT NULL,
`age` int(11) DEFAULT 21,
`job` varchar(50) DEFAULT 'unemployed',
`jobgrade` int(11) DEFAULT 0,
`money` double(11,2) DEFAULT 0.00,
`gold` double(11,2) DEFAULT 0.00,
`rol` double(11,2) DEFAULT 0.00,
PRIMARY KEY (`charidentifier`)
);
items
CREATE TABLE `items` (
`item` varchar(50) NOT NULL,
`label` varchar(50) NOT NULL,
`limit` int(11) DEFAULT 1,
`can_remove` tinyint(1) DEFAULT 1,
`type` varchar(50) DEFAULT NULL,
`usable` tinyint(1) DEFAULT 0,
`desc` varchar(255) DEFAULT NULL,
`metadata` longtext DEFAULT '{}',
`weight` decimal(10,2) DEFAULT 0.00,
PRIMARY KEY (`item`)
);
Ajouter un Item en Base
INSERT INTO items (item, label, `limit`, can_remove, type, usable, `desc`, metadata, weight)
VALUES
('mon_item', 'Mon Item Custom', 10, 1, 'item_standard', 1, 'Description de mon item', '{}', 0.5);
Webhooks Discord
Configuration dans VORP Core
Fichier: vorp_core/config/config.lua
Config.Webhooks = {
WebhookLink = "https://discord.com/api/webhooks/YOUR_WEBHOOK",
WebhookTitle = "VORP Logs",
WebhookAvatar = "https://votre-logo.png",
webhookColor = 16711680, -- Rouge (RGB)
-- Événements loggés
LogConnect = true,
LogDisconnect = true,
LogAdminCommands = true,
LogBans = true,
LogWarns = true
}
Créer un Webhook Discord
- Ouvre les paramètres du serveur Discord
- Intégrations → Webhooks
- Créer un webhook
- Copie l'URL du webhook
- Colle dans la config
Format des Logs
Les logs incluent:
- Horodatage
- ID du joueur
- Action effectuée
- Détails additionnels
Permissions (server.cfg)
Structure de Base
# Créer des groupes
add_ace group.admin command allow
add_ace group.moderator command.kick allow
# Assigner joueurs aux groupes
add_principal identifier.steam:110000XXXXXXXX group.admin
add_principal identifier.discord:123456789 group.moderator
# Permissions VORP Core
add_ace group.admin vorpcore allow
add_ace group.moderator vorpcore.reviveplayer allow
Permissions VORP Détaillées
# Admin Complet
add_ace group.admin vorpcore.tpm.Command allow
add_ace group.admin vorpcore.addMoney.Command allow
add_ace group.admin vorpcore.additems.Command allow
add_ace group.admin vorpcore.setGroup.Command allow
add_ace group.admin vorpcore.delCurrency.Command allow
add_ace group.admin vorpcore.addweapons.Command allow
add_ace group.admin vorpcore.setJob.Command allow
add_ace group.admin vorpcore.reviveplayer.Command allow
add_ace group.admin vorpcore.delhorse.Command allow
add_ace group.admin vorpcore.delwagons.Command allow
add_ace group.admin vorpcore.healplayer.Command allow
add_ace group.admin vorpcore.wlplayer.Command allow
add_ace group.admin vorpcore.unwlplayer.Command allow
add_ace group.admin vorpcore.ban.Command allow
add_ace group.admin vorpcore.unban.Command allow
add_ace group.admin vorpcore.warn.Command allow
add_ace group.admin vorpcore.unwarn.Command allow
Traductions
Ajouter une Langue
Fichier: vorp_core/translation/ma_langue.lua
Locales['ma_langue'] = {
-- Commandes
['command_help'] = 'Aide des commandes',
['command_teleport'] = 'Téléporter à un waypoint',
-- Messages
['player_dead'] = 'Tu es mort',
['player_respawn'] = 'Appuie sur ~INPUT_CONTEXT~ pour respawn',
-- Erreurs
['no_money'] = 'Pas assez d\'argent',
['invalid_id'] = 'ID de joueur invalide',
-- etc...
}
Puis dans config.lua:
Config.defaultlang = "ma_langue"
Optimisation
Recommandations
server.cfg
# Performance
sv_maxclients 32
sv_enforceGameBuild 1436 # RedM build
# OneSync
onesync on
Base de Données
- Index sur colonnes fréquemment requêtées
- Nettoyage régulier des anciennes données
- Backups automatiques
Scripts
- Désactive les scripts non utilisés
- Optimise les boucles et threads
- Utilise events plutôt que tick loops
Sauvegardes
Base de Données
Commande MySQL:
mysqldump -u user -p database_name > backup_$(date +%Y%m%d).sql
Automatisation: Crée un cron job pour sauvegardes quotidiennes.
Fichiers Ressources
Important à sauvegarder:
resources/- Tous les scriptsserver.cfg- Configuration serveurtxData/- Données txAdmin
Dépannage Courant
Erreur "unknown command"
- Vérifie les permissions dans server.cfg
- Assure-toi que vorp_core est started
Items ne s'affichent pas
- Vérifie que l'image existe dans vorp_inventory/html/img/
- Nom du fichier doit correspondre au nom de l'item
Base de données erreur
- Vérifie la connexion MySQL dans oxmysql config
- Assure-toi que les tables existent
Joueur ne peut pas se connecter
- Vérifie la whitelist (si activée)
- Vérifie les bannissements
- Vérifie les logs pour erreurs
Ressources Externes Utiles
Documentation
Bases de Données
Outils
- txAdmin - Panel d'administration
- HeidiSQL - Client MySQL
- Visual Studio Code - Éditeur de code
Checklist de Configuration
Nouvelle Installation
- Installer oxmysql
- Configurer base de données
- Installer VORP Core
- Importer SQL de base
- Configurer server.cfg
- Ajouter permissions
- Installer scripts additionnels
- Tester connexion joueur
- Configurer Discord webhooks
- Créer sauvegardes
Ajout de Script
- Lire la documentation
- Vérifier dépendances
- Importer SQL
- Placer dans resources/
- Configurer config.lua
- Ajouter au server.cfg
- Redémarrer serveur
- Tester fonctionnalités
Support Technique
Logs Serveur
Localisation: txData/CFXDefault_XXXX.base/data/logs/
Types de logs:
console.log- Console serveurserver.log- Événements serveurcitizen-server-impl.log- Logs système
Console F8 (Client)
Appuie sur F8 en jeu pour ouvrir la console client et voir les erreurs JavaScript/Lua.
Discord Support
Rejoins les Discord officiels pour aide:
- VORP Discord
- BCC Discord
- RedM Development Discord
Notes Finales
Garde toujours tes scripts à jour pour bénéficier des derniers fixes et features.
Avant de modifier un script, fais toujours une copie de sauvegarde.
Consulte toujours les README.md fournis avec chaque script pour instructions spécifiques.