Skip to Content
NotifyConfiguration

Configuration

Use the in-game editor for visual changes, or edit config.lua directly. The file contains comments for every available setting; this page covers the settings used most often.

After editing config.lua, reload the resource:

refresh restart elvisuals_notify

config.lua is the baseline. Values saved by the editor are stored in settings.json and applied on top. Reset the editor or remove settings.json if a file change appears to have no effect.

Language

Config.Locale = 'en'

English (en) and Spanish (es) are included. To add a language, copy locales/en.json, translate the values without changing the keys, and set the filename without .json.

Size

Config.Scale = 1.0 Config.IconScale = 1.0 Config.ScaleByWidth = { { width = 3440, scale = 1.35 }, { width = 2560, scale = 1.15 }, { width = 1920, scale = 1.00 }, { width = 1280, scale = 0.90 }, }

Scale controls the whole UI. IconScale adjusts icons on top of it. Resolution rules are checked from the widest matching threshold down and replace Config.Scale for that player. Widths below the smallest threshold use Config.Scale.

Set Config.ScaleByWidth = {} if you want one fixed scale on every display.

The editor saves the scale currently shown on the admin’s display. A saved scale overrides the resolution table for every player until the saved settings are reset.

Placement

Config.Anchor = 'minimap' -- minimap | corner | free Config.Corner = 'bottom-left' -- used with corner Config.Position = { x = 0.015, y = 0.72 } -- used with free Config.PanelCorner = 'top-left' Config.Offset = { x = 0, y = 0 }

Position uses screen fractions from 0 to 1, not pixels. The notification stack, persistent panel, and text prompt have independent positions. Offset nudges the rendered layers in scaled pixels.

To keep the notification stack away from a custom HUD, reserve one or more screen rectangles:

Config.Reserve = { { x = 0.0, y = 0.45, w = 0.22, h = 0.12 }, }

Only reserved rectangles in the stack’s growth path affect its available space.

Capacity and grouping

Config.MaxVisible = 0 Config.MaxScreenShare = 0.55 Config.MaxQueued = 20 Config.ShowQueueBadge = true Config.GroupDuplicates = true Config.GroupWindow = 4000
  • MaxVisible = 0 lets available space decide how many cards fit. A positive value adds a count cap.
  • MaxScreenShare limits stack height as a fraction of the screen.
  • MaxQueued limits cards waiting off-screen; additional cards are discarded.
  • Duplicate grouping combines identical notifications during GroupWindow and adds a count.

Card heights are measured after rendering, so wrapped messages are included in the fit calculation.

Timing and sound

Config.Duration = 3000 Config.DurationByType = { info = 3000, success = 3000, warning = 4000, error = 5000, } Config.DurationMin = 1200 Config.DurationMax = 20000 Config.DurationMultiplier = 1.0 Config.Sound = true Config.SoundOnUpdate = false

A duration supplied by the calling script takes priority. Otherwise, the type-specific value is used, followed by Config.Duration. Transient durations are multiplied by DurationMultiplier and then clamped between DurationMin and DurationMax.

Config.SoundByType selects GTA frontend sounds for each type. A caller can silence one notification with sound = false. With SoundOnUpdate = false, persistent payloads are silent, including their first send; set it to true to play a sound on every persistent send.

Motion

Config.Motion = 'full' -- full | reduced | none Config.Entrance = 'bottom' -- left | right | top | bottom | scale | fade | none Config.Exit = 'left' Config.MotionSpeed = 1.0

Entrance and exit values name the side a card comes from or leaves toward. reduced uses simple fades; none removes notification motion. The player’s operating-system reduced-motion preference also limits animation.

Theme and colors

Config.Preset = 'midnight' -- midnight | carbon | frost | neon Config.PanelStyle = 'accent' -- accent | mono Config.ShowBrandLabel = true Config.BrandName = false Config.Colors = { -- accent = '#ff0044', -- surface = '#12143b', }

Color overrides support accent, surface, text, info, success, warning, and error using six-digit hex values. BrandName replaces the panel’s default label; false keeps the localized label.

For deeper styling, edit the CSS variables in web/theme.css. Avoid backdrop-filter and do not set color-scheme on the root element; both can produce an opaque NUI background in FiveM.

Text prompts

Config.TextUI = { enabled = true, position = 'right-center', -- right-center | left-center | top-center | bottom-center keycap = true, }

Individual showTextUI calls can override the position. See the API reference.

Commands and diagnostics

Config.AdminCommand = 'evset' Config.AdminAce = 'command.evset' Config.PreviewCommand = 'notifypreview' Config.PreviewAce = 'command.notifypreview' Config.Debug = false Config.DebugCommands = false Config.DebugPrefix = 'ev'
  • AdminAce protects both opening and saving from the editor. See Settings editor for the behavior when it is false.
  • PreviewAce protects /notifypreview; grant it separately if you use that command.
  • Debug logs NUI messages in the CEF developer console.
  • DebugCommands adds local test commands such as /evtest and /evhelp.

Framework capture settings are covered in Integrations.