My scripts

Forum rules
Please DO NOT POST BUGS on this forum. Please report (and vote) bugs on : https://boardgamearena.com/bugs
Post Reply
User avatar
undrgrndbg
Posts: 15
Joined: 21 July 2026, 16:22

My scripts

Post by undrgrndbg »

If you are playing on a desktop, and want some key bindings on navigation, scrolling thru the event logs, etc, I present my scripts.

You need to:
1. Install this chrome extension https://chromewebstore.google.com/detai ... ldmpobfkfo
2. Open the tampermonkey dashboard.
3. Click the the + button on the top right.
4. Paste and save:

Code: Select all

// ==UserScript==
// @name         Board Game Arena - Nemesis Retaliation navigation keyboard bindings
// @namespace    https://boardgamearena.com/gamepanel?game=nemesisretaliation
// @version      2026.07.31
// @description  ⬅️ navigate back to main board | ⬆️ or ⬇️ navigate thru the player boards | ➡️ toggle help | CTRL/CMD+K toggle chat | PageDown see more event logs (you need to click 1 event log first)
// @author       undrgrndbg
// @match        https://boardgamearena.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=boardgamearena.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';


    // Track the current position in the DOM order sequence (-1 means inactive)
    let currentIndex = -1;
    let chatblock = 'none';

    function isTypingInField(event) {
        const target = event.target;
        if (!target) return false;

        const tagName = target.tagName;
        if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {
            return true;
        }

        if (target.isContentEditable) {
            return true;
        }

        return false;
    }

    document.addEventListener('keydown', function(event) {
        if (isTypingInField(event)) {
            return;
        }

        if (event.key === 'PageDown') {
            event.preventDefault();
            document.querySelectorAll('#seemorelogs_btn')[0]?.click();
        }

        if ((event.metaKey || event.ctrlKey) && event.key === 'k') {
            if (chatblock == 'none') {
                document.querySelectorAll('.chatwindowexpanded')[1].style.display = 'block';
                chatblock = 'block';
            } else {
                document.querySelectorAll('.chatwindowexpanded')[1].style.display = 'none';
                chatblock = 'none';
            }
        }


        if (event.key === 'ArrowRight') {
            document.querySelectorAll('#help-mode-chk')[0]?.click();
        }

        if (event.key === "ArrowLeft") {
            currentIndex = -1;
            window.scrollTo({
                top: 0,
            });

        }

        if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {

            // 1. Find all player boards exactly as they appear in the HTML document order
            const playerBoards = Array.from(document.querySelectorAll('.quick-access-btn[data-character]'));

            if (playerBoards.length === 0) return;

            // 2. Process key navigation with strict boundaries (no wrapping)
            if (event.key === 'ArrowDown') {
                if (currentIndex < playerBoards.length - 1) {
                    currentIndex++;
                }
                event.preventDefault();
            } else if (event.key === 'ArrowUp') {
                if (currentIndex > 0) {
                    currentIndex--;
                } else {
                    window.scrollTo({
                        top: 0,
                    });
                    currentIndex = -1;
                }
                event.preventDefault();
            }

            // 3. Target the current player board in the sequence and trigger a click
            const targetElement = playerBoards[currentIndex];

            if (targetElement) {
                targetElement.click();
                return;
            }
        }
    });
})();
5. Open BGA, click tampermonkey, click enable.
Post Reply

Return to “Nemesis: Retaliation”