What other players see
Why the game alone isn't enough
GTA sends each player's tattoos to the others in a fixed block of 1,792 slots, one per design, counting only the collections marked bRequiredForSync. The game's own tattoos already take about 1,600 of them. Designs past that are never seen by the others, and because the game sorts the collections in a broken way, which ones fall off can change between restarts (FiveM issue #2010).
So this pack doesn't use that block: its collection has bRequiredForSync = false, and every base game tattoo keeps its slot. The pack shows its tattoos to the others itself.
How it works
- Each player's game reads the tattoos on that player's own character and sends them to the server, which passes them to the players around. All of them: this pack's, the game's and any other pack's.
- The others put exactly that list on that player's character.
- The list goes on again when the player changes tattoos or clothes, when they come near, and every few seconds while near, in case the game puts its own copy back.
- It never reads another player's character: FiveM doesn't guarantee what the game says about it.
- The server checks every list before passing it on, so it works with
sv_stateBagStrictMode.
It doesn't depend on the tattoo script: it reads the character, not the script's database. It also turns on FiveM's fix for the game's broken sort (game_enableStableOverlaySort), for the tattoos the game still sends itself.
With ZAIDERS Appearance
ZAIDERS Appearance shows every player's tattoos to the others itself, and also sends darker layers (a tattoo put on more than once). While it does, this pack steps aside on its own: it doesn't send anything or touch anyone. If ZAIDERS Appearance's sync is turned off, the pack takes over again.
While a ZAIDERS Appearance shop is open, the pack doesn't send what the player is trying on. The others keep seeing what the player wears.
What it needs
- OneSync. Without it, FiveM doesn't pass anything between players this way, and the server console says so when the pack starts. The others then only see what the game sends.
- The same pack on every player. It happens by itself: everyone downloads it from your server.
- Only one script doing this. If another tattoo pack brings its own script to show tattoos to other players, turn one of them off. With this pack:
Config.Sync = false.
Settings
| Setting | Default | What it does |
|---|---|---|
Config.Sync | true | Turns this on or off. |
Config.SyncDistance | 120 | Meters around a player in which their tattoos are put on. |
Config.SyncInterval | 1000 | Milliseconds between looks at the player's own tattoos (250 at least). |
Config.FixTattooSort | true | Turns on game_enableStableOverlaySort. |
Config.DiagCommand | false | Adds /zaiderstattoos (chat or F8): whether this is on, and what each nearby player sent. |
Each one can also be set from server.cfg. See Configuration.
