📋Noticeboard

A lightweight noticeboard system for RedM designed to work with VORP. This page walks you through first setup, translations, and moderation.


⚡ First Start

Place noticeboards

Edit config.lua and define your board locations inside Config.Boards. Each board entry contains coordinates and optional blip settings:

  • x, y, z → world position of the board.

  • createBlips → show or hide a map blip for this board.

  • blipsName → the blip name.

  • blipsSprite → the blip icon (joaat hash).

Boards with the same ID (e.g : "boards-1") share the same set of announcements.

Prepare translations

In config.lua, two areas can be customized:

  • UI texts in Config.Txt.

  • UI language in Config.NUILang (supported: fr, en, de, it, es, pt).


🧩 Configuration

In config.lua, you will find the main settings:

Config.DEBUG = true                 -- Enable or disable debug logs
Config.SpamSeconds = 2              -- Cooldown between actions
Config.ExpireDays = 14              -- Auto-expiration time for ads
Config.OpenKey = keys["U"]          -- Key to open the board
Config.DiscordWebHook = "..."       -- Discord webhook for logs
Config.DiscordName = "BT_NOTICEBOARD"
Config.AdminsGroup = { "mod", "admin", "superadmin" }

Config.Objects = {                  -- Allowed board object models
  "mp005_p_mp_bountyboard01x",
  "mp005_p_mp_bountyboard02x",
}

Config.Boards = {
  ["boards-1"] = { -- boards ID -> Boards with the same ID share the same set of announcements.
    { x = -1801.97, y = -358.48, z = 163.82, createBlips = true, blipsName = "Notice Board", blipsSprite = joaat("blip_job_board") },
    { x = -767.01,  y = -1260.93, z = 43.58,  createBlips = true, blipsName = "Notice Board", blipsSprite = joaat("blip_job_board") },
  }
}

Config.NUILang = "en" -- Supported: fr, en, pt, it, es, de

🌍 UI Localization

Config.NUILang = "en"

Config.Txt = {
  OpenPrompt = "View the board",
  Board      = "Notice Board",
  Spam       = "Please do not spam.",
  Error      = "An error has occurred.",
  Already    = "Only one ad is allowed.",
  Published  = "Your ad has been published and will automatically be removed after " .. Config.ExpireDays .. " days.",
  Removed    = "Your ad has been deleted.",
  Right      = "You do not have the rights to do this.",
  AdminRight = "Your admin rights allow you to delete ads and create as many as you want."
}
  • Config.NUILang selects the language used by the NUI.

  • Config.Txt holds the text displayed to players.


🔒 Moderation & Admin Rights

  • Player rules

    • By default, each player can only have one active announcement at a time.

    • Announcements are automatically removed after Config.ExpireDays.

  • Admin privileges

    • Admins are defined in Config.AdminsGroup.

    • These groups can:

      • Create unlimited announcements.

      • Delete any player’s announcement instantly.

  • Discord logging

    • Every publish or removal can be logged via Config.DiscordWebHook.

    • Webhook messages are sent as embeds, with the name defined in Config.DiscordName.


✅ Quick Checklist

  • Boards configured in Config.Boards.

  • Translations updated in Config.Txt.

  • Config.NUILang set to the desired language.

  • Discord webhook configured if you want logs.

  • Admin groups set correctly in Config.AdminsGroup.

You’re ready to launch the script and start posting announcements on your noticeboards.

Last updated