Bolded part: I have no idea what you are doing there
Underlined part: Again, no idea
Italicized part: Truthfully, I would be lying if I said I understood this part as well
Okay well, do you know how a for loop works?
for(%variable = initial; %variable < condition; %variable += modify)
The first part is what you start the variable at, in this case it starts at 0. It checks to make sure it meets the condition, it's like an if statement that says go ahead if it's true. In this case, it's checking if it's less than the amount of clients in your server. If there is no one on your server, it wont run any of the code inside the loop because 0 is not less than 0. Then, it runs through all the code inside it. At the end, it comes back up to the top, changes the variable by the third part (in this case, it increases it by one) and runs it again until the middle part is false at which point it stops.
clientGroup is a group that holds all of the client objects. If you get the 0 (first) object from the group, it will be the first person on the f2 list when not sorted. This is also the first (oldest) person that connected. So, getObject() gets the client, %i tells it which client. From the for loop I explained earlier, you should know that %i increases by one until it's greater or equal to the amount of clients in the server. This means it will, one by one, get every client in the server. Your italicized part is the same thing, so yeah.