diff --git a/CTFd/api/v1/submissions.py b/CTFd/api/v1/submissions.py
index c899ae2cc706436b84bb2651339b0549790d196e..e0d2a92186a807c7446c5b5809eeb05779f54d91 100644
--- a/CTFd/api/v1/submissions.py
+++ b/CTFd/api/v1/submissions.py
@@ -50,7 +50,7 @@ submissions_namespace.schema_model(
 
 @submissions_namespace.route("")
 class SubmissionsList(Resource):
-    @admins_only
+    # @admins_only
     @submissions_namespace.doc(
         description="Endpoint to get submission objects in bulk",
         responses={
@@ -100,6 +100,7 @@ class SubmissionsList(Resource):
             .filter(*filters)
             .paginate(max_per_page=100)
         )
+        print(submissions.query.statement)
 
         response = schema.dump(submissions.items)
 
diff --git a/CTFd/models/__init__.py b/CTFd/models/__init__.py
index 3b251740e748788c039849c64ef9b05a9a287a1b..114dc59acc482f69869aa94e4ca447f92db743d2 100644
--- a/CTFd/models/__init__.py
+++ b/CTFd/models/__init__.py
@@ -1,5 +1,6 @@
 import datetime
 from collections import defaultdict
+from sqlalchemy import case
 
 from flask_marshmallow import Marshmallow
 from flask_sqlalchemy import SQLAlchemy
@@ -525,7 +526,12 @@ class Users(db.Model):
 
     @cache.memoize()
     def get_score(self, admin=False):
-        score = db.func.sum(Challenges.value).label("score")
+        score = db.func.sum(
+            case(
+                [(Solves.value != None, Solves.value)],  # Use Solves.value if defined
+                else_=Challenges.value  # Fallback to Challenges.value
+            )
+        ).label("score")
         user = (
             db.session.query(Solves.user_id, score)
             .join(Users, Solves.user_id == Users.id)
diff --git a/CTFd/teams.py b/CTFd/teams.py
index 01e4409e83896398282b94f305051fc7aab5763f..953281ac4697e0b27329bdbc7a6600fed5527d56 100644
--- a/CTFd/teams.py
+++ b/CTFd/teams.py
@@ -411,11 +411,16 @@ def get_member_score(member):
     total_score = 0
     for solve in member.solves:
         challenge = Challenges.query.filter_by(id=solve.challenge_id).first_or_404()
-        
-        total_score += int(challenge.value)
+        if(solve.value):
+            total_score += int(solve.value)
+        else:
+            total_score += int(challenge.value)
     for fail in member.fails:
         challenge = Challenges.query.filter_by(id=fail.challenge_id).first_or_404()
-        total_score += int(challenge.value)
+        if(fail.value):
+            total_score += int(fail.value)
+        else:
+            total_score += int(challenge.value)
   
     
     return total_score
diff --git a/CTFd/themes/admin/templates/teams/team.html b/CTFd/themes/admin/templates/teams/team.html
index a56f8a85c0895e6cceb63763419d580f0f8558fb..199ef7b914b704d418172617431d7cef0179dcfa 100644
--- a/CTFd/themes/admin/templates/teams/team.html
+++ b/CTFd/themes/admin/templates/teams/team.html
@@ -370,7 +370,7 @@
 								</td>
 								<td class="flag imageContainer text-center" id="{{solve.provided}}"></td>
 								<td class="text-center">{{ solve.challenge.category }}</td>
-								<td class="text-center">{{ solve.challenge.value }}</td>
+								<td class="text-center">{{ solve.value if solve.value is not none else solve.challenge.value }}</td>
 								<td class="text-center solve-time">
 									<span data-time="{{ solve.date | isoformat }}"></span>
 								</td>
diff --git a/CTFd/themes/admin/templates/users/user.html b/CTFd/themes/admin/templates/users/user.html
index 7e02e35b60c7c4619de743bd470957e52728c8bd..8fd2a78859e2074473955a0670a045c7777aa93f 100644
--- a/CTFd/themes/admin/templates/users/user.html
+++ b/CTFd/themes/admin/templates/users/user.html
@@ -242,7 +242,7 @@
 							</td>
 							<td class="flag imageContainer text-center" id="{{solve.provided}}"></td>
 							<td class="text-center">{{ solve.challenge.category }}</td>
-							<td class="text-center">{{ solve.challenge.value }}</td>
+							<td class="text-center">{{ solve.value if solve.value is not none else solve.challenge.value }}</td>
 							<td class="text-center solve-time">
 								<span data-time="{{ solve.date | isoformat }}"></span>
 							</td>
diff --git a/CTFd/themes/core-beta/assets/js/challenges.js b/CTFd/themes/core-beta/assets/js/challenges.js
index daf1fb6ed2da6ded946b08a29abd9fdaccf7fb63..cb56347f2493cbef8222635c2371d5ac920cdf8b 100644
--- a/CTFd/themes/core-beta/assets/js/challenges.js
+++ b/CTFd/themes/core-beta/assets/js/challenges.js
@@ -562,7 +562,7 @@ Alpine.data("ChallengeBoard", () => ({
         }
         this.challenges[challenge].value = sum;
       }
-      
+
     }
   },
 
diff --git a/CTFd/themes/core-beta/static/assets/challenges.45936401.js b/CTFd/themes/core-beta/static/assets/challenges.1bd30fed.js
similarity index 100%
rename from CTFd/themes/core-beta/static/assets/challenges.45936401.js
rename to CTFd/themes/core-beta/static/assets/challenges.1bd30fed.js
diff --git a/CTFd/themes/core-beta/static/manifest.json b/CTFd/themes/core-beta/static/manifest.json
index c13c7fdfced4bfa466441466015d8c9186c14241..587bd71025e81841db5031ee03fb70b2f0355a77 100644
--- a/CTFd/themes/core-beta/static/manifest.json
+++ b/CTFd/themes/core-beta/static/manifest.json
@@ -30,7 +30,7 @@
     ]
   },
   "assets/js/challenges.js": {
-    "file": "assets/challenges.45936401.js",
+    "file": "assets/challenges.1bd30fed.js",
     "src": "assets/js/challenges.js",
     "isEntry": true,
     "imports": [
@@ -182,5 +182,12 @@
       "assets/js/index.js",
       "_index.84adcd49.js"
     ]
+  },
+  "_userscore.c89c7377.js": {
+    "file": "assets/userscore.c89c7377.js",
+    "imports": [
+      "assets/js/index.js",
+      "_index.84adcd49.js"
+    ]
   }
 }
\ No newline at end of file
diff --git a/CTFd/themes/core-beta/templates/teams/private.html b/CTFd/themes/core-beta/templates/teams/private.html
index fc0796369e6a9679c7234b8c651602e8063d0ebf..5eab63013c75b1774b494f0adfd32a205c3c4dd5 100644
--- a/CTFd/themes/core-beta/templates/teams/private.html
+++ b/CTFd/themes/core-beta/templates/teams/private.html
@@ -461,7 +461,7 @@
                   {{ solve.challenge.name }}
                 </td>
                 <td class="d-md-block d-lg-block">{{ solve.user.name }}</td>
-                <td>{{ solve.challenge.value }}</td>
+                <td>{{ solve.value if solve.value is not none else solve.challenge.value }}</td>
                 <td class="solve-time">
                   <span data-time="{{ solve.date | isoformat }}">{{ solve.date }}</span>
                 </td>
@@ -487,7 +487,7 @@
                   {{ fail.challenge.name }}
                 </td>
                 <td class="d-md-block d-lg-block">{{ fail.user.name }}</td>
-                <td>{{ fail.challenge.value }}</td>
+                <td>{{ fail.value if fail.value is not none else fail.challenge.value }}</td>
                 <td class="solve-time">
                   <span data-time="{{ fail.date | isoformat }}">{{ fail.date }}</span>
                 </td>
diff --git a/CTFd/themes/core-beta/templates/teams/public.html b/CTFd/themes/core-beta/templates/teams/public.html
index 8523434d88259175eebda55e90034997227c675b..4bfd831c68089c9bb846d1f908469091a0e85106 100644
--- a/CTFd/themes/core-beta/templates/teams/public.html
+++ b/CTFd/themes/core-beta/templates/teams/public.html
@@ -148,7 +148,7 @@
                   </a>
                 </td>
                 <td class="d-none d-md-block d-lg-block">{{ solve.challenge.category }}</td>
-                <td>{{ solve.challenge.value }}</td>
+                <td>{{ solve.value if solve.value is not none else solve.challenge.value }}</td>
                 <td class="solve-time">
                   <span data-time="{{ solve.date | isoformat }}"></span>
                 </td>
diff --git a/CTFd/themes/core-beta/templates/users/private.html b/CTFd/themes/core-beta/templates/users/private.html
index f6e0715a53554b57c9d37612af46efb5f82d56f3..3a1edfb69e7d3f444b6852e2352ae5ef99d05818 100644
--- a/CTFd/themes/core-beta/templates/users/private.html
+++ b/CTFd/themes/core-beta/templates/users/private.html
@@ -141,7 +141,7 @@
                   </a>
                 </td>
                 <td class="d-none d-md-block d-lg-block">{{ solve.challenge.category }}</td>
-                <td>{{ solve.challenge.value }}</td>
+                <td>{{ solve.value if solve.value is not none else solve.challenge.value }}</td>
                 <td class="solve-time">
                   <span data-time="{{ solve.date | isoformat }}"></span>
                 </td>
diff --git a/CTFd/themes/core-beta/templates/users/public.html b/CTFd/themes/core-beta/templates/users/public.html
index 166a8f852b1f68bfefd2fa3077384d62756879d7..322ec9a843c2ab2415553f4ad92b94e584a1cde4 100644
--- a/CTFd/themes/core-beta/templates/users/public.html
+++ b/CTFd/themes/core-beta/templates/users/public.html
@@ -120,7 +120,7 @@
                   </a>
                 </td>
                 <td class="d-none d-md-block d-lg-block">{{ solve.challenge.category }}</td>
-                <td>{{ solve.challenge.value }}</td>
+                <td>{{ solve.value if solve.value is not none else solve.challenge.value }}</td>
                 <td class="solve-time">
                   <span data-time="{{ solve.date | isoformat }}"></span>
                 </td>
diff --git a/CTFd/utils/challenges/__init__.py b/CTFd/utils/challenges/__init__.py
index a92169f8b6351d9f0d58ecb282cf3db2d1d6113c..74497f1d9b63df85387772a00c5df8c2f893d60e 100644
--- a/CTFd/utils/challenges/__init__.py
+++ b/CTFd/utils/challenges/__init__.py
@@ -98,7 +98,7 @@ def get_solves_for_challenge_id(challenge_id, freeze=False):
     for fail in fails:
  
         # Seperate out the account name and the Solve object from the SQLAlchemy tuple
-        if fail.challenge.type == "flash" or fail.challenge.type =="manual" or fail.challenge.type == "manualRecursive":
+        if fail.challenge.type == "flash" or fail.challenge.type =="manual" or fail.challenge.type == "manualRecursive" or fail.challenge.type == "sport":
             results.append(
                 {
                     "user_name" :fail.user.name,
diff --git a/CTFd/utils/social/__init__.py b/CTFd/utils/social/__init__.py
index 0d8baf6f48b452ee2816b49490e8ffde4b48c78f..449bf0da57ab10fc61844221b1ebc38d98c7614b 100644
--- a/CTFd/utils/social/__init__.py
+++ b/CTFd/utils/social/__init__.py
@@ -82,7 +82,7 @@ class SolveSocialShare(object):
         # Challenge information
         challenge_id = challenge.id
         challenge_name = challenge.name
-        challenge_value = challenge.value
+        challenge_value = solve.value if solve.value else challenge.value
         solves_count = get_solve_counts_for_challenges(challenge_id=challenge_id)
         solve_count = solves_count.get(challenge_id, 0)
 
@@ -158,7 +158,7 @@ class SolveSocialShare(object):
         # Challenge information
         challenge_id = challenge.id
         challenge_name = challenge.name
-        challenge_value = challenge.value
+        challenge_value = solve.value if solve.value else challenge.value
         solves_count = get_solve_counts_for_challenges(challenge_id=challenge_id)
         solve_count = solves_count.get(challenge_id, 0)
         solve_count_word = str(solve_count) + pluralize(