Scripts
207 files
-
0.3.7+ Client-Side Packet encryption
By DevGrab
This package contains a full implementation of client-side packet encryption for RAGE 0.3.7 which obviously doesn't have build-in encryption for packages.
To use the script, you'll need to have Typescript installed, instead of this, you can convert the scripts easy to vanilla javascript.
How does it work?
After you transpile your Typescript files to working client-side Javascript, you'll have to run the "Encryptiontool" which is automatically encrypts all .js files stored at your server-files -> client_packages with AES256 and it's given encryption-key inside of your "compile.bat". Make sure that you check out the folder-structure and edit the encryption tool to your needs. Don't encrypt browser-files or browser-javascript. The encryption does only work with the given module-list and files that are used standalone by RAGE. Since the files get executed by "eval" after they are decrypted, you cannot use global variables unless you don't encrypt the scripts which store them. (you could use a file for all global needed variables and load them besides of the encrypted ones). You can create a folder inside of your client_packages which is called "ignored" which will get ignored by the encryptor and can be loaded inside of your index.js file at client-side start.
So at the end, the servers send the decryption key to the client and decrypts all stored files with the browser and parses them to the client and evaluates the code.
Idea behind?
The idea behind was to make it hard as possible to block leakers/leechers copy client-side scripts used by my old project. And it works!
Security issues?
Make sure that you send your encryption key from server to client with encrytion enabled, so people cannot sniff your key to decrypt your files. Even tho, it should be possible to dump the script-files from memory, but this progress will still not make sense, since noone puts such effort into it.
How does the client-files look after encryption?
/** Filename: blips.js Path: ../../server-files/client_packages/game\gameplay Encrypted: Sat Oct 24 2020 23:34:17 GMT+0200 (GMT+02:00) **/ exports.Info = { size: 3372, code: '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' };
Enjoy!
430 downloads
-
Helicam
By GL1TCH1337
This script provides working helicam which has 3 different modes (normal, thermal, night vision), plate recognition system and zoom feature. I have used this script on my own server and never experienced an issue but since I have extracted it from my own gamemode, if you come across a issue, post a comment below, I will try to fix things.
Usage
Right Mouse Button: Changes mode (normal, thermal, night vision) Space: Locks to a vehicle and shows its plate and model. Installing
Put the files you downloaded in their respective places Add require('helicam') to client_packages/index.js Call "enablehelicam" event from serverside or via keydown event. Credits
davwheat - FiveM version of this script.
823 downloads
-
Weapons on Body
By rootcause
This resource attaches your weapons to your character to make them visible to everyone. All you have to do is put away your gun/switch weapons.
Installing
Download & install the latest Efficient Attachment Sync. Put the files you downloaded in their respective places Add require('weapondisplay') to client_packages/index.js All done
Notes
Didn't do a lot of testing, feel free to report issues (would be nice if you include how to reproduce the issue) weaponData.json file will be updated with future GTA V versions, always check weaponData.json Gist to prevent issues.2540 downloads
-
[JS,CEF] Emergency Alert System
By Gernouille
(EN) This script allow you to play emergency alert sound (2 sounds: tornado siren, alert siren), coming soon: amber alert with sound&pop-up
(FR) Ce script vous permet de déclencher des sirènes d'alertes (sirène tornade, sirène d'alerte), à venir: alerte enlèvement avec son&popup
----- HOW TO INSTALL -----
1) Unpack RAGEMP Alert v0.1
2) Drop the content of "client_packages" folder inside your client folder
3) Drop the content of "packages" folder inside your server folder
4) Add in your server index.js :
require('./Alert/sAlert');
5) Add in your client index.js :
require('./Alert/cAlert');
6) Do not forget to change link of mp.browsers.new in Alert/cAlert.js if needed
----- HOW TO USE -----
/alert tornado {repeat time}
--> {repeat time} FROM 1 TO 9 TIMES
Duration: EACH time: 9sec (min: 9sec, max: 81sec)
/alert siren {repeat time}
--> {repeat time} FROM 1 TO 9
Duration: START: 5sec / ACTIVE: 12sec (repeat from 1 to 9) / END: 13sec (min: 30sec, max: 126sec)
/alert siren stop
--> stop the siren immediatly if activated (duration: 13sec)
----- DEMO -----
Tornado Siren:
Alert siren:
Amber alert (coming soon):
589 downloads
-
Bounding Box
By Zekiloni
Simple script to get dimensions of any entity (object, vehicle, ped), center of entity and corners.
Also you can draw bounding box.
373 downloads
- Clientside
- Entity
- (and 2 more)
-
Better Keybinding
By araynimax
This module saves you some time on bindings keys.
Read more here:
366 downloads
-
[JS] Vehicleseat Menu
By {Brace}
This is a Vehicleseat Menu in JavaScript for Rage:MP
Install:
Unzip vehicleseatJS.zip in your root server folder.
Use:
Press "F" or "G" when a Vehicle nearby you.
Contact:
You can Contact me on Discord for Questions.
{Brace}#0571
Have fun!
1719 downloads
-
[DEPRECATED] Vehicle Indicators
By Captien
Vehicle indicators are the main thing in role-play. Without it you can't role-play while driving or you can cause accidents.
So i did that simple resource to give some help to the community
Keys:
Press X for Warning Lights Press left_arrow for Left indicator Press right_arrow for Right Indicator
Use root's resource for synced indicators
1106 downloads
-
Mugshot Board
By rootcause
This resource adds a way to make the local player hold a mugshot board with custom text on it, the custom text and animation won't be synced to others.
You can also use this resource to understand how rendertarget system works which lets you display scaleform on certain game objects.
Installing:
Put policetext into your server's client_packages directory, then add require('policetext/index.js'); to index.js.
Available functions/events:
mp.players.local.mugshotboard.show -> mp.events.call("ShowMugshotBoard") -> Params: title, topText, midText, bottomText, rank = -1 mp.players.local.mugshotboard.hide -> mp.events.call("HideMugshotBoard") -> Params: - And you can access if the local player has a mugshot board or not by using the hasMugshotBoard global variable. Clientside example (pressing F10 will give your character a mugshot board, pressing it again will remove it):
mp.keys.bind(0x79, false, () => { if (!hasMugshotBoard) { mp.players.local.mugshotboard.show(mp.players.local.name, "Top Text", "Mid Text", "Bottom Text", 15); } else { mp.players.local.mugshotboard.hide(); } });
554 downloads
-
Wasted Screen
By rootcause
Installing
Put the files you downloaded in their respective places Download & install Scaleform Messages if you haven't yet, this script needs it Add require('wasted') to client_packages/index.js All done Notes
This script will make the players wait 8 seconds before spawning at the closest hospital. This script was not tested on a gamemode with custom death behavior, you might want to do some changes. Video Preview
1683 downloads
-
Timer Bars
By rootcause
Released a better version here:
Adds timer bars from GTA V/Online.
Installing
Drop the timerbars folder to your server's client_packages folder, then you can use const barlibrary = require('timerbars'); to add timer bars. (don't forget to check examples)
TimerBar Properties
A timer bar has these properties:
title | Title (left text) of the timer bar. (string) useProgressBar | Progress bar of the timer bar. If set to true, a progress bar will be drawn instead of right text. (bool) text | Text (right text) of the timer bar, useless if useProgressBar is true. (string) progress | Progress of the timer bar, useless if useProgressBar is false. (float between 0.0 - 1.0) textColor | Text color of the timer bar. (rgba array or HUD color ID) pbarBgColor | Progress bar's background color. (rgba array or HUD color ID) pbarFgColor | Progress bar's foreground color. (rgba array or HUD color ID) visible | Visibility of the timer bar. (bool) usePlayerStyle | If set to true, timer bar title will be displayed like a GTA Online player name. (bool) You can check this wiki page for HUD color IDs.
Examples
const timerBarLib = require("timerbars"); // lets create some progress bars let timeBar = new timerBarLib.TimerBar("TIME LEFT"); timeBar.text = "33:27"; let teamBar = new timerBarLib.TimerBar("TEAM MEMBERS LEFT"); teamBar.text = "4"; let healthBar = new timerBarLib.TimerBar("BOSS HEALTH", true); healthBar.progress = 0.8; healthBar.pbarFgColor = [224, 50, 50, 255]; healthBar.pbarBgColor = [112, 25, 25, 255]; let rewardBar = new timerBarLib.TimerBar("REWARD"); rewardBar.text = "$500000"; rewardBar.textColor = [114, 204, 114, 255]; // f7 to toggle visibility of bars mp.keys.bind(0x76, false, () => { timeBar.visible = !timeBar.visible; teamBar.visible = !teamBar.visible; healthBar.visible = !healthBar.visible; rewardBar.visible = !rewardBar.visible; }); // f8 will change health bar's value to something random mp.keys.bind(0x77, false, () => { healthBar.progress = Math.random(); });
const timerBarLib = require("timerbars"); let eventTime = new timerBarLib.TimerBar("EVENT TIME LEFT", false); eventTime.text = "01:40"; let thirdPlace = new timerBarLib.TimerBar("3rd: PlayerName3", false); thirdPlace.text = "9 kills"; thirdPlace.textColor = 107; // HUD_COLOUR_BRONZE thirdPlace.usePlayerStyle = true; let secondPlace = new timerBarLib.TimerBar("2nd: PlayerName2", false); secondPlace.text = "12 kills"; secondPlace.textColor = 108; // HUD_COLOUR_SILVER secondPlace.usePlayerStyle = true; let firstPlace = new timerBarLib.TimerBar("1st: AimbotNub", false); firstPlace.text = "30 kills"; firstPlace.textColor = 109; // HUD_COLOUR_GOLD firstPlace.usePlayerStyle = true;
817 downloads
-
Location + Speed Display
By rootcause
Just a small script that displays your location and vehicle speed (if you're in one) next to the mini map.
https://github.com/glitchdetector/fivem-minimap-anchor - credits for minimap anchor code
Notes
You can disable speed display feature by setting useSpeedo to false. Location and speed won't be displayed if your radar is disabled or hidden. Speed unit changes based on your Measurement System setting of GTA V, which you can find in Settings -> Display -> Measurement System.2236 downloads
-
BanAPI
By rootcause
Ban system that supports temporarily/permanently banning names, social club names, IP addresses and HWIDs.
Installing
Put banapi into your server's packages directory Open banapi/database.js and put your MySQL config All done
API
/* getUnixTimestamp() Returns the current Unix timestamp. */ mp.bans.getUnixTimestamp() /* formatUnixTimestamp(unixTimestamp) Converts a Unix timestamp to "day/month/year hour:minute:second" format. Returns a string. */ mp.bans.formatUnixTimestamp(unixTimestamp) /* add(value, banType, reason, endUnixTimestamp) Adds a ban to the bans table, the ban will be permanent if endUnixTimestamp is -1. You need to provide the value like a player's serial, IP or name. endUnixTimestamp must be seconds, NOT milliseconds. Just use the provided getUnixTimestamp() This won't terminate the banned player's connection. Can be used for offline banning. Returns a promise. */ mp.bans.add(value, banType, reason, endUnixTimestamp) /* banPlayer(playerID, banType, reason, endUnixTimestamp) Bans the specified player, the ban will be permanent if endUnixTimestamp is -1. The script will get the value, you just need to provide a player ID and ban type. endUnixTimestamp must be seconds, NOT milliseconds. Just use the provided getUnixTimestamp() This will terminate the banned player's connection. Returns a promise. */ mp.bans.banPlayer(playerID, banType, reason, endUnixTimestamp) /* getInfo(banID) Gets information about the specified ban ID. Returns a promise. */ mp.bans.getInfo(banID) /* remove(banID) Removes the specified ban ID from the bans table. Returns a promise. */ mp.bans.remove(banID)
Ban Types
0 = Name ban, player's current name will be banned. (player.name property) 1 = Social Club name ban, player's current social club name will be banned. (player.socialClub property) 2 = IP ban, player's current IP address will be banned. (player.ip property) 3 = HWID ban, player's current HWID will be banned. (player.serial property)
Example Commands
/* Usage: /ban 5 0 60 Take a break Will nameban the player ID 5 (if there is a player with ID 5) for 60 minutes with the reason "Take a break". */ mp.events.addCommand("ban", (player, _, target, type, minutes, ...reason) => { target = Number(target); type = Number(type); minutes = Number(minutes); let fullReason = reason.join(' '); let targetPlayer = mp.players.at(target); if (targetPlayer) { mp.bans.banPlayer(targetPlayer.id, type, fullReason, mp.bans.getUnixTimestamp() + (minutes * 60)).then((banID) => { player.outputChatBox(`Banned ${targetPlayer.name} with the reason '${fullReason}' for ${minutes} minutes.`); console.log(`${player.name} banned ${targetPlayer.name} for ${minutes} minutes. (${fullReason}) BanID: ${banID}`); }).catch((err) => { player.outputChatBox(`Error occurred while banning ${targetPlayer.name}.`); player.outputChatBox(`Error: ${err.message}`); }); } else { player.outputChatBox(`No player with the ID ${target} found.`); } }); /* Usage: /baninfo 3 Will show information about ban ID 3 (if it exists) */ mp.events.addCommand("baninfo", (player, banID) => { banID = Number(banID); mp.bans.getInfo(banID).then((banInfo) => { if (banInfo) { player.outputChatBox(`Ban Information (BanID ${banInfo.ID})`); player.outputChatBox(`Type: ${banInfo.Type}`); player.outputChatBox(`Value: ${banInfo.Value}`); player.outputChatBox(`Reason: ${banInfo.Reason}`); player.outputChatBox(`Is Permanent: ${banInfo.LiftTimestamp == -1}`); if (banInfo.LiftTimestamp > -1) player.outputChatBox(`Ends: ${mp.bans.formatUnixTimestamp(banInfo.LiftTimestamp)}`); } else { player.outputChatBox(`BanID ${banID} expired or doesn't exist.`); } }).catch((err) => { player.outputChatBox(`Error occurred while getting BanID ${banID}.`); player.outputChatBox(`Error: ${err.message}`); }); }); /* Usage: /removeban 5 Will remove the ban with specified ID (if it exists) */ mp.events.addCommand("removeban", (player, banID) => { banID = Number(banID); mp.bans.remove(banID).then((success) => { if (success) { player.outputChatBox(`BanID ${banID} is now history...`); } else { player.outputChatBox(`Couldn't remove BanID ${banID}, probably expired or doesn't exist.`); } }).catch((err) => { player.outputChatBox(`Error occurred while removing BanID ${banID}.`); player.outputChatBox(`Error: ${err.message}`); }); });
Notes
This script will handle banned players when they join. (kick if they're still banned, remove ban if their ban expired) Don't use JS timestamps as they are milliseconds, use the provided mp.bans.getUnixTimestamp()
822 downloads
-
DialogUI
By davidsl6
Need some dialog menus with 2 buttons, for example to show user your server's rules and 2 buttons, "accept" and "not accept"?
DialogUI can help you with that!
Example of using:
const dialogUILib = require('dialogui'); // Load the library var dialog = new dialogUILib.DialogUI("My Title", ["Line number 1", "Line number 2","Line number 3"], "Left Button", "Right Button"); // Make a new instance of dialogUI. dialog.show(); // Show the dialog Your players use enter and escape keys? DialogUI support them.
You can know which button is pressed by using the OnDialogResponse client-side event, which have 1 parameter of type Boolean, which indicate if the left button pressed.
402 downloads
-
Playerlist (C#)
By rgnbgnhnd
This is a C# port of the Player List script by rootcause.
-small.gif
All credits go to root for the actual resource and the description, which i just yoinked and slightly altered.
Source code will be available on github oneday...
310 downloads
-
Kill Feed
By rootcause
Simple kill feed script that displays recent deaths on the server.
Installing
Put the files you downloaded in their respective places Add require('killfeed') to client_packages/index.js All done
Notes
Even though this is a kill feed script, you can send other messages to players by passing a string (your message) to pushToKillFeed event. The kill feed is located below the ammo counter HUD element. The kill feed displays 5 items (variable: maxKillFeedItems) and will display an item for 30 seconds. (variable: killFeedItemRemoveTime) Not all death reasons are detected but weaponData.json covers most cases. Default kill feed font might not support all characters.846 downloads
-
RAGE 0.3.7 - Hitsync / Weaponsync
By DevGrab
This packages includes custom weapon synchronization and damage modification made with an own system. Weapon damage can handled server-side.
Make sure that you remove missing functions from the script, since the script is ripped out of my old source-code.
If you can read the code, it's pretty easy to implement hit indicators since the script already supports a lot of this. (headshot sound, hitmarker, ...)
Enjoy!
1179 downloads
-
Client-Side Packet encryption
By kemperrr
About This File
This package contains a full implementation of client-side packet encryption for RAGE 0.3.7 which obviously doesn't have build-in encryption for packages.
Includes packer like webpack (with watch mode), import/export from ES6 (thanks https://github.com/alangpierce/sucrase) and picking packages from node_modules
To use the script, you'll need to have hands and installed node js.
Idea behind?
The idea behind was to make it hard as possible to block leakers/leechers copy client-side scripts. And it works!
Security issues?
Make sure that you send your encryption key from server to client with encrytion enabled, so people cannot sniff your key to decrypt your files. Even tho, it should be possible to dump the script-files from memory, but this progress will still not make sense, since noone puts such effort into it.
How start work?
Steps:
unpack zip archive to root server folder (path like a 'game-server/src_client') Open terminal in src_client directory Enter npm install or yarn in terminal Enter npm run watch or yarn watch to start watching 'src_client/sourcecode' directory Complete, now u can edit files in 'src_client/sourcecode' directory
Enjoy!
334 downloads
-
[v0.3.5] Implementing Custom NameTags
By heyMad
Hi everyone!
In need of a custom script for a Custom NameTag, I found the @hartority script, however, it was an outdated project and it had been made for version 0.2 of RageMP, with some references already removed, well, I bring you today the corrected code.
Requirements:
RageMP server files. Nothing more! Just have fun. Introduction: This script is a reliable edition of the one produced by @hartority with only a few references to the RageMP library, so all code is credit @hartority. Let's start: 1. Go to "client_packages" folder in "RAGEMP/server-files" directory, usually: 2. Create a JavaScript archive (.js) named "customtag.js", example:
3. Inside the "customtag.js" paste this code:
4. Save "customtag.js" file, and open "index.js" in "C:\RAGEMP\server-files\client_packages" directory and put this:
End! Just test it and tell me if something goes wrong
Usage example:
The original code topic of @hartority:
Thanks for all feedbacks,
mad
thanks @hartority for your commitment
if you do not authorize this topic, please let me know
886 downloads
-
Free Cam
By ynhhoJ
With this script you can get coordinates of the camera and coordinates of where camera is pointing.
F5 - enable/disable. F5+Space - disable without warping to ground. W/A/S/D/Space/LCtrl - move. /savecam [name] - save Camera position. Example of save:
Position: -64.17094421386719, -824.6749877929688, 373.018310546875 | pointAtCoord: -76.13325500488281, -807.392822265625, 320.28961181640625 | entity: 139321 - First Pos
Author: @ragempdev
I just added possibility to save camera pos and pointAtCoord
2647 downloads
-
Flaming Footprints
By rootcause
A small (and extremely delayed, it was originally planned for halloween!) C# resource that lets players toggle flaming footprints. This feature was first used in GTA Online's Lost vs Damned adversary mode.
Installing & Using
Put the files you downloaded in their respective places Use /footprints command in game to toggle the effect211 downloads
-
Hair Overlays
By rootcause
This resource adds hair overlays/hair tattoos/hair decals for freemode male and freemode female. Hair overlays are used in GTA Online for better looking hair.
Requirements
RAGE Multiplayer 1.1 and above mp.game.data resource Some script editing
Installing
Put the files you downloaded in their respective places Install mp.game.data if you haven't installed it yet Add require('hair-overlay') to client_packages/index.js All done
Clientside API
/** * Call after updating the local player's hair style on clientside. * Useful for barber shop preview and other customization related scripts. */ mp.players.local.applyHairOverlay();
Serverside API
/** * Call after updating a player's hair style on serverside. * Not using this function might cause visual desync until the player is restreamed in to other players. */ player.applyHairOverlay();
Example
Commands used during development:
// Clientside (https://rage.mp/files/file/296-better-clientside-commands/ - for addCommand clientside) // /client_sethair 72 0 0 mp.events.addCommand("client_sethair", (hair, color, highlight) => { hair = Number(hair); color = Number(color); highlight = Number(highlight); mp.players.local.setComponentVariation(2, hair, 0, 2); mp.players.local.setHairColor(color, highlight); mp.players.local.applyHairOverlay(); }); // Serverside // /sethair 72 0 0 mp.events.addCommand("sethair", (player, _, hair, color, highlight) => { hair = Number(hair); color = Number(color); highlight = Number(highlight); player.setClothes(2, hair, 0, 2); player.setHairColor(color, highlight); player.applyHairOverlay(); });
Notes
Streamed in freemode male/freemode female players will always receive a hair overlay, meaning no more 100% bald characters. Local player won't have a hair overlay until applyHairOverlay function is used. (either locally or from serverside) clearFacialDecorations function is used to remove the old hair overlay on clientside. Meaning if you have other scripts that use setFacialDecoration, applied facial decoration(s) will be removed after a hair overlay change. Hair overlays are retrieved from the game, the problem with this approach is earlier hair styles (drawable 1 to 20? something like that) for both freemode male/freemode female lacks decal information which causes the resource to apply the fallback/default hair overlay. (fm_hair_fuzz) Unless they have forced component information (check mp_m_freemode_01_gunrunning_hair_shop.meta for forced decal component example), third party hair styles will apply the fallback/default hair overlay. (fm_hair_fuzz) Also on GitHub: https://github.com/root-cause/ragemp-hair-overlays607 downloads
-
Synced Nitro
By Captien
Hello everyone,
This resource gives the ability to add Nitro to any car and syncs the effect of the nitro in your exhaust, so you can experience its feeling in-game.
//Server-side player.call('giveNitro', [amount, infinite]); //Client-side mp.events.call('giveNitro', [amount, infinite]); //Note: Nitro charges automatically no matter what value you give. Press X in-game to activate the nitro.711 downloads
