Scripts
169 files
-
[Real 3D] Server-side Sound API
By fakeskill
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
0 comments
Updated
-
Attached Bike Sync
By Gibzon
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
0 comments
Updated
-
Hair Overlays
By rootcause
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-overlays91 downloads
-
Kill Counter
By rootcause
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-counter63 downloads
0 comments
Submitted
-
Hood Up
By rootcause
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-up90 downloads
0 comments
Submitted
-
Lucky wheel
By Idle
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
0 comments
Updated
-
Shooting Range
By GL1TCH1337
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
0 comments
Updated
-
Synced stream/dimension variables
By Captien
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
0 comments
Submitted
-
Welcome Cutscene (From GTA:Online)
By Wdoyle
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
-
0.3.7+ Client-Side Packet encryption
By DevGrab
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
-
Client-Side Packet encryption
By kemperrr
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
-
Hitmarker
By DevGrab
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
-
RAGE 0.3.7 - Hitsync / Weaponsync
By DevGrab
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
-
Custom Pause Menu
By Larsalex
🔶 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
-
Playerlist (C#)
By rgnbgnhnd
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
0 comments
Updated
-
Player List
By rootcause
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
0 comments
Updated
-
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
0 comments
Submitted
-
Pet System
By Sakatum
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
-
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
-
Timer Bars
By rootcause
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
-
DialogUI
By davidsl6
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
-
[SCALEFORM] Chat
By Captien
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
0 comments
Updated
-
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
0 comments
Updated
-
Agreement / Contract API (NodeJS)
By umutbicer
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