Jump to content
RAGE Multiplayer Community

169 files

  1. [Real 3D] Server-side Sound API

    Description:
    This resources provides the ability to create/control sound in 3D via custom API.
    A slightly redesigned version of the Sound API, with real synced 3d effect.
    API:
    // Client-side mp.game.audio.playSound3D(veh_id, url, range, volume, track_length) /* * veh_id: int(Required) [Vehicle RemoteID] * url: string (Required) [Links and local package:// protocol are supported] * range: int (Optional, Default: 60) * volume: int (Optional, Default: 1) [Range: 0 to 1] * track_length: int (Optional, Default: 180) [Current track length in seconds] */ /// EVENTS: // (Client) /* * EventName: audioFinish * params: soundID (Vehicle's RemoteID that is finished Playing) */ /* * EventName: audioError * params: soundID (Vehicle's RemoteID that had error), errorObject {code: 'error code', error: 'error description'} */ // (Server) /* * EventName: sound:create * params: id, (Vehicle's RemoteID) url, range, volume, track_length */ /* * EventName: sound:destroy * params: id (Vehicle's RemoteID) */ /* * EventName: sound:pause * params: id (Vehicle's RemoteID) */ /* * EventName: sound:resume * params: id (Vehicle's RemoteID) */ /* * EventName: sound:setVolume * params: id (Vehicle's RemoteID), volume */ // Example let vehicleId = mp.players.local.vehicle.remoteId; mp.game.audio.playSound3D(vehicleId, 'http://rfcmedia.streamguys1.com/MusicPulse.mp3', 20, 1, 60); mp.events.callRemote('sound:pause', vehicleId); mp.events.callRemote('sound:resume', vehicleId); mp.events.callRemote('sound:destroy', vehicleId); If you have any issues or suggestions, you know the usual routine.
    Credits:
    - Thanks to Captien for his 3D sound API.

    Media:
     

    127 downloads

       (4 reviews)

    0 comments

    Updated

  2. Attached Bike Sync

    Attach a player to bmx or cruiser bike
     
    Installing
        extract attachedBike folders to packages/attachedBike and client_packages/attachedBike     if you allready have a index.js in your client_packages: add "require('attachedBike')"    
    Usage
        Press "G" - Attach/Unattach player to/from bike     Spawn a BMX: /bike     Spawn a Cruiser: /bike 2     
    Notes
        GitHub: https://github.com/Yoegibby/ragemp-attachedBike

    60 downloads

       (3 reviews)

    0 comments

    Updated

  3. Hair Overlays

    This resource adds hair overlays/hair tattoos/hair decals for freemode male and freemode female. Hair overlays are used in GTA Online for better looking hair.
     
    Requirements
    RAGE Multiplayer 1.1 and above mp.game.data resource Some script editing  
    Installing
    Put the files you downloaded in their respective places Install mp.game.data if you haven't installed it yet Add require('hair-overlay') to client_packages/index.js All done  
    Clientside API
    /** * Call after updating the local player's hair style on clientside. * Useful for barber shop preview and other customization related scripts. */ mp.players.local.applyHairOverlay();  
    Serverside API
    /** * Call after updating a player's hair style on serverside. * Not using this function might cause visual desync until the player is restreamed in to other players. */ player.applyHairOverlay();  
    Example
    Commands used during development:
    // Clientside (https://rage.mp/files/file/296-better-clientside-commands/ - for addCommand clientside) // /client_sethair 72 0 0 mp.events.addCommand("client_sethair", (hair, color, highlight) => { hair = Number(hair); color = Number(color); highlight = Number(highlight); mp.players.local.setComponentVariation(2, hair, 0, 2); mp.players.local.setHairColor(color, highlight); mp.players.local.applyHairOverlay(); }); // Serverside // /sethair 72 0 0 mp.events.addCommand("sethair", (player, _, hair, color, highlight) => { hair = Number(hair); color = Number(color); highlight = Number(highlight); player.setClothes(2, hair, 0, 2); player.setHairColor(color, highlight); player.applyHairOverlay(); });  
    Notes
    Streamed in freemode male/freemode female players will always receive a hair overlay, meaning no more 100% bald characters. Local player won't have a hair overlay until applyHairOverlay function is used. (either locally or from serverside) clearFacialDecorations function is used to remove the old hair overlay on clientside. Meaning if you have other scripts that use setFacialDecoration, applied facial decoration(s) will be removed after a hair overlay change. Hair overlays are retrieved from the game, the problem with this approach is earlier hair styles (drawable 1 to 20? something like that) for both freemode male/freemode female lacks decal information which causes the resource to apply the fallback/default hair overlay. (fm_hair_fuzz) Unless they have forced component information (check mp_m_freemode_01_gunrunning_hair_shop.meta for forced decal component example), third party hair styles will apply the fallback/default hair overlay. (fm_hair_fuzz) Also on GitHub: https://github.com/root-cause/ragemp-hair-overlays

    91 downloads

       (2 reviews)

    1 comment

    Updated

  4. Kill Counter

    This resource adds the kill counter from GTA Online. Players will get a notification showing how many times they died to their killer (red) and how many times they killed their killer (blue) on death.
     
    Requirements
    RAGE Multiplayer 1.1 and above  
    Installing
    Put the files you downloaded in their respective places Add require('killcount') to client_packages/index.js All done  
    API (Serverside)
    This resource adds a function to the player object:
    /** * Returns how many times this player killed the specified player. * @param {mp.Player} otherPlayer * @return {Number} */ player.getKillsAgainst(otherPlayer);  
    Notes
    Kill counters are reset on disconnect Will probably cause mad trash talking Also on GitHub: https://github.com/root-cause/ragemp-kill-counter

    63 downloads

       (3 reviews)

    0 comments

    Submitted

  5. Hood Up

    This resource adds the ability to hood up/down while wearing a hoodie.
     
    Requirements
    RAGE Multiplayer 1.1 and above  
    Installing
    Put the files you downloaded in their respective places Add require('hood-up') to client_packages/index.js All done  
    Using
    Press F5 while wearing a hoodie as mp_m_freemode_01 or mp_f_freemode_01.
     
    How it works
    This resource uses Rockstar's restriction tags and variant components to identify what the hood up/down drawable would be, meaning you don't need to hardcode any IDs. It also uses restriction tags to check if hooding up causes any clipping while wearing a hat/mask.
    Tag(s) used to check if current top is hooded: HOODED_JACKET (top clothing item must not have HOOD_TUCKED tag - causes an issue with parkas)
    Tag(s) used to check if current top's hood is down: HOOD_DOWN
    Tag(s) used to check if current hat is compatible with hooding up: HOOD_HAT
    Tag(s) used to check if current mask is compatible with hooding up: HOOD_COMPAT, REBREATHER, HAZ_MASK, SKI_MASK, GAS_MASK, BIKER_MASK (if mask clothing has one of these flags, you can hood up)
    For more information, just check the code.
     
    Notes
    Some hats/masks prevent hooding up even though there wouldn't be any clipping - not much I can do, Rockstar set their restriction tags that way. Open parkas seem to get replaced with their closed variation upon hooding up. Tops with this issue are: 185, 189, 212, 303 on mp_m_freemode_01 and 187, 191, 216, 314 on mp_f_freemode_01 Serverside part of this resource accepts whatever value players send for their new top (there's still a basic bounds check), you might want to figure out a way to secure it. Also on GitHub: https://github.com/root-cause/ragemp-hood-up

    90 downloads

       (4 reviews)

    0 comments

    Submitted

  6. Lucky wheel

    Lucky wheel is synced.
    Coords: 1110.8710, 228.8737, -49.6358
    resource on my github: https://github.com/Sokol123456/luckywheel
    Added support for 0.3.7, check github
     
     

    152 downloads

       (1 review)

    0 comments

    Updated

  7. Shooting Range

    This script provides working(not perfect) shooting range. You can try it with /poligon command but if you want to add it to your server. You should edit it a bit. 
    Features
    Random target spawn points.
    Changing interval between targets. 
    20 - 45 targets left: 3000 ms 10 - 20 targets left: 2500 ms 0   - 10 targets left: 2000 ms Points based on hit area (not working perfect)
    Script testing video
     
     
     
     

    86 downloads

       (5 reviews)

    0 comments

    Updated

  8. Synced stream/dimension variables

    This resource introduces new types of synced data variables along with entity.setVariable and entity.setOwnVariable to lower the affected user with syncing such data to a certain scope.
    Stream variables: Introduces synced data variables across streamed entities. The entity provides his data to the streamed clients and the vice versa. Dimensional variables: Introduces synced data variables across a dimension. The entity provides data to all clients in the dimension with a option to have a persistent data mode which keeps the data synced across multi dimension change. Note: Dimensional variables won't operate properly if you don't use its custom function entity.setDimension due to some complications that couldn't be sorted out.
    More information about the API usage can be found in github repo.
    This resource was a collaboration with me and @materiawith a vision to release a series of open sourced resources later on.

    42 downloads

       (2 reviews)

    0 comments

    Submitted

  9. Welcome Cutscene (From GTA:Online)

    Preview:
    Welcome Cutscene
    Getting started
    I have created an event called: startWelcomeCutscene - the First parameter is the Gender - 0 = Male, 1 = Female, the Second parameter is the name shown during the welcome process (This can be null)
    To include a name on the Welcome Screen using Draw Text when the Plane appears use. Be sure to edit the variable: ServerName (Line 9)
    //Server Side player.call("startWelcomeCutscene",[0,"John"]) //Client Side mp.events.call("startWelcomeCutscene", 0, "John"); To just simply show the Welcome Screen (no name shown)
    //Server Side player.call("startWelcomeCutscene", [0]) //Client Side mp.events.call("startWelcomeCutscene", [0]); This will then start a screen fade out, load the correct items, clone your player for the cutscene, remove unnecessary players from the movie and then being cutscene.
     
     
    Once the movie has finished it will call: 
    //Clientside mp.events.add("cutsceneEnded", () => { // Do something like new camera etc }); //Serverside mp.events.add("cutsceneEnded", (player) => { // Spawn Player }); So be sure to add this either Serverside or Clientside as it does both: call and callRemote for this function.
    I would recommend trigger your Spawn Process after the "cutsceneEnded" event.
    Special thanks to @Jer for providing the initial details from @DevGrab
    Things to note:
    If the server crashes - the jet may get left in the cutscene (even after re-log) - Action: Reload Game I have tried triggering mp.game.cam.doScreenFadeOut(100); when the cutscene is finished however I had no luck. However if your screen does go black, just call: mp.game.cam.doScreenFadeIn(0);  
    If you want to build your own cutscenes in the future, be sure to check out how this cutscene was initially developed by going to:
    https://github.com/root-cause/v-decompiled-scripts-1868/blob/master/fm_intro.c
    Line 6963 shows you how to register certain models and also how to hide models (using Male and Female as example)

    327 downloads

       (3 reviews)

    1 comment

    Updated

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

    205 downloads

       (1 review)

    2 comments

    Updated

  11. Client-Side Packet encryption

    About This File
    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.
    Includes packer like webpack (with watch mode), import/export from ES6 (thanks https://github.com/alangpierce/sucrase) and picking packages from node_modules
    To use the script, you'll need to have hands and installed node js.
    Idea behind?
    The idea behind was to make it hard as possible to block leakers/leechers copy client-side scripts. 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 start work?
    Steps:
    unpack zip archive to root server folder (path like a 'game-server/src_client') Open terminal in src_client directory Enter npm install or yarn in terminal Enter npm run watch or yarn watch to start watching 'src_client/sourcecode' directory Complete, now u can edit files in 'src_client/sourcecode' directory  
    Enjoy!
     
    P.S. code with comments "DO NOT MODIFY", u cant modify 

    127 downloads

       (0 reviews)

    1 comment

    Updated

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

    302 downloads

       (2 reviews)

    2 comments

    Submitted

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

    369 downloads

       (3 reviews)

    1 comment

    Submitted

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

    401 downloads

       (2 reviews)

    4 comments

    Updated

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

    305 downloads

       (6 reviews)

    1 comment

    Updated

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

    214 downloads

       (4 reviews)

    0 comments

    Updated

  17. Player List

    Requires RAGE Multiplayer 1.1.0 and above.
    This resource adds a GTA Online like player list to your server.
     
    Installing
    Put playerlist into your server's client_packages directory, then add require('playerlist'); to client_packages/index.js.
     
    Controls
    Z = Toggle player list visibility.
    PageUp = Move to the next page.
    PageDown = Move to the previous page.
     
    Customization
    You have the ability to customize how a player is displayed in the list. Here's a list of shared variable keys used for customization:
    PlayerListColor = This shared variable is used to specify which background color the player will have in the list. Uses an integer (HUD color ID), so go check the wiki.
    PlayerListTag = This shared variable is used to give players a crew/clan tag next to their name in the list. Setting this value to more than 5 characters isn't recommended since the scaleform displays up to 5 characters.
     
    Credits
    TomGrobbe - mp_mm_card_freemode scaleform research
    @rgnbgnhnd @Jer - Testing
     
    Notes
    This script uses mp.gui.chat.show function to toggle chat visibility when a player opens/closes the player list. Meaning if you have a custom chat, this resource might fail to toggle chat visibility.  
    Source code is available on GitHub in case you don't want to download: https://github.com/root-cause/ragemp-playerlist

    342 downloads

       (5 reviews)

    0 comments

    Updated

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

    190 downloads

       (2 reviews)

    0 comments

    Submitted

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

    230 downloads

       (2 reviews)

    4 comments

    Updated

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

    202 downloads

       (1 review)

    2 comments

    Updated

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

    658 downloads

       (3 reviews)

    1 comment

    Updated

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

    302 downloads

       (0 reviews)

    1 comment

    Updated

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

    703 downloads

       (8 reviews)

    0 comments

    Updated

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

    782 downloads

       (1 review)

    0 comments

    Updated

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

    21 downloads

       (1 review)

    2 comments

    Updated


×
×
  • Create New...