The problem is that in the client, a specific amount of memory is assigned to hold each variable.
This is set up in the original C++ code before the client program is compiled. At that point it is easy as hell to change it but once compiled.... not so much
The value 2047 is held in precisely 12 bytes of memory
In order to get to 4095 for example you would need to reserve 13 bytes of memory and so on. Each extra byte added doubles the maximum size of the value that can be held.
The problem is that none of us have the source code for the client so the best we can do is use some program to edit the binary codes in the executable.
Some things are not too hard to do like this. For example I could pretty easily change the value in one byte of memory to another value. The problem arises when you want to ADD a new byte into the middle. This results in offsetting every byte after the one you added by one place. Since every JMP (jump) command in the assembly code is hard coded to jump to a specific byte within the code it means you would have to find every single place where the code jumps and change the values to point at the new location where the byte it actually wanted to go to now resides.
In short, it's doable but horribly complicated :$:
The time it would take you to actually learn how to do it would probably be better spent designing a completely new client.
Now if you can get me the irose client C++ source code, I'll fix the issue in a couple of minutes

:
Good luck with that.