_edited by Alys 2018-11-11_
For the Special Pets and Mounts (those shown in the screenshot below), currently if you don't own them, you see pawprints for them. The pawprints are appropriate for only those Special Pets and Mounts that you are able to obtain by taking actions yourself (e.g., completing a Quest). The other Special Pets and Mounts are no longer available or are given out by staff at only certain times and so pawprints should not be shown for them (they should simply not appear in the list at all).
The Special Pets are configured here:
https://github.com/HabitRPG/habitica/blob/3265440bc44d6ca54cceb6cda4122ce981a0909f/website/common/script/content/stable.js#L54-L76
and the Special Mounts are:
https://github.com/HabitRPG/habitica/blob/3265440bc44d6ca54cceb6cda4122ce981a0909f/website/common/script/content/stable.js#L78-L94
They're added to the petInfo and mountInfo objects here:
https://github.com/HabitRPG/habitica/blob/3265440bc44d6ca54cceb6cda4122ce981a0909f/website/common/script/content/stable.js#L96-L110
Those petInfo and mountInfo objects could contain a hidePawPrint: true attribute for those Special Pets/Mounts that shouldn't have a pawprint showing. No extra config would be needed for the other Specials so that would be consistent with how the non-special pets/mounts are handled.
The ones that should NOT show pawprints are:
Pets:
'Wolf-Veteran': 'veteranWolf',
'Wolf-Cerberus': 'cerberusPup',
'Turkey-Base': 'turkey',
'JackOLantern-Base': 'jackolantern',
'Tiger-Veteran': 'veteranTiger',
'Turkey-Gilded': 'gildedTurkey',
'Lion-Veteran': 'veteranLion',
'Gryphon-RoyalPurple': 'royalPurpleGryphon',
'JackOLantern-Ghost': 'ghostJackolantern',
'Orca-Base': 'orca',
'Bear-Veteran': 'veteranBear',
'Fox-Veteran': 'veteranFox',
'JackOLantern-Glow': 'glowJackolantern',
'Gryphon-Gryphatrice': 'gryphatrice',
Mounts:
'LionCub-Ethereal': 'etherealLion',
'Turkey-Base': 'turkey',
'Orca-Base': 'orca',
'Gryphon-RoyalPurple': 'royalPurpleGryphon',
'JackOLantern-Base': 'jackolantern',
'Turkey-Gilded': 'gildedTurkey',
'JackOLantern-Ghost': 'ghostJackolantern',
'Gryphon-Gryphatrice': 'gryphatrice',
The others can all be obtained from Quests, or bought with Hourglasses, or obtained by subscribing or joining a Group Plan so we want them to show pawprints.
We can expect other special pets/mounts to be added in future; some will need to have the hidePawPrint attribute and others won't.

I've updated this issue to move all relevant information from comments into the top post so it now contains a neater, updated description of what we want.
Sorry if I am causing hassle, but I am wondering how the grey pawprints are shown. I am relatively new to javascript, so is there just a file with the paw print icon in it, that is assigned to the special pets? Or is an attribute assigning it. I want to know, because I might want to try picking this up again.
@mistergij No worries, thanks for thinking about it again! This kind of question comes up every so often so I've just now added a new section to the wiki documentation to walk you through the process of finding where to start coding. Go to Using Your Local Install to Modify Habitica's Website and API and see the "Finding the Location of the Code to Change" subsection (under the "Creating a Change" section).
If anything there isn't clear, please tell me so I can improve it!
Also tell us if you'd like this to be marked as in progress for you again.
Thank you! I would like it to be marked as in progress.
Ah thanks! I took those examples from advice I gave someone in the past and the code has changed since then. I'll update the examples later today. The actual process described is still correct.
By the way, I've removed some of the older comments from here that aren't about the issue itself just to make info about the issue easier to find but you're welcome to post again if you have more questions.
Thank you! I won't be able to try the updated examples today, as it is 7:30 Pm here. I will try the new example you post tomorrow.
How do you add an attribute in Javascript? I can't find any tutorials online, and I want to create the suggested fix.
In the sample code above from habitica/website/common/script/content/stable.js , key, type, and text are attributes.
I want to run a possible fix through you before I change the code. If I add this code to website/common/script/content/stable.js:
let hidePawPrints = {
'Wolf-Veteran': 'veteranWolf',
'Wolf-Cerberus': 'cerberusPup',
'Turkey-Base': 'turkey',
'JackOLantern-Base': 'jackolantern',
'Tiger-Veteran': 'veteranTiger',
'Turkey-Gilded': 'gildedTurkey',
'Lion-Veteran': 'veteranLion',
'Gryphon-RoyalPurple': 'royalPurpleGryphon',
'JackOLantern-Ghost': 'ghostJackolantern',
'Orca-Base': 'orca',
'Bear-Veteran': 'veteranBear',
'Fox-Veteran': 'veteranFox',
'JackOLantern-Glow': 'glowJackolantern',
'Gryphon-Gryphatrice': 'gryphatrice',
'LionCub-Ethereal': 'etherealLion',
'Turkey-Base': 'turkey',
'Orca-Base': 'orca',
'Gryphon-RoyalPurple': 'royalPurpleGryphon',
'JackOLantern-Base': 'jackolantern',
'Turkey-Gilded': 'gildedTurkey',
'JackOLantern-Ghost': 'ghostJackolantern',
'Gryphon-Gryphatrice': 'gryphatrice',
};
function hidePawPrint (animal) {
return hidePawPrint.includes(animal.key);
}
each(specialPets, (translationString, key) => {
petInfo[key] = {
key,
type: 'special',
text: t(translationString),
if hidePawPrint() {
document.querySelector("#\34 73af356-8ccd-4c3d-8557-9232cfaf040c > div > span").style.display = "none"
};
});
each(specialMounts, (translationString, key) => {
mountInfo[key] = {
key,
type: 'special',
text: t(translationString),
if hidePawPrint() {
document.querySelector("#\34 73af356-8ccd-4c3d-8557-9232cfaf040c > div > span").style.display = "none"
};
});
would that fix this issue?
@mistergij Selectors like "#\34 73af356-8ccd-4c3d-8557-9232cfaf040c" are automatically generated and will change in unpredictable ways at unpredictable times (well, there'll always be a reason that they change but from the point of view of using them in code, it's effectively unpredictable). That means that using them in code won't be reliable.
@mistergij Just checking in: are you still working on this issue? Let us know, or I'll set this back to 'help wanted' after a week or so. :)
Yes, I am still working on this issue. Thanks for checking in!
On Tue, Apr 14, 2020 at 8:08 AM shanaqui notifications@github.com wrote:
@mistergij https://github.com/mistergij Just checking in: are you still
working on this issue? Let us know, or I'll set this back to 'help wanted'
after a week or so. :)—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/HabitRPG/habitica/issues/9498#issuecomment-613404836,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANU573NC6TXIENFQN2UDS6TRMRG5DANCNFSM4ED6W6LQ
.
Great! Thanks for helping out with this one.
I'm sorry. I can't work on this anymore. Could you please mark this as help wanted?
I'll take it
@fmaximus Thanks! I've marked this as in progress.
@Alys In my PR, I'm still showing the Wolf-Veteran,
as it's attainable by verifying your username.
Let me know if that's not OK.
In my PR, I'm still showing the Wolf-Veteran, as it's attainable by verifying your username.
@fmaximus Yes I think that's good. Thanks for thinking of it!
The Ethereal Lion is showing as a pawprint even though it was only attainable from the 2013 Kickstarter.

The Veteran Wolf is not currently attainable (I have an account with a verified username which has not received it; I think gaining the pet by doing that has been turned off for quite a long time) so I believe that also needs to be hidden.

I think those are the only ones that have been left out, based on my checks!
For the Veteran Wolf, I _think_ if you change your Username you'll receive it.
From memory, you no longer get it when you create a new account, even though your Username is verified automatically at that time, but changing the Username later means that you have to verify it and that triggers the gift.
I don't know whether that's the intended behaviour. It makes sense in the context of how the verification code was meant to work when Username verification started but it does seem odd now.
The Ethereal Lion should be hidden. Looks like it's just a matter of changing true to false in this line of code:
https://github.com/HabitRPG/habitica/blob/3063a38d6066728431fbcc27d0df2b6517a3ee29/website/common/script/content/stable.js#L145
At the same time, this comment could be enhanced:
https://github.com/HabitRPG/habitica/blob/3063a38d6066728431fbcc27d0df2b6517a3ee29/website/common/script/content/stable.js#L86
It could say something like:
// Veteran Pet Ladder - verify Username / awarded on major updates - https://habitica.fandom.com/wiki/Event_Item_Sequences#Veteran_Pets
Hmm, no, sorry, even changing your Username now no longer awards the pet, so this needs to be changed to false too:
https://github.com/HabitRPG/habitica/blob/3063a38d6066728431fbcc27d0df2b6517a3ee29/website/common/script/content/stable.js#L87
and the comment above it could be just:
// Veteran Pet Ladder - awarded on major updates - https://habitica.fandom.com/wiki/Event_Item_Sequences#Veteran_Pets
I don't know if we want to include that link for more details.
@Alys I've made the changes
Most helpful comment
Thank you! I would like it to be marked as in progress.