# REVIVE STATION

### 1) Overview

Risk Revive Station is a player-operated revival system featuring:

* 💊 Pay-to-revive mechanics with customizable pricing
* ⏱️ Two-tier revival system (fast/expensive or slow/cheap)
* 👨‍⚕️ Doctor presence requirement (optional)
* 📍 Multiple station locations (NPCs or markers)
* 🎯 ox\_target support for modern interactions
* 📊 Discord webhook logging with full identifier tracking
* 🌍 Multi-language support (easily expandable)
* 🎨 Fully customizable UI and visuals

***

### 2) Basic Configuration

#### Framework Detection

```lua
Config.Framework = "auto"
```

**Options:** `"auto"`, `"esx"`, `"qb"`\
**Recommended:** Leave as `"auto"` for automatic detection

#### Language

```lua
Config.Language = "en"
```

Add custom languages in `Config.Locales` (see Section 11)

#### Payment Method

```lua
Config.MoneyType = "cash"
```

**Options:** `"cash"` or `"bank"`\
**Effect:** Determines which account is charged for revivals

#### Revive Radius

```lua
Config.ReviveRadius = 7.0
```

**Maximum distance in meters** for both:

* Reviver must be within radius of station
* Target (dead player) must be within radius of station

**Examples:**

```lua
Config.ReviveRadius = 5.0   -- Close proximity (recommended for tight spaces)
Config.ReviveRadius = 10.0  -- Larger area (recommended for open areas)
Config.ReviveRadius = 15.0  -- Very large (may allow exploits)
```

***

### 3) Doctor Requirement System

```lua
Config.MinimunDoctor = 0
Config.DoctorJobs = {
    "ambulance"
}
```

**How it works:**

* System counts online players with jobs listed in `DoctorJobs`
* If count < `MinimunDoctor`, revive station is **disabled**
* Players see error: "Too many doctors online" (counter-intuitive, needs locale fix)

**Configuration examples:**

**No doctor requirement (always available):**

```lua
Config.MinimunDoctor = 0  -- Station always works
```

**Require at least 1 doctor offline:**

```lua
Config.MinimunDoctor = 1  -- Works only when 0 doctors online
Config.DoctorJobs = { "ambulance" }
```

**Require multiple EMS jobs offline:**

```lua
Config.MinimunDoctor = 2
Config.DoctorJobs = {
    "ambulance",
    "ems",
    "paramedic"
}
```

**Best practice explanation:** The current logic is **inverted** - it checks if doctors are *below* the minimum and allows revives when there are **fewer** doctors. This is typically used when you want the revive station to be a **backup option** when no EMS is available.

***

### 4) Pricing System

```lua
Config.Prices = {
    low = 10000,   -- Cheaper option
    high = 20000,  -- Expensive option
}
```

**How it works:**

* Players choose between two revival options
* `low` price = slower revival time
* `high` price = faster revival time
* Both options revive the player fully

**Pricing strategies:**

**Budget-friendly server:**

```lua
Config.Prices = {
    low = 2500,   -- $2,500 (slow revive)
    high = 5000,  -- $5,000 (fast revive)
}
```

**Balanced economy:**

```lua
Config.Prices = {
    low = 10000,  -- $10,000 (slow revive)
    high = 20000, -- $20,000 (fast revive)
}
```

**High-stakes server:**

```lua
Config.Prices = {
    low = 50000,   -- $50,000 (slow revive)
    high = 100000, -- $100,000 (fast revive)
}
```

**Discourage use (prefer EMS):**

```lua
Config.Prices = {
    low = 25000,   -- $25,000 (slow revive)
    high = 50000,  -- $50,000 (fast revive)
}
```

***

### 5) Revive Time System

```lua
Config.ReviveTime = {
    low = 60000,  -- 60 seconds (1 minute)
    high = 30000, -- 30 seconds
}
```

**Time is in milliseconds**

**How it works:**

* `low` time = longer wait, cheaper price
* `high` time = shorter wait, higher price
* Timer shows countdown in UI
* Player is revived when timer reaches 0

**Time conversion reference:**

```lua
-- 10 seconds = 10000
-- 15 seconds = 15000
-- 30 seconds = 30000
-- 45 seconds = 45000
-- 60 seconds = 60000 (1 minute)
-- 90 seconds = 90000 (1.5 minutes)
-- 120 seconds = 120000 (2 minutes)
```

**Configuration examples:**

**Quick revival (encourage use):**

```lua
Config.ReviveTime = {
    low = 30000,  -- 30 seconds
    high = 15000, -- 15 seconds
}
```

**Slow revival (discourage use):**

```lua
Config.ReviveTime = {
    low = 120000,  -- 2 minutes
    high = 60000,  -- 1 minute
}
```

**Instant revival (high tier only):**

```lua
Config.ReviveTime = {
    low = 60000,  -- 1 minute
    high = 1000,  -- 1 second (basically instant)
}
```

***

### 6) Revive Events Configuration

```lua
Config.ReviveEvents = {
    "esx_ambulancejob:revive",
    "qb-ambulancejob:revive",
    "hospital:client:Revive",
    "hospital:client:RespawnAtHospital"
}
```

**How it works:**

* When a player is revived, **all** events in this list are triggered
* Ensures compatibility with various ambulance/hospital scripts
* Add your server's custom revive events here

**Common ambulance script events:**

**ESX Legacy:**

```lua
Config.ReviveEvents = {
    "esx_ambulancejob:revive",
}
```

**QBCore:**

```lua
Config.ReviveEvents = {
    "qb-ambulancejob:revive",
    "hospital:client:Revive",
}
```

**Custom ambulance scripts:**

```lua
Config.ReviveEvents = {
    "esx_ambulancejob:revive",
    "qb-ambulancejob:revive",
    "hospital:client:Revive",
    "myambulance:revive",           -- Your custom event
    "medic_system:client:revive"    -- Another custom event
}
```

**⚠️ IMPORTANT:** If your revive events don't work, check your ambulance script documentation for the correct event names.

***

### 7) Location System

Each location can be either a **marker** or **NPC**:

```lua
Config.Coords = {
    {
        type = "npc",  -- Use NPC
        coord = vector3(296.7453, -588.5380, 42.2608),
        marker = {
            type = 1,
            scale = vector3(0.5, 0.5, 0.5),
            color = { r = 255, g = 255, b = 255, a = 100 }
        },
        npc = {
            model = "s_m_m_paramedic_01",
            heading = 71.1424
        }
    },
    {
        type = "marker",  -- Use marker instead
        coord = vector3(298.2853, -578.0949, 43.1324),
        marker = {
            type = 21,
            scale = vector3(0.5, 0.5, 0.5),
            color = { r = 250, g = 273, b = 39, a = 100 }
        },
        npc = {
            model = "s_m_m_paramedic_01",  -- Ignored when type = "marker"
            heading = 0.0
        }
    },
}
```

#### Location Types

**NPC (Recommended):**

* Spawns a non-playable character
* More immersive and visible
* Better for ox\_target integration
* Players interact by pressing E or using ox\_target

**Marker:**

* Shows a 3D marker on the ground
* Less immersive but uses fewer resources
* Good for multiple locations
* Players interact by standing in marker and pressing E

#### Adding New Locations

**NPC Location:**

```lua
{
    type = "npc",
    coord = vector3(x, y, z),  -- Get with /getcoords
    npc = {
        model = "s_m_m_paramedic_01",  -- NPC model
        heading = 90.0  -- Direction NPC faces
    },
    marker = {  -- Can be left as-is, ignored for NPCs
        type = 1,
        scale = vector3(0.5, 0.5, 0.5),
        color = { r = 255, g = 255, b = 255, a = 100 }
    }
}
```

**Marker Location:**

```lua
{
    type = "marker",
    coord = vector3(x, y, z),
    marker = {
        type = 21,  -- Arrow pointing down
        scale = vector3(0.5, 0.5, 0.5),
        color = { r = 255, g = 0, b = 0, a = 150 }  -- Red
    },
    npc = {  -- Can be left as-is, ignored for markers
        model = "s_m_m_paramedic_01",
        heading = 0.0
    }
}
```

#### Popular Locations

**Pillbox Hospital:**

```lua
{
    type = "npc",
    coord = vector3(296.7453, -588.5380, 42.2608),
    npc = {
        model = "s_m_m_paramedic_01",
        heading = 71.1424
    },
    marker = { type = 1, scale = vector3(0.5, 0.5, 0.5), color = { r = 255, g = 255, b = 255, a = 100 } }
}
```

**Sandy Shores Medical Center:**

```lua
{
    type = "npc",
    coord = vector3(1839.6, 3672.9, 34.3),
    npc = {
        model = "s_m_m_paramedic_01",
        heading = 210.0
    },
    marker = { type = 1, scale = vector3(0.5, 0.5, 0.5), color = { r = 255, g = 255, b = 255, a = 100 } }
}
```

**Paleto Bay Clinic:**

```lua
{
    type = "npc",
    coord = vector3(-254.8, 6331.5, 32.4),
    npc = {
        model = "s_m_m_paramedic_01",
        heading = 45.0
    },
    marker = { type = 1, scale = vector3(0.5, 0.5, 0.5), color = { r = 255, g = 255, b = 255, a = 100 } }
}
```

#### Common NPC Models

```lua
"s_m_m_paramedic_01"   -- Paramedic (default)
"s_m_m_doctor_01"      -- Doctor
"s_f_y_scrubs_01"      -- Female nurse
"u_m_y_chip"           -- Casual medic
"s_m_m_scientist_01"   -- Scientist/lab coat
```

#### Marker Types

* `1` — Cylinder (default)
* `21` — Arrow pointing down (recommended)
* `27` — Circle outline
* `29` — Flat circle

[Full Marker List](https://docs.fivem.net/docs/game-references/markers/)

***

### 8) Blip Configuration

```lua
Config.Blip = {
    sprite = 153,
    color = 2,
    scale = 0.8,
    name = "REVIVE STATION",
    visible = true,
}
```

**Blip customization:**

* **sprite:** Icon type — [Blip Sprites](https://docs.fivem.net/docs/game-references/blips/)
* **color:** Color ID (0-85)
* **scale:** Size multiplier
* **name:** Text displayed on map
* **visible:** `true` = show blips, `false` = hide blips

**Popular sprites:**

```lua
sprite = 153  -- Ambulance/medical cross (default)
sprite = 61   -- Hospital bed
sprite = 310  -- First aid kit
sprite = 280  -- Defibrillator
```

**Popular colors:**

```lua
color = 2   -- Green (default, medical)
color = 1   -- Red (emergency)
color = 3   -- Blue (calm)
color = 5   -- Yellow (caution)
```

**Examples:**

**Hospital theme (green):**

```lua
Config.Blip = {
    sprite = 153,
    color = 2,
    scale = 0.9,
    name = "Medical Revive",
    visible = true,
}
```

**Emergency theme (red):**

```lua
Config.Blip = {
    sprite = 280,  -- Defibrillator
    color = 1,     -- Red
    scale = 1.0,
    name = "Emergency Revival",
    visible = true,
}
```

**Hide blips completely:**

```lua
Config.Blip = {
    sprite = 153,
    color = 2,
    scale = 0.8,
    name = "REVIVE STATION",
    visible = false,  -- Blips won't show on map
}
```

***

### 9) Notification System

```lua
Config.UseCustomNotify = false
Config.UseCustomHelpNotify = false

Config.Functions = {
    notify = function(ntype, title, text, time)
        exports['risk-notify']:Notify({
            type = ntype or 'info',
            title = title or '',
            message = text or '',
            duration = time or 8000
        })
    end,
    helpnotify = function(key, text)
        exports['risk-notify']:HelpNotify(key, text)
    end,
}
```

**To use default notifications:**

```lua
Config.UseCustomNotify = false
Config.UseCustomHelpNotify = false
```

**To integrate other systems:**

**ox\_lib:**

```lua
Config.UseCustomNotify = true
Config.Functions = {
    notify = function(ntype, title, text, time)
        lib.notify({
            title = title,
            description = text,
            type = ntype,
            duration = time
        })
    end,
}
```

**mythic\_notify:**

```lua
Config.UseCustomNotify = true
Config.Functions = {
    notify = function(ntype, title, text, time)
        exports['mythic_notify']:DoHudText(ntype, text)
    end,
}
```

**t-notify:**

```lua
Config.UseCustomNotify = true
Config.Functions = {
    notify = function(ntype, title, text, time)
        exports['t-notify']:Custom({
            style = ntype,
            message = text,
            duration = time
        })
    end,
}
```

**QBCore native:**

```lua
Config.UseCustomNotify = true
Config.Functions = {
    notify = function(ntype, title, text, time)
        QBCore.Functions.Notify(text, ntype, time)
    end,
}
```

***

### 10) ox\_target Integration

```lua
Config.UseOxTarget = false
Config.OxTargetText = "Open Revive Station"
Config.OxTargetIcon = "fa-solid fa-notes-medical"
```

**How it works:**

* When `UseOxTarget = true`, script uses ox\_target for interactions
* **Recommended:** Use `type = "npc"` for locations when using ox\_target
* Provides eye-targeting instead of proximity prompts

**Enabling ox\_target:**

```lua
Config.UseOxTarget = true
Config.OxTargetText = "Access Revival Services"
Config.OxTargetIcon = "fa-solid fa-heart-pulse"
```

**Popular icons:**

```lua
Config.OxTargetIcon = "fa-solid fa-notes-medical"  -- Default
Config.OxTargetIcon = "fa-solid fa-heart-pulse"    -- Heart with pulse
Config.OxTargetIcon = "fa-solid fa-briefcase-medical" -- Medical briefcase
Config.OxTargetIcon = "fa-solid fa-user-doctor"    -- Doctor
Config.OxTargetIcon = "fa-solid fa-suitcase-medical" -- Medical kit
```

**⚠️ IMPORTANT:**

* ox\_target must be installed and started
* Works best with NPC stations (`type = "npc"`)
* Marker stations will use sphere zones (less precise)

***

### 11) Localization System

```lua
Config.Locales = {}  -- Define in locales.lua or config
Config.Language = "en"
```

#### Adding Custom Language

**In config.lua or separate locales file:**

```lua
Config.Locales["de"] = {  -- German example
    ["open_menu"] = "Drücke E um Wiederbelebungsstation zu öffnen",
    ["you_are_dead"] = "Du bist tot und kannst dies nicht verwenden",
    ["no_players"] = "Keine toten Spieler in der Nähe",
    ["not_enough_money"] = "Du hast nicht genug Geld",
    ["player_not_dead"] = "Dieser Spieler ist nicht tot",
    ["so_many_doctors"] = "Zu viele Ärzte im Dienst",
    ["revive_success"] = "{name} wurde erfolgreich wiederbelebt",
    ["you_have_been_revived"] = "Du wurdest von {name} wiederbelebt",
    ["not_in_radius"] = "Du bist nicht in Reichweite der Station",
    
    ["web"] = {
        title = "WIEDERBELEBUNGSSTATION",
        subtitle = "Wähle einen Patienten aus, um ihn wiederzubeleben",
        select_player = "Spieler auswählen",
        select_option = "Option wählen",
        low_cost = "Günstig",
        high_cost = "Teuer",
        revive = "Wiederbeleben",
        time = "Zeit: {time}s",
        price = "Preis: ${price}",
        your_money = "Dein Geld: ${money}",
        no_dead_players = "Keine toten Spieler in der Nähe"
    }
}
```

**Spanish:**

```lua
Config.Locales["es"] = {
    ["open_menu"] = "Presiona E para abrir estación de reanimación",
    ["you_are_dead"] = "Estás muerto y no puedes usar esto",
    ["no_players"] = "No hay jugadores muertos cerca",
    ["not_enough_money"] = "No tienes suficiente dinero",
    ["player_not_dead"] = "Este jugador no está muerto",
    ["so_many_doctors"] = "Demasiados médicos en servicio",
    ["revive_success"] = "{name} fue reanimado exitosamente",
    ["you_have_been_revived"] = "Fuiste reanimado por {name}",
    ["not_in_radius"] = "No estás en el radio de la estación",
    
    ["web"] = {
        title = "ESTACIÓN DE REANIMACIÓN",
        subtitle = "Selecciona un paciente para reanimar",
        select_player = "Seleccionar jugador",
        select_option = "Seleccionar opción",
        low_cost = "Económico",
        high_cost = "Caro",
        revive = "Reanimar",
        time = "Tiempo: {time}s",
        price = "Precio: ${price}",
        your_money = "Tu dinero: ${money}",
        no_dead_players = "No hay jugadores muertos cerca"
    }
}
```

**French:**

```lua
Config.Locales["fr"] = {
    ["open_menu"] = "Appuyez sur E pour ouvrir la station de réanimation",
    ["you_are_dead"] = "Vous êtes mort et ne pouvez pas utiliser ceci",
    ["no_players"] = "Aucun joueur mort à proximité",
    ["not_enough_money"] = "Vous n'avez pas assez d'argent",
    ["player_not_dead"] = "Ce joueur n'est pas mort",
    ["so_many_doctors"] = "Trop de médecins en service",
    ["revive_success"] = "{name} a été réanimé avec succès",
    ["you_have_been_revived"] = "Vous avez été réanimé par {name}",
    ["not_in_radius"] = "Vous n'êtes pas à portée de la station",
    
    ["web"] = {
        title = "STATION DE RÉANIMATION",
        subtitle = "Sélectionnez un patient à réanimer",
        select_player = "Sélectionner le joueur",
        select_option = "Sélectionner l'option",
        low_cost = "Économique",
        high_cost = "Cher",
        revive = "Réanimer",
        time = "Temps: {time}s",
        price = "Prix: ${price}",
        your_money = "Votre argent: ${money}",
        no_dead_players = "Aucun joueur mort à proximité"
    }
}
```

**Then set the language:**

```lua
Config.Language = "de"  -- or "es", "fr", etc.
```

***

### 12) Discord Webhooks

```lua
ConfigDC = {
    enable = true,
    webhook = "https://discord.com/api/webhooks/YOUR_WEBHOOK",
    username = "RISK REVIVE STATION",
    avatar = "https://i.postimg.cc/NMKV9pRn/logo.png",
    color = 16777045,  -- Decimal color
}
```

**What it logs:**

* Reviver name and server ID
* Reviver Discord mention (if linked)
* Target name and server ID
* Target Discord mention (if linked)
* Price paid
* Timestamp
* Full identifiers (license, steam, XBL, Discord, etc.) for both players

#### Setup Instructions

**1. Create Discord webhook:**

* Open Discord server settings
* Go to "Integrations" → "Webhooks"
* Click "New Webhook"
* Name it "Revive Station Logs"
* Select channel (staff-only recommended)
* Copy webhook URL

**2. Configure webhook:**

```lua
ConfigDC = {
    enable = true,
    webhook = "https://discord.com/api/webhooks/1234567890/ABCDEF...",  -- Paste here
    username = "RISK REVIVE STATION",
    avatar = "https://i.postimg.cc/NMKV9pRn/logo.png",
    color = 16777045,
}
```

**3. Customize appearance:**

**Color examples:**

```lua
color = 16777045,  -- Gold/yellow (default)
color = 16711680,  -- Red
color = 65280,     -- Green
color = 255,       -- Blue
color = 16776960,  -- Yellow
color = 16753920,  -- Orange
```

Use [SpyColor](https://www.spycolor.com/) to convert HEX to decimal

**Custom avatar:**

```lua
avatar = "https://your-image-url.com/logo.png",
```

**Custom username:**

```lua
username = "Medical Logs",
username = "Revival System",
username = "EMS Override Logs",
```

**To disable webhooks:**

```lua
ConfigDC = {
    enable = false,  -- Turn off logging
    -- ... rest can stay as-is
}
```

***

### 13) Complete Configuration Examples

#### Example 1: Free Revival (No EMS Required)

```lua
-- Always available, no cost
Config.MinimunDoctor = 0  -- Always works
Config.MoneyType = "cash"
Config.ReviveRadius = 10.0

Config.Prices = {
    low = 0,    -- Free
    high = 0,   -- Free
}

Config.ReviveTime = {
    low = 30000,   -- 30 seconds
    high = 10000,  -- 10 seconds
}

Config.DoctorJobs = { "ambulance" }
```

#### Example 2: Serious RP Server

```lua
-- Expensive, only works when no EMS online
Config.MinimunDoctor = 1  -- Requires 0 EMS online
Config.MoneyType = "bank"
Config.ReviveRadius = 5.0

Config.Prices = {
    low = 25000,   -- $25k
    high = 50000,  -- $50k
}

Config.ReviveTime = {
    low = 120000,  -- 2 minutes
    high = 60000,  -- 1 minute
}

Config.DoctorJobs = {
    "ambulance",
    "ems",
    "doctor"
}

ConfigDC.enable = true  -- Log everything
```

#### Example 3: Balanced Public Server

```lua
-- Moderate pricing, backup option
Config.MinimunDoctor = 0  -- Always available
Config.MoneyType = "cash"
Config.ReviveRadius = 7.0

Config.Prices = {
    low = 5000,    -- $5k
    high = 10000,  -- $10k
}

Config.ReviveTime = {
    low = 60000,   -- 1 minute
    high = 30000,  -- 30 seconds
}

Config.DoctorJobs = { "ambulance" }
Config.UseOxTarget = true
```

#### Example 4: Economy Server (Discourage Use)

```lua
-- Very expensive, prefer EMS
Config.MinimunDoctor = 2  -- Requires <2 EMS online
Config.MoneyType = "bank"
Config.ReviveRadius = 5.0

Config.Prices = {
    low = 50000,    -- $50k
    high = 100000,  -- $100k
}

Config.ReviveTime = {
    low = 180000,  -- 3 minutes
    high = 90000,  -- 1.5 minutes
}

Config.DoctorJobs = {
    "ambulance",
    "ems",
    "doctor",
    "paramedic"
}

ConfigDC.enable = true
```

***

### 14) Troubleshooting

#### ❌ "baseevents is not installed or started"

**Cause:** Required dependency missing or not started

**Note:** baseevents is **pre-installed by default** on every FiveM server. This error only appears if you accidentally deleted it or it's not being started.

**Solution:**

1. **Check server.cfg** - Ensure this line exists:

```
   ensure baseevents
```

2. **If baseevents is missing/deleted:**

   **Download RISK-SCRIPTS optimized version:**

{% file src="/files/4pSFo3uNBnL2xiTpaBnu" %}

#### ❌ "No dead players nearby"

**Possible causes:**

* Players not actually dead (just injured)
* Outside `Config.ReviveRadius`
* Death detection not working

**Solution:**

* Increase `Config.ReviveRadius`
* Verify `baseevents` is running
* Check ambulance script compatibility
* Ensure dead players are within radius of station

#### ❌ "You don't have enough money"

**Cause:** Insufficient funds\
**Solution:**

* Check `Config.MoneyType` (cash vs bank)
* Lower `Config.Prices`
* Give player money: `/givemoney [id] 50000`

#### ❌ "Too many doctors online"

**Cause:** Misunderstanding of `MinimunDoctor` logic\
**Solution:**

* Logic is **inverted** - it works when doctors < minimum
* Set `Config.MinimunDoctor = 0` to always allow
* Or set to high number if you want it to work when doctors ARE online

#### ❌ Menu won't open

**Possible causes:**

* Too far from location
* ox\_target enabled but not installed
* Dead yourself

**Solution:**

* Stand very close to NPC/marker
* If using ox\_target, ensure it's started
* Make sure you're not dead
* Check console for errors (F8)

#### ❌ Revive doesn't work

**Possible causes:**

* Wrong revive events in `Config.ReviveEvents`
* Ambulance script incompatibility
* Player outside radius

**Solution:**

* Check ambulance script documentation for correct event names
* Add custom events to `Config.ReviveEvents`
* Verify both players are within `Config.ReviveRadius` of station
* Check server console for errors

#### ❌ Discord webhooks not sending

**Possible causes:**

* Invalid webhook URL
* `ConfigDC.enable = false`
* Webhook deleted from Discord

**Solution:**

* Create new webhook
* Copy full URL including token
* Set `ConfigDC.enable = true`
* Test with a revival

#### ❌ NPC not spawning

**Possible causes:**

* Wrong model name
* Model not loaded
* Coordinates incorrect

**Solution:**

* Use correct ped model (check [FiveM docs](https://docs.fivem.net/docs/game-references/ped-models/))
* Verify coordinates with `/getcoords`
* Check console for model loading errors

#### ❌ Blips not showing

**Cause:** `Config.Blip.visible = false`\
**Solution:**

```lua
Config.Blip.visible = true
```

***

### 15) Best Practices

✅ **Balance pricing with revival time** — Faster revival = higher cost\
✅ **Use doctor requirement strategically** — Set to 0 for always-available, or 1+ for backup-only\
✅ **Place stations strategically** — Hospitals, clinics, not random locations\
✅ **Use NPCs for better visibility** — More immersive than markers\
✅ **Enable webhooks for logging** — Track usage patterns and potential abuse\
✅ **Test with ox\_target** — Better UX if you use it\
✅ **Keep revival radius reasonable** — 5-10 meters recommended\
✅ **Add multiple locations** — Cover different areas of the map\
✅ **Customize for your economy** — Don't make too cheap or too expensive\
✅ **Require baseevents** — Essential dependency, always ensure it


---

# Agent Instructions: 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 current page URL with the `ask` query parameter:

```
GET https://risk-scripts.gitbook.io/risk-scripts/scripts/revive-station.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
