149 files

  1. 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)

    15 downloads

       (1 review)

    2 comments

    Updated

  2. [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
     

    104 downloads

       (4 reviews)

    2 comments

    Submitted

  3. 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!

    256 downloads

       (1 review)

    0 comments

    Updated

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

    183 downloads

       (6 reviews)

    3 comments

    Updated

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

    389 downloads

       (1 review)

    0 comments

    Updated

  6. 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/)

    344 downloads

       (1 review)

    0 comments

    Updated

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

    143 downloads

       (1 review)

    0 comments

    Updated

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

    344 downloads

       (5 reviews)

    0 comments

    Submitted

  9. Synced Player Component Variations

    This should save you some time writing your own syncing when it comes to using player.setClothes() for values over 255 until 1.0 gets released. The download has example scenarios/commands you can use.
    Serverside Functions:
    player.changeClothes(Number componentId, Number drawable, Number texture, Bool save, Bool sync) player.resetClothes() Save parameter:
    By setting this to true the script will remember these values and re-apply these when using player.resetClothes()
    Sync parameter:
    If you set this parameter to false the clothes will only be applied on the target client.
    Set this to true and everyone will see the clothes!
     
    Demonstration:
    This GIF has both save and sync parameter set to false to preview the selected item before actually purchasing it. Once purchased, both save and sync are set to true to remember the purchased item and to sync it to all other clients
    https://imgur.com/a/gsySyPc
     
    And this GIF shows the same interaction but from the other client
    https://imgur.com/a/0IankaB

    328 downloads

       (3 reviews)

    0 comments

    Updated

  10. Easy Whitelist

    RAGEMP-EasyWhitelist
    This is a basic whitelist system for your server. Just place it in the packages folder & it works!
    Installation
    Just place the folder "easy-whitelist" in the packages folder.
    How to add users to the whitelist
    Go in the packages folder > then "easy-whitelist" > and edit the file account.json
    There you have to add the SocialClub ID. Restart Server & its done.
     
    Github: https://github.com/XCRON-DEV/RAGEMP-EasyWhitelist
    For questions or help DM me here.

    409 downloads

       (1 review)

    3 comments

    Updated

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

    779 downloads

       (2 reviews)

    0 comments

    Updated

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

    228 downloads

       (5 reviews)

    0 comments

    Updated

  13. GTA SA Classic Menu

    This is a CreateMenu for the illegal gta v emulator.
    Usage example:
    List<string[]> menuItems = new List<string[]>(); menuItems.Add(new string[] { "Item 1 Column 1", "Item 1 Column 2" }); menuItems.Add(new string[] { "Item 2 Column 1", "Item 2 Column 2" }); Menu menu = new Menu("Title", new string[] { "Header 1", "Header 2" }, menuItems).show(); menu.setOnMenuResponseListener((Menu.OnMenuResponseListener onMenuResponseListener) => { RAGE.Chat.Output("Response: " + onMenuResponseListener.response + " item: " + onMenuResponseListener.item); menu.destroy(); });  

    82 downloads

       (7 reviews)

    0 comments

    Submitted

  14. Car Compare (0-100, 0-200, Vmax)

    Copy folder to "client_packages" and add
    require("./genzocarcompare"); to your "client_packages/index.js";

    203 downloads

       (0 reviews)

    0 comments

    Submitted

  15. Combat Helmets

    Installing
    Put the files you downloaded in their respective places Add require('combathelmets') to client_packages/index.js All done  
    Using
    You can toggle visor/goggles by pressing F10 while on foot.
     
    Adding More Helmets
    Even though this is a combat helmet mod, you can add other helmets (such as motorcycle helmets) by editing packages/combathelmets/helmetData.json.
    { // Skin hash (mp_m_freemode_01) "1885233650": { /* Visor/goggles up drawable as key. Visor/goggles down drawable as "closed" property. Animation name as "anim" property. Available names: goggles, visor Optional "type" property for screen FX. Available types: nightvision, thermal Hat/helmet drawables: https://wiki.rage.mp/index.php?title=Male_Hats https://wiki.rage.mp/index.php?title=Female_Hats */ "117": { "closed": 116, "type": "nightvision", "anim": "goggles" }, "119": { "closed": 118, "type": "thermal", "anim": "goggles" }, "124": { "closed": 123, "anim": "visor" }, "126": { "closed": 125, "anim": "visor" } }, // Skin hash (mp_f_freemode_01) "2627665880": { /* Visor/goggles up drawable as key. Visor/goggles down drawable as "closed" property. Animation name as "anim" property. Available names: goggles, visor Optional "type" property for screen FX. Available types: nightvision, thermal Hat/helmet drawables: https://wiki.rage.mp/index.php?title=Male_Hats https://wiki.rage.mp/index.php?title=Female_Hats */ "116": { "closed": 115, "type": "nightvision", "anim": "goggles" }, "118": { "closed": 117, "type": "thermal", "anim": "goggles" }, "123": { "closed": 122, "anim": "visor" }, "125": { "closed": 124, "anim": "visor" } } }  
    Adding More Vehicles
    You can add/remove supported vehicles by editing the vehicle animation dictionary object located in client_packages/combathelmets/index.js line 33. (vehAnimDictName object)
     
    Issues
    The animation won't be synced to other players in 0.3.7 but it should in future versions with improved task sync. FIXED IN v2.0 Visor up/down animation is used for both visors and goggles right now, even though this is a small visual thing it might be fixed in the future. FIXED IN v2.0 Players are not able to toggle visor/goggle state in vehicles right now, might change in the future. This would probably be most useful for bikes. Available on GitHub: https://github.com/root-cause/ragemp-combat-helmets

    92 downloads

       (3 reviews)

    0 comments

    Updated

  16. [C#] Example/Wrapper for fetching world objects.

    Just an example/wrapper on how to properly use "GetClosestObjectOfType" and fetch data from an object.
    I've been using this in my server for a while now to make it easier to get XYZ and rotation of objects in bulk, instead of having to go through them in codewalker which can be a pain.
    Installation
    Move client_packages to your client_packages folder Move Serverside C#/GetWorldObjects.cs to your gamemode or script. Move objectLocations.json to your server root directory.  
    Usage
    The JSON file included in the zip contains the pacific bank vault door as an example object. Use the /getworldobjects or /gwo command to run through all the items in the JSON file and fetch the X, Y, Z and XYZ Rotation of the object.
    As of right now it'll simply log the object to your server console and continue to the next object in the list, you can extend this functionality by editing the "REMOTE_EVENT_OnWorldObjectFetched" method in GetWorldObjects.cs server-side script.
    JSON file object info
    public class ObjectLocation { // The model name to look for, you can fetch this from CodeWalker or RAGEMP objectdb for example. public string Model { get; set; } // The model that should replace the model at this location, optional. I personally used this to store in the database and then on server start it'd delete the world object and replace it with the object model specified here. public string ReplacementModel { get; set; } = ""; // A position within X distance of the object you want to get the data of, distance can be specified by the Radius. public Vector3 Position { get; set; } // An optional type you can pass to the method so you can use it later on for data storage purposes(eg keep objects of certain types separated by an ID) public int Type { get; set; } = 0; // The radius to find the object, doesn't have to be too precise altho I generally recommend putting the player's teleport coordinates as close to the object as possible and decreasing range to 5 or 10. public int Radius { get; set; } } [ { "Model": "v_ilev_bk_vaultdoor", "ReplacementModel": "v_ilev_bk_vaultdoor", "Type": 0, "Radius": 25, "Position": { "X": 254.2859, "Y": 225.3845, "Z": 101.8757 } }, { "Model": "another_object_model_name", "ReplacementModel": "another_object_model_name_to_replace", "Type": 0, "Radius": 10, "Position": { "X": 1234.567, "Y": 123.456, "Z": 12.345 } }, ... ] All you have to do is add more items to the JSON file and it'll run thru all of them.

    69 downloads

       (0 reviews)

    0 comments

    Updated

  17. Login / Register html template

    https://www.dropbox.com/s/3ump4anqb45mm9x/1uJJ7nb7a9.mp4?dl=0
     
    This is just a template for your login / register system.

    661 downloads

       (0 reviews)

    0 comments

    Submitted

  18. [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.

    480 downloads

       (5 reviews)

    0 comments

    Updated

  19. 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) 

    545 downloads

       (2 reviews)

    4 comments

    Updated

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

    211 downloads

       (4 reviews)

    1 comment

    Submitted

  21. No reticle for all weapons.

    Every weapon has no reticle when aiming. (Working with snipers too.)
     
    Installation:
    1) Unpack the zip.
    2) If you haven't already, create a "dlcpacks" folder inside your "client_packages" folder.
    3) Drop the "nosight" folder inside "dlcpacks"

    169 downloads

       (0 reviews)

    0 comments

    Updated

  22. [Perfect for RP Servers]

    What is this amazing script?
    You are also able to control the steering (unable to set straight afterwards due to setSteeringAngle not being implemented yet) so you can move the vehicle to the side of the road.
    If you are an RP server then this is perfect for you!
    With some wizard maths, the text and position is at the correct end of each car and is based on distance (This has taken over 6 hours to get right). 
     
    Configuration
    I have already built in configuration to set whether you can allow it on locked vehicles, low health vehicles, whether the engine is off and certain vehicle classes.
    These can all be configured in the config section of the file:
    this.config = {            AllowVehicleClass: [0, 1, 2, 3, 4, 5, 6, 9, 18], // These are the normal vehicles in the game classes - to disable it, set it to false            MaxVehicleCubedSize: 25, // This is the vehicle length * width - as an idea an ambulance is 21            LockHandbrakeProtection: false, // If set - you can't push a locked vehicle (Theft prevention or ditching cars)            EngineProtection: false, // If set - you can only push if the enginer is turned off            VehicleHealthProtection: false, // Must be less than 1000 or false which de-activates checking vehicle health            PushEventName: false, // Set this to send an event to your server with the relevant Vehicle and Player attached (ie 'pushing_car')            LabelsDisplayed: true, // Show labels near the pushing positions when close enough            DebugPositions: false, // View pushing positions as markers so they are more visible            AllowVehicleSteering: true, // Allows the player to turn the wheels of the vehicle using A and D keys }  
    In Action
    To see how it looks working just checkout:
    https://streamable.com/ab2v5
     
    Questions
    Lastly if you have any questions feel free to give me a shout on discord (wdoyle2) or respond in the comment section.
    This is currently not on github but more than happy to post it for any future pull requests. 

     

    633 downloads

       (9 reviews)

    0 comments

    Updated

  23. Compass

    Just simple compass what you can use.
    You need to add compass.js path, to index.js on client_packages.

    187 downloads

       (2 reviews)

    2 comments

    Submitted

  24. 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"

    598 downloads

       (3 reviews)

    0 comments

    Updated

  25. Vice City Minimap

    Video: https://streamable.com/2cg3g
    This is a cef minimap for vice city in js.
    Helth and armour progress bars don't work you can make it work easily

    186 downloads

       (6 reviews)

    0 comments

    Updated