added a server so you do not need to update a text file mauly
yaaaaa
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<title>Edit List - GD fedl</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body data-page="admelist">
|
||||
<header>
|
||||
<h1>fedl</h1>
|
||||
<nav>
|
||||
<a href="index.html">Home</a>
|
||||
<a href="serverlist.html">Server List</a>
|
||||
<a href="lists.html">Static List</a>
|
||||
<a href="players.html">Players</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="admin-shell">
|
||||
<section class="panel admin-panel">
|
||||
<div class="admin-toolbar">
|
||||
<div>
|
||||
<p class="hero-kicker">Editor</p>
|
||||
<h2>Manage the live list</h2>
|
||||
<p id="admin-status" class="muted">Loading list data...</p>
|
||||
</div>
|
||||
<div class="admin-actions">
|
||||
<input id="admin-search" type="text" placeholder="Search rows..." />
|
||||
<button id="add-row" type="button" class="btn ghost-btn">Add Row</button>
|
||||
<button id="save-list" type="button" class="btn">Save List</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-wrap">
|
||||
<table class="levels-table admin-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:90px">#</th>
|
||||
<th style="width:140px">Level</th>
|
||||
<th>Title</th>
|
||||
<th>Video URL</th>
|
||||
<th style="width:120px">Delete</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="admin-list-body"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -5,6 +5,8 @@
|
||||
const page = document.body.dataset.page;
|
||||
let cachedItems = null;
|
||||
let cachedLevelMeta = null;
|
||||
let liveBound = false;
|
||||
let liveHandlers = [];
|
||||
|
||||
// Storage helpers
|
||||
function read(key, fallback){
|
||||
@@ -20,6 +22,15 @@
|
||||
});
|
||||
}
|
||||
|
||||
function formatData(items){
|
||||
return items.map(item=>[
|
||||
item.level || 'new',
|
||||
item.position || '',
|
||||
item.title || '',
|
||||
item.url || ''
|
||||
].join('|')).join('\n');
|
||||
}
|
||||
|
||||
function parseLevelMeta(txt){
|
||||
const map = {};
|
||||
txt.split(/\r?\n/).map(l=>l.trim()).filter(Boolean).forEach(l=>{
|
||||
@@ -37,12 +48,54 @@
|
||||
|
||||
function loadItems(){
|
||||
if(cachedItems) return Promise.resolve(cachedItems);
|
||||
return fetch('data.txt').then(r=>r.text()).then(txt=>{
|
||||
cachedItems = parseData(txt);
|
||||
return fetch('/api/list', {cache:'no-store'}).then(r=>{
|
||||
if(!r.ok) throw new Error('API unavailable');
|
||||
return r.json();
|
||||
}).then(data=>{
|
||||
cachedItems = Array.isArray(data.items) ? data.items : [];
|
||||
return cachedItems;
|
||||
}).catch(()=>{
|
||||
return fetch('server/data.txt', {cache:'no-store'}).then(r=>r.text()).then(txt=>{
|
||||
cachedItems = parseData(txt);
|
||||
return cachedItems;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function clearItemsCache(){
|
||||
cachedItems = null;
|
||||
}
|
||||
|
||||
function onLiveUpdate(handler){
|
||||
liveHandlers.push(handler);
|
||||
}
|
||||
|
||||
function notifyLiveUpdate(items){
|
||||
liveHandlers.forEach(handler=>handler(items));
|
||||
}
|
||||
|
||||
function refreshItems(){
|
||||
clearItemsCache();
|
||||
return loadItems().then(items=>{
|
||||
notifyLiveUpdate(items);
|
||||
return items;
|
||||
});
|
||||
}
|
||||
|
||||
function bindLiveUpdates(){
|
||||
if(liveBound || typeof window.EventSource === 'undefined') return;
|
||||
liveBound = true;
|
||||
const source = new EventSource('/events');
|
||||
source.addEventListener('list-update', ()=>{
|
||||
refreshItems().catch(err=>console.error(err));
|
||||
});
|
||||
source.onerror = function(){
|
||||
source.close();
|
||||
liveBound = false;
|
||||
window.setTimeout(bindLiveUpdates, 3000);
|
||||
};
|
||||
}
|
||||
|
||||
function loadLevelMeta(){
|
||||
if(cachedLevelMeta) return Promise.resolve(cachedLevelMeta);
|
||||
return fetch('level-ids.txt').then(r=>r.text()).then(txt=>{
|
||||
@@ -100,7 +153,7 @@
|
||||
Promise.all([loadItems(), loadLevelMeta()]).then(([items, metaMap])=>{
|
||||
if(!items.length){
|
||||
statusEl.textContent = 'No demons found.';
|
||||
titleEl.textContent = 'Add demons to data.txt';
|
||||
titleEl.textContent = 'Add demons to server/data.txt';
|
||||
idEl.textContent = 'Level ID: -';
|
||||
noteEl.textContent = 'No list data was found.';
|
||||
return;
|
||||
@@ -146,14 +199,17 @@
|
||||
render();
|
||||
}
|
||||
|
||||
// Lists page
|
||||
if(page==='lists'){
|
||||
function initListPage(){
|
||||
const levelsEl = qs('levels'); const listArea = qs('list-area'); const titleEl = qs('list-title');
|
||||
const searchEl = qs('search');
|
||||
const filterSelect = qs('level-filter');
|
||||
let currentItems = [];
|
||||
let controlsBound = false;
|
||||
// Load hard-coded data file data.txt (category|position|title|url per line)
|
||||
function loadData(){
|
||||
loadItems().then(items=>{
|
||||
setupLevels(items);
|
||||
}).catch(err=>{listArea.innerHTML='<p class="muted">Failed to load data.txt — run via a local server.</p>'; console.error(err)});
|
||||
applyItems(items);
|
||||
}).catch(err=>{listArea.innerHTML='<p class="muted">Failed to load list data - run via the Node server.</p>'; console.error(err)});
|
||||
}
|
||||
|
||||
function computeCategories(items){
|
||||
@@ -169,7 +225,6 @@
|
||||
function setupLevels(items){
|
||||
const categories = computeCategories(items);
|
||||
levelsEl.innerHTML='';
|
||||
const filterSelect = qs('level-filter');
|
||||
filterSelect.innerHTML = '<option value="all">Full List</option>';
|
||||
categories.forEach(cat=>{
|
||||
const li = document.createElement('li');
|
||||
@@ -186,11 +241,11 @@
|
||||
|
||||
const opt = document.createElement('option'); opt.value = cat; opt.textContent = cat; filterSelect.appendChild(opt);
|
||||
});
|
||||
// search and filter handlers
|
||||
qs('search').addEventListener('input', ()=> renderTable(items));
|
||||
filterSelect.addEventListener('change', ()=> renderTable(items));
|
||||
// default select Full List
|
||||
selectLevel('Full List', items, levelsEl.querySelector('.level-link'));
|
||||
if(!controlsBound){
|
||||
searchEl.addEventListener('input', ()=> renderTable(currentItems));
|
||||
filterSelect.addEventListener('change', ()=> renderTable(currentItems));
|
||||
controlsBound = true;
|
||||
}
|
||||
}
|
||||
|
||||
function selectLevel(level, items, linkEl){
|
||||
@@ -201,8 +256,8 @@
|
||||
}
|
||||
|
||||
function renderTable(items){
|
||||
const q = (qs('search') && qs('search').value || '').toLowerCase();
|
||||
const levelFilter = (qs('level-filter') && qs('level-filter').value) || 'all';
|
||||
const q = (searchEl && searchEl.value || '').toLowerCase();
|
||||
const levelFilter = (filterSelect && filterSelect.value) || 'all';
|
||||
const filtered = items.filter(it=>{
|
||||
// apply level / category filter (support range categories like "Top 1-10")
|
||||
if(levelFilter && levelFilter!=='all' && levelFilter!=='Full List'){
|
||||
@@ -221,11 +276,12 @@
|
||||
const tr = document.createElement('tr');
|
||||
const tdNum = document.createElement('td'); tdNum.textContent = it.position;
|
||||
const tdTitle = document.createElement('td'); tdTitle.textContent = it.title;
|
||||
const tdLevel = document.createElement('td'); tdLevel.textContent = it.level;
|
||||
const tdAct = document.createElement('td');
|
||||
const a = document.createElement('a'); a.textContent='Open'; a.href='#'; a.className='btn';
|
||||
a.addEventListener('click', (e)=>{e.preventDefault(); openVideo(it.url)});
|
||||
tdAct.appendChild(a);
|
||||
tr.appendChild(tdNum); tr.appendChild(tdTitle); tr.appendChild(tdAct);
|
||||
tr.appendChild(tdNum); tr.appendChild(tdTitle); tr.appendChild(tdLevel); tr.appendChild(tdAct);
|
||||
tbody.appendChild(tr);
|
||||
});
|
||||
}
|
||||
@@ -250,9 +306,222 @@
|
||||
const m = url.match(/(?:v=|\/embed\/|youtu\.be\/)([A-Za-z0-9_-]{6,})/); return m?m[1]:'';
|
||||
}
|
||||
|
||||
function applyItems(items){
|
||||
const previousFilter = filterSelect.value || 'all';
|
||||
currentItems = items.slice();
|
||||
setupLevels(currentItems);
|
||||
const availableFilters = Array.from(filterSelect.options).map(option=>option.value);
|
||||
filterSelect.value = availableFilters.includes(previousFilter) ? previousFilter : 'all';
|
||||
const activeText = filterSelect.value === 'all' ? 'Full List' : filterSelect.value;
|
||||
levelsEl.querySelectorAll('.level-link').forEach(btn=>{
|
||||
btn.classList.toggle('active', btn.textContent === activeText);
|
||||
});
|
||||
renderTable(currentItems);
|
||||
}
|
||||
|
||||
loadData();
|
||||
return {applyItems};
|
||||
}
|
||||
|
||||
// Lists page
|
||||
if(page==='lists' || page==='serverlist'){
|
||||
const listPage = initListPage();
|
||||
if(page==='serverlist'){
|
||||
bindLiveUpdates();
|
||||
onLiveUpdate(function(items){
|
||||
const status = qs('live-status');
|
||||
if(status){
|
||||
status.textContent = 'Live data updated';
|
||||
}
|
||||
listPage.applyItems(items);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if(page==='admelist'){
|
||||
const statusEl = qs('admin-status');
|
||||
const tbody = qs('admin-list-body');
|
||||
const addBtn = qs('add-row');
|
||||
const saveBtn = qs('save-list');
|
||||
const searchEl = qs('admin-search');
|
||||
let items = [];
|
||||
|
||||
function setStatus(message, isError){
|
||||
if(!statusEl) return;
|
||||
statusEl.textContent = message;
|
||||
statusEl.classList.toggle('error-text', !!isError);
|
||||
}
|
||||
|
||||
function filteredItems(){
|
||||
const query = (searchEl && searchEl.value || '').trim().toLowerCase();
|
||||
if(!query) return items;
|
||||
return items.filter(item=>{
|
||||
return [item.level, item.position, item.title, item.url].some(value=>
|
||||
String(value || '').toLowerCase().includes(query)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function normalizePositions(){
|
||||
let position = 1;
|
||||
items.forEach(item=>{
|
||||
if(item._isDraft){
|
||||
item.position = '';
|
||||
return;
|
||||
}
|
||||
item.position = String(position);
|
||||
position += 1;
|
||||
});
|
||||
}
|
||||
|
||||
function moveItemToPosition(index, rawPosition){
|
||||
if(!items[index]) return;
|
||||
const parsedPosition = Number(rawPosition);
|
||||
if(!Number.isFinite(parsedPosition) || parsedPosition < 1) return;
|
||||
const nextPosition = Math.max(1, parsedPosition);
|
||||
const [item] = items.splice(index, 1);
|
||||
item._isDraft = false;
|
||||
const drafts = items.filter(entry=>entry._isDraft);
|
||||
const ranked = items.filter(entry=>!entry._isDraft);
|
||||
const targetIndex = Math.min(ranked.length, nextPosition - 1);
|
||||
ranked.splice(targetIndex, 0, item);
|
||||
items = drafts.concat(ranked);
|
||||
normalizePositions();
|
||||
}
|
||||
|
||||
function renderAdminTable(){
|
||||
const rows = filteredItems();
|
||||
tbody.innerHTML = '';
|
||||
rows.forEach((item, index)=>{
|
||||
const actualIndex = items.indexOf(item);
|
||||
const tr = document.createElement('tr');
|
||||
tr.innerHTML = `
|
||||
<td><input data-field="position" data-index="${actualIndex}" type="number" min="1" value="${escapeAttr(item.position)}"></td>
|
||||
<td><input data-field="level" data-index="${actualIndex}" type="text" value="${escapeAttr(item.level)}"></td>
|
||||
<td><input data-field="title" data-index="${actualIndex}" type="text" value="${escapeAttr(item.title)}"></td>
|
||||
<td><input data-field="url" data-index="${actualIndex}" type="url" value="${escapeAttr(item.url)}"></td>
|
||||
<td><button type="button" class="btn danger-btn small-btn" data-delete="${actualIndex}">Delete</button></td>
|
||||
`;
|
||||
tbody.appendChild(tr);
|
||||
});
|
||||
if(!rows.length){
|
||||
const tr = document.createElement('tr');
|
||||
tr.innerHTML = '<td colspan="5" class="muted">No rows match your search.</td>';
|
||||
tbody.appendChild(tr);
|
||||
}
|
||||
}
|
||||
|
||||
function saveItems(){
|
||||
const hasUnplacedDraft = items.some(item=>{
|
||||
const hasContent = String(item.title || '').trim() || String(item.url || '').trim() || String(item.level || '').trim();
|
||||
return item._isDraft && hasContent;
|
||||
});
|
||||
if(hasUnplacedDraft){
|
||||
setStatus('Give each new row a number before saving.', true);
|
||||
return Promise.resolve();
|
||||
}
|
||||
items = items
|
||||
.map(item=>({
|
||||
level: String(item.level || '').trim() || 'new',
|
||||
position: String(item.position || '').trim(),
|
||||
title: String(item.title || '').trim(),
|
||||
url: String(item.url || '').trim()
|
||||
}))
|
||||
.filter(item=>item.title);
|
||||
normalizePositions();
|
||||
return fetch('/api/list', {
|
||||
method:'PUT',
|
||||
headers:{'Content-Type':'application/json'},
|
||||
body: JSON.stringify({text: formatData(items)})
|
||||
}).then(r=>{
|
||||
if(!r.ok) throw new Error('Save failed');
|
||||
clearItemsCache();
|
||||
renderAdminTable();
|
||||
setStatus('Saved. Live pages update automatically.');
|
||||
}).catch(err=>{
|
||||
console.error(err);
|
||||
setStatus('Could not save. Start the Node server and try again.', true);
|
||||
});
|
||||
}
|
||||
|
||||
function loadAdmin(){
|
||||
loadItems().then(loaded=>{
|
||||
items = loaded.slice().sort((a,b)=>(Number(a.position) || 0) - (Number(b.position) || 0)).map(item=>({
|
||||
level: item.level,
|
||||
position: item.position,
|
||||
title: item.title,
|
||||
url: item.url,
|
||||
_isDraft: false
|
||||
}));
|
||||
normalizePositions();
|
||||
renderAdminTable();
|
||||
setStatus('Connected to live list data.');
|
||||
}).catch(err=>{
|
||||
console.error(err);
|
||||
setStatus('Could not load list data. Start the Node server first.', true);
|
||||
});
|
||||
}
|
||||
|
||||
tbody.addEventListener('input', function(event){
|
||||
const target = event.target;
|
||||
const field = target.getAttribute('data-field');
|
||||
const index = Number(target.getAttribute('data-index'));
|
||||
if(!field || Number.isNaN(index) || !items[index]) return;
|
||||
if(field === 'position'){
|
||||
moveItemToPosition(index, target.value);
|
||||
renderAdminTable();
|
||||
}else{
|
||||
items[index][field] = target.value;
|
||||
}
|
||||
setStatus('Unsaved changes');
|
||||
});
|
||||
|
||||
tbody.addEventListener('click', function(event){
|
||||
const deleteButton = event.target.closest('[data-delete]');
|
||||
if(!deleteButton) return;
|
||||
const deleteIndex = deleteButton.getAttribute('data-delete');
|
||||
if(deleteIndex == null) return;
|
||||
const index = Number(deleteIndex);
|
||||
if(Number.isNaN(index)) return;
|
||||
items.splice(index, 1);
|
||||
normalizePositions();
|
||||
renderAdminTable();
|
||||
setStatus('Row removed. Save when ready.');
|
||||
});
|
||||
|
||||
addBtn.addEventListener('click', function(){
|
||||
items.unshift({level:'new', position:'', title:'', url:'', _isDraft:true});
|
||||
normalizePositions();
|
||||
renderAdminTable();
|
||||
setStatus('New row added at the top. Give it a number when you want to place it.');
|
||||
});
|
||||
|
||||
saveBtn.addEventListener('click', function(){
|
||||
saveItems();
|
||||
});
|
||||
|
||||
if(searchEl){
|
||||
searchEl.addEventListener('input', renderAdminTable);
|
||||
}
|
||||
|
||||
bindLiveUpdates();
|
||||
onLiveUpdate(function(updatedItems){
|
||||
items = updatedItems.slice().sort((a,b)=>(Number(a.position) || 0) - (Number(b.position) || 0)).map(item=>({
|
||||
level: item.level,
|
||||
position: item.position,
|
||||
title: item.title,
|
||||
url: item.url,
|
||||
_isDraft: false
|
||||
}));
|
||||
normalizePositions();
|
||||
renderAdminTable();
|
||||
setStatus('List reloaded from live server.');
|
||||
});
|
||||
|
||||
loadAdmin();
|
||||
}
|
||||
|
||||
// Utility
|
||||
function escapeHtml(s){return String(s).replace(/[&<>"']/g, c=>({"&":"&","<":"<",">":">","\"":""","'":"'"})[c])}
|
||||
function escapeAttr(s){return escapeHtml(String(s == null ? '' : s))}
|
||||
})();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
new|1|Flamewall|https://youtu.be/x4Io4zkWVRw?si=tf0DBaWahOPPEWxO
|
||||
new|2|Thinking Space II|https://youtu.be/CELNmHwln_c?si=soP6SzRn92G1vKbl
|
||||
new|4|Amethyst|https://youtu.be/4lfkzz1VCbA?si=6NNeWiH-nnwu21Cb
|
||||
new|3|Tidal Wave|https://youtu.be/9fsZ014qB3s?si=oj4E4ceyNtRVcDvd
|
||||
new|4|Amethyst|https://youtu.be/4lfkzz1VCbA?si=6NNeWiH-nnwu21Cb
|
||||
new|5|Orbit|https://youtu.be/QKcv8DkNPd0?si=cKBFqp7GRqmfupgJ
|
||||
new|6|BOOBAWAMBA|https://youtu.be/20fYiqLAo_E?si=QSSixz31rWeeQ_8B
|
||||
new|7|Nullscapes|https://youtu.be/EztneTPp5CU?si=ljn-S_bnGYwOoUyV
|
||||
@@ -22,82 +22,82 @@ new|21|Tunnel Of Despair|https://youtu.be/LpS4JREhW98?si=Z6_DRV5YZTEA0TeQ
|
||||
new|22|Subterminal Point|https://youtu.be/h2wmRMgACH4?si=nDD0-bmLqPgcdVJP
|
||||
new|23|KOCMOC|https://youtu.be/2CxE-UWCIG4?si=9xz4hBjtNKe8Rcbs
|
||||
new|24|Slaughterhouse|https://youtu.be/kpcF1-QAHQc?si=7ybF9EbcjqHzloLM
|
||||
new|25|Kyouki|https://youtu.be/KDa5c0CJTHs?si=WU0sPusFLB7Jtkam
|
||||
new|26|The Lightning Rod|https://youtu.be/nQDTi077O6M?si=Kqp2Od3lJx1YWTDB
|
||||
new|27|Based After Based|https://youtu.be/yQBFyUvB3lY?si=Cmxbc5jrTrNlcmG5
|
||||
new|28|CHIL|https://youtu.be/DROMiCc2ZRM?si=_bR8CCnqJGVCex9F
|
||||
new|29|Sakupen Circles|https://youtu.be/ofG2mJi9kEA?si=3yv78_jxidKPhtL5
|
||||
new|30|Deimos (ItsHybrid)|https://youtu.be/b2yHaIk5zio?si=AMIuVFR-EW4CK8_P
|
||||
new|31|Eyes In The Water|https://youtu.be/yvLwiOy3KEA?si=1991xs25WTEoTbE0
|
||||
new|32|Voltage|https://youtu.be/wBRvBN9tmlc?si=GU2md9I7ZnUV7Rfr
|
||||
new|33|Firework|https://youtu.be/QBe5x2o9v2w?si=dhPg9YcCRjwngxU9
|
||||
new|34|Silentlocked|https://youtu.be/O-IQeUdEGvI?si=KeSHH6kwZoSVGINT
|
||||
new|35|poocubed|https://youtu.be/fzL31vai1ms?si=9Gwk7RDtbEFxOJ6t
|
||||
new|36|KOSETSU|https://youtu.be/hZ8vFX8z_BU?si=P6fFal0yazJbje2O
|
||||
new|37|Through The Gates|https://youtu.be/4yHA6jux5UI?si=nstk3A6FDN3QR-qm
|
||||
new|38|Saul Goodman|https://youtu.be/hjs5PjUaw9k?si=qJpGrru21d50gO5R
|
||||
new|39|The Salt Factory|https://youtu.be/lQ7M-Sgov24?si=nXYVL0XGy5NOJLXn
|
||||
new|40|Snowbound|https://youtu.be/cjHwgbtAkXU?si=ghJbRJCkN-m0zu60
|
||||
new|41|CONVOLSION|https://youtu.be/qeRKuyU3eGI?si=UPaem0b3V8fX0L1r
|
||||
new|42|The Apocalyptic Trilogy|https://youtu.be/RUBbpsTR5eU?si=mEsPtyMLrQgP5fWl
|
||||
new|43|MINUSdry|https://youtu.be/YvA8ehhzz0Q?si=DT6DfrXOQ41swSIR
|
||||
new|44|Sevvend Clubstep|https://youtu.be/TvA8EJTJFCc?si=Rm9HyExGYpeGn4qs
|
||||
new|45|Edge Of Destiny|https://youtu.be/rUphe3H59yU?si=dZ8LgDyqif1ET_k1
|
||||
new|46|The Halucination|https://youtu.be/tYbXsNkO9HE?si=b8hmXS98BAjDlPzF
|
||||
new|47|CONVULSION|https://youtu.be/qeRKuyU3eGI?si=qJN026t6RcGjU3iW
|
||||
new|48|Solar Flare|https://youtu.be/eHQNgty8ypY?si=ZdUIODdeDYLAXeHI
|
||||
new|49|LIMBO|https://youtu.be/kXYMbaMVOZg?si=fWm4ngeSxBhFZadA
|
||||
new|50|The Catacombs|https://youtu.be/T9-75lfKVQg?si=zEH6vP1617n5666I
|
||||
new|51|Gaggatronda|https://youtu.be/A4G41vw6Cf0?si=0B8vDSj8vPElRa4i
|
||||
new|52|Codependence (Solo)|https://youtu.be/IKGk41hSnDo?si=1hmZYSDTYOxjWW6u
|
||||
new|53|Belladonna|https://youtu.be/saHSgoU1JQQ?si=SyIGkLNhmE1D8So7
|
||||
new|54|Collapse (Nexel)|https://youtu.be/RCFpXyf6bn0?si=WMfEkJJRqN6xaLxZ
|
||||
new|55|Mayhem|https://youtu.be/U6e6DD32noM?si=YCWNMvQ34ohce3H3
|
||||
new|56|Walter White|https://youtu.be/KzK62PkWOJ0?si=UQdOGms7z-pG-XPp
|
||||
new|57|CROMACAVE|https://youtu.be/tfpsMZI6z-o?si=OG_8nmb3MUpR-EBz
|
||||
new|58|The Plunge|https://youtu.be/8gW1-_u1K0Y?si=Sei6SdC7G-QzrKdy
|
||||
new|59|Infinite Chaos|https://youtu.be/wOMVERxU5IA?si=xig-kQM3x3e5fH1k
|
||||
new|60|Damascus|https://youtu.be/MWQyCUGt76Y?si=p3xkwoLEbK0p-ucw
|
||||
new|61|Operation Evolution|https://youtu.be/WsVF-ayipvY?si=SGz8C0T9IXeu1YeR
|
||||
new|62|SARYYX NEVER CLEAR|https://youtu.be/rRlyvmjcz_4?si=v6Eva9LHV2iLzNaf
|
||||
new|63|The Yangire|https://youtu.be/V3FjIorIfWg?si=5DR0YRTHFMw8dZ7z
|
||||
new|64|Decks Dark|https://youtu.be/l52ApE4HWkY?si=85C832hCxG0PUThq. hi
|
||||
new|65|Climax|https://youtu.be/E4ppq2WeAAs?si=dOWHqoBCSC_3liFu
|
||||
new|66|ORDINARY|https://youtu.be/4QiHP3jpGnk?si=0plaftXpA8nOrUf8
|
||||
new|67|wavterminal|https://youtu.be/dlvsCE3xYkQ?si=ihNU2fqTufiJ3t7N
|
||||
new|68|Loops Of Fury|https://youtu.be/9HBG3i5zbw8?si=7SnwcoJkF5Wke-im
|
||||
new|69|Sinister Silence|https://youtu.be/dJCdTMQxHMo?si=eXhBEf1AiZRxnwr_
|
||||
new|70|arcturus|https://youtu.be/a_Bqa8l9Xtc?si=Tz6FaY_wAld1xjGq
|
||||
new|71|Cimmerian Shade|https://youtu.be/lUNvV1k19HA?si=P9_B0sDua9WZ_bQj
|
||||
new|72|PSYCHOPATH|https://youtu.be/1luL7tTE8p8?si=YKhXZzpUsFUntBQ2
|
||||
new|73|Midnight|https://youtu.be/NhkN_a9cNi8?si=kxmLQdZfSmiXjV6s
|
||||
new|74|Tartarus|https://youtu.be/JptG7rwti1U?si=HCtGcPUmKQEtJlB9
|
||||
new|75|Sonic Wave Infinity|https://youtu.be/C3-l_fFikpQ?si=-tbOdlhQ49L9WeOe
|
||||
new|76|BEELINE (solo)|https://youtu.be/nt6T9YDb6gw?si=isN4Q0jDZnuMsldv
|
||||
new|77|Jigsaw|https://youtu.be/FPfSqlI0T30?si=xb8vXJ2girhi-dbs
|
||||
new|78|Waterfall|https://youtu.be/VKuVdqneG9Y?si=8CRjd1ttXRM8mWLh
|
||||
new|79|THE JET ENGINE|https://youtu.be/8Q20XU__LoQ?si=NKm0fq3qFgiX53e9
|
||||
new|80|Coalescence|https://youtu.be/do-a2EzZ4R8?si=zEIRXm5OR97WKgX1
|
||||
new|81|BPATA MPAKA|https://youtu.be/sSbHYzYgYfA?si=7g9yQ1XnoZtQrqgP
|
||||
new|82|The Wonder Of You|https://youtu.be/iQ3RzYCvLvA?si=JU5AW_dP1Mgmxq7A
|
||||
new|83|Delta|https://youtu.be/_rr3J8DkIm4?si=BU9VW8h-wKoWAcRJ
|
||||
new|84|The Golden|https://youtu.be/wpS5PSHmji0?si=J7dT2Srdo_LqTrd7
|
||||
new|85|Terminal Rampancy|https://youtu.be/29hRhhqQTLc?si=5GGOrtxUootbEY-F
|
||||
new|86|Natural Disaster|https://youtu.be/_0GqdSFmG_8?si=4kUa8hJqK-bT70nI
|
||||
new|87|Viprin UFO|https://youtu.be/LTMW9Py-nHE?si=vIBNIDOhvQi9FpVd
|
||||
new|88|Oblivion|https://youtu.be/ZcmDAm50BB0?si=otqXWvzIRzL1L3wq
|
||||
new|89|NETWORK|(Agat3) https://youtu.be/K7wJi01J5D8?si=hEJIwYn1J9RY_-XG
|
||||
new|90|UNKNOWN|https://youtu.be/a1sQxQqU6EM?si=737UNiYWoU5CM0zQ
|
||||
new|91|Verdant Landscape|https://youtu.be/wjZxkS5KC0A?si=WFTg6aixL7Z0YAGp
|
||||
new|92|Levigo|https://youtu.be/AROmUo7DNkE?si=eHXmi5PmBW94sXRl
|
||||
new|93|ATOMIC CANNON Mk III|https://youtu.be/xlAI_wVvnx8?si=3UJXMPHYGKH-qDyC
|
||||
new|94|Shukketsu|https://youtu.be/nkG4hKJIz2g?si=KNly0dPd063HIlKU
|
||||
new|95|Checked Steam|https://youtu.be/cq6047eYGXs?si=yE7kCbjdAp_7iMlM
|
||||
new|96|WOBBLING MACHINE (Solo)|https://youtu.be/RKX6VOsICOg?si=QjLbBucxWJhI3TW0
|
||||
new|97|Critical Heat|https://youtu.be/UjYIt2jy_BY?si=5Jl3FoAOEPSGL1t-
|
||||
new|98|Crystal Crusher (Solo)|https://youtu.be/RKX6VOsICOg?si=ZPPM3qjbx2KraxYW
|
||||
new|99|limbo but uwu ig idk|https://youtu.be/3B36N-qfOD8?si=NshDR7CO9whAkga9
|
||||
new|110|Graceful|https://youtu.be/5kOD37vQHKE?si=VXPDbYRAZstaq_Oy
|
||||
new|25|new top 1|https://www.youtube.com/watch?v=oHg5SJYRHA0
|
||||
new|26|Kyouki|https://youtu.be/KDa5c0CJTHs?si=WU0sPusFLB7Jtkam
|
||||
new|27|The Lightning Rod|https://youtu.be/nQDTi077O6M?si=Kqp2Od3lJx1YWTDB
|
||||
new|28|Based After Based|https://youtu.be/yQBFyUvB3lY?si=Cmxbc5jrTrNlcmG5
|
||||
new|29|CHIL|https://youtu.be/DROMiCc2ZRM?si=_bR8CCnqJGVCex9F
|
||||
new|30|Sakupen Circles|https://youtu.be/ofG2mJi9kEA?si=3yv78_jxidKPhtL5
|
||||
new|31|Deimos (ItsHybrid)|https://youtu.be/b2yHaIk5zio?si=AMIuVFR-EW4CK8_P
|
||||
new|32|Eyes In The Water|https://youtu.be/yvLwiOy3KEA?si=1991xs25WTEoTbE0
|
||||
new|33|Voltage|https://youtu.be/wBRvBN9tmlc?si=GU2md9I7ZnUV7Rfr
|
||||
new|34|Firework|https://youtu.be/QBe5x2o9v2w?si=dhPg9YcCRjwngxU9
|
||||
new|35|Silentlocked|https://youtu.be/O-IQeUdEGvI?si=KeSHH6kwZoSVGINT
|
||||
new|36|poocubed|https://youtu.be/fzL31vai1ms?si=9Gwk7RDtbEFxOJ6t
|
||||
new|37|KOSETSU|https://youtu.be/hZ8vFX8z_BU?si=P6fFal0yazJbje2O
|
||||
new|38|Through The Gates|https://youtu.be/4yHA6jux5UI?si=nstk3A6FDN3QR-qm
|
||||
new|39|Saul Goodman|https://youtu.be/hjs5PjUaw9k?si=qJpGrru21d50gO5R
|
||||
new|40|The Salt Factory|https://youtu.be/lQ7M-Sgov24?si=nXYVL0XGy5NOJLXn
|
||||
new|41|Snowbound|https://youtu.be/cjHwgbtAkXU?si=ghJbRJCkN-m0zu60
|
||||
new|42|CONVOLSION|https://youtu.be/qeRKuyU3eGI?si=UPaem0b3V8fX0L1r
|
||||
new|43|The Apocalyptic Trilogy|https://youtu.be/RUBbpsTR5eU?si=mEsPtyMLrQgP5fWl
|
||||
new|44|MINUSdry|https://youtu.be/YvA8ehhzz0Q?si=DT6DfrXOQ41swSIR
|
||||
new|45|Sevvend Clubstep|https://youtu.be/TvA8EJTJFCc?si=Rm9HyExGYpeGn4qs
|
||||
new|46|Edge Of Destiny|https://youtu.be/rUphe3H59yU?si=dZ8LgDyqif1ET_k1
|
||||
new|47|The Halucination|https://youtu.be/tYbXsNkO9HE?si=b8hmXS98BAjDlPzF
|
||||
new|48|CONVULSION|https://youtu.be/qeRKuyU3eGI?si=qJN026t6RcGjU3iW
|
||||
new|49|Solar Flare|https://youtu.be/eHQNgty8ypY?si=ZdUIODdeDYLAXeHI
|
||||
new|50|LIMBO|https://youtu.be/kXYMbaMVOZg?si=fWm4ngeSxBhFZadA
|
||||
new|51|The Catacombs|https://youtu.be/T9-75lfKVQg?si=zEH6vP1617n5666I
|
||||
new|52|Gaggatronda|https://youtu.be/A4G41vw6Cf0?si=0B8vDSj8vPElRa4i
|
||||
new|53|Codependence (Solo)|https://youtu.be/IKGk41hSnDo?si=1hmZYSDTYOxjWW6u
|
||||
new|54|Belladonna|https://youtu.be/saHSgoU1JQQ?si=SyIGkLNhmE1D8So7
|
||||
new|55|Collapse (Nexel)|https://youtu.be/RCFpXyf6bn0?si=WMfEkJJRqN6xaLxZ
|
||||
new|56|Mayhem|https://youtu.be/U6e6DD32noM?si=YCWNMvQ34ohce3H3
|
||||
new|57|Walter White|https://youtu.be/KzK62PkWOJ0?si=UQdOGms7z-pG-XPp
|
||||
new|58|CROMACAVE|https://youtu.be/tfpsMZI6z-o?si=OG_8nmb3MUpR-EBz
|
||||
new|59|The Plunge|https://youtu.be/8gW1-_u1K0Y?si=Sei6SdC7G-QzrKdy
|
||||
new|60|Infinite Chaos|https://youtu.be/wOMVERxU5IA?si=xig-kQM3x3e5fH1k
|
||||
new|61|Damascus|https://youtu.be/MWQyCUGt76Y?si=p3xkwoLEbK0p-ucw
|
||||
new|62|Operation Evolution|https://youtu.be/WsVF-ayipvY?si=SGz8C0T9IXeu1YeR
|
||||
new|63|SARYYX NEVER CLEAR|https://youtu.be/rRlyvmjcz_4?si=v6Eva9LHV2iLzNaf
|
||||
new|64|The Yangire|https://youtu.be/V3FjIorIfWg?si=5DR0YRTHFMw8dZ7z
|
||||
new|65|Decks Dark|https://youtu.be/l52ApE4HWkY?si=85C832hCxG0PUThq. hi
|
||||
new|66|Climax|https://youtu.be/E4ppq2WeAAs?si=dOWHqoBCSC_3liFu
|
||||
new|67|ORDINARY|https://youtu.be/4QiHP3jpGnk?si=0plaftXpA8nOrUf8
|
||||
new|68|wavterminal|https://youtu.be/dlvsCE3xYkQ?si=ihNU2fqTufiJ3t7N
|
||||
new|69|Loops Of Fury|https://youtu.be/9HBG3i5zbw8?si=7SnwcoJkF5Wke-im
|
||||
new|70|Sinister Silence|https://youtu.be/dJCdTMQxHMo?si=eXhBEf1AiZRxnwr_
|
||||
new|71|arcturus|https://youtu.be/a_Bqa8l9Xtc?si=Tz6FaY_wAld1xjGq
|
||||
new|72|Cimmerian Shade|https://youtu.be/lUNvV1k19HA?si=P9_B0sDua9WZ_bQj
|
||||
new|73|PSYCHOPATH|https://youtu.be/1luL7tTE8p8?si=YKhXZzpUsFUntBQ2
|
||||
new|74|Midnight|https://youtu.be/NhkN_a9cNi8?si=kxmLQdZfSmiXjV6s
|
||||
new|75|Tartarus|https://youtu.be/JptG7rwti1U?si=HCtGcPUmKQEtJlB9
|
||||
new|76|Sonic Wave Infinity|https://youtu.be/C3-l_fFikpQ?si=-tbOdlhQ49L9WeOe
|
||||
new|77|BEELINE (solo)|https://youtu.be/nt6T9YDb6gw?si=isN4Q0jDZnuMsldv
|
||||
new|78|Jigsaw|https://youtu.be/FPfSqlI0T30?si=xb8vXJ2girhi-dbs
|
||||
new|79|Waterfall|https://youtu.be/VKuVdqneG9Y?si=8CRjd1ttXRM8mWLh
|
||||
new|80|THE JET ENGINE|https://youtu.be/8Q20XU__LoQ?si=NKm0fq3qFgiX53e9
|
||||
new|81|Coalescence|https://youtu.be/do-a2EzZ4R8?si=zEIRXm5OR97WKgX1
|
||||
new|82|BPATA MPAKA|https://youtu.be/sSbHYzYgYfA?si=7g9yQ1XnoZtQrqgP
|
||||
new|83|The Wonder Of You|https://youtu.be/iQ3RzYCvLvA?si=JU5AW_dP1Mgmxq7A
|
||||
new|84|Delta|https://youtu.be/_rr3J8DkIm4?si=BU9VW8h-wKoWAcRJ
|
||||
new|85|The Golden|https://youtu.be/wpS5PSHmji0?si=J7dT2Srdo_LqTrd7
|
||||
new|86|Terminal Rampancy|https://youtu.be/29hRhhqQTLc?si=5GGOrtxUootbEY-F
|
||||
new|87|Natural Disaster|https://youtu.be/_0GqdSFmG_8?si=4kUa8hJqK-bT70nI
|
||||
new|88|Viprin UFO|https://youtu.be/LTMW9Py-nHE?si=vIBNIDOhvQi9FpVd
|
||||
new|89|Oblivion|https://youtu.be/ZcmDAm50BB0?si=otqXWvzIRzL1L3wq
|
||||
new|90|NETWORK|(Agat3) https://youtu.be/K7wJi01J5D8?si=hEJIwYn1J9RY_-XG
|
||||
new|91|UNKNOWN|https://youtu.be/a1sQxQqU6EM?si=737UNiYWoU5CM0zQ
|
||||
new|92|Verdant Landscape|https://youtu.be/wjZxkS5KC0A?si=WFTg6aixL7Z0YAGp
|
||||
new|93|Levigo|https://youtu.be/AROmUo7DNkE?si=eHXmi5PmBW94sXRl
|
||||
new|94|ATOMIC CANNON Mk III|https://youtu.be/xlAI_wVvnx8?si=3UJXMPHYGKH-qDyC
|
||||
new|95|Shukketsu|https://youtu.be/nkG4hKJIz2g?si=KNly0dPd063HIlKU
|
||||
new|96|Checked Steam|https://youtu.be/cq6047eYGXs?si=yE7kCbjdAp_7iMlM
|
||||
new|97|WOBBLING MACHINE (Solo)|https://youtu.be/RKX6VOsICOg?si=QjLbBucxWJhI3TW0
|
||||
new|98|Critical Heat|https://youtu.be/UjYIt2jy_BY?si=5Jl3FoAOEPSGL1t-
|
||||
new|99|Crystal Crusher (Solo)|https://youtu.be/RKX6VOsICOg?si=ZPPM3qjbx2KraxYW
|
||||
new|100|limbo but uwu ig idk|https://youtu.be/3B36N-qfOD8?si=NshDR7CO9whAkga9
|
||||
new|101|The Paroxysm of Rage|https://youtu.be/nq3i1qJQeEk?si=-xey2Qd9hrtu_AZU
|
||||
new|102|paranoia (amplitron)|https://youtu.be/Aw83i8Zmh_0?si=0GwEgBHuexCHsuhk
|
||||
new|103|Blood Echo|https://youtu.be/fSvk4tLlQzQ?si=a6pIZkJ58uM2y5gs
|
||||
@@ -107,144 +107,145 @@ new|106|VOID|https://youtu.be/kN1FUoucoSc?si=NjE2E12FF9urJL45
|
||||
new|107|Starlit Stroll|https://youtu.be/U7MM74dTXuI?si=WofCw6_u86gVLFSb
|
||||
new|108|Trueffet|https://youtu.be/yHESkazVD4Q?si=Wo04Qh1dOGEDb3JH
|
||||
new|109|Henken|https://youtu.be/M--2oQKrV68?si=WsNcHkxpVO3BGW6T
|
||||
new|110|Kenos|https://youtu.be/Bs1kVySdUtI?si=4DAwPGeehZX6YzEJ
|
||||
new|111|azure blast|https://youtu.be/TN0FQ3KBv4w?si=JVSf1iXaez8sSOw0
|
||||
new|112|Fragile|https://youtu.be/XfXzGv0oALw?si=0Blg4XOudYEomR2A
|
||||
new|113|Starlight Summit|https://youtu.be/LB9xx41M4Ns?si=xC9MsTIzlM44AdhE
|
||||
new|114|chrome hearts|https://youtu.be/GK0Z8rgziH4?si=orYnpQGMPKPQTW_O
|
||||
new|115|Esfera|https://youtu.be/GK0Z8rgziH4?si=1km0bCL22Egbl-Xk
|
||||
new|116|Destruction 19|https://youtu.be/UUyzGg_4mqs?si=uJw74R5zv3GwYiag
|
||||
new|117|NEUTRA|https://youtu.be/0fNBFwNS1qg?si=sqeqmMqFotN6jgGh
|
||||
new|118|Time Lapse|https://youtu.be/MnI1mM_wjzc?si=FEmB2fWSeNqJDIwv
|
||||
new|119|Dark Dimension|https://youtu.be/g2DrT9bHjOI?si=TuVvUXo1XDGlNB5_
|
||||
new|120|Guideless Goobering|https://youtu.be/pFxdGKYQrcg?si=nQ3kVcqOq8UEt6uB
|
||||
new|121|Hard Machine|https://youtu.be/z3grmsqAaas?si=xBvAriHwGl-IneUd
|
||||
new|122|Swing Swing|https://youtu.be/_hL9hFU3WI4?si=4ihgAE4n8VrN4lsk
|
||||
new|123|DISSONANCE|https://youtu.be/IfFser-f9c0?si=P2D23zMCX96QPEL8
|
||||
new|124|Zodiac|https://youtu.be/N4QjElo58_o?si=0PMsj7NgBfUUIzLZ
|
||||
new|125|Goober Rage Stage|https://youtu.be/1rrouUCPXhY?si=2o6cHwApb4o-08jL
|
||||
new|126|Crackhead Circles|https://youtu.be/_4MDq8Us5gM?si=KO4JZZNs5mYpzAg3
|
||||
new|127|Lotus Flower|https://youtu.be/pTgOHcwJhd0?si=k92uqgcP9o-Ovvxr
|
||||
new|128|Scream Machine|https://youtu.be/n-KeSGEX7Jg?si=dY8omM-22Iju1uck
|
||||
new|129|Axinie|https://youtu.be/LjfO2fqnozI?si=KuTXmwjvM6_t45rS
|
||||
new|130|Widestep|https://youtu.be/TN8fHN_XV3o?si=UdbpxVI9fvujr4RU
|
||||
new|131|Judgement Knights|https://youtu.be/MzzY8nWfxnk?si=zAXlxJZFiKCGlu9A
|
||||
new|132|Keres|https://youtu.be/MFFIjZP7PxQ?si=lkc9tRawW-XNv6-7
|
||||
new|133|Lithium|https://youtu.be/IfVM56qNVdA?si=AIEw5JbV9OQW60eJ
|
||||
new|134|IRIS|https://youtu.be/WiFwAU8pgr4?si=Q0fTY2Hd2oQLBLaW
|
||||
new|135|Cold Sweat|https://youtu.be/tBpEPXGhQug?si=0s6Mh429yBF_dkea
|
||||
new|136|Galeforce|https://youtu.be/G6VF2Gvmpz0?si=WzSIerGhoz3u0fcV
|
||||
new|137|in this|https://youtu.be/gQiOdxOyNGg?si=gTmiy_pThUKYLcb0
|
||||
new|138|Frost Spirit|https://youtu.be/KXbaRnRpm58?si=LHfUVqpxgRYtEmkH
|
||||
new|139|Thinking Space|https://youtu.be/iHf2nanWjvE?si=stgikKc4PPw8F7vp
|
||||
new|140|Promethean|https://youtu.be/19kE_Yo8puE?si=0AcDFf0OjghIgdpX
|
||||
new|141|Ascent|https://youtu.be/sII8zQZIJlg?si=gHbK7-s-CLho4vM0
|
||||
new|142|Dry Out Copyable 2|https://youtu.be/FXW9J9CaREU?si=6Be51250LT0SQLHy
|
||||
new|143|Renevant|https://youtu.be/2Y8kBw8YxO8?si=UQS31gMvOew6fsrc
|
||||
new|144|ConClusion|https://youtu.be/wpuPFFqnJFY?si=CEHAmw_k9_WjadYw
|
||||
new|145|Trotil|https://youtu.be/kblnO7LfQn4?si=Lq_V_8BrvzGo-KAH
|
||||
new|146|We Are Not The Same (Solo)|https://youtu.be/yLLd4mpeYC4?si=5Cugl6UYnBcx8A0a
|
||||
new|147|Disconnected Descent|https://youtu.be/TP7OAAVH-uA?si=2_eKfx19pc3xyZFt
|
||||
new|148|Instinct (KrmaL)|https://youtu.be/6W3Gvi9ft0w?si=o-AAu2Yz7G5Ytm2Y
|
||||
new|149|Calculator Core|https://youtu.be/VrgNFsF2NGw?si=VxW5clIFp8YLf0nv
|
||||
new|150|Sky Shredder|https://youtu.be/Z-69-4RKRgk?si=O96OhtDsQ1BFgJLG
|
||||
new|151|Crimson Planet|https://www.youtube.com/live/euMInLjyG6k?si=09vneTJfThjnpACw
|
||||
new|152|shimmer (amplitron)|https://youtu.be/J89j-_l7ezg?si=fMAyAXx2w028BXR8
|
||||
new|153|DIRECTIONS|https://youtu.be/-SEgSgxpRxo?si=ZLxK5XD8B8pPiVsp
|
||||
new|154|ATOMIC CANNON Mk II|https://youtu.be/4-lOnZsfhNQ?si=ON-czwtJawFMgZc_
|
||||
new|155|Ringy Paracosm|https://youtu.be/RIDuh4IVGiw?si=9s892WxqybVKVYlP
|
||||
new|156|Cognition|https://youtu.be/enl0GOyskPs?si=qe18-qXwxoUkokyt
|
||||
new|157|Axiom Asterism|https://youtu.be/LnFdka3HekA?si=ehLne5DftKG33cQH
|
||||
new|158|Indivine|https://youtu.be/g2CVts-tX70?si=XfKVwmDp5HoTj_--
|
||||
new|159|Neon Skyline|https://youtu.be/HvGjIAeLv_8?si=sEu3tWgtJJrcbHxd
|
||||
new|160|Cosmic Cyclone|https://youtu.be/0I9xCfTOpXg?si=2Q1_twV5HH3zLOMN
|
||||
new|161|CORRODERE|https://youtu.be/-V87Bh44lAU?si=zIbxyCYezyK_dAna
|
||||
new|162|SARY NEVER CLEAR|https://youtu.be/23u3SlwrOMw?si=GMUrk4CONI8n-RHy
|
||||
new|163|qoUEO|https://youtu.be/PJbfroH0sok?si=lQM4JwbyXlwc85td
|
||||
new|164|Rigel|https://youtu.be/liJFeLHcW_Q?si=UaqSqF1aJLB6kt6t
|
||||
new|165|Scrubbabingo force|https://youtu.be/eT_izuCxGUU?si=_VzD8E46NCZMx11v
|
||||
new|166|RUST|https://youtu.be/mEXGlrNMyR4?si=HQuHo3l0QAtY4hPO
|
||||
new|167|Call Me Maybe|https://youtu.be/Jc-98ND5OJk?si=3EsBQ7paobUcgnel
|
||||
new|168|ta1LSD0ll|https://youtu.be/w-NH14vgMb8?si=xocgmpg6Jn92_Evs
|
||||
new|169|SAND SAILOR|https://youtu.be/QPmzn9X77Uo?si=vWrkuwERNWZbYcTb
|
||||
new|170|Gloxinia|https://youtu.be/MJh_6Z5v6bM?si=Lyzx4IoWnWQfZELk
|
||||
new|171|Akashic Records|https://youtu.be/qnZnV6q-mt4?si=7n69Q8erUDa58c0H
|
||||
new|172|Cobwebs|https://youtu.be/bgZ85rCaEGY?si=gEsYkSGnk6G5qP_r
|
||||
new|173|meow hard|https://youtu.be/jOhGH2TckDA?si=ZhjMOsVjzFxDPFZm
|
||||
new|174|Lucid Nightmares|https://youtu.be/G7hBE5qWx6M?si=D8M1hqmsA9k3oVOU
|
||||
new|175|RUTHLESS|https://youtu.be/9jwVeYtc6H4?si=meyxbaKJqCe5Fums
|
||||
new|176|Coral Cave|https://youtu.be/kTOM1nSEF3I?si=XpkVW2-qTylokjI-
|
||||
new|177|SUPERHATEMEWORLD|https://youtu.be/fhmgZYCJ29M?si=yjgUX5sohJ0ej1uW
|
||||
new|178|Launchpad Labyrinth|https://youtu.be/XELUzw7UbNU?si=rxyVGXKE74rHb8DT
|
||||
new|179|Tenkai (Solo)|https://youtu.be/AM2KHSZkjcc?si=bkHkgj1CO1yv31vv
|
||||
new|180|Sharpscapes|https://youtu.be/wM-J6fLIs14?si=4njb0wT6coAwDDZB
|
||||
new|181|obsession|https://youtu.be/OjXKjQXnhjA?si=5QdHmozIHvdl4I4-
|
||||
new|182|Horros (Solo)|https://youtu.be/OS46C-zvqDA?si=2DKf_LRA2PwIjAtG
|
||||
new|183|Omega Interface|https://youtu.be/sVngEgj0who?si=CyRbOzs4OKeB4StS
|
||||
new|184|Amalgam|https://youtu.be/82DDR2BjXSI?si=xm-EDHngoNovfmzf
|
||||
new|185|Ragnarok|https://youtu.be/aGtXqn9HL2o?si=Hhkr5oZGdAF4iMgZ
|
||||
new|186|Sides Of My Mind (Solo)|https://youtu.be/d3d2KPVgCAk?si=L-zr7NZGRrWqiDuJ
|
||||
new|187|Ykds1479ymdppr|https://youtu.be/Wom_gMcauUI?si=UVV5h9rfRPws1Wr5
|
||||
new|188|The Art of the Blade|https://youtu.be/KSJl4A9eUW4?si=PmbP4G67aQEaeyyh
|
||||
new|189|NYUTOPIA|https://youtu.be/TPyZKiTOUQA?si=5_D_ddUqaz7xSDpS
|
||||
new|190|me when machine gang (Solo)|https://youtu.be/C8uSFs01qwc?si=dgFXyQFS1rKk3ug9
|
||||
new|191|Deep Bass|https://youtu.be/5uu8xXgz_4s?si=jnpzgqcYgIxNS5m6
|
||||
new|192|Pandemonium (Cersia)|https://youtu.be/OKEHsJPaeQY?si=cv5MRfDMZjs4nwno
|
||||
new|193|Silent Club|https://youtu.be/NjEiHIokTGM?si=wmVPS04r8wi_jgNG
|
||||
new|194|Descent Into Exile|https://youtu.be/whtt_WkG_20?si=Ly3S1-pgtmJfDgpI
|
||||
new|195|The Rupture|https://youtu.be/SaU454afkKY?si=QcXiCR2boQsd8iWg
|
||||
new|196|no jokes|https://youtu.be/oVhGYiQ8fBc?si=gtjiunr2HOryqsGn
|
||||
new|197|Jupiter My Favourite|https://youtu.be/adVQ_yflcGM?si=9l3Eo1YxpL7SQ5o1
|
||||
new|198|Kappa|https://youtu.be/eIfc1zUuOPU?si=OETCzxDyPm4VtXhI
|
||||
new|199|FARBIDI THEORY|https://youtu.be/MQD6klwhcsM?si=-8ZQ1fakCN5HVqAw
|
||||
new|200|LD50|https://youtu.be/2OiS9mVDlmQ?si=XvEHVQlMZvYv7eUM
|
||||
new|201|Bloom|https://youtu.be/oZTyTgeb7q4?si=MC61WABnqDPSl377
|
||||
new|202|the ocean of fish|https://youtu.be/dNHUg49I3sM?si=chQLiCsZmoPjhh6E
|
||||
new|203|BarbarosFinaleFinale|https://youtu.be/F32ekXnS3a4?si=UW9apT8TfrCh6NEL
|
||||
new|204|Nabil Let Go|https://youtu.be/IRYire6RkUg?si=h50D6hCRKxr8O4wR
|
||||
new|205|Bloodlust|https://youtu.be/5SzKetF2btw?si=hs8FajAMmW52a2DD
|
||||
new|206|Asterios|https://youtu.be/YG3taML8WjA?si=p68EsJTC4tJ58g4q
|
||||
new|207|Sank|https://youtu.be/6ZuEWp1dJ0c?si=eR2pCKpXj_JPVDUEz
|
||||
new|208|Escape Room|https://youtu.be/sZebhp6gFuI?si=HrzmtVkFY9OZtJBa
|
||||
new|209|Jesse Pinkman|https://youtu.be/fYcBtp4X8GA?si=HlxPFd0TEfufE5Qz
|
||||
new|210|Moving Forward|https://youtu.be/2wYnXim6TYY?si=z66XmjVqWN3w5Xo0
|
||||
new|211|X84|https://youtu.be/ZzGVEmS5D8s?si=WRnQYxFWB9uFAmJi
|
||||
new|212|Excruciation Chamber|https://youtu.be/BdkuNdFfY-o?si=QeVwcyv4Sx27exQI
|
||||
new|213|Terminux|https://youtu.be/-UgocJ3WYn4?si=uSiVYs6waOj5y8pz
|
||||
new|214|Twilight|https://youtu.be/5bZ3RQP7fjs?si=EqntxnyH46JPb4tM
|
||||
new|215|IthacropoliX|https://youtu.be/n4nbu_fZcf4?si=3AojnEZYAGP3BBPQ
|
||||
new|216|CITRA|https://youtu.be/O_kYXvwqrWo?si=EjQHq04G3caSRj5H
|
||||
new|217|Nhelv|https://youtu.be/k117h9HUt6s?si=O-tw91m3_FFR0mYN
|
||||
new|218|Awedsy|https://youtu.be/hx5ebE8e6Eo?si=aoXlzm82otqvYXmJ
|
||||
new|219|TORN|https://youtu.be/QUpzux7AoTI?si=5BBH3x-j2x62ttNl
|
||||
new|220|MewneI|https://youtu.be/yWfbbEbTK9w?si=LHHUHaA3zc7Yy_uY
|
||||
new|221|Deimos (EndLevel)|https://youtu.be/FgxsNzQnF5o?si=yalVUa7cMm-_KVXC
|
||||
new|222|Congregation|https://youtu.be/KVlcdvGYcj0?si=uwMTvD45yMSST6jW
|
||||
new|223|Gracefully|https://youtu.be/5RBn1nk5wb4?si=YzBymZ_FrG1fGeK0
|
||||
new|224|DsinK|https://youtu.be/EsQAFvKqo3U?si=9DApZCy2SmlFOnLo
|
||||
new|225|Sigma|https://youtu.be/3INdO0esQRw?si=LTYmo4jqmiNECG4W
|
||||
new|226|Sazerix|https://youtu.be/l8aBStUgYOs?si=xxfUBcsVHJDeiutP
|
||||
new|227|Pootis Engage XTREME|https://youtu.be/2SqKRRphIVI?si=e__iWF4KfDo_QrsR
|
||||
new|228|Aronia|https://youtu.be/eJe3i5KyKOk?si=LpTBN7qyPb4VIYDq
|
||||
new|229|Exosphere|https://youtu.be/HRbBub341W4?si=tPr0acTWVgsYiSfj
|
||||
new|230|untitled unmastered|https://youtu.be/zzPsYgyU4n4?si=GhsZ-FF2GtgI-E9f
|
||||
new|231|Pagoda|https://youtu.be/KVomsNjGalQ?si=gOl163Fh0uJgbxpxhttps://youtu.be/npIZ8TGMDvk?si=4HY9BHGn-5jf8JXH
|
||||
new|232|Fog|https://youtu.be/Kt_fxnOYeco?si=LnB8xdFEpvNvEUED
|
||||
new|233|Knights of Thunder|https://youtu.be/npIZ8TGMDvk?si=A7qhkz-Y7-Vif1l2
|
||||
new|234|ATOMIC CANNON|https://youtu.be/VZS5Yn9Y-OI?si=PTnl4Z7QFIUx1YNI
|
||||
new|235|Cicatrize|https://youtu.be/QfF3jgPQZk0?si=h5Ov2QbMoNCo0aVk
|
||||
new|236|Dust Bowl|https://youtu.be/EXuxHOAAVrI?si=uOOvtL7gLoZ0odwr
|
||||
new|237|Gustavo Fring|https://youtu.be/OB0YiqyEp2E?si=7pkhUZ6Fzuu4HVVi
|
||||
new|238|Ploink|https://youtu.be/BV19Dg09LN0?si=kTEGTO_tyhpA_SoZ
|
||||
new|239|Fragmented|https://youtu.be/RnLoliyy4k0?si=_Vuwadp_AEsTKuDX
|
||||
new|240|Ouroboros|https://youtu.be/hLTnewDC2Hs?si=OnPDUTPAQAQCcU0W
|
||||
new|241|FRIDAY|https://youtu.be/YUoFhrN3aKw?si=ma7I1IAtU0UbrSDu
|
||||
new|242|CONNECT|https://youtu.be/oo_PqnEHZvo?si=q1jV7efm_cq_XPYM
|
||||
new|243|Ourwa|https://youtu.be/BImzHJnr5Ks?si=_ZT5WifsgFTBMK9O
|
||||
new|244|XRAY|https://youtu.be/zk1G8Spw1hg?si=YL20_J-29p0x-iD2
|
||||
new|245|Visible Ray|https://youtu.be/hHpaB752peM?si=syGmQ7hSd536vRCp
|
||||
new|246|the wiener|https://youtu.be/rgMruLorH1c?si=hQ6-z1GvwBCNzk8A
|
||||
new|247|Hardry|https://youtu.be/59JlNpDlhH8?si=fXzYUMwfmEjMPmQa
|
||||
new|248|Ghoul|https://youtu.be/W1kgdxV_8E0?si=9ULxBYkdf5TaoHX6
|
||||
new|249|kowareta|https://youtu.be/wxWBFaZYHPM?si=7-9C-9-oa5jrNIrC
|
||||
new|250|Apotheosis|https://youtu.be/X261xjwc3HQ?si=7-DnqQMviuTWtoOG
|
||||
new|110|Graceful|https://youtu.be/5kOD37vQHKE?si=VXPDbYRAZstaq_Oy
|
||||
new|111|Kenos|https://youtu.be/Bs1kVySdUtI?si=4DAwPGeehZX6YzEJ
|
||||
new|112|azure blast|https://youtu.be/TN0FQ3KBv4w?si=JVSf1iXaez8sSOw0
|
||||
new|113|Fragile|https://youtu.be/XfXzGv0oALw?si=0Blg4XOudYEomR2A
|
||||
new|114|Starlight Summit|https://youtu.be/LB9xx41M4Ns?si=xC9MsTIzlM44AdhE
|
||||
new|115|chrome hearts|https://youtu.be/GK0Z8rgziH4?si=orYnpQGMPKPQTW_O
|
||||
new|116|Esfera|https://youtu.be/GK0Z8rgziH4?si=1km0bCL22Egbl-Xk
|
||||
new|117|Destruction 19|https://youtu.be/UUyzGg_4mqs?si=uJw74R5zv3GwYiag
|
||||
new|118|NEUTRA|https://youtu.be/0fNBFwNS1qg?si=sqeqmMqFotN6jgGh
|
||||
new|119|Time Lapse|https://youtu.be/MnI1mM_wjzc?si=FEmB2fWSeNqJDIwv
|
||||
new|120|Dark Dimension|https://youtu.be/g2DrT9bHjOI?si=TuVvUXo1XDGlNB5_
|
||||
new|121|Guideless Goobering|https://youtu.be/pFxdGKYQrcg?si=nQ3kVcqOq8UEt6uB
|
||||
new|122|Hard Machine|https://youtu.be/z3grmsqAaas?si=xBvAriHwGl-IneUd
|
||||
new|123|Swing Swing|https://youtu.be/_hL9hFU3WI4?si=4ihgAE4n8VrN4lsk
|
||||
new|124|DISSONANCE|https://youtu.be/IfFser-f9c0?si=P2D23zMCX96QPEL8
|
||||
new|125|Zodiac|https://youtu.be/N4QjElo58_o?si=0PMsj7NgBfUUIzLZ
|
||||
new|126|Goober Rage Stage|https://youtu.be/1rrouUCPXhY?si=2o6cHwApb4o-08jL
|
||||
new|127|Crackhead Circles|https://youtu.be/_4MDq8Us5gM?si=KO4JZZNs5mYpzAg3
|
||||
new|128|Lotus Flower|https://youtu.be/pTgOHcwJhd0?si=k92uqgcP9o-Ovvxr
|
||||
new|129|Scream Machine|https://youtu.be/n-KeSGEX7Jg?si=dY8omM-22Iju1uck
|
||||
new|130|Axinie|https://youtu.be/LjfO2fqnozI?si=KuTXmwjvM6_t45rS
|
||||
new|131|Widestep|https://youtu.be/TN8fHN_XV3o?si=UdbpxVI9fvujr4RU
|
||||
new|132|Judgement Knights|https://youtu.be/MzzY8nWfxnk?si=zAXlxJZFiKCGlu9A
|
||||
new|133|Keres|https://youtu.be/MFFIjZP7PxQ?si=lkc9tRawW-XNv6-7
|
||||
new|134|Lithium|https://youtu.be/IfVM56qNVdA?si=AIEw5JbV9OQW60eJ
|
||||
new|135|IRIS|https://youtu.be/WiFwAU8pgr4?si=Q0fTY2Hd2oQLBLaW
|
||||
new|136|Cold Sweat|https://youtu.be/tBpEPXGhQug?si=0s6Mh429yBF_dkea
|
||||
new|137|Galeforce|https://youtu.be/G6VF2Gvmpz0?si=WzSIerGhoz3u0fcV
|
||||
new|138|in this|https://youtu.be/gQiOdxOyNGg?si=gTmiy_pThUKYLcb0
|
||||
new|139|Frost Spirit|https://youtu.be/KXbaRnRpm58?si=LHfUVqpxgRYtEmkH
|
||||
new|140|Thinking Space|https://youtu.be/iHf2nanWjvE?si=stgikKc4PPw8F7vp
|
||||
new|141|Promethean|https://youtu.be/19kE_Yo8puE?si=0AcDFf0OjghIgdpX
|
||||
new|142|Ascent|https://youtu.be/sII8zQZIJlg?si=gHbK7-s-CLho4vM0
|
||||
new|143|Dry Out Copyable 2|https://youtu.be/FXW9J9CaREU?si=6Be51250LT0SQLHy
|
||||
new|144|Renevant|https://youtu.be/2Y8kBw8YxO8?si=UQS31gMvOew6fsrc
|
||||
new|145|ConClusion|https://youtu.be/wpuPFFqnJFY?si=CEHAmw_k9_WjadYw
|
||||
new|146|Trotil|https://youtu.be/kblnO7LfQn4?si=Lq_V_8BrvzGo-KAH
|
||||
new|147|We Are Not The Same (Solo)|https://youtu.be/yLLd4mpeYC4?si=5Cugl6UYnBcx8A0a
|
||||
new|148|Disconnected Descent|https://youtu.be/TP7OAAVH-uA?si=2_eKfx19pc3xyZFt
|
||||
new|149|Instinct (KrmaL)|https://youtu.be/6W3Gvi9ft0w?si=o-AAu2Yz7G5Ytm2Y
|
||||
new|150|Calculator Core|https://youtu.be/VrgNFsF2NGw?si=VxW5clIFp8YLf0nv
|
||||
new|151|Sky Shredder|https://youtu.be/Z-69-4RKRgk?si=O96OhtDsQ1BFgJLG
|
||||
new|152|Crimson Planet|https://www.youtube.com/live/euMInLjyG6k?si=09vneTJfThjnpACw
|
||||
new|153|shimmer (amplitron)|https://youtu.be/J89j-_l7ezg?si=fMAyAXx2w028BXR8
|
||||
new|154|DIRECTIONS|https://youtu.be/-SEgSgxpRxo?si=ZLxK5XD8B8pPiVsp
|
||||
new|155|ATOMIC CANNON Mk II|https://youtu.be/4-lOnZsfhNQ?si=ON-czwtJawFMgZc_
|
||||
new|156|Ringy Paracosm|https://youtu.be/RIDuh4IVGiw?si=9s892WxqybVKVYlP
|
||||
new|157|Cognition|https://youtu.be/enl0GOyskPs?si=qe18-qXwxoUkokyt
|
||||
new|158|Axiom Asterism|https://youtu.be/LnFdka3HekA?si=ehLne5DftKG33cQH
|
||||
new|159|Indivine|https://youtu.be/g2CVts-tX70?si=XfKVwmDp5HoTj_--
|
||||
new|160|Neon Skyline|https://youtu.be/HvGjIAeLv_8?si=sEu3tWgtJJrcbHxd
|
||||
new|161|Cosmic Cyclone|https://youtu.be/0I9xCfTOpXg?si=2Q1_twV5HH3zLOMN
|
||||
new|162|CORRODERE|https://youtu.be/-V87Bh44lAU?si=zIbxyCYezyK_dAna
|
||||
new|163|SARY NEVER CLEAR|https://youtu.be/23u3SlwrOMw?si=GMUrk4CONI8n-RHy
|
||||
new|164|qoUEO|https://youtu.be/PJbfroH0sok?si=lQM4JwbyXlwc85td
|
||||
new|165|Rigel|https://youtu.be/liJFeLHcW_Q?si=UaqSqF1aJLB6kt6t
|
||||
new|166|Scrubbabingo force|https://youtu.be/eT_izuCxGUU?si=_VzD8E46NCZMx11v
|
||||
new|167|RUST|https://youtu.be/mEXGlrNMyR4?si=HQuHo3l0QAtY4hPO
|
||||
new|168|Call Me Maybe|https://youtu.be/Jc-98ND5OJk?si=3EsBQ7paobUcgnel
|
||||
new|169|ta1LSD0ll|https://youtu.be/w-NH14vgMb8?si=xocgmpg6Jn92_Evs
|
||||
new|170|SAND SAILOR|https://youtu.be/QPmzn9X77Uo?si=vWrkuwERNWZbYcTb
|
||||
new|171|Gloxinia|https://youtu.be/MJh_6Z5v6bM?si=Lyzx4IoWnWQfZELk
|
||||
new|172|Akashic Records|https://youtu.be/qnZnV6q-mt4?si=7n69Q8erUDa58c0H
|
||||
new|173|Cobwebs|https://youtu.be/bgZ85rCaEGY?si=gEsYkSGnk6G5qP_r
|
||||
new|174|meow hard|https://youtu.be/jOhGH2TckDA?si=ZhjMOsVjzFxDPFZm
|
||||
new|175|Lucid Nightmares|https://youtu.be/G7hBE5qWx6M?si=D8M1hqmsA9k3oVOU
|
||||
new|176|RUTHLESS|https://youtu.be/9jwVeYtc6H4?si=meyxbaKJqCe5Fums
|
||||
new|177|Coral Cave|https://youtu.be/kTOM1nSEF3I?si=XpkVW2-qTylokjI-
|
||||
new|178|SUPERHATEMEWORLD|https://youtu.be/fhmgZYCJ29M?si=yjgUX5sohJ0ej1uW
|
||||
new|179|Launchpad Labyrinth|https://youtu.be/XELUzw7UbNU?si=rxyVGXKE74rHb8DT
|
||||
new|180|Tenkai (Solo)|https://youtu.be/AM2KHSZkjcc?si=bkHkgj1CO1yv31vv
|
||||
new|181|Sharpscapes|https://youtu.be/wM-J6fLIs14?si=4njb0wT6coAwDDZB
|
||||
new|182|obsession|https://youtu.be/OjXKjQXnhjA?si=5QdHmozIHvdl4I4-
|
||||
new|183|Horros (Solo)|https://youtu.be/OS46C-zvqDA?si=2DKf_LRA2PwIjAtG
|
||||
new|184|Omega Interface|https://youtu.be/sVngEgj0who?si=CyRbOzs4OKeB4StS
|
||||
new|185|Amalgam|https://youtu.be/82DDR2BjXSI?si=xm-EDHngoNovfmzf
|
||||
new|186|Ragnarok|https://youtu.be/aGtXqn9HL2o?si=Hhkr5oZGdAF4iMgZ
|
||||
new|187|Sides Of My Mind (Solo)|https://youtu.be/d3d2KPVgCAk?si=L-zr7NZGRrWqiDuJ
|
||||
new|188|Ykds1479ymdppr|https://youtu.be/Wom_gMcauUI?si=UVV5h9rfRPws1Wr5
|
||||
new|189|The Art of the Blade|https://youtu.be/KSJl4A9eUW4?si=PmbP4G67aQEaeyyh
|
||||
new|190|NYUTOPIA|https://youtu.be/TPyZKiTOUQA?si=5_D_ddUqaz7xSDpS
|
||||
new|191|me when machine gang (Solo)|https://youtu.be/C8uSFs01qwc?si=dgFXyQFS1rKk3ug9
|
||||
new|192|Deep Bass|https://youtu.be/5uu8xXgz_4s?si=jnpzgqcYgIxNS5m6
|
||||
new|193|Pandemonium (Cersia)|https://youtu.be/OKEHsJPaeQY?si=cv5MRfDMZjs4nwno
|
||||
new|194|Silent Club|https://youtu.be/NjEiHIokTGM?si=wmVPS04r8wi_jgNG
|
||||
new|195|Descent Into Exile|https://youtu.be/whtt_WkG_20?si=Ly3S1-pgtmJfDgpI
|
||||
new|196|The Rupture|https://youtu.be/SaU454afkKY?si=QcXiCR2boQsd8iWg
|
||||
new|197|no jokes|https://youtu.be/oVhGYiQ8fBc?si=gtjiunr2HOryqsGn
|
||||
new|198|Jupiter My Favourite|https://youtu.be/adVQ_yflcGM?si=9l3Eo1YxpL7SQ5o1
|
||||
new|199|Kappa|https://youtu.be/eIfc1zUuOPU?si=OETCzxDyPm4VtXhI
|
||||
new|200|FARBIDI THEORY|https://youtu.be/MQD6klwhcsM?si=-8ZQ1fakCN5HVqAw
|
||||
new|201|LD50|https://youtu.be/2OiS9mVDlmQ?si=XvEHVQlMZvYv7eUM
|
||||
new|202|Bloom|https://youtu.be/oZTyTgeb7q4?si=MC61WABnqDPSl377
|
||||
new|203|the ocean of fish|https://youtu.be/dNHUg49I3sM?si=chQLiCsZmoPjhh6E
|
||||
new|204|BarbarosFinaleFinale|https://youtu.be/F32ekXnS3a4?si=UW9apT8TfrCh6NEL
|
||||
new|205|Nabil Let Go|https://youtu.be/IRYire6RkUg?si=h50D6hCRKxr8O4wR
|
||||
new|206|Bloodlust|https://youtu.be/5SzKetF2btw?si=hs8FajAMmW52a2DD
|
||||
new|207|Asterios|https://youtu.be/YG3taML8WjA?si=p68EsJTC4tJ58g4q
|
||||
new|208|Sank|https://youtu.be/6ZuEWp1dJ0c?si=eR2pCKpXj_JPVDUEz
|
||||
new|209|Escape Room|https://youtu.be/sZebhp6gFuI?si=HrzmtVkFY9OZtJBa
|
||||
new|210|Jesse Pinkman|https://youtu.be/fYcBtp4X8GA?si=HlxPFd0TEfufE5Qz
|
||||
new|211|Moving Forward|https://youtu.be/2wYnXim6TYY?si=z66XmjVqWN3w5Xo0
|
||||
new|212|X84|https://youtu.be/ZzGVEmS5D8s?si=WRnQYxFWB9uFAmJi
|
||||
new|213|Excruciation Chamber|https://youtu.be/BdkuNdFfY-o?si=QeVwcyv4Sx27exQI
|
||||
new|214|Terminux|https://youtu.be/-UgocJ3WYn4?si=uSiVYs6waOj5y8pz
|
||||
new|215|Twilight|https://youtu.be/5bZ3RQP7fjs?si=EqntxnyH46JPb4tM
|
||||
new|216|IthacropoliX|https://youtu.be/n4nbu_fZcf4?si=3AojnEZYAGP3BBPQ
|
||||
new|217|CITRA|https://youtu.be/O_kYXvwqrWo?si=EjQHq04G3caSRj5H
|
||||
new|218|Nhelv|https://youtu.be/k117h9HUt6s?si=O-tw91m3_FFR0mYN
|
||||
new|219|Awedsy|https://youtu.be/hx5ebE8e6Eo?si=aoXlzm82otqvYXmJ
|
||||
new|220|TORN|https://youtu.be/QUpzux7AoTI?si=5BBH3x-j2x62ttNl
|
||||
new|221|MewneI|https://youtu.be/yWfbbEbTK9w?si=LHHUHaA3zc7Yy_uY
|
||||
new|222|Deimos (EndLevel)|https://youtu.be/FgxsNzQnF5o?si=yalVUa7cMm-_KVXC
|
||||
new|223|Congregation|https://youtu.be/KVlcdvGYcj0?si=uwMTvD45yMSST6jW
|
||||
new|224|Gracefully|https://youtu.be/5RBn1nk5wb4?si=YzBymZ_FrG1fGeK0
|
||||
new|225|DsinK|https://youtu.be/EsQAFvKqo3U?si=9DApZCy2SmlFOnLo
|
||||
new|226|Sigma|https://youtu.be/3INdO0esQRw?si=LTYmo4jqmiNECG4W
|
||||
new|227|Sazerix|https://youtu.be/l8aBStUgYOs?si=xxfUBcsVHJDeiutP
|
||||
new|228|Pootis Engage XTREME|https://youtu.be/2SqKRRphIVI?si=e__iWF4KfDo_QrsR
|
||||
new|229|Aronia|https://youtu.be/eJe3i5KyKOk?si=LpTBN7qyPb4VIYDq
|
||||
new|230|Exosphere|https://youtu.be/HRbBub341W4?si=tPr0acTWVgsYiSfj
|
||||
new|231|untitled unmastered|https://youtu.be/zzPsYgyU4n4?si=GhsZ-FF2GtgI-E9f
|
||||
new|232|Pagoda|https://youtu.be/KVomsNjGalQ?si=gOl163Fh0uJgbxpxhttps://youtu.be/npIZ8TGMDvk?si=4HY9BHGn-5jf8JXH
|
||||
new|233|Fog|https://youtu.be/Kt_fxnOYeco?si=LnB8xdFEpvNvEUED
|
||||
new|234|Knights of Thunder|https://youtu.be/npIZ8TGMDvk?si=A7qhkz-Y7-Vif1l2
|
||||
new|235|ATOMIC CANNON|https://youtu.be/VZS5Yn9Y-OI?si=PTnl4Z7QFIUx1YNI
|
||||
new|236|Cicatrize|https://youtu.be/QfF3jgPQZk0?si=h5Ov2QbMoNCo0aVk
|
||||
new|237|Dust Bowl|https://youtu.be/EXuxHOAAVrI?si=uOOvtL7gLoZ0odwr
|
||||
new|238|Gustavo Fring|https://youtu.be/OB0YiqyEp2E?si=7pkhUZ6Fzuu4HVVi
|
||||
new|239|Ploink|https://youtu.be/BV19Dg09LN0?si=kTEGTO_tyhpA_SoZ
|
||||
new|240|Fragmented|https://youtu.be/RnLoliyy4k0?si=_Vuwadp_AEsTKuDX
|
||||
new|241|Ouroboros|https://youtu.be/hLTnewDC2Hs?si=OnPDUTPAQAQCcU0W
|
||||
new|242|FRIDAY|https://youtu.be/YUoFhrN3aKw?si=ma7I1IAtU0UbrSDu
|
||||
new|243|CONNECT|https://youtu.be/oo_PqnEHZvo?si=q1jV7efm_cq_XPYM
|
||||
new|244|Ourwa|https://youtu.be/BImzHJnr5Ks?si=_ZT5WifsgFTBMK9O
|
||||
new|245|XRAY|https://youtu.be/zk1G8Spw1hg?si=YL20_J-29p0x-iD2
|
||||
new|246|Visible Ray|https://youtu.be/hHpaB752peM?si=syGmQ7hSd536vRCp
|
||||
new|247|the wiener|https://youtu.be/rgMruLorH1c?si=hQ6-z1GvwBCNzk8A
|
||||
new|248|Hardry|https://youtu.be/59JlNpDlhH8?si=fXzYUMwfmEjMPmQa
|
||||
new|249|Ghoul|https://youtu.be/W1kgdxV_8E0?si=9ULxBYkdf5TaoHX6
|
||||
new|250|kowareta|https://youtu.be/wxWBFaZYHPM?si=7-9C-9-oa5jrNIrC
|
||||
new|251|Apotheosis|https://youtu.be/X261xjwc3HQ?si=7-DnqQMviuTWtoOG
|
||||
|
||||
+3
-1
@@ -13,6 +13,8 @@
|
||||
<a href="index.html">Home</a>
|
||||
<a href="players.html">Players</a>
|
||||
<a href="rules.html">Rules</a>
|
||||
<a href="serverlist.html">Server List</a>
|
||||
<a href="admelist.html">Edit List</a>
|
||||
<a href="roulette.html">Roulette</a>
|
||||
</nav>
|
||||
</header>
|
||||
@@ -34,7 +36,7 @@
|
||||
<div class="table-wrap">
|
||||
<table class="levels-table">
|
||||
<thead>
|
||||
<tr><th style="width:80px">#</th><th>Title</th><th style="width:140px">Action</th></tr>
|
||||
<tr><th style="width:80px">#</th><th>Title</th><th style="width:120px">Level</th><th style="width:140px">Action</th></tr>
|
||||
</thead>
|
||||
<tbody id="list-area"></tbody>
|
||||
</table>
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
Linux system service setup
|
||||
|
||||
This lets the server start automatically on boot on a Linux device.
|
||||
|
||||
1. Copy the project to the Linux machine.
|
||||
Example path:
|
||||
/opt/fedl
|
||||
|
||||
2. Make sure Node.js is installed.
|
||||
Check with:
|
||||
node -v
|
||||
|
||||
3. Test the server manually first.
|
||||
In the project folder run:
|
||||
HOST=0.0.0.0 PORT=3000 node server/server.js
|
||||
|
||||
4. Create a systemd service file.
|
||||
Run:
|
||||
sudo nano /etc/systemd/system/fedl.service
|
||||
|
||||
5. Paste this into the service file.
|
||||
|
||||
[Unit]
|
||||
Description=FEDL Node Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/fedl
|
||||
ExecStart=/usr/bin/env node /opt/fedl/server/server.js
|
||||
Environment=HOST=0.0.0.0
|
||||
Environment=PORT=3000
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
User=www-data
|
||||
Group=www-data
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
6. Reload systemd.
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
7. Enable the service.
|
||||
sudo systemctl enable fedl.service
|
||||
|
||||
8. Start the service.
|
||||
sudo systemctl start fedl.service
|
||||
|
||||
9. Check status.
|
||||
sudo systemctl status fedl.service
|
||||
|
||||
10. View logs.
|
||||
sudo journalctl -u fedl.service -f
|
||||
|
||||
Notes
|
||||
|
||||
- If your project is not in /opt/fedl, change WorkingDirectory and ExecStart.
|
||||
- If www-data does not exist on your Linux system, use your own service user.
|
||||
- Make sure port 3000 is allowed through the firewall.
|
||||
- If you use a reverse proxy like Nginx, you can proxy to:
|
||||
http://127.0.0.1:3000
|
||||
+250
@@ -0,0 +1,250 @@
|
||||
new|1|Flamewall|https://youtu.be/x4Io4zkWVRw?si=tf0DBaWahOPPEWxO
|
||||
new|2|Thinking Space II|https://youtu.be/CELNmHwln_c?si=soP6SzRn92G1vKbl
|
||||
new|4|Amethyst|https://youtu.be/4lfkzz1VCbA?si=6NNeWiH-nnwu21Cb
|
||||
new|3|Tidal Wave|https://youtu.be/9fsZ014qB3s?si=oj4E4ceyNtRVcDvd
|
||||
new|5|Orbit|https://youtu.be/QKcv8DkNPd0?si=cKBFqp7GRqmfupgJ
|
||||
new|6|BOOBAWAMBA|https://youtu.be/20fYiqLAo_E?si=QSSixz31rWeeQ_8B
|
||||
new|7|Nullscapes|https://youtu.be/EztneTPp5CU?si=ljn-S_bnGYwOoUyV
|
||||
new|8|Quantuese Processing|https://youtu.be/j5NC0u1Q91Q?si=FvUEY2kdDtNMqWSD
|
||||
new|9|Subsuming Vortex|https://youtu.be/0eYG1ogJpIQ?si=7XRxfDsmMVb0G9Si
|
||||
new|10|Andromeda|https://youtu.be/mk3TDemdkC0?si=va13_RKAJUyFvhcv
|
||||
new|11|Every End|https://youtu.be/AO--mVVFtKI?si=gIT5vxyc1FZ4_8Jj
|
||||
new|12|Silent Clubstep|https://youtu.be/GR4OMkS3SN8?si=CMNz8bPBaUU94wiy
|
||||
new|13|Anathema|https://youtu.be/_uKwmjHmySI?si=PgXwX7Z--wCay34b
|
||||
new|14|Acheron|https://youtu.be/sBKR6aUorzA?si=0A9S2_W8gi1awZ81
|
||||
new|15|Ashley Wave Trials|https://youtu.be/aTxt76U3e2Q?si=RVcEcOTOfs7NGWRi
|
||||
new|16|Avernus|https://youtu.be/16Zh8jssanc?si=0o6d2dH4p_J7UjKB
|
||||
new|17|Menace|https://youtu.be/nnkgghxxsEE?si=OuUQfD7WbXVooYyX
|
||||
new|18|Spectre|https://youtu.be/MzsSLKJrLSI?si=-bXtr_jG96kTCzy4
|
||||
new|19|Abyss Of Darkness|https://youtu.be/ejJkpqcMMCY?si=Rpp4HEi1kOMh-p0h
|
||||
new|20|Defeated Circles|https://youtu.be/nU5AQPzd2YA?si=6eKDMPh-2QjDBBOF
|
||||
new|21|Tunnel Of Despair|https://youtu.be/LpS4JREhW98?si=Z6_DRV5YZTEA0TeQ
|
||||
new|22|Subterminal Point|https://youtu.be/h2wmRMgACH4?si=nDD0-bmLqPgcdVJP
|
||||
new|23|KOCMOC|https://youtu.be/2CxE-UWCIG4?si=9xz4hBjtNKe8Rcbs
|
||||
new|24|Slaughterhouse|https://youtu.be/kpcF1-QAHQc?si=7ybF9EbcjqHzloLM
|
||||
new|25|Kyouki|https://youtu.be/KDa5c0CJTHs?si=WU0sPusFLB7Jtkam
|
||||
new|26|The Lightning Rod|https://youtu.be/nQDTi077O6M?si=Kqp2Od3lJx1YWTDB
|
||||
new|27|Based After Based|https://youtu.be/yQBFyUvB3lY?si=Cmxbc5jrTrNlcmG5
|
||||
new|28|CHIL|https://youtu.be/DROMiCc2ZRM?si=_bR8CCnqJGVCex9F
|
||||
new|29|Sakupen Circles|https://youtu.be/ofG2mJi9kEA?si=3yv78_jxidKPhtL5
|
||||
new|30|Deimos (ItsHybrid)|https://youtu.be/b2yHaIk5zio?si=AMIuVFR-EW4CK8_P
|
||||
new|31|Eyes In The Water|https://youtu.be/yvLwiOy3KEA?si=1991xs25WTEoTbE0
|
||||
new|32|Voltage|https://youtu.be/wBRvBN9tmlc?si=GU2md9I7ZnUV7Rfr
|
||||
new|33|Firework|https://youtu.be/QBe5x2o9v2w?si=dhPg9YcCRjwngxU9
|
||||
new|34|Silentlocked|https://youtu.be/O-IQeUdEGvI?si=KeSHH6kwZoSVGINT
|
||||
new|35|poocubed|https://youtu.be/fzL31vai1ms?si=9Gwk7RDtbEFxOJ6t
|
||||
new|36|KOSETSU|https://youtu.be/hZ8vFX8z_BU?si=P6fFal0yazJbje2O
|
||||
new|37|Through The Gates|https://youtu.be/4yHA6jux5UI?si=nstk3A6FDN3QR-qm
|
||||
new|38|Saul Goodman|https://youtu.be/hjs5PjUaw9k?si=qJpGrru21d50gO5R
|
||||
new|39|The Salt Factory|https://youtu.be/lQ7M-Sgov24?si=nXYVL0XGy5NOJLXn
|
||||
new|40|Snowbound|https://youtu.be/cjHwgbtAkXU?si=ghJbRJCkN-m0zu60
|
||||
new|41|CONVOLSION|https://youtu.be/qeRKuyU3eGI?si=UPaem0b3V8fX0L1r
|
||||
new|42|The Apocalyptic Trilogy|https://youtu.be/RUBbpsTR5eU?si=mEsPtyMLrQgP5fWl
|
||||
new|43|MINUSdry|https://youtu.be/YvA8ehhzz0Q?si=DT6DfrXOQ41swSIR
|
||||
new|44|Sevvend Clubstep|https://youtu.be/TvA8EJTJFCc?si=Rm9HyExGYpeGn4qs
|
||||
new|45|Edge Of Destiny|https://youtu.be/rUphe3H59yU?si=dZ8LgDyqif1ET_k1
|
||||
new|46|The Halucination|https://youtu.be/tYbXsNkO9HE?si=b8hmXS98BAjDlPzF
|
||||
new|47|CONVULSION|https://youtu.be/qeRKuyU3eGI?si=qJN026t6RcGjU3iW
|
||||
new|48|Solar Flare|https://youtu.be/eHQNgty8ypY?si=ZdUIODdeDYLAXeHI
|
||||
new|49|LIMBO|https://youtu.be/kXYMbaMVOZg?si=fWm4ngeSxBhFZadA
|
||||
new|50|The Catacombs|https://youtu.be/T9-75lfKVQg?si=zEH6vP1617n5666I
|
||||
new|51|Gaggatronda|https://youtu.be/A4G41vw6Cf0?si=0B8vDSj8vPElRa4i
|
||||
new|52|Codependence (Solo)|https://youtu.be/IKGk41hSnDo?si=1hmZYSDTYOxjWW6u
|
||||
new|53|Belladonna|https://youtu.be/saHSgoU1JQQ?si=SyIGkLNhmE1D8So7
|
||||
new|54|Collapse (Nexel)|https://youtu.be/RCFpXyf6bn0?si=WMfEkJJRqN6xaLxZ
|
||||
new|55|Mayhem|https://youtu.be/U6e6DD32noM?si=YCWNMvQ34ohce3H3
|
||||
new|56|Walter White|https://youtu.be/KzK62PkWOJ0?si=UQdOGms7z-pG-XPp
|
||||
new|57|CROMACAVE|https://youtu.be/tfpsMZI6z-o?si=OG_8nmb3MUpR-EBz
|
||||
new|58|The Plunge|https://youtu.be/8gW1-_u1K0Y?si=Sei6SdC7G-QzrKdy
|
||||
new|59|Infinite Chaos|https://youtu.be/wOMVERxU5IA?si=xig-kQM3x3e5fH1k
|
||||
new|60|Damascus|https://youtu.be/MWQyCUGt76Y?si=p3xkwoLEbK0p-ucw
|
||||
new|61|Operation Evolution|https://youtu.be/WsVF-ayipvY?si=SGz8C0T9IXeu1YeR
|
||||
new|62|SARYYX NEVER CLEAR|https://youtu.be/rRlyvmjcz_4?si=v6Eva9LHV2iLzNaf
|
||||
new|63|The Yangire|https://youtu.be/V3FjIorIfWg?si=5DR0YRTHFMw8dZ7z
|
||||
new|64|Decks Dark|https://youtu.be/l52ApE4HWkY?si=85C832hCxG0PUThq. hi
|
||||
new|65|Climax|https://youtu.be/E4ppq2WeAAs?si=dOWHqoBCSC_3liFu
|
||||
new|66|ORDINARY|https://youtu.be/4QiHP3jpGnk?si=0plaftXpA8nOrUf8
|
||||
new|67|wavterminal|https://youtu.be/dlvsCE3xYkQ?si=ihNU2fqTufiJ3t7N
|
||||
new|68|Loops Of Fury|https://youtu.be/9HBG3i5zbw8?si=7SnwcoJkF5Wke-im
|
||||
new|69|Sinister Silence|https://youtu.be/dJCdTMQxHMo?si=eXhBEf1AiZRxnwr_
|
||||
new|70|arcturus|https://youtu.be/a_Bqa8l9Xtc?si=Tz6FaY_wAld1xjGq
|
||||
new|71|Cimmerian Shade|https://youtu.be/lUNvV1k19HA?si=P9_B0sDua9WZ_bQj
|
||||
new|72|PSYCHOPATH|https://youtu.be/1luL7tTE8p8?si=YKhXZzpUsFUntBQ2
|
||||
new|73|Midnight|https://youtu.be/NhkN_a9cNi8?si=kxmLQdZfSmiXjV6s
|
||||
new|74|Tartarus|https://youtu.be/JptG7rwti1U?si=HCtGcPUmKQEtJlB9
|
||||
new|75|Sonic Wave Infinity|https://youtu.be/C3-l_fFikpQ?si=-tbOdlhQ49L9WeOe
|
||||
new|76|BEELINE (solo)|https://youtu.be/nt6T9YDb6gw?si=isN4Q0jDZnuMsldv
|
||||
new|77|Jigsaw|https://youtu.be/FPfSqlI0T30?si=xb8vXJ2girhi-dbs
|
||||
new|78|Waterfall|https://youtu.be/VKuVdqneG9Y?si=8CRjd1ttXRM8mWLh
|
||||
new|79|THE JET ENGINE|https://youtu.be/8Q20XU__LoQ?si=NKm0fq3qFgiX53e9
|
||||
new|80|Coalescence|https://youtu.be/do-a2EzZ4R8?si=zEIRXm5OR97WKgX1
|
||||
new|81|BPATA MPAKA|https://youtu.be/sSbHYzYgYfA?si=7g9yQ1XnoZtQrqgP
|
||||
new|82|The Wonder Of You|https://youtu.be/iQ3RzYCvLvA?si=JU5AW_dP1Mgmxq7A
|
||||
new|83|Delta|https://youtu.be/_rr3J8DkIm4?si=BU9VW8h-wKoWAcRJ
|
||||
new|84|The Golden|https://youtu.be/wpS5PSHmji0?si=J7dT2Srdo_LqTrd7
|
||||
new|85|Terminal Rampancy|https://youtu.be/29hRhhqQTLc?si=5GGOrtxUootbEY-F
|
||||
new|86|Natural Disaster|https://youtu.be/_0GqdSFmG_8?si=4kUa8hJqK-bT70nI
|
||||
new|87|Viprin UFO|https://youtu.be/LTMW9Py-nHE?si=vIBNIDOhvQi9FpVd
|
||||
new|88|Oblivion|https://youtu.be/ZcmDAm50BB0?si=otqXWvzIRzL1L3wq
|
||||
new|89|NETWORK|(Agat3) https://youtu.be/K7wJi01J5D8?si=hEJIwYn1J9RY_-XG
|
||||
new|90|UNKNOWN|https://youtu.be/a1sQxQqU6EM?si=737UNiYWoU5CM0zQ
|
||||
new|91|Verdant Landscape|https://youtu.be/wjZxkS5KC0A?si=WFTg6aixL7Z0YAGp
|
||||
new|92|Levigo|https://youtu.be/AROmUo7DNkE?si=eHXmi5PmBW94sXRl
|
||||
new|93|ATOMIC CANNON Mk III|https://youtu.be/xlAI_wVvnx8?si=3UJXMPHYGKH-qDyC
|
||||
new|94|Shukketsu|https://youtu.be/nkG4hKJIz2g?si=KNly0dPd063HIlKU
|
||||
new|95|Checked Steam|https://youtu.be/cq6047eYGXs?si=yE7kCbjdAp_7iMlM
|
||||
new|96|WOBBLING MACHINE (Solo)|https://youtu.be/RKX6VOsICOg?si=QjLbBucxWJhI3TW0
|
||||
new|97|Critical Heat|https://youtu.be/UjYIt2jy_BY?si=5Jl3FoAOEPSGL1t-
|
||||
new|98|Crystal Crusher (Solo)|https://youtu.be/RKX6VOsICOg?si=ZPPM3qjbx2KraxYW
|
||||
new|99|limbo but uwu ig idk|https://youtu.be/3B36N-qfOD8?si=NshDR7CO9whAkga9
|
||||
new|110|Graceful|https://youtu.be/5kOD37vQHKE?si=VXPDbYRAZstaq_Oy
|
||||
new|101|The Paroxysm of Rage|https://youtu.be/nq3i1qJQeEk?si=-xey2Qd9hrtu_AZU
|
||||
new|102|paranoia (amplitron)|https://youtu.be/Aw83i8Zmh_0?si=0GwEgBHuexCHsuhk
|
||||
new|103|Blood Echo|https://youtu.be/fSvk4tLlQzQ?si=a6pIZkJ58uM2y5gs
|
||||
new|104|Aerial Gleam|https://youtu.be/eyZjKtrGVYw?si=qmsOlWAezCCgYeGb
|
||||
new|105|DISCONNECT|https://youtu.be/HxHo-LzwSao?si=PsuqKQi9DL-iYtUW
|
||||
new|106|VOID|https://youtu.be/kN1FUoucoSc?si=NjE2E12FF9urJL45
|
||||
new|107|Starlit Stroll|https://youtu.be/U7MM74dTXuI?si=WofCw6_u86gVLFSb
|
||||
new|108|Trueffet|https://youtu.be/yHESkazVD4Q?si=Wo04Qh1dOGEDb3JH
|
||||
new|109|Henken|https://youtu.be/M--2oQKrV68?si=WsNcHkxpVO3BGW6T
|
||||
new|110|Kenos|https://youtu.be/Bs1kVySdUtI?si=4DAwPGeehZX6YzEJ
|
||||
new|111|azure blast|https://youtu.be/TN0FQ3KBv4w?si=JVSf1iXaez8sSOw0
|
||||
new|112|Fragile|https://youtu.be/XfXzGv0oALw?si=0Blg4XOudYEomR2A
|
||||
new|113|Starlight Summit|https://youtu.be/LB9xx41M4Ns?si=xC9MsTIzlM44AdhE
|
||||
new|114|chrome hearts|https://youtu.be/GK0Z8rgziH4?si=orYnpQGMPKPQTW_O
|
||||
new|115|Esfera|https://youtu.be/GK0Z8rgziH4?si=1km0bCL22Egbl-Xk
|
||||
new|116|Destruction 19|https://youtu.be/UUyzGg_4mqs?si=uJw74R5zv3GwYiag
|
||||
new|117|NEUTRA|https://youtu.be/0fNBFwNS1qg?si=sqeqmMqFotN6jgGh
|
||||
new|118|Time Lapse|https://youtu.be/MnI1mM_wjzc?si=FEmB2fWSeNqJDIwv
|
||||
new|119|Dark Dimension|https://youtu.be/g2DrT9bHjOI?si=TuVvUXo1XDGlNB5_
|
||||
new|120|Guideless Goobering|https://youtu.be/pFxdGKYQrcg?si=nQ3kVcqOq8UEt6uB
|
||||
new|121|Hard Machine|https://youtu.be/z3grmsqAaas?si=xBvAriHwGl-IneUd
|
||||
new|122|Swing Swing|https://youtu.be/_hL9hFU3WI4?si=4ihgAE4n8VrN4lsk
|
||||
new|123|DISSONANCE|https://youtu.be/IfFser-f9c0?si=P2D23zMCX96QPEL8
|
||||
new|124|Zodiac|https://youtu.be/N4QjElo58_o?si=0PMsj7NgBfUUIzLZ
|
||||
new|125|Goober Rage Stage|https://youtu.be/1rrouUCPXhY?si=2o6cHwApb4o-08jL
|
||||
new|126|Crackhead Circles|https://youtu.be/_4MDq8Us5gM?si=KO4JZZNs5mYpzAg3
|
||||
new|127|Lotus Flower|https://youtu.be/pTgOHcwJhd0?si=k92uqgcP9o-Ovvxr
|
||||
new|128|Scream Machine|https://youtu.be/n-KeSGEX7Jg?si=dY8omM-22Iju1uck
|
||||
new|129|Axinie|https://youtu.be/LjfO2fqnozI?si=KuTXmwjvM6_t45rS
|
||||
new|130|Widestep|https://youtu.be/TN8fHN_XV3o?si=UdbpxVI9fvujr4RU
|
||||
new|131|Judgement Knights|https://youtu.be/MzzY8nWfxnk?si=zAXlxJZFiKCGlu9A
|
||||
new|132|Keres|https://youtu.be/MFFIjZP7PxQ?si=lkc9tRawW-XNv6-7
|
||||
new|133|Lithium|https://youtu.be/IfVM56qNVdA?si=AIEw5JbV9OQW60eJ
|
||||
new|134|IRIS|https://youtu.be/WiFwAU8pgr4?si=Q0fTY2Hd2oQLBLaW
|
||||
new|135|Cold Sweat|https://youtu.be/tBpEPXGhQug?si=0s6Mh429yBF_dkea
|
||||
new|136|Galeforce|https://youtu.be/G6VF2Gvmpz0?si=WzSIerGhoz3u0fcV
|
||||
new|137|in this|https://youtu.be/gQiOdxOyNGg?si=gTmiy_pThUKYLcb0
|
||||
new|138|Frost Spirit|https://youtu.be/KXbaRnRpm58?si=LHfUVqpxgRYtEmkH
|
||||
new|139|Thinking Space|https://youtu.be/iHf2nanWjvE?si=stgikKc4PPw8F7vp
|
||||
new|140|Promethean|https://youtu.be/19kE_Yo8puE?si=0AcDFf0OjghIgdpX
|
||||
new|141|Ascent|https://youtu.be/sII8zQZIJlg?si=gHbK7-s-CLho4vM0
|
||||
new|142|Dry Out Copyable 2|https://youtu.be/FXW9J9CaREU?si=6Be51250LT0SQLHy
|
||||
new|143|Renevant|https://youtu.be/2Y8kBw8YxO8?si=UQS31gMvOew6fsrc
|
||||
new|144|ConClusion|https://youtu.be/wpuPFFqnJFY?si=CEHAmw_k9_WjadYw
|
||||
new|145|Trotil|https://youtu.be/kblnO7LfQn4?si=Lq_V_8BrvzGo-KAH
|
||||
new|146|We Are Not The Same (Solo)|https://youtu.be/yLLd4mpeYC4?si=5Cugl6UYnBcx8A0a
|
||||
new|147|Disconnected Descent|https://youtu.be/TP7OAAVH-uA?si=2_eKfx19pc3xyZFt
|
||||
new|148|Instinct (KrmaL)|https://youtu.be/6W3Gvi9ft0w?si=o-AAu2Yz7G5Ytm2Y
|
||||
new|149|Calculator Core|https://youtu.be/VrgNFsF2NGw?si=VxW5clIFp8YLf0nv
|
||||
new|150|Sky Shredder|https://youtu.be/Z-69-4RKRgk?si=O96OhtDsQ1BFgJLG
|
||||
new|151|Crimson Planet|https://www.youtube.com/live/euMInLjyG6k?si=09vneTJfThjnpACw
|
||||
new|152|shimmer (amplitron)|https://youtu.be/J89j-_l7ezg?si=fMAyAXx2w028BXR8
|
||||
new|153|DIRECTIONS|https://youtu.be/-SEgSgxpRxo?si=ZLxK5XD8B8pPiVsp
|
||||
new|154|ATOMIC CANNON Mk II|https://youtu.be/4-lOnZsfhNQ?si=ON-czwtJawFMgZc_
|
||||
new|155|Ringy Paracosm|https://youtu.be/RIDuh4IVGiw?si=9s892WxqybVKVYlP
|
||||
new|156|Cognition|https://youtu.be/enl0GOyskPs?si=qe18-qXwxoUkokyt
|
||||
new|157|Axiom Asterism|https://youtu.be/LnFdka3HekA?si=ehLne5DftKG33cQH
|
||||
new|158|Indivine|https://youtu.be/g2CVts-tX70?si=XfKVwmDp5HoTj_--
|
||||
new|159|Neon Skyline|https://youtu.be/HvGjIAeLv_8?si=sEu3tWgtJJrcbHxd
|
||||
new|160|Cosmic Cyclone|https://youtu.be/0I9xCfTOpXg?si=2Q1_twV5HH3zLOMN
|
||||
new|161|CORRODERE|https://youtu.be/-V87Bh44lAU?si=zIbxyCYezyK_dAna
|
||||
new|162|SARY NEVER CLEAR|https://youtu.be/23u3SlwrOMw?si=GMUrk4CONI8n-RHy
|
||||
new|163|qoUEO|https://youtu.be/PJbfroH0sok?si=lQM4JwbyXlwc85td
|
||||
new|164|Rigel|https://youtu.be/liJFeLHcW_Q?si=UaqSqF1aJLB6kt6t
|
||||
new|165|Scrubbabingo force|https://youtu.be/eT_izuCxGUU?si=_VzD8E46NCZMx11v
|
||||
new|166|RUST|https://youtu.be/mEXGlrNMyR4?si=HQuHo3l0QAtY4hPO
|
||||
new|167|Call Me Maybe|https://youtu.be/Jc-98ND5OJk?si=3EsBQ7paobUcgnel
|
||||
new|168|ta1LSD0ll|https://youtu.be/w-NH14vgMb8?si=xocgmpg6Jn92_Evs
|
||||
new|169|SAND SAILOR|https://youtu.be/QPmzn9X77Uo?si=vWrkuwERNWZbYcTb
|
||||
new|170|Gloxinia|https://youtu.be/MJh_6Z5v6bM?si=Lyzx4IoWnWQfZELk
|
||||
new|171|Akashic Records|https://youtu.be/qnZnV6q-mt4?si=7n69Q8erUDa58c0H
|
||||
new|172|Cobwebs|https://youtu.be/bgZ85rCaEGY?si=gEsYkSGnk6G5qP_r
|
||||
new|173|meow hard|https://youtu.be/jOhGH2TckDA?si=ZhjMOsVjzFxDPFZm
|
||||
new|174|Lucid Nightmares|https://youtu.be/G7hBE5qWx6M?si=D8M1hqmsA9k3oVOU
|
||||
new|175|RUTHLESS|https://youtu.be/9jwVeYtc6H4?si=meyxbaKJqCe5Fums
|
||||
new|176|Coral Cave|https://youtu.be/kTOM1nSEF3I?si=XpkVW2-qTylokjI-
|
||||
new|177|SUPERHATEMEWORLD|https://youtu.be/fhmgZYCJ29M?si=yjgUX5sohJ0ej1uW
|
||||
new|178|Launchpad Labyrinth|https://youtu.be/XELUzw7UbNU?si=rxyVGXKE74rHb8DT
|
||||
new|179|Tenkai (Solo)|https://youtu.be/AM2KHSZkjcc?si=bkHkgj1CO1yv31vv
|
||||
new|180|Sharpscapes|https://youtu.be/wM-J6fLIs14?si=4njb0wT6coAwDDZB
|
||||
new|181|obsession|https://youtu.be/OjXKjQXnhjA?si=5QdHmozIHvdl4I4-
|
||||
new|182|Horros (Solo)|https://youtu.be/OS46C-zvqDA?si=2DKf_LRA2PwIjAtG
|
||||
new|183|Omega Interface|https://youtu.be/sVngEgj0who?si=CyRbOzs4OKeB4StS
|
||||
new|184|Amalgam|https://youtu.be/82DDR2BjXSI?si=xm-EDHngoNovfmzf
|
||||
new|185|Ragnarok|https://youtu.be/aGtXqn9HL2o?si=Hhkr5oZGdAF4iMgZ
|
||||
new|186|Sides Of My Mind (Solo)|https://youtu.be/d3d2KPVgCAk?si=L-zr7NZGRrWqiDuJ
|
||||
new|187|Ykds1479ymdppr|https://youtu.be/Wom_gMcauUI?si=UVV5h9rfRPws1Wr5
|
||||
new|188|The Art of the Blade|https://youtu.be/KSJl4A9eUW4?si=PmbP4G67aQEaeyyh
|
||||
new|189|NYUTOPIA|https://youtu.be/TPyZKiTOUQA?si=5_D_ddUqaz7xSDpS
|
||||
new|190|me when machine gang (Solo)|https://youtu.be/C8uSFs01qwc?si=dgFXyQFS1rKk3ug9
|
||||
new|191|Deep Bass|https://youtu.be/5uu8xXgz_4s?si=jnpzgqcYgIxNS5m6
|
||||
new|192|Pandemonium (Cersia)|https://youtu.be/OKEHsJPaeQY?si=cv5MRfDMZjs4nwno
|
||||
new|193|Silent Club|https://youtu.be/NjEiHIokTGM?si=wmVPS04r8wi_jgNG
|
||||
new|194|Descent Into Exile|https://youtu.be/whtt_WkG_20?si=Ly3S1-pgtmJfDgpI
|
||||
new|195|The Rupture|https://youtu.be/SaU454afkKY?si=QcXiCR2boQsd8iWg
|
||||
new|196|no jokes|https://youtu.be/oVhGYiQ8fBc?si=gtjiunr2HOryqsGn
|
||||
new|197|Jupiter My Favourite|https://youtu.be/adVQ_yflcGM?si=9l3Eo1YxpL7SQ5o1
|
||||
new|198|Kappa|https://youtu.be/eIfc1zUuOPU?si=OETCzxDyPm4VtXhI
|
||||
new|199|FARBIDI THEORY|https://youtu.be/MQD6klwhcsM?si=-8ZQ1fakCN5HVqAw
|
||||
new|200|LD50|https://youtu.be/2OiS9mVDlmQ?si=XvEHVQlMZvYv7eUM
|
||||
new|201|Bloom|https://youtu.be/oZTyTgeb7q4?si=MC61WABnqDPSl377
|
||||
new|202|the ocean of fish|https://youtu.be/dNHUg49I3sM?si=chQLiCsZmoPjhh6E
|
||||
new|203|BarbarosFinaleFinale|https://youtu.be/F32ekXnS3a4?si=UW9apT8TfrCh6NEL
|
||||
new|204|Nabil Let Go|https://youtu.be/IRYire6RkUg?si=h50D6hCRKxr8O4wR
|
||||
new|205|Bloodlust|https://youtu.be/5SzKetF2btw?si=hs8FajAMmW52a2DD
|
||||
new|206|Asterios|https://youtu.be/YG3taML8WjA?si=p68EsJTC4tJ58g4q
|
||||
new|207|Sank|https://youtu.be/6ZuEWp1dJ0c?si=eR2pCKpXj_JPVDUEz
|
||||
new|208|Escape Room|https://youtu.be/sZebhp6gFuI?si=HrzmtVkFY9OZtJBa
|
||||
new|209|Jesse Pinkman|https://youtu.be/fYcBtp4X8GA?si=HlxPFd0TEfufE5Qz
|
||||
new|210|Moving Forward|https://youtu.be/2wYnXim6TYY?si=z66XmjVqWN3w5Xo0
|
||||
new|211|X84|https://youtu.be/ZzGVEmS5D8s?si=WRnQYxFWB9uFAmJi
|
||||
new|212|Excruciation Chamber|https://youtu.be/BdkuNdFfY-o?si=QeVwcyv4Sx27exQI
|
||||
new|213|Terminux|https://youtu.be/-UgocJ3WYn4?si=uSiVYs6waOj5y8pz
|
||||
new|214|Twilight|https://youtu.be/5bZ3RQP7fjs?si=EqntxnyH46JPb4tM
|
||||
new|215|IthacropoliX|https://youtu.be/n4nbu_fZcf4?si=3AojnEZYAGP3BBPQ
|
||||
new|216|CITRA|https://youtu.be/O_kYXvwqrWo?si=EjQHq04G3caSRj5H
|
||||
new|217|Nhelv|https://youtu.be/k117h9HUt6s?si=O-tw91m3_FFR0mYN
|
||||
new|218|Awedsy|https://youtu.be/hx5ebE8e6Eo?si=aoXlzm82otqvYXmJ
|
||||
new|219|TORN|https://youtu.be/QUpzux7AoTI?si=5BBH3x-j2x62ttNl
|
||||
new|220|MewneI|https://youtu.be/yWfbbEbTK9w?si=LHHUHaA3zc7Yy_uY
|
||||
new|221|Deimos (EndLevel)|https://youtu.be/FgxsNzQnF5o?si=yalVUa7cMm-_KVXC
|
||||
new|222|Congregation|https://youtu.be/KVlcdvGYcj0?si=uwMTvD45yMSST6jW
|
||||
new|223|Gracefully|https://youtu.be/5RBn1nk5wb4?si=YzBymZ_FrG1fGeK0
|
||||
new|224|DsinK|https://youtu.be/EsQAFvKqo3U?si=9DApZCy2SmlFOnLo
|
||||
new|225|Sigma|https://youtu.be/3INdO0esQRw?si=LTYmo4jqmiNECG4W
|
||||
new|226|Sazerix|https://youtu.be/l8aBStUgYOs?si=xxfUBcsVHJDeiutP
|
||||
new|227|Pootis Engage XTREME|https://youtu.be/2SqKRRphIVI?si=e__iWF4KfDo_QrsR
|
||||
new|228|Aronia|https://youtu.be/eJe3i5KyKOk?si=LpTBN7qyPb4VIYDq
|
||||
new|229|Exosphere|https://youtu.be/HRbBub341W4?si=tPr0acTWVgsYiSfj
|
||||
new|230|untitled unmastered|https://youtu.be/zzPsYgyU4n4?si=GhsZ-FF2GtgI-E9f
|
||||
new|231|Pagoda|https://youtu.be/KVomsNjGalQ?si=gOl163Fh0uJgbxpxhttps://youtu.be/npIZ8TGMDvk?si=4HY9BHGn-5jf8JXH
|
||||
new|232|Fog|https://youtu.be/Kt_fxnOYeco?si=LnB8xdFEpvNvEUED
|
||||
new|233|Knights of Thunder|https://youtu.be/npIZ8TGMDvk?si=A7qhkz-Y7-Vif1l2
|
||||
new|234|ATOMIC CANNON|https://youtu.be/VZS5Yn9Y-OI?si=PTnl4Z7QFIUx1YNI
|
||||
new|235|Cicatrize|https://youtu.be/QfF3jgPQZk0?si=h5Ov2QbMoNCo0aVk
|
||||
new|236|Dust Bowl|https://youtu.be/EXuxHOAAVrI?si=uOOvtL7gLoZ0odwr
|
||||
new|237|Gustavo Fring|https://youtu.be/OB0YiqyEp2E?si=7pkhUZ6Fzuu4HVVi
|
||||
new|238|Ploink|https://youtu.be/BV19Dg09LN0?si=kTEGTO_tyhpA_SoZ
|
||||
new|239|Fragmented|https://youtu.be/RnLoliyy4k0?si=_Vuwadp_AEsTKuDX
|
||||
new|240|Ouroboros|https://youtu.be/hLTnewDC2Hs?si=OnPDUTPAQAQCcU0W
|
||||
new|241|FRIDAY|https://youtu.be/YUoFhrN3aKw?si=ma7I1IAtU0UbrSDu
|
||||
new|242|CONNECT|https://youtu.be/oo_PqnEHZvo?si=q1jV7efm_cq_XPYM
|
||||
new|243|Ourwa|https://youtu.be/BImzHJnr5Ks?si=_ZT5WifsgFTBMK9O
|
||||
new|244|XRAY|https://youtu.be/zk1G8Spw1hg?si=YL20_J-29p0x-iD2
|
||||
new|245|Visible Ray|https://youtu.be/hHpaB752peM?si=syGmQ7hSd536vRCp
|
||||
new|246|the wiener|https://youtu.be/rgMruLorH1c?si=hQ6-z1GvwBCNzk8A
|
||||
new|247|Hardry|https://youtu.be/59JlNpDlhH8?si=fXzYUMwfmEjMPmQa
|
||||
new|248|Ghoul|https://youtu.be/W1kgdxV_8E0?si=9ULxBYkdf5TaoHX6
|
||||
new|249|kowareta|https://youtu.be/wxWBFaZYHPM?si=7-9C-9-oa5jrNIrC
|
||||
new|250|Apotheosis|https://youtu.be/X261xjwc3HQ?si=7-DnqQMviuTWtoOG
|
||||
@@ -0,0 +1,150 @@
|
||||
const http = require('http');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { URL } = require('url');
|
||||
|
||||
const appRoot = path.resolve(__dirname, '..');
|
||||
const dataPath = path.join(__dirname, 'data.txt');
|
||||
const port = Number(process.env.PORT) || 3000;
|
||||
const host = process.env.HOST || '127.0.0.1';
|
||||
const clients = new Set();
|
||||
|
||||
const contentTypes = {
|
||||
'.html': 'text/html; charset=utf-8',
|
||||
'.js': 'application/javascript; charset=utf-8',
|
||||
'.css': 'text/css; charset=utf-8',
|
||||
'.txt': 'text/plain; charset=utf-8',
|
||||
'.json': 'application/json; charset=utf-8',
|
||||
'.png': 'image/png',
|
||||
'.jpg': 'image/jpeg',
|
||||
'.jpeg': 'image/jpeg',
|
||||
'.svg': 'image/svg+xml',
|
||||
'.ico': 'image/x-icon'
|
||||
};
|
||||
|
||||
function parseData(text) {
|
||||
return text
|
||||
.split(/\r?\n/)
|
||||
.map(line => line.trim())
|
||||
.filter(Boolean)
|
||||
.map(line => {
|
||||
const parts = line.split('|').map(part => part.trim());
|
||||
return {
|
||||
level: parts[0] || 'Unknown',
|
||||
position: parts[1] || '',
|
||||
title: parts[2] || 'Untitled',
|
||||
url: parts[3] || ''
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function readDataText() {
|
||||
return fs.readFileSync(dataPath, 'utf8');
|
||||
}
|
||||
|
||||
function sendJson(res, statusCode, payload) {
|
||||
res.writeHead(statusCode, {
|
||||
'Content-Type': 'application/json; charset=utf-8',
|
||||
'Cache-Control': 'no-store'
|
||||
});
|
||||
res.end(JSON.stringify(payload));
|
||||
}
|
||||
|
||||
function sendEvent(eventName, data) {
|
||||
const message = `event: ${eventName}\ndata: ${JSON.stringify(data)}\n\n`;
|
||||
for (const client of clients) {
|
||||
client.write(message);
|
||||
}
|
||||
}
|
||||
|
||||
function serveFile(reqPath, res) {
|
||||
let filePath = path.join(appRoot, reqPath === '/' ? 'index.html' : reqPath.slice(1));
|
||||
filePath = path.normalize(filePath);
|
||||
|
||||
if (!filePath.startsWith(appRoot)) {
|
||||
res.writeHead(403, {'Content-Type': 'text/plain; charset=utf-8'});
|
||||
res.end('Forbidden');
|
||||
return;
|
||||
}
|
||||
|
||||
fs.readFile(filePath, (err, data) => {
|
||||
if (err) {
|
||||
res.writeHead(err.code === 'ENOENT' ? 404 : 500, {'Content-Type': 'text/plain; charset=utf-8'});
|
||||
res.end(err.code === 'ENOENT' ? 'Not found' : 'Server error');
|
||||
return;
|
||||
}
|
||||
const ext = path.extname(filePath).toLowerCase();
|
||||
res.writeHead(200, {
|
||||
'Content-Type': contentTypes[ext] || 'application/octet-stream',
|
||||
'Cache-Control': ext === '.html' ? 'no-store' : 'no-cache'
|
||||
});
|
||||
res.end(data);
|
||||
});
|
||||
}
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
const url = new URL(req.url, `http://${req.headers.host}`);
|
||||
|
||||
if (req.method === 'GET' && url.pathname === '/api/list') {
|
||||
try {
|
||||
const text = readDataText();
|
||||
sendJson(res, 200, { items: parseData(text), text });
|
||||
} catch (error) {
|
||||
sendJson(res, 500, { error: 'Could not read server/data.txt' });
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (req.method === 'PUT' && url.pathname === '/api/list') {
|
||||
let body = '';
|
||||
req.on('data', chunk => {
|
||||
body += chunk;
|
||||
if (body.length > 5 * 1024 * 1024) {
|
||||
req.destroy();
|
||||
}
|
||||
});
|
||||
req.on('end', () => {
|
||||
try {
|
||||
const payload = JSON.parse(body || '{}');
|
||||
const text = String(payload.text || '').trim();
|
||||
fs.writeFileSync(dataPath, `${text}\n`, 'utf8');
|
||||
sendEvent('list-update', { updatedAt: new Date().toISOString() });
|
||||
sendJson(res, 200, { ok: true });
|
||||
} catch (error) {
|
||||
sendJson(res, 400, { error: 'Invalid list payload' });
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (req.method === 'GET' && url.pathname === '/events') {
|
||||
res.writeHead(200, {
|
||||
'Content-Type': 'text/event-stream; charset=utf-8',
|
||||
'Cache-Control': 'no-cache, no-transform',
|
||||
Connection: 'keep-alive'
|
||||
});
|
||||
res.write('retry: 3000\n\n');
|
||||
clients.add(res);
|
||||
req.on('close', () => {
|
||||
clients.delete(res);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||
res.writeHead(405, {'Content-Type': 'text/plain; charset=utf-8'});
|
||||
res.end('Method not allowed');
|
||||
return;
|
||||
}
|
||||
|
||||
serveFile(url.pathname, res);
|
||||
});
|
||||
|
||||
fs.watch(dataPath, { persistent: true }, () => {
|
||||
sendEvent('list-update', { updatedAt: new Date().toISOString() });
|
||||
});
|
||||
|
||||
server.listen(port, host, () => {
|
||||
console.log(`fedl server running at http://${host}:${port}`);
|
||||
console.log(`Using live list file: ${dataPath}`);
|
||||
});
|
||||
@@ -0,0 +1,48 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<title>Server List - GD fedl</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body data-page="serverlist">
|
||||
<header>
|
||||
<h1>fedl</h1>
|
||||
<nav>
|
||||
<a href="index.html">Home</a>
|
||||
<a href="lists.html">Static List</a>
|
||||
<a href="admelist.html">Edit List</a>
|
||||
<a href="players.html">Players</a>
|
||||
<a href="roulette.html">Roulette</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="layout">
|
||||
<aside class="sidebar">
|
||||
<div class="panel">
|
||||
<h2>Live Ranges</h2>
|
||||
<p id="live-status" class="muted">Connected to live server data</p>
|
||||
<ul id="levels"></ul>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<section class="panel content">
|
||||
<div class="search-row">
|
||||
<h2 id="list-title">Live Server List</h2>
|
||||
<input id="search" type="text" placeholder="Search videos or titles..." />
|
||||
<select id="level-filter"><option value="all">Full List</option></select>
|
||||
</div>
|
||||
|
||||
<div class="table-wrap">
|
||||
<table class="levels-table">
|
||||
<thead>
|
||||
<tr><th style="width:80px">#</th><th>Title</th><th style="width:120px">Level</th><th style="width:140px">Action</th></tr>
|
||||
</thead>
|
||||
<tbody id="list-area"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/zsh
|
||||
cd "/Users/miles/Documents/GitHub/fedl" || exit 1
|
||||
HOST=0.0.0.0 PORT=3000 node server/server.js
|
||||
+12
@@ -25,9 +25,20 @@ table.levels-table{width:100%;border-collapse:collapse;background:linear-gradien
|
||||
table.levels-table th,table.levels-table td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,0.02);text-align:left}
|
||||
table.levels-table th{color:var(--muted);font-size:0.85rem;font-weight:600}
|
||||
table.levels-table tr:hover td{background:rgba(255,255,255,0.01)}
|
||||
.levels-table input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);color:var(--text)}
|
||||
.btn{display:inline-block;padding:10px 14px;border-radius:999px;background:var(--accent);color:#042;cursor:pointer;border:none;font-weight:700;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
|
||||
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(92,197,255,0.22)}
|
||||
.muted{color:var(--muted);font-size:0.9rem}
|
||||
.error-text{color:#ff9f9f}
|
||||
.small-btn{padding:8px 12px}
|
||||
.danger-btn{background:#ff7b7b;color:#2a0909}
|
||||
.admin-shell{padding:18px 20px}
|
||||
.admin-panel{padding:20px}
|
||||
.admin-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:18px}
|
||||
.admin-toolbar h2{margin:0 0 8px 0}
|
||||
.admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
|
||||
.admin-actions input[type=text]{min-width:220px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);color:var(--text)}
|
||||
.admin-table td:last-child{text-align:center}
|
||||
.hero-kicker{margin:0 0 12px 0;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:800;color:var(--accent-warm)}
|
||||
.wip-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:22px;align-items:stretch;min-height:calc(100vh - 132px)}
|
||||
.wip-copy,.wip-stage{position:relative}
|
||||
@@ -141,3 +152,4 @@ linear-gradient(180deg,rgba(8,18,32,0.98),rgba(7,19,38,0.94))}
|
||||
.status-card span{display:block;color:var(--muted);line-height:1.5}
|
||||
@media(max-width:900px){.layout{flex-direction:column}.sidebar{width:100%}.video-modal iframe{height:320px}.roulette-head{flex-direction:column;align-items:flex-start}.discord-panel{flex-direction:column;align-items:flex-start;padding:22px 20px}.discord-panel h2{font-size:1.55rem}.discord-actions{width:100%;justify-content:flex-start}.rules-view header{padding:16px 18px}.rules-view header h1{font-size:1.55rem}.rules-page{padding:24px 20px}.rules-page h2{font-size:1.65rem}}
|
||||
@media(max-width:900px){.error-grid{grid-template-columns:1fr}.error-copy,.error-side{padding:24px 20px}.error-copy h2{font-size:2.5rem}}
|
||||
@media(max-width:900px){.admin-toolbar{flex-direction:column;align-items:stretch}.admin-actions{flex-direction:column;align-items:stretch}.admin-actions input[type=text]{min-width:0;width:100%}}
|
||||
|
||||
Reference in New Issue
Block a user