Skip to content

Customization

Almost everything is in one short file. The rest of the Lua is left open too, so you can change behaviour itself if you need to.


File or folderWhat it decidesOpen?
config.luaFramework, language, menu key and command, the list of birdsOpen
locales/*.luaThe notification texts, one file per languageOpen
client/utils.luaHow a notification is shown, per frameworkOpen
client/client.luaThe menu key, the /parrot command and what each menu button doesOpen
client/bird_management.luaHow the bird flies in, lands, moves, follows and leavesOpen
server/server.luaRegisters every bird as a usable item and keeps other players in syncOpen
html/The Bird Companion menu: index.html, style.css, script.js, and its icons in html/img/Plain files
stream/The nine custom bird modelsAssets
flight.metaThe ped data for the nine custom birdsData
inventory_images/The fourteen item iconsAssets
readme.mdReady-made item lines for ox_inventory, QBCore and ESXReference

locales/main.lua is the only escrowed Lua file.


OptionWhat it doesDefault
Config.Frameworkesx, qb-core or qbox. Decides how items are registered and notifications shownesx
Config.LocaleLanguage for notifications: en, es, de, fr, it, pl, pt, ru, tren
Config.MenuKeyGame control index that opens the menu. 303 is U303
Config.OpenMenuCommandChat command that opens the menuparrot
Config.NoActiveBirdNotificationShow a message when someone tries to open the menu without a bird outfalse

Config.MenuKey is a FiveM control number, not a letter. The list of numbers is on the FiveM controls reference page. Because it is read directly, players cannot rebind it in their own settings; the command is always there as an alternative.


A list of item name → ped model. Every entry becomes a usable item on start.

ItemModel
crowa_c_crow
pigeona_c_pigeon
seagulla_c_seagull
cormoranta_c_cormorant
chickenhawka_c_chickenhawk
macawMacaw
parrotParrot
falconFalcon
vultureVulture
eagleEagle
owlOwl
hornbillHornbill
sparrowSparrow
warblerWarbler
  1. Add a line to Config.BirdItems with your new item name and the ped model it should spawn.
  2. Add the item to your inventory the same way as the others (see Installation) and give it an icon.
  3. A base-game bird (any a_c_… bird model) needs nothing else.
  4. A custom bird needs its model files in stream/ and its own entry in flight.meta, next to the nine that are there. Without the flight.meta entry the model loads but does not behave like a bird.
  5. refresh, then restart mic_parrots.

Delete its line from Config.BirdItems. The item stops doing anything; remove it from your inventory too so nobody is left holding a dead item.


The menu labels (Bird Companion, Shoulder, Head, Dismiss, Follow, Close) are written in html/index.html, not in the locale files. Translate or rename them there. Colours and layout are in html/style.css, and the button icons are the PNGs in html/img/.

html/index.html also holds two buttons that are commented out, Dance and Sing. They have no action behind them in the Lua, so leave them commented.

Esc or the Close button shuts the menu.


Nine ship, one file each in locales/: en, es, de, fr, it, pl, pt, ru, tr. Pick one with Config.Locale.

Each file holds six lines: no permission, already have a bird, no bird on your shoulder, bird already on your shoulder, bird already on your head, and you need an active bird to open the menu.

To add a language: copy locales/en.lua to a new file (for example locales/nl.lua), change the language key at the top from en to nl, translate the six texts, and add the new file to both the client_scripts and server_scripts lists in fxmanifest.lua. Then set Config.Locale to nl, refresh and restart.


client/utils.lua sends every notification: ESX.ShowNotification on ESX, QBCore.Functions.Notify on QBCore, the QBox notify export on QBox, and the plain GTA feed for anything else. Replace the body of that one function to route messages to your own notify resource.


Command or keyWhat it doesSet in
/parrotOpens the Bird Companion menu when you have a bird outConfig.OpenMenuCommand
USame as the commandConfig.MenuKey