Here is my take on what is happening here. We are getting multiple threads in the same topic.
The one central idea is group vs individual exp. Handling a group of players as a single entity should work. Group exp will be divided up after the battle.
As I see it, in either case we are talking about the rare distribution of a monster's exp when characters are not really "helping" towards the end goal of killing the monster. In most cases, if an individual or a group is at a spawn, they will be taking most of the kills. The problem comes into play where there are either kill (for exp) or drop stealers. If a player consistently does 95% of the killing, they will consistently get 95% of the exp when exp is split up by damage. In most cases, players attack monsters that they believe they can kill without dying often or ever. I think that FIFO works better on those occassions that it is necessary. If player A had not attacked the monster, then it would not have needed to be healed. If player B had not attack the monster, player A's damage would have been healed. These both imply a FIFO system. A combination system may work to more "fairly" distribute exp.
When attacking a team monster as a group of individuals, the following example could occur:
Monster has 1000 HP
Monster regens 100 hp per strike turn.
Player A does 75 hp damage per strike.
Player B does 25 hp damage per strike.
Player C does 25 hp damage per strike.
Player D does 25 hp damage per strike, but only strikes every fifth round as he is trying to exp steal. This could also simulate a low level character only doing 5 hp damage per strike.
In this case, none of the players would be able to singlehandedly defeat the monster. It will still take an long while to kill the monster. Over time, it would take 34 striking rounds to kill the monster. Player A does 2625 dmg. Players B and C both do 875 each and player C does 175 damage for a total of 4500 damage on this 1000 HP monster. Exp stealing is not an issue here unless the player can effectively hit the monster consistently with enough damage.
In FIFO, damage is only healed where it needed to be healed from. On the first round, the group only does 25 damage effectively. On the fifth round, 50 damage is removed. 40 Rounds are required without the exp stealer. 34 rounds with the exp stealer.
FIFO Percentages:
Player A Player B Player C Player D
57.14285714 19.04761905 19.04761905 4.761904762
FILO:
58.53658537 19.51219512 19.51219512 2.43902439
Averaged based upon total damage done to monster. HP damage total reset at 100% recharge.
Player A Player B Player C Player D
58.33333333 19.44444444 19.44444444 3.888888889
In either case, there will be fluctuatons based upon amount of damage given (its random in most RPGs). A low level exp stealer will get minimal % exp in any of the three cases above.
The problem with FILO is that if a group does 99% of the kill, gets killed individually or as a group and then heals to 99% health, the person who kills it gets 1% exp. If no one is around, why should they get exp though? This could lead to leaving a low level character near to just make sure the party still receives exp if you die.
The problem with FIFO is if group A does 99% and is not able to finish it off immediately (a player dies, low hp, low mp, etc). The monster heals to 50% total. Another group B comes by (group or an individual) who finishes it off for the remaining 50% and gets half the exp for 1/3 of the total work. In the meantime, group A could be bringing their other player back through a town portal or just recharging HP/MP for a second strike.
Group exp will be handled differently then individual's exp or in a mathematical sense, it is a function within a function.
Exp:
F(exp) = y + z
F(y) = PlayerA + Player B + Player C.
F(z) = Player D.
As a group, f(y) = 75% exp based upon group's total damage to monster.
As a person, f(z) = 25% exp based upon individual's damage to monster.
For the group, exp is handled however its decided but based upon the 75% of the exp incoming.
This allows for change to group dynamics and a solid start to dividing between an individual and group's exp. The group would be tied to the players so that players may not just leave a party to give all exp to other players.
In the example above, player C is power leveling players A and B. Player C leaves making player A + player B be entity y.
Instead of this, group y is still A,B,C. groups w,x,y,z now exist.
F(exp) = w + x + y + z
F(w) = Player C (after leaving group y)
F(x) = Player A + Player B (after C leaving group y)
F(y) = PlayerA + Player B + Player C (Prior to C leaving)
F(z) = Player D.
All calculations still consider these as different individual entities. For this calculation, % of exp has been decided so that other factors do not effect the exp.
Turn 1: y does 80% damage. and z does 10% damage.
Turn 2: player C leaves entity y.
Turn 3: entity w (Player C) does 10% damage.
Entity w gets 10% exp.
Entity x gets 0% exp.
Entity y gets 80% exp.
Entity z gets 10% exp.
Player A gets its breakdown from Y
Player B gets its breakdown from Y
Player C gets 10% exp as W and its breakdown from Y.
Player D gets 10% exp as Z.
While I cannot condone copying another game, we can use it for ideas on this game. Below is some information from Blademistriss (referred to as BM), that could be applied to how Faldon could run.
Item stealing
In BM, they handled this by giving out items directly from the game to the players. In that game, there were no restrictions for the size of the inventory as it was list based. Having the game calculate who gets what would be an issue here. With this, it would tie the issue of drop with kill stealing. They tied levels and the amount of damage to what items were given out. This could be handled with the same calculation of % exp for amount of help they were within the battle. All players were notified in BM of what items were given to whom as well as gold given. If there is an uneven number, have it give to the players who were more of a help (based upon the % exp equation).
Leveling in BM.
Leveling was way too simple in BM as your level depending upon the dodge skill. The higher level you had it, you could not even be hit by anything that you could dodge from. You had to be within a 10 dodge level of the monster's level. If you were dodge -10, you got 10 exp. If you were the same level or higher, no exp. If you were lower then 10 dodge levels, you received no exp. I am NOT suggesting that we do this, but we could make monsters have levels and give them a larger range to where exp is given out. Zer already allows monsters and pets (monsters) to gain levels. We would just have to get equations that would make them give out more exp for higher levels and become appropriately powerful. Monsters would already spawn at a certain exp level and gain exp from killing players (or maybe even other monsters for a few who may want their own territories). Other dynamics could include that cats like to chase mice.
Spawns in BM. There were normal spawns in BM as well as the Geomancy skill. This skill allowed dungeon gems to be created. Anyone within a certain distance was transported to the dungeon with whomever used the gem. By using hides of the animals as well as modifying items in the gem creation process, the proper dodge level training or gold finding dungeons could be created. This HUGELY solved the issues of spawn camping as well as kill stealing. Only those you let near yourself could get in unless you brought them to you (in Faldon by TP). Higher levels/better items created bigger dungeons. This also solved the problem of long walks to the monster spawns.