FourTwenty Black Market 🏴‍☠️ | Dynamic Trading & Auctions for FiveM

# [Release] FourTwenty Black Market :pirate_flag: | Dynamic Market & Auction System

:loudspeaker: Introduction

Hey FiveM Community! :wave:
We’re FourTwentyDev, and we’re thrilled to release the FourTwenty Black Market, a dynamic market system that introduces auctions, real-time trading, and a modern, sleek UI. Perfect for servers aiming to provide immersive trading experiences while integrating seamlessly with ESX or QB-Core.


:fire: Key Features

:desktop_computer: Modern UI

  • Sleek and responsive design
  • Real-time updates
  • Smooth animations
  • Dark theme with customizable accent colors
  • Fully mobile-friendly

:arrows_counterclockwise: Advanced Market Mechanics

  • Instant-buy listings and timed auctions
  • Real-time bidding system
  • Configurable tax system for transactions
  • Support for multiple black market locations with custom blips

:bar_chart: Auction System

  • Configurable auction durations
  • Automatic outbid notifications
  • Real-time bid refunding system
  • Automatic winner selection upon auction end

:bridge_at_night: Dual Framework Support

  • ESX & QB-Core ready
  • Automatic framework detection
  • Unified bridge system for:
    • Inventory management
    • Player money handling
    • Notification systems

:package: Dependencies

  • ESX or QB-Core Framework
  • MySQL Async
  • FiveM Server Build 2802+

:cd: Installation

  1. Download or Clone the repository into your resources folder.
  2. Import the provided SQL file:
    CREATE TABLE IF NOT EXISTS `fourtwenty_blackmarket` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `seller` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
        `item_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
        `amount` int(11) NOT NULL,
        `price` int(11) NOT NULL,
        `is_auction` tinyint(1) NOT NULL DEFAULT '0',
        `end_time` datetime DEFAULT NULL,
        `highest_bidder` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
        `highest_bid` int(11) DEFAULT NULL,
        `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    
  3. Add ensure fourtwenty_blackmarket to your server.cfg.
  4. Configure your settings in config.lua.
  5. Start/restart your server and enjoy!

:wrench: Configuration

Core Settings

Config = {
    Framework = "ESX",       -- Options: "ESX" or "QB"
    Language = "en",         -- Available: "en", "de"
    Debug = false            -- Enable debug mode
}

Market Settings

Config.MaxListings = 50        -- Max active listings per player
Config.MaxAuctionTime = 72     -- Max auction duration in hours
Config.MinimumPrice = 100      -- Minimum listing price
Config.TaxRate = 0.05          -- 5% transaction tax

Market Locations

Config.Locations = {
    {
        name = "Downtown Market",
        coords = vector3(-1456.42, -413.67, 35.91),
        blip = {
            enabled = true,
            sprite = 496,
            color = 1,
            scale = 0.8
        }
    }
}

:earth_africa: Localization

Easily translate the market to your server’s language via locale.lua.
Currently supported:

  • English (en)
  • German (de)
Locales["en"] = {
    ["black_market"] = "BLACK MARKET",
    ["browse_listings"] = "BROWSE",
    ["create_listing"] = "SELL",
    -- Add more translations
}

:chart_with_upwards_trend: Performance

  • 0.0ms idle
  • 0.01ms - 0.02ms active
  • Optimized for high-performance servers:
    • Smart distance checks
    • Efficient database queries
    • Event batching for lower latency

:blue_book: Documentation

Visit our GitHub Wiki for detailed:

  • Installation guide
  • Configuration examples
  • API usage
  • Troubleshooting

:rocket: Showcase Video

Showcase
:eyes: Check out the showcase video to see the Black Market in action!


:satellite: Support & Updates

For assistance, feature requests, or bug reports:

  1. Discord: Join Our Server
  2. GitHub: Submit Issues
  3. Website: FourTwentyDev

:page_facing_up: License

This project is licensed under the MIT License. See the LICENSE.md for details.


:green_heart: Made with love by FourTwentyDev

8 Likes

is it possible to switch different postions after time x or server restart for one market?

currently not no. also the market displays itself with a blip.
your idea is great though, something we will implement really soon!

1 Like

hey there!
feature was just added on github :)!

1 Like

images is not loading from ox_inventory

hey there, you need to adjust the itemimagepath in the config to match the location of your inventory.

This has been the biggest headache with the script, can’t seem to get it to work no matter how I route the pathway to ox

Nice realese. Im looking for the “fourtwenty_blackmarket_payments” SQL. Should i add it by my self?

hey there,
the script will create all necessary tables on startup :slight_smile:

please explain whats wrong or join our discord and discuss it real quick :slight_smile:

Yeah I did it …… and it not working. …… nui://ox_inventory/web/images

ur missing a ending / at the end. it should be: nui://ox_inventory/web/images/

:convenience_store: Black Market Hotfix 1.0.1

:warning: Please update ASAP!
Download: GitHub - FourTwentyDev/blackmarket

:bug: Fixed

  • :dart: Fixed items being lost when auctions expire without bids
  • :moneybag: Fixed pending payments not being processed for offline sellers
  • :wastebasket: Fixed expired auctions remaining in database indefinitely

:sparkles: Added

  • :package: Automatic return of items for unsuccessful auctions
  • :busts_in_silhouette: Better handling of offline player transactions
  • :iphone: Additional notifications for auction participants

:wrench: Technical

  • :mag: Added missing database queries for expired auctions
  • :zap: Improved periodic check system for pending transactions
  • :shield: Fixed potential money duplication exploit in bidding system

:floppy_disk: Database

  • No schema changes required
  • Existing entries will be processed automatically

:bulb: If you experience any issues after updating, please create an issue on GitHub or contact us in Discord.

:pray: Thank you for using our resource! Stay safe and happy trading!