How to make a Discord member country map
A Discord map bot can help a community see its broad reach without asking the bot to guess where anyone lives. Country Map is a country-level community map, not an individual-pin map: members voluntarily save one country choice per server after explicitly supplying consent:true. Its private output shows qualifying country totals and approximate aggregate markers, never member locations, names, IP lookups, profile inference, or a verified census.
Start freeStart free. Pro is $9.99/month.
Before you start
- Have access to the Discord application for a Build Discord Bots bot and a server where you can add it. Country Map is a Free module, so this setup does not require Pro.
- Decide how you will invite voluntary participation. Do not present this as location detection: members choose a two-letter ISO country code, or ZZ for unknown or prefer not to say.
Create a bot, add Country Map, and start it
Start by signing up for Build Discord Bots, then create a bot from the dashboard. Open that bot’s Modules tab and select Country Map. If you add it to an existing bot, use the dashboard’s normal regenerate workflow so the generated bot includes the module.
Use the dashboard’s invite flow to add the bot to the server you manage, then start it from the bot page. Wait until its status is online before testing. Country Map is Free; you do not need a Pro subscription to select it.
Enable voluntary country choices
Open the bot’s Modules tab, select Country Map if needed, and open its Settings. Choose the intended server, turn on Enable country choices, then save. New and existing servers start with country choices off, so /countrymap set and /countrymap view remain unavailable until this setting is saved for that server.
The setting enables a member-controlled choice, not automatic collection. The module never derives a country from an IP address, Discord profile, or messages. The bot’s private slash-command replies do not require an additional privileged intent or a special bot permission declared by this module.
Set the aggregate display threshold
Set Minimum choices per visible country to a number from 3 through 20. The default is 3. A country below that minimum is omitted from both the map markers and listed country totals, then combined into a hidden total. ZZ is tracked as an unknown total rather than a visible country marker.
Set Saved choices per server from 1 through 10,000; the default is 1,000, and the same bounds apply on every tier. Each member can have one saved record in a server. Lowering this limit keeps existing choices and still lets members update or remove their own choice, although a new record cannot be added once the limit is full.
Invite members to share only if they want to
A member who wants to participate runs /countrymap set country:SE consent:true, replacing SE with their chosen two-letter ISO code. The consent value must be true or the module rejects the save. Running the command again updates that member’s single saved choice for this server; it does not create a country history.
Explain that members can use ZZ when they prefer unknown or not to say, and that people who never submit a choice are not counted. The module offers no member-name directory or member-level export. It is appropriate to make participation optional and to avoid claiming that results identify where individual members are.
View the private aggregate map
Run /countrymap view, optionally with page:1 or another page number, to receive a private PNG map and aggregate country totals. The list has up to 15 visible countries per page. Circle size represents the saved aggregate count for a qualifying country, while marker placement is an approximate country location rather than a member location or a political-border assertion. The module does not place an individual member pin.
The response includes the total saved choices, the hidden small-group total, and the unknown total. It never renders user IDs or suppressed country codes. A member can still share an image after receiving it, so a private reply does not retract an image someone already chose to distribute.
Support updates, removal, and clearing
A member can run /countrymap remove to delete their own choice. Removal continues to work while Enable country choices is off as long as Country Map remains selected for the bot and server. Saving a new country and viewing the aggregate are paused while the per-server setting is off.
A server manager with Manage Server can permanently delete every saved choice for that server with /countrymap clear confirm:true. That does not affect another server. Choices are retained across restarts until removed or cleared, including after a member leaves, so treat this permanent operation deliberately and only with its explicit confirmation.
Frequently asked questions
Does the Discord country map bot detect a member’s location?
No. A member explicitly chooses and consents to a country code. The module does not use IP lookup, profile inference, or message analysis.
Does this Discord world map bot place a pin for each member?
No. /countrymap view returns a private aggregate PNG map. Its markers are approximate country locations sized by qualifying country counts, not individual member locations or personal pins.
When does a country appear on the map?
Only when its non-ZZ saved choice count meets the server’s minimum, which can be set from 3 to 20 and defaults to 3. Smaller groups are hidden from the map and list.
Is Country Map Free or Pro?
Country Map is a Free module. You do not need Pro to select it, configure country choices, or use its country map commands.
Can members remove their country choice?
Yes. /countrymap remove deletes the caller’s own choice, including while new choices and views are disabled for the server. A Manage Server user can clear all choices with /countrymap clear confirm:true.
