[REQUEST] BunnyHop / AutoHop for SpearMint / ioquake3, can you add it please?

I know some hate it.
Quake Champions and Quake Live has it feature incorporated.
For me (and at least many others) autohop/bunnyhop are very comfortable, because i don’t need to constantly press the space (or whatever key you have binded to +moveup).

Making more enjoyable to make some acrobatics or simply move fastly around the maps.

I’ve done it inyecting the following code to Quake 3 1.32 vanilla…

#include "pch.h"
DWORD FL_ONGROUND = (DWORD)GetModuleHandle(L"quake3.exe") + 0x75A74C;
int* ground = (int*)FL_ONGROUND;

DWORD JUMP = (DWORD)GetModuleHandle(L"quake3.exe") + 0x80B7B0;
int* jump = (int*)JUMP;

DWORD WINAPI BunnyHop(LPVOID x)
{
    while (1)
    {
        if (GetKeyState(VK_SPACE) & 0X80000)
        {
            if (*ground < 1)
            {
                *jump = 1;
            }
            else
            {
                *jump = 0;
            }
        }
        else
        {
            *ground = 0;
            *jump = 0;
        }
        Sleep(1);
    }
}

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    {
        CreateThread(NULL, 0, BunnyHop, NULL, 0, NULL);
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

Here’s and example of gameplays:
Quake 3 DLL injected bunny hop

But the DLL injection don’t work perfectly.
Because the iteration is interrupted when we press backward [+back ]
So the auto bunnyhop stop and even the jump function don’t respond sometimes.
But, if we press forward [ +forward ] or left or right [ +moveleft / +moveright ] the code will work again and auto bunnyhop comeback correctly.

I think some other memory function are relationed with jump action [ +moveup ]

Quake Live bunny hop

Quake Champions bunny hop

Quake Live manage this with two cvars:
pmove_bunnyhop 1/0
pmove_autohop 1/0

Is feasible do this?

ioquake3 doesn’t do gameplay changes like this that would make the gameplay incompatible with baseq3.

I know I know… the same thing told me the Quake3e people…

BUT! from those discussion appears a nice idea, that have the:
“Perfectly Balanced mod/baseq3, As All Things Should Be…”

I say:
Implement BunnyHop in the gamecode but only make it accessible from a server-side cvar or via a dmflags value.
And make the BunnyHop set to disabled by default.

What do you think now?
This is the most friendly conservate way to not altering the base game.

So this would be a fine mod to make, and you or someone else can make it, but it is unlikely to be part of ioquake3.