Publiczność: FiveM właściciele serwerów i deweloperzy
Trudność: Łatwy → Średniozaawansowany
Wynik: Lista dozwolonych oparta na rolach korzystająca z ról Discord (z opcjonalną czarną listą), minimalna konserwacja, jasne informacje zwrotne dla graczy.
Uwaga dotycząca wersji: Otwarte repozytorium
FAXES/DiscordWhitelistjest utrzymywane przez społeczność i ostatnio aktualizowane w 2022 roku. Nadal działa na wielu serwerach. Istnieje utrzymywana wersja komercyjna; jeśli potrzebujesz wsparcia\/SLA, rozważ ją. Ten przewodnik dotyczy darmowej wersji GitHub.
TL;DR
- Utwórz Discord Bot → włącz Server Members Intent → zaproś go na swój Discord.
- Skopiuj swoje ID Gildii (Serwera) I Role ID(s).
- Pobierz: FAXES\/DiscordWhitelist on GitHub → umieść go w
resources/→ skonfigurujserver.js. - Dodaj
ensure DiscordWhitelistdoserver.cfg(lub uruchom w txAdmin). - Test: dołącz bez roli (zablokowany) → dodaj rolę → dołącz ponownie (dozwolony).
Powiązane poradniki:
• FiveM Whitelist — Kompletny przewodnik (txAdmin, Scripts, DB)
• Jak utworzyć poziomy darowizn Discord
Dlaczego whitelistowanie oparte na Discord?
- Dynamiczny: Udzielaj\/odmawiaj dostępu poprzez dodawanie\/usuwanie roli Discord — bez edycji ACE ani DB.
- Skalowalny: Mods mogą zarządzać dostępem z Discord na urządzeniach mobilnych.
- Audytowalne: Historia ról + logi moderacji pokazują, kto komu udzielił dostępu.
Wymagania wstępne
- Serwer Discord (jesteś Adminem/Właścicielem).
- Serwer FiveM z txAdmin lub ręczną kontrolą.
- Gracze muszą mieć uruchomioną aplikację desktopową Discord podczas łączenia (aby FiveM ujawniła
discord:identyfikator).
Krok 1 — Utwórz bota Discord i włącz intencje
- Przejdź do folderu Portalu Dewelopera Discord → Nowa Aplikacja → nazwij go (np.,
FiveMX Whitelist Bot). - Dodaj bota (zakładka Bot) → Resetuj token → skopiuj Token bota (przechowuj bezpiecznie).
- W Uprzywilejowane intencje bramy, włącz Server Members Intent. (Intencja obecności nie jest wymagana.)
- Zaproś bota do swojego Discord: OAuth2 → Generator URL → Zakresy:
bot; Uprawnienia: minimalne (mogą być żadne poza dołączeniem). Użyj wygenerowanego URL i dodaj go do swojej gildii.
Bezpieczeństwo: Traktuj token bota jak hasło. Nie nie zatwierdzaj go w Git ani nie udostępniaj na zrzutach ekranu. Obracaj, jeśli wycieknie.
Krok 2 — Uzyskaj swoje identyfikatory (serwer i role)
- Na Discordzie → Ustawienia użytkownika → Zaawansowane → Tryb deweloperski: WŁĄCZONY.
- Kliknij prawym przyciskiem myszy nazwa serwera → Kopiuj ID serwera.
- Ustawienia serwera → Role → kliknij prawym przyciskiem myszy rolę, której użyjesz jako białą listę (np.,
Whitelisted) → Kopiuj ID roli. - (Opcjonalnie) Skopiuj identyfikatory dla wszystkich ról, które chcesz czarna lista (np.,
Banned).
Miej to pod ręką:
GUILD_ID = 123456789012345678WHITELIST_ROLE_IDS = ["111111111111111111", "222222222222222222"]BLACKLIST_ROLE_IDS = ["333333333333333333"]
Krok 3 — Pobierz i zainstaluj zasób
- Pobierz ZIP z FAXES/DiscordLista dozwolonych (GitHub).
- Wyodrębnij na swój serwer w:
resources/[discord]/DiscordWhitelist - Sprawdź, czy folder zawiera co najmniej:
fxmanifest.luaserver.jspackage.json
server.cfg (lub txAdmin Przepis / Startup):
# Start after your identifier providers and before join‑logic that depends on it ensure DiscordWhitelist
W txAdmin → Zasoby, zaznacz DiscordWhitelist aby uruchomić przy starcie (jeśli zarządzasz zasobami przez UI).
Planujesz swoją strategię dostępu? Przeczytaj nasz obszerniejszy przewodnik: FiveM Whitelist — Kompletny przewodnik (txAdmin, Scripts, DB) po alternatywy (ACE, DB, hybrydowe) i kiedy użyć każdego z nich.
Krok 4 — Skonfiguruj server.js
Otwórz resources/[discord]/DiscordWhitelist/server.js i ustaw blok konfiguracyjny. Plik może już udostępniać prosty obiekt konfiguracyjny — dostosuj wartości odpowiednio. Typowa konfiguracja wygląda następująco:
// DiscordWhitelist configuration — example
const config = {
botToken: "PASTE_YOUR_DISCORD_BOT_TOKEN_HERE",
guildId: "123456789012345678", // Your server (guild) ID
// Players must have at least ONE of these role IDs to join
whitelistRoles: [
"111111111111111111", // Whitelisted
// "222222222222222222", // Staff (optional)
],
// If a player has ANY of these roles, reject the connection
blacklistRoles: [
// "333333333333333333", // Banned
],
// Cache fetched role data to reduce Discord API calls (seconds)
cacheMaxTime: 90,
// Deferral messages
messages: {
noDiscord: "Open Discord and rejoin. Your Discord app must be running.",
notWhitelisted: "You are not whitelisted. Join our Discord: discord.gg/yourinvite",
blacklisted: "Access denied. Please contact staff.",
welcome: "Welcome — you are verified. Loading…"
},
};
Wskazówka dotyczącą monetyzacji: Jeśli twój serwer używa przywilejów, połącz to z Discord Donation Tiers aby zautomatyzować korzyści oparte na rolach dla supporterów/darczyńców.
Zapisz plik.
Krok 5 — Restart i test
- Zrestartuj tylko zasób lub cały serwer:
txAdmin → Restart resourcelub konsolarefreshnastępnierestart DiscordWhitelist. - Test negatywny: Spróbuj połączyć się bez rola białej listy → powinieneś zobaczyć komunikat o odroczeniu i zostać wyrzucony.
- Test pozytywny: Nadaj sobie rolę whitelist → rozłącz się → powinieneś zostać wpuszczony.
Opcjonalnie: Wiele ról i pominięcie personelu
- Dodaj kilka ról białej listy aby umożliwić wiele lejów sprzedażowych (np.,
Donator,Police,EMS). - Dodaj role na czarnej liście for hard blocks regardless of whitelist (e.g.,
Banned). - Możesz uwzględnić rola administratora w
whitelistRolesaby zweryfikować dostęp dla administratorów.
Wskazówki operacyjne
- Automatyzacja: Przypisz rolę Discord do swojego formularze zgłoszeniowe Lub ticket approvals (np. za pomocą bota, Formularze Google → webhook → dodanie roli).
- Doświadczenie gracza: Przypnij
#how-to-whitelistpost z ✅ wymaganiami roli i zaproszeniem na serwer. - Moderacja: Zapisuj zmiany ról w prywatnym
#mod-logskanał.
Rozwiązywanie problemów
“Bot offline” lub nigdy nie aktualizuje ról
- Token nieprawidłowy lub bot nie został zaproszony do poprawnej gildii.
- Server Members Intent nie włączono.
- Firewall blokuje wychodzące połączenia HTTPS z hosta gry (zezwalaj na Discord API).
“Nie znaleziono identyfikatora Discord” / wszyscy zablokowani
- Gracze muszą uruchomić Discord desktop app przed uruchomieniem FiveM. Poproś ich o ponowne uruchomienie Discord, a następnie FiveM.
Zmiany ról obowiązują dopiero po restarcie
- Zmniejsz
cacheMaxTimedo 30–60 sekund. - Jeśli ustawisz go bardzo nisko i nadal widzisz opóźnienia, sprawdź limity żądań i unikaj częstego restartowania.
Błąd 403/Uprawnienia podczas pobierania członków gildii
- Upewnij się, że bot znajduje się w docelowej gildii I Server Members Intent is enabled.
- Bot robi nie potrzebne uprawnienia administratora do odczytu ról członków.
Wysokie użycie API / ograniczanie szybkości
- Zwiększ
cacheMaxTime. Unikaj masowego wyrzucania/restartów, które spamują wywołania API.
Najlepsze praktyki bezpieczeństwa
- Przechowuj Token bota poza kontrolą wersji. Jeśli hostujesz konfiguracje samodzielnie, rozważ odczytywanie ich ze zmiennej środowiskowej lub konwaru server.cfg, a nie w postaci zwykłego tekstu zatwierdzonego w Git.
- Rotate token, jeśli zostanie ujawniony.
- Ogranicz, kto ma dostęp do zapisu zasobu.
Odinstaluj / Wyłącz
- Usuń
ensure DiscordWhitelistzserver.cfg(lub wyłącz w txAdmin → Zasoby). - Usuń folder z
resources/jeśli go wycofujesz.
Często zadawane pytania
Czy gracze potrzebują uruchomionego Discord?
Yes. Without the discord: identyfikator, skrypt nie może zweryfikować ról.
Jakich intencji potrzebuję?
Tylko Server Members Intent.
Czy mogę używać wielu ról whitelist?
Tak. Dostęp jest przyznawany, jeśli użytkownik ma dowolny z wymienionych ról.
Czy mogę twardo odmówić pewnych ról?
Yes. Add them to blacklistRoles.
Przestało działać po zmianie ról.
Niższy cacheMaxTime, a następnie przetestuj ponownie. Upewnij się, że bot jest online z poprawnym tokenem i serwerem gildii.
Czy istnieje utrzymywana wersja?
Tak. Istnieje komercyjna, aktywnie utrzymywana edycja, jeśli potrzebujesz aktualizacji/wsparcia.
Dodatek — Przykład server.cfg
# Discord whitelist ensure DiscordWhitelist # (Optional) put related Discord resources here as a block # ensure discord_perms # ensure discordrolesync
Appendix — Example Player Messaging (Deferrals)
Utrzymuj wiadomości krótkie i konkretne:
messages: {
noDiscord: "Open Discord and rejoin. Your Discord app must be running.",
notWhitelisted: "Not whitelisted. Apply in #how-to-whitelist → discord.gg/yourinvite",
blacklisted: "Access denied. Contact staff via ticket.",
welcome: "Verified — loading city…"
}
Dziennik zmian (widok edytora)
- v1.1 — Dodano naturalne linki wewnętrzne do Poziomów Darowizn, FiveM Kompletny Przewodnik po Whitelist i GitHub pobierania.
- v1.0 — Przewodnik początkowy: tworzenie bota, intencje, identyfikatory, instalacja, konfiguracja, testowanie, FAQ.
