ragempdev Posted December 24, 2024 Posted December 24, 2024 Hello everyone, Today, we're excited to release the new platform update: this update introduces a powerful set of APIs for vehicles, cameras, animations, and the pause menu, alongside several tweaks and new features — let's get straight to it. RAGEV_bsoPlCf1uT.mp4 Pause Menu We’ve added new functionality for customizing the in-game pause menu. You can now introduce your own settings items, along with the new API to interact with and manipulate the pause menu dynamically. Higher Level API: Added client-side mp.PauseMenuItem mp.game.ui.pausemenu.getItem(number itemNameOrHash) Added client-side mp.PauseMenuItem mp.game.ui.pausemenu.tryGetItem(number itemNameOrHash) Added client-side Array<mp.PauseMenuItem> mp.game.ui.pausemenu.getItems(Array<number> itemHashes) Added client-side Array<mp.PauseMenuItem> mp.game.ui.pausemenu.tryGetItems(Array<number> itemHashes) Added client-side mp.PauseMenuItem.setEnabled(bool enable) Added client-side mp.PauseMenuItem.setValue(number value) Added client-side mp.PauseMenuItem.setBarColor(number colorIndex) Added client-side mp.PauseMenuItem.setBarTicks(bool ticksVisible) Added client-side mp.PauseMenuItem.setList(Array<string> values) Added client-side mp.PauseMenuItem.getListDisplayValue(number value) Added client-side mp.PauseMenuItem.setRange(number rangeMin, number rangeMax) Added client-side mp.PauseMenuItem.getRangeDisplayValue(number value) Added client-side mp.PauseMenuItem.setText(string text) Added client-side property function mp.PauseMenuItem.onChange Added client-side property function mp.PauseMenuItem.onSelect Lower Level API: Added client-side mp.game.ui.pausemenu.setScreenHeader(number screenHash, string header) Added client-side mp.game.ui.pausemenu.setItemText(number itemHash, string text) Added client-side mp.game.ui.pausemenu.setItemRange(number itemHash, number rangeFrom, number rangeTo) Added client-side mp.game.ui.pausemenu.setItemList(number itemHash, Array<string> values) Added client-side mp.game.ui.pausemenu.setItemTicksVisible(number itemHash, bool isVisible) Added client-side mp.game.ui.pausemenu.setItemColor(number itemHash, number colorIndex) Added client-side mp.game.ui.pausemenu.setItemValue(number itemHash, number value) Added client-side mp.game.ui.pausemenu.setItemEnabled(number itemHash, bool isEnabled) Added client-side event pauseMenuItemSelect(number itemHash) Added client-side event pauseMenuItemChange(number itemHash, number value, number oldValue) Note: the tabs and items must be added using a custom pausemenu.xml. We will also release an example resource soon. steering.mp4 Vehicles We’ve expanded the vehicle API to offer deeper customization, additional physics tune-up options and more: You can now set dynamic vehicle engine drive force curves, replacing the default flat curve. This implementation ensures smooth performance, even when lots of vehicles are streamed. New API for customizing gear ratios. You can toggle the unoccupied vehicle steer reset feature at runtime. New API: Added client-side mp.game.vehicle.createDriveForceCurve(number curveNameHash, Array<number> curveData) ([x, y, x2, y2, ...] where x is the input RPM and y is the output drive force) Added client-side number mp.game.vehicle.getDriveForceCurveValue(number curveNameHash, number input) Added client-side mp.game.vehicle.deleteDriveForceCurve(number curveNameHash) Added client-side mp.game.vehicle.setModelDriveForceCurve(number vehicleModelHash, number curveNameHash) Added client-side mp.game.vehicle.setModelGearRatios(number vehicleModelHash, Array<number> ratios) Added client-side property mp.game.vehicle.passengerMassMultiplier (get/set) Added client-side vehicle.setGearRatios(Array<number> ratios) Added client-side number vehicle.getWheelGroundSurfaceMaterial(wheelIndex) Added client-side uDriveForceCurveHash parameter to vehicle.get/setHandling (integer) Added client-side fGearRatios parameter to vehicle.get/setHandling (Array<number>) Added client-side mp.game.vehicle.setResetUnoccupiedSteerAngle(bool value) dof2.mp4 Camera DOF We’ve introduced new camera depth of field settings API functions that allow you to customize its behavior, extending beyond what is available with the game's built-in script commands. For detailed DOF parameter names, please refer to the game's cameras.ymt file. Added client-side bool|number|Array camera.getDofParam(number paramHash) Added client-side camera.setDofParam(number paramHash, value) Added client-side bool|number|Array mp.game.cam.getDofParam(number cameraHandle, number paramHash) Added client-side mp.game.cam.setDofParam(number cameraHandle, number paramHash, bool|number|Array<number> value) Hint: To use the adaptive DOF, make sure to set setUseHiDof(false) and adjust FocusDistanceGridScaling to lower values, such as [0.001, 0.001]. crawling.mp4 Animations Several tweaks have been made to the game's player animation system, giving server developers more ways to script their player interactions: A new “bleed-out” state has been added to the player death system, allowing the player to continue a death animation while still retaining health and handling the damage. You could revive players with a smooth getting up animation, blended from the death ragdoll. Dead players can be forcibly ejected from vehicles. The game's original crawling animation task is now available via the API, including the game's adjustments for player crawling collision. New API: Added client-side player.taskBleedingDeath() Added client-side player.taskRevive() Implemented a dead player car fall out feature for TASK_LEAVE_VEHICLE (player.taskLeaveVehicle) script command Added client-side player.taskCrawl(bool isOnBack) Added client-side player.taskCrawlToCoords(mp.Vector3 pos, bool isOnBack, number timeout) Added client-side mp.game.weapon.setSimulateLocalDamageImpacts(bool doSimulate) Scheduler To improve script performance and streamline asynchronous client-side scripting, we’ve added several new Promise-based APIs for handling asset streaming and more: Added client-side Promise<bool> mp.game.waitForAsync(function cb, number tumeout = 60000) Added client-side Promise<bool> mp.game.cutscene.requestCutsceneAsync(string name, number flags, number timeout = 5000) Added client-side Promise<bool> mp.game.cutscene.requestCutFileAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.graphics.requestStreamedTextureDictAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.graphics.waitForScriptHudScaleformMovieLoadAsync(number movieId, number timeout = 5000) Added client-side Promise<bool> mp.game.graphics.waitForScaleformMovieLoadAsync(number movieId, number timeout = 5000) Added client-side Promise<bool> mp.game.ped.requestActionModeAssetAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.ped.requestStealthModeAssetAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.streaming.requestAnimDictAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.streaming.requestClipSetAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.streaming.requestAnimSetAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.streaming.requestNamedPtfxAssetAsync(string name, number timeout = 5000) Added client-side Promise<bool> mp.game.streaming.requestModelAsync(number nameHash, number timeout = 5000) Added client-side Promise<bool> mp.game.streaming.requestCollisionForModelAsync(number nameHash, number timeout = 5000) Added client-side Promise<bool> mp.game.vehicle.requestVehicleAssetAsync(number nameHash, number flags, number timeout = 5000) Added client-side Promise<bool> mp.game.weapon.requestWeaponAssetAsync(number nameHash, number flags, number extraFlags, number timeout = 5000) Added client-side Promise<bool> mp.game.shapetest.waitForCompletionAsync(number raycastHandle, number timeout = 5000) Misc Added client-side mp.game.graphics.beginScaleformHudMovieMethod(componentId, methodName) Adjusted the game's original alternate variations limit Added a feature to set the last allowed vanilla DLC by specifying it in /game_resources/dlcpack_level.txt, e.g., patch2024_02 (3407 / Agents of Sabotage). We recommend using this new feature or a custom dlclist to ensure smooth migration during future GTA updates. For advanced DLC management, it's advised to use a custom dlclist, which overrides this value. Miscellaneous average and "1% low" FPS game optimisation tweaks All of these updates are now available in a public testing client branch for developers. We plan to merge them into the main branch in the coming days, based on your feedback. splash.mp4 1.2 Status Update While we know how everyone anticipates the upcoming major release of our platform, we’ve decided to dedicate this particular announcement to the new update for the current major version. We’d like to keep you informed on the progress of version 1.2, which is advancing on all fronts, including the new GTA Experience Mode, the net-code and synchronisation overhaul, 1.2-specific new API set, the new client UI and more. This particular clip above demonstrates the overhauled client UI launch splash screen that will be part of the next major update. The splash screen highlights the new game’s original R* intro, remade within our UI, as a gesture of gratitude and admiration for both the original GTA V developers and the team that continues to maintain the game through the GTA Online updates to this day. We’re planning to share more on 1.2 in the next year. Stay tuned! 13 4
Zekiloni Posted December 24, 2024 Posted December 24, 2024 (edited) thats crazy welcome on ragemp Edited December 24, 2024 by Zekiloni
Basinger Posted December 25, 2024 Posted December 25, 2024 Oh, thats huge! I was just taking apart scaleforms and other native elements. Looks like soon we won't need to decompile scripts to create a simple vanilla element
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now