Skip to content

bmscripts/bm-hints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shows the BM Scripts banner

BM Hints – QB/QBox Information Broker System

A polished, configurable information‑broker system for FiveM.
Players can approach NPCs, purchase information, and receive hints through multiple delivery methods such as email, map markers, items, and more.

Designed with modularity, UX, and server‑owner flexibility in mind.


✨ Features

  • Unlimited NPC information brokers
  • Custom hint categories per NPC
  • Multiple payment types
    • Cash
    • Bank
    • Item
  • Per‑hint cooldown system
  • Six delivery methods
    • Email
    • Item
    • Waypoint
    • Blip
    • Notify (with custom duration)
  • Optional ped blips + markers
  • Fully configurable
  • Modular client/server structure
  • Optimized (0.02ms idle)

📦 Dependencies

  • QBCore/QBox
  • ox_lib
  • ox_target
  • qb-phone (or any phone using qb-phone email export)

🧠 How It Works

  1. Player approaches an NPC (ped).
  2. Interacts using ox_target.
  3. A menu opens showing available hints.
  4. Player selects a hint → payment is processed.
  5. Server checks:
    • Payment
    • Cooldown
  6. If approved → hint is delivered using the configured method.

🛠️ Installation

  1. Drag the bm-hints folder into your server’s resources.
  2. Add to your server.cfg:
ensure bm-hints
  1. Configure your NPCs and hints inside config.lua.

🧩 Configuration Overview

Each ped entry supports:

  • Model
  • Scenario
  • Coords
  • Payment
  • Blip
  • Marker
  • Hints (unlimited)

Each hint supports:

  • Header
  • Subtext
  • Icon
  • Broker sender/subject/message
  • Wait time
  • Cooldown
  • Delivery method + settings
  • Optional per‑hint payment override (cash, bank, item)

🚚 Delivery Methods

1. Email

Sends a message through qb-phone.

delivery = {
    method = "email"
}

2. Item

Gives the player an item.

delivery = {
    method = "item",
    item = "usb_green"
}

3. Waypoint

Marks a GPS location.

delivery = {
    method = "waypoint",
    waypoint = vec3(452.1, -973.2, 30.7)
}

4. Blip (Radius Search Area + Auto‑Removal)

Creates a search radius instead of an exact point. Players must explore the area to find the objective.

delivery = {
    method = "blip",
    blip = {
        coords = vec3(1234.5, -1300.2, 35.0),
        radius = 90.0,        -- radius of the search area
        color = 1,
        alpha = 128,          -- transparency
        removeAfter = 45000,  -- auto-remove after 45 seconds
        showCenter = false,   -- optional small center blip
        text = "Search Area"
    }
}

5. Notify

Shows a notification with custom duration.

delivery = {
    method = "notify",
    notifyDuration = 8000,
    notifyType = "inform",
    notifyMessage = "Here's your tip."
}

💰 Per‑Hint Payment Overrides

Each ped has a default payment method, but individual hints can override it.

Example:

payment = {
    type = "item",
    item = "goldbar",
    itemAmount = 2
}

⏳ Cooldowns

Each hint can have its own cooldown:

cooldown = 60000 -- 1 minute

🌍 Localization Support

BM Hints includes full multi‑language support using a simple locale system.

Configuring the Locale

Set your preferred language in config.lua:

Config.Locale = "en"

Currently the only language supported is English. Join the Discord to have your language added.

License

You may use and edit this script for personal or server use.

If you reupload, redistribute, or share this script in any form, attribution is required.
You must credit the original author: BM Scripts.

You may not claim this script as your own.

About

QB/QBox Information Broker System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages