> For the complete documentation index, see [llms.txt](https://docs.kojascripts.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kojascripts.eu/free/carmarket/features/listings.md).

# Listings

The simplest flow: a player lists a vehicle from their garage at a fixed price; another player walks up to the market zone, opens the tablet, and buys it.

***

## Selling

{% stepper %}
{% step %}

### Open the tablet at a market zone

Walk up to the NPC at any `Config.Zones` entry and interact (`ox_target` or `E` by default).
{% endstep %}

{% step %}

### Go to "Sell car"

The page shows your garage on the right. Vehicles already on the market are filtered out.
{% endstep %}

{% step %}

### Pick a car & fill the form

* **Car name** — defaults to the model name, but you can rename for vanity (e.g. *"Garage Queen — Low Miles"*).
* **Price** — what you're asking. For auctions this is the **minimum opening bid**.
* **Description** — free text shown on the listing.
* **Offer type** — `Buy now` or `Auction`.
  {% endstep %}

{% step %}

### (Auction only) Set start & end dates

Use the custom date-time picker. Auctions go through three states:

* **Waiting** — between create-time and `auction_starts_at`. No bids accepted.
* **Active** — between start and end. Players can bid; price equals the highest bid.
* **Ended** — past `auction_ends_at`. Winner clicks **Buy out** to finalize.
  {% endstep %}

{% step %}

### Click "Create listing"

The car is moved to a slot inside a zone you own. If you own multiple slots, the closest free slot to your current position wins.

{% hint style="warning" %}
You need to **own a slot** in the zone you're listing into. See [Parking Slots](/free/carmarket/features/parking-slots.md) for how to buy one.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Buying

* Open the tablet at any zone → **Market** tab.
* Filter by car type, drive type, fuel type, price range.
* Click a listing → review details → **Buy Vehicle**.

The vehicle is transferred to **your** garage; money is moved atomically with rollback if anything fails partway through.

{% hint style="info" %}
For buy-now listings, the price is what the seller set. For ended auctions, only the **highest bidder** can buy out.
{% endhint %}

***

## Editing your listing

In **My offers** you can:

* Update the **price**
* Update the **tags**
* **Remove** the listing (refunds the slot weekly-fee for the unused time? — **no**, fees are non-refundable)

{% hint style="warning" %}
You can **only** remove an auction listing while it's in `waiting` state. Once bidding starts, the auction is locked in.
{% endhint %}

***

## What gets persisted

| Data                       | Table                     |
| -------------------------- | ------------------------- |
| The listing                | `koja_carmarket_listings` |
| The spawned vehicle's slot | `koja_carmarket`          |
| Completed sale (audit)     | `koja_carmarket_history`  |
