diff --git a/assets/user_blue.png b/assets/user_blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..2806b7d2cb3f9cc4daf46884555c26ee5bc82761
Binary files /dev/null and b/assets/user_blue.png differ
diff --git a/assets/user_green.png b/assets/user_green.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e531e07d5a34fb42096729d3a0c9072652e5a5d
Binary files /dev/null and b/assets/user_green.png differ
diff --git a/assets/user_red.png b/assets/user_red.png
new file mode 100644
index 0000000000000000000000000000000000000000..46e62ccecc7fcadd670b4af2b6abb95d62e2559b
Binary files /dev/null and b/assets/user_red.png differ
diff --git a/assets/user_yellow.png b/assets/user_yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b8daaab6f5c84696898fa0b0ba46bb50b62d1df
Binary files /dev/null and b/assets/user_yellow.png differ
diff --git a/src/routes/users/get_avatar.rs b/src/routes/users/get_avatar.rs
index 64ee74e4db21d3e67ad5e70194043c24a0707355..c9666c671742502318f1d375514401898c00dbc8 100644
--- a/src/routes/users/get_avatar.rs
+++ b/src/routes/users/get_avatar.rs
@@ -1,7 +1,43 @@
 use rocket::response::NamedFile;
 use std::path::Path;
 
-#[get("/<_target>/avatar")]
-pub async fn req(_target: String) -> Option<NamedFile> {
-    NamedFile::open(Path::new("avatar.png")).await.ok()
+use crate::database::Ref;
+
+#[get("/<target>/avatar")]
+pub async fn req(target: Ref) -> Option<NamedFile> {
+    match target.id.chars().nth(25).unwrap() {
+        '0' |
+        '1' |
+        '2' |
+        '3' |
+        '4' |
+        '5' |
+        '6' |
+        '7' => NamedFile::open(Path::new("assets/user_red.png")).await.ok(),
+        '8' |
+        '9' |
+        'A' |
+        'C' |
+        'B' |
+        'D' |
+        'E' |
+        'F' => NamedFile::open(Path::new("assets/user_green.png")).await.ok(),
+        'G' |
+        'H' |
+        'J' |
+        'K' |
+        'M' |
+        'N' |
+        'P' |
+        'Q' => NamedFile::open(Path::new("assets/user_blue.png")).await.ok(),
+        'R' |
+        'S' |
+        'T' |
+        'V' |
+        'W' |
+        'X' |
+        'Y' |
+        'Z' => NamedFile::open(Path::new("assets/user_yellow.png")).await.ok(),
+        _ => unreachable!()
+    }
 }