In that case, code it like this :
[Command]
name = "Charged 1"
command = ~30$D,U,a
[Command]
name = "Uncharged 1"
command = $D,U,a
[Command]
name = "Charged 2"
command = ~30$B,F,a
[Command]
name = "Uncharged 2"
command = $B,F,a
[Statedef -1]
[State -1]
Type=Changestate
Trigger1=ctrl || (Stateno=[1000,2999])
Trigger1=command="Uncharged 1" || command="Charged 1"
Trigger1=additional conditions for move 1
value=1000+1000*((Stateno=[2000,2999]) || (command="Charged 1"))
[State -1]
Type=Changestate
Trigger1=ctrl || (Stateno=[1000,2999])
Trigger1=command="Uncharged 2" || command="Charged 2"
Trigger1=additional conditions for move 2
value=1010+1000*((Stateno=[2000,2999]) || (command="Charged 2"))
...same for the remaining moves if there are more than 2.
All non-charged moves use states 1000-1999 and charged ones use 2000-2999, and the difference between the charged and uncharged move state number is always 1000.
So in the example,
1000 - Uncharged move 1
1010 - Uncharged move 2
1020 - Uncharged move 3
...
2000 - Charged move 1
2010 - Charged move 2
2020 - Charged move 3
...
In the line with ctrl, write the actual state numbers and conditions you want the move to be available from, the example allows cancelling any move into any other move at any time.