139 files

  1. [JS, CEF] Internet Radio

    Internet radio over colshapes using CEF.
    Scope of application: custom clubs, interiors.
    Default location is the Galileo Observatory (behind the monument).
    Default radio station - Wacken Radio (DE).
    Installation:
    I. Put server files to: server-files\packages\yourGameMode
    II. Add require('./rStreamColshapes');  to your server's index.js
    III. Put client files to: client_packages then edit your client's index.js and add require('./rStream');
    To change radio stream url, edit index.html here: client_packages\cef\rStream\index.html
     
    GitHub

    169 downloads

       (2 reviews)

    0 comments

    Updated

  2. Weapon Spawner

    Requirements
    You need to download & install these resources first:
    NativeUI Weapon Component Sync Weapon Tint Sync  
    Installing
    Put the files you downloaded in their respective places Add require('weaponspawner') to client_packages/index.js All done  
    Using
    You can use the /weapons command to access the weapon spawner menu.
     
    Issues
    Some components might not have a visible name because Rockstar didn't give them one. Equipped component displaying might not be accurate at first but will be fixed after you apply/remove a component.  
    Source code is available on GitHub in case you don't want to download: https://github.com/root-cause/ragemp-weapon-spawner

    262 downloads

       (3 reviews)

    1 comment

    Submitted

  3. BlockVPN

    BlockVPN NodeJS Resource
    Purpose
    Block players from joining if they are on a VPN or proxy.  About
    This resource uses GetIPIntel which is a free service that calls their API with the IP address and returns the likelihood of it being a VPN or proxy. The recommended threshold to block is 0.99 and above; any lower and you may get false positives. Requirements
    request (NodeJS Module) GitHub
    The resource GitHub can be found here.

    110 downloads

       (0 reviews)

    0 comments

    Updated

  4. Sudodude's PedPicker

    This is a simple module/script for changing the player model synced client/server. The values in the list are the model names that can be found on https://wiki.rage.mp/index.php?title=Peds. Click on a model in the list and you will switch to that model.
    *F7* to open PedPicker Menu in game.
    You should be able to just drop the files within the client_packages/packages directories and then add the requirements to the respective index.js files within those directories. 
    All source code is given from within the file download, but you can also find the repo here:  AZAMOEBA_RAGE_PEDPICKER. If you are using this I'd appreciate a star or just let me know you found any of this useful. If I forgot a credit please let me know and I will get back to you and fix whatever is necessary. Enjoy!

    Message for any comments/questions and I'll try to get back asap.

    125 downloads

       (1 review)

    1 comment

    Updated

  5. Shortcuts (Animations) on Numpad 1.0.0 Javascirpt

    About this File
    I used this res to create my res: Shortcuts (Animations) on Numpad 1.0.0 Before first Startup: you import db.sql in your Database and change "Yourname" in the record or leave it. I used RPC in this example, install it. My node_modules are in the archive located. Do this on Login/Startup Serverside
    gm.mysql.handle.query("SELECT * FROM shortcuts WHERE name = ?", [player.name], 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; }); }else{ gm.mysql.handle.query("INSERT INTO shortcuts SET name = ?", [player.name], function (insertError) { if (insertError) console.log(`[Shortcuts Init Error] ${err.message}`); if(!insertError){ gm.mysql.handle.query("SELECT * FROM shortcuts WHERE name = ?", [player.name], 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; }); } }) } }) } }); if you need more contact me

    90 downloads

       (0 reviews)

    1 comment

    Updated

  6. Rage Horse

    Preview video https://streamable.com/b1b0i
    Github repo https://github.com/ItsMos/ragemp-horse
     
    Horse mod for rage multiplayer Notes This replaces the 'deer' model because it is fast-moving. Horses should be synced, this doesnt work well with `online` skins, you can fix that tho, feel free to contribute. You think that you're actually riding the horse? no, think again, the horse is riding you (your ped) Usage // server code let pkg = require('ragemp-horse') let allHorses = pgk.horses, Horse = pkg.Horse // To create a horse let myPony = new Horse(position, dimension) // delete a horse myPony.delete() Press Interact button (default `E`) to mount/dismount a horse Credits Horse model converted by Quechus13

    67 downloads

       (2 reviews)

    1 comment

    Updated

  7. [C#] Send Mail from server.

    Send mails from the server simple and easy.
    Ex:

    To work, you need to enable IMAP Access

     
    *This code was only tested on the GMAIL service
     

    87 downloads

       (1 review)

    0 comments

    Submitted

  8. Better Instructional Buttons

    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.

    94 downloads

       (1 review)

    2 comments

    Updated

  9. Soundviewer

    Just a simple js-script that let you play every sound in the following list and gives you info about the current sound on the bottom of the screen:
    https://wiki.rage.mp/index.php?title=Sounds
     
    Install:
    Simply drop the files in your client-packages folder and merge the index.js with your index.js.
     
    How to use:
    Type /s or /sound to activate/deactivate it.
    Use Left-Arrow, Right-Arrow to navigate trough the sounds.
     
    Credits:
    Thanks to n0minal and his interior Resource with which i learned how to create commands in js.

    123 downloads

       (3 reviews)

    0 comments

    Updated

  10. GTAO Suicide

    This script adds the suicide feature of GTA Online.
    You can commit suicide by using /suicide command. Your character will shoot itself if you're holding a pistol and take pills otherwise.
     
    Installing
    Put the files you downloaded in their respective places Add require('suicide') to client_packages/index.js All done

    226 downloads

       (2 reviews)

    0 comments

    Submitted

  11. RAGE MP Clothes Addon For MP Charater

    With this dlcpack, you're able to add up to hundreds of clothing WITHOUT replacing anything from the original vanilla game. 
    In this pack, you'll be able to add the following as addon content for both MP_Female and MP_Male:
    Heads/Faces (Up to 111!) Beards/Masks (Up to 159!) Hairstyles (Up to 185!) Pants (Up to 128!) Feets/Shoes (Up to 127!) Secondary Tops (Up to 106!) Decals/Emblems (Up to 93!) Primary Tops (Up to 127!) How does it work?:
    From learning the hex codes in the .ymt files and spending hours figuring out where everything was, I made changes and added things into the .ymt files to make this possible. However, the dlcpack overwrites the initial MP clothing dlcpack (the original clothing from the game, albeit it doesn't REPLACE any clothing) so the limits are added BEFORE any new dlc clothing. DLC clothing comes after the limits as they were pushed further to make way for the newer limits adjusted.
    In the future I will possibly adjust it even more if it's necessary.
     
    How do I get addon content to work?
    Simple.
    Go into streamedpeds_mp.rpf From there, it should be easy sailing. MP_Female stuff goes in mp_f_freemode_01 and MP_Male stuff goes into mp_m_freemode_01.  Don't forget to affix (basically dragging a file into the "ArchiveFix" program) "streamedpeds_mp" or "streamedpeds_mp" if you added anything into those archive .rpfs. Replace them inside the .rpf archive after affixing. As for naming them, ONLY name them based off what I have shown here:
    Head DrawableIDs: (46 - 157) Models: head_xxx_r Textures: head_diff_000_a_whi (or _chi, _bla, _lat, _pak, _ara at the end) Berd/Mask DrawableIDs: (8 - 167) Models: berd_xxx_u Textures: berd_diff_xxx_a_uni Hair DrawableIDs: (38 - 223) Models: hair_xxx_u Textures: hair_diff_xxx_a_uni Pants DrawableIDs: (16 - 144) Models: lowr_xxx_r Textures: lowr_diff_xxx_a_whi Feet/Shoes DrawableIDs: (16 - 143) Models: feet_xxx_u Textures: feet_diff_xxx_a_whi Accessory/Tops DrawableIDs: (16 - 122) Models: accs_xxx_u Textures: accs_diff_xxx_a_uni Decal/Emblem DrawableIDs: (0 - 93) Models: decl_xxx_u Textures: decl_diff_xxx_a_uni Tops2 DrawableIDs: (16 - 143) Models: jbib_xxx_u Textures: jbib_diff_xxx_a_uni Start from the number from one of the components of which you're adding from the number the limit suggest. (For an example, if you're adding some shoes mod for the first time, then rename the files to "feet_016_u" and feet_diff_016_a_whi) 

    140 downloads

       (2 reviews)

    1 comment

    Updated

  12. RageMP new hairstyles!

    - Up to 20 NEW hairstyles for males!
    - Up to 19 NEW hairstyles for females!
    - Root's character creator adaption supported!
     
    Installation:
    1) Unpack the rar.
    2) If you haven't already, create a "dlcpacks" folder inside your "client_packages" folder.
    3) Drop the "gtahairs" folder inside "dlcpacks"

    174 downloads

       (3 reviews)

    0 comments

    Updated

  13. Flaming Footprints

    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 effect

    120 downloads

       (4 reviews)

    1 comment

    Updated

       (4 reviews)

    0 comments

    Submitted

  14. Better Keybinding

    This module saves you some time on bindings keys. 
    Read more here: 
     

    87 downloads

       (2 reviews)

    2 comments

    Updated

  15. CEF wepSpawner

    Installing:
    Place the files you downloaded in their locations.
    Add "require('.wepSpawner');" to client_packages/index.js.
    Controls:
    F4 to toggle menu.
    Everything else is done in cef interface.

    Features:
    Spawn any weapon from https://wiki.rage.mp/index.php?title=Weapons (2019-05-05).
    Get all weapons instantly by clicking "All Weapons".
    Get all weapons from a category by entering the category and clicking "All *Category name*".
    Get any weapon you choose.
    Ability to remove all weapons and start over.

    219 downloads

       (1 review)

    0 comments

    Submitted

  16. [C#] Key API

    Key.Bind - This function binds the key.
    keycode - hexadecimal code of key. keydown/keyup - true trigges on keydown, false triggers on keyup (bool) handler - function-handler. public class KeyTest: RAGE.Events.Script { public KeyTest() { Key.Bind(Keys.VK_ESCAPE, true, () => { // Code here return 1; }); } } To bind multiple keys:
    Key.Bind(new Keys[] { Keys.VK_T, Keys.VK_F6 }, true, ...)
    Key.IsUp - Returns true if the key specified has been released. Otherwise, returns false.
    keycode - code of the key (Keys.VK_T or 0x54) private void Tick(List<Events.TickNametagData> nametags) { if(Key.IsUp(0x62)) { // NUMPAD2 up } } Key.IsDown - Returns true if the key specified is pressed. Otherwise, returns false.
    keycode - code of the key private void Tick(List<Events.TickNametagData> nametags) { if(Key.IsDown(new int[] { 0x60, 0x61 })) { // NUMPAD0 & NUMPAD1 pressed. } }  

    80 downloads

       (1 review)

    0 comments

    Submitted

  17. [C#] Screen FX Preview

    What it does: https://streamable.com/pht3r
    How to use:
    - requires c# on clientside
    - trigger clientside event from server
    For example:
    Add a server command and trigger this clientside script like this:
    NAPI.ClientEvent.TriggerClientEvent(client, "EnableScreenFx");
    Navigate through all the effects with left and right arrow keys - you'll get a local chat message with the current name of the effect and the index.
    Previous fx: LeftArrow
    Next fx: RightArrow

    104 downloads

       (1 review)

    0 comments

    Submitted

  18. Example of proper DLC Pack mapping loading

    An example of proper DLC Pack mapping loading without issues on first connection to the server.

    Installation
    Extract all archive files to the server packages root folder.

    Note
    The game might get frozen for up to 10 seconds (faster on SSD) on first connection, that's the time taken by the game to reload DLC mapping. Mapping will work properly after that though.

    288 downloads

       (1 review)

    0 comments

    Updated

  19. Easy Blip Creator | Fixed

    I Fixed the Easy Blip Creator. Because of a change in RageMP Wiki, the script could no longer load the images. to see here. I fixed this to see here. Everything should now work normally again with this script
     
    original version & creator of this script:
     
     

    192 downloads

       (3 reviews)

    0 comments

    Submitted

  20. Simple Rainbow Text

    Hey !
    So this script adds simply a Rainbow Text usefull for display some text like ur discord server or server name ...
    Installing:
    Just drag the RainbowText folder to ur client_package and don't forget to add the require('RainbowText/rainbowtext.js'); to ur index.js
    Notes:
    I’ve done my best to explain to you everything you need to know about the code. If you have any questions, just post it.
    The script can probably be improved, I’m still new to JS I’m learning from day to day, if you have any advisors do not hesitate. 😅
    For french people just go to my Github to see how the installation work or just translate it lul 😋:
    https://github.com/SuperCoolNinja/SimpleRainbowText

    40 downloads

       (2 reviews)

    0 comments

    Updated

  21. RC-Bandito

    This resource makes you create/experience the rc-bandito. It can be used to do some spying or even suicide bomb...
    // Server-side mp.vehicles.createRC(player); // Adds player to experience the bandito Controls:
    INPUT_CONTEXT aka. E (Detonates the bomb) INPUT_ENTER aka. F (Returns to player) Thank to root for signing the Chinese weapon contract, and thank George men for continuous motivation...
    You know what to do when you have issues (don't contact me obv.)
    Thanks for reading this...

    87 downloads

       (1 review)

    0 comments

    Updated

  22. Simple Camera - Typescript

    Here is my written Camera Class for RAGEMP. You can easy implement this file into your client-sided Scripts and use it pretty powerful.
     
    //Create Camera CameraEditor.createCamera("Login", new mp.Vector3(-1549.810546875, 1679.3438720703125, 106.20653533935547)); CameraEditor.setCameraActive("Login"); //Interpolate Camera CameraEditor.setCameraInterpolate("Login", new mp.Vector3(-1561.000732421875, 1685.904296875, 102.0960693359375), new mp.Vector3(-1563.254150390625, 1683.891845703125, 102.28447723388672), 30000); //Destroy Camera CameraEditor.destroyCamera("Login");  
    greeting DevGrab

    93 downloads

       (1 review)

    0 comments

    Submitted

  23. [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, local mp3 files). 3D sound should be synced automatically without the need of extra work. If you're looking for Frontend sounds then it should be easy to implement. If many demanded 2D sounds for this resource, i'll add it later.
    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.

    134 downloads

       (3 reviews)

    0 comments

    Submitted

  24. Bitcoin Exchange

    This is a small script that allows players to buy/sell bitcoins.
     
    Requirements
    Currency API (define a currency named "cash" after installing) node-fetch (after installing, go to packages/bitcoin folder, launch command prompt/powershell from shift+rightclick and write "npm install", should download it)  
    Installing
    Drag & drop to your server files folder.
     
    Config
    The config.json file provides some options:
    updateInterval - The time between BTC price updates, in milliseconds. Default value is 300000 aka 5 minutes. markerColor - Color of the markers, [r, g, b, a] format. markerRange - Range of the markers. exchangeCoords - Positions where players can buy/sell bitcoins. Default values add 2 exchange locations: Lester's house and garment factory.  
    Commands
    buybtc [amount] sellbtc [amount] Both commands need you to be inside a Bitcoin Exchange marker.
     
    Notes
    This script does not save data (bought bitcoins etc), saving should be handled by your gamemode since Currency API provides functions for that. BTC price is provided by CoinDesk. Currency API does not support floats so players can't buy less than 1 BTC. Bogdanoff is watching

    74 downloads

       (2 reviews)

    1 comment

    Submitted