Parties are very simple. So simple, that they are hard to understand if you already know some other party system.
Basically, they don't even have to be created before using them.
Parties are defined directly in the party event or the
In such instruction strings the first argument is a number - range. It defines the radius where the party members will be looked for. A range of 0 will look for all players in the same world as the player who triggered the event. And a range of -1 will look for all players in all worlds.
Second is a list of conditions. Only the players that meet those conditions will be considered as members of the party. It's most intuitive for players, as they don't have to do anything to be in a party - no commands, no GUIs, just starting the same quest or having the same item - you choose what and when makes the party.
To understand better how it works I will show you an example of
party event. Let's say that every player has an
objective of pressing a button. When one of them presses it, this event is fired:
party_reward: party 50 quest_started cancel_button,teleport_to_dungeon
Now, it means that all players that: are in radius of 50 blocks around the player who pressed the button AND meet
quest_started condition will receive
teleport_to_dungeon events. The first one will cancel the quest for pressing the button for the others (it's no longer needed), the second one will teleport them somewhere. Now, imagine there is a player on the other side of the world who also meets
quest_started condition - he won't be teleported into the dungeon, because he was not with the other players (not in 50 blocks range). Now, there were a bunch of other players running around the button, but they didn't meet the
quest_started condition. They also won't be teleported (they didn't start this quest).