/find resource [name] – Search thousands of CFX resources (scripts, maps, vehicles, etc.).
✅ Returns: downloads, author, version, category, and rating.
Let’s walk through the complete setup. We assume you have "Manage Server" permissions in Discord.
If you're looking for a bot that integrates CFX (or FiveM) and a finder tool within Discord, here are some features you might expect:
Want to run your own instance?
GitHub Repo: github.com/yourusername/cfx-finder-bot-full (Replace with actual URL) cfx+finder+discord+bot+full
Requirements:
Quick Start:
git clone https://github.com/yourusername/cfx-finder-bot-full
cd cfx-finder-bot-full
npm install # or pip install -r requirements.txt
cp .env.example .env
# Edit .env with your tokens
node index.js # or python bot.py
Every search is logged – track what your community is looking for. Great for analytics. /find resource [name] – Search thousands of CFX
// index.js const Client, GatewayIntentBits, SlashCommandBuilder = require('discord.js'); const axios = require('axios');const client = new Client( intents: [GatewayIntentBits.Guilds] );
client.once('ready', () => console.log(
✅ Logged as $client.user.tag); client.application.commands.set([ new SlashCommandBuilder() .setName('server') .setDescription('Get info about a FiveM server') .addStringOption(opt => opt.setName('endpoint').setDescription('IP:Port').setRequired(true)), new SlashCommandBuilder() .setName('player') .setDescription('Find player by license or name') .addStringOption(opt => opt.setName('query').setDescription('License or name').setRequired(true)) ]); );client.on('interactionCreate', async interaction => if (!interaction.isCommand()) return; Quick Start: git clone https://github
if (interaction.commandName === 'server') const endpoint = interaction.options.getString('endpoint'); await interaction.deferReply(); try const info = await axios.get(`https://servers-frontend.fivem.net/api/servers/single/$encodeURIComponent(endpoint)`); const data = info.data.Data; const embed = title: data.hostname, fields: [ name: 'Players', value: `$data.clients/$data.sv_maxclients`, inline: true , , name: 'Resources', value: `$data.resources?.length `, inline: true ], thumbnail: '' , url: `https://cfx.re/join/$endpoint` ; await interaction.editReply( embeds: [embed] ); catch (err) await interaction.editReply('❌ Server not found or offline.'); if (interaction.commandName === 'player') const query = interaction.options.getString('query'); await interaction.deferReply(); try const res = await axios.get(`https://api.cfx.re/v1/players?identifier=$query`); const players = res.data; if (!players.length) return interaction.editReply('❌ No player found.'); const p = players[0]; await interaction.editReply(`👤 **$p.name**\nLicense: $p.license\nLast seen: $p.lastSeen`); catch await interaction.editReply('❌ API error.'););
client.login('YOUR_BOT_TOKEN');