Plant, Walk, Detonate
The whole sequence is performed, not commanded: a planting animation, a fuse walk away from the charge, a wiring animation onto the plunger, then the push. All on native RDR3 animations.
A firework script for RedM that makes the player earn the show. Use the item, plant the firework, turn your back on it and walk away unspooling a real physics rope, then wire it to a plunger detonator and set it off. Four firework types, server-wide sync, and fixed-coordinate shows for events. VORP and RSG, no library dependencies.
RedM Fireworks replaces the usual /firework command with something your players actually perform.
They use a firework item from their inventory. Their character plays a planting animation, hauls the firework out and sets it on the ground. Then they turn their back on it, pull a fuse spool into their left hand, and walk away, unspooling a genuine RDR3 physics rope that stays tied to the planted firework. A prompt tracks their distance in real time and refuses to let them wire the detonator until they're clear: fifteen metres outdoors, five indoors.
When they're far enough, they press the key and the wiring animation plays. The rope hands off from the spool, to their hand, to the plunger, visibly, in one shot, without breaking. The plunger gets its own animation running on the prop in sync with the character. Then they push it, and a hundred rockets climb sixty metres and burst, each one on a randomised heading with a randomly chosen burst effect, so no two shows look the same.
Every other player in range sees the same show at the same coordinates at the same moment.
Underneath it, the resource is built to be run on a live server. The item is only consumed if the inventory genuinely gave it up, and the refund event is validated server-side against the id the player actually started, so it can't be spammed to mint items. The sync broadcast is gated the same way, a modified client can't force firework shows onto everyone else. Stopping the resource mid-sequence hands the item back instead of eating it.
Configuration is a single commented file. Four firework types ship ready to use, and tuning how one looks is as simple as repeating a line, want more ribbons, paste the ribbon effect again. Any config entry can take fixed coordinates instead of an item, giving you as many scheduled event shows as you want to build a festival around.
The interface is React, ships pre-built, and is styled as a painted brush plaque rather than a boxed panel. Three brush strokes are included, every string is a config value, and you never need to touch npm unless you want to restyle it.
No ox_lib. No notify library. No menu library. Nothing beyond your framework.
The whole sequence is performed, not commanded: a planting animation, a fuse walk away from the charge, a wiring animation onto the plunger, then the push. All on native RDR3 animations.
An actual ADD_ROPE fuse, not a decal. It stays tied to the planted firework and re-attaches from spool to hand to detonator in one shot, without breaking.
A live readout tracks how far the player has walked and refuses to let them wire the detonator until they are clear: 15 metres outdoors, 5 indoors, both configurable.
Burst, Ribbon, Points and Mixed. A hundred rockets per show by default, each on a randomised heading with its own trail and a burst effect picked at random, so no two shows repeat.
Every player in range sees the same show at the same coordinates at the same moment, not their own private copy.
The item is only consumed if the inventory genuinely gave it up, and a refund only pays out for a firework that player actually started. The refund event cannot be spammed to mint items.
The sync broadcast is gated on genuine item consumption, so a modified client cannot push firework shows onto everyone else.
Stopping the resource mid-sequence hands the item back rather than eating it, and cancelling during the fuse walk or at the detonator refunds it too.
Weighting an effect is as simple as repeating its line: want more ribbons, paste the ribbon effect again. Rocket count, launch pacing and burst height are all settings.
Any config entry can take coordinates instead of an item, each with its own rocket count and pacing, so a festival can be scheduled from your own script. Add as many as you like.
React 18 and Vite, shipped pre-built and styled as a painted plaque rather than a boxed panel. Three brush strokes included; npm is only needed if you want to restyle it.
No ox_lib, no notify library, no menu library, no target system. Nothing beyond your framework, plus a client export of five functions and an explosion event to hook.
No. It is an rdr3 resource and will not load on a FiveM server.
No. VORP and RSG only. Those are the only two inventory bridges included.
Nothing beyond your framework. There are no library dependencies.
Yes. Item-based shows are broadcast server-wide by default, so everyone in range sees the same show at the same coordinates. It can be turned off in the config.
No. The item is only consumed if the inventory actually removed it, and a refund only pays out for a firework that player genuinely started, so the refund event cannot be spammed for free items.
No, and this is worth knowing before you buy: the resource plays no audio and the show is visual only. Adding a boom means a small edit to one client file.
No. They do no damage, and the planted firework is invincible.
No. Anyone holding an item can use it as often as they have items. If you need gating, the export exposes state getters you can check from your own resource, and the docs show how.
Yes. Any config entry can take fixed coordinates instead of an item, and you trigger it by index from your own command or script. Add as many locations as you want.
No. The interface ships pre-built. npm is only needed if you want to restyle it.
Yes. Every prompt label, key label and panel title is a config string. One unit suffix in the UI source is hardcoded and needs a UI rebuild to change, which the config guide documents.
Yes. The key and the letter shown on the prompt are separate settings, so change both.
The prompt only sends an interface update when the displayed values actually change, rather than every frame. Rocket count and launch pacing are configurable if you want a lighter show.
Six files: installation for both frameworks, a full configuration reference, a developer API guide, a UI customisation guide, and a troubleshooting FAQ.
Still stuck? Ask in our Discord and we will answer.
No reviews yet. Using RedM Fireworks? Share your experience on Discord.
RSG support, server-wide sync, and a rewritten interface.