It's a popular topic for Townhalls and we've been doing a lot of noodling about the right answer. This is what we've come up with.
3 Step Grapple
1. Setup - the aggressor moves into position according to the rules of held weapons and combat distances (i.e. a person with a firearm is trying to keep distance, a person with a knife is trying to close distance, etc). Distance between aggressor and victim play a role in the victim noticing something is about to happen. Recent combat makes the victim wary, boosting their ability to get the head start they need.
2. Closing the Distance - the aggressor needs to move across the room from whatever distance they're at in order to grapple their victim. If the victim noticed the aggressor's movements previously, they'll be able to act sooner and likely evade the grapple.
3. Overpowering the Victim - much like the old grapple system, your ability to overpower depends largely on your physical strength and your potential skill at holds.
Over all of these, fatigue, aiming, stealth, encumbrance, are all now being factored into the algorithm too.
We've written all this on a new object and rewritten the master grapple code so we can better support future modifications:
* more nuanced messaging (why you evaded, overpowered vs out-finessed, etc)
* more variables affecting the outcome
* reverses / counters
* shit I can't even think of right now.
So we're almost done with the new grapple system and its ready for you to help us test it out. This requires opt-in right now. You must type @options grapple to enable the new grapple system. The new grapple system will be used when the person being grappled (Bob, not the person typing 'grapple bob') has enabled this option. If you like to grapple people, beware that you will be subjected to the victim's preference, not yours. This new system will become what everyone uses when all the kinks are worked out. Try it out in the course of your RP (wanna spar at the gym?!) and let us know your feedback.