#
Changelog
#
Version 53
#
Breaking Changes
- Removed
useVehicleEvents,useCharacterEvents, anduseAccountEvents- Replaced with
alt.on('rebar:vehicleUpdated'),alt.on('rebar:playerCharacterUpdated'), andalt.on('rebar:playerAccountUpdated').
- Replaced with
- Removed alt.getMeta for Rebar Imports
- This likely doesn't effect anyone
- Removed
useServerTime- Replaced with
useWorldService
- Replaced with
- Removed
useServerWeather- Replaced with
useWorldService
- Replaced with
- Removed
useMessenger.message.on,- Same functionality can be achieved through
alt.onwithplayerSendMessage
- Same functionality can be achieved through
- Removed
useRebarEventsand moved all events toalt.onandalt.emit- Custom delcarations are still possible.
- Replaced all
rebar-event-nameswithcamelCasedevents - Event Name Changes:
- Renamed
messageevent torebar:playerSendMessage - Renamed
on-commandevent torebar:playerCommand - Renamed
on-rpc-restartevent torebar:rpcRestart - Renamed
account-boundevent torebar:playerAccountBound - Renamed
character-boundevent torebar:playerCharacterBound - Renamed
vehicle-boundevent torebar:vehicleBound - Renamed
page-openedevent torebar:playerPageOpened - Renamed
page-closedevent torebar:playerPageClosed - Renamed
time-changedevent torebar:timeChanged - Renamed
time-hour-changedevent torebar:timeHourChanged - Renamed
time-minute-changedevent torebar:timeMinuteChanged - Renamed
time-second-changedevent torebar:timeSecondChanged - Renamed
weather-changedevent torebar:weatherChanged - Renamed
weather-forecast-changedevent torebar:weatherForecastChanged - Renamed
doorLockedevent torebar:doorLocked - Renamed
doorUnlockedevent torebar:doorUnlocked
- Renamed
- Reworked permission system:
- Removed
permissionandgroupPermissionsproperties fromuseAccountanduseCharacter. - When you check for players' permissions, it will automatically check both groups and plain permissions.
- Removed
#
Code Changes
- Added more verbose error printing for plugin imports, should function like before again
- Added ability to use string union for blip sprite types
- Automatically converted to numerical
- Added ability to use string union for blip colors
- Automatically converted to numerical
- Made blips shortRange parameter optional, and default to true
- Updated
useWeaponforplayerto properly save weapon data and ammo count - Removed
ammofrom the database, and ammo is now stored on the individual weapon instead - Fix vehicle handler so setting
{}will actually clear the vehicle handling - Fix issue where removing attachements was not working correctly
- Replaced in-house get closest entity function with
alt.getClosestEntities - Changed
Accountfromtypetointerface - Moved
Page EventstopageSystemto keep functionality working - Made it so emitting notifications from server-side defaults to a GTA:V Notification, until a library is added
- Added
useServiceRegister- Provides common APIs for common features to integrate custom functionality.
- Services do nothing until a library registers itself under a service.
- Added
useCurrencyService- All these functions do nothing until a library is registered\
- add (invoke adding currency)
- sub (invoke removing currency)
- has (check if has enough currency)
- emits events when currency added or subtracted
- Added
useDeathService- All these functions do nothing until a library is registered
- respawn (invoke a respawn)
- revive (invoke a revive, in place)
- emits events when respawned, or revived
- Added
useItemService- All these functions do nothing until a library is registered
- add (invoke an item add)
- sub (invoke an item subtraction)
- remove (invoke an item remove)
- has (invoke if player has an item)
- itemCreate (create an item to add to the database)
- itemRemove (remove an item from the database)
- emits events when items added, subtracted, or removed
- Added
useNotificationService- All these functions do nothing until a library is registered
- emit (invoke a notification send)
- broadcast (invoke a notification send, to all players)
- emits events when notification emitted, or broadcasted
- Added
useTimeService- All these functions do nothing until a library is registered
- setTime (set the time for the whole server)
- getTime (get the current time for the server)
- emits events when time updated by hour, minute, or second
- Added
useWeatherService- setWeather (set the weather for the server)
- setWeatherForecast (set weather forecast for the server)
- getWeather (get the current weather for the server)
- getWeatherForecast (get weather forecast for the server)
- emits events when weather updated, or forecast updated
- Added Custom alt.getMeta Keys for...
- serverTime
- serverWeather
- serverWeatherForecast
- Added support for interactions to
- addBlip
- addMarker
- addTextLabel
- getBlip
- getMarker
- getTextLabel
- getPos
- Destroy all of the above when interaction is destroyed
- Updated Document Typings for ... to better handle module extension
- Account
- Character
- Vehicle
- Added
rebar:onTickwhich just emits a tick every 1 second for general usage - Added
isOverlayOpenandisPersistentPageOpento client-side for checking if a page is open - Made dev menu from the
webview:devcommand scrollable - Groups are now created globally, and you can assign players' documents to the group.
- You can inherit a new group from another one; it will inherit all permissions from the parent.
- You can now access permissions/groups of character/account via
useVirtual. - Two new player-getters:
withPermission(documentType: 'account' | 'character' | 'any', permission: string)memberOfGroup(documentType: 'account' | 'character' | 'any', groupName: string)
- Updated weapon helpers to allow for
hashorstringmodels - Added
invokeWithResultfor player natives, to invoke a native and get a result - Added vehicle door sync for open / shut states
#
Docs Changes
- Document
getWeaponsand update documentation foruseWeaponfor the player - Document all services under
useService - Document all event changes, and update events page
- Document the new permission system.
#
Version 52
#
Code Changes
- Added ability to change database name through environment variables — @floydya
- Added door system controller — @floydya
- Added server config option for disabling weapon wheel menu — @mnkyarts
- Added onHold callback for
useKeypressthat invokes afterxtime has passed while holding a key — @koron - Updated
useKeypressto includeonHold, which is invoked after2sof holding
#
Docs Changes
- Added door system docs @floydya
- Added
envoptions for database name to useConfig page - Updated server config docs @mnkyarts
- Updated
useKeypressdocs to includeonHold
#
Version 51
#
Code Changes
- Auto copy
nodemon-devandnodemon-hotfiles during script updates
#
Version 50
#
Code Changes
- Permission system was redone by @floydya for better performance and usage
- Added hot reloading option for
core and webviewresources, accessible throughdev:hot- This keeps you connected to the server while the resource itself reloads, it's quite fast
- Split nodemon into two configurations, added new script for reloading
#
Docs Changes
- Permission system was updated / documented by @floydya
- Documented
dev:hotfor install
#
Version 49
#
Code Changes
- Updated Virtual Document to use a generic at the base level for the whole document
- This changes how Virtual Documents are constructed, and may break some things if you use virtual documents.
- Added
useMessengerto systems pathway - Fix vehicle handling so it always returns streamSyncedMeta data
- Added
handlingtouseVehicle - Added
vehicletouseVehicle, makes it so you can dorPlayer.player.pos - Added
playertousePlayer, makes it so you can dorVehicle.vehicle.pos - Changed Rebar endpoints to use Hono, and deprecated old server utility @floydya
#
Docs Changes
- Restructured the documentation
- Documented
useCharacterEventsanduseAccountEvents - Combined getters documentation
- Combined controllers documentation
- Combined vehicle documentation
#
Version 48
#
Code Changes
- Updated RPC endpoints
- Began structuring new RPC endpoint functions
- Server-side instructional buttons integrated by floydya
#
Version 47
#
Code Changes
- Added an RPC endpoint under
http://127.0.0.1:8787with endpoints/restart,/, and/health. - Fixed issue where reconnecting too early would cause client to be frozen on reconnecting
- Restarting server now kicks all players while in dev mode only
#
Version 46
#
Code Changes
- Added
useInteractionLocalto create local interactions for individual players
#
Docs Changes
- Updated
useInteractionto includeuseInteractionLocal
#
Version 45
#
Code Changes
- Added
useVehicleHandlingfunction that lets you adjust handling per vehicle - Added object attachments for players, see
useAttachmentunder the player endpoint
#
Docs Changes
- Documented
useVehicleHandling - Documented
useAttachment
#
Version 44
#
Code Changes
- Fixed issue with setting global document data
- Additionally, improved type casting support for global documents
#
Docs Changes
- Updated object document api to clarify generics usage
#
Version 43
#
Code Changes
- Fixed local object initialization
#
Docs Changes
- N/A
#
Version 42
#
Code Changes
- Added near perfect Torso, Top, and Undershirt data for 99% of tops
- Added helper functions in shared clothing script to help obtain clothing data
- Fixed bug where local objects were not being destroyed
- Fixed bug where disabled plugins were copying files
- Fixed bug where previous files were not cleaned up properly
#
Docs Changes
- N/A
#
Version 41
#
Code Changes
- Added
useStreamSyncedBinderto automatically synchronize document data from server to client for vehicles and characters - Added
useSyncedMetacomposable to the webview, to get data synced fromuseStreamSyncedBinder - Added
useStreamSyncedGetterto client-side to get type safe responses for stream synced meta data
#
Docs Changes
- Documented
useStreamSyncedBinder,useSyncedMeta, anduseStreamSyncedGetter
#
Version 40
#
Code Changes
- Added new dlc clothing maximums for 2024 DLC
- Added
keypressapi that lets you bind functions to keyup/keydown from server-side - Added
setRpmto vehicle API - Added new
fontsresource, which may need to be imported in yourserver.toml; for custom fonts - Lower distance for all Text Labels; max distance now capped at 20
- Failing readiness check on an API will now return the failing API's name
- Added
D2Dtext labels with global and local support
#
Docs Changes
- Documented keypress
- Documented keypress in vehicle api
- Documented fonts folder
#
Version 39
#
Code Changes
- Potentially fixes bug where dependencies.json aren't installed outright
- Fixes a
hasGroupPermissionfunction bug - Modified client side player camera with some new functions
#
Docs Changes
- N/A
#
Version 38
#
Code Changes
- Added method to allow for Rebar Events to be extended via
globaldeclare. - Added
rPlayer.soundpathway, works the same asrPlayer.audio - Moved images to https://github.com/Stuyk/gtav-image-archive/
#
Docs Changes
- Added documentation covering custom Rebar Events to the events api.
#
Version 37
#
Code Changes
- Introduced method for clothing screeshots
#
Docs Changes
- N/A
#
Version 36
#
Code Changes
- Added screenshot utility for weapons
#
Docs Changes
- Added weapon screenshot doc
#
Version 35
#
Code Changes
- Added screenshot utility for taking screenshot of vehicle
#
Docs Changes
- Documented screenshot utility
#
Version 34
#
Code Changes
- Adds a new ambient sound to the server config
- Fixes an issue where subfolders were not supported for
images, andsounds - Added
onScreenPedsolution to show a pedestrian in the 2D space, below webview- Automatically synchronizes ped with ped reference changes, such as clothes
- Thanks to BattleZone for confirming that NVE is problematic with frontend menus
- Added manual override for
useKeybindertoupdateKeybindForPlayer - Fixed bug where global documents were overwriting global cache
- Modify
getByAccountandgetByCharacterto also takenumbersfor theiridgetter - Change
vehiclegetByDatabaseIdtobyId('_id');
#
Docs Changes
- Modifies the server config to include
disableAmbientNoise - Added docs for
updateKeybindForPlayer - Updated vehicle getter docs
- Updated character getter docs
#
Version 33
#
Code Changes
- Fixes issue where pickup sometimes doesn't spawn the object
- Added all clothing dlc info, and maximums to a shared data structure
- Added clothing data getters to
Rebar.utility.clothing - Added addCategory section to add custom DLC data during runtime
- Added clothing data getters to
#
Docs Changes
- Added utility clothes section to server API
#
Version 32
#
Code Changes
- Added function to attach blips to entities, because alt:V's one is broken
- Additionally, when a blip or the entity becomes invalid the blip is automatically destroyed.
#
Docs Changes
- Updated blip documentation to cover attachments
#
Version 31
#
Code Changes
- Added
disableAttackControls,disableCameraControls, andfreezeCamerato player.world pathway - Fixed issue with local progress bars not clearing
- Fixed issue with
giffiles not being copied correctly
#
Docs Changes
- Added documentation covering
player.worldnew functions
#
Version 30
#
Code Changes
- Added a
vscode transmitterfor debug mode server and client.- Allows for code to be executed from VSCode using the Rebar Transmitter
#
Docs Changes
- Added vscode transmitter extension page
#
Version 29
#
Code Changes
- Custom
rmluiget distributed toresources/rmlui/pluginsfolder - Additionally
htmlfiles act asrmluiand are converted intormluiduring the compile process
#
Docs Changes
- Added a section in
Plugin Structurethat covers how to work withrmluicorrectly, and what the paths are to use the resource.
#
Version 28
#
Code Changes
- Made interaction
setMessageshow a GTA:V notification by default whenentering. - Synchronize vehicle
customPrimaryColor,customSecondaryColor,primaryColor, andsecondaryColor - Added
offKeyUpto key listeners for webview composable - Added
disableCriticalHitsto server configuration settings - Added Rebar Event for
on-commandthat lets you listen to what commands successfully executed - Improve performance of player stats by making it a single event for setting stats
- Added
zone,isAiming, andisFlyingto player stats - Fix vehicle stop server config bug, flag was incorrect
- Added server configs for disabling prop knockoff, cover, drivebys, and scuba gear removal
#
Docs Changes
- Added
onKeyUpandoffKeyUpto webview event composable - Updated
useServerConfigdocs - Updated playerStats doc
#
Version 27
#
Code Changes
- Added
onClosefunction for webview - Added
escapeToClosePagetoshowfunction for webviews- Keep in mind this only works for
pagetypes
- Keep in mind this only works for
- Added
RebarEventfor page open and page close on server-side
#
Docs Changes
- Updated
playerUsewebview section forshowfunction to include info about escape to close - Added
RebarEventonClose and onOpen docs
#
Version 26
#
Code Changes
- Added
useProgressbarcontroller - Fixed permission length bug
- Fixed some misnamed functions in other controllers
- Added
useWorldMenucontroller for building quick selection menus - Fixed bug where keybinds could be invoked if certain menus were open
#
Docs Changes
- Added images for controllers
- Added
useProgressbardoc - Added
useWorldMenudoc
#
Version 25
#
Code Changes
- Added
accountdocument tousePlayer - Fixed small permission
hasOneerror - Added various shared
Utilityfunctions to Rebar.utility to lower import counts - Added toggle controls to
usePlayer().worldto control controls state - Fixed small bug where hotkeys could be invoked when game controls are disabled
#
Docs Changes
- Added code examples page
- Added troubleshooting page
- Updated player world api for toggling controls
#
Version 24
#
Code Changes
- Added server configs for auto; starting engine, stopping engine, and seat swapping in vehicles
- Added
useKeybinderto bind hotkeys from server-side, enabling users to call from their client - Adjusted world space checker to delay by 100ms before checking, fixing colshape creation times
#
Docs Changes
- Updated server config doc
- Added
useKeybinderpage
#
Version 23
#
Code Changes
- Added
DraggableComponent to WebView
#
Docs Changes
- Added
Draggabletowebview/componentssection with an example on making draggables - Added
DraggableComponent to WebView
#
Docs Changes
- Added
Draggabletowebview/componentssection with an example on making draggables
#
Version 22
#
Code Changes
- Added
useRateLimitCallback - Added
onEnterandonLeaveto interaction callbacks - Added
disablePistolWhiptouseServerConfigthat prevents pistol whipping one-hits
#
Docs Changes
- Created
useRateLimitCallbackdocs - Added
onEnterandonLeaveto interaction docs - Added
disablePistolWhiptouseServerConfigdocs
#
Version 21
- I forgot to write the changelogs. lmao
#
Version 20
#
Code Changes
- Made
raycast.getFocusedObject()returnentityPos - Clearly warn users using
api.getfor obtaining an API, and recommend async instead - Added new
getMetaAPI for getting plugin API as single import - Added
debugoption toraycastfunctions to draw lines when a raycast is invoked - Added
useServerConfigto change what HUD elements, and other on screen elements a player sees
#
Docs Changes
- Added
debugto raycast docs - Removed
getfrom Plugin API examples, to let users focus onasyncinstead - Added
useServerConfigto docs
#
Version 19
#
Code Changes
- Added reverse map for vehicle model hash to vehicle model name
- Added function to add named models to list at runtime as well
- Added neon synchronization to vehicle document sync
#
Docs Changes
- Added vehicleHashes utility doc info
#
Version 18
#
Code Changes
- Fixed a bug where closest entity and target ids matched, when they were different types
- Fixed passing
messageon client-side for interaction onEnter callbacks - Fixed character permission issues when using protected callbacks
- Added group permissions for protected callbacks
- Added
useProxyFetchwhich allows for you to register safe endpoints on server-side which can be called client-side.- This effectively allows you to make requests from the server to safely get results.
- Meaning that if you have an API which only allows your server to make requests, this is a way to invoke it safely.
- Added
useRaycastto get entity aimed at from client-side and return it to the server- Can obtain position looking at
- Can obtain player, vehicle, or alt.Object looked at
- Can obtain model & position of world object looked at
- Added
useVehicleenhancements- Functions that toggled asPlayer verify ownership of keys, permission, or owner itself of the vehicle
- bind
- toggleDoor
- toggleDoorAsPlayer
- toggleEngine
- toggleEngineAsPlayer
- toggleLock
- toggleLockAsPlayer
- keys: add, remove, clear
- isBound
- Check if the vehicle is already bound
- verifyOwner
- Check if the player is an 'owner' of the vehicle
- Additionally, optional section to check if they are the sole owner of the vehicle
- Added new controller
usePedwhich creates a global pedestrian which can have synced natives invoked on it- It's recommended not to spawn more than 32 given peds around a single player.
- Can even easily listen to when the specific ped spawned dies
#
Docs Changes
- Added
useProxyFetchdoc - Added
useRaycastdoc - Added
useVehicleupdates - Added
usePedcontroller docs
#
Version 17
#
Code Changes
- Added
alt.getMeta('Rebar')to get Server API with one-less import - Added
alt.getMeta('RebarClient')to get Client API with one-less import - Fixed character interface not being extended correctly
- Added
preinstallscript to download binaries, and build codebase once
#
Docs Changes
- Covered alternative API import methods in docs
#
Version 16
#
Code Changes
- Added
@Composablespath alias - Added
@Pluginspath alias
#
Docs Changes
- Updated composables with
@Composables - Updated
what is a pluginwith information about component / composable only plugins
#
Version 15
#
Code Changes
- Update dependencies
- Update
_idin database functions to use a non-deprecated ObjectId handler - Added
useServerWeatherfunction to allow setting weather and weather forecast- This does not automatically sync for players, it's just a global way to set the data
#
Docs Changes
- Added
useServerWeatherdocs
#
Version 14
#
Code Changes
- Added
emitServerRpcto Webview to retrieve data from server-side using normalalt.onRpcevents.- Yes, this means you don't have to do weird event bindings to get data now.
- Added
emitClientRpcto Webview to retrieve data from client-side.
#
Docs Changes
- Added
emitServerRpcandemitClientRpcto docs
#
Version 13
#
Code Changes
- Updated
upgradescript to prevent overwriting tailwind config, or vite config - Added
useLocalStoragecomposable for getting / storing data
#
Docs Changes
- Added
useLocalStoragecomposable docs
#
Version 12
#
Code Changes
- Completely redid the compile pipeline
- Improved compile times, and added docker build support to package.json scripts
- Fixed linux based errors
#
Docs Changes
- Added install instructions for Linux
- Added install instructions for Docker
#
Version 11
#
Code Changes
- Added
createCollectionto database functions - Automatically create default collections on startup
- Added
rebar:upgradescript to get the latest code changes for Rebar
#
Docs Changes
- Added
createCollectionfunction to the database functions - Clarified how no spawner exists outright for Rebar
- Added documentation about upgrading
#
Version 10
#
Code Changes
- Added
ignoreandautogenas a keyword to ignore file changes when developing - Added
time-changed,time-second-changed,time-minute-changed, andtime-hour-changedevents to core events - Added
useServerTimesetters / getters for managing server time more effectively- Note: This does not auto-sync on players, other plugins can build more complex time systems
#
Docs Changes
- Added
useServerTimeAPI docs - Added
time-changed,time-second-changed,time-minute-changed, andtime-hour-changedevent documentation
#
Version 9
#
Code Changes
- Added client-side
messengerfor handling chat focus states - Patched issue where pressing
Ewhile chat is focused invoked interactions - Patched issue where pressing native menu buttons while chatting invoked native menu functions
#
Version 8
#
Code Changes
- Fixed various
get closestfunctions forplayerandvehiclegetters - Added
useWaypointto get a waypoint a player has on their map if available - Added
usePlayerfunction that combines alluseXfunctions for player - Added
Rebar.utility.useProtectCallbackwhich adds permissions to callbacks before they are executed- A simple way to protect alt:V client event callbacks
#
Docs Changes
- Added
useWaypointdocs - Added
usePlayerdocs - Added
useProtectCallbackdocs
#
Version 7
#
Code Changes
- Added
useMinimapcomposable to get minimap positional data in the Webview - Added
custommessage type when emitting messages to prevent formatting
#
Docs Changes
- Documented
useMinimapcomposable
#
Version 6
#
Code Changes
- Added
vehiclesynchronization when a vehicle document is bound to the vehicle - Added
useVehiclefunction for synchronizing vehicle data, applying data, repairing, and creating new vehicle documents- Synchronizes damage (not appearance)
- Synchronizes position, and rotation
- Synchronizes window damage
- Synchronizes tire damage
- Synchronizes dirt levels
- Synchronizes mods
- Added
charactersynchronization when a character document is bound to the player- Synchronizes appearance, and clothing
- Synchronizes weapons, and ammo
- Synchronizes position, and rotation
- Synchronizes health, and armor
- Synchronizes death state
- Added ways to disable auto-sync for
vehicleandcharacterdocuments in thebindingfunctions - Added
onKeyUpto theWebview Eventsfunctionality, allowing an easy way to listen for keybinds - Added
playFrontendSoundtouseAudiocomposable in the webview - Added
useWeaponto player pathway. Allows for synchronizing weapons, and ammo for database - Added ability for commands to be
async - Separated logic for appyling data on
appearanceandclothingso overrides are possible - Changed all
update()functions tosyncand added backwards compatibleupdatefunction - Split
CharacterintoBaseCharacterandCharacter, nothing changed externally
#
Docs Changes
- Updated
blipcontroller docs for typo - Added
useVehicledocumentation - Updated documentation for
useCharacterBinderthat will allow ignoring auto-sync on binding - Updated documentation for
useVehicleBinderthat will allow ignoring auto-sync on binding - Added
useWeapondocumentation - Added
useStatedocumentation - Changed
update()references tosync() - Updated documentation for
useAudiocomposable
#
Version 5
#
Code Changes
- Added
isValidtocharacter,account, andvehicledocuments to check if an entity has a bound document - Added
useStatustoplayerAPI pathway to check foraccountandcharacterstatus - Added
eventsto theRebarAPI- Added on account bound
- Added on character bound
- Added on vehicle bound
- Added on message
- Fixed small bug with case-sensitive commands
- Fixed bug that allowed sending messages when a
characterwas not bound
#
Docs Changes
- Added
isValidexamples tocharacter,account, andvehicle. - Added
useStatustoplayersection - Added
eventssection to Server API
#
Version 4
#
Code Changes
- Added
getCommandsto themessengersystem - Added
formatTimestampto the shared utilities
#
Version 3
#
Code Changes
- Added
focusandunfocussupport to client-side webviews
#
Version 2
#
Code Changes
- Fixed issue with disabling plugins
#
Version 1
#
Code Changes
- Added
package.jsonordependency.jsonsupport to plugins - Added an install pipeline for plugins that need specific npm packages
- Added ability to disable a plugin by creating a file called
.disablein the given plugin folder - Added
useMessengerto server-side for processing user commands, and chat system (not console commands) - useMessenger also provides onMessage, sending messages, registering commands, and invoking commands
- Added
useMessengercomposable towebviewforemittingmessages to the server for processing, automatically handles commands- Additional note, messages are sent to the void and go nowhere until a chat plugin is added
- This is effectively a messenger middleware for building a chat or command system
- Added
sendMessageto theuseNotifyplayer composable
#
Docs Changes
- Added question about NPM packages to FAQ docs
- Added
virtualdocument type docs to theAPI/Documentsection - Updated what is a plugin, and create docs to clarify new changes
- Updated
useNotifydocs forsendMessage - Added
useMessengerdocs for composable, and server-side