diff --git a/images/01.png b/images/01.png
new file mode 100644
index 0000000..129bbb6
Binary files /dev/null and b/images/01.png differ
diff --git a/images/02.png b/images/02.png
new file mode 100644
index 0000000..eaff3e2
Binary files /dev/null and b/images/02.png differ
diff --git a/images/03.png b/images/03.png
new file mode 100644
index 0000000..43e18ad
Binary files /dev/null and b/images/03.png differ
diff --git a/images/04.png b/images/04.png
new file mode 100644
index 0000000..9bac771
Binary files /dev/null and b/images/04.png differ
diff --git a/images/05.png b/images/05.png
new file mode 100644
index 0000000..6192c0d
Binary files /dev/null and b/images/05.png differ
diff --git a/images/06.png b/images/06.png
new file mode 100644
index 0000000..b32384e
Binary files /dev/null and b/images/06.png differ
diff --git a/images/07.png b/images/07.png
new file mode 100644
index 0000000..239ff9b
Binary files /dev/null and b/images/07.png differ
diff --git a/images/08.png b/images/08.png
new file mode 100644
index 0000000..97a57d0
Binary files /dev/null and b/images/08.png differ
diff --git a/images/10.png b/images/10.png
new file mode 100644
index 0000000..1e3695d
Binary files /dev/null and b/images/10.png differ
diff --git a/images/marker0.png b/images/marker0.png
new file mode 100644
index 0000000..6d3df03
Binary files /dev/null and b/images/marker0.png differ
diff --git a/images/marker1.png b/images/marker1.png
new file mode 100644
index 0000000..f92b53a
Binary files /dev/null and b/images/marker1.png differ
diff --git a/images/marker2.png b/images/marker2.png
new file mode 100644
index 0000000..88dec2c
Binary files /dev/null and b/images/marker2.png differ
diff --git a/images/marker3.png b/images/marker3.png
new file mode 100644
index 0000000..d41f6f1
Binary files /dev/null and b/images/marker3.png differ
diff --git a/images/marker4.png b/images/marker4.png
new file mode 100644
index 0000000..f0ffbf5
Binary files /dev/null and b/images/marker4.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..30eda2d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<html lang="en">
+<html><header><title>Rabi-Ribi Rando Location Tracker Starisms</title>
+	<link rel="stylesheet" href="style.css">
+	<script src="scripts/main.js"></script>
+	<script src="scripts/locations.js"></script>
+</header>
+<body class="body" onload="justLoaded()">
+	<button onclick="showSection(0)" type="button" style= "background-color:#62a362">S. Woodland</button>
+	<button onclick="showSection(1)" type="button" style= "background-color:#5478a5">W. Coast</button>
+	<button onclick="showSection(2)" type="button" style= "background-color:#5ea9a4">Island Core</button>
+	<button onclick="showSection(3)" type="button" style= "background-color:#8165d1">N Tundra</button>
+	<button onclick="showSection(4)" type="button" style= "background-color:#b89368">E.  Highlands</button>
+	<button onclick="showSection(5)" type="button" style= "background-color:#a96036">Other</button>
+	<input type="color" id="bgcolor" value="#666666" onchange="changeBG()">
+	<button onClick="info()" type="button">info</button>
+	<div id="info" class="info">
+		<a href="https://github.com/allibear17/Rabi-Ribi-Rando-Tracker" target="_blank">Click here for readme and source</a>
+	</div>
+	
+	<div id="mapdisplay" class="map-container">
+		<p><span id="tt" class="tooltip">Tooltip Info</span></p>
+		
+		<div id="swood" class="base">
+			<img src="images/01.png">
+		</div>
+		<div id="wcoast" class="base">
+			<img src="images/02.png">
+		</div>
+		<div id="core" class="base">
+			<img src="images/03.png">
+		</div>
+		<div id="ntun" class="base">
+			<img src="images/04.png">
+		</div>
+		<div id="ehigh" class="base">
+			<img src="images/05.png">
+		</div>
+		<div id="other" class="base">
+			<img src="images/06.png">
+		</div>
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..6c520d0
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,4 @@
+WIP for a map location tracker to help with Rabi Ribi rando.
+
+Feel free to download the files and run index.html locally or use the 
+gitpage for it at https://allibear17.github.io/Rabi-Ribi-Rando-Tracker/
\ No newline at end of file
diff --git a/scripts/locations.js b/scripts/locations.js
new file mode 100644
index 0000000..4fce580
--- /dev/null
+++ b/scripts/locations.js
@@ -0,0 +1,232 @@
+markers = [
+	new Location(2, 35), // 0 Start of Southern Woodlands
+	new Location(71, 35),
+	new Location(71, 70),
+	new Location(205, 70),
+	new Location(205, 105),
+	new Location(140, 140),	// 5
+	new Location(205, 172),
+	new Location(206, 207),
+	new Location(243, 207),
+	new Location(345, 140),
+	new Location(412, 140), // 10
+	new Location(310, 35),
+	new Location(448, 35),
+	new Location(515, 70),
+	new Location(585, 70),
+	new Location(585, 0), // 15
+	new Location(620, 35),
+	new Location(686, 0),
+	new Location(482, 172),
+	new Location(585, 172),
+	new Location(585, 208), // 20
+	new Location(140, 240),
+	new Location(140, 275),
+	new Location(175, 275),
+	new Location(140, 345),
+	new Location(105, 310), // 25
+	new Location(278, 376),
+	new Location(310, 343),
+	new Location(343, 308),
+	new Location(310, 275),
+	new Location(378, 376), // 30
+	new Location(413, 343),
+	new Location(446, 275),
+	new Location(446, 242),
+	new Location(548, 310),
+	new Location(582, 378),
+	new Location(582, 343),	// 36 End of South Woodlands
+	new Location(74, 204),	// 37 Start of Western Coast
+	new Location(132, 115),
+	new Location(190, 85),
+	new Location(280, 115),	//40
+	new Location(308, 204),
+	new Location(336, 115),
+	new Location(367, 87),
+	new Location(394, 204),
+	new Location(394, 172),	// 45
+	new Location(425, 204),
+	new Location(424, 145),
+	new Location(424, 57),
+	new Location(454, 0),	
+	new Location(482, 57),	// 50
+	new Location(482, 174),
+	new Location(510, 144),
+	new Location(540, 174),
+	new Location(570, 144),
+	new Location(570, 85),
+	new Location(660, 85),	// 56 End of Western Coast
+	new Location(190, 0),	// 57 Start of Island Core
+	new Location(160, 33),
+	new Location(220, 33),
+	new Location(343, 64),	// 60
+	new Location(343, 95),
+	new Location(440, 95),
+	new Location(130, 127),
+	new Location(67, 157),
+	new Location(220, 157),	// 65
+	new Location(250, 157),
+	new Location(95, 220),
+	new Location(65, 250),
+	new Location(285, 250),
+	new Location(190, 280), // 70
+	new Location(190, 280),
+	new Location(34, 343),
+	new Location(66, 376),
+	new Location(99, 405),
+	new Location(190, 405), // 75
+	new Location(33, 470),
+	new Location(99, 440),
+	new Location(66, 470),
+	new Location(285, 355),
+	new Location(315, 355),
+	new Location(407, 392), // 80
+	new Location(525, 348),
+	new Location(525, 315),
+	new Location(525, 280),
+	new Location(587, 280),
+	new Location(587, 310),	// 85
+	new Location(587, 342),
+	new Location(618, 280),
+	new Location(651, 342),
+	new Location(618, 438),
+	new Location(557, 468),	// 91 End of Island Core + Town
+	new Location(30, 0),	// 92 Start of Northen Tundra
+	new Location(30, 30),
+	new Location(30, 390),
+	new Location(60, 360),	// 95
+	new Location(60, 210),
+	new Location(90, 90),
+	new Location(150, 30),
+	new Location(150, 90),
+	new Location(150, 120),	// 100
+	new Location(180, 60),
+	new Location(180, 150),
+	new Location(120, 210),
+	new Location(270, 60),
+	new Location(270, 0),	// 105
+	new Location(330, 90),
+	new Location(360, 30),
+	new Location(480, 30),
+	new Location(480, 60),
+	new Location(450, 120),	// 110
+	new Location(510, 120),
+	new Location(270, 180),
+	new Location(210, 240),
+	new Location(270, 270),
+	new Location(240, 330),	// 115
+	new Location(180, 390),
+	new Location(390, 360),
+	new Location(450, 210),
+	new Location(480, 240),
+	new Location(510, 270),	// 120
+	new Location(540, 270),
+	new Location(630, 240),
+	new Location(660, 300),
+	new Location(660, 330),
+	new Location(660, 360),
+	new Location(600, 390),	// 126 End of N Tundra
+	new Location(30, 150),	// 127 Start of E. Highlands
+	new Location(90, 150),
+	new Location(90, 180),
+	new Location(90, 210),	// 130
+	new Location(30, 268),
+	new Location(60, 328),
+	new Location(90, 328),
+	new Location(210, 237),
+	new Location(240, 178),	// 135
+	new Location(240, 118),
+	new Location(240, 237),
+	new Location(240, 270),
+	new Location(300, 30),
+	new Location(330, 150),	// 140
+	new Location(300, 270),
+	new Location(360, 270),
+	new Location(330, 330),
+	new Location(360, 330),
+	new Location(390, 150),	// 145
+	new Location(418, 88),
+	new Location(418, 358),
+	new Location(450, 358),
+	new Location(450, 390),
+	new Location(478, 58),	// 150
+	new Location(478, 150),
+	new Location(478, 237),
+	new Location(507, 267),
+	new Location(538, 58),
+	new Location(538, 208),	// 155
+	new Location(538, 390),
+	new Location(538, 30),
+	new Location(568, 30),
+	new Location(598, 60),
+	new Location(658, 0),	// 160
+	new Location(688, 90),
+	new Location(658, 358),
+	new Location(688, 358),	// 163 End of E. Highlands
+	new Location(63, 164),	// 164 Start of other
+	new Location(-5, 297),
+	new Location(-5, 432),
+	new Location(150, 275),
+	new Location(95, 98),
+	new Location(127, 68),	// 170
+	new Location(451, 96),
+	new Location(451, 194),
+	new Location(483, 68),
+	new Location(513, 0),
+	new Location(676, 355),
+	new Location(553, 302),	// 175
+	new Location(583, 332),
+	new Location(678, 425),
+	new Location(678, 485),
+	new Location(461, 425),
+	new Location(398, 457),	// 180
+	new Location(305, 365),
+	new Location(275, 365),
+];
+
+openMarkers = [0,4,6,7,10,19,23,22,25,28,30,34,					//S Woodlands
+			   39,40,47,49,52,53,54,55,56,						//W Coast
+			   59,60,75,76,77,79,82,83,84,89,					//I Core
+			   92,93,101,102,106,109,116,117,119,120,123,		//N Tundra
+			   127,129,134,136,142,147,151,152,153,156,159,160,	//E Highlands
+			   166,167,169,174,177,178,181,						//Other
+];
+
+function drawMarkers(){
+
+	var sw = document.getElementById("swood");
+	var wc = document.getElementById("wcoast");
+	var ic = document.getElementById("core");
+	var nt = document.getElementById("ntun");
+	var eh = document.getElementById("ehigh");
+	var ot = document.getElementById("other");
+
+	
+	for ( i = 0; i < markers.length; i++){
+		markers[i].elem = document.createElement("img");
+		markers[i].elem.setAttribute("src", "images/marker0.png");
+		markers[i].elem.setAttribute("class", "markera");
+		markers[i].elem.id = "marker " + i;
+		markers[i].elem.style.left = markers[i].x + "px";
+		markers[i].elem.style.top = markers[i].y + "px";
+		markers[i].elem.onclick = toggleMarker;
+		markers[i].elem.onmouseenter = showTooltip;
+		markers[i].elem.onmouseleave = hideTooltip;
+		if ( i < 37 ){
+			sw.appendChild(markers[i].elem);
+		} else if (( i >= 37 ) && ( i <= 56 )){
+			wc.appendChild(markers[i].elem);
+		} else if (( i >= 57 ) && ( i <= 91)){
+			ic.appendChild(markers[i].elem);
+		} else if (( i >= 92 ) && ( i <= 126 )){
+			nt.appendChild(markers[i].elem);
+		} else if (( i >= 127 ) && ( i <= 163 )){
+			eh.appendChild(markers[i].elem);
+		} else if (( i >= 164 ) && ( i <= 182 )){
+			ot.appendChild(markers[i].elem);
+		}
+	}
+	for ( i = 0; i < openMarkers.length; i++){
+		markers[openMarkers[i]].elem.setAttribute("class", "markerb");
+	}
+}
\ No newline at end of file
diff --git a/scripts/main.js b/scripts/main.js
new file mode 100644
index 0000000..bbdc741
--- /dev/null
+++ b/scripts/main.js
@@ -0,0 +1,141 @@
+var sectionShown = [];
+var markers = [];
+var openMarkers = [];
+var markerTypes = [
+	"images/marker0.png", 
+	"images/marker1.png", 
+	"images/marker2.png",
+	"images/marker3.png",
+	"images/marker4.png",
+];
+
+var lastClick;
+
+function justLoaded(){
+	hideAll();
+	drawMarkers();
+	showSection(5);
+}
+
+function hideAll(){
+	for (i = 0; i < 6; i++){
+		sectionShown[i] = false;		
+	}
+	swood.style.display = "none";
+	wcoast.style.display = "none";
+	core.style.display = "none";
+	ntun.style.display = "none";
+	ehigh.style.display = "none";
+	other.style.display = "none";
+}
+
+function showSection(m) {
+	if (!sectionShown[m]){
+		hideAll();
+		sectionShown[m] = true;
+		switch(m){
+			case 0: 
+				swood.style.display = "block";
+				break;
+			case 1:
+				wcoast.style.display = "block";
+				break;
+			case 2:
+				core.style.display = "block";
+				break;
+			case 3:
+				ntun.style.display = "block";
+				break;
+			case 4:
+				ehigh.style.display = "block";
+				break;
+			case 5:
+				other.style.display = "block";
+				break;
+		}
+	}
+}
+
+function toggleMarker(event) {
+    var clicked = document.getElementById(this.id);
+	var clickedSrc = clicked.getAttribute("src");
+	var type = 0;
+	
+	for ( i = 0; i < markerTypes.length; i++){
+		if ( clickedSrc == markerTypes[i] ){
+			type = i+1;
+		}
+	}
+	if ( markerTypes[type] ){
+		clicked.setAttribute("src", markerTypes[type]);
+	}
+	else {
+		clicked.setAttribute("src", markerTypes[0]);
+	}
+}
+
+function showTooltip(event){
+	var id = document.getElementById("tt");
+	var clicked = document.getElementById(this.id);
+	id.style.display = "block";
+	id.innerHTML = clicked.id;
+	id.style.top = "20px";
+	id.style.left = "20px";
+}
+
+function hideTooltip(){
+	document.getElementById("tt").style.display = "none";
+}
+function changeBG(){
+	document.body.style.backgroundColor = document.getElementById("bgcolor").value;
+	document.getElementById("shopDropdown").style.backgroundColor = document.getElementById("bgcolor").value;
+}
+
+function info(){
+	var id = document.getElementById("info")
+	if (id.style.display == "block"){
+		id.style.display = "none";
+	}
+	else {
+		id.style.display = "block";
+	}
+}
+
+function Location(x, y){
+	this.x = x;
+	this.y = y;
+	this.canReach = false;
+	this.elem = "";
+}
+
+function toggleItem(e){
+	id = e.target;
+	if ( id.style.opacity == 1.0 ){
+		id.style.opacity = 0.5;
+		id.style.filter = "grayscale(100%)";
+	} else {
+		id.style.opacity = 1.0;
+		id.style.filter = "none";
+	}
+}
+
+addEventListener('contextmenu', function(e) {
+	e.preventDefault();
+	if (( e.target.className == "markera" ) || ( e.target.className == "markerb" )){
+		var clicked = document.getElementById(e.target.id);
+		var clickedSrc = clicked.getAttribute("src");
+		var type = 0;
+	
+		for ( i = 0; i < markerTypes.length; i++){
+			if ( clickedSrc == markerTypes[i] ){
+				type = i-1;
+			}
+		}
+		if ( type >= 0 ){
+			clicked.setAttribute("src", markerTypes[type]);
+		}
+		else {
+			clicked.setAttribute("src", markerTypes[4]);
+		}
+	}
+});
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..8d8b241
--- /dev/null
+++ b/style.css
@@ -0,0 +1,149 @@
+body {
+	background-color: #7b4785
+}
+button {
+	font-family: helvetica, arial, sans-serif;
+	background-color: #4CAF50;
+	border: none;
+	color: white;
+	padding: 4px 20px;
+	text-align: center;
+	text-decoration: none;
+	display: inline-block;
+	font-size: 14px;
+	margin: 2px 0px;
+	cursor: pointer;
+	outline: none;
+	border-radius: 10px;
+	box-shadow: 0 2px #999;
+}
+button:active{
+	box-shadow: 0 2px #666;
+	transform: translateY(2px);
+}
+
+.markera{
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 32px;
+	height: 32px;
+    border: none;
+    padding: 0px 0px;
+	z-index: 2;
+}
+
+.markerb{
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 32px;
+	height: 32px;
+    border: none;
+    padding: 0px 0px;
+	z-index: 2;
+	outline: rgba(255, 255, 255, 1) solid 2px;
+	outline-offset: -1.5px;
+}
+
+.tooltip {
+	font-family: helvetica, arial, sans-serif;
+    position: absolute;
+    white-space: nowrap;
+    display: none;
+    background: #ffffcc;
+    border: 1px solid black;
+    padding: 5px;
+    z-index: 1000;
+    color: black;
+}
+.base{
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 720px;
+	padding-top: 0px;
+	padding-left: 0px;
+	display: none;
+	z-index: 0;
+}
+.info{
+	position: absolute;
+	text-align: right;
+	top: 20;
+	left: 200;
+	width: 600px;
+	padding-top: 0px;
+	padding-left: 0px;
+	display: none;
+	z-index: 3;
+}
+img{
+	max-width: 100%;
+	max-height: 100%;
+}
+.map-container{
+	position: relative;
+	max-width: 720px;
+	max-height: 480px;
+}
+a{
+	background-color: #ffffcc;
+	font-family: helvetica, arial, sans-serif;
+	color: #000000;
+}
+.shop-dropdown{
+	display: none;
+	background-color: #666666;
+	position: absolute;
+	top: 0px;
+	left: 0px;
+	width: 210px;
+	overflow: auto;
+	box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.4);
+	padding-top: 4px;
+	padding-left: 4px;
+	border: 2px solid black;
+	z-index: 4;
+}
+.shop-item{
+	width: 25px;
+	height: 25px;
+	padding: 2px 2px 2px 2px;
+	background-color: #444444;
+	border: 1px solid black;
+}
+.in-shop{
+	background-color: rgba(0,0,0,0);
+	border: none;
+	padding: 0px 0px;
+	display: inline-block;
+	margin: 0px 0px;
+	cursor: pointer;
+	outline: none;
+	box-shadow: 0 0px #999;
+	z-index: 4;
+}
+.in-shop:active{
+	box-shadow: 0 0px #999;
+	transform: translateY(2px);
+}
+.item{
+	position: relative;
+	width: 30px;
+	height: 30px;
+	opacity: 0.5;
+	filter: grayscale(100%);
+}
+table{
+	position: relative;
+	width: 600px;
+	height: 28px;
+	margin-top: 10px;
+	margin-bottom: -13px;
+}
+td{
+	width: 32px;
+	height: 32px;
+	padding-top: 5px;
+}
\ No newline at end of file