RuneScape Wiki


13,609 Edits since joining this wiki
February 4, 2011

2011-12-14 - 2012-03-28
2012-03-30 - 2012-10-18
2012-10-18 - 2012-11-24
2012-11-26 - 2013-05-31
2013-06-02 - 2013-12-19
2013-12-26 - 2014-09-25
Page size: 31,972 bytes
Archive at: 50,000 bytes

Feedback abuselogEdit

Why was it hidden from public again? How would willing editors know what to improve on the page, if the feedback for said page is offlimits? --Jlun2 (talk) 02:16, September 27, 2014 (UTC)

RSHiscores UpdateEdit

Hi, I am TehKittyCat, or well Catcrewser until the renaming finishes and the account is unlocked so I can reply to this to confirm it is indeed me (although an IP lookup would confirm). I'm in the process of becoming active again and noticed RSHiscores is working again, which means Wikia finally fixed their firewall (the debug code was temporary to confirm it was on Wikia’s side and not a block by Jagex). As such, I would like to remove that debug code, cleanup RSHiscores (I went blind when I saw my coding style on it yesterday) and fix its design shortcomings that exist in the age of Lua and (in-hindsight) for the JS calculators it was primarily designed for. I saw in Forum:Scraping hiscore data for calculators that you were most familiar with the code, so I thought I would it be best to collaborate with you. I agree with adding a data parameter, in-fact that’s what I should have made the extension output by default, but I was focused on reducing processing time for template usage by doing everything in-code rather than with parser functions, that I neglected that JS could just do a single call for the raw data and parse everything itself. Do you think the parsing on the extension-side is still beneficial in this Lua/JS age? Given its purpose for all-things hiscores I am considering adding support for the 2007scape hiscores and the new JSON-based apis as well, but haven’t decided on the interface. In context of that thread, I would like to confirm the limit is two users (for comparisons), not two calls, since I was concerned of the possibility of abuse and before I wrote the extension attempts to use YQL(see the existing calc.js) and other sites like anyorigin were made, but they were unreliable and subject to limiting. Ultimately the best solution is for Jagex to add CORS headers to their APIs, for which the Origin header would prevent the abuse of. At the time, support for that wasn’t widespread so didn’t pursue suggesting that (although I did propose the GE APIs that now exist). Do we still have contacts to suggest this, such as the fansite email? In the meantime I’ll fix RSHiscores. Btw, the code is now at [1] and I've added the full history, including Wikia's changes, please feel free to submit any changes there. -- 17:50, September 30, 2014 (UTC)

Hi :) I saw your userpage update the other day and have been meaning to ask you about it, but sadly haven't found the time to sit down and work out what we need. I have to say I was pleasantly surprised to find it still worked, I was expecting it to only work with the API as you'd last seen it which didn't reflect new skills/minigames being released. If you're looking to redo some of it, it might be worth taking a look at the current standard of parser functions set out by mediawiki. I'm not sure if they've changed all that much but they've made a number of large scale changes since RSHiscores was originally written, so it's probably worth checking just in case.
With regards to lua, it's not possible to convert the extension to pure lua at the moment, due to mediawiki's stripped down version of lua not having any way to make http requests. I think LuaSocket adds this functionality, but I haven't got around to exploring how likely it is for us to get that. In the mean time, an extension is probably the best way to go about getting the data. As for the parsing, lua could do the job but I don't think there's much difference about where it happens as long as we can update it when we need. Unfortunately, code updates made by 3rd parties to the wikia codebase can take weeks, or even months, to be merged so perhaps we should factor that in when considering any updates or relocation of parsing.
As for the fansite contacts, I'm not sure what's going on with that at the moment. There were a few incidents recently, last I heard we're waiting on a reply to an email discussing a number of issues. However, as this is more technical I don't see why it would conflict with that discussion and it's certainly worth a try. cqm 00:07, 1 Oct 2014 (UTC)
Thanks for replying here, I don't know where best to reply is either, it has been two days for far. Yeah, I specifically made sure to relatively future-proof the extension after Jagex changed the API to add minigames and knowing Wikia's slow updates I left the skill naming to templates. I didn't mean convert the extension to Lua, but I can add extensions to the Lua side or at least make it native (otherwise the returned numbers are Lua strings), for example ParserFunctions does this, though for now something like frame:callParserFunction( '#hs', { 'TehKitty-Cat', 0 }) should work. I know the slow update routine, it took 2 months to get the extension added the first time and about a month for every update to it. I'll try an email. Just let me know any suggestions you have, I'll try to add a plan to wiki page or maybe track it on Github. If IRC would be a better place to discuss this, just let me know. -- 00:59, October 1, 2014 (UTC)
Here is my draft email for proposing adding CORS headers to the Hiscores API, I'm going to think it over a bit more before sending, so feel free to suggest any changes before I send it. -- 03:12, October 1, 2014 (UTC)
I'd suggest expanding the CORS headers scope to the GED API as well as the hiscores api and any other jagex might have such as the bestiary. I'm not sure if the GED API actually returns application/json as the content type either (YQL, Anyorigin and Whateverorigin all return something slightly different) so maybe we could get them to check that at the same time?
I am curious why you added both a parser function and a magic word in the extension. Assuming the parser function returns either the parsed data or the entire data string (in a sort of .csv format), adding a magic word would prevent the template from working removing the local level of control. Or have I misunderstood something? Incidentally, {{hs}} isn't a magic word, so I got a bit confused when I was looking at it cqm 10:03, 1 Oct 2014 (UTC)
Okay, I'll expand the scope of the request, I meant to, but I overly focused on the hiscores API. Incidentally, it doesn't matter the content type, all cross-origin requests through XMLHttpRequest are blocked by default. It turns out the restriction can be disabled for testing using '--disable-web-security' in Chrome. Unfortunately, with my account locked (I decided 3 days was long enough before requesting a status update, so I just sent Wikia an email) I can't double check at the moment what I'm saying is true in practice. I'll get a calculator working with that disabled before sending the email though. Yeah, when I reviewed my code I was thrown off by the magic word as well, but removing it causes an exception, it turns out there are two types of magic words -- variables and parser functions. That said, the mechanism has been deprecated since I wrote RSHiscores, unfortunately that is what allowed me to use a single file, so since I have to add a i18n file for the magic word anyways, I'll make my extension laid out properly as required for use on Wikimedia wikis. The magic word is actually '#hs', because unless it's added with the 'SFH_NO_HASH' flag, the parser function magic word gets a '#' prefix. -- 19:33, October 1, 2014 (UTC)
Here is an updated draft email, I think it better handles the issues and resolves concern about the other APIs. -- 20:04, October 1, 2014 (UTC)
That looks good :) Let me know what they say, or if the do at all cqm 18:36, 4 Oct 2014 (UTC)
As of a week ago, it was passed to the web team. I haven't heard anything since, hopefully because of RuneFest. I'll get back to updating RSHiscores and adding commented-out JS support for if/when Jagex implements the CORS changes. - TehKittyCatTalk Wikian-Book 14:49, October 14, 2014 (UTC)
Yep, Wikia never replied back after determining the problem was the rename job stalled, so I decided enough was enough and moved the pages myself. I merged the pull request, the repository is already much better than the wiki page. That's fine, eventually I planned to do that anyway as part of code style, though currently I'm trying to get a local instance of Wikia running for better testing. I managed it 3 years ago, hopefully Wikia hasn't broken things too much more. - TehKittyCatTalk Wikian-Book 17:46, October 14, 2014 (UTC)

Resetting indentation level. Sorry for not responding here sooner, but I saw your replies and work on GitHub, then ended up carried away coding. Please check the latest code for the results of that. I'm not done, but I think the code is in much better shape, especially after your restructuring and cleaning, along with my initial conversion to OO-style. To-do is still support for raw data, double-checking Lua handling, support for other hiscores, and general reusability (aka splitting render). I don't like how I had to initialise cURL, but unfortunately PHP lacks static constructors. I've seen MediaWiki's vagrant, but haven't gotten around to setting it up yet, however, I am using MediaWiki with full debugging enabled. I hit a dead-end on the Wikia setup and didn't feel like digging through backups to find how I fixed the code and setup the tables years ago, so I'll just copy over as needed for testing. - TehKittyCatTalk Wikian-Book 17:23, October 17, 2014 (UTC)

Adding OS hiscores support at this point is simple, but before I do anymore changes I need to really plan out the interface and test the calculators locally, especially since I just remembered why the original API did what it did, but proving the reasons right or wrong will require some testing. Looking at the existing calculator JavaScript, I am really rethinking how the calculators work for reflow and caching purposes, but that shouldn't cause any changes to my work here. The other APIs will require a different interface, if supporting existing parser function usage is wanted, I could default to the old interface when the first parameter is an int, though the only usage I know of are the hiscores on my user page. I'm also a bit leery of using the PHP JSON support because of memory leaks and security issues years back, so I'm going to make sure that is all fixed first. - TehKittyCatTalk Wikian-Book 01:08, October 18, 2014 (UTC)

By the way, checkout User:TehKittyCat/Litterbox/3. It turns out what I just remembered served well, all that is needed is mostly cleanup to get good working hiscores calculators. It seems some have been poorly copy+pasted, which works fine when hiscores aren't looked up, but in the case of the fletching calculator it looked-up firemaking's experience once I added the name field. That said, I'm sure the RSHiscores changes could still be helpful and I'll add falsed-out code for if Jagex ever adds the CORS headers. - TehKittyCatTalk Wikian-Book 03:39, October 21, 2014 (UTC)

I added support for old-school to RSHiscores, so eventually 2007scape can have calculators. In doing so, I went ahead and broke existing usage, so it won't be a problem to support other APIs. Ironman adds different hiscores, but the only difference is rank, so I didn't bother. I didn't add other APIs since in IRC no one saw much use for them. Let me know if it all looks good, if so I'll send it to Wikia. I have really familarised myself with the JS Calc code and its existing usage, so I'm converting it to Lua, making the hiscores changes, templating it, and working on fixing some deficiencies in the process. - TehKittyCatTalk Wikian-Book 00:34, November 10, 2014 (UTC)

Good point and done. I noticed yesterday Scribunto has a category for pages with errors and thought it was neat then. The category I added is used for the specific old-usage case, but I named it generically so we can add other errors to it as needed. Too bad Wikia's tag report doesn't report parser functions anymore. - TehKittyCatTalk Wikian-Book 02:03, November 10, 2014 (UTC)

wait when did you archive um um THIRDEdit

what is this? do you still need it? Matt (t) 23:40, September 30, 2014 (UTC)


Special:AbuseLog/66443 MolMan 20:57, October 1, 2014 (UTC)


Is it possible to adjust the highlighting/selection colour, or is that chosen by the browser? Because it is currently showing like this for me, which barely stands out compared to the default/original. IP83.101.44.209 (talk) 05:22, October 4, 2014 (UTC)

Guess I'll go and blame FireFox then. The selection works fine on your talk page text, btw; not elsewhere. Now to figure out how to add that CSS override. Thanks, IP83.101.44.209 (talk) 09:25, October 4, 2014 (UTC)
On another note, I believe the CSS class "messagebox" still needs to have its colours changed to the new theme; as seen on Template:FromGame. IP83.101.44.209 (talk) 11:52, October 4, 2014 (UTC)

Mol told me to tell you about RuneScape:Active discussions still looking like the old theme Ancient talisman Oil4 Talk 17:27, October 4, 2014 (UTC)

Sortable TablesEdit

Hi Cqm, I'm having problems with sortable tables on certain pages that I edited and was wondering if you could help fix them and let me know what was causing this problem. I previously asked both IP83.101.44.209 and User:The Mol Man but sadly they doesn't know the answer to this and redirected me to you.

The issue seem to be that they do not follow alphabetical/numerical orders when sorted ascending/descending. I looked up various guides on the Internet, and found out that they are sorted in ASCII order, in which it usually is fine but sometimes get mixed up with large number values. Thus, I added the attribute "data-sort-type" on the column row headers depending on what order it needs to be sorted by. However, the problem still persists in which certain columns do not follow alphabetical order, and sometimes even the numbers too even after I clearly used the "data-sort-type="text"" and "data-sort-type="number"" respectively. So why is it that it is still not sorting in numerical/alphabetical order?

A clear example is the Solomon's General Store/Animations page I have been editing for the past few days. I used class="sortable" but certain numerical (and alphabetical) orders are messed up. Oddly enough, ascending/descending the sortable "Runecoins" column is fine, but when it came to sorting the "Loyalty points" column that has both number values and the template {{N/a}}, the order was a mess with both ascending and descending! The same goes for the "Restriction" column which was suppose to follow alphabetical order for easier type sorting, but unfortunately the sorting itself is chaos.

I would really appreciate it if you could look into this problem, and inform me about anything that must/mustn't be done in my future sortable table edits to prevent this from happening again. Thanks, JustAlmond toffeecute

It is fine with me thank you, take your time. Though do you think that this might really be a bug? Because if it is, I'm quite surprised that this is overlooked.
Here is a list of the pages that has sortable tables that are also disarranged when sorted (note that these are probably only few of the pages that I am aware of because I edited them in the past). Some of these pages already contain the attribute "data-sort-type" on selected columns because I experimented them myself. Tables of pages:
  • Solomon's General Store/Equipment - Runecoins column is correctly sorted for both ascending and descending. Loyalty points column is sorted in opposite (ascending is descending and vice versa) with the {{N/a}} template carrying a large value to be at the top when sorted descending.
  • Solomon's General Store/Accessories - Runecoins column is correctly sorted for both ascending and descending. Once again, Loyalty points column is in disorder when certain {{N/a}} templates fit themselves before and after selected values, and even the descending/ascending values aren't accurately sorted (bigger value after smaller/smaller after bigger value with numerous odd {{N/a}} template interruptions). Slot column follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order.
  • Solomon's General Store/Combat Gear - Runecoins column is correctly sorted for both ascending and descending. Loyalty points column experiences the same problem in sorting with the previously explained Solomon's General Store/Accessories page table with values being messed up in order with odd {{N/a}} template interruptions. Overriden Weapon Type column follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order.
  • Solomon's General Store/Titles - Runecoins and Loyalty points column is correctly sorted for both ascending and descending. Affixment column follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order, even with only 2 distinguishable values.
  • Solomon's General Store/Services - Runecoins column is correctly sorted for both ascending and descending. Loyalty points column is correctly sorted in ascending/descending values (assuming that due to the lack of number values), with the persisting problem of the odd {{N/a}} template interruptions.
  • Solomon's General Store/Animations - As you've seen this page yourself, Runecoins column is correctly sorted for both ascending and descending. Loyalty points column once again experiences the same problem in sorting with the previously explained Solomon's General Store/Combat Gear (and Solomon's General Store/Accessories) page table with values being messed up in order with odd {{N/a}} template interruptions. Restrictions column (all tables except Home teleports table) follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order.
In conclusion, you will notice the similarity of having the first few (usually only the first one) columns being sorted correctly in numerical order (due to having the price coming first before further informations). Consistent problems with these page tables when sorting include the tendency of not following numerical order, followed by the odd interruptions {{N/a}} template, and also the tendency of not following alphabetical order. Attribute "data-sort-type" are only added on selected columns due to experimentation and in general, they seem to bring almost no benefit when sorting (only the few columns which are sorted in numerical values usually benefit from this).

This page has sortable tables, but seem to work fine as it is, even without any attributes to sort them. Strangely, all values from the following tables are sorted in order but tables of the Solomon's General Store/Titles (explained earlier) which are not far off in differences of the table information, seem to experience this issue. Tables include:

And just when you might think the problem arises with the rowspan/colspan, I highly doubt that it is. Mainly because usually a whole different attribute doesn't affect one another, no? The reason why rowspan/colspan is present is to ensure information is conveyed in a easy, digestible way for those who dislike reading the already comprehensive texts on the pages, thus I tried to minimise the information used in a table, focusing more on only the values when possible. Regarding your question, rowspans exists because 2 different animations (as the example given) can only be purchased from a single pack (2 in 1) and can be separately selected in the Animations Customisation interface. Rowspan exists in this case to include two rows because of this similarity.JustAlmond toffeecute

So is there anything I could help around for now as you try to troubleshoot this issue? I'm not really a person who is experienced in coding, I usually just follow instructions I find but if there's something I could help with, I will try my best.
Speaking in which, have you tried tweaking the rowspan/colspan around to substantiate the fact that it is indeed the cause of this issue? Just so you know, the sorting disorder also exists where the template {{N/a}} isn't used (as mentioned in my last post). In actual fact, some columns that experience sorting disorder previously mentioned also does not use rowspan/colspan because these attributes are only used selectively. Thus this is why I highly doubt that it has any relations to the problem unless they correlate one another.JustAlmond toffeecute

RE: Historic volume dataEdit

replied in my talk page.   az talk   00:49, October 15, 2014 (UTC)


(What line is that roughly?) What I think I would have done that for is as a potential fallback for blank pages, where the template had been added but no prices entered yet. I'm not sure though, because I didn't quite find what piece of code you meant. Anyway, I think it might as well have been a just-in-case piece of code, as I do usually build in fallbacks for situations I can imagine happening without seeing any case of it going wrong yet. JOEYTJE50TALKpull my finger 17:01, October 20, 2014 (UTC)

Ah I think I built that in because when I wrote this script, the GEDB was having some problems every now and then, displaying a whole lot of zeroes for some items that didn't have enough data yet, or something. I'm assuming that GEDB bug has been fixed long ago already, but I do recall there being some problems with it back when I wrote this (I should have really added some documentation to my scripts Blush emo). Anyway, I'm assuming it's not really needed anymore. I've tweaked it a bit to also check for unixnow == 0 for the reason you mentioned, and I've also added some documentation-comments.
And for the NaN check, I found that somewhere on the internet (I'm guessing some StackOverflow question), and I decided it was better than an isNaN(x) test, because this test also discards float inputs, and the GE only uses ints. JOEYTJE50TALKpull my finger 11:19, October 21, 2014 (UTC)
Looks really good! Really easy to follow too, with all the comments. I've made a few fixes and/or changes, and added a note about the manual submission when the GEDB is down (in a // @todo comment). Anyway, it looks great! JOEYTJE50TALKpull my finger 12:08, October 22, 2014 (UTC)
PS: Are there any updates about Wikia adding mw:Extension:Tabs to this wiki? JOEYTJE50TALKpull my finger 17:00, October 22, 2014 (UTC)
Well, I changed it because that's more specific. What you're checking is if it's not -1, so it's clearer to make the code represent that. Of course > -1 will do exactly the same in this case, and it's even exactly as fast as !== -1, but with !== -1 it's more obvious what you're doing. If you think > -1 is better, you can change it back of course, it just seems more obvious what you're doing if you use !==. JOEYTJE50TALKpull my finger 15:03, October 23, 2014 (UTC)

Exchange modulesEdit

Just a few questions... Is it possible to:

  1. Add commas for the numbers? Prices, value, limit, etc. (except itemID of course). It is hard to differentiate between 10000000 (10m) and 100000000 (100m). This was discussed earlier, I believe, and the decision was to add commas to the prices (and other info) for user-friendly-ness. I know some would say that only bots do the updates, but let's assume that people need to be able to see/decipher the Module pages as well.
  2. Remove all the "--" comments?
  3. Rearrange the parameters? "Usage" can be placed last, after "Examine". And "itemId" should come up first, before "price".

And, does the GEMW graphs work with the new format in "Module:Exchange/Item/Data"? If I'm not mistaken, you need a "name" parameter to display the title for the graphs.   az talk   02:55, October 23, 2014 (UTC)


Can you write a short function that can get the price of a specified item, for use in other modules? e.g. price = require('Module:Exchange')._price would allow me to get the price as a raw, unformatted number with price('Abyssal whip'). MolMan 16:26, October 23, 2014 (UTC)

Why monobook no border?Edit

sorry for taking up so much space!   az talk   08:34, October 31, 2014 (UTC)


pls fixEdit

00:34 UTC

All right, then I at least know it's Wikia being slow again :P ThePsionictalk
08:37 UTC

hi CamEdit

I chose to use hashes, because that makes it much easier to dynamically update the url when you're on a page, so that any changes to the charts will automatically change the URL, which would make linking to the page automatically link to the same chart settings. Besides, url hashes work just fine too right?

I didn't really understand what you meant with that resp.parse.links thing. I couldn't ctrl+find it anywhere on the current or previous versions of the script.

About reviewing the code, and adding comments, I've only got one thing to say: You use Object.keys(), which is not supported by IE8-. Is it intended to support this for modern browsers only, or is it actually unintended to drop IE8 support altogether?

The averages do seem to have a quite some weird stuff in the GEMW/C interface, yes. That's probably because of the different way the charts work on GEMW/C, indeed. The GEMW/C page has no 'default' item listed, to make sure any items can be removed from it (on the popup chart, the default items are always listed). So, since the popup chart uses the original list of prices (in the HTML code; the list of prices that's used to generate the chart initially), it works fine on popups, but not on the GEMW/C page, because that page has no meaningful prices in its HTML code. I tried to fix this in my previous edits to the script, but those didn't really seem to work. I think perhaps the code that generates the averages needs to be changed to use something other than the prices listed in the HTML. I am quite busy with my homework again at the moment, but I might be able to help with a few bits. Like you said, if you don't get to it, I'll probably get to it if you don't. The code is much easier to read now (nice work btw), so it should be easier now, at least.

Good luck with the further changes to the script. JOEYTJE50TALKpull my finger 15:29, November 8, 2014 (UTC)

I don't remember what that code is for, but below it was another part of the script to which I've added an explanation. JOEYTJE50TALKpull my finger 17:45, November 8, 2014 (UTC)

Jadinko seed logs Edit

Hi, I've just finished getting data to update the logs for the types of seed you get when hunting jadinkos (User:IsobelJ/Jadinkos). I would ideally like the data to be turned into logs similar to the ones that are currently on the jadinkos' page but updated to reflect the new seeds they drop, and working more like the charm drop logs where it is easier for editors to add to them. I have no idea to make logs for myself though. I have already asked Joey if he would make something like this but he doesn't want to. Looking over the thread about making the logs again, I saw you said you could have a go at doing this. Would you still consider doing this? Thanks, IsobelJMagic logs detail 16:16, November 10, 2014 (UTC)


I'm pleased to inform you that your request for bureaucratship was successful. You can now grant and revoke sysop and bot flags, as well as make other users bureaucrats. Please be sure to follow the applicable policies and look for community consensus where necessary. I'm sure you will do a fine job, and feel free to contact me if you have any questions or concerns. Dtm142 (talk) 05:09, November 12, 2014 (UTC)

Congrats on the first successful RfA in 537 days, and the first successful RfB (in particular) in 1438 days! 22px-Logo.svg.png24px-TyA-pony.png 05:55, November 12, 2014 (UTC)
Good bye, cam. I'll miss you. MolMan 13:31, November 13, 2014 (UTC)

Sortable tablesEdit

Hey, I've had problems with sortable tables recently, by which I mean they sort once (descending), and the column freezes after that, resulting in nothing happening when you try to sort the table ascending. Sorting another column descending does work, but can afterwards also not be sorted ascending. Cook said that Tylio has also been noticing issues with the tables and that you might be the person to ask about this. Any ideas about what is going on? ThePsionictalk
16:29 UTC

gemwupdate (and whatever other scripts you're working on)Edit

Remember you wondered about why we had a "failsafe" for zero prices? Just to give an idea, for this item (and other similar items, 48 items in all), there are zero values for the prices between 12 November and 17 November (but there are prices before and after these dates). Thought you might you see it for yourself, and update the scripts if required.   az talk   03:39, November 20, 2014 (UTC)

RuneScape:Lua/Helper modulesEdit

Even if only 2 or 3 of us do any coding, I feel this page could prove helpful. MolMan 22:18, November 20, 2014 (UTC)

Template:Helper module c: MolMan 16:12, November 22, 2014 (UTC)


Are the clear classes enough for the intended purpose? Or should the inline styling be kept as a fallback? I only ask because I need that function for a messy module you shouldn't not look at ;( and I'm just adding the class instead of expanding a template. MolMan 02:18, November 22, 2014 (UTC)

Around Wikia's network

Random Wiki