{"id":293786,"date":"2026-04-22T12:29:39","date_gmt":"2026-04-22T12:29:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gamequery-server-lists\/"},"modified":"2026-04-22T15:48:01","modified_gmt":"2026-04-22T15:48:01","slug":"gamequery-servers-lists","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/gamequery-servers-lists\/","author":23470968,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.6","stable_tag":"0.1.6","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"GameQuery Server Lists","header_author":"pbdaemon","header_description":"Build reusable GameQuery-powered server lists and embed them with shortcodes.","assets_banners_color":"","last_updated":"2026-04-22 15:48:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/gamequery.dev","header_author_uri":"https:\/\/profiles.wordpress.org\/pbdaemon\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":115,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"0.1.5":{"tag":"0.1.5","author":"pbdaemon","date":"2026-04-22 12:32:53"},"0.1.6":{"tag":"0.1.6","author":"pbdaemon","date":"2026-04-22 15:48:01"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.5","0.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3513005,"resolution":"1","location":"assets","locale":"","width":1898,"height":947},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3513005,"resolution":"10","location":"assets","locale":"","width":1902,"height":940},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3513005,"resolution":"11","location":"assets","locale":"","width":1899,"height":938},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3513005,"resolution":"12","location":"assets","locale":"","width":1901,"height":940},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3513005,"resolution":"2","location":"assets","locale":"","width":1918,"height":943},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3513005,"resolution":"3","location":"assets","locale":"","width":530,"height":830},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3513005,"resolution":"4","location":"assets","locale":"","width":1743,"height":882},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3513005,"resolution":"5","location":"assets","locale":"","width":1915,"height":937},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3513005,"resolution":"6","location":"assets","locale":"","width":1892,"height":941},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3513005,"resolution":"7","location":"assets","locale":"","width":1901,"height":942},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3513005,"resolution":"8","location":"assets","locale":"","width":1914,"height":940},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3513005,"resolution":"9","location":"assets","locale":"","width":1915,"height":940}},"screenshots":[]},"plugin_section":[],"plugin_tags":[],"plugin_category":[],"plugin_contributors":[260821],"plugin_business_model":[],"class_list":["post-293786","plugin","type-plugin","status-publish","hentry","plugin_contributors-pbdaemon","plugin_committers-pbdaemon"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/gamequery-servers-lists.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-1.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-2.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-3.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-4.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-5.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-6.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-7.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-8.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-9.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-10.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-11.png?rev=3513005","caption":""},{"src":"https:\/\/ps.w.org\/gamequery-servers-lists\/assets\/screenshot-12.png?rev=3513005","caption":""}],"raw_content":"<!--section=description-->\n<p>GameQuery Server Lists is a free, open-source WordPress plugin released under GPL-2.0-or-later.\nIt is built for gaming blogs and community websites that want a fast, reliable way to promote game servers.<\/p>\n\n<p>With this plugin, a site owner can add server addresses, select the game, and publish a server list in minutes.\nLists can be embedded anywhere with shortcodes and integrated in widget areas across pages.<\/p>\n\n<p>WordPress admins can embed lists with:<\/p>\n\n<ul>\n<li><code>[wpgs_list_123]<\/code><\/li>\n<li><code>[wpgs_list id=\"123\"]<\/code><\/li>\n<\/ul>\n\n<p>Key features include:<\/p>\n\n<ul>\n<li>One-click secure GameQuery account connection with API key selection.<\/li>\n<li>Multi-game list support with templates and background refresh via WP-Cron.<\/li>\n<li>Built-in analytics for views and clicks.<\/li>\n<li>Campaign goal automation that can auto-hide a server list after owner-defined click\/view limits are reached.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to GameQuery services for account connection, server data fetching, and game catalog lookup.<\/p>\n\n<ol>\n<li><p>GameQuery API (<code>https:\/\/api.gamequery.dev<\/code>) is used to fetch server payload data and the games catalog.<\/p>\n\n<ul>\n<li>Data sent on server fetch requests: configured <code>game_id<\/code> values, configured server <code>IP:PORT<\/code> values, API account email, API token, and selected API plan.<\/li>\n<li>Data sent on games catalog requests: no user identifiers or personal data; only a GET request for available games.<\/li>\n<li>Trigger: when list cache is refreshed (WP-Cron or cache miss) and when games catalog cache refreshes.<\/li>\n<li>Terms of Service: https:\/\/gamequery.dev\/terms-of-service<\/li>\n<li>Privacy Policy: https:\/\/gamequery.dev\/privacy-policy<\/li>\n<\/ul><\/li>\n<li><p>GameQuery account service (<code>https:\/\/gamequery.dev<\/code>) is used when an admin connects an account from plugin settings.<\/p>\n\n<ul>\n<li>Data sent: site URL, admin URL, plugin version, PKCE\/session metadata, and temporary authorization\/session tokens during the connect flow.<\/li>\n<li>Trigger: only after an admin clicks the connect button.<\/li>\n<li>Terms of Service: https:\/\/gamequery.dev\/terms-of-service<\/li>\n<li>Privacy Policy: https:\/\/gamequery.dev\/privacy-policy<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Upload plugin files to <code>\/wp-content\/plugins\/gamequery-servers-lists<\/code>, or install through your deployment process.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>In <code>WPGS -&gt; Settings<\/code>, connect your account with the one-click GameQuery popup (or use manual credentials).<\/li>\n<li>Create lists in <code>WPGS -&gt; Lists<\/code>.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>0.1.6<\/h4>\n\n<ul>\n<li>Security: stop pre-filling the API token field in Settings; the stored value is no longer echoed into the HTML. A \"(saved)\" indicator and optional \"Clear saved token\" checkbox replace the old behavior.<\/li>\n<li>Security: restrict the Account Base URL and API Base URL settings to <code>gamequery.dev<\/code> hosts by default and block loopback\/private\/link-local targets. Define <code>WPGS_ALLOW_CUSTOM_API_URL<\/code> in <code>wp-config.php<\/code> to opt-in to custom hosts for staging\/dev setups.<\/li>\n<li>Security: require <code>https:\/\/<\/code> for the default GameQuery endpoints and reject URLs containing embedded credentials.<\/li>\n<\/ul>\n\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Remove per-list Custom CSS input and all frontend <code>&lt;style&gt;<\/code> injection paths.<\/li>\n<li>Replace admin inline <code>&lt;script&gt;<\/code> blocks with <code>wp_enqueue_script()<\/code> + <code>wp_add_inline_script()<\/code>.<\/li>\n<li>Move admin menu to a lower position in the WordPress sidebar.<\/li>\n<li>Escape stats progress bar output at render time with <code>wp_kses()<\/code>.<\/li>\n<li>Prefix shortcode names to <code>wpgs_list<\/code> and <code>wpgs_list_{id}<\/code>.<\/li>\n<li>Add explicit external service disclosure with data usage plus Terms\/Privacy links.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Replace browser datalist behavior with a dedicated searchable game selector in Server Groups.<\/li>\n<li>Add manual Game ID override support while keeping automatic game-name to game-id mapping.<\/li>\n<li>Store the games catalog in WordPress DB and refresh it every 7 days.<\/li>\n<li>Update manual Game ID placeholder example to <code>minecraft<\/code>.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Add secure one-click GameQuery account connect flow with popup key selection.<\/li>\n<li>Add plugin account base URL setting for the connect flow.<\/li>\n<li>Harden connect security with ownership confirmation, endpoint rate limits, and connection alerts.<\/li>\n<li>Lock plan field to auto-detected value and auto-correct stale plan settings during API fetch.<\/li>\n<li>Improve Stats page with status filtering, search, and trash actions (single + bulk).<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Add widget support and shortcode rendering improvements.<\/li>\n<li>Add campaign goal controls and copy-IP display option.<\/li>\n<li>Improve cache-busting for admin\/frontend assets.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Improve cache-busting for admin\/frontend assets.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial MVP release.<\/li>\n<\/ul>","raw_excerpt":"Free, open-source GPL plugin for WordPress gaming sites to build and promote game server lists.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/293786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=293786"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pbdaemon"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=293786"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=293786"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=293786"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=293786"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=293786"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=293786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}