[FREE] F4 Studio Graffiti Script | Real Spray System

f4-spraypaintOPTIMIZED


F4 Spray Paint — Real-Time Graffiti System

F4 Spray Paint is a real-time graffiti system developed for FiveM roleplay servers. Instead of placing pre-made decals, this resource allows players to draw directly onto world surfaces using a live DUI canvas system.

The script focuses on controlled performance usage, configurable spray behavior, and administrative management tools suitable for public servers.


Overview

F4 Spray Paint enables players to:

  • Create graffiti dynamically on wall surfaces
  • Draw in real time using a high-resolution canvas
  • Synchronize drawing live for nearby players
  • Manage and moderate placed graffiti through an admin interface

The system is built to be configurable and adaptable for different server economies and gameplay styles.


Core Features

Real-Time Drawing System
Players draw directly onto a DUI canvas placed on world surfaces. Nearby players see updates live through synchronized rendering.

Spray Mechanics Simulation
Brush spread and opacity can be configured to simulate distance-based and movement-based spray behavior. Multiple brush sizes and density settings are available.

Surface Placement System
Graffiti can be positioned on wall surfaces with adjustable placement and configurable size limits.

Undo / Redo Support
Stroke-based undo and redo functionality allows correction during the drawing process.

Import / Export System
Graffiti designs can be exported as codes and imported later if enabled by server configuration.

Eraser Mode
Specific strokes can be removed using an erase mode with optional animation support.

Administrative Tools
Admins can view and remove placed graffiti using an ox_lib interface. Optional Discord webhook logging is supported for moderation tracking.

Performance Controls
The resource includes configurable:

  • Rendering distance limits
  • Proximity-based loading
  • Maximum active renderers
  • Cleanup and persistence options

These controls help maintain stable performance on populated servers.


Framework Compatibility

Supported frameworks:

  • QBCore
  • Qbox
  • ESX

Inventory compatibility includes:
ox_inventory, qb-inventory, qs-inventory, ps-inventory, and codem-inventory.


Dependencies

  • f4-core
  • ox_lib
  • oxmysql

:shopping_cart: Purchase & Links

:credit_card: Download
:movie_camera: Video Preview
:speech_balloon: F4 Studio Discord

Resource Information

Code is accessible No
Subscription-based No
Lines (approximately) 2000+
Requirements Ox_lib, f4-core and one of QBCore, Qbox, Esx
Support Yes
17 Likes

sheesh ok then

1 Like

someone make it free :rofl: :rofl: and its fire :heart_on_fire:

4 Likes

good release , remove node module no need that

1 Like

After fixing a critical error, we forgot to remove node_modules. I fixed it and updated it. Thank you.

1 Like

You should charge for this mate, this is crazy good graffiti script!!!
1UP

1 Like

A great free graffiti script ? in this economy ? damn thanks !

1 Like

Thanks, really appreciate it!

We actually thought about making it a paid release, but we decided to publish it for free so the community can benefit from it. We wanted to contribute something high quality that server owners can use and build upon.

Seeing people enjoy and use the project is worth more than a price tag.

4 Likes

Hi, I’d like to try your script, but the f4-core dependency is missing; I can’t find it.

It comes with f4-spraypaint check your keymaster if it still doesnt show up please open ticket on our discord server.

I hadn’t seen it… thanks

That’s weird, I don’t have the paint strip in my hand and when I finish painting the view stays in first person

bro casually dropped a 10/10 script for free

1 Like

does it save on server restarts?

Hi, yes it does save all grafitis made and you can connect webhooks, see previews via the admin menu (/sprayadmin), check their exact locations (x, y, z), etc. We are also planning to release a update soon, so please don’t hesitate to share any suggestions or ideas you might have!

1 Like

Free script and yet is Escrow, why not post source code?

4 Likes

can you post source code? shouldnt it be since its free? the spray can is not in players hand when you graffiti. Prop might not be working.

1 Like

Hi, this script is completely free for everyone to enjoy, but it is Escrowed to protect our hard work from being stolen and resold.

Some people confuse Escrow with a price tag. The purpose of Escrow is to protect intellectual property, whether a project is paid or free. Free does not equal open-source. We put a lot of effort into this, and we kindly ask for your understanding. However, if you are strictly against using closed-source free resources, please feel free not to use it. The choice is yours.

2 Likes

how come the spraycan prop is not in my hand when spraying like in your preview video?

Please open support ticket on our server and we’ll hapilly help you sir.


:clipboard: f4-spraypaint (v1.1.1) — Changelog (10.03.2026)

:bug: Bug Fixes

  • First-Person Camera Lock: Fixed the camera glitching issue during drawing, erasing, and area selection. The camera will now safely lock in first-person mode until you finish your action.
  • Prop Fixes: Fixed the bug where the spray can and cleaning cloth props were invisible in the player’s hands.

:sparkles: New Features

  • Config.Debug System: Added a new debug mode for server owners to easily track script actions and troubleshoot via the console.
  • Open-Source Handler Files (open.lua): Added new open files so you can easily write your own custom logic. You can now easily set up custom permission checks (who can draw/erase) or trigger specific events when a painting is finished or removed.
  • Developer Exports: Added a comprehensive list of new Client and Server exports. Other resources on your server can now easily fetch spray data, check nearby paintings, or interact with the spray system.

:lock: Security

  • Secured Discord Webhook: Moved the Discord webhook URL to a secure, server-side only file (server-config.lua). Your webhook is now completely protected against modders and resource dumpers.

:rocket: f4-core (v1.0.3)

:sparkles: New Features

Version Checker: Added an automatic version checker system. You can now track the updates and changelogs of all F4 scripts directly from the server console when the server starts.


client/open.lua

some part of server/open.lua

You can now use exports like GetAllSprays, GetSprayById, IsPlayerSpraying, IsPlayerErasing… like 10+ exports thank you all for your feedbacks.

1 Like