Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/noskap/kojima-bot/llms.txt

Use this file to discover all available pages before exploring further.

Kojima Bot is designed to be re-skinned without touching core source files. You can rename the catchable entity, swap every piece of spawn artwork, add your own meme image slash commands, and tune how frequently spawns occur — all through environment variables, image file replacements, and Discord commands.

Renaming the entity

Set ENTITY_NAME in your .env file to change the name that appears everywhere the bot displays the catchable thing — spawn embed titles, catch confirmation messages, command descriptions, and the /profile header:
# .env
ENTITY_NAME=Kojima
If ENTITY_NAME is not set, it defaults to "Cat". The .env.example ships with Kojima as an illustrative value. By default, the catch trigger phrase is the lowercased value of ENTITY_NAME (so ENTITY_NAME=Kojima means users type kojima to catch). If you want a different phrase — for example, a nickname or a longer sentence — set CATCH_TRIGGER explicitly:
CATCH_TRIGGER=gotcha
Restart the bot after changing either variable for the new values to take effect.

Replacing spawn artwork

Spawn images live in assets/images/spawn/. Each rarity definition in src/lib/rarities.ts carries a fileKey string. When the bot prepares a spawn embed it resolves the image path like this:
  1. Look for assets/images/spawn/<fileKey>.jpg (or .jpeg, .png, .webp)
  2. If not found, also try assets/images/spawn/<fileKey>_cat.jpg (legacy fallback stem)
  3. Supported extensions in priority order: .jpg, .jpeg, .png, .webp
To replace a rarity’s artwork, drop a new file at assets/images/spawn/<fileKey>.jpg (or any supported extension). The bot picks it up on the next spawn — no restart required for the file itself, though a restart is needed if you are also changing code. The full table of rarities and their fileKey values:
Display namefileKeyWeight
Stylishstylish900
Sicksick700
Matrixmatrix550
Supersuper400
Drunkdrunk320
Bananabanana260
Chicken Hatchicken_hat220
Disguiseddisguised200
Crowbarcrowbar180
Exerciseexercise150
Valvevalve140
Combatcombat130
Mocapmocap110
Brokenbroken95
Rarerare85
Russianrussian75
Porterporter45
Alienalien40
Sushisushi30
Mexicanmexican25
Burgerburger18
Weedweed12
The Weight column indicates relative spawn frequency — higher weight means more common. The total weight across all 22 rarities is used to roll a weighted random pick on each spawn.

Adjusting spawn intervals

Spawn timing is stored per-channel in the database. The defaults (60 s minimum, 450 s maximum) are written when /kojima setup is first run in a channel. To change the interval for any channel at runtime, use the /kojima interval command directly in Discord (requires Manage Channels permission):
/kojima interval min:30 max:180
This updates the channel’s spawn_times_min and spawn_times_max values immediately — no restart needed.

Adding meme images

Drop image files into assets/images/meme/, then re-register slash commands and restart the bot:
bun run deploy   # re-register slash commands with Discord
bun start        # (or: pm2 restart kojima-bot)
Each image file in that directory is automatically turned into a slash command. See Meme Commands for details on naming conventions and how the commands behave.

Fallback image

If a rarity’s asset file is missing entirely, the bot applies a two-stage fallback:
  1. It tries the first rarity in the RARITIES list (stylish) instead.
  2. If that file is also missing, it falls back to assets/images/cat.png.
Keep assets/images/cat.png present at all times to ensure spawns never silently fail with a broken attachment.
You can run multiple instances of Kojima Bot in separate servers with different .env files for completely different themes per server.

Build docs developers (and LLMs) love