Jump to content

207 files

  1. 0.3.7+ Client-Side Packet encryption

    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

       (1 review)

    2 comments

    Updated

  2. Hitmarker

    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

       (2 reviews)

    3 comments

    Submitted

  3. RAGE 0.3.7 - Hitsync / Weaponsync

    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

       (3 reviews)

    1 comment

    Submitted

  4. Flatbed

    Car broke down on you? np.
    Github Repo & Readme

    Tested on 1.1
    Usage:
    X - Ramp up/down LSHIFT - Pull Car/ Detach Car (align the ramp with the car then press to pull)

    980 downloads

       (2 reviews)

    6 comments

    Updated

  5. Custom Pause Menu

    🔶 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

       (7 reviews)

    2 comments

    Updated

  6. Playerlist (C#)

    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

       (4 reviews)

    1 comment

    Updated

  7. Inactive Car Despawner after Timer

    This is written in NodeJS, and is only Server Side!
    With this Script, all Vehicles, which are not moved are despawned after X minutes.
     
    NOTE: Code and comments on english
    Video (english explenation):
    Installation:
    Put the folder in your packages directory

    424 downloads

       (2 reviews)

    0 comments

    Submitted

  8. Pet System

    This is my first resource to RAGEMP community, a pet system based on peds using JS.
    NOTE: Code and comments on english, return messages on spanish
    Video (spanish explanation):
    Installation:
    Put the files you downloaded in their respective places
    How to use it:
    Key C - Call/save your pet
    Key K - Sit/get up your pet
    Key Z - Sleep/wake up your pet
    Key F - Follow/unfollow your pet
    Key B - Your pet go out to find a ball (you have to throw it first)
    GitHub: https://github.com/brifemu/petCampCode
    License: MIT License

    661 downloads

       (2 reviews)

    4 comments

    Updated

  9. 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

       (4 reviews)

    2 comments

    Updated

  10. Timer Bars

    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

       (4 reviews)

    1 comment

    Updated

  11. DialogUI

    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

       (0 reviews)

    1 comment

    Updated

  12. [SCALEFORM] Chat

    This resource introduces the known chat scaleform from GTA:O. This chat supports (TEAM, LOCAL, GLOBAL) chats.
    CONTROLS:
    T (GLOBAL chat) Y (TEAM chat) U (LOCAL chat) alt + shift (Changes language from English to the secondary mapped language) PAGE_UP (Scroll history up) works only when input is opened PAGE_DOWN (Scroll history down)  works only when input is opened Known Issues:
    Message colors aren't supported due to scaleform Chat supports extra language besides English, but the language should be mapped Language Mapping:
    For more information about how to language map, please click here
    API:
    Client-side API
    // Client side // Property getter/setter Boolean (Disables/Enables chat input) mp.gui.chat.disabledInput = true; mp.gui.chat.disabledInput // Property getter Boolean (Check if chat is open) mp.gui.chat.enabled; // Function to clear localPlayer's chat feed mp.gui.chat.clear(); // Trigger chat's visibility (visible: Boolean); mp.gui.chat.visible(visible); /* * msg: string * scope: string (message's scope (Author [scope] msg)) * author: string (Default: [SERVER]) * authorColor: int hudColorID (https://wiki.rage.mp/index.php?title=Fonts_and_Colors) (Default: white) */ mp.gui.chat.sendMessage(msg, scope, author, authorColor); /* * Registers command locally for client. * name: string (command name) * arg1: command's arguement */ mp.gui.chat.addCommand(name, function (arg1, arg2) { // do whatever... }); /* * Removes command locally for client. * name: string (command name) */ mp.gui.chat.removeCommand(name); Server-side API
    /* * Sends message to all players in server * msg: string * scope: string (message's scope (Author [scope] msg)) * author: string (Default: [SERVER]) * authorColor: int hudColorID (https://wiki.rage.mp/index.php?title=Fonts_and_Colors) (Default: white) */ mp.players.announce(msg, scope, author, authorColor); /* * Sends messaage to all players in specified dimension * dimension: int * msg: string * scope: string (message's scope (Author [scope] msg)) * author: string (Default: [SERVER]) * authorColor: int hudColorID (https://wiki.rage.mp/index.php?title=Fonts_and_Colors) (Default: white) */ mp.players.announceInDimension(dimension, msg, scope, author, authorColor); /* * Sends messaage to all players in specified dimension * position: Vector3 * range: int * msg: string * scope: string (message's scope (Author [scope] msg)) * author: string (Default: [SERVER]) * authorColor: int hudColorID (https://wiki.rage.mp/index.php?title=Fonts_and_Colors) (Default: white) */ mp.players.announceInRange(position, range, msg, scope, author, authorColor); /* * Registers commands in chat * name: string (command name) * player: command executer * arg1: Arguement after command */ mp.events.addChatCommand(name, function (player, arg1, arg2) { // Do what you want... }); /* * Removes command from server * name: string (command name) */ mp.events.removeChatCommand(name); /* * Sends message to all players in server * msg: string * scope: string (message's scope (Author [scope] msg)) * author: string (Default: [SERVER]) * authorColor: int hudColorID (https://wiki.rage.mp/index.php?title=Fonts_and_Colors) (Default: white) */ player.sendChatMessage(msg, scope, author, authorColor); // Clears player's chat player.clearChat(); Teams resource is supported.
    If you have any issues don't hesitate to contact me on Discord/Forums DM. 
    You're not allowed to redistribute this resource without my permission.
     

    901 downloads

       (8 reviews)

    0 comments

    Updated

  13. Client-side AntiCheat

    So this is a simple Script, that detects suspicious actions from client-side:
    - No Reload
    - Unallowed Weapons
    - Rapid Fire
    - Flyhacks
    - Speedhacks
    - Vehicle Fly and Speedhacks
    - Static Godmodes and Healkeys
     
    Showcase: https://streamable.com/iklquo
     
    When you teleport, heal or respawn the player,  use the 'client:respawning' event.
    If you want to use something like Medkits or Respawns you need to trigger the 'client:respawning' event, which disables the AntiCheat for some seconds, otherwise the player gets flagged.
    Do your own thing for Vehicle Flyhack flagging, because on my server, you don't do those big Car Stuntjumps, where you fly like 30m high. Maybe remove that flagging.
     
    NOTE: There are many reasons that can cause false flags, for example high-ping or low fps. 
    Dont ever autoban people with this!

    1621 downloads

       (3 reviews)

    0 comments

    Updated

  14. Agreement / Contract API (NodeJS)

    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

       (1 review)

    2 comments

    Updated

  15. [JS] ParticleFX Server-side API

    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

       (4 reviews)

    2 comments

    Submitted

  16. [3D] Client-side Sound API.

    Description:
    This resources provides the ability to create/control sound in 3D via custom API. Also demonstrates the ability to use custom urls (Radio streams). 3D sound should be synced automatically without the need of extra work.
    Notes:
    - This resource represents basic functioning of CEF sounds using very basic 3D implementation
    - This resource becomes obsolete when RAGEMP releases 1.1 dp2 which introduces 3D sound API.
    - This resource doesn't support local mp3 due to some reason with soundManager2. I'll look into it later...
    - This resource doesn't support Frontend sound atm, it's really easy to implement it yourself.
     
    API:
    // Client-side // FUNCTIONS mp.game.audio.playSound3D(url, pos, volume, range, dimension) /* * url: string (Required) [Links and local package:// protocol are supported] * pos: vector3 (Required) * volume: int (Optional, Default: 1) [Range: 0 to 1] * range: int (Optional, Default: 60) [Max Range: 60] * dimension: (Optional, Default: 0) * Returns Object. * Object Properties: - id (sound's ID) - url (sound's url) - pos (sound's position) - volume (sound's volume) - range (sound's max range) - dimension (sound's dimension) - listeners (players array that are listening to the sound) - paused (If sound is paused) */ mp.game.audio.setSoundVolume(id, volume); /* * id (Sound's ID) * volume (sound's volume) Range (0.1 - 1) */ mp.game.audio.setSoundPosition(id, pos); /* * Useful for portable sound * id (Sound's ID) * pos (sound's new position) */ mp.game.audio.setSoundRange(id, range); /* * id (Sound's ID) * range (Max Range 60) (Increase it by editing the maxRange...) */ // EVENTS: /* * EventName: audioFinish * params: soundID (Sound's ID that is finished Playing) */ /* * EventName: audioError * params: soundID (Sound's ID that had error), errorObject {code: 'error code', error: 'error description'} */ // Example let sound = mp.game.audio.playSound3D('http://rfcmedia.streamguys1.com/MusicPulse.mp3', pos, 60, 1, 0); sound.destroy(); // Destroys the sound sound.pause(); // Pauses the sound sound.resume(); // Resumes the sound If you have any issues or suggestions, you know the usual routine.
    Credits:
    - Thanks to George for his 3D voice method.
    - Thanks to soundManager 2 for bringing music to life in CEF
    I wish you'll enjoy some epic music.

    1237 downloads

       (7 reviews)

    0 comments

    Updated

  17. Cash Registers

    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-registers

    533 downloads

       (7 reviews)

    3 comments

    Updated

  18. Simple MoneyHUD

    What is this?
    This is a simple money HUD for rage It is easy to add and use in your existing application or a new one! It is very similiar to SAMP's money HUD It contains nice animations on money adding/removing (Check the included GIF) How to install?
    Extract the MoneyHUD.js file in your client_packages and include it in your index.js require('./MoneyHUD.js'); Note
    This was created in version 0.3.7 How to use?
    Call event moneyhud:set on player initialization/connect to initialize player's starting money - Example: client.TriggerEvent("moneyhud:set", 5000); Call event moneyhud:add to add money to the HUD - Example: client.TriggerEvent("moneyhud:add", 1500); Call event moneyhud:remove to remove money from the HUD - Example: client.TriggerEvent("moneyhud:remove", 1500); Extra settings
    You can change the MINIMUM_LENGTH constant to determine how long should the money HUD be by minimum

    1165 downloads

       (2 reviews)

    0 comments

    Updated

  19. CustomChatPlus

    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

       (1 review)

    2 comments

    Updated

  20. Vending Machine Script (C#)

    Source code : https://github.com/J4YT/RAGE-Multiplayer-Vending-Machine-Script
    Only works in combination with the Attachment Sync resource. (see below)
    Requires Rage 1.1 to work.
     

    424 downloads

       (1 review)

    0 comments

    Updated

  21. Rappelling

    Requires RAGE Multiplayer 1.1.0 and above.
     
    Installing
    Put rappel into your server's client_packages directory, then add require('rappel'); to client_packages/index.js.
    RAGE Multiplayer's 1.1 will sync the rappelling action so there isn't any need for server-side files.
     
    Using
    Get in a helicopter with FLAG_ALLOWS_RAPPEL (Maverick, Police Maverick and Annihilator) flag as passenger and do /rappel.
     
    * Credits to Trevor Productions on YouTube for the preview image.

    987 downloads

       (7 reviews)

    0 comments

    Submitted

  22. Better Notifications

    Now with 200% more color.
    Clientside Functions:
    mp.game.ui.notifications.show(message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) mp.game.ui.notifications.showWithPicture(title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) Serverside Functions:
    player.notify(message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) player.notifyWithPicture(title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) As Events:
    BN_Show(message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) BN_ShowWithPicture(title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) Example:
    // Clientside mp.game.ui.notifications.show("Normal message with custom text and background color.", false, 15, 20); mp.game.ui.notifications.showWithPicture("New Message", "Facebook", "You got some more of that data?", "CHAR_FACEBOOK", 1, false, 0, 139); // Serverside player.notify("This message is red which means you're doing something wrong.", false, 6); player.notifyWithPicture("Title", "Ammu-Nation", "Ammunation has all the equipment you need to protect your family from the evils of a liberal society! Fixed, mounted, and shoulder-held submachine guns. Mortars! Surface-to-air and all manner of heat-seeking missiles!", "CHAR_AMMUNATION"); Icons:
    You can specify an icon ID for picture notifications, here's a list of them:
    0, 4, 5, 6 = No Icon 1 = Speech Bubble 2 = Message 3 = Friend Request 7 = Arrow 8 = RP 9 = Money Notes:
    textColor and bgColor parameters want a HUD color ID which you can find here. (it is a bit outdated now though) You can find notification pictures here. If you can't see picture notifications, you must enable Phone Alerts from Settings > Notifications > Phone Alerts. This script changes player.notify on serverside.

    2356 downloads

       (10 reviews)

    5 comments

    Updated

  23. Vehicle Spawner

    Installing
    Put the files you downloaded in their respective places Download & install NativeUI if you haven't yet, this script needs it Add require('vspawner') to client_packages/index.js All done Controls
    F4 Key - show/hide menu
    Left Arrow - previous page
    Right Arrow - next page
    ESC - close menu
    Credits
    https://github.com/n-n1ks/rage.mp-freeroam - Vehicle spawn/model change stuff

    8093 downloads

       (12 reviews)

    4 comments

    Updated

  24. Metal Detectors

    This resource lets you add metal detectors that go off when a player with a not allowed weapon goes through them.
     
    Installing
    Put the files you downloaded in their respective places Add require('metaldetectors') to client_packages/index.js Set up some metal detectors (read below) All done  
    JSON Files
    Most of the changes are done by editing JSON files located in packages/metaldetectors/json/.
    Remember to validate your changes here: https://jsonlint.com/
     
    config.json
    colshapeSize: Size of the metal detector colshape, I think the default value is pretty much perfect and doesn't need any editing.
    soundRange: Maximum range/distance of the players who should hear metal detector alarms, default value is 15.0.
    cooldownMs: Milliseconds that need to pass before a metal detector goes off again, default value is 2000.
    allowedWeapons: Array of weapons that are ignored by metal detectors. This list is pretty much empty and you probably should fill it, WEAPON_UNARMED and WEAPON_CERAMICPISTOL are ignored by default.
    smallWeaponGroups: Array of weapon groups that are considered small. Weapons of this group will play the small weapon alarm sound and everything else will play the big weapon alarm sound. GROUP_MELEE, GROUP_PISTOL, GROUP_SMG, GROUP_STUNGUN and GROUP_THROWN are considered small by default.
     
    detectors.json
    This file contains the metal detectors in array of objects format. A metal detector has x, y, z, heading, dimension and createProp properties.
    x, y, z: Coordinates of the metal detector.
    heading: Rotation (yaw) of the metal detector.
    dimension: Dimension of the metal detector.
    Default value: 0
    createProp: Whether this metal detector should create a prop when it is loaded or not, useful if you want to use existing metal detectors. (like in the IAA facility interior)
    Default value: true
    // Example: Metal detector used in the making of video above { "x": 2059.037109375, "y": 2980.64208984375, "z": -62.90178298950195, "heading": 325.0, "dimension": 0 }  
     
    weaponData.json
    Used for weapon groups, just make sure it is updated after every DLC.
     
    For Developers
    This resource triggers an event named playerTriggerMetalDetector with args player, position, isSmallWeapon when players trigger a metal detector.
    player: The player who triggered a metal detector.
    position: Coordinates of the metal detector.
    isSmallWeapon: Whether the player's weapon was a small weapon or not.
    (another arg that contains weapon hash might be added in the future)
     
    Example
    mp.events.add("playerTriggerMetalDetector", (player, position, isSmallWeapon) => { player.outputChatBox(`You triggered a metal detector with a ${isSmallWeapon ? "small" : "big"} weapon!`); });  
    Notes
    Right now, this resource checks only the current weapon of a player due to issues with player.weapons. If player.weapons get fixed, I'll update the resource to check for all weapons of a player.  
    Source code is available on GitHub in case you don't want to download: https://github.com/root-cause/ragemp-metal-detectors

    604 downloads

       (6 reviews)

    0 comments

    Updated

  25. Simple Tablet

    RAGEMP-SimpleTablet
    This is a really basic tablet for your resource. You can open it, and it show your embedded link. Press O to open it.
    Installation
    Just add the files in client_packages to your resource & add the following code to your index.js
    require("tablet/tablet.js"); How to change the embedded object
    Go in the "tablet" folder and open "tablet.html" with your editor. Change the URL on line 14 & 15.
    How to change the key to open it:
    Go in the "tablet" folder and open "tablet.js" with your editor. Change the "0x4F" on line 3 to your key of choice.
    Here you can find all key values:
    https://docs.microsoft.com/de-de/windows/win32/inputdev/virtual-key-codes?redirectedfrom=MSDN
     
    GITHUB: https://github.com/XCRON-DEV/RAGEMP-SimpleTablet
    For questions or help DM me here.

    1390 downloads

       (2 reviews)

    0 comments

    Updated


×
×
  • Create New...