Iβm going to write this in psudo code as Iβm doing homework rn but how iβd do it is
when you press Q or E, you change a value, that value determines what move set your using.
You would store what binds they have for each set, and all possible binds. This is a way you could set it up:
client-
--Client would act as normal, telling the server what keys it presses
server-
local CurrentSet = 1 --1 = default, 2 = Q, 3 = E.
local Binds = {
[1] = {
[Enum.KeyCode.R] = "Move1";
};
[2] = {
[Enum.KeyCode.R] = "Move2";
};
[3] = {
[Enum.KeyCode.R] = "Move3";
};
}
local BindKeys = {
[1] = Enum.KeyCode.R;
}
function InputRecieved(Input)
if Input == Enum.KeyCode.Q then
if CurrentSet == 2 then CurrentSet = 1 else CurrentSet = 2 end
elseif Input == Enum.KeyCode.E then
if CurrentSet == 3 then CurrentSet = 1 else CurrentSet = 3 end
elseif table.find(BindKeys, Input) then --Checks to see if the input is a move bind
ActivateMove(Binds[CurrentSet][Input]) --Gets the set of binds, then gets the name of the move from the input key.
end
end
I hope this helps, and if you have any questions just ask. I can further explain any part of this.