Jump to content

207 files

  1. Inventory System

    RAGE Multiplayer Inventory System
    A simple inventory system with plenty of features and a neat UI!
     
    *This script does not provide a saving or loading system, that's your doing, there's a 'save' method in the inventory class where you can implement your own saving system depending on what database you're using.
    *Comes in typescript & javascript version.
    *The keys binded in the clientside script are temporary, you should change them based on your preference.
    *Easy to use & implement.
    > Will be generally maintained and updated.
    Items
    Down below is a list of item properties, each property has its own unique use so read it please.
    type: ITEM_TYPES; //item type typeCategory: ITEM_TYPE_CATEGORY; //item category see ITEM_TYPE_CATEGORY enum in index.d.ts isPlaced: boolean; //whether item is 'placed' in clothes quality: number; //item quality level image: string; //item image hash: string; //unique item hash, also used as linked to a child item key: string; //item key which contains clothes data only (such as component id, drawable and texture) render: string; //item render image which later on can be used in CDN if you have plenty items. name: string; //item name description: string; //item description count: number; //item count, also determines whether you can split an item up weight: number; //item weight maxStack: number; //max stack determines how many items can be stacked in one slot options: string[]; //item options (to be used when you right click an item) such gender: number | null; //item gender, used on clothes whether the clothe is for female or male modelHash?: string; //prop model name or hash that will be used to create object when dropping item ammoType?: string; //ammo type that a weapon will contain ammoInClip?: number; //ammo in weapon clip amount?: number; //used for armor to contain its amount effect?: { //a feature to be developed whether the item will have an effect or not [key: string]: number; }; components?: Array<number>; //will be used for weapon attachments in future

    Class Structure
    The Inventory class is the main class for managing player inventories in a game. It extends from other classes such as InventoryClothes, QuickUse, and InventoryItem.
    InventoryBase: Base class for inventory management. It initializes the inventory structure and handles basic operations. InventoryItem: Extends InventoryBase and adds methods for managing individual items in the inventory. QuickUse: Extends InventoryItem and adds methods for managing quick-use slots. InventoryClothes: Extends QuickUse and adds methods for managing clothing items in the inventory. This class provides comprehensive functionality for managing player inventories, including adding, removing, equipping, and using items.
    Properties
    items: Contains the player's inventory items, divided into pockets and clothes. quickUse: Contains items assigned to quick-use slots. weight: Represents the total weight capacity of the inventory. equippedWeapons: Keeps track of equipped weapons. Constructor
    Initializes the inventory with player-specific data such as clothes, pockets, and quick-use items. Methods
    addItem: Adds an item to the inventory's pockets. addClothingItem: Adds a clothing item to the inventory. removeClothes: Removes a clothing item from the player's character. loadClothes: Loads clothing items onto the player's character. setClothes: Sets clothing items on the player's character. reloadClothes: Reloads clothing items onto the player's character. getFreeSlot: Retrieves a free slot in the inventory pockets. getTotalFreeSlots: Counts the total number of free slots in the inventory. getClothingIndex: Retrieves the index of a specific clothing item type. resetItemData, resetClothingItemData, resetBackpackItemData: Resets item data in the inventory. updateOnScreenPed: Updates the player's character appearance on-screen. getItemModel: Retrieves the model hash of an item type. getItemAndStack, getItemsByHashName, getItemsInCategoryByHashName, getItemsByHashNameEx: Methods for retrieving items by their type or category. getItemByUUID: Retrieves an item by its UUID. hasPistolItem, hasShotgun, hasAssault, hasSMG, hasWeaponInFastSlot: Methods for checking if the inventory contains specific weapon types. getActualWeight, getWeight, getItemsWeight: Methods for calculating the weight of the inventory and its items. checkWeight: Checks if adding a new item will exceed the weight limit. getFreeSlotCount: Retrieves the count of free slots in the inventory. dropItem, splitStack, addPlayerItem, addPlayerItemEx, addMultipleItems, addCountToPlayerItem, manageFastSlots, pickupItem, moveItem, openItem, useItem: Methods for managing inventory actions such as dropping, splitting, adding, and using items. deleteItemStack, deleteItem: Methods for deleting items from the inventory. checkQuickUse: Checks if an item is in a quick-use slot.  
     
     
    Adding new items:
    Javscript
    -> Navigate to Items.module.js located inside inventory folder, there you can see a list of already added items, and you can follow the path, after adding an item there make sure the item image exists in the frontend, if it doesn't then add it and rebuild the frontend.
    Typescript
    -> Navigate to Items.module.ts located inside inventory folder, there you can see a list of already added items, and you can follow the path, after adding an item there make sure the item image exists in the frontend, if it doesn't then add it and rebuild the frontend.
    Getting Started with Development
    Install the required packages by executing `npm install`
    If you're on typescript version after installing packages you can execute `npm run watch:server` to watch/build server side and `npm run watch:client` to watch/build client side, if you're on the javascript version, you don't have to do anything.
    Getting started with frontend.
    In your terminal navigate to the frontend folder (cd frontend)
    Run frontend in development mode by executing: `npm run start`
    Build the frontend (inventory ui) by executing `npm run build`
    After you're done see the gifs below what to do next:
    Creating package2 folder:
    https://github.com/shr0x/ragemp-inventory-system/raw/main/gifs/create_package2.gif
    Building Inventory UI:
    https://github.com/shr0x/ragemp-inventory-system/raw/main/gifs/build_frontend.gif
    Moving built files to package2:
    https://github.com/shr0x/ragemp-inventory-system/raw/main/gifs/move_to_package2.gif

    35 downloads

       (0 reviews)

    0 comments

    Updated

  2. Windows style cursor pack

    An example of a cursor pack that replaces the default cursor.

    Replaced cursors:
    default (CT_POINTER) help (CT_HELP) none (CT_NONE) pointer (CT_HAND) text (CT_IBEAM) move (CT_MOVE) ew-resize (CT_EASTWESTRESIZE) ns-resize (CT_NORTHSOUTHRESIZE) not-allowed (CT_NOTALLOWED) This resource also has a browser page with a list of all possible cursors for the test.
    Have fun customizing your cursors!

    72 downloads

       (2 reviews)

    0 comments

    Updated

  3. Winter Event Gift Collector - WIP - but working

    Hello, this is the winter event script I was planning to release this winter.
    As it currently stands i'll be a bit bussy this winter, won't have time for free open source projects like this one.
    I've wanted to create a more complex one, with lots of micro-events inside but time won't allow it so this is useable, you just need to get 10 coordinates of your choice for this fully work for your server.
     
    GET A DEVELOPER !
    This script is !NOT! plug-and-play since it requires AT LEAST adding 7 more coordinates.
     
    I promise next winter for a better event, but for now, i'm struggling with my GF birthday also LOL
     
    🥰🤪
     
    Get in contact with me: 
    Discord: kraneq
     
    I'll respond to question

    58 downloads

       (0 reviews)

    0 comments

    Submitted

  4. Attachments editor

    V2
    Menu to show and select between all bones avaliable (https://wiki.rage.mp/index.php?title=Bones) Camera focus on the bone you select. Added more keys to edit the object. Menu to edit or remove objects that were already placed. Object information save on *attachments.txt* on serverside. Keys
    /attach [object_name] · Command to start editing the object. TAB · Key to open the menu to edit objects placed. Enter · Key to finish the editing the current object. Cancel · Key to cancel the editing the current object. Space · Key to reset the pos and rot the current object. R · Key to change mode between pos and rot. L · Key to change the camera's fov. UP | DOWN · Edit pos/rot X the current object. LEFT | RIGHT · Edit pos/rot Y the current object PageUp | PageDown · Edit pos/rot Z the current object. Shift · Increase speed the editing. AltLeft + X · Reset pos/rot X the current object. AltLeft + Y · Reset pos/rot Y the current object. AltLeft + Z · Reset pos/rot Z the current object. Notes
    Also on GitHub: https://github.com/1PepeCortez/Attachments-editor

    214 downloads

       (2 reviews)

    0 comments

    Updated

  5. [TS] Animation Viewer

    Hello,
    I needed a script which lets me view animations. I found Hazes' resource (linked below) which is written in C# so I decided to transform it to TypeScript so that I can use it in TypeScript servers as well.

    Installation:
    Download and extract the script Put the files inside the "server" folder into your server packages Put the files in the "client" folder into your client packages Import the "animator" files on server and client side.
    Instructions on how to use the script can be found in the original resources's description.

    This script is based on:
     

    85 downloads

       (0 reviews)

    0 comments

    Updated

  6. draw-zone

    Draw-zone script
    Description: Drawing zones on map by using (tab, space, del) buttons and save it as polygon (call remote event drawZone.save)
    Controls:
    Tab - Place user mark on map (can be moved to draw lines)
    Space - Save dot on mark place
    Del - delete previous dot
    Commands:
    /zstart - Start drawing zones on map
    /zstop - Stop drawing zones
    /zreset - Reset drawing
    /zsave - Saving coords (Calling remote event drawZone.save)
    /zlist - list of commands
    Video snippet: https://imgur.com/a/liLwZo5
    Repository: https://github.com/READYTOMASSACRE/ragemp-draw-zone

    106 downloads

       (2 reviews)

    0 comments

    Updated

  7. Electrician Job - Modern, fast, lightweight - JS only

    Hello, this Electrician job was made last night, in an effort to get to understand the more complex and the workflow for RageMP, i find it really interesting and i'm looking for your feedback.
     
    How does it work:
    You will get a blip on the map

    If you get there, you need to talk to the Electrician guy to hire yourself and get the garage access to spawn vehicles

     

     
    Once you get in range for the Garage blip, you need to press `E` to spawn the job vehicle and to get missions to go to:


     
    There is implemented an "inaccesible" script, that you can just be around the general entrance area, and you get teleported to the exit and the same for exit:

     
    Once you get inside, you can go to the mission to repair the electric panel:

     
    I do custom work and take script requests, feel free to message me: krane#2890 on discord

    825 downloads

       (3 reviews)

    0 comments

    Submitted

  8. [JS] Player Location Display ported over to javascript

    A Javascript remake of https://rage.mp/files/file/461-c-player-location-display/ (all credits go to him)
    Hey!
    This is my first resource that I am publicly releasing.
    For you all, I have ported the C# Player Location Display (https://rage.mp/files/file/461-c-player-location-display/) into JS.
    Install
    Place `/street` into your server's client_packages directory, then add `require("./street/index.js");` to client_packages/index.js

    I know the code isn't the best optimized, please feel free to open a pull request on GitHub.
     
    GITHUB: https://github.com/realdiegopoptart/ragemp-pld

    531 downloads

       (0 reviews)

    1 comment

    Updated

  9. Bounding Box

    Simple script to get dimensions of any entity (object, vehicle, ped), center of entity and corners.
    Also you can draw bounding box.
     

    285 downloads

       (1 review)

    2 comments

    Updated

  10. Generic Native Keypad

    Originally created around 2019, so it might be broken with newer versions of RageMP, though I believe I fixed this at some point.
    The system allows you to set up a keypad server-side and hook an action to the Confirm button in the keypad. The action is invoked server-side and as argument you get the value which the user put in the keypad client-side. You can set the title, subtitle and even control if the input in the field will be asterisks for cases where the player would be typing a pin etc.
    The entire keypad requires no CEF at all, and no web related dependencies. Instead the whole thing is defined and rendered using native GTA:V UI elements.
    Getting started
    To get started put the keypad.js in your client folder and remember to include it in the index.js. Then grab the KeypadLibrary.cs and put it in your server project. With this you are ready to create keypads wherever you need them. Invoke the following function:
    StartKeypadForPlayer(Player player, string title, string subTitle, bool useAsterisk, Action<Player,int> callback) as such:
    KeypadLibrary.StartKeypadForPlayer( ply, "Withdraw", $"Current bank balance: ~g~${ply.cash}", false, (ply, x) => { ply.SendChatMessage("You are withdrawing: " + x); }); The system supports all native colors from GTA:V so you can color the title and subtitle if needed.
    Here's the GitHub link for those interested https://github.com/Andreas1331/ragemp-keypad

    62 downloads

       (0 reviews)

    0 comments

    Submitted

  11. EasyCEF

    This resource adds a simplified system for creating HTML browsers, as well as other features such as forcing the cursor to display.
    Requirements
    RAGE Multiplayer 1.1 and above. Installing
    Put the folder into 'client_packages' (client_packages/easycef). Add require('easycef') to 'client_packages/index.js'. Clientside API
    /** * Creates Browser and pushes it into instances array with given parameters. * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @param {string} browserPath Browser Path / starts from client_packages (example: "testcef/index.html"). * @param {bool} forceToCursor Forces the game to display the cursor, even if the player can disable it until the browser is destroyed again. */ mp.game.app.createBrowser(browserName, browserPath, forceToCursor); /** * Destroys Browser and removes it from instances array. * @param {string} browserName Browser identifier (example: "TestBrowser1"). */ mp.game.app.destroyBrowser(browserName); /** * Returns searched browser exists or not. (Available as of version 1.1.0) * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @return {bool} True if exists, otherwise false. */ mp.game.app.browserExists(browserName); /** * Switches browser (destroys old browser and creates new one with same name). * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @param {string} newPath Browser Path / starts from client_packages (example: "testcef/index.html"). * @param {bool} forceToCursor Forces the game to display the cursor, even if the player can disable it until the browser is destroyed again. */ mp.game.app.switchBrowser(browserName, newPath, forceToCursor); /** * Reloads the browser. * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @param {bool} ignoreCache True to ignore cache. */ mp.game.app.reloadBrowser(browserName, ignoreCache); /** * Calls JavaScript code inside the browser. * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @param {string} codeToExecute JavaScript code to be executed in browser. */ mp.game.app.executeClientFunction(browserName, codeToExecute); /** * Set cursor in a specific browser forced or unforced. * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @param {bool} force True to force the cursor to be there. */ mp.game.app.setCursorForced(browserName, force); /** * Returns is the cursor forced in browser * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @return {bool} True if forced, otherwise false. */ mp.game.app.isCursorForcedInBrowser(browserName); /** * Returns is a cursor forced in any browser. * @return {bool} True if any cursor is forced, otherwise false. */ mp.game.app.isAnyCursorForced(); /** * Returns the specified item. * @param {string} browserName Browser identifier (example: "TestBrowser1"). * @return {object} The function will return nothing if browser does not exist. */ mp.game.app.getBrowserObject(browserName);  
    Notes
    With 'isAnyCursorForced' you can work for example by checking in your cursor keybind function if a cursor is forced in any CEF. For any error messages or questions: Feel free to write me on Discord: мαяνιη.#9554 Not all RAGE browser functions are implemented yet, should be relatively easy to add, maybe an update will come soon There is a 'better cursor' system implemented that automatically shows the cursor if there is a browser that forces it. If you want to disable it and build your own, just set 'isBetterCursorEnabled' in the file to false. If you want you can check my GitHub Repository: https://github.com/sckindvl/easycef

    108 downloads

       (1 review)

    0 comments

    Updated

  12. [C#] Player Location Display

    Hello!
    This is my first ever resource, hopefully I've done everything right.
    For you all, I have recreated the popular Player Location Display by Lt.Caine for RageMP with the help of codibez's streetLabel repo on GitHub.
    The code is in C# so you will have to activate C# in your server's conf.json if you haven't yet.
    Place both folders in your client_packages and you're good to go.

    Enjoy!

    527 downloads

       (0 reviews)

    0 comments

    Updated

  13. Dronesytem

    Installing
    Put drone into your server's client_packages directory, then add require('drone'); to client_packages/index.js.
     
    Controls
    F2 = Toggle Drone
    ARROW UP = Forward
    ARROW DOWN = Backward
    ARROW LEFT = Left
    ARROW RIGHT = Right
    Q = Rotate Left
    E = Rotate Right
    SPACE = Go Up
    CTRL = Go Down
    N = Toggle Camera
    T = Taze
    F6 = Toggle Nightvision
    F7 = Toggle Thermalvision
     
    Information
    Hello friends, this is my first public script I hope you like it. I would be happy about constructive comments and suggestions for improvement
    💖

    506 downloads

       (5 reviews)

    0 comments

    Submitted

  14. Speedometer

    Installation
    Copy "Speedometer" folder to client_packages.
    Add "require('./Speedometer/index.js');"  to your index.js in client_packages, and you should be good to go!

    1030 downloads

       (5 reviews)

    0 comments

    Submitted

  15. Native storage

    Installing
    Put the files you downloaded in client_packages Add require('gameStorage') to client_packages/index.js All done Notes
    This storage is cleared only after a complete re-entry into the game  
    Client API
    mp.gameStorage.setFloat(property, value); mp.gameStorage.setInt(property, value); mp.gameStorage.setString(property, value); mp.gameStorage.getFloat(property); mp.gameStorage.getInt(property); mp.gameStorage.getString(property);
    Examples
    Setting and getting value:
    mp.gameStorage.setFloat('floatKey', 0.51243); mp.gameStorage.setInt('intKey', 15621); mp.gameStorage.setString('stringKey', 'ragemp'); mp.gui.chat.push(`${mp.gameStorage.getFloat('floatKey')}`); mp.gui.chat.push(`${mp.gameStorage.getInt('intKey')}`); mp.gui.chat.push(`${mp.gameStorage.getString('stringKey')}`); Deleting blips created with mp.game.ui.addBlipForCoord after reconnecting:
    const PLAYER_READY_EVENT = 'playerReady'; const CREATED_BLIPS_KEY = 'createdBlips'; const F2_KEYCODE = 0x71; const createdBlips = []; const addHandle = (handle) => { createdBlips.push(handle); mp.gameStorage.setString( CREATED_BLIPS_KEY, JSON.stringify(createdBlips) ); }; const getDepricatedBlips = () => { try { return JSON.parse(mp.gameStorage.getString(CREATED_BLIPS_KEY)); } catch { return []; } }; const handlePlayerReady = () => { const blips = getDepricatedBlips(); for (let handle of blips) { if (mp.game.ui.doesBlipExist(handle)) { mp.game.ui.removeBlip(handle); } } mp.gameStorage.setString(CREATED_BLIPS_KEY, ''); }; const handleCreateBlip = () => { const handle = mp.game.ui.addBlipForCoord(0, 0, 0); addHandle(handle); }; mp.events.add(PLAYER_READY_EVENT, handlePlayerReady); mp.keys.bind(F2_KEYCODE, true, handleCreateBlip);  

    135 downloads

       (4 reviews)

    0 comments

    Updated

  16. Disabling props(hats/glasses) knock off

    Basically this file disables props being knocked off the player by any possible damage. I remember that when i tried by script it didn't work, i haven't checked the one by script in a while, but I m assuming it still doesn't work.
    If the one by script works just delete this resource.
    How to use , just paste the content of the zip in your server files in client_packages\game_resources !
    If you have other questions/suggestion regarding what can be edited from the files from the games, feel free to contact me on discord Cricket#1276 !

    260 downloads

       (3 reviews)

    0 comments

    Submitted

  17. Disabling stealth kills through GTA files

    So i have been getting a lot of DMs on discord regarding how to disable the stealth kills.
    Basically this file contains the edited conditions that are checked by GTA in order for the player to perform a stealth kill and are changed so they are never met, making it impossible for any player to perform them.
    How to use , just paste the content of the zip in your server files in client_packages\game_resources !
    If you have other questions/suggestion regarding what can be edited from the files from the games, feel free to contact me on discord Cricket#1276 !

    315 downloads

       (3 reviews)

    0 comments

    Submitted

  18. Circuit Breaker - C# Minigame

    Minigame from the original heist update, done with scaleform without CEF.

    Installing:
    Put all files in client_packages\cs_packages\

    To call that script:
    Event name: 
    CircuitBreakerStart

    Event args:
    Count of Lives (1 - 10)
    Difficulty Level (0 - 4) (0 is beginner, 4 is expert)
    Levels to complete (1 - 6)

    C# Server Example:
    player.TriggerEvent("CircuitBreakerStart", 5, 1, 6);

    Game results events:
    CircuitBreakerWIN - is called at client side, when player succeed at all levels, no args.
    CircuitBreakerLOSE - is called at client side, when player quits (Q button) OR lost all his lives, no args.

    If you are using JS client side:
    You need to create 2 events (described above) at your client side to catch game results.

    If you are using C# client side:
    You can just modify 2 methods inside Main.cs, which already contains both methods to catch game results.

    Minigame Preview, done on this system: 
     

    200 downloads

       (2 reviews)

    0 comments

    Updated

  19. CircuitBreaker - JS Minigame

    Hello again, Ragers.

    This minigame is the same as the one in the base game heists. It's purely scaleform, and no CEF.
    (Thanks to Develuxe for C# version)
    Simply put this into client_packages, and add this to your index.js:
    require('./CircuitBreaker'); It has three events:
    CircuitBreakerWIN - This event is called on the client when the client player has successfully won the minigame
    CircuitBreakerLOSE - This event is called on the client when the client player quits, or fails to complete the minigame
    CircuitBreakerStart - This event is callable on the client (from server with player.call), and is used as follows:
    // Lives (any number), this number is the total amount of lives for all levels // Difficulty (0-4), where 0 is easiest and 4 is hardest // Level Count (1-6), how many levels have to be completed player.call('CircuitBreakerStart', /* lives */ 3, /* difficulty */ 1, /* level count */ 2);

    358 downloads

       (4 reviews)

    0 comments

    Updated

  20. Advanced Chat - Upgraded

    About
    This is a fork of Advanced Chat - Dependency free with a few new features implemented that were present in SA:MP
    Features Added
    /chathelp - view all commands /fontsize [size(0.5 - 1.5)] - sets the size of the font /pagesize [size(4-24)] - sets the size of the page /timestamp - toggles between timestamp /togglechat - toggles chat hidden/visible - The features added were present in SA:MP,
    DEPENDENCIES
    INSTALLATION
    Download files Include advanced-chat in your index.js REPO
    If you want to contribute, the link to the repository is - https://github.com/fl1k/advanced-chat

    SCREENSHOTS




    VIDEO
     

    1453 downloads

       (3 reviews)

    5 comments

    Submitted

  21. Custom pause menu header

    This resource allows you to customize the header of the pause menu.

    406 downloads

       (2 reviews)

    1 comment

    Updated

  22. [dl] Debug Labels / Vehicle Info

    Information:
    A small script implementing the /dl feature from SAMP (vehicle info - vehicle id, position, rotation, model, health)
    Usage:
    Use the command /dl to enable/disable.
    Installation:
    1) Install Better Clientside Commands by rootcause
    2) Put it somewhere and include it in your index.js
    Requirements:
     
     

    454 downloads

       (1 review)

    0 comments

    Submitted

  23. Pause Menu Player Scaleform (NO BACKGROUND!)

    RAW RESOURCES ONLY - NO SCRIPT HERE.
     
    Today I have for you a beast resource that will fix your problems with Ped Displaying using Native Menu Ped. This resource contains Custom Scaleform changes to some menu components, and pause menu definition, that allows the Ped to be rendered WITHOUT a background box around it, or even on screen (fuck you Rockstar for making this Scaleform so shit).
     
    You use this in the same way you use any other raw resource by placing the contents into client_packages/game_resources 
     
    If you already modify the Pause Menu xml file in some way, please see the changes in my own pausemenu.xml files and attempt to add them to your own, it shouldn't cause any problems!
     
    The script can be found in many different places already, so no need to show it here - this is not possible to render on top of CEF, so just use CSS to make some hole in your UI that this can show through.
     
    The menu version is custom here so that if Rockstar adds anything else or messes with dependencies, it doesn't immediately break. This means it's not really "documented" in natives (duh)
     
    The version used should be as follows:
     
    mp.game.ui.activateFrontendMenu(mp.game.joaat('FE_MENU_VERSION_RAGEBEAST'), false, -1);

    418 downloads

       (4 reviews)

    3 comments

    Submitted

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

    299 downloads

       (0 reviews)

    1 comment

    Updated

  25. Advanced Chat - Dependency free

    Very simple but complete chat written in vanilla js with arrows history navigation, time stamp, user colors prevention, character count, lower cased commands and scrollbar.
     
    Ragemp chat api works perfectly
     


    Settings 
    Edit settings in advanced-chat/js/main.js

    Install
    Extract in to advanced-chat folder and copy it to client_packages Add this somewhere client-side. (Eg: index.js) mp.gui.chat.show(false); //Disables default RageMP Chat const chat = mp.browsers.new('package://advanced-chat/index.html'); chat.markAsChat(); Add this somewhere server-side (Eg: index.js)
      mp.events.add("playerChat", (player, message) => { mp.players.broadcast(`${player.name}: ${message}`); });  

    1359 downloads

       (3 reviews)

    3 comments

    Updated


×
×
  • Create New...