Aller au contenu

Éditeur de relations des peds

Décide de ce que chaque groupe de peds du jeu pense de tous les autres. La matrice part du relationships.dat du jeu, donc tu vois qui déteste déjà le joueur avant de toucher à quoi que ce soit, tu filtres les groupes qui t'intéressent et tu construis un nouvel ensemble en quelques clics. Ajoute tes propres gangs, mets le ped du joueur dans un groupe et télécharge une ressource qui diffuse l'ensemble depuis le server et l'applique sur chaque client, y compris les joueurs qui arrivent plus tard.

Les notes sous l'outil sont en anglais pour l'instant.

Config & codePeds, Gangs, State bags, TéléchargementLire la doc

How to use it

  1. The matrix starts as the game ships. A row is one group, a column is another, and the cell says how therow feels about the column. None is drawn as nothing, so what you can see is exactly who feels something about whom.
  2. Pick a value under "Click a cell to set", then click cells. Right click a cell to put the game's value back.
  3. Click a group name to focus it. The panel on the right shows what it feels, what feels about it, and lets you set a whole row or a whole column at once.
  4. Add your own groups in "Your own groups". A name is hashed the same way the game hashes its own.
  5. Open Resource at the bottom and download fivemad_relationships.

Ctrl + Z undoes, Ctrl + Shift + Z redoes. Share copies a link that carries the whole set.

A relationship only goes one way

SET_RELATIONSHIP_BETWEEN_GROUPS sets how the first group feels about the second and says nothing about the other way round. The native reference spells this out: "This should be called twice (once for each group)." The game's own file works the same way, which is why it states both halves separately when it wants both, and why a hen dislikes the player but the player does not dislike hens. "Set both directions at once" in the side panel is a convenience for editing, not something the game does for you.

The acquaintance values

These are Rockstar's own RELATIONSHIP_TYPE, whose header says it "must match the eAcquaintanceType enumerated type in PedType.h in the games Peds directory". The value list on docs.fivem.net is wrong.It is a community comment (0 Companion, 1 Respect, 2 Like, 3 Neutral, 4 Dislike, 5 Hate, 255 Pedestrians) and it is shifted by one place, so a tool built on it sets Ignore where you asked for Like. Only Hate = 5 agrees with the engine.

ValueNameIn the game file
0RespectRespect
1LikeLike
2IgnoreNo keyword. Runtime only.
3DislikeDislike
4WantedNo keyword. Not in the picker.
5HateHate
6DeadNo keyword. Not in the picker.
255NoneThe default. Written by leaving the line out.

The picker leaves Wanted (4) and Dead (6) out. They exist, they just are not something to hand a server owner: across 4,141 relationship calls in the game's own scripts, 4 is set only four times and 6 is never set at all. The plain English line in each tooltip is our own reading of what a value does in game, not a sourced fact: nobody can start GTA V in a browser to check it.

The outputs

OutputWhat you get
Resourcefivemad_relationships: a shared config, a server script that publishes the set to global state and a client script that applies it, re-applies it when it changes and puts the game's own values back when the resource stops.
Runtime codeThe natives on their own, in Lua, JavaScript, TypeScript and C#, plus the code that undoes them.
relationships.datThe game file, in the format the game ships. FiveM has no data_file type that loads one, so this is for a single player install only. The tab says so too.

What it will not do

  • It will not pretend a streamed relationships.dat works on a FiveM server. It does not: there is no data file type for it, and a stream/ folder takes streamed game assets, not a loose .dat.
  • It will not set relationships from the server. The relationship matrix is client side game state and the game never networks it, so the set is published from the server and applied by each client. Which group a ped is in is a separate thing and that one is networked, so it only has to be set once.
  • It will not list groups that only exist because a mission script made one. Those names are compiled to hashes in the game's scripts and are not recoverable as text. Add the name yourself and it will hash the same way.

Privacy

Everything runs in your browser. The matrix, the resource and the file are all built on your own machine, nothing is uploaded, and the only thing the page fetches is the list of the game's own groups.