139 files

  1. GTAO Outfits

    This script reads outfits from scriptmetadata.meta and lets you use them in game. There are currently 1382 outfits for both male and female freemode characters.
    Using: /outfit [id]
    Updating scriptmetadata.meta
    scriptmetadata.meta gets more outfits with every update, here's how you can update it:
    OpenIV:
    Go to update\update.rpf\common\data Right click on scriptmetadata.meta Select save content/export Take the extracted file and replace it with the one your server is using CodeWalker RPF Explorer:
    Go to update\update.rpf\common\data Right click on scriptmetadata.meta Select extract raw Take the extracted file and replace it with the one your server is using Notes
    Some outfit IDs might do nothing, ask Rockstar In RAGE version 0.3, drawable IDs above 255 aren't supported so you might have some weird looking outfits. From what I heard this is not a problem in upcoming 0.4. Credits to OpenIV and CodeWalker devs, this script wouldn't be possible without their efforts.

    651 downloads

       (5 reviews)

    0 comments

    Updated

  2. FireDepartment

    I made this script for beginners in c# so they can hopefully learn someting for it.
    I'm not a pro in programming but i hope i can help someone with it.
    I did not test this with other players but it should work.


    Commands:
    /teleport  "to get to the fire department" /start1 "on the white colshape to start a fire" /stopfireid "to stop the fire or just extinguish it."
    When you are on a mission you can heal your self on the green colshape.
    When you start a fire it random selected one of the 6 main spawn points from that point it random create new spawn points and check if its reachable for the player.

     

     

    406 downloads

       (0 reviews)

    0 comments

    Updated

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

    This resource lets you control the blackout feature of GTA V.
     
    Installing
    Put the files you downloaded in their respective places Add require('blackout') to client_packages/index.js All done  
    API
    // Serverside (synced to every player) mp.world.blackout.enabled // get mp.world.blackout.enabled = true/false // set // Clientside (only for a client) mp.game.blackout.enabled // get mp.game.blackout.enabled = true/false // set You can also trigger SetBlackoutState event with the first argument being the new state of blackout.
     
    Example
    // Toggle blackout mode with /toggleblackout (Serverside) mp.events.addCommand("toggleblackout", (player) => { mp.world.blackout.enabled = !mp.world.blackout.enabled; player.outputChatBox(`Blackout ${mp.world.blackout.enabled ? `enabled` : `disabled`}.`); }); // Toggle blackout mode with F8 key (Clientside) mp.keys.bind(0x77, false, () => { mp.game.blackout.enabled = !mp.game.blackout.enabled; mp.gui.chat.push(`Blackout ${mp.game.blackout.enabled ? `enabled` : `disabled`}.`); });  


    333 downloads

       (1 review)

    0 comments

    Updated

  5. Basic Player Blips

    This resource adds GTAO style player blip/icon to streamed in players. Their icon will be removed when they stream out.
    You can change the color of player blips by setting blipColor using Entity::data or Entity::setVariable on serverside. For a list of blip colors, visit the wiki page about blips.
     
    Installing
    Put playerblips into your server's client_packages directory, then add require('playerblips'); to index.js.
     

    824 downloads

       (5 reviews)

    0 comments

    Updated

  6. Firing Modes

    This script was originally made by EnforcerZhukov for singleplayer. (you can find it here) All credit goes to him.
    I added extra stuff such as remembering firing mode (until you disconnect) per weapon, safety mode, HUD item and sound effects.
     
    Installing & Using
    Put guncontrol into your server's client_packages directory, then add require('guncontrol'); to index.js. Press F6 key to switch between firing modes.  
    Firing Modes
    Auto: Default GTA shooting. Burst: Shoot 3 bullets every time you fire. (not supported on all weapons) Single: Shoot 1 bullet every time you fire. (not supported on all weapons) Safe: Disables shooting.  
     

    155 downloads

       (1 review)

    0 comments

    Updated

  7. BanAPI

    Ban system that supports temporarily/permanently banning names, social club names, IP addresses and HWIDs.
     
    Installing
    Put banapi into your server's packages directory Open banapi/database.js and put your MySQL config All done  
    API
    /* getUnixTimestamp() Returns the current Unix timestamp. */ mp.bans.getUnixTimestamp() /* formatUnixTimestamp(unixTimestamp) Converts a Unix timestamp to "day/month/year hour:minute:second" format. Returns a string. */ mp.bans.formatUnixTimestamp(unixTimestamp) /* add(value, banType, reason, endUnixTimestamp) Adds a ban to the bans table, the ban will be permanent if endUnixTimestamp is -1. You need to provide the value like a player's serial, IP or name. endUnixTimestamp must be seconds, NOT milliseconds. Just use the provided getUnixTimestamp() This won't terminate the banned player's connection. Can be used for offline banning. Returns a promise. */ mp.bans.add(value, banType, reason, endUnixTimestamp) /* banPlayer(playerID, banType, reason, endUnixTimestamp) Bans the specified player, the ban will be permanent if endUnixTimestamp is -1. The script will get the value, you just need to provide a player ID and ban type. endUnixTimestamp must be seconds, NOT milliseconds. Just use the provided getUnixTimestamp() This will terminate the banned player's connection. Returns a promise. */ mp.bans.banPlayer(playerID, banType, reason, endUnixTimestamp) /* getInfo(banID) Gets information about the specified ban ID. Returns a promise. */ mp.bans.getInfo(banID) /* remove(banID) Removes the specified ban ID from the bans table. Returns a promise. */ mp.bans.remove(banID)  
    Ban Types
    0 = Name ban, player's current name will be banned. (player.name property) 1 = Social Club name ban, player's current social club name will be banned. (player.socialClub property) 2 = IP ban, player's current IP address will be banned. (player.ip property) 3 = HWID ban, player's current HWID will be banned. (player.serial property)  
    Example Commands
    /* Usage: /ban 5 0 60 Take a break Will nameban the player ID 5 (if there is a player with ID 5) for 60 minutes with the reason "Take a break". */ mp.events.addCommand("ban", (player, _, target, type, minutes, ...reason) => { target = Number(target); type = Number(type); minutes = Number(minutes); let fullReason = reason.join(' '); let targetPlayer = mp.players.at(target); if (targetPlayer) { mp.bans.banPlayer(targetPlayer.id, type, fullReason, mp.bans.getUnixTimestamp() + (minutes * 60)).then((banID) => { player.outputChatBox(`Banned ${targetPlayer.name} with the reason '${fullReason}' for ${minutes} minutes.`); console.log(`${player.name} banned ${targetPlayer.name} for ${minutes} minutes. (${fullReason}) BanID: ${banID}`); }).catch((err) => { player.outputChatBox(`Error occurred while banning ${targetPlayer.name}.`); player.outputChatBox(`Error: ${err.message}`); }); } else { player.outputChatBox(`No player with the ID ${target} found.`); } }); /* Usage: /baninfo 3 Will show information about ban ID 3 (if it exists) */ mp.events.addCommand("baninfo", (player, banID) => { banID = Number(banID); mp.bans.getInfo(banID).then((banInfo) => { if (banInfo) { player.outputChatBox(`Ban Information (BanID ${banInfo.ID})`); player.outputChatBox(`Type: ${banInfo.Type}`); player.outputChatBox(`Value: ${banInfo.Value}`); player.outputChatBox(`Reason: ${banInfo.Reason}`); player.outputChatBox(`Is Permanent: ${banInfo.LiftTimestamp == -1}`); if (banInfo.LiftTimestamp > -1) player.outputChatBox(`Ends: ${mp.bans.formatUnixTimestamp(banInfo.LiftTimestamp)}`); } else { player.outputChatBox(`BanID ${banID} expired or doesn't exist.`); } }).catch((err) => { player.outputChatBox(`Error occurred while getting BanID ${banID}.`); player.outputChatBox(`Error: ${err.message}`); }); }); /* Usage: /removeban 5 Will remove the ban with specified ID (if it exists) */ mp.events.addCommand("removeban", (player, banID) => { banID = Number(banID); mp.bans.remove(banID).then((success) => { if (success) { player.outputChatBox(`BanID ${banID} is now history...`); } else { player.outputChatBox(`Couldn't remove BanID ${banID}, probably expired or doesn't exist.`); } }).catch((err) => { player.outputChatBox(`Error occurred while removing BanID ${banID}.`); player.outputChatBox(`Error: ${err.message}`); }); });  
    Notes
    This script will handle banned players when they join. (kick if they're still banned, remove ban if their ban expired) Don't use JS timestamps as they are milliseconds, use the provided mp.bans.getUnixTimestamp()

    329 downloads

       (1 review)

    0 comments

    Submitted

  8. Speedometer KM/h, RPM and Fuel

    Design by @CommanderDonkey, link here.

    For install just copy files to your server.
    Don't forget edit index.js into client_packages if you have more resources.

    1784 downloads

       (2 reviews)

    0 comments

    Submitted

  9. Levels

    Installing
    Put the files you downloaded in their respective places Add require('levels') to client_packages/index.js Open packages/levels/database.js and put your MySQL config All done  
    API
    /* Player level and XP is accessed through currentLevel and currentXP shared data keys. You should not change the value of these shared data keys, just use them to get data and use the API to set data. */ player.data.currentLevel OR player.getVariable("currentLevel") // returns level of the player player.data.currentXP OR player.getVariable("currentXP") // returns XP of the player /* setLevel(newLevel) Sets the player's level to newLevel. (will also change player's XP to level XP) */ player.setLevel(newLevel) /* setXP(newXP) Sets the player's experience to newXP. (will update player's level) */ player.setXP(newXP) /* changeXP(xpAmount) Changes the player's experience by xpAmount. (will update player's level) */ player.changeXP(xpAmount) /* hasReachedMaxLevel() Returns whether the player has reached max level or not. */ player.hasReachedMaxLevel() /* saveLevelAndXP() Saves the player's level and XP data. Automatically called a player disconnects. */ player.saveLevelAndXP()  
    Events
    These events are called on serverside when a player's level or XP changes.
    /* playerXPChange This event is called when a player's XP changes. */ mp.events.add("playerXPChange", (player, oldXP, newXP, difference) => { // code }); /* playerLevelChange This event is called when a player's level changes. */ mp.events.add("playerLevelChange", (player, oldLevel, newLevel) => { // code });  
    Example Script
    Here's a script that lets you change your level/XP and writes it to console:
    mp.events.addCommand("setlevel", (player, newLevel) => { newLevel = Number(newLevel); if (!isNaN(newLevel)) { player.setLevel(newLevel); } else { player.outputChatBox("SYNTAX: /setlevel [new level]"); } }); mp.events.addCommand("changexp", (player, amount) => { amount = Number(amount); if (!isNaN(amount)) { player.changeXP(amount); } else { player.outputChatBox("SYNTAX: /changexp [amount]"); } }); mp.events.addCommand("setxp", (player, amount) => { amount = Number(amount); if (!isNaN(amount)) { player.setXP(amount); } else { player.outputChatBox("SYNTAX: /setxp [new xp amount]"); } }); mp.events.add("playerXPChange", (player, oldXP, newXP, difference) => { console.log(`${player.name} ${difference < 0 ? "lost" : "gained"} some XP. Old: ${oldXP} - New: ${newXP} - Difference: ${difference}`); }); mp.events.add("playerLevelChange", (player, oldLevel, newLevel) => { console.log(`${player.name} had a level change. Old: ${oldLevel} - New: ${newLevel}`); });  
    Credits
    Unknown Modder - RP List IllusiveTea - Rank bar scaleform  
    Notes
    This script will load and save level and XP data of players on its own but a function to save player data yourself is provided. Like said before, don't change the values of currentLevel and currentXP shared data keys. Maximum reachable level is 7999 but a player can earn XP until his rank bar is full, kinda reaching 8000. Use player.hasReachedMaxLevel() to detect if a player is level 7999 and his rank bar is full.  

    475 downloads

       (5 reviews)

    0 comments

    Submitted

  10. Simple Teams

    Prevents players of the same team shooting eachother.
     
    Installing
    Put teams into your server's client_packages directory, then add require('teams'); to client_packages/index.js.
     
    Using
    It's pretty simple, just set currentTeam shared variable of a player like this:
    // both strings and numbers should work playerEntity.data.currentTeam = whatever; playerEntity.setVariable("currentTeam", whatever); And set currentTeam to null if you want to reset someone's team.
     
    Note
    This resource doesn't prevent all kinds of friendly fire, for example projectile weapons like RPG can hurt teammates, you can still run teammates over with a vehicle etc. You can check if both killer and victim is on the same team and punish the killer, though.

    223 downloads

       (4 reviews)

    0 comments

    Updated

  11. AwardAPI

    This script lets you create awards/achievements and give them to players.
     
    Installing
    Put the files you downloaded in their respective places Add require('awards') to client_packages/index.js Open packages/awards/database.js and put your MySQL config All done  
    API - Exported
    You need to load awards/api.js in your script with using require() for these.
    /* awardDefinitions object contains all defined awards. Keys of this object are valid award IDs. */ awardDefinitions /* Defines an award. Awards can be single or multi tier depending on what you send to requiredProgress. If you send an array of numbers, it will be a multi tier award. (then tierColor must be an array of numbers too, tierColors length being the same as equiredProgress length) If you send a single number, it will be a single tier award. (then tierColor must be a single number too) Check out https://wiki.rage.mp/index.php?title=Fonts_and_Colors#HUD_Colors for tierColors values. (107, 108, 109, 110 are great) You can search for mpawards in OpenIV/CodeWalker Explorer for txdLib and txdName, or send an empty string to txdLib and txdName if you don't want to use an icon. This function returns true if award is created, false otherwise. */ defineAward(ID, name, description, txdLib, txdName, requiredProgress, tierColor) /* Returns the specified award's tier for the specified progress. You must increase the return value by 1 if you want to display it to players. Returns: -2 if award ID is invalid -1 if progress isn't enough for any tier 0 and above if progress is enough for any tier */ calculateAwardTier(awardID, progress) /* Returns the specified award's icon color for the specified tier. Return value will be -1 if award ID is invalid. */ getAwardTierColor(awardID, tier)  
    API - Player
    /* This property contains the award data and should be used for getting values. Keys of this object are the award IDs that player has any progress on. player.awardData[validAwardID] properties: - Progress (number) - Tier (number) - IsComplete (boolean) - CompletionDate (date, null if award isn't complete) */ player.awardData /* Sets the specified award's progress to the specified amount. Returns false if awardID is invalid, true otherwise. */ player.setAwardProgress(awardID, progress) /* Changes the specified award's progress by the specified amount. Returns false if awardID is invalid, true otherwise. */ player.changeAwardProgress(awardID, progress) /* Resets the specified award's progress. Returns false if awardID is invalid or player doesn't have any data about the specified awardID, true otherwise. */ player.resetAwardProgress(awardID) /* Resets all award progress. Doesn't return anything. */ player.resetAllAwardProgress() /* Saves award data. You don't need to add this to your script's playerQuit event because AwardAPI will save data when a player disconnects. */ player.saveAwards()  
    Serverside Events
    /* playerAwardTierChange This event is called when a player's award's tier changes. */ mp.events.add("playerAwardTierChange", (player, awardID, oldTier, newTier) => { // code }); /* playerCompleteAward This event is called when a player completes an award. */ mp.events.add("playerCompleteAward", (player, awardID) => { // code });  
    Example
    This script creates 2 awards (one single tier and one multi tier), progresses them when certain events happen, sends a message to players when one of their awards has a tier change or completion and provides some commands.
    const awardAPI = require("../awards/api"); /* Multi tier award, will be complete when a player dies 1000 times. 1 deaths - tier 1 (bronze) 10 deaths - tier 2 (silver) 100 deaths - tier 3 (gold) 1000 deaths - tier 4 (platinum) */ awardAPI.defineAward("award_unlucky", "Unlucky", "You keep dying, be careful!", "mpawards5", "killmeleeweapons", [1, 10, 100, 1000], [107, 108, 109, 110]); /* Single tier award, will be complete when a player writes something to the chat. */ awardAPI.defineAward("award_chat", "Baby's First Words", "You used the chat.", "", "", 1, 110); // Events mp.events.add({ // Increase player's "award_unlucky" progress by 1 when a player dies. "playerDeath": (player) => { player.changeAwardProgress("award_unlucky", 1); }, // Set player's "award_chat" progress to 1 (since its max. progress is 1) when a player writes something to chat. "playerChat": (player) => { player.setAwardProgress("award_chat", 1); } }); // Commands mp.events.addCommand("howunlucky", (player) => { // example: check if player has any progress for award_unlucky, display a message based on completion if (player.awardData["award_unlucky"]) { if (player.awardData["award_unlucky"].IsComplete) { player.outputChatBox("You're extremely unlucky."); } else { player.outputChatBox(`Not too unlucky, just ${player.awardData["award_unlucky"].Progress} deaths...`); } } else { player.outputChatBox("You're pretty lucky for now."); } }); mp.events.addCommand("setawardprogress", (player, _, awardID, progress) => { // example: "/setawardprogress award_unlucky 1000" will complete "unlucky" achievement player.setAwardProgress(awardID, Number(progress)); }); mp.events.addCommand("changeawardprogress", (player, _, awardID, progress) => { // example: "/changeawardprogress award_unlucky 5" will add 5 progress to "unlucky" achievement player.changeAwardProgress(awardID, Number(progress)); });  

    139 downloads

       (2 reviews)

    0 comments

    Updated

  12. Headshots

    Small script that adds instantly killing headshots.
     
    Installing
    Put headshots into your server's client_packages directory, then add require('headshots'); to client_packages/index.js.

    503 downloads

       (6 reviews)

    0 comments

    Submitted

  13. Character Previewer

    This resource will help work with player clothes. I hope, someone will add all clothes screens to wiki  😀
     

    359 downloads

       (1 review)

    0 comments

    Updated

  14. Radio Sync

    This script, sync Driver Radio to all Other Passangers...

    INSTALL :

    Simple....
    put the files in the Folders as defined.
    in client_packages/index.js put 
     
    Finish
    i Hope it worked for u
     
    EDIT : A Update is currently in work

    736 downloads

       (6 reviews)

    0 comments

    Updated

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

  16. Moods

    This resource lets players choose their mood. Selected mood is synced to other players.
    Installing
    Put the files you downloaded in their respective places Download & install NativeUI if you haven't yet, this script needs it Add require('moods') to client_packages/index.js All done Controls
    F7 Key - Show/hide mood menu.

    303 downloads

       (5 reviews)

    0 comments

    Updated

  17. Global Voice Chat

    The most trivial example usage of the recently introduced built-in voice chat API: global chat. It connects you to all players when you join the server and vice-versa.

    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.

    539 downloads

       (5 reviews)

    0 comments

    Updated

  18. Local Voice Chat (3D)

    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.
     

    2221 downloads

       (6 reviews)

    0 comments

    Updated

  19. Binoculars

    The scenario used here is not synced
    Use the command to trigger the script :
    /binocular Scroll up and down to zoom in / out.
     
    Installation: Just put the folders where they should be, don't forget to import client side scripts in your index.js
     
    If you have any question feel free to ask us
     
    By AdAstra Dev Team (FR :D)

    152 downloads

       (1 review)

    0 comments

    Updated

  20. Manual transmission

    Hello everyone,
    It's been a while i didn't do some resources, and I've seen root taking the throne for a while. So i thought i would contribute again with some average resource for the developers to know more about rage's environment. Basically this resource introduces manual transmission to cars to ensure more control on your vehicle and to enjoy the experience of the manual transmission (Could be useful for some drag racing maybe..).
    Anyways manual is toggled by the command: /manual 
    Controls:
    NUMPAD_ADD increases the gear. NUMPAD_SUBTRACT lowers the gear Simple manual HUD was introduced beside the mini-map to know everything about your vehicle.
    Gears: 1-5, N, R.
    Shifting to fast disables vehicle engine. You have wait the shiftNow sign to appear, so you can shift to the next gear.
    Any questions/bugs please notify me in the comments section.
    Drive safely,
    Keptin

    251 downloads

       (4 reviews)

    0 comments

    Updated

  21. Free Cam

    With this script you can get coordinates of the camera and coordinates of where camera is pointing.
    F5 - enable/disable. F5+Space - disable without warping to ground. W/A/S/D/Space/LCtrl - move. /savecam [name] - save Camera position. Example of save:
    Position: -64.17094421386719, -824.6749877929688, 373.018310546875 | pointAtCoord: -76.13325500488281, -807.392822265625, 320.28961181640625 | entity: 139321 - First Pos  
    Author: @ragempdev
    I just added possibility to save camera pos and pointAtCoord

    559 downloads

       (5 reviews)

    0 comments

    Updated

  22. Client-side TowTruck States Event

    OnPlayerTowTruckStateChange returns: attach - when any vehicle has been attached to tow truck detach - when attached vehicle has been detached from tow truck deadOrDestroy - when attached vehicle has been destroyed exit - when player exit tow truck while have got attached some vehicle
    I think that's simple and useful for everyone.

    277 downloads

       (1 review)

    0 comments

    Updated

  23. Bigmap

    Hello  👋 ragers 😡 😡 😡 have a good 👍 👍 day ☀️ ☀️ ☀️ ☀️
    I would like to present C# & JS resource that lets allows you to switch between 3 map options. Like in GTA Online.
    Default map. Zoomed out. Big map.
    Installing & Using
    Put the files you downloaded in their respective places Press Z (Default) (Settings — Key Bindings — General — Radar Zoom / Multiplayer information)

    187 downloads

       (2 reviews)

    0 comments

    Updated

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

  25. Colored Headlights

    This script adds the colored xenon headlights feature from Arena War DLC.
     
    Installing
    Put coloredhlights into your server's client_packages directory, then add require('coloredhlights'); to client_packages/index.js.
     
    Using
    Set the headlightColor shared variable of a vehicle to the headlight color ID you want. Command example:
    // /hcolor 10 should make your vehicle's headlights pink mp.events.addCommand("hcolor", (player, _, colorId) => { if (player.vehicle) { player.vehicle.data.headlightColor = Number(colorId); } else { player.outputChatBox("You're not in a vehicle!"); } });  
    Headlight Colors
    Since Rockstar didn't make headlight colors RGB, you can only use a set of numbers as color IDs.
    0 = White 1 = Blue 2 = Light Blue 3 = Green 4 = Light Green 5 = Light Yellow 6 = Yellow 7 = Orange 8 = Red 9 = Light Pink 10 = Pink 11 = Purple 12 = Light Purple Color IDs higher than 12 will force xenon headlights to use their default color.
     
    Notes
    Since this script toggles the xenon headlights mod (toggleMod 22), it may not work with your car customization script. Color IDs lower than 0 and color ID 255 will disable the feature (revert headlights back to normal from xenon) until you set a valid color again.

    255 downloads

       (5 reviews)

    0 comments

    Submitted