diff --git a/osrs-grid-master/Grid_Master_Raw.png b/osrs-grid-master/Grid_Master_Raw.png new file mode 100644 index 0000000..f24845d Binary files /dev/null and b/osrs-grid-master/Grid_Master_Raw.png differ diff --git a/osrs-grid-master/data/user-progress.json b/osrs-grid-master/data/user-progress.json index 489403e..ddc8f41 100644 --- a/osrs-grid-master/data/user-progress.json +++ b/osrs-grid-master/data/user-progress.json @@ -498,5 +498,4522 @@ "completedRows": [], "completedCols": [], "lastUpdated": "2025-09-23T12:24:55.517Z" + }, + "bold-crown-heals": { + "username": "", + "passphrase": "bold-crown-heals", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": true, + "row": 0, + "col": 0 + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": true, + "row": 0, + "col": 1 + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": true, + "row": 0, + "col": 2 + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": true, + "row": 0, + "col": 3 + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": true, + "row": 0, + "col": 4 + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": true, + "row": 0, + "col": 5 + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": true, + "row": 0, + "col": 6 + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0 + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1 + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2 + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3 + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4 + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5 + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6 + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0 + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1 + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2 + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3 + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4 + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5 + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6 + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0 + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1 + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2 + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3 + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4 + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5 + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6 + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0 + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1 + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2 + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3 + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4 + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5 + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6 + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0 + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1 + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2 + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3 + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4 + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5 + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6 + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0 + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1 + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2 + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3 + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4 + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5 + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6 + } + ], + "totalPoints": 8, + "completedRows": [ + 0 + ], + "completedCols": [], + "lastUpdated": "2025-09-23T12:40:49.975Z" + }, + "cool-valley-swims": { + "username": "", + "passphrase": "cool-valley-swims", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 0 + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 1 + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 2 + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 3 + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 4 + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 5 + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 0, + "col": 6 + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0 + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1 + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2 + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3 + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4 + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5 + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6 + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0 + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1 + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2 + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3 + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4 + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5 + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6 + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0 + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1 + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2 + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3 + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4 + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5 + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6 + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0 + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1 + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2 + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3 + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4 + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5 + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6 + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0 + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1 + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2 + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3 + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4 + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5 + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6 + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0 + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1 + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2 + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3 + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4 + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5 + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6 + } + ], + "totalPoints": 0, + "completedRows": [], + "completedCols": [], + "lastUpdated": "2025-09-23T12:49:17.150Z" + }, + "kind-castle-jumps": { + "username": "", + "passphrase": "kind-castle-jumps", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 0, + "type": "main" + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 1, + "type": "main" + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 2, + "type": "main" + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 3, + "type": "main" + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 4, + "type": "main" + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 5, + "type": "main" + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 0, + "col": 6, + "type": "main" + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0, + "type": "main" + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1, + "type": "main" + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2, + "type": "main" + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3, + "type": "main" + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4, + "type": "main" + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5, + "type": "main" + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6, + "type": "main" + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0, + "type": "main" + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1, + "type": "main" + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2, + "type": "main" + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3, + "type": "main" + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4, + "type": "main" + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5, + "type": "main" + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6, + "type": "main" + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0, + "type": "main" + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1, + "type": "main" + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2, + "type": "main" + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3, + "type": "main" + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4, + "type": "main" + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5, + "type": "main" + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6, + "type": "main" + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0, + "type": "main" + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1, + "type": "main" + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2, + "type": "main" + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3, + "type": "main" + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4, + "type": "main" + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5, + "type": "main" + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6, + "type": "main" + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0, + "type": "main" + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1, + "type": "main" + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2, + "type": "main" + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3, + "type": "main" + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4, + "type": "main" + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5, + "type": "main" + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6, + "type": "main" + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0, + "type": "main" + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1, + "type": "main" + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2, + "type": "main" + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3, + "type": "main" + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4, + "type": "main" + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5, + "type": "main" + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6, + "type": "main" + }, + { + "id": "side-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": -1, + "type": "side" + }, + { + "id": "side-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 1, + "col": -1, + "type": "side" + }, + { + "id": "side-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 2, + "col": -1, + "type": "side" + }, + { + "id": "side-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 3, + "col": -1, + "type": "side" + }, + { + "id": "side-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 4, + "col": -1, + "type": "side" + }, + { + "id": "side-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 5, + "col": -1, + "type": "side" + }, + { + "id": "side-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 6, + "col": -1, + "type": "side" + }, + { + "id": "bottom-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 0, + "type": "bottom" + }, + { + "id": "bottom-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 1, + "type": "bottom" + }, + { + "id": "bottom-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 2, + "type": "bottom" + }, + { + "id": "bottom-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 3, + "type": "bottom" + }, + { + "id": "bottom-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 4, + "type": "bottom" + }, + { + "id": "bottom-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 5, + "type": "bottom" + }, + { + "id": "bottom-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 6, + "type": "bottom" + } + ], + "totalPoints": 0, + "completedRows": [], + "completedCols": [], + "lastUpdated": "2025-10-02T00:25:43.355Z" + }, + "wild-badge-climbs": { + "username": "", + "passphrase": "wild-badge-climbs", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 0, + "type": "main" + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 1, + "type": "main" + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 2, + "type": "main" + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 3, + "type": "main" + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 4, + "type": "main" + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 5, + "type": "main" + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 0, + "col": 6, + "type": "main" + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0, + "type": "main" + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1, + "type": "main" + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2, + "type": "main" + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3, + "type": "main" + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4, + "type": "main" + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5, + "type": "main" + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6, + "type": "main" + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0, + "type": "main" + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1, + "type": "main" + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2, + "type": "main" + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3, + "type": "main" + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4, + "type": "main" + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5, + "type": "main" + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6, + "type": "main" + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0, + "type": "main" + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1, + "type": "main" + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2, + "type": "main" + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3, + "type": "main" + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4, + "type": "main" + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5, + "type": "main" + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6, + "type": "main" + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0, + "type": "main" + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1, + "type": "main" + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2, + "type": "main" + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3, + "type": "main" + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4, + "type": "main" + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5, + "type": "main" + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6, + "type": "main" + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0, + "type": "main" + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1, + "type": "main" + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2, + "type": "main" + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3, + "type": "main" + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4, + "type": "main" + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5, + "type": "main" + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6, + "type": "main" + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0, + "type": "main" + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1, + "type": "main" + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2, + "type": "main" + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3, + "type": "main" + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4, + "type": "main" + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5, + "type": "main" + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6, + "type": "main" + }, + { + "id": "side-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": -1, + "type": "side" + }, + { + "id": "side-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 1, + "col": -1, + "type": "side" + }, + { + "id": "side-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 2, + "col": -1, + "type": "side" + }, + { + "id": "side-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 3, + "col": -1, + "type": "side" + }, + { + "id": "side-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 4, + "col": -1, + "type": "side" + }, + { + "id": "side-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 5, + "col": -1, + "type": "side" + }, + { + "id": "side-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 6, + "col": -1, + "type": "side" + }, + { + "id": "bottom-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 0, + "type": "bottom" + }, + { + "id": "bottom-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 1, + "type": "bottom" + }, + { + "id": "bottom-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 2, + "type": "bottom" + }, + { + "id": "bottom-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 3, + "type": "bottom" + }, + { + "id": "bottom-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 4, + "type": "bottom" + }, + { + "id": "bottom-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 5, + "type": "bottom" + }, + { + "id": "bottom-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 6, + "type": "bottom" + } + ], + "totalPoints": 0, + "completedRows": [], + "completedCols": [], + "lastUpdated": "2025-10-02T00:29:11.163Z" + }, + "wide-dragon-dances": { + "username": "", + "passphrase": "wide-dragon-dances", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 0, + "type": "main" + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 1, + "type": "main" + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 2, + "type": "main" + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 3, + "type": "main" + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 4, + "type": "main" + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 5, + "type": "main" + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 0, + "col": 6, + "type": "main" + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0, + "type": "main" + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1, + "type": "main" + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2, + "type": "main" + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3, + "type": "main" + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4, + "type": "main" + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5, + "type": "main" + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6, + "type": "main" + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0, + "type": "main" + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1, + "type": "main" + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2, + "type": "main" + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3, + "type": "main" + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4, + "type": "main" + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5, + "type": "main" + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6, + "type": "main" + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0, + "type": "main" + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1, + "type": "main" + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2, + "type": "main" + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3, + "type": "main" + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4, + "type": "main" + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5, + "type": "main" + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6, + "type": "main" + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0, + "type": "main" + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1, + "type": "main" + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2, + "type": "main" + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3, + "type": "main" + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4, + "type": "main" + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5, + "type": "main" + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6, + "type": "main" + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0, + "type": "main" + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1, + "type": "main" + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2, + "type": "main" + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3, + "type": "main" + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4, + "type": "main" + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5, + "type": "main" + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6, + "type": "main" + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0, + "type": "main" + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1, + "type": "main" + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2, + "type": "main" + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3, + "type": "main" + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4, + "type": "main" + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5, + "type": "main" + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6, + "type": "main" + }, + { + "id": "side-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": -1, + "type": "side" + }, + { + "id": "side-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 1, + "col": -1, + "type": "side" + }, + { + "id": "side-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 2, + "col": -1, + "type": "side" + }, + { + "id": "side-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 3, + "col": -1, + "type": "side" + }, + { + "id": "side-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 4, + "col": -1, + "type": "side" + }, + { + "id": "side-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 5, + "col": -1, + "type": "side" + }, + { + "id": "side-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 6, + "col": -1, + "type": "side" + }, + { + "id": "bottom-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 0, + "type": "bottom" + }, + { + "id": "bottom-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 1, + "type": "bottom" + }, + { + "id": "bottom-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 2, + "type": "bottom" + }, + { + "id": "bottom-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 3, + "type": "bottom" + }, + { + "id": "bottom-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 4, + "type": "bottom" + }, + { + "id": "bottom-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 5, + "type": "bottom" + }, + { + "id": "bottom-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 6, + "type": "bottom" + } + ], + "totalPoints": 0, + "completedRows": [], + "completedCols": [], + "lastUpdated": "2025-10-02T00:35:43.459Z" + }, + "bright-dragon-sings": { + "username": "", + "passphrase": "bright-dragon-sings", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 0, + "type": "main" + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 1, + "type": "main" + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 2, + "type": "main" + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 3, + "type": "main" + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 4, + "type": "main" + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 5, + "type": "main" + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 0, + "col": 6, + "type": "main" + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0, + "type": "main" + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1, + "type": "main" + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2, + "type": "main" + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3, + "type": "main" + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4, + "type": "main" + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5, + "type": "main" + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6, + "type": "main" + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0, + "type": "main" + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1, + "type": "main" + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2, + "type": "main" + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3, + "type": "main" + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4, + "type": "main" + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5, + "type": "main" + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6, + "type": "main" + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0, + "type": "main" + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1, + "type": "main" + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2, + "type": "main" + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3, + "type": "main" + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4, + "type": "main" + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5, + "type": "main" + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6, + "type": "main" + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0, + "type": "main" + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1, + "type": "main" + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2, + "type": "main" + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3, + "type": "main" + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4, + "type": "main" + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5, + "type": "main" + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6, + "type": "main" + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0, + "type": "main" + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1, + "type": "main" + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2, + "type": "main" + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3, + "type": "main" + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4, + "type": "main" + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5, + "type": "main" + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6, + "type": "main" + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0, + "type": "main" + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1, + "type": "main" + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2, + "type": "main" + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3, + "type": "main" + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4, + "type": "main" + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5, + "type": "main" + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6, + "type": "main" + }, + { + "id": "side-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": -1, + "type": "side" + }, + { + "id": "side-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 1, + "col": -1, + "type": "side" + }, + { + "id": "side-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 2, + "col": -1, + "type": "side" + }, + { + "id": "side-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 3, + "col": -1, + "type": "side" + }, + { + "id": "side-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 4, + "col": -1, + "type": "side" + }, + { + "id": "side-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 5, + "col": -1, + "type": "side" + }, + { + "id": "side-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 6, + "col": -1, + "type": "side" + }, + { + "id": "bottom-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 0, + "type": "bottom" + }, + { + "id": "bottom-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 1, + "type": "bottom" + }, + { + "id": "bottom-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 2, + "type": "bottom" + }, + { + "id": "bottom-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 3, + "type": "bottom" + }, + { + "id": "bottom-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 4, + "type": "bottom" + }, + { + "id": "bottom-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 5, + "type": "bottom" + }, + { + "id": "bottom-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 6, + "type": "bottom" + } + ], + "totalPoints": 0, + "completedRows": [], + "completedCols": [], + "lastUpdated": "2025-10-02T00:38:39.254Z" + }, + "sharp-badge-explores": { + "username": "", + "passphrase": "sharp-badge-explores", + "tasks": [ + { + "id": "0-0", + "title": "First Steps", + "description": "Complete Tutorial Island", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 0, + "type": "main" + }, + { + "id": "0-1", + "title": "Combat Ready", + "description": "Reach 10 Attack", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 1, + "type": "main" + }, + { + "id": "0-2", + "title": "Magic Apprentice", + "description": "Reach 10 Magic", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 2, + "type": "main" + }, + { + "id": "0-3", + "title": "Archer Training", + "description": "Reach 10 Ranged", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 3, + "type": "main" + }, + { + "id": "0-4", + "title": "Prayer Novice", + "description": "Reach 10 Prayer", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 4, + "type": "main" + }, + { + "id": "0-5", + "title": "Crafting Start", + "description": "Reach 10 Crafting", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": 5, + "type": "main" + }, + { + "id": "0-6", + "title": "Cook's Assistant", + "description": "Complete Cook's Assistant quest", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 0, + "col": 6, + "type": "main" + }, + { + "id": "1-0", + "title": "Quest Points", + "description": "Earn 10 Quest Points", + "difficulty": "easy", + "points": 2, + "completed": false, + "row": 1, + "col": 0, + "type": "main" + }, + { + "id": "1-1", + "title": "Combat Training", + "description": "Reach 20 Attack", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 1, + "type": "main" + }, + { + "id": "1-2", + "title": "Mage Training", + "description": "Reach 20 Magic", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 2, + "type": "main" + }, + { + "id": "1-3", + "title": "Archer Progress", + "description": "Reach 20 Ranged", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 3, + "type": "main" + }, + { + "id": "1-4", + "title": "Holy Training", + "description": "Reach 20 Prayer", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 4, + "type": "main" + }, + { + "id": "1-5", + "title": "Artisan Skills", + "description": "Reach 20 Crafting", + "difficulty": "medium", + "points": 2, + "completed": false, + "row": 1, + "col": 5, + "type": "main" + }, + { + "id": "1-6", + "title": "Demon Slayer", + "description": "Complete Demon Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 1, + "col": 6, + "type": "main" + }, + { + "id": "2-0", + "title": "Quest Master", + "description": "Earn 25 Quest Points", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 0, + "type": "main" + }, + { + "id": "2-1", + "title": "Warrior", + "description": "Reach 30 Attack", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 1, + "type": "main" + }, + { + "id": "2-2", + "title": "Wizard", + "description": "Reach 30 Magic", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 2, + "type": "main" + }, + { + "id": "2-3", + "title": "Marksman", + "description": "Reach 30 Ranged", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 3, + "type": "main" + }, + { + "id": "2-4", + "title": "Devout", + "description": "Reach 30 Prayer", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 4, + "type": "main" + }, + { + "id": "2-5", + "title": "Artisan", + "description": "Reach 30 Crafting", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 5, + "type": "main" + }, + { + "id": "2-6", + "title": "Vampire Slayer", + "description": "Complete Vampire Slayer quest", + "difficulty": "medium", + "points": 3, + "completed": false, + "row": 2, + "col": 6, + "type": "main" + }, + { + "id": "3-0", + "title": "Quest Veteran", + "description": "Earn 50 Quest Points", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 0, + "type": "main" + }, + { + "id": "3-1", + "title": "Elite Warrior", + "description": "Reach 40 Attack", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 1, + "type": "main" + }, + { + "id": "3-2", + "title": "Elite Mage", + "description": "Reach 40 Magic", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 2, + "type": "main" + }, + { + "id": "3-3", + "title": "Elite Archer", + "description": "Reach 40 Ranged", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 3, + "type": "main" + }, + { + "id": "3-4", + "title": "High Priest", + "description": "Reach 43 Prayer", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 4, + "type": "main" + }, + { + "id": "3-5", + "title": "Master Crafter", + "description": "Reach 40 Crafting", + "difficulty": "hard", + "points": 4, + "completed": false, + "row": 3, + "col": 5, + "type": "main" + }, + { + "id": "3-6", + "title": "Dragon Slayer", + "description": "Complete Dragon Slayer I", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 3, + "col": 6, + "type": "main" + }, + { + "id": "4-0", + "title": "Quest Champion", + "description": "Earn 100 Quest Points", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 0, + "type": "main" + }, + { + "id": "4-1", + "title": "Rune Warrior", + "description": "Reach 50 Attack", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 1, + "type": "main" + }, + { + "id": "4-2", + "title": "High Mage", + "description": "Reach 50 Magic", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 2, + "type": "main" + }, + { + "id": "4-3", + "title": "Master Archer", + "description": "Reach 50 Ranged", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 3, + "type": "main" + }, + { + "id": "4-4", + "title": "Prayer Master", + "description": "Reach 50 Prayer", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 4, + "type": "main" + }, + { + "id": "4-5", + "title": "Craft Master", + "description": "Reach 50 Crafting", + "difficulty": "hard", + "points": 5, + "completed": false, + "row": 4, + "col": 5, + "type": "main" + }, + { + "id": "4-6", + "title": "Barrows Gloves", + "description": "Complete Recipe for Disaster", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 4, + "col": 6, + "type": "main" + }, + { + "id": "5-0", + "title": "Quest Legend", + "description": "Earn 150 Quest Points", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 0, + "type": "main" + }, + { + "id": "5-1", + "title": "Dragon Warrior", + "description": "Reach 60 Attack", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 1, + "type": "main" + }, + { + "id": "5-2", + "title": "Ancient Mage", + "description": "Reach 60 Magic", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 2, + "type": "main" + }, + { + "id": "5-3", + "title": "Expert Archer", + "description": "Reach 60 Ranged", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 3, + "type": "main" + }, + { + "id": "5-4", + "title": "Holy Master", + "description": "Reach 60 Prayer", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 4, + "type": "main" + }, + { + "id": "5-5", + "title": "Elite Crafter", + "description": "Reach 60 Crafting", + "difficulty": "expert", + "points": 6, + "completed": false, + "row": 5, + "col": 5, + "type": "main" + }, + { + "id": "5-6", + "title": "Fire Cape", + "description": "Obtain Fire Cape from Fight Caves", + "difficulty": "expert", + "points": 10, + "completed": false, + "row": 5, + "col": 6, + "type": "main" + }, + { + "id": "6-0", + "title": "Quest Grandmaster", + "description": "Earn 200 Quest Points", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 0, + "type": "main" + }, + { + "id": "6-1", + "title": "Whip Master", + "description": "Reach 70 Attack", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 1, + "type": "main" + }, + { + "id": "6-2", + "title": "Arcane Master", + "description": "Reach 70 Magic", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 2, + "type": "main" + }, + { + "id": "6-3", + "title": "Legendary Archer", + "description": "Reach 70 Ranged", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 3, + "type": "main" + }, + { + "id": "6-4", + "title": "Divine Master", + "description": "Reach 70 Prayer", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 4, + "type": "main" + }, + { + "id": "6-5", + "title": "Legendary Crafter", + "description": "Reach 70 Crafting", + "difficulty": "expert", + "points": 8, + "completed": false, + "row": 6, + "col": 5, + "type": "main" + }, + { + "id": "6-6", + "title": "ToA Completion", + "description": "Complete Tombs of Amascut", + "difficulty": "expert", + "points": 15, + "completed": false, + "row": 6, + "col": 6, + "type": "main" + }, + { + "id": "side-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 0, + "col": -1, + "type": "side" + }, + { + "id": "side-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 1, + "col": -1, + "type": "side" + }, + { + "id": "side-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 2, + "col": -1, + "type": "side" + }, + { + "id": "side-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 3, + "col": -1, + "type": "side" + }, + { + "id": "side-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 4, + "col": -1, + "type": "side" + }, + { + "id": "side-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 5, + "col": -1, + "type": "side" + }, + { + "id": "side-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 6, + "col": -1, + "type": "side" + }, + { + "id": "bottom-0", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 0, + "type": "bottom" + }, + { + "id": "bottom-1", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 1, + "type": "bottom" + }, + { + "id": "bottom-2", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 2, + "type": "bottom" + }, + { + "id": "bottom-3", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 3, + "type": "bottom" + }, + { + "id": "bottom-4", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 4, + "type": "bottom" + }, + { + "id": "bottom-5", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 5, + "type": "bottom" + }, + { + "id": "bottom-6", + "title": "Custom Goal", + "description": "Set your own challenge", + "difficulty": "easy", + "points": 1, + "completed": false, + "row": 7, + "col": 6, + "type": "bottom" + } + ], + "totalPoints": 0, + "completedRows": [], + "completedCols": [], + "lastUpdated": "2025-10-02T00:43:09.364Z" } } \ No newline at end of file diff --git a/osrs-grid-master/public/cell_tile.png b/osrs-grid-master/public/cell_tile.png new file mode 100644 index 0000000..907836e Binary files /dev/null and b/osrs-grid-master/public/cell_tile.png differ diff --git a/osrs-grid-master/public/cell_tile_nontransparent.png b/osrs-grid-master/public/cell_tile_nontransparent.png new file mode 100644 index 0000000..a7bae48 Binary files /dev/null and b/osrs-grid-master/public/cell_tile_nontransparent.png differ diff --git a/osrs-grid-master/src/app/favicon.ico b/osrs-grid-master/src/app/favicon.ico index 718d6fe..fee60c4 100644 Binary files a/osrs-grid-master/src/app/favicon.ico and b/osrs-grid-master/src/app/favicon.ico differ diff --git a/osrs-grid-master/src/app/layout.tsx b/osrs-grid-master/src/app/layout.tsx index f7fa87e..732dd4c 100644 --- a/osrs-grid-master/src/app/layout.tsx +++ b/osrs-grid-master/src/app/layout.tsx @@ -13,8 +13,11 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "OSRS Grid Master Tracker", + description: "A tracker for OSRS Grid Master", + icons: { + icon: "/favicon.ico", + }, }; export default function RootLayout({ diff --git a/osrs-grid-master/src/app/page.tsx b/osrs-grid-master/src/app/page.tsx index 0e22b5d..84c3246 100644 --- a/osrs-grid-master/src/app/page.tsx +++ b/osrs-grid-master/src/app/page.tsx @@ -4,6 +4,7 @@ import { useState, useEffect } from 'react'; import CharacterLookup from '@/components/CharacterLookup'; import PassphraseLogin from '@/components/PassphraseLogin'; import GridMaster from '@/components/GridMaster'; +import Toast from '@/components/Toast'; import { UserProgress, OSRSHiscoreStats, GridTask } from '@/types/osrs'; import { defaultGridTasks } from '@/data/grid-tasks'; import { saveProgress, loadProgress } from '@/lib/progress-api'; @@ -14,6 +15,15 @@ export default function Home() { const [currentPlayer, setCurrentPlayer] = useState(''); const [playerStats, setPlayerStats] = useState(null); const [saving, setSaving] = useState(false); + const [toastMessage, setToastMessage] = useState(null); + + // Load passphrase from localStorage on mount + useEffect(() => { + const savedPassphrase = localStorage.getItem('osrs-grid-passphrase'); + if (savedPassphrase) { + setCurrentPassphrase(savedPassphrase); + } + }, []); useEffect(() => { if (currentPassphrase) { @@ -46,8 +56,10 @@ export default function Home() { setUserProgress(null); setCurrentPlayer(''); setPlayerStats(null); + localStorage.removeItem('osrs-grid-passphrase'); } else { setCurrentPassphrase(passphrase); + localStorage.setItem('osrs-grid-passphrase', passphrase); } }; @@ -69,8 +81,16 @@ export default function Home() { if (!currentPassphrase) return; setSaving(true); - await saveProgress(currentPassphrase, progress); - setSaving(false); + setToastMessage('Saving progress...'); + + try { + await saveProgress(currentPassphrase, progress); + setToastMessage('Progress saved!'); + } catch (error) { + setToastMessage('Failed to save progress'); + } finally { + setSaving(false); + } }; const handleTaskToggle = (taskId: string) => { @@ -134,11 +154,6 @@ export default function Home() {

Track your progress for the Grid Master event (Oct 15 - Nov 12, 2025)

- {saving && ( -
- Saving progress... -
- )}
@@ -176,6 +191,15 @@ export default function Home() { )}
+ + {/* Toast notification */} + {toastMessage && ( + setToastMessage(null)} + /> + )} ); diff --git a/osrs-grid-master/src/components/GridMaster.tsx b/osrs-grid-master/src/components/GridMaster.tsx index 37989af..198e7e5 100644 --- a/osrs-grid-master/src/components/GridMaster.tsx +++ b/osrs-grid-master/src/components/GridMaster.tsx @@ -74,9 +74,11 @@ export default function GridMaster({ tasks = defaultGridTasks, onTaskToggle, rea const completedTasks = gridTasks.filter(task => task.completed).length; return ( -
+
-

Grid Master Progress

+

Grid Master

Total Points: @@ -84,7 +86,7 @@ export default function GridMaster({ tasks = defaultGridTasks, onTaskToggle, rea
Completed Tasks: - {completedTasks}/49 + {completedTasks}/{gridTasks.length}
Complete Rows: @@ -97,67 +99,122 @@ export default function GridMaster({ tasks = defaultGridTasks, onTaskToggle, rea
-
- {Array.from({ length: 7 }, (_, row) => - Array.from({ length: 7 }, (_, col) => { - const task = gridTasks.find(t => t.row === row && t.col === col); - if (!task) return null; - - const isRowComplete = completedRows.includes(row); - const isColComplete = completedCols.includes(col); - const hasBonus = isRowComplete || isColComplete; +
+ {/* Side nodes column */} +
+ {Array.from({ length: 7 }, (_, row) => { + const task = gridTasks.find(t => t.row === row && t.col === -1 && t.type === 'side'); + if (!task) return
; return (
handleTaskClick(task.id)} className={` - relative p-3 border-2 rounded-lg transition-all duration-200 - ${task.completed ? 'bg-green-50 border-green-400' : getDifficultyColor(task.difficulty)} + relative p-2 border-2 rounded-lg transition-all duration-200 + ${task.completed ? 'bg-green-50 border-green-400' : 'bg-gray-800 border-gray-600'} ${readonly ? 'cursor-default' : 'cursor-pointer hover:shadow-md'} - ${hasBonus ? 'ring-2 ring-yellow-400 ring-opacity-60' : ''} - min-h-[120px] flex flex-col justify-between + w-16 h-16 flex items-center justify-center `} > - {task.completed && ( -
- + {task.completed ? ( +
+
+ ) : ( +
?
)} - - {hasBonus && ( -
- - - -
- )} - -
- {task.title} -
- -
- {task.description} -
- -
- - {task.difficulty} - - - {task.points}pt{hasBonus ? ' +bonus' : ''} - -
); - }) - )} + })} +
+ + {/* Main 7x7 grid */} +
+ {Array.from({ length: 7 }, (_, row) => + Array.from({ length: 7 }, (_, col) => { + const task = gridTasks.find(t => t.row === row && t.col === col && t.type === 'main'); + if (!task) return null; + + const isRowComplete = completedRows.includes(row); + const isColComplete = completedCols.includes(col); + const hasBonus = isRowComplete || isColComplete; + + return ( +
handleTaskClick(task.id)} + className={` + relative p-2 border-2 rounded-lg transition-all duration-200 + ${task.completed ? 'bg-green-50 border-green-400' : 'bg-blue-900 border-blue-600'} + ${readonly ? 'cursor-default' : 'cursor-pointer hover:shadow-md'} + ${hasBonus ? 'ring-2 ring-yellow-400 ring-opacity-60' : ''} + w-16 h-16 flex flex-col justify-center items-center + `} + > + {task.completed ? ( +
+ + + +
+ ) : ( + Bingo tile + )} + + {hasBonus && ( +
+ + + +
+ )} +
+ ); + }) + )} +
-
+ {/* Bottom nodes row */} +
+ {Array.from({ length: 7 }, (_, col) => { + const task = gridTasks.find(t => t.row === 7 && t.col === col && t.type === 'bottom'); + if (!task) return
; + + return ( +
handleTaskClick(task.id)} + className={` + relative p-2 border-2 rounded-lg transition-all duration-200 + ${task.completed ? 'bg-green-50 border-green-400' : 'bg-gray-800 border-gray-600'} + ${readonly ? 'cursor-default' : 'cursor-pointer hover:shadow-md'} + w-16 h-16 flex items-center justify-center + `} + > + {task.completed ? ( +
+ + + +
+ ) : ( +
?
+ )} +
+ ); + })} +
+ +
@@ -176,7 +233,7 @@ export default function GridMaster({ tasks = defaultGridTasks, onTaskToggle, rea Expert (6-15 pts)
-

+

Complete full rows or columns for bonus rewards! Tasks with the ⭐ symbol are part of a completed line.

diff --git a/osrs-grid-master/src/components/Toast.tsx b/osrs-grid-master/src/components/Toast.tsx new file mode 100644 index 0000000..f9ab25c --- /dev/null +++ b/osrs-grid-master/src/components/Toast.tsx @@ -0,0 +1,55 @@ +'use client'; + +import { useEffect, useState } from 'react'; + +interface ToastProps { + message: string; + type?: 'success' | 'error' | 'info'; + duration?: number; + onClose?: () => void; +} + +export default function Toast({ message, type = 'info', duration = 3000, onClose }: ToastProps) { + const [isVisible, setIsVisible] = useState(true); + + useEffect(() => { + const timer = setTimeout(() => { + setIsVisible(false); + setTimeout(() => onClose?.(), 300); // Wait for fade out animation + }, duration); + + return () => clearTimeout(timer); + }, [duration, onClose]); + + const getStyles = () => { + switch (type) { + case 'success': + return 'bg-green-500 text-white'; + case 'error': + return 'bg-red-500 text-white'; + default: + return 'bg-blue-500 text-white'; + } + }; + + return ( +
+
+ {message} + +
+
+ ); +} \ No newline at end of file diff --git a/osrs-grid-master/src/data/grid-tasks.ts b/osrs-grid-master/src/data/grid-tasks.ts index a6cc2ad..4fc90fe 100644 --- a/osrs-grid-master/src/data/grid-tasks.ts +++ b/osrs-grid-master/src/data/grid-tasks.ts @@ -2,65 +2,83 @@ import { GridTask } from '@/types/osrs'; export const defaultGridTasks: GridTask[] = [ // Row 0 - { id: '0-0', title: 'First Steps', description: 'Complete Tutorial Island', difficulty: 'easy', points: 1, completed: false, row: 0, col: 0 }, - { id: '0-1', title: 'Combat Ready', description: 'Reach 10 Attack', difficulty: 'easy', points: 1, completed: false, row: 0, col: 1 }, - { id: '0-2', title: 'Magic Apprentice', description: 'Reach 10 Magic', difficulty: 'easy', points: 1, completed: false, row: 0, col: 2 }, - { id: '0-3', title: 'Archer Training', description: 'Reach 10 Ranged', difficulty: 'easy', points: 1, completed: false, row: 0, col: 3 }, - { id: '0-4', title: 'Prayer Novice', description: 'Reach 10 Prayer', difficulty: 'easy', points: 1, completed: false, row: 0, col: 4 }, - { id: '0-5', title: 'Crafting Start', description: 'Reach 10 Crafting', difficulty: 'easy', points: 1, completed: false, row: 0, col: 5 }, - { id: '0-6', title: 'Cook\'s Assistant', description: 'Complete Cook\'s Assistant quest', difficulty: 'easy', points: 2, completed: false, row: 0, col: 6 }, + { id: '0-0', title: 'First Steps', description: 'Complete Tutorial Island', difficulty: 'easy', points: 1, completed: false, row:0, col: 0, type: 'main' , type: 'main' }, + { id: '0-1', title: 'Combat Ready', description: 'Reach 10 Attack', difficulty: 'easy', points: 1, completed: false, row:0, col: 1, type: 'main' , type: 'main' }, + { id: '0-2', title: 'Magic Apprentice', description: 'Reach 10 Magic', difficulty: 'easy', points: 1, completed: false, row:0, col: 2, type: 'main' , type: 'main' }, + { id: '0-3', title: 'Archer Training', description: 'Reach 10 Ranged', difficulty: 'easy', points: 1, completed: false, row:0, col: 3, type: 'main' , type: 'main' }, + { id: '0-4', title: 'Prayer Novice', description: 'Reach 10 Prayer', difficulty: 'easy', points: 1, completed: false, row:0, col: 4, type: 'main' , type: 'main' }, + { id: '0-5', title: 'Crafting Start', description: 'Reach 10 Crafting', difficulty: 'easy', points: 1, completed: false, row:0, col: 5, type: 'main' , type: 'main' }, + { id: '0-6', title: 'Cook\'s Assistant', description: 'Complete Cook\'s Assistant quest', difficulty: 'easy', points: 2, completed: false, row:0, col: 6, type: 'main' , type: 'main' }, // Row 1 - { id: '1-0', title: 'Quest Points', description: 'Earn 10 Quest Points', difficulty: 'easy', points: 2, completed: false, row: 1, col: 0 }, - { id: '1-1', title: 'Combat Training', description: 'Reach 20 Attack', difficulty: 'medium', points: 2, completed: false, row: 1, col: 1 }, - { id: '1-2', title: 'Mage Training', description: 'Reach 20 Magic', difficulty: 'medium', points: 2, completed: false, row: 1, col: 2 }, - { id: '1-3', title: 'Archer Progress', description: 'Reach 20 Ranged', difficulty: 'medium', points: 2, completed: false, row: 1, col: 3 }, - { id: '1-4', title: 'Holy Training', description: 'Reach 20 Prayer', difficulty: 'medium', points: 2, completed: false, row: 1, col: 4 }, - { id: '1-5', title: 'Artisan Skills', description: 'Reach 20 Crafting', difficulty: 'medium', points: 2, completed: false, row: 1, col: 5 }, - { id: '1-6', title: 'Demon Slayer', description: 'Complete Demon Slayer quest', difficulty: 'medium', points: 3, completed: false, row: 1, col: 6 }, + { id: '1-0', title: 'Quest Points', description: 'Earn 10 Quest Points', difficulty: 'easy', points: 2, completed: false, row:1, col: 0, type: 'main' , type: 'main' }, + { id: '1-1', title: 'Combat Training', description: 'Reach 20 Attack', difficulty: 'medium', points: 2, completed: false, row:1, col: 1, type: 'main' , type: 'main' }, + { id: '1-2', title: 'Mage Training', description: 'Reach 20 Magic', difficulty: 'medium', points: 2, completed: false, row:1, col: 2, type: 'main' , type: 'main' }, + { id: '1-3', title: 'Archer Progress', description: 'Reach 20 Ranged', difficulty: 'medium', points: 2, completed: false, row:1, col: 3, type: 'main' , type: 'main' }, + { id: '1-4', title: 'Holy Training', description: 'Reach 20 Prayer', difficulty: 'medium', points: 2, completed: false, row:1, col: 4, type: 'main' , type: 'main' }, + { id: '1-5', title: 'Artisan Skills', description: 'Reach 20 Crafting', difficulty: 'medium', points: 2, completed: false, row:1, col: 5, type: 'main' , type: 'main' }, + { id: '1-6', title: 'Demon Slayer', description: 'Complete Demon Slayer quest', difficulty: 'medium', points: 3, completed: false, row:1, col: 6, type: 'main' , type: 'main' }, // Row 2 - { id: '2-0', title: 'Quest Master', description: 'Earn 25 Quest Points', difficulty: 'medium', points: 3, completed: false, row: 2, col: 0 }, - { id: '2-1', title: 'Warrior', description: 'Reach 30 Attack', difficulty: 'medium', points: 3, completed: false, row: 2, col: 1 }, - { id: '2-2', title: 'Wizard', description: 'Reach 30 Magic', difficulty: 'medium', points: 3, completed: false, row: 2, col: 2 }, - { id: '2-3', title: 'Marksman', description: 'Reach 30 Ranged', difficulty: 'medium', points: 3, completed: false, row: 2, col: 3 }, - { id: '2-4', title: 'Devout', description: 'Reach 30 Prayer', difficulty: 'medium', points: 3, completed: false, row: 2, col: 4 }, - { id: '2-5', title: 'Artisan', description: 'Reach 30 Crafting', difficulty: 'medium', points: 3, completed: false, row: 2, col: 5 }, - { id: '2-6', title: 'Vampire Slayer', description: 'Complete Vampire Slayer quest', difficulty: 'medium', points: 3, completed: false, row: 2, col: 6 }, + { id: '2-0', title: 'Quest Master', description: 'Earn 25 Quest Points', difficulty: 'medium', points: 3, completed: false, row:2, col: 0, type: 'main' , type: 'main' }, + { id: '2-1', title: 'Warrior', description: 'Reach 30 Attack', difficulty: 'medium', points: 3, completed: false, row:2, col: 1, type: 'main' , type: 'main' }, + { id: '2-2', title: 'Wizard', description: 'Reach 30 Magic', difficulty: 'medium', points: 3, completed: false, row:2, col: 2 , type: 'main' }, + { id: '2-3', title: 'Marksman', description: 'Reach 30 Ranged', difficulty: 'medium', points: 3, completed: false, row:2, col: 3 , type: 'main' }, + { id: '2-4', title: 'Devout', description: 'Reach 30 Prayer', difficulty: 'medium', points: 3, completed: false, row:2, col: 4 , type: 'main' }, + { id: '2-5', title: 'Artisan', description: 'Reach 30 Crafting', difficulty: 'medium', points: 3, completed: false, row:2, col: 5 , type: 'main' }, + { id: '2-6', title: 'Vampire Slayer', description: 'Complete Vampire Slayer quest', difficulty: 'medium', points: 3, completed: false, row:2, col: 6 , type: 'main' }, // Row 3 - { id: '3-0', title: 'Quest Veteran', description: 'Earn 50 Quest Points', difficulty: 'hard', points: 4, completed: false, row: 3, col: 0 }, - { id: '3-1', title: 'Elite Warrior', description: 'Reach 40 Attack', difficulty: 'hard', points: 4, completed: false, row: 3, col: 1 }, - { id: '3-2', title: 'Elite Mage', description: 'Reach 40 Magic', difficulty: 'hard', points: 4, completed: false, row: 3, col: 2 }, - { id: '3-3', title: 'Elite Archer', description: 'Reach 40 Ranged', difficulty: 'hard', points: 4, completed: false, row: 3, col: 3 }, - { id: '3-4', title: 'High Priest', description: 'Reach 43 Prayer', difficulty: 'hard', points: 4, completed: false, row: 3, col: 4 }, - { id: '3-5', title: 'Master Crafter', description: 'Reach 40 Crafting', difficulty: 'hard', points: 4, completed: false, row: 3, col: 5 }, - { id: '3-6', title: 'Dragon Slayer', description: 'Complete Dragon Slayer I', difficulty: 'hard', points: 5, completed: false, row: 3, col: 6 }, + { id: '3-0', title: 'Quest Veteran', description: 'Earn 50 Quest Points', difficulty: 'hard', points: 4, completed: false, row:3, col: 0 , type: 'main' }, + { id: '3-1', title: 'Elite Warrior', description: 'Reach 40 Attack', difficulty: 'hard', points: 4, completed: false, row:3, col: 1 , type: 'main' }, + { id: '3-2', title: 'Elite Mage', description: 'Reach 40 Magic', difficulty: 'hard', points: 4, completed: false, row:3, col: 2 , type: 'main' }, + { id: '3-3', title: 'Elite Archer', description: 'Reach 40 Ranged', difficulty: 'hard', points: 4, completed: false, row:3, col: 3 , type: 'main' }, + { id: '3-4', title: 'High Priest', description: 'Reach 43 Prayer', difficulty: 'hard', points: 4, completed: false, row:3, col: 4 , type: 'main' }, + { id: '3-5', title: 'Master Crafter', description: 'Reach 40 Crafting', difficulty: 'hard', points: 4, completed: false, row:3, col: 5 , type: 'main' }, + { id: '3-6', title: 'Dragon Slayer', description: 'Complete Dragon Slayer I', difficulty: 'hard', points: 5, completed: false, row:3, col: 6 , type: 'main' }, // Row 4 - { id: '4-0', title: 'Quest Champion', description: 'Earn 100 Quest Points', difficulty: 'hard', points: 5, completed: false, row: 4, col: 0 }, - { id: '4-1', title: 'Rune Warrior', description: 'Reach 50 Attack', difficulty: 'hard', points: 5, completed: false, row: 4, col: 1 }, - { id: '4-2', title: 'High Mage', description: 'Reach 50 Magic', difficulty: 'hard', points: 5, completed: false, row: 4, col: 2 }, - { id: '4-3', title: 'Master Archer', description: 'Reach 50 Ranged', difficulty: 'hard', points: 5, completed: false, row: 4, col: 3 }, - { id: '4-4', title: 'Prayer Master', description: 'Reach 50 Prayer', difficulty: 'hard', points: 5, completed: false, row: 4, col: 4 }, - { id: '4-5', title: 'Craft Master', description: 'Reach 50 Crafting', difficulty: 'hard', points: 5, completed: false, row: 4, col: 5 }, - { id: '4-6', title: 'Barrows Gloves', description: 'Complete Recipe for Disaster', difficulty: 'expert', points: 8, completed: false, row: 4, col: 6 }, + { id: '4-0', title: 'Quest Champion', description: 'Earn 100 Quest Points', difficulty: 'hard', points: 5, completed: false, row:4, col: 0 , type: 'main' }, + { id: '4-1', title: 'Rune Warrior', description: 'Reach 50 Attack', difficulty: 'hard', points: 5, completed: false, row:4, col: 1 , type: 'main' }, + { id: '4-2', title: 'High Mage', description: 'Reach 50 Magic', difficulty: 'hard', points: 5, completed: false, row:4, col: 2 , type: 'main' }, + { id: '4-3', title: 'Master Archer', description: 'Reach 50 Ranged', difficulty: 'hard', points: 5, completed: false, row:4, col: 3 , type: 'main' }, + { id: '4-4', title: 'Prayer Master', description: 'Reach 50 Prayer', difficulty: 'hard', points: 5, completed: false, row:4, col: 4 , type: 'main' }, + { id: '4-5', title: 'Craft Master', description: 'Reach 50 Crafting', difficulty: 'hard', points: 5, completed: false, row:4, col: 5 , type: 'main' }, + { id: '4-6', title: 'Barrows Gloves', description: 'Complete Recipe for Disaster', difficulty: 'expert', points: 8, completed: false, row:4, col: 6 , type: 'main' }, // Row 5 - { id: '5-0', title: 'Quest Legend', description: 'Earn 150 Quest Points', difficulty: 'expert', points: 6, completed: false, row: 5, col: 0 }, - { id: '5-1', title: 'Dragon Warrior', description: 'Reach 60 Attack', difficulty: 'expert', points: 6, completed: false, row: 5, col: 1 }, - { id: '5-2', title: 'Ancient Mage', description: 'Reach 60 Magic', difficulty: 'expert', points: 6, completed: false, row: 5, col: 2 }, - { id: '5-3', title: 'Expert Archer', description: 'Reach 60 Ranged', difficulty: 'expert', points: 6, completed: false, row: 5, col: 3 }, - { id: '5-4', title: 'Holy Master', description: 'Reach 60 Prayer', difficulty: 'expert', points: 6, completed: false, row: 5, col: 4 }, - { id: '5-5', title: 'Elite Crafter', description: 'Reach 60 Crafting', difficulty: 'expert', points: 6, completed: false, row: 5, col: 5 }, - { id: '5-6', title: 'Fire Cape', description: 'Obtain Fire Cape from Fight Caves', difficulty: 'expert', points: 10, completed: false, row: 5, col: 6 }, + { id: '5-0', title: 'Quest Legend', description: 'Earn 150 Quest Points', difficulty: 'expert', points: 6, completed: false, row:5, col: 0 , type: 'main' }, + { id: '5-1', title: 'Dragon Warrior', description: 'Reach 60 Attack', difficulty: 'expert', points: 6, completed: false, row:5, col: 1 , type: 'main' }, + { id: '5-2', title: 'Ancient Mage', description: 'Reach 60 Magic', difficulty: 'expert', points: 6, completed: false, row:5, col: 2 , type: 'main' }, + { id: '5-3', title: 'Expert Archer', description: 'Reach 60 Ranged', difficulty: 'expert', points: 6, completed: false, row:5, col: 3 , type: 'main' }, + { id: '5-4', title: 'Holy Master', description: 'Reach 60 Prayer', difficulty: 'expert', points: 6, completed: false, row:5, col: 4 , type: 'main' }, + { id: '5-5', title: 'Elite Crafter', description: 'Reach 60 Crafting', difficulty: 'expert', points: 6, completed: false, row:5, col: 5 , type: 'main' }, + { id: '5-6', title: 'Fire Cape', description: 'Obtain Fire Cape from Fight Caves', difficulty: 'expert', points: 10, completed: false, row:5, col: 6 , type: 'main' }, // Row 6 - { id: '6-0', title: 'Quest Grandmaster', description: 'Earn 200 Quest Points', difficulty: 'expert', points: 8, completed: false, row: 6, col: 0 }, - { id: '6-1', title: 'Whip Master', description: 'Reach 70 Attack', difficulty: 'expert', points: 8, completed: false, row: 6, col: 1 }, - { id: '6-2', title: 'Arcane Master', description: 'Reach 70 Magic', difficulty: 'expert', points: 8, completed: false, row: 6, col: 2 }, - { id: '6-3', title: 'Legendary Archer', description: 'Reach 70 Ranged', difficulty: 'expert', points: 8, completed: false, row: 6, col: 3 }, - { id: '6-4', title: 'Divine Master', description: 'Reach 70 Prayer', difficulty: 'expert', points: 8, completed: false, row: 6, col: 4 }, - { id: '6-5', title: 'Legendary Crafter', description: 'Reach 70 Crafting', difficulty: 'expert', points: 8, completed: false, row: 6, col: 5 }, - { id: '6-6', title: 'ToA Completion', description: 'Complete Tombs of Amascut', difficulty: 'expert', points: 15, completed: false, row: 6, col: 6 }, + { id: '6-0', title: 'Quest Grandmaster', description: 'Earn 200 Quest Points', difficulty: 'expert', points: 8, completed: false, row:6, col: 0 , type: 'main' }, + { id: '6-1', title: 'Whip Master', description: 'Reach 70 Attack', difficulty: 'expert', points: 8, completed: false, row:6, col: 1 , type: 'main' }, + { id: '6-2', title: 'Arcane Master', description: 'Reach 70 Magic', difficulty: 'expert', points: 8, completed: false, row:6, col: 2 , type: 'main' }, + { id: '6-3', title: 'Legendary Archer', description: 'Reach 70 Ranged', difficulty: 'expert', points: 8, completed: false, row:6, col: 3 , type: 'main' }, + { id: '6-4', title: 'Divine Master', description: 'Reach 70 Prayer', difficulty: 'expert', points: 8, completed: false, row:6, col: 4 , type: 'main' }, + { id: '6-5', title: 'Legendary Crafter', description: 'Reach 70 Crafting', difficulty: 'expert', points: 8, completed: false, row:6, col: 5 , type: 'main' }, + { id: '6-6', title: 'ToA Completion', description: 'Complete Tombs of Amascut', difficulty: 'expert', points: 15, completed: false, row:6, col: 6, type: 'main' , type: 'main' }, + + // Side nodes (left column) + { id: 'side-0', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:0, col: -1, type: 'side' }, + { id: 'side-1', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:1, col: -1, type: 'side' }, + { id: 'side-2', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:2, col: -1, type: 'side' }, + { id: 'side-3', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:3, col: -1, type: 'side' }, + { id: 'side-4', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:4, col: -1, type: 'side' }, + { id: 'side-5', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:5, col: -1, type: 'side' }, + { id: 'side-6', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:6, col: -1, type: 'side' }, + + // Bottom nodes + { id: 'bottom-0', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 0, type: 'bottom' }, + { id: 'bottom-1', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 1, type: 'bottom' }, + { id: 'bottom-2', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 2, type: 'bottom' }, + { id: 'bottom-3', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 3, type: 'bottom' }, + { id: 'bottom-4', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 4, type: 'bottom' }, + { id: 'bottom-5', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 5, type: 'bottom' }, + { id: 'bottom-6', title: 'Custom Goal', description: 'Set your own challenge', difficulty: 'easy', points: 1, completed: false, row:7, col: 6, type: 'bottom' }, ]; \ No newline at end of file diff --git a/osrs-grid-master/src/types/osrs.ts b/osrs-grid-master/src/types/osrs.ts index cd18195..6623581 100644 --- a/osrs-grid-master/src/types/osrs.ts +++ b/osrs-grid-master/src/types/osrs.ts @@ -40,6 +40,7 @@ export interface GridTask { completed: boolean; row: number; col: number; + type?: 'main' | 'side' | 'bottom'; } export interface UserProgress {