Country Flags

Let players wear their nation's flag as a head cosmetic. ShyamDuels bundles player-head textures for every country below.

Developer API: Integrate flags in your plugin via ShyamDuelsProvider.require().country(). See CountryService, PlayerCountryChangeEvent and Code Examples (Example 12).

Commands

/countryflags              # Opens the flag selection GUI
/countryflags <country>    # Selects by full name or ISO code
/countryflags reset        # Resets to the default head
/flags flag <country>      # Alias syntax

All aliases (/countryflags, /countryflag, /flags, /country) require the shyamduels.country permission (default: all players). Selections persist per player and can be displayed in tab lists, scoreboards, and duels via the Country placeholders.

Auto-Detection

Resolution priority is cache → player_stats.country_code → player_country table → MaxMind GeoIP → UNKNOWN. Manual GUI selections are never overwritten by join resolves (country.update-on-join, default true). Private/loopback IPs are skipped, Velocity getClientAddress (with ::ffff: unwrap) is used behind proxies, and every change fires PlayerCountryChangeEvent (SELECT / RESET / GEOIP / JOIN_RESOLVE). Toggle visibility per player in /settings (flag-hidden set).

Supported Countries (224)

The list below contains the exact display names shown in-game. Each name can be used directly with /countryflags <name>, or its two-letter code:

NameCode NameCode NameCode
AfghanistanAFAlbaniaALAlgeriaDZ
AndorraADAngolaAOAnguillaAI
AntarcticaAQAntigua & BarbudaAGArgentinaAR
ArmeniaAMArubaAWAustraliaAU
AustriaATAzerbaijanAZBahamasBS
BahrainBHBangladeshBDBarbadosBB
BelarusBYBelgiumBEBelizeBZ
BeninBJBermudaBMBhutanBT
BoliviaBOBosnia & HerzegovinaBABotswanaBW
BrazilBRBritish Indian Ocean TerritoryIOBruneiBN
BulgariaBGBurkina FasoBFBurundiBI
CambodiaKHCameroonCMCanadaCA
Cape VerdeCVCaribbean NetherlandsBQCentral African RepublicCF
ChadTDChileCLChinaCN
ColombiaCOComorosKMCongo - BrazzavilleCG
Congo - KinshasaCDCook IslandsCKCosta RicaCR
CroatiaHRCubaCUCuraçaoCW
CyprusCYCzechiaCZCôte d’IvoireCI
DenmarkDKDjiboutiDJDominicaDM
Dominican RepublicDOEcuadorECEgyptEG
El SalvadorSVEquatorial GuineaGQEritreaER
EstoniaEEEswatiniSZEthiopiaET
Faroe IslandsFOFijiFJFinlandFI
FranceFRFrench GuianaGFFrench PolynesiaPF
GabonGAGambiaGMGeorgiaGE
GermanyDEGhanaGHGibraltarGI
GreeceGRGreenlandGLGrenadaGD
GuadeloupeGPGuatemalaGTGuernseyGG
GuineaGNGuinea-BissauGWGuyanaGY
HaitiHTHondurasHNHong Kong SAR ChinaHK
HungaryHUIcelandISIndiaIN
IndonesiaIDIranIRIraqIQ
IrelandIEIsraelILItalyIT
JamaicaJMJapanJPJerseyJE
JordanJOKazakhstanKZKenyaKE
KiribatiKIKuwaitKWKyrgyzstanKG
LaosLALatviaLVLebanonLB
LesothoLSLiberiaLRLibyaLY
LiechtensteinLILithuaniaLTLuxembourgLU
Macao SAR ChinaMOMadagascarMGMalawiMW
MalaysiaMYMaldivesMVMaliML
MaltaMTMarshall IslandsMHMartiniqueMQ
MauritaniaMRMauritiusMUMexicoMX
MicronesiaFMMoldovaMDMonacoMC
MongoliaMNMontenegroMEMoroccoMA
MozambiqueMZMyanmar (Burma)MMNamibiaNA
NauruNRNepalNPNetherlandsNL
New CaledoniaNCNew ZealandNZNicaraguaNI
NigerNENigeriaNGNorth KoreaKP
North MacedoniaMKNorwayNOOmanOM
PakistanPKPalauPWPalestinian TerritoriesPS
PanamaPAPapua New GuineaPGParaguayPY
PeruPEPhilippinesPHPolandPL
PortugalPTPuerto RicoPRQatarQA
RomaniaRORussiaRURwandaRW
RéunionRESamoaWSSan MarinoSM
Saudi ArabiaSASenegalSNSerbiaRS
SeychellesSCSierra LeoneSLSingaporeSG
Sint MaartenSXSlovakiaSKSloveniaSI
Solomon IslandsSBSomaliaSOSouth AfricaZA
South KoreaKRSouth SudanSSSpainES
Sri LankaLKSt. BarthélemyBLSt. Kitts & NevisKN
St. LuciaLCSt. Pierre & MiquelonPMSt. Vincent & GrenadinesVC
SudanSDSurinameSRSwedenSE
SwitzerlandCHSyriaSYSão Tomé & PríncipeST
TaiwanTWTajikistanTJTanzaniaTZ
ThailandTHTimor-LesteTLTogoTG
TongaTOTrinidad & TobagoTTTunisiaTN
TurkmenistanTMTuvaluTVTürkiyeTR
U.S. Virgin IslandsVIUgandaUGUkraineUA
United Arab EmiratesAEUnited KingdomGBUnited StatesUS
UruguayUYUzbekistanUZVanuatuVU
Vatican CityVAVenezuelaVEVietnamVN
Wallis & FutunaWFYemenYEZambiaZM
ZimbabweZWÅland IslandsAX