Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Groups Feature #58

lefnire opened this Issue · 36 comments

10 participants


Edited by wc8: Vote for this feature here: Parties
"Party system" so you can compete with your friends.

  • Add up to 4 friends
  • Can view their avatars. Creates a competitive spirit
  • Highest level capped by lowest level (eg, party members can only be 5 lvls apart max). Creates team spirit and accountability partners.
  • Can use potions to heal friends.

Will come later (sooner if Kickstarter pulls through), but adding a ticket location to track its progress


Hi you all!
I just wanted to share with you some idea on the party system idea. For those who are not aware of what party system is (just like I was yesterday) here it goes - but think Tyler would explain much better than me on issue list)

It is the posibility of playing HAbity as a "friend-competition". You ask friends to join and improve together, and also you can heal friends.

I think it would be a great idea to have the posibility of making "public tasks" and "private task".

That way not only people would use it for "unimportant" staff but also for keeping up on important things they are not good at and they are shamed to admitt.
For example- if I always forget to clean my teeth I (just an example) I wouldn´t add it on public tasks, since some friends could make fun of it. That would be discouraging and probably I would delete it.

But if there was a possibility of making it private task I would keep trying to "experience up" on it and wouldn´t care people making jokes on whether I manage to improve it or not.

What do you guys think about it?
Feel free to discuss


I second MiriamGat on the public and private options. Some habits would be better off kept to ourselves. Other habits might be something to show off. I see great potential in this game! There is much that can be added. Many ideas that come to my mind have flaws that are tough to get around. I also second the "friendly competition" idea, and adding to that, it would be cool to have both options available: friendly and head-to-head mode (with bets placed using tokens/gold). The friendly competition would be fun to have many friends involved. It would be nice to see more than just four friends, but as many as, say, 16. Maybe you have all your co-workers download the app and want to see who places in the top 4? Perhaps we get to choose the rewards, or simply put money in, and the winners split the pot? I'd like to see many more options. The more options, the merrier, and hence the more different ways to get people motivated. Keep it social! We live in the age of social networking. ;)
I see much great potential here. Keep the brainwaves pew-pewing lasers.


I like the idea of parties. Here's an alternative way of thinking about it as well:

Make a "group quest" system that lets you invite specific people or a party to participate in that "quest." So if I create a "run 2 miles per day" quest, I can invite Jim and Katie to participate, and progress is shared across all three users. The quest is still visible in your default dashboard (what is currently on HabitRPG) with an indication it's a group quest with some expandable options/information showing who is participating and their progress. This way I can easily have many group quests with many people.


@cmathews that would be awesome with apps like Runkeeper or Endomonto too (syncing with habitRPG maybe)


@racuna I agree. Syncing possibilities would be endless. Another idea is to create multiple apps for different, more specific habits such as fitness. FitnessRPG. GymRPG. I'd pay 20 bucks for that if someone pulled it off well. Keeping the RPG theme, yet delving into the specifics of the category, it would be impressive to see you start out as a puny guy, and as you level up, turn yourself into an impressive warrior, and then a greek god. As hilarious as the idea sounds, I think many people would go for it. You'd just need to have the right motivating tools to go with it. Keep track of weights/sets/cardio like any other fitness app, but include RPG elements, and you have someone who will find working out a whole deal more fun.
Bringing myself back to the topic, @cmathews a group quest system is a great idea. I'd also like to see some random elements included, like random challenges that pop up. Random challenges can maybe be a giant list of things you created, and will be able to set the "average" frequency, etc. These random things might be something lik e: talk to a stranger today, call an old friend, help out someone in need, re-arrange your room, buy your best friend something nice, consume NO processed sugar for a day or a week. This could actually work universally, meaning, these could come from an outside source. Everyone could benefit from these little (and some big) chores or habits, so these could come from a vast database of universal good things. On top of all this, increase the reward for those who actually complete them. A possible RPG counterpart theme for these random encounters could be "side quests" or an unexpected attack from a 10-headed snake-dragon-fish.or whatever.
Just ideas.

I'm really stoked about the potential of HabitRPG.


Added to Master Feature List #169. Closed for Organization.

@hookang hookang closed this

A problem with this setup became clear to me today. My girlfriend started playing this morning and she is level 2 already. She put ALL of her stuff into habitrpg, like "play with my cats", "go shopping" etc etc etc. She earned a wopping 21 exp and LOTS of gold. Now this is no real problem as she also made her rewards rather expensive. I have been playing for a week now and I earned a total of 50 exp. Meaning if I want to play together with my girlfriend, but stick with the 5 level difference rule, I will be severely limiting my girlfriend. I'm thinking that some kind of machine learning / heuristic is needed in order to determine how fast a user CAN level up.

My girlfriend suggested to determine the needed exp/level depending on the number of dailies a person has, but I think that this system is still somewhat flawed.

On the other hand this might also be the intended behaviour in which case you can ignore my comment, but I do wonder how playing together is real fun in that case. It would either mean that I am stopping my girlfriend, or it would force me to put more random tasks into habitrpg, like eating breakfast etc :x


I like the "relative" difficulty idea, personally


This is why balancing HabitRPG is especially hard because it really depends how busy somebody is. I for one have hardly any habits or rewards but a tonne of dailys and to-dos.

The party idea (in my mind) is more about holding people responsible and so that your party can help each other out.


(Personally, I'm getting gold a little too easily or not spending fast enough because I have a lot of tiny, critical daily tasks that HabitRPG is helping me regain mastery of.)

How would a computer figure relative degree of difficulty? Beyond duration, there's varying needs/abilities:
For example: breakfast for A is a nearly a reward, breakfast for B really doesn't matter, for C it is a necessary challenge (night-owl, rising early for work/school); for D is an extreme difficulty (illness or eating disorder). It's easy for person A & B to say: Breakfast, piece of cake! C and D are putting easy tasks on their lists.

What's the reason/advantage of the level proximity requirement (within 4/5 levels)?

What happens if someone dies? Are we no longer party members?


@Neohuman no ideas there, just questions.


If by 2) you mean "What's the reason/advantage of the level proximity requirement (within 4/5 levels)?"
I'm wondering about the reasoning behind @lefnire's requirement for party members to be within 4/5 levels of each other. On re-reading that, I see "team spirit" given as the reason.

My follow up question would be, does the cap come into effect after the party is formed, or would, say, a brother and sister or two coworkers be prevented from joining each other's party if they are too many levels apart?


To me the intuition behind the level cap is that if you are levelling really fast and I am in your party, I would feel bad for stopping your progress by slacking around and not levelling up. Of course I cannot say that @lefnire had this intuition when writing it ;)

I'm wondering though, what "relative" difficulty are you all referring to :x ?


I was thinking as @Pandoro put it: accountability. We want parties to be interactive in some way (I envision healing spells & buffs) and in a capacity that makes you feel accountable to your companions. I'm open to other methods, but I'm hoping for something to drive team spirit, rather than just viewing each other's avatars.


But @wc8 has a good point - would cause issues with new party members being outside the level gap. We could say "any more than 5" cap.

@cmathews idea of group quests might be easier, and more friendly. Where level-capping might make the lowest level feel pitiful (hopefully sparking change, but not necessarily so) group quests would be more opt-in and positive.


I think with the current system, everybody establishes his or hers own rate of levelling up. So grouping purely based on level will not lead to good experience in my opinion. Unless of course the levelling gets some sort of normalization factor.

What I think we should observe though, is that levels are currently not the most important thing. Based on the level you don't get any major boni yet. So I'm wondering if we should limit parties based on the level. Furthermore, on every level you can gain just as much exp and gold as on other levels, apart from weapons and armor.

So I think we should get the accountability out of exp and gold. Every user has the potential to earn exp and gold each day, but if they are slacking, you could penalize the others for this as well. You could for example implement something like a group gold pool. Each day, 50% of the gold everyone earns is put into the group pool. The total number of dailies is summed up in the group. The number of dailies is normalized by the maximum amount of dailies per persons in the group.
At the end of the day the normalized completed daily count is summed up and divided by the total normalized count. This will give a number somewhere between 0 and 1. 0.5 is added to this number and it is multiplied to the amount of gold in the pool. Then each user gets the percentage of the pool he or she also invested in the pool that day.

Now.... it's a rather complicated idea, so let me clarify it with an example.

Bob 2 dailies
Caroline 5 dailies
Sam 12 dailies.
Normalized total = 2(12/2) + 5(12/5) + 12* (12/12) = 36.

Gold earned today
Bob 20 -> 10
Caroline 6 ->3
Sam 50 -> 25
Total 76. -> only half of it so 38 in the pool

Players share in the group pool:
Bob 26%
Caroline 8%
Sam 66%

Completed dailies
Bob 1
Caroline 4
Sam 10
Normalized completed = 1(12/2) + 4(12/5) + 10*(12/12) = 6 + 9.6 + 10 = 25.6

completed/total + 0.5 = 25.6/36 +0.5 = 1.211

Gold in pool after multiplying: 46

Gold returned:
Bob 460.26 = 12.0
Caroline 46
0.08 = 3.7
Sam 46*0.66 = 30.4

Please disregard the rounding errors ;) Now as you can see, because they all completed their dailies only okayish, they got only a small bonus. If this is not desired, then some of the parameter can be easily tweaked. If they manage to complete ALL their dailies though, they get a extra 50% of their gold.

This method will not interfere with the general playing speed of each user, or their levels, but it will give them a bonus if the work together. If one user slacks, all the users will notice, if they slack badly, all the players will even loose some of their gold.
The drawback is the normalization. It would be the best if all the users hat somewhat the same amount of dailies, but if they have at least one, they can work with this system.

Another option would be to make the reward curve quadratic. Meaning:
multiplier = (completed/total + 0.5)^2.
If everyone works average, they don't loose anything, if everyone works really hard, they get a bonus of 125% percent on the gold in the pool.

Furthermore a group size parameter could be introduced to encourage big user groups if that is desired.

If you don't like the idea, I won't be offended ;) It is just an approach to make the party system level independent and indifferent to each of the users playing speeds, while still motivating all the users to complete their dailies and of course, more todos and habits in order to increase the gold amount. But it also poses a risk, considering if I put in a lot of gold, I might loose it for a big part if people slack around.


Sounds like a good idea! I'll keep those formulae handy.

Question, how do we want to handle party size? I come from WoW & SNES, so I thought - 5's good. Now I'm wondering, what about someone who wants a friend party vs work party? Well, maybe not have multiple parties - that could get difficult - but instead no cap to the party size (or a larger cap than 5)? We could just keep it simple with that solution, and depend on the "followers" feature being #257 for interaction outside your main party?


I have been wondering about that question as well. For example I would love to be in a party with my girlfriend. (I would love to play with my girlfriend just sounds so wrong in this context x) ...) And I'd also like to be in a party with my friends. Now they might want to be in a party with their friends etc. This would mean you would HAVE to make multiple parties if you want to make everyone happy. But I think that that is not a really good idea.

On the other hand making bigger parties also means that people invite their friends, who recursively invite other friends etc... I'm not sure what this would mean on the programming and computational site, but it sure as hell means that I will soon not know any one in the party, apart from a small fraction. So bigger than 5 might be good, but I wouldn't go over 8 or 9. Especially if you want to constantly display them somewhere in the header.

If you want to play with your family friends and collogues, always and all together at the same time, a guild would be more suited for that I think, but I never really trust all my guild members. Realizing parties as they are in other games though seems problematic as well, considering this means you are changing parties all the time and meeting random strangers you might not trust at all. The question is also, what do you do with party members who become inactive after a while, or who you simply don't want to party with any more? Maybe it would be a good idea to make parties a temporary thing. Something like for a week. If you have a real good party, you can always rebuild it, but if someone stopped playing, you simply don't invite him or her any more.

Now I know that this isn't a solution, but just a bit more stuff to think about when trying to come up with a good sytem.


5 to 10 player parties sounds good for a real small circle of friends etc.

The question is though, what are guilds for then? Simply to be there? If there are really going to be group quests, it would be cool if you could do temporary parties, so say I want to do some group quest, and I know this could help a friend of mine earn enough exp to get him to the next level, then it would be cool if we could do this. So if, and only if, we are going for group quests, I would go for some additional temporary party that you can do them with. For example you get some message like "invite up to 5 friends from your guild(s) or party to go onto this quest." This party would last for the duration of quest only. That way you can keep your small static group, which you share daily goals with, that you can give potions and what not, but you would also be able to help out a buddy, or play with other friend from time to time.

Of course, always having motivation to do some stuff in mind ^^

Applying this scenario to my example:
I would like to be in a party with my girlfriend and then I'd maybe invite a friend or two of mine to join us. After that I would however also be in a guild with other friends, maybe in a guild with all the people from my work and I'd have some habitrpg fanatics guild ;) Now once in a while I go onto a group quest, my girlfriend isn't coming because she thinks rpgs are stupid, but I'd like to take 3 people from the fanatics guild and one newbie friend of mine. We finish it, by "put in some useful stuff here" and after several days we earn "some reward here". The party breaks up, we post our succes to facebook and tweet about it.

Just wild ideas, probably far from being realistic, but this is something I would see as a way between infinite parties and completely static parties.

I don't really like the one-on-one list, as this is, as you say, just a one-on-one thing without a real use. In that case just make a follow option, as suggested in other post :)


where do those quests come from? are we talking about Habit Goals, Community Quests?


BTW, these are great ideas - thanks @Pandoro. I'm knee deep in building parties, and I was adding bi-directional one-on-one and thought "wait, what am I doing?". Better get this all squared first.


Honestly I don't have a clue ;) The community hasn't taken my real rpg quests with big excitement, so I don't think these quests will be with big fights against monsters, and I don't know what ;)

For the community quests, that would be one option. I think it is not really feasible to impose these onto everyone. For one the timezones might be a problem and secondly, good luck finding something many people want to do, but what they don't already have in the lists. So if you do this on a smaller scale, that would be nice. You could for example "find" these quests as drops. These quests then give a different or slightly bigger reward. So for example you could find the quest run for 5km. Now you could also just make a todo out of that, but if you complete it in this quest, then you get a bigger bonus than for the simple todo.

The habit goals aren't very fitting I think, simply because these goals are mostly something personal. But I could imagine that if you are a group of smokers, you could come up with some personalized group quests, like don't smoke for one week. You will feel a severe peer pressure if you are doing this in a group, so maybe it isn't even a bad idea :D

And lastly, I would like to suggest my somewhat gamified quests of finding items. I can simply find some loot item and go on the search to find the others myself, but you could also think about a "do you want to invite other people into this quest" option. Then the amounts of items I need to complete the quest are increased, but this way you can let other people share your luck of finding this quest.

But don't decide anything based on my ideas ^^; I've noticed that often my crazy love for rpgs is not what most people want, but the group feature was definitely what other people liked as well!


Cool. I'll start building to the original spec, 5+ -ish , one party. Then we'll start looking at this dynamic/organic party system, driven by quests. It should be an ok transition, because people can chill in parties between quests.

wc8 commented

Re: team spirit, much depends on whether the party members have team spirit to begin with. Also sometimes a huge disparity between player levels can actually foster team spirit: the "little" guy feels encouraged by having the "big" guy's help and the "big" guy takes pleasure in being helpful. Incorporating ways for users to help each other seems more likely to foster team spirit than causing them to limit each other's level or exclude close friends.

I had made two separate cards for groups because requests seemed to fit two different kinds of groups.
For instance, Habit Events (like the 7-day no-smoking goal pandoro mentioned), seem good for more public groups Guilds, while sharing tasks better for parties Parties. [Correction, the Guilds card in Trello represents something different but perhaps related]

I like pandoro's ideas for a single small Party and multiple, perhaps different kinds of more public Guild-groups. Short-term campaign/quest parties also sound good.

@pandoro Everyone's new ideas on github can be sometimes hard to grasp at first. Oftentimes people are reacting to what sounds like it will interfere with productivity or their way of handing tasks. Once they're concerns are allayed, they like them (see diseased missed todos). Methinks your loot drop idea is more popular than it seems.

I think we need a glossary (quests, campaigns, taverns, markets, boss battles, etc.) with officially accepted and possible themed names for features. Maybe a Trello card would do it. this rate, maybe a lexicon. :-)


Now that I've read the @Pandoro's gold pot idea and start to understand it, I really like it. Absolutely out with level caps. Here's another alternative (but gold pot is a good holding ground):

Just like parties in MMOs, each kill (task completion) shares a small portion of your exp and gold earnings with the group. You level up faster in a group, so it's in your favor to be in a group. The accountability is that the slacker is a leech, as in MMOs, and will likely be booted unless he gets his act together.

wc8 commented

@lefnire That sounds good. (I, too, find I really like many of @Pandoro's ideas once I understand them.)


@wc8 and @lefnire, thank you for the kind words ^^

About the faster leveling @lefnire mentioned. I also think it is a great idea to not only limit the benefits of a party to gold. However the problem is exactly the one I mentioned earlier. Different people play at different speeds. If you then just share the exp equally, I'd by definition always be a leecher because I only get 5 exp per day. So maybe a similar scheme as I suggested with the gold could be imposed on that. You should benefit from the party, but everyone in the party should actually benefit, not only those that are playing slower anyways.

In order to get a little more dynamic regarding the level difference, you could think of giving a bigger bonus in an inverse relative level relationship. So the smaller guy gets a bigger bonus of the party than the bigger guy. This will then equal out once the levels also equalize. I came up with a possible formula for this, it might look scary, but look at it for a while and it should become clear:

multiplier = 1.25 + (1- (min_lvl / max_lvl)) * log_10(max_lvl - own_lvl +1) + (min_lvl / max_lvl)* alpha

Now... BIG formula ;) let me explain a little. This multiplier would be added to whatever scheme that is used, to give the little guy a bigger bonus, but once the level range of the party gets narrower, give everyone a bigger bonus. This will for one encourage the big guys to help the little guys in the beginning and soon the level gap equals out. This is also desired, as everyone will benefit from a small level gap.

The first term is a general multiplier, this could in theory also be left out.
The second term gets smaller and smaller once min and max levels in the party become more equal. However if there is a big level gap, this term is dominant. It adds the tenth logarithm of max_lvl divided by your own level. Meaning, if you are one of the big guys then you will get only a very small bonus from this as max - own is close to zero. Once the level gap between you and the max level gets to 10 however you already get a nice bonus, bigger level gaps grow with a logarithmic scale, so you will probably never get a bonus higher than like 300% out of this.
The third term will add to the bonus once everyone has a similar level. The bonus is determined by alpha and should be somewhere between 1 and 3 I guess. This will motivate people to get to a similar level.

Now don't assume this is perfectly balanced. I think the beginning factor of 1.25 needs checking, the logarithm might not be optimal and alpha is still a mystery ;) But the general idea I have is realized pretty well with this formula I think.

If the pool I explained for gold, would actually be used for exp and then this multiplier would be added to it, you would get out of the party what you put into it, so regardless of your playing speed, you are getting a bonus and then this multiplier could be used to equal out the level difference a bit and motivate people even more equal level in the group. All, of course, only possible by completing as many todos, dailies and habits as you can :)

Furthermore I think it is a good point that @wc8 makes. Team spirit has to be present in a player in order to really work out. I could imagine that some of my party members might simply not be so much into teams, so after a while I notice they annoy me pretty badly. Considering it is a friend though, I'd personally not like to boot him or her from the party. So there you have the dilemma, it gets even worse if different players in my party aren't actually friends with this player. Then you get mixed opinions. So I think quickly booting a player is something that will not happen easily. I would avoid on relying on this motivational factor.


I don't know if this has already been mentioned yet, but it'd be kinda cool to allow your friends to create rewards for you. As in, if we're in a party my friends could buy me a round of beer at the local pub if I make 120 points and buy the party/friend reward.

You could extend this idea to the concept of classes or abilities as well. If I played a healer, after I've made a certain amount of experience, I can cast heal to heal someone directly at a cost of experience.


see this trello card. It's pretty high priority, as it'll be vital before we start the white label

@wc8 wc8 added the groups label
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.