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 => 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 => playerStartEnterVehicle
- Updated: playerEnteredVehicle => playerEnterVehicle
- Updated: playerExitVehicle => playerStartExitVehicle
- Updated: playerLeftVehicle => 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()