[ESX] [QBCore] RS | Carwash Stations: Basic , Standard and Premium Carwash | 0.00ms Resmon

Carwash Stations: Basic , Standard and Premium Carwash

Welcome to Carwash , your ultimate solution for offering vehicle cleaning services, whether for free or paid usage. With the flexibility to define multiple coordinates, you can tailor the carwash experience to your community’s needs.

Key Features

:small_blue_diamond: Webhook Integration

:small_blue_diamond: Exploits Safe

:small_blue_diamond: Configurable Config, HTML, CSS, JS

:small_blue_diamond: Configurable Files (Name, Webhook, Translation, Coordinates, etc.)

:small_blue_diamond: 0.00 ms Idle High Performance

:small_blue_diamond: Scalable - Create as Many Stations as Needed

Dependencies

:small_orange_diamond: ESX 1.1, 1.2, Legacy | QBCore

Highly Optimized

rs_carwashResmon

Purchase on Tebex
Purchase ESX
Purchase QBCore

Other scripts
rs_dutysystem
rs_namechange
rs_numberchange
rs_moneywash
rs_carwash

Code is accessible No / Yes = Config, HTML, CSS, JS
Subscription-based No
Lines (approximately) 1200
Requirements ESX 1.1, 1.2, Legacy or QBCore
Support Yes
Config = {}

Config.Header = {
    title = "RESMONSTUDIO",        -- The title displayed in the header
    name = "Car Wash"               -- The name of the system in the header
}

Config.Options = {
    Language = 'en',                          -- Default language for the system (e.g., 'en', 'de', 'fr', etc.)
    UseOldEsx = false,                        -- Use the old ESX export method or the new one
    SharedObject = {
        ["client"] = "esx:getSharedObject",   -- Client-side shared object for ESX
        ["server"] = "esx:getSharedObject",   -- Server-side shared object for ESX
    },

    Packages = {
        [1] = { 
            Name = "Basic",                   -- Name of the package
            Price = 1500,                     -- Price for the Basic car wash package
            WashDuration = 5                  -- Duration (in seconds) for the Basic wash
        },
        [2] = { 
            Name = "Standard",                -- Name of the package
            Price = 3000,                     -- Price for the Standard car wash package
            WashDuration = 10                 -- Duration (in seconds) for the Standard wash
        },
        [3] = { 
            Name = "Premium",                 -- Name of the package
            Price = 5000,                     -- Price for the Premium car wash package
            WashDuration = 20                 -- Duration (in seconds) for the Premium wash
        },
    },

    Positions = {
        vector3(24.81, -1391.95, 28.32),      -- Location 1: Carwash position coordinates
        vector3(-699.87, -933.48, 18.01),     -- Location 2: Carwash position coordinates
    },
}

Config.Blip = {
    enabled = true,    -- Enable or disable the blip on the map
    sprite = 100,      -- Blip sprite ID for the car wash icon
    display = 4,       -- Display type (whether the blip is visible on the minimap, main map, etc.)
    scale = 0.8,       -- Scale of the blip icon
    color = 1,         -- Blip color ID (defines the color of the icon)
    shortrange = true, -- Should the blip only show when close by?
    text = "Carwash",  -- Blip name displayed on the map
}

Config.Marker = {
    Type = 1,                         -- Marker type (game-defined)
    Size = vector3(5.0, 5.0, 0.2),    -- Size of the marker (width, depth, height)
    Color = { r = 255, g = 255, b = 255, a = 155 }, -- Color of the marker (RGBA values) [White]
    BobUpAndDown = false,             -- Should the marker bob up and down?
    FaceCamera = false,               -- Should the marker face the player's camera?
    Rotate = 2,                       -- Marker rotation type (game-defined)
    TextureDict = false,              -- Texture dictionary for custom textures (nil for default)
    TextureName = false,              -- Texture name to apply to the marker (nil for default)
    DrawOnEntities = false            -- Should the marker be drawn on entities?
}

Config.Progressbar = {
    Enabled = false,                  -- Enable or disable the progress bar

    func = function(message, duration)
        if Config.Progressbar.Enabled then
            exports["rs_hud"]:Progressbar(true, message, duration * 1000)
        end
    end
}

-- Function to send a notification to the player
function SendNotification(message)
    TriggerEvent('esx:showNotification', message)
    -- TriggerEvent('rs_notify', 'Carwash', message , 'info', 5000)
end

-- Function to show a help notification
function ShowHelpNotify(msg, E)
    ESX.ShowHelpNotification(msg, E)
    -- exports["rs_hud"]:HelpNotify(msg, E)
end

Amazing !

Changelog 1.4.0 (ESX & QBCore)

  • UI / UX Redesign — The user interface and user experience have been redesigned for a better, more modern look.
  • Added Header to Config — You can now configure the header details directly from the config file.
  • Added Version Check — A version check has been added to ensure the system is always up to date.
  • Added language support — Now supports multiple languages, with 8 languages included in the config.
  • Refactored code for improvements — The code has been refactored for better performance and maintainability.