> For the complete documentation index, see [llms.txt](https://otters-developments.gitbook.io/otters-developments/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://otters-developments.gitbook.io/otters-developments/paid-resources/adverts.md).

# Adverts

Otters Adverts is a modern, configurable advertisement system for FiveM, supporting **QBCore, Qbox and ESX**.

Players can create and manage advertisements through a custom interface for businesses, services, events, jobs, vehicles, properties and community posts. New or bumped adverts can appear through the custom live advertisement notification rather than relying on standard chat messages.

## Features

* Modern custom advertisement UI
* QBCore, Qbox & ESX support
* Automatic framework detection
* Multiple advert categories
* Dynamic category navigation
* Advert search and filtering
* Configurable advert prices and durations
* Configurable posting and bump cooldowns
* Persistent cooldowns across restarts
* Delete/repost spam protection
* Configurable standard, VIP and staff advert limits
* ACE permission support
* Custom queued live advert notifications
* Advert image support
* Contact number support
* Automatic phone number detection
* GPS/location support
* Advert bumping
* Edit and delete advertisements
* Automatic advert expiration
* Persistent advert dates and expiration
* Admin advert management
* Advert banning system
* Discord webhook logging
* Configurable word blacklist
* Multiple notification integrations
* Configurable UI theme
* Automatic SQL installation and migrations
* Server-side payment validation

## Advertisement Categories

Default documented categories include Events, Jobs, Business, Services, Property, Vehicles, Community and Other. Categories can be customised in the configuration.

## Live Advertisements

When an advert is posted or bumped, it can be displayed through the live advert notification. Notifications are queued so multiple adverts do not overlap and each receives its full configured display duration.

## Anti-Spam & Limits

Posting cooldowns persist across resource and server restarts. Deleting an advert restarts the posting cooldown to prevent Post → Delete → Post spam.

Separate active advert limits can be configured for standard players, VIP players and staff, with ACE permissions controlling privileged access.

## Player & Staff Management

Players can view, edit, delete and bump their own adverts. Authorised staff can access the Admin Panel to manage adverts across the server and use the advert banning system.

## Framework Support

* QBCore
* Qbox
* ESX

## Database

The resource automatically checks and creates required SQL tables and handles supported database migrations. A complete SQL file is also included as a manual fallback.

## Editable Files

* `config.lua`
* `html/css/theme.css`

## Installation

{% stepper %}
{% step %}

### Place the resource

Place the resource in your server resources folder.
{% endstep %}

{% step %}

### Configure the resource

Configure `config.lua`.
{% endstep %}

{% step %}

### Configure integrations and permissions

Configure your chosen integrations and ACE permissions.
{% endstep %}

{% step %}

### Add to server start order

Add the resource to your server start order.
{% endstep %}

{% step %}

### Restart and verify

Restart the server and verify the database setup.
{% endstep %}

{% step %}

### Test advertisements

Test creating, editing, bumping and deleting an advert.
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://otters-developments.gitbook.io/otters-developments/paid-resources/adverts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
