Skip to main content

Changelog

Note: this page is obsolete. For further updates please check the forums: <https://rage.mp/forums/forum/4-announcements/>

0.3.7

EVENTS

GAME INTERACTION

CEF

BUILT-IN NATIVEUI

  • JS: "entityDataChange" event has been replaced with "mp.events.addDataHandler(key, handler)"
  • JS: added mp.events.callLocal
  • Improvements on initial server loading
  • Fix voice chat not getting cleared properly after setting "voice3d" to false
  • Improve voice chat playback thread synchronization mechanism, so it doesn't affect anything else
  • Fix reported voice chat crashes
  • 0.4's game interaction performance improvements backport
  • Fix in-game UI not saving "latest IP connected to" correctly
  • DataStorage UTF-8 support fixes
  • Added a smoother voice chat packet loss handling
  • Fixed reported voice chat stability issues
  • Fixed some specific remote player tasks stuck after finished
  • Added "experimental web platform features" flag to the in-game CEF
  • Fixed key binding issues with isDown param = false

0.3.6

General changes

  • Added: server-based voice chat (server config option to enable: `voice-chat`: true)
  • Updated: Scripting stability improvements ("undefined" errors should be fixed now, needs to be confirmed)
  • Updated: V8 (a separate vanilla one is used client-side now, not the one bundled with NodeJS)
  • Updated: Security enhancements
  • Added: Grand Theft Auto V's 1.45 patch support
  • Reimplemented "construction zone crash" fix
  • Vehicle model limit adjustment (it's not an actual 0.4 backport since it uses another method that doesn't rely on 0.4 features)
  • Updated NodeJS
  • Backported native fool proofing
  • Added "allow-voice-chat-input" option (only available via registry at the moment); default value: 1
  • Updated: CEF (Chromium 70.0.3538.77)
  • Fixed: potential aiming synchronization data corruption
  • Added: more game limits have been adjusted so more global conversion mods are compatible now
  • Fixed: custom dlc packs conflicting with certain game dlc pack
  • Fixed: dlc packs not working correctly with FQDN
  • Miscellaneous fixes

Scripting

  • Added: mp.voiceChat.muted (client-side)
  • Added: mp.voiceChat.getPreprocessingParam(param) (client-side)
  • Added: mp.voiceChat.setPreprocessingParam(param, value) (client-side)
  • Added: player.voiceVolume (client-side)
  • Added: player.voice3d (client-side)
  • Added: player.voiceAutoVolume (client-side)
  • Added: player.isVoiceActive (client-side)
  • Added: event: playerStartTalking (client-side)
  • Added: event: playerStopTalking (client-side)
  • Added: player.enableVoiceTo(target) (server-side)
  • Added: player.disableVoiceTo(target) (server-side)
  • Added: player.voiceListeners (server-side)
  • Added: mp.voiceChat.isAllowed (read-only) (client-side)
  • Added: player.clearDecorations() (server-side)
  • Added: player.getVoiceAttribute(attribute) (client-side)
  • Added: player.setVoiceAttribute(attribute, value) (client-side)
  • Fixed: vehicle.getOccupant
  • Updated: C# enums
  • Fixed: C# UTF-8 support improvements

0.3.4

  • Added: player.getDecoration(collection)
  • Added: player.setDecoration(collection, overlay)
  • Updated: player.setHeadOverlay(overlayId, [index, opacity, color, secondaryColor])
  • Updated: player.getHeadOverlay
  • Updated: mp.game.graphics.screen2dToWorld3d(x, y[, collisionTest])
  • Updated: click event args are (x, y, state, mouseKey, relativeX, relativeY, 3dpos, entityHandle) now
  • Fixed: text label rendering issues
  • Fixed: shared variables not reseting for local player clientside after reconnecting
  • Fixed: invalid password issue
  • Fixed: playerWeaponShot not triggering when there's no any target entity

RC-2

  • Updated: all remote trigger arguments should be passed as an array now, e.g. player.call("eventName", [1, 2, 3]). It was updated only for server-side API as for RC-2.
  • Added: vehicle.quaternion
  • Added: vehicle.heading
  • Added: "this" to events. It includes "cancel" and "handler" properties. Setting "this.cancel = true" would stop triggering futher events this call.

RC-1

  • Added: Vehicle.movable (get)
  • Updated: mp.environment is mp.world now
  • Added: mp.world.requireIpl
  • Added: mp.world.removeIpl
  • Added: mp.world.trafficLights.locked (get / set)
  • Added: mp.world.trafficLights.state (get / set)
  • Added Player.removeObject

Client-side updates

  • Added: mp.gui.cursor.show(visibility, freezeControls)
  • Added: Entity.getVariable
  • Added: Entity.setVariable
  • Added: mp.vehicles.new
  • Added: mp.objects.new
  • Added: mp.pickups.new
  • Added: mp.markers.new
  • Added: mp.blips.new
  • Added: mp.checkpoints.new
  • Added: mp.labels.new
  • Updated: mp.game.graphics.drawText(text, position[, additionalArgs])
  • Added: Vehicle.setHandling(name, value)
  • Added: mp.discord.update(detailedStatus, state)
  • Added: mp.game.cam.getGameplayCamRelativeHeading
  • Added: Entity.remoteId
  • Added: pool.atRemoteId

Events updates

  • Added: Events.getAllOf(eventName)
  • Added: Events.remove(eventName[, hander])
  • Added: Events.reset()

Player updates

  • Added: Player.weapons (documented below)
  • Added: Player.removeWeapon(weapon)
  • Added: Player.removeAllWeapons()
  • Added: Player.weapon (get / set)
  • Added: Player.weaponAmmo (get / set)
  • Added: Player.getWeaponAmmo(weapon)
  • Added: Player.setWeaponAmmo(weapon, ammo)
  • Added: Player.allWeapons (get)
  • Added: Player.getHeadOverlay(id)
  • Added: Player.setHeadOverlay(id, [overlayId, opacity])
  • Added: Player.socialClub (get)
  • Added: Player.isStreamed(player)
  • Added: Player.streamedPlayers (get)
  • Added: Player.isReloading (get)
  • Added: Player.isOnLadder (get)
  • Added: Player.isInMelee (get)
  • Added: Player.packetLoss (get)

Blip updates

  • Added: Blip.shortRange (get / set)
  • Added: Blip.drawDistance (get / set)
  • Added: Blip.rotation (get / set)
  • Updated: Blip.colour =&gt; Blip.color (get / set)
  • Removed: mp.blips.newStreamed // use .new() with drawDistance ( see below )

TextLabel updates (includes entity methods)

  • Added: TextLabel.color (get / set)
  • Added: TextLabel.drawDistance (get / set)
  • Added: TextLabel.los (get / set)
  • Added: TextLabel.text (get / set)

Vehicle updates

  • Added: Vehicle.mods[id] (get / set) // also available as Vehicle.get / setMod(id) since 0.3
  • Added: Vehicle.extras[id] (get / set)
  • Added: Vehicle.isStreamed(player)
  • Added: Vehicle.streamedPlayers
  • Added: Vehicle.dashboardColor (get / set)
  • Added: Vehicle.pearlescentColor (get / set)
  • Added: Vehicle.livery (get / set)
  • Added: Vehicle.numberPlateType (get / set)
  • Added: Vehicle.trimColor (get / set)
  • Added: Vehicle.windowTint (get / set)
  • Added: Vehicle.wheelColor (get / set)
  • Added: Vehicle.wheelType (get / set)
  • Added: Vehicle.getExtra(id)
  • Added: Vehicle.setExtra(id, extra)
  • Added: Vehicle.taxiLights (get / set)
  • Added: Vehicle.dashboardColor (get / set)
  • Added: Vehicle.trailer
  • Added: Vehicle.traileredBy

New events

  • Added: entityCreated (entity)
  • Added: playerReady (player)
  • Added: entityModelChange (entity, oldModel)
  • Updated: playerEnterVehicle =&gt; playerStartEnterVehicle
  • Updated: playerEnteredVehicle =&gt; playerEnterVehicle
  • Updated: playerExitVehicle =&gt; playerStartExitVehicle
  • Updated: playerLeftVehicle =&gt; playerExitVehicle
  • Added: playerDamage (player, healthLoss, armorLoss)
  • Added: playerWeaponChange (player, oldWeapon, newWeapon)
  • Added: vehicleDamage (vehicle, bodyHealthLoss, engineHealthLoss)
  • Added: vehicleSirenToggle (vehicle, state)
  • Added: vehicleHornToggle (vehicle)
  • Added: vehicleTrailerAttach (vehicle, trailer)
  • Added: playerMarkWaypoint (player, position)
  • Added: playerReachWaypoint (player)

Entity updates (for all for entitiy types)

  • Added: Entity.data.name (gets / sets synced variable just like getVariable / setVariable)
  • Added: Entity.getVariable(name)
  • Added: Entity.setVariable(name, value)

Player.weapons

  • Added: Player.weapons.all (returns an object just like Player.allWeapons)
  • Added: Player.weapons.name / Player.weapons.hash / Player.weapons.current (gets/sets ammo of specific weapon just like Player.get / setWeaponAmmo)
  • Added: Player.weapons.clear()

Events examples

New entity constructors