What is Discovery Bot?

It’s a modular DayZ role-play assistant that connects in-game presence with Discord: POIs, quests, bulletin boards, and rich broadcasts. Built for speed, safety, and scalability.

Per-Channel Logging

Cleanly separate POI, Quest, and Bulletin logs into channels you choose.

Multi-Guild Multi-Server

Designed to power many communities without cross-talk.

Secure & Audited

Only the minimum permissions required, with thorough logging.

MongoDB Backed

Reliable persistence for POIs, NPCs, players, and logs.

Tech Stack

Why Discovery Bot?

Discovery Bot connects your DayZ world to Discord with console-safe automation and immersive features. It reads ADM logs, respects server limits, and turns locations into living content: POIs, NPC Quests, Bulletin Boards, and server Broadcasts — all with clean, per-channel logging.

POIs that Tell Stories

Players entering POIs can receive lored DMs, unlock channels, and contribute to stats and leaderboards.

NPC Quest System

Quest zones that DM players on entry with Accept/Later/Refuse. Admin approval flow and optional reward roles.

Bulletin Boards

Anonymous posts inside safe RP zones. Entry grants access and a DM prompt; exit removes access cleanly.

Nitrado Integration

Automated restarts, server restarts on-demand, and safety checks — with rich alerts and clean embeds.

Broadcasts & Radio

Text/MP3/Voice broadcasts and scheduled radio slots. Announce in text and play in voice channels.

Clean Logs & Safety

Per-channel logs (POI/Quest/Bulletin), reduced noise, and scoped permissions for privacy and control.

Core Systems

Points of Interest (POIs)

Create zones with radius, lore, and optional discovery images. Track entries/exits, distance, and stats.

/addpoi <server_name> <name> <x> <z> [radius] [embed_image] [embed_title] [embed_description]

NPC Quests

Spawn quest zones that DM players with interactive buttons. Approve/Reset via admin tools.

/createquest <server_name> <npc_name> <x> <z> <radius> <quest_name> <dialogue_id>

Bulletin Boards

Anonymous posting in RP zones; auto role/channel access on entry; image viewer and moderation.

/bulletin_create <name> <x> <z>

Online Players & Voice

Track ALL players online from ADM PlayerList. Optional voice channel with total player count.

/plon <server_name>   ·   /plon_vc_create <server_name>

Server Tools

Add Nitrado servers, set maps, restart servers, and schedule automated restarts with alerts.

/add_server · /set_map · /restart_server · /setautorestart

Broadcasts

Text/MP3/Voice broadcasts, plus scheduled radio with interval playback. Optional role pings.

/broadcast text|mp3|voice · /broadcast schedule

Discovery Zones

Create zones that DM players on entry with configurable embeds. Useful for tutorials, warnings, or lore.

/discovery_zone create
/discovery_zone edit
/discovery_zone list
/discovery_zone delete

Discoverables (Notes & Tapes)

Place interactive notes or audio tapes in‑world. Optional prop spawn (Paper/Cassette) via JSON with cleanup.

/note create · /tape create
/note list|edit|delete
/tape list|edit|delete

Quick Setup Guide

Follow these steps to get Discovery Bot running smoothly. Admin permissions are required for setup commands.

1) Connect & Subscribe

2) Register Your Server

Run the following command and fill in all fields accurately.

/add_server server_name:<Alias> token:<NitradoToken> server_id:<ID> [map:<MapName>]

3) Configure Log Channels

Bind dedicated channels for clean logs (optional but recommended).

/set_poilogchannel #poi-logs
/set_questlogchannel #quest-logs
/set_bulletinlogchannel #bulletin-logs

4) Link Players

Link Discord users to in‑game names (required for POI/Quest DM flows).

/linkplayer <server_name> <ingame_name> @user

5) Add Your First POI

Create a POI with location and optional radius and imagery.

/addpoi <server_name> <poi_name> <x> <z> [radius] [embed_image] [embed_title] [embed_description]

6) Enable Bulletin Boards (Optional)

Create a bulletin board zone; entering grants posting access and a DM prompt.

/bulletin_create <board_name> <x> <z>

7) NPC Quest Starter (Optional)

Define a quest zone that DMs players on entry with Accept/Refuse buttons.

/createquest <server_name> <npc_name> <x> <z> <radius> <quest_name> <dialogue_id>

8) Automated Restarts (Optional)

Set periodic restarts with multi-stage alerts (10/5/1 mins) and a restart message.

/setautorestart <server_name> <interval_hours> <#alert_channel> [message]

Admin Quick Commands

Servers

/list_servers
/restart_server <server_name>
/set_map <server_name> <map>

Auto Restarts

/viewautorestarts [server_name]
/editautorestart <task_id> [interval] [#channel] [message] [enabled]
/removeautorestart <task_id>

Moderation

/ban @user [reason]
/kick @user [reason]
/purge <amount> [reason]

Security & Privacy

FAQ

Do I need a Nitrado token?

Yes, for server tools (restarts, status, restarts scheduler). POIs/Quests/Bulletin need ADM logs enabled.

Does this work on console?

Yes. The bot is designed around console DayZ servers and ADM log behavior.

Can I use multiple servers per guild?

Yes, based on your subscription plan. Use /add_server for each and select the correct server_name in commands.

How do automated restarts alert players?

The scheduler posts alerts at 10, 5, and 1 minute before the restart, then a final “Restarting” message.

Where do I get help?

Open a setup ticket via our Discord support channel or use the Contact page to reach the team.

What’s the difference between /spawn_event and /spawn_json?

/spawn_event writes XML events (vehicles, statics, infected, items) and can run on a schedule, including toggle windows for infected. /spawn_json uploads a JSON object spawner file for exact object placement (items/props) at coordinates, and adds it to cfggameplay.json.

How do auto-deletes and JSON cleanup work?

When using /spawn_json, you can set an auto-delete time (minutes). The bot tracks and removes the JSON and its cfggameplay.json reference automatically. You can also remove any JSON later via /remove_json (with optional gameplay reference cleanup).

How safe are /editgameplayjson and /globals_edit?

Both commands download, edit, and upload with backups. Edits are scoped to known fields. You can still roll back manually by restoring your saved backup if needed.

What paths can I use with /getserverfile and /uploadserverfile?

These commands are limited to root/custom/db/env/config and the mission folder. Uploads create a timestamped backup before replacing files.

How does File Rotation work?

/rotate_file creates variants for a target file and manages switching them live. /rotate_file_list shows active rotations. /rotate_file_rollback restores the original and cleans up variants and gameplay references.

Who can create Notes & Tapes? Are there cooldowns?

Players can use /note create and /tape create. A 24‑hour per‑user cooldown applies to create; administrators bypass the cooldown. List/Edit/Delete remain admin‑only.

Do Notes & Tapes need a Y (height) value?

Only if you enable prop spawning (spawn_prop:y) to place a Paper/Cassette object. Without prop spawn, Y is optional and the discoverable still works.

What do Discovery Zones send to players? Is there spam control?

Zones DM an embed on entry. The bot rate-limits repeated notifications for the same user/zone. You can edit or delete zones anytime via /discovery_zone.

How do infected toggles work in /spawn_event?

Choose category “Infected” and provide activation_minutes. The horde is active for the window, then deactivates. With an interval set, the schedule re‑activates per cycle.

Why does the Location command show X/Z and a Y now?

/location reads ADM logs and reports X/Y/Z. The map link uses X/Z; Y is shown for admins who need precise spawn heights.

My map link looks off — what should I check?

Ensure your server’s map is set correctly via /set_map. The map URL is based on X/Z and the configured map (Chernarus, Livonia, Sakhal).

Who can use the web dashboard?

Only Discord users who share a guild with the bot and either have Administrator permission or hold a role whose name matches Staff,Moderator,Admin,Owner. Normal players cannot see guild/server data.

How does dashboard login work?

The dashboard uses Discord OAuth2. When you click “Login with Discord” it sends you to discord.com/oauth2/authorize. After you approve, the bot exchanges the code using your client secret and creates a short‑lived session + CSRF token. No passwords are stored.

Why does the dashboard show 401 / 403 or an empty server list?

401 usually means you’re not logged in or the session expired — click “Login with Discord” again. 403 or an empty list typically means your Discord account is not an admin/staff in that guild, or the bot is not in the same guild. Check roles, permissions, and that the bot is online.

Is the dashboard safe to expose over HTTPS?

Yes — it only listens behind HTTPS on www.discovery-bot.co.uk, uses CORS restrictions, HTTP‑only cookies, CSRF tokens, and validates every request against your Discord ID and guild membership. Nitrado tokens are never returned to the browser.

NEW Commands & Features

Server Files & Config

  • /getserverfile — Admin: Download a file from root/custom/db/env/config
  • /uploadserverfile — Admin: Upload a file to root/custom/db/env/config with backup
  • /editgameplayjson — Admin: Edit cfggameplay.json (stamina, build anywhere, UI, map, vehicle)
  • /globals_edit — Admin: Edit globals.xml fields with backup & safe upload

Event & JSON Spawning / Removal

/spawn_event create server_name:<server> category:<Vehicle|Static|Item|Infected> type:<Classname> x:<X> z:<Z> [quantity] [territory_radius] [interval_minutes] [activation_minutes] [cleanup_minutes]
  • /spawn_event list <server_name> — List scheduled spawns
  • /spawn_event delete <id> — Delete a scheduled spawn by ID
  • /spawn_event rollback <id> — Remove last created XML blocks and disable it
  • /spawn_json — JSON object spawner (guided modal): items, filename, position (my_location/manual), auto‑delete, server upload
  • /remove_json — Remove any JSON in /custom; optional cfggameplay reference cleanup

File Rotation

  • /rotate_file — Create a rotation for a target file
  • /rotate_file_list — List active file rotations
  • /rotate_file_rollback — Restore original, delete variants, fix cfggameplay reference

Discovery Zones

  • /discovery_zone create — Create a custom discovery alert zone (DM on entry)
  • /discovery_zone edit — Edit coordinates/radius/embed of a discovery zone
  • /discovery_zone list — List all discovery zones for a server
  • /discovery_zone delete — Delete a discovery zone

Discoverables — Notes & Tapes

Notes

  • /note create — Create a discoverable note: title, text, coordinates, optional radius, expiry, optional Paper prop spawn (spawn_prop:y with Y coord)
  • /note list — List discoverable notes for a server
  • /note edit — Edit a note (title, text, coords, radius, expiry). Does not respawn prop.
  • /note delete — Delete a note; removes gameplay reference and its custom JSON prop file if spawned

Tapes

  • /tape create — Create a discoverable audio tape: title, MP3 (≤8MB), coords, optional radius, expiry, optional Cassette prop spawn (spawn_prop:y with Y coord)
  • /tape list — List discoverable tapes for a server
  • /tape edit — Edit a tape (title, MP3 file, coords, radius, expiry). Does not respawn prop.
  • /tape delete — Delete a tape; removes gameplay reference and its custom JSON prop file if spawned

Prop Spawn JSON Format

{
  "Objects": [
    {
      "name": "Paper | Cassette",
      "pos": [x, y, z],
      "ypr": [0, 0, 0],
      "scale": 1,
      "enableCEPersistency": 0,
      "customString": ""
    }
  ]
}

Expiry & Consumption
On first find or expiry, the gameplay reference and the custom JSON file are automatically removed.

Admin Dashboard

The dashboard is a secure web control panel for Discovery Bot. It connects directly to your bot API and database so you can manage everything without running slash commands.

URL & Access

Open Admin Dashboard

  • Login via Discord OAuth2 — no extra account needed.
  • Works only if the bot is online and the API is reachable.
  • Session is stored in an HTTP‑only cookie with CSRF protection.

Permissions & Roles

  • You must be in the guild with the bot.
  • You must either:
    • Have the Discord Administrator permission; or
    • Hold a role whose name is listed in the bot’s DASHBOARD_ALLOWED_ROLES env var.
  • Non‑staff logins will succeed, but server lists will be empty / show “forbidden”.

What It Controls

  • Guilds & servers you have permission on.
  • Linked players and per‑player stats (including POIs, bulletins and quests).
  • POIs, quests, bulletin boards, discovery zones, discoverables.
  • Events, file rotations, JSON spawns.
  • Nitrado files: browse/download/upload, edit cfggameplay/globals, apply presets, configure auto‑restarts.

Note: The dashboard never asks for your Nitrado login. Tokens stay inside the bot’s config and are not visible from the browser.