Simple Music Player
Overview
A drop-in music player widget for any Roblox game. Compact horizontal panel with play / pause, prev / next, loop modes, click-to-seek, volume slider, and a live 24-bar EQ visualizer that reacts to the playing track.
Per-player local audio. Each player hears their own music with their own volume. Need server-synced playback where everyone hears the same song? Check out the premium CoreShun Music Player (DJ booth, two-deck mixing, multi-zone routing).
Open source. Plain Luau. No obfuscation. Edit any file freely.
Features
Player Widget
- Play / Pause — primary action button styled prominently in accent color
- Prev / Next — skip tracks in folder order
- Loop modes — cycle
off→1×(single track) →∞(playlist) - Volume slider — per-player local volume, mobile-friendly drag
- Seek bar — click or drag anywhere to jump to that position in the track
- Hide / show button — × on the panel hides it, floating ♪ button shows it again (mobile/console-friendly)
- Drag panel — players can reposition the widget by dragging the top row
- M hotkey — toggle visibility (configurable, set to nil to disable)
Live Visualizer
- 24-bar EQ-style visualizer reacts to
Sound.PlaybackLoudnessin real-time - Configurable bar count (8-64), spacing, sensitivity, smoothing
- Gradient or solid color per bar — defaults to teal-to-purple
- Smooth rise + slow decay animation curves for a pro feel
- Per-bar wave offsets (slow + fast sin) simulate the look of separate frequency bands
Folder-Scan Playlist
- Drop Sound instances into a folder (
ReplicatedStorage.MusicLibraryby default) - Track names = the Sound instance names you set
- Configurable library path — supports
ReplicatedStorage.X/Workspace.X/ServerStorage.X - Shuffle on load toggle for randomized order
- Auto-advance when a track ends
- Runtime rescan via
_G.CoreShunSimpleMusic_Load()for tracks added after script load
Customization
- Single accent color drives all button + slider + visualizer styling
- Position — bottom-left default, configurable to anywhere
- Transparent mode — hide panel chrome to overlay on your custom UI
- Theme colors — background, border, text, button hover, slider
- Visualizer toggle — disable entirely if you don't want it
- Hotkey customization — change M to anything, or disable
Buyer Integration (
_G Hooks)Define functions on
_G in any LocalScript:_G.CoreShunSimpleMusic_OnTrackChange(track)— fires on every track switch_G.CoreShunSimpleMusic_OnPlay(track)— play / resume_G.CoreShunSimpleMusic_OnPause(track)— pause_G.CoreShunSimpleMusic_OnVolumeChange(vol)— slider moved
Functions you can call:
_G.CoreShunSimpleMusic_Play() / Pause() / Next() / Previous()_G.CoreShunSimpleMusic_SetVolume(0.5)_G.CoreShunSimpleMusic_Show() / Hide() / Toggle()_G.CoreShunSimpleMusic_Load()— rescan library after adding tracks
Cross-Platform
- Desktop — mouse drag for slider/seek, M hotkey, hover effects
- Mobile — touch-friendly buttons, tap × to hide, floating ♪ button to show
- Console — D-pad navigable, same hide/show pattern as mobile
What's Included
- MusicPlayerConfig.lua — single config ModuleScript (the only file you edit)
- MusicPlayer.client.lua — main script (UI + audio + visualizer in one LocalScript)
- Installer.lua — one-click command bar installer
- Manual.pdf — comprehensive 10-section guide
- Cheatsheet.pdf — visual one-page quick-ref
- README.txt and CHEATSHEET.txt — quick reference docs
- Rojo project (default.project.json + ship.project.json) for active development
Easy Installation
- Drag
SimpleMusicPlayer.rbxmxinto your place - Open the Studio Command Bar
- Run
require(workspace.CoreShunSimpleMusicPlayer.Installer) - An empty
MusicLibraryfolder is auto-created in ReplicatedStorage — drop your Sound instances inside - Press F5 — the player appears bottom-left, M to toggle
Or use the included Rojo project for live development. Compatible with Rojo 7.x.
Frequently Asked
Can I sync the music across all players?
Not with this product — each player's audio is local. For server-synced playback (everyone hears the same song at the same time), see CoreShun Music Player (the premium version with two-deck DJ booth and shared playback).
Does it work on mobile and console?
Yes. Touch-friendly buttons, drag/tap for slider and seek bar, floating ♪ button so mobile/console users can show the player without a keyboard.
How do I add my own buttons or modify the UI?
The UI is built programmatically in
MusicPlayer.client.lua. You can edit it but you'll lose changes on update. Best practice: use the _G hooks to wire your own UI alongside this one.Can I add tracks at runtime?
Yes. Drop new Sound instances into the MusicLibrary folder, then call
_G.CoreShunSimpleMusic_Load() from any client script to rescan.The visualizer doesn't move?
Sound.PlaybackLoudness only updates on the client where the sound is playing. Make sure you're testing in client mode (F5), not server. Also check that the Sound has Playing = true and Volume > 0.How is this different from your other Music Player?
The premium CoreShun Music Player ($5.99) is a two-deck DJ booth with crossfade, hot cues, auto-DJ, multi-zone routing, server-synced playback, tip jar, and a 5-tab admin panel — 36+ features. This Simple Music Player is the lightweight UI-focused version: per-player widget with the basics. Different audiences.
Open source?
Fully. Plain Luau, no obfuscation. Edit any file to customize.
More Tools by coreshun
- In-Game Systems — Music Player (premium), Daily Rewards, Loading Screen, Advanced Chat System, Toast, Admin Dashboard, Anti-Exploit, AutoRejoin, Codes Redemption
- Studio Plugins — Color Picker, UI Wireframe, Gamepass Manager, TODO Tracker (free)
- Bundles — up to 45% off
Support
Discord: discord.com/invite/hdB5tadkk8
$1.99 · Drop-in widget · Live visualizer · Mobile-ready · Open source
