diff --git a/src/lib/server/match/orchestrator.ts b/src/lib/server/match/orchestrator.ts index d306e3d..fb22819 100644 --- a/src/lib/server/match/orchestrator.ts +++ b/src/lib/server/match/orchestrator.ts @@ -561,8 +561,8 @@ export async function playPickedMap(matchId: string, matchGameId: string) { await lobby.setMap(slot.beatmapId); await sleep(1000); - // Set mods - await lobby.setMods(slot.mods); + // Set mods — FM category always uses Freemod regardless of stored mods array + await lobby.setMods(slot.category === 'FM' ? ['FM'] : slot.mods); await sleep(500); // Announce with context: what map, current score, what to do diff --git a/src/routes/(app)/mappools/[id]/+page.server.ts b/src/routes/(app)/mappools/[id]/+page.server.ts index d914166..f47c578 100644 --- a/src/routes/(app)/mappools/[id]/+page.server.ts +++ b/src/routes/(app)/mappools/[id]/+page.server.ts @@ -161,7 +161,7 @@ export const actions: Actions = { starRating: beatmap.difficulty_rating, bpm: beatmap.bpm, totalLength: beatmap.total_length, - mods: category === 'NM' || category === 'TB' || category === 'FM' ? [] : [category], + mods: category === 'NM' || category === 'TB' ? [] : [category], // Cached metadata — all R2 URLs title: beatmap.beatmapset.title, artist: beatmap.beatmapset.artist,