Scripts
207 files
-
Walking Styles
By rootcause
This resource lets players choose their walking style. Selected walking style is synced to other players.
Installing
Put the files you downloaded in their respective places Download & install BasicMenu or NativeUI if you haven't yet, this script needs it Add require('walkingstyles') to client_packages/index.js All done Controls
F5 Key - Show/hide walking style menu.
Adding/Removing Walking Styles
You can add/remove walking styles by changing walkingStyles array inside packages/walkingstyles/index.js, make sure your AnimSet is valid!
1909 downloads
-
Cash Registers
By rootcause
Requirements
RAGE Multiplayer 1.1 and above Currency API (define a currency named "cash" after installing)
Installing
Put the files you downloaded in their respective places Add require('cashregisters') to client_packages/index.js All done
Config
The config.json file can be found inside packages/cashregisters/json/.
minShotReward, maxShotReward: Minimum and maximum amount of cash a cash register will drop when shot, default values are 20 (min) and 60 (max).
minEmptyReward, maxEmptyReward: Minimum and maximum amount of cash a player will get from emptying a cash register by pressing interaction key in front of it, default values are 70 (min) and 120 (max).
cashLife: Milliseconds a cash drop from a cash register will stay for, default value is 30000. (30 seconds)
cashRegisterCooldown: Milliseconds that need to pass before a cash register is available for robbery again, default value is 300000. (5 minutes)
createBlips: Whether cash registers will have a blip/icon on the map, default value is true.
Notes
Emptied cash registers won't open like in the video, it was removed due to the issues it caused. You'll see a red "Robbed" label instead. Shooting at the cash registers without aiming in first person mode can be inaccurate at times. Since this resource hides the game's cash registers, if you play on a server that uses this resource then connect to a server that doesn't use this resource without restarting GTAV, cash registers will most likely be invisible. Credits to GTA Wiki for the preview image. Available on GitHub: https://github.com/root-cause/ragemp-cash-registers533 downloads
-
Crouch
By rootcause
Lets you crouch by pressing CTRL.
Installing
Put the files you downloaded in their respective places Add require('crouch') to client_packages/index.js All done
Notes
Since both this script and walking styles script uses setMovementClipset and resetMovementClipset, they probably won't work at the same time. Crouching is synced between players.2175 downloads
-
G button for Passenger
By Kudze
Improved version of already existing passenger script posted by George.
* Upon pressing G button this script searches for the first closest and free seat in the vehicle. If it finds one it makes player to enter into the seat.
1245 downloads
-
n0minal's Interior Browser (client-side only!)
By n0minal
n0minal's Interior Browser
Hello Dear Ragers,
Today I bring you guys a simple - but useful - browser for interiors to preview.
I spent something like ~2 hours to make it, so it might contain bugs, if you find a bug please post it in here or contact me by PM and I'll fix it as soon as possible.
Commands ⌨️
There are two commands (and binds for it):
/interior (or shortened: /i): Loads the Interior Browser menu, in which you can interact and select an interior to preview. /leave (or shortened: /l): Leaves the current interior and gets teleported back to your first position when you called the browser for the first time. The Script 📰
Download the .zip file and extract it inside your client-packages folder, after that, create (or edit) a index.js file in your client_packages root folder with the following content:
//requires interior-browser package require("interior-browser"); and you're ready to go!
Github Link: https://github.com/n0minal/interior-browser That's all,
See you on the next release!
1054 downloads
-
Hitmarker
By DevGrab
Use this script to implement hitmarkers to your script. As you can see at the screenshot, the health of the player will pop-up at the position of the player when you hit them.
Use:
Hits.add(amount, position);
Where you want to spawn a hitmark with the number or amount you want.
Enjoy!
1288 downloads
-
Local Voice Chat (3D)
By ragempdev
A local voice chat example using built-in voice chat API. Look for constants to change max range, auto volume (instead of changing volume on your own) and 3D effect.
Press F4 to toggle local player's muted state.
As of 24th Oct 2018 you need to use "testing_voice" branch to utilize voice chat API.
6011 downloads
-
Welcome Cutscene (From GTA:Online)
By Wdoyle
Preview:
Welcome Cutscene
Getting started
I have created an event called: startWelcomeCutscene - the First parameter is the Gender - 0 = Male, 1 = Female, the Second parameter is the name shown during the welcome process (This can be null)
To include a name on the Welcome Screen using Draw Text when the Plane appears use. Be sure to edit the variable: ServerName (Line 9)
//Server Side player.call("startWelcomeCutscene",[0,"John"]) //Client Side mp.events.call("startWelcomeCutscene", 0, "John"); To just simply show the Welcome Screen (no name shown)
//Server Side player.call("startWelcomeCutscene", [0]) //Client Side mp.events.call("startWelcomeCutscene", [0]); This will then start a screen fade out, load the correct items, clone your player for the cutscene, remove unnecessary players from the movie and then being cutscene.
Once the movie has finished it will call:
//Clientside mp.events.add("cutsceneEnded", () => { // Do something like new camera etc }); //Serverside mp.events.add("cutsceneEnded", (player) => { // Spawn Player }); So be sure to add this either Serverside or Clientside as it does both: call and callRemote for this function.
I would recommend trigger your Spawn Process after the "cutsceneEnded" event.
Special thanks to @Jer for providing the initial details from @DevGrab
Things to note:
If the server crashes - the jet may get left in the cutscene (even after re-log) - Action: Reload Game I have tried triggering mp.game.cam.doScreenFadeOut(100); when the cutscene is finished however I had no luck. However if your screen does go black, just call: mp.game.cam.doScreenFadeIn(0);
If you want to build your own cutscenes in the future, be sure to check out how this cutscene was initially developed by going to:
https://github.com/root-cause/v-decompiled-scripts-1868/blob/master/fm_intro.c
Line 6963 shows you how to register certain models and also how to hide models (using Male and Female as example)
1595 downloads
-
[C#] Keys Bind for C#
By CMHDev
This function helps you to add keys binding if you use C # client side ...
Example of use :
Tick Event
KeyManager.KeyBind(0xA2, () => { Chat.Output("Key Bind Work"); }); KeyManager.KeyBind(KeyManager.KeyMouse, () => { Cursor.Visible = !Cursor.Visible; });
702 downloads
-
Basic Car Tuner
Hey
i made a simple Car Tuner for RageMP with NativeUI.
You can open the menu with "F8".
I have it on GitHub for you feel free to fork it:
https://github.com/SupperCraft5000/Basic-Car-Tuner
You can Tune not all Thins but the Basics.
2798 downloads
-
Light Control
By rootcause
This resource adds a light control menu to toggle the state of various lights in GTA V. Use /lcmenu command to access the menu.
Since this is a new feature of RAGEMP, light IDs don't have names/descriptions yet. (Maybe people will document them later, who knows...)
You might also want to check the screenshots for a preview of various light states.
Installing
Download & install the latest NativeUI if you haven't already, this script needs it Drop the lightcontrol folder to your server's client_packages Add require('lightcontrol') to client_packages/index.js All done
Q: "But I still have weird lights/fog around the city buildings?"
See:
1174 downloads
-
Better Instructional Buttons
By Kar
NB: This include does not entirely work like the original.
NB: The class is now called instructionalButtons instead of hudManager.
NB: This include also includes a more advanced version of the BasicScaleform class by kemperr, just called ScaleForm now.
v2.0.0
- Added instructionalButton.hasControl(control).
- Added instructionalButton.getButtonCount().
- Removed the padding of 10.
- Added RGB support (instead of just RGBA... alpha defaults to 180 for RGB).
- Revamped the structure used to store buttons (it was dumb before, wasting variables and not making use of Javascript features).
v1.0.2
- You can now alter any instructional button without it being redrawn/shown to you (Basically you can edit them, without them popping up on your screen, forcefully).
- Added instructionalButton.changeButtonControl(title, new_control).
v1.0.1
- Fixed the an issue where when using multiple instructional buttons multi script wide, if one button count was more than others, the buttons would show up across different instructional buttons.
- Removed support for hex colours with a #. Now to use a colour, just use 'FF00FF'. Using # here is a waste of time.
v1.0.0
- Fixed instructional buttons rendering last button created on the client only.
- Instructional buttons background now default to black, if no colour was used.
- A padding of 10 is now set on horizontal instructional buttons.
- Support for custom button names.
- Added instructionalButton.changeButtonTitle(control, new_title).
- Added instructionalButton.isActive().
- Example:
const instructions = require('/better_instructions'); const horizontalInstructionList = new instructions(-1); horizontalInstructionList.addButton('Create Roadblock', 'M'); horizontalInstructionList.addButton('Right', 175); horizontalInstructionList.addButton('Left', 174); if(!horizontalInstructionList.isActive()) { horizontalInstructionList.toggleHud(true); } setTimeout( () => { if(horizontalInstructionList.isActive()) { horizontalInstructionList.toggleHud(false); } }, 10000); /* Vertical Instructions */ const verticalInstructionList = new instructions(1, 'ff000'); modShopInstructions.addButton('Toggle RAGE Menu', 'F2'); if(!verticalInstructionList.isActive()) { verticalInstructionList.toggleHud(true); } setTimeout( () => { if(verticalInstructionList.isActive()) { verticalInstructionList.toggleHud(false); } }, 10000);
Original Include
- Credits go to Captien for the original release.
362 downloads
-
Weather and Time changing GUI
By KGamer63
With this simple Script you can open an UI that allows you to change the Time and Weather.
Installation:
1. Copy the Files into your server-directory.
2. Add require("./weatherChanger"); to your index.js in the client_packages folder.
Usage:
Press F9 to open the UI.
1387 downloads
-
Advanced Chat - Dependency free
By pichalomo
Very simple but complete chat written in vanilla js with arrows history navigation, time stamp, user colors prevention, character count, lower cased commands and scrollbar.
Ragemp chat api works perfectly
Settings
Edit settings in advanced-chat/js/main.js
Install
Extract in to advanced-chat folder and copy it to client_packages Add this somewhere client-side. (Eg: index.js) mp.gui.chat.show(false); //Disables default RageMP Chat const chat = mp.browsers.new('package://advanced-chat/index.html'); chat.markAsChat(); Add this somewhere server-side (Eg: index.js)
mp.events.add("playerChat", (player, message) => { mp.players.broadcast(`${player.name}: ${message}`); });
1957 downloads
-
Shortcuts (Animations) on Numpad
By SnillocTV
Load this Variables on Login:
gm.mysql.handle.query("SELECT * FROM shortcuts WHERE charId = ?", [player.data.charId], function (err10,res10) { if (err10) console.log("Error in loadShortcuts: "+err10); if (res10.length > 0) { res10.forEach(function (shortcutData) { player.data.numpad1A = shortcutData.num1animA; player.data.numpad1B = shortcutData.num1animB; player.data.numpad1C = shortcutData.num1animC; player.data.numpad1D = shortcutData.num1animD; player.data.numpad1Name = shortcutData.num1name; player.data.numpad2A = shortcutData.num2animA; player.data.numpad2B = shortcutData.num2animB; player.data.numpad2C = shortcutData.num2animC; player.data.numpad2D = shortcutData.num2animD; player.data.numpad2Name = shortcutData.num2name; player.data.numpad3A = shortcutData.num3animA; player.data.numpad3B = shortcutData.num3animB; player.data.numpad3C = shortcutData.num3animC; player.data.numpad3D = shortcutData.num3animD; player.data.numpad3Name = shortcutData.num3name; player.data.numpad4A = shortcutData.num4animA; player.data.numpad4B = shortcutData.num4animB; player.data.numpad4C = shortcutData.num4animC; player.data.numpad4D = shortcutData.num4animD; player.data.numpad4Name = shortcutData.num4name; player.data.numpad5A = shortcutData.num5animA; player.data.numpad5B = shortcutData.num5animB; player.data.numpad5C = shortcutData.num5animC; player.data.numpad5D = shortcutData.num5animD; player.data.numpad5Name = shortcutData.num5name; player.data.numpad6A = shortcutData.num6animA; player.data.numpad6B = shortcutData.num6animB; player.data.numpad6C = shortcutData.num6animC; player.data.numpad6D = shortcutData.num6animD; player.data.numpad6Name = shortcutData.num6name; player.data.numpad7A = shortcutData.num7animA; player.data.numpad7B = shortcutData.num7animB; player.data.numpad7C = shortcutData.num7animC; player.data.numpad7D = shortcutData.num7animD; player.data.numpad7Name = shortcutData.num7name; player.data.numpad8A = shortcutData.num8animA; player.data.numpad8B = shortcutData.num8animB; player.data.numpad8C = shortcutData.num8animC; player.data.numpad8D = shortcutData.num8animD; player.data.numpad8Name = shortcutData.num8name; player.data.numpad9A = shortcutData.num9animA; player.data.numpad9B = shortcutData.num9animB; player.data.numpad9C = shortcutData.num9animC; player.data.numpad9D = shortcutData.num9animD; player.data.numpad9Name = shortcutData.num9name; }); } });
Contact:
You can Contact me on Discord for Questions. https://discord.gg/epD7fsv
I can make Scripts for you write me on Discord please German my english is so Bad : SnillocTV
978 downloads
-
Smooth Throttle Script
By notsosmart
This resource will stop your vehicle from constantly skidding when acceleration. It will also stop you from reversing when you're braking. You will come to a complete stop and then you have to press reverse again to actually reverse. Automatic brake lights are included.
Note that you can hold your handbrake (space bar) down and accelerate and this will temporarily remove the throttle limiter.
964 downloads
- Smooth
- acceleration
- (and 5 more)
-
Vehicle Manager
By Captien
Vehicle Manager is a easy to use device to manage your vehicle easily. Control your doors, lights, Auto-seat belts, engine, and much more with one click.
Usage:
Press B to open/close the Manager. Click any button you want to control the vehicle.
2121 downloads
-
Console
By Kasimir
To access the console press F11 ingame.
Motivation
RAGE console is designed to be a simple and universal logging library with support for client-side, including CEF and server-side. The server-side currently logs all the logs into separate daily files.
Installation
Installation is extremely simple
Copy "packages" folder inside your server "packages" folder, except config.json if you have edited it Copy "client_packages" folder inside your "client_packages" folder Edit your "client_packages" -> index.js to include the rage-console with: require('_rage-console'); (remember to paste this on line 1) Config
The config exists inside your 'packages/_rage-console/config.json'. You can freely edit these, if no data is provided it will default to default settings. These options are accepted by the config:
zippedArchive: A boolean to define whether or not to gzip archived log files. (default 'false') name: Filename to be used to log to. This filename can include the date placeholder which will include the formatted. (default: 'YYYY-MM-DD') maxSize: Maximum size of the file after which it will rotate. This can be a number of bytes, or units of kb, mb, and gb. If using the units, add 'k', 'm', or 'g' as the suffix. The units need to directly follow the number. (default: '30m') maxFiles: Maximum number of logs to keep. If not set, no logs will be removed. This can be a number of files or number of days. If using days, add 'd' as the suffix. (default: '30d') { "logs": { "name": "YYYY-MM-DD", "maxSize": '30m', "maxFiles": '30d', "zippedArchive": false } } Upgrading
Upgrading is extremely simple
Copy "packages" folder inside your server "packages" folder Copy "client_packages" folder inside your "client_packages" folder Usage
Can be used on server-side or client-side. You do not need to require the file as these are available globally.
Writes an info log to the console.
console.log('Hey! Log something?'); Writes an info log to the console.
console.info('Hey! Log something?'); Writes an warning log to the console.
console.warn('Hey! Log something?'); Writes an error log to the console.
console.error('Hey! Log something?'); Usage with CEF (Browser)
To use with CEF you need to add the following line to your HTML <head> element, put this to the top of all your script files.
<script src="package://_rage-console/CEF/debugger.js" crossorigin="anonymous"></script> Build in commands
help — provides all the commands available
clear — clears all the logs
API
Enable or disable access to console [client-side]
terminal.active = true/false; Add command handler [client-side]
terminal.commands.add('pos', { description: 'Gets the position of the player' }, function(...arguments) { return ` X: ${user.position.x.toFixed(2)}, Y: ${user.position.y.toFixed(2)}, Z: ${user.position.z.toFixed(2)} - R: ${user.getHeading(true).toFixed(2)}`; }); Todo
Add options to disable and enable server-side log files Add options to custom style the console, mainly due to accessibility Run proper tests and clean the logic Add ability to see which file the log is coming from Add ability to be used with C bridge Bugs/Feedback
Bugs should be reported currently in RAGE Discord channel to the username @Porn on private message, I appreciate any bugs being reported.
If you have a feature request please do the same as mentioned above.
This is currently in BETA and some stuff is still unpolished.
1541 downloads
-
2D Text Edtior
By ynhhoJ
This script will allow you to quickly and easily work with 2D text in the game.
Contributions:
rootcause
Captien
micaww
In 1.0.5 update Scale-X and Outline of 2D text doesn't work and idk where's problem, because i can't fix it...
360 downloads
-
CustomChatPlus
By MiMIMi
What is this?
This is a @MrPancakers's custom chat with scroll bar with a simple addition - it adds option to use arrow up, down key to move thru your chat history. Just like in SAMP! How to install?
Extract everything into client_packages folder and add the chat script into your index.js. require("/chat/index.js"); Note
This may include some bugs and I do not provide "tech support" for it This was created in version 0.3.7 Credits
@MrPancakers (https://rage.mp/profile/5511-mrpancakers/)1610 downloads
-
AnimPlayer
By TurEduard
Hi. To begin with, excuse me for my English.
I share my resource for playing the animation.
You can find animation on request.
I wrote it primarily for myself, do not blame me for nothing. Сan anyone need.
My resource is like Animation Viewer by Hazes but use another base and written in pure js.
How to install:
UnZip the file in server-files. How to use:
Use ~ or /animplayer to browse gui. /animplayer [request] for find animations coinciding with request. /animplayer [dist / dist+name] for find animation with id = dist and type = name. /animflag [up/down/number] increase, decrease, or set the flag for animation Use LEFT/RIGHT arrow keys to cycle through (dist) animations. Use CTRL + LEFT/RIGHT arrow keys to cycle through (dist) 100 animations at once. Use SHIFT + LEFT/RIGHT arrow keys to cycle through (dist) 10 animations at once. Use UP/DOWN arrow keys to cycle (name) animations. Use CTRL + UP/DOWN for increase or decrease flag. Use BACKSPACE to reset the search list. Use SPACE to play animation if you change parameter AnimPlayer.autoPlay in resource GitHub: https://github.com/TurEduard/rage.mp-animplayer
1333 downloads
-
[JS] ParticleFX Server-side API
By Tampa
Features
Sync Streamer Events Easy to use
API
+ Added mp.particleFx.addLoopedAtCoord (Synced!) + Added mp.particleFx.addLoopedOnEntity (Synced!) + Added mp.particleFx.destroy (Synced!) + Added player.startParticleFxLoopedAtCoord (Not synced!) + Added player.startParticleFxLoopedOnEntity (Not synced!) + Added player.stopParticleFx (Not synced!)
Examples
mp.events.add({ 'onPlayerParticleFxStreamIn' : (player, particleId) => { console.log(`[onPlayerParticleFxStreamIn] => ${player.name} - ${particleId}`); }, 'onPlayerParticleFxStreamOut' : (player, particleId) => { console.log(`[onPlayerParticleFxStreamOut] => ${player.name} - ${particleId}`); }, 'onParticleFxEntityDisconnect' : (player, particleId) => { console.log(`[onParticleFxEntityDisconnect] => ${player.name} - ${particleId}`); } }); mp.events.addCommand({ 'fx_carwash2_stop' : (player) => player.stopParticleFx('car.wash2'), 'fx_carwash2' : (player) => { const id = 'car.wash2', fxName = 'scr_carwash', effectName = 'ent_amb_car_wash_jet', position = { x: player.position.x, y: player.position.y, z: player.position.z + 3.0 }, rotation = { x: 0, y: 0, z: 0 }, scale = 15.0, xAxis = true, yAxis = true, zAxis = true ; player.startParticleFxLoopedAtCoord(id, fxName, effectName, position, rotation, scale, xAxis, yAxis, zAxis); } }) mp.events.addCommand({ 'fx_carwash_stop' : () => mp.particleFx.destroy('car.wash'), 'fx_carwash' : (player) => { const id = 'car.wash', fxName = 'scr_carwash', effectName = 'ent_amb_car_wash_jet', position = { x: player.position.x, y: player.position.y, z: player.position.z + 3.0 }, rotation = { x: 0, y: 0, z: 0 }, scale = 15.0, xAxis = true, yAxis = true, zAxis = true ; mp.particleFx.addLoopedAtCoord(id, fxName, effectName, position, rotation, scale, xAxis, yAxis, zAxis); } }); mp.events.addCommand({ 'fx_moneyrain' : (player) => { const id = 'moneyrain', fxName = 'scr_xs_celebration', effectName = 'scr_xs_money_rain_celeb', offset = { x: 0.0, y: 0.0, z: 1.25 }, rotation = { x: 0, y: 0, z: 0 }, scale = 1.25, xAxis = true, yAxis = true, zAxis = true ; const fx = mp.particleFx.addLoopedOnEntity(id, player, fxName, effectName, offset, rotation, scale, xAxis, yAxis, zAxis); setTimeout(() => fx.destroy(), 9000); } }); mp.events.addCommand({ 'fx_barber' : (player) => { const id = 'barber', fxName = 'scr_barbershop', effectName = 'scr_barbers_haircut', offset = { x: 0.0, y: 0.0, z: 0.75 }, rotation = { x: 0, y: 0, z: 0 }, scale = 1.0, xAxis = true, yAxis = true, zAxis = true ; const fx = mp.particleFx.addLoopedOnEntity(id, player, fxName, effectName, offset, rotation, scale, xAxis, yAxis, zAxis); setTimeout(() => { fx.destroy(); player.setClothes(2, Math.floor(Math.random() * 74), 0, 2); }, 900); } });
Introduction
470 downloads
-
Agreement / Contract API (NodeJS)
By umutbicer
Hi guys!
A function works when the contract is accepted by everyone.
I tried to write similar to root's inventory-api.
Contact me! If you want to change something
Please Download from Github.
https://github.com/QueennN/AgreementAPI
!!!VERY IMPORTANT NOTICE!!! Using player.id is not a reliable way while the agreement is active(not signed), the player can leave the game and player.id can be changed. For this reason, you should use a unique id. For example, database id.My database is player.charid.You have to change player.charid .!!!! You can change 'playerLogin' event too. Its my auth event. EXAMPLE:
addAgreement("key","name","desc",acceptFunction()=
aS.addAgreement('spawn',"Spawn ","perfect desc",(data,chars)=>{ for(let cid in chars){ let players=mp.players.toArray().filter(p=>p.charid==cid) for(let i in players){ players[i].position=data } } }) player.createAgreement("key" , [player-uniqid list] , time , data)
player.createAgreement("spawn",[player.charid],55,{x:56,y:98,z:100}) player.signAgreement(activeAgreemnts Index,decision)
player.signAgreement(index,true)42 downloads
-
Better G Seats
Hello yes very nice. I have a nice resource for you.
You press G. It finds the nearest vehicle, and the nearest seat in such vehicle, and makes you get in it. Supports vehicles without doors, the bus with like 12 seats or whatever it has. Should support all newly added vehicles too, DLC vehicles etc.
For vehicles with grab holds, G will make you enter the vehicle (like granger), SHIFT + G will force you to grab onto the sides, even if no one is inside the vehicle.
Locking:
To stop people getting in as passenger, like a locked vehicle use this code somewhere in your server:
vehicle.setVariable('locked', true) To install:
- Place the folder from inside client_packages into your client_packages folder.
- Add
require('./BetterGSeats/seats.js'); to your client index.js
- Very nice)
600 downloads
-
Custom Pause Menu
By Larsalex
🔶 Custom Pause Menu 🔶
Using the game file pausemenu.xml to remove unnecessary/faulty items from the pause menu (esc) in RAGE Multiplayer.
Also fixed the radio volume control 😁
What was changed 🛠
Remote location 🗑
History, statistics, game, network, friends, gallery, store, rockstar editor Deleted sub-items 🗑
Voice chat, notifications, rockstar editor, save and launch Deleted options 🗑
❌ (TODO) Key assignment -> everything related to GTA Online Audio -> everything related to GTA Online & Self Radio Video -> Subs Added items 🛠
Video -> Language Fixed options 🛠
Audio -> Music volume Audio -> Radiostation Requirements ⚙️
RAGE Multiplayer server version 1.1+ Installation 💾
Copy the client_packages folder to the server folder Good guy's ❤️
hromik for the help Despair for playing World Of Tanks README 📒
README (RU)
LICENSES 📝
MIT License
GITHUB 📰
CLICK ME, BOY!
1227 downloads
