RuneScape Planner

A planning tool for skilling progression in RuneScape

What started as my individual growth tracker grew into a large planner for questing and skilling in RuneScape. 

RuneScape Planner Site

A simple project

Although this is the smallest project I have included in my portfolio, it is filled with rich learning experiences and features. Similar to the Attendance tracker, I utilize APIs in Google Scripts to import character data. This time, instead of organizing user activity, the goal is to plan individual growth. 

Skilling

One of the two main areas of character progression in RuneScape is skilling, which is the collection of skill levels. This unlocks new features and stronger items.

I began by creating a structure for planning skilling gains. This would be done in two sheets: a Character Stats sheet and an Individual skill planner. The Character Stats sheet was quite simple: it merely displayed a character’s current levels, similar to how RuneScape presents skills in-game. A preview of this was at the top. The Skilling Planner sheet was where the majority of custom user inputs would be added. Here, I created a table template where a user could create a plan for leveling a skill, as seen below.

To have realtime data of a user’s stats, I accessed a character data API called HiScores. To understand which information could be accessed, I imported all of my character into a data sheet and compared it to my stats. Once I learned how data was imported, I could paste it into a data sheet and reference it in other sheets, which is my segue into my Quest planning section.

Questing

The other major area of the RuneScape player progression takes place in Quests. Skilling and Questing have a mutually beneficial relationship, where skilling levels are often requirements for quests, and great skilling perks are given upon completion of quests. Thus, it only made sense to include a Questing planner in the sheet.

One particularly interesting aspect of RuneScape is that almost every quest is a prerequisite to another quest, oftentimes called prequests. A majority of quest planning is done by seeing the requirements for each individual prequest. I created a lookup feature that displays all prequests for one selected quest, along with each requirement.

An additional feature I included was a Questing to-do list, where all questing goals could be planned, along with a quick display of the remaining prequests. Below, I give an example of a couple of quests I wanted to complete in the todo list.

Coding the APIs

The RuneScape APIs gave me an opportunity to import realtime character data. This feature, however, brought along many challenges. Filtering information from APIs, for instance, was a challenging feature to implement. The more information you import from an API, the longer the script runs. Thus, an import that filtered through unnecessary information was preferable. Below are two different APIs that I accessed. On the left is the HiScores API, where character information is imported. On the right is the RuneMetrics API, where questing information is imported. With the two, I was capable of displaying up-to-date information about any character on RuneScape.

Specifications

  • Five Sheets
    • Instructions – All information required to fully utilize the sheet is presented here.
    • Character Stats – A small display of skill levels.
    • Skilling Template – A template for planning skilling goals with a full explanation on the inputs.
    • Questing – A personal questing to-do list is created here, along with the questing requirements.
    • Quest Analysis – Displays a thorough analysis of a quest, with prequests listed with their skill level requirements
  • Six functions
    • importCSVhighscore() – Imports character skill data from the HiScores API.
    • importQuests() – Imports character quest data from the RuneMetrics API.
    • setHeaders() – Organizes imported information from both APIs into the Sheet.
    • GetQuestData() – Displays prequests for a quest selected in the Quest Analysis sheet.
    • GetReferences() – Searches for prequests for a specific quest. This function is used in the GetQuestData() function.
    • function(search) – A function which allowed me to search through APIs’ returned results.