HUD

Personal HUD displays player status, PMA-Voice proximity and talking status, compass and street information, speed, time, nearest postal, and optional money, job, and AOP information. Players can save their display preferences through /hudoptions.

{:links-list}

INSTALLATION

  1. Open the downloaded ZIP product file and drop the folder in it somewhere in your resources folder.
  2. Add your product key (get it here) to the settings.ini file
  3. Add start BigDaddy-HUD to your server.cfg.

If you enable money or job information, configure the integrations below and start their provider resources before the HUD. Set showRadio=false if you do not use PMA-Voice.

DO NOT RENAME THE FOLDER.

If you change the name of the folder it will not function correctly so leave the name as it is.

{:is-danger}

POSTALS

The resource loads postals.json by name in the client code. Replace its contents with your postal data, but keep the filename exactly postals.json and keep it listed in fxmanifest.lua. Changing only the manifest does not change the filename the HUD loads.

Use an array of postal entries with a numeric code stored as a string and x/y coordinates:

[
    { "code": "100", "x": 123.45, "y": -678.90 },
    { "code": "101", "x": 234.56, "y": -789.01 }
]

The nearest-postal display and exports convert codes to integers, so use numeric codes. Leading zeroes are removed from returned values.

For a Sonoran CAD postal integration that uses nearestPostalResourceName in config_postals.lua, point it to "BigDaddy-HUD". The HUD provides the client export getPostal for nearest-postal lookups.

CONFIGURATION

NOTE: I recommend leaving the compass, radar, speed, status and radio options enabled and let the user control what they want to see or don't want to see. They have a menu to configure what their screen has on it.

SETTING DEFAULT DESCRIPTION
[licensing]
key1 none This is where you put your product key
[settings]
showStatus true Enables health, armor, and stamina/underwater status. Hunger, thirst, and stress require the Big Daddy state-bag integration described below.
statusOffset 4.2%,.5% Percentage of screen from left, bottom (respectively) to place status icons
showRadio true PMA-Voice users - shows the voice meter (shows voice distance and talking status) IF YOU DO NOT USE PMA-VOICE, SET THIS TO FALSE
hideRadarOnFoot false Hides the Minimap when not in a vehicle
currentVolume 2 Initial legacy voice-range value. The active meter uses PMA-Voice talking-mode events and starts at mode 2.
radioVolumeKey f11 Present in the supplied file, but unused by the current client. Configure proximity controls in PMA-Voice.
radioOffset 2%,.5% Percentage of screen from left, bottom (respectively) to place radio icon
useMoney false Whether to use money integrated with the HUD (CONFIGURE IN SERVER.LUA)
moneyOffset 95%,20% Percentage of screen from left, bottom (respectively) to place money icons
showJob false Enables the job display using a client export from another resource.
jobExportResourceName BigDaddy-DutyRoster Resource providing the job export.
jobExportName GetMyJob Client export to call; it must return the job name as a string.
jobOffset 95%,5% Percentage of screen from left, bottom (respectively) to place job information.
ultrawideSupport true Allow processing for ultrawide monitor displays
showCompass true Enables the large compass and location display near the top of the screen, and the location-update loop shared with the radar compass. Leave this enabled when using showRadarCompass.
compassFollowGameplayCam true Does the compass follow the gameplay cam or character direction
compassOffset 50%,86% Percentage of screen from left, bottom (respectively) to place compass icons
compassBGAlpha .2 Compass background opacity, from 0 (transparent) to 1 (opaque).
compassAlpha 1 Opacity of the entire compass, from 0 (invisible) to 1 (fully visible).
hideCompassOnFoot false When true, hides the radar compass on foot and hides the large compass unless showCompassOnFoot=true.
showCompassOnFoot false Keeps the large compass visible on foot when hideCompassOnFoot=true. With hideCompassOnFoot=false, this does not force the compass to hide.
showRadarCompass true Enables direction, street, and zone information next to the radar/minimap. Requires showCompass=true for updates.
radarCompassOffset 16%,12% Percentage of screen from left, bottom (respectively) to place radar compass display
showSpeed true Show the text only speedometer
speedUnit MPH Use exactly MPH for miles per hour or KM/H for kilometers per hour. The code uses kilometers per hour for any value other than MPH.
speedOffset 16.5%,6% Percentage of screen from left, bottom (respectively) to place speedtext
speedColor 0,200,0 Color of speedometer text (R,G,B)
showAOP false Show AOP text
aopOffset 16.5%,.1% Percentage of screen from left, bottom (respectively) to place AOP text
aopColor 162, 233, 252 Color of AOP text (R,G,B)
aopPermissionUseAce true Present in the supplied file, but not read by the current code. See the permission note below.
aopPermission command ACE name checked by the server's permission-query handler. The client does not call that handler in the reviewed source; see below.
defaultAOP "State Wide" Present in the supplied file, but not read. The server initializes AOP to State Wide in code.
showTime true Show the clock text
timeOffset 16.5%,3.2% Percentage of screen from left, bottom (respectively) to place time text
useRealTime false If true, uses the player's computer local time; if false, uses game time.
color1 255,170,0 Main color of the hud (R,G,B)
color2 200, 200, 200 Secondary color of the HUD (R,G,B)
postalOffset 21%,3.2% Percentage of screen from left, bottom (respectively) to place nearest postal text
usePostalRouting true Allow the /postal command
framework none Client status integration. Only bigdaddy currently activates hunger, thirst, and stress updates; other values leave those updates inactive. This is separate from framework in server.lua.

Leave the supplied DesyncKey unchanged.

Framework and money integration

To display cash and bank balances, set useMoney=true and select your money framework at the top of server.lua. That file defaults to framework = 'bigdaddy' and has branches for bigdaddy, qb, esx, nd, nat, and custom. Implement your own money lookup in the custom branch if needed. The framework value in settings.ini does not select the money provider.

AOP permissions

/setaop command is registered when showAOP=true and the startup permission allows it. It uses the UseAcePermissions setting (fallback false) and AcePermission (fallback command). Setting UseAcePermissions=true makes /setaop registration depend on that ACE permission; the rest of the HUD still starts.

COMMANDS

COMMAND Arguments INFO
/hudoptions none Opens the HUD Options menu. Features disabled in the server configuration have disabled menu options. Player preferences are saved locally. If BigDaddy-Speedometer is already started when the HUD initializes, the menu also includes its visibility and graphical/text options.
/hidehud none Toggles the HUD and minimap for screenshots, and sends a visibility event to BigDaddy-Speedometer.
/postal [postalCode] Creates a route to an exact code in postals.json. Run without an argument to cancel an existing route. Requires usePostalRouting=true. Everyone in the same vehicle receives the route or cancellation; on foot, it affects only the player issuing the command. Routes clear within 100 units of the destination.
/setaop none Opens an on-screen keyboard to enter the AOP (up to 30 characters), then broadcasts the new AOP to players. Requires showAOP=true and the startup permission flag. See the permission note above.

Keybinds

Key INFO
[Z] or DPAD DOWN Brings up the money display for a few seconds (if enabled)

EXPORTS

These are client exports, available after the HUD initializes. Export names are case-sensitive.

Export Arguments Returns / behavior
getPostal none Nearest postal to the player as a numeric string. Returns "0" if the selected code cannot be parsed as an integer.
getPostalAtCoords coordinates (vector3) Nearest postal to the supplied coordinates, using the same numeric-string conversion. Distance uses only X and Y.
HideHud hide (boolean) true hides the HUD and minimap; false restores them. Also sends a visibility event to BigDaddy-Speedometer.
local postal = exports['BigDaddy-HUD']:getPostal()
local postalAtCoords = exports['BigDaddy-HUD']:getPostalAtCoords(vector3(123.45, -678.90, 30.0))

exports['BigDaddy-HUD']:HideHud(true)
exports['BigDaddy-HUD']:HideHud(false)