Skip to content

Feature / Bug: Lack of native VEHICLE_PLATE_FILE streaming leads to Adhesive false-positive bans when unclamping plate limits via client plugins #4383

Open

Description

@JemmaSinclair

What happened?

Currently, FiveM does not support streaming custom license plate definitions via resource manifests; mounting plates.meta fails with:
Could not add data_file resources:/[resource]/plates.meta - invalid type VEHICLE_PLATE_FILE

Because custom vehicle plates cannot be mounted server-side, the base game's engine clamps any plate text index >= 13 back to 0 (plate01 / San Andreas standard) inside SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX (0x9088EB5A43FFB0A1) and GET_VEHICLE_NUMBER_PLATE_TEXT_INDEX (0xF11BC2DD9A3E7195).

To work around this platform limitation for multi-state roleplay servers, I authored a non-malicious client-side utility plugin (CustomPlates.asi) placed in FiveM Application Data/plugins/ with the requisite FX_ASI_BUILD resource embedded. The plugin resolves rage-scripting-five.dll to unclamp the native plate setter and getter so that indices >= 13 are tracked and mapped rather than truncated to 0, allowing visual styling via the sanctioned AddReplaceTexture native and OneSync state bags (Entity(veh).state.plateSlot).

While testing this developmental plugin in a local server environment, Adhesive's delayed heuristic/integrity scan flagged the plugin's native hook on rage::scrEngine as an unauthorized injection payload and issued an automated 300-day global ban.

Expected result

  1. Primary (Engine Support): Native server-side support for streaming plates.meta (enabling data_file 'VEHICLE_PLATE_FILE' 'plates.meta') or providing an official unclamping native/config so developers never need to hook client memory or load .asi workarounds to achieve >12 plate styles. 2. Anti-Cheat Heuristic Adjustment: Adhesive should distinguish between benign developmental plugins loaded from the legitimate FiveM.app/plugins/ directory (matching FX_ASI_BUILD) interacting with script engine tables versus actual cheating software/injection vectors.

Reproduction steps

  1. Attempt to stream custom license plate slots (>12) natively in a FiveM resource using plates.meta. FiveM will reject VEHICLE_PLATE_FILE.
  2. Build an .asi plugin declaring FX_ASI_BUILD that hooks SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX (0x9088EB5A43FFB0A1) to prevent the engine from clamping slot numbers >= 13.
  3. Install the plugin into FiveM Application Data/plugins/CustomPlates.asi and test custom plate slots in a local server.
  4. After testing over a couple of days, Adhesive's heuristic scanner flags the native table hook and triggers an automated 300-day global ban.

Importancy

Unknown

Area(s)

FiveM

Specific version(s)

FiveM Client 2.0.0.38401 / Game Build 3407 (b3407)

Additional information

  • Complete source code of the plugin (CustomPlatesLoader.cpp), build scripts, and resource definitions are available for Cfx.re engineers to inspect: the plugin solely manages vehicle plate indices and texture slots. It contains zero malicious routines, memory dumping, or overlay logic.
  • Adding native support for VEHICLE_PLATE_FILE or a platform native like SetVehicleNumberPlateTextIndexUnclamped would permanently solve this limitation for the entire FiveM development community and eliminate the need for client .asi plugins altogether.

I plan to make a pull request to natively support this feature. This issue is mainly in regards to the Adhesive ban.

Link to source code: https://github.com/JemmaSinclair/js_InfinityPlates

Activity

  1. added
    triageNeeds a preliminary assessment to determine the urgency and required action
    on Nov 7, 2026
  2. yorick2002 commented on Nov 7, 2026

    @yorick2002
    Contributor

    It's not false because you're not supposed to do this.

  3. JemmaSinclair commented on Nov 7, 2026

    @JemmaSinclair
    Author

    Why is there zero documentation on what is allowed and what isn't allowed?
    Why CAN'T I experiment with something like this?
    Siren Setting Limit Adjuster is a very similar script in terms of what its doing to accomplish its goal, and it is perfectly allowed.

  4. airbon99 commented on Nov 7, 2026

    @airbon99
    Contributor

    I support you. People have already complained on bans from publicly available plugins that try to solve issues.

    Most non-essential feature pull requests on Legacy aren't being considered, so many developers and players think they can use plugins to solve them, and they have no idea it could trip the anticheat.

    The best solution is either to block execution of such code through plugins or just disable plugins altogether.

    When I see all these bans being dealt for using plugins, I stopped working on my own plugin trying to fix Rockstar Editor crashes, and I would be as upset to get god forbid banned for such work.

  5. JemmaSinclair commented on Nov 7, 2026

    @JemmaSinclair
    Author

    It pains me that Cfx seems to be abandoning Legacy just like they abandoned RedM. And a lot of things are just poorly handled by cfx in general. I want to make a fuss but I'm just a no-body so nothing will happen.

    I appreciate the support airbon, lets hope someone at Cfx sees this and actually cares.

  6. Gogsi commented on Nov 7, 2026

    @Gogsi
    Contributor

    Adhesive should distinguish between benign developmental plugins loaded from the legitimate FiveM.app/plugins/ directory (matching FX_ASI_BUILD) interacting with script engine tables versus actual cheating software/injection vectors.

    Have you ever considered that this would make cheaters make their cheats asi mods instead? Asi mods are just renamed dlls, they can do anything a cheat could.

    Most non-essential feature pull requests on Legacy aren't being considered

    Image

    Why is there zero documentation on what is allowed and what isn't allowed?

    What do you expect, a write up on exactly what cheat developers shouldn't do to not get detected? If there's one thing an .asi mod shouldn't do it's hook FiveM's own script engine. They are provided as a courtesy to support Single-player mods, not to mess with FiveM's own code. https://docs.fivem.net/docs/client-manual/#using-plugins .asi scripts you would typically use in singleplayer.

    This issue is mainly in regards to the Adhesive ban.

    You also didn't even post your ban ID or any identifiable information about your ban, so idk what you expect to happen here

  7. JemmaSinclair commented on Nov 7, 2026

    @JemmaSinclair
    Author

    If a server allows clientside scripts I honestly think they should be left to their own devices. I get having an anticheat for people who somehow break past the restrictions, but if we allow client modification then ban people for client modification in a server that allows it, thats just super contradictory.

    Image
  8. airbon99 commented on Nov 8, 2026

    @airbon99
    Contributor
  9. Scullyy commented on Nov 8, 2026

    @Scullyy

    If his plugin genuinely only does what he stated it's reasonable for him to believe it's okay since plugins are supported by FiveM. I think something should certainly be done to avoid abusive plugins but with the lack of documentation and warning a ban here isn't justified. If a plugin contains something that isn't allowed it should just close the client or just remove plugin support entirely unless on SP or LAN. The only plugins widely used on FiveM violate the PLA as they sell outside of Tebex, anything else should really be done as a resource on the server.

  10. JemmaSinclair commented on Nov 8, 2026

    @JemmaSinclair
    Author

    I initially planned to do this as a pull request but I was completely lost on how to actually do the local testing cause I couldnt find any documentation on how to do it in the repo or anything. And I assumed my pull request would likely sit there for months on end given how Cfx has been treating the RedM Collective and Enhanced is making Legacy have that same treatment.

    I've still got my changes on my fork but I can't test them now cause I can't even connect to my localhost server with the ban.

    I really hope someone at Cfx handles this and possibly this gets up the chain to get some real reform cause (as sad as this sounds) FiveM has become my only hobby and I don't know what I would do if this ban isn't reversed.

  11. yorick2002 commented on Nov 8, 2026

    @yorick2002
    Contributor

    I initially planned to do this as a pull request but I was completely lost on how to actually do the local testing cause I couldnt find any documentation on how to do it in the repo or anything. And I assumed my pull request would likely sit there for months on end given how Cfx has been treating the RedM Collective and Enhanced is making Legacy have that same treatment.

    I've still got my changes on my fork but I can't test them now cause I can't even connect to my localhost server with the ban.

    I really hope someone at Cfx handles this and possibly this gets up the chain to get some real reform cause (as sad as this sounds) FiveM has become my only hobby and I don't know what I would do if this ban isn't reversed.

    Once again you're saying that Legacy is being abandoned while:

    • CEF recently got updated to M144
    • Steam auth entirely got reworked
    • There's still useful PRs being merged

    Where do you get this information from?

  12. JemmaSinclair commented on Nov 8, 2026

    @JemmaSinclair
    Author

    Why would my PR be merged? My PR would be very experimental and NOT a priority like any of those things you cited.

    Edit: Also, there are THREE HUNDRED pull requests currently sitting in there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugtriageNeeds a preliminary assessment to determine the urgency and required action

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions