beatsaber-overlay/index.html
2026-04-11 19:16:54 -07:00

107 lines
4.8 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>BS Overlay</title>
<link rel="stylesheet" href="index.css">
</head>
<body data-game-state="Menu">
<div id="overlayStack">
<div id="songOverlay">
<div class="row">
<img id="coverImg" src="images/unknown.svg">
<div id="mapInfo">
<div class="row">
<span id="title">Title</span>
<span id="subTitle">Subtitle</span>
</div>
<div class="row">
<span id="artist">Artist</span>
<span id="mapper">Mapper</span>
</div>
<div class="row">
<span id="difficulty">Easy</span>
<img id="characteristicImg" src="images/characteristic/Standard.svg">
<span id="difficultyLabel">Diff Label</span>
<span id="type"></span>
<span id="bsrKey">25f</span>
</div>
</div>
</div>
<div class="row">
<div id="time">
<div id="timeBar" style="width: 28%"></div>
<div id="timeText">1:23 / 4:56</div>
</div>
<div id="score">
<span id="accuracy">96.9</span>
<span id="mistakes">7</span>
</div>
</div>
<div id="friendScores" aria-live="polite">
<div id="friendScoresHeader"><span id="friendScoresHeaderText">frenz!</span> <img id="friendScoresHeaderImg" src="assets/peepohigh.webp" alt=""></div>
<ol id="friendScoresList"></ol>
<div id="friendScoresEmpty">No map loaded</div>
</div>
</div>
<div id="debugHud">
<div class="debugHud-title">Debug</div>
<div><span class="debugHud-k">level_id</span> <code id="debugHudLevelId"></code></div>
<div><span class="debugHud-k">hash (level_id)</span> <code id="debugHudRawHash"></code></div>
<div><span class="debugHud-k">hash (BeatLeader)</span> <code id="debugHudHash"></code></div>
<div><span class="debugHud-k">BS+ BSRKey</span> <code id="debugHudBsPlusBsr"></code></div>
<div><span class="debugHud-k">BeatSaver id</span> <code id="debugHudBeatSaverId"></code></div>
<div><span class="debugHud-k">BeatSaver</span> <span id="debugHudBeatSaverNote"></span></div>
<div><span class="debugHud-k">char / diff</span> <span id="debugHudCharDiff"></span></div>
<div><span class="debugHud-k">BS+ playerPlatformId</span> <code id="debugHudHandshake"></code></div>
<div><span class="debugHud-k">BeatLeader id (effective)</span> <code id="debugHudBlId"></code></div>
<div><span class="debugHud-k">BeatLeader leaderboard ids</span> <code id="debugHudBlLeaderboards"></code></div>
<div><span class="debugHud-k">friend scores</span> <span id="debugHudFriends"></span></div>
</div>
<div id="requestOverlay" aria-live="polite">
<div id="requestHeader">Song requests</div>
<ol id="requestList"></ol>
<div id="requestEmpty">No pending requests</div>
</div>
</div>
<svg width="0" height="0" style="position: absolute">
<filter id="gamma" color-interpolation-filters="sRGB">
<feComponentTransfer>
<feFuncR type="gamma" exponent="0.47"></feFuncR>
<feFuncG type="gamma" exponent="0.47"></feFuncG>
<feFuncB type="gamma" exponent="0.47"></feFuncB>
</feComponentTransfer>
</filter>
</svg>
<dialog id="settings">
<strong>Settings</strong>
<label>Show cover: <input id="coverInput" type="checkbox"></label>
<label>Show map info: <input id="mapInfoInput" type="checkbox"></label>
<label>Show time: <input id="timeInput" type="checkbox"></label>
<label>Show score: <input id="scoreInput" type="checkbox"></label>
<label>Show friend scores: <input id="friendsInput" type="checkbox"></label>
<label>Friend list mode: <select id="friendModeInput">
<option value="mutual">Followed + follower (mutual)</option>
<option value="following">Following (I follow them)</option>
<option value="followers">Followers (they follow me)</option>
</select></label>
<label id="beatLeaderPlayerSetting">BeatLeader player id: <input id="beatLeaderPlayerInput" type="text" placeholder="7656119… or alias"></label>
<label>Show BSR / map id: <input id="bsrInput" type="checkbox"></label>
<label>Position: <select id="positionInput">
<option value="[false,false]">Top left</option>
<option value="[true,false]">Top right</option>
<option value="[false,true]">Bottom left</option>
<option value="[true,true]">Bottom right</option>
</select></label>
<label>Scale (%): <input id="scaleInput" type="number" min="10" max="1000" step="5"></label>
<label>Fade (ms): <input id="fadeInput" type="number" min="0" max="5000" step="10"></label>
<label>Debug: <input id="debugInput" type="checkbox"></label>
<label id="mockBsrSetting">Mock BSR key: <input id="mockBsrInput" type="text" placeholder="e.g. 4f4e4"></label>
<br>
<strong>About</strong>
<a href="https://github.com/ibillingsley/BeatSaber-Overlay" target="_blank">This was forked from Iza's overlay</a>
</dialog>
<script type="module" src="index.js"></script>
</body>
</html>