So, there was an old Jukebox posted a longtime ago for v62 or v75. Added the new v83 Bgm, even the UI Login and Cashshop. Added a few quest icons, also a map message. I will use a different array for an updated release, will just take forever. Will look nicer for the NPC display and map message in my opinion.
&
Enjoy this one for now!
![]()
Add to NPCConversationManager.java:
NPC Code:
(ragezone may affect use, I'd suggest cleaning up the extra lines)
PHP Code:
var music = [ [["Floral Life"], ["Bgm00/FloralLife"]], etc etc.
PHP Code:
cm.musicChange(music[mc][1]);

Add to NPCConversationManager.java:
PHP Code:
public void musicChange(String songName) {
getPlayer().getMap().broadcastMessage(MaplePacketCreator.musicChange(songName));
}
(ragezone may affect use, I'd suggest cleaning up the extra lines)
PHP Code:
/*
Computer 1052013
JukeboxNPC v2.0 (v83 added)
DstroyerDev v83 (Revan)
khoacalacan of Ragezone (original)
*/
var status = 0;
var price = 50000;
var music = Array("Bgm00/SleepyWood", "Bgm00/FloralLife", "Bgm00/GoPicnic", "Bgm00/Nightmare", "Bgm00/RestNPeace",
"Bgm01/AncientMove", "Bgm01/MoonlightShadow", "Bgm01/WhereTheBarlogFrom", "Bgm01/CavaBien", "Bgm01/HighlandStar", "Bgm01/BadGuys",
"Bgm02/MissingYou", "Bgm02/WhenTheMorningComes", "Bgm02/EvilEyes", "Bgm02/JungleBook", "Bgm02/AboveTheTreetops",
"Bgm03/Subway", "Bgm03/Elfwood", "Bgm03/BlueSky", "Bgm03/Beachway", "Bgm03/SnowyVillage",
"Bgm04/PlayWithMe", "Bgm04/WhiteChristmas", "Bgm04/UponTheSky", "Bgm04/ArabPirate", "Bgm04/Shinin'Harbor", "Bgm04/WarmRegard",
"Bgm05/WolfWood", "Bgm05/DownToTheCave", "Bgm05/AbandonedMine", "Bgm05/MineQuest", "Bgm05/HellGate",
"Bgm06/FinalFight", "Bgm06/WelcomeToTheHell", "Bgm06/ComeWithMe", "Bgm06/FlyingInABlueDream", "Bgm06/FantasticThinking",
"Bgm07/WaltzForWork", "Bgm07/WhereverYouAre", "Bgm07/FunnyTimeMaker", "Bgm07/HighEnough", "Bgm07/Fantasia",
"Bgm08/LetsMarch", "Bgm08/ForTheGlory", "Bgm08/FindingForest", "Bgm08/LetsHuntAliens", "Bgm08/PlotOfPixie",
"Bgm09/DarkShadow", "Bgm09/TheyMenacingYou", "Bgm09/FairyTale", "Bgm09/FairyTalediffvers", "Bgm09/TimeAttack",
"Bgm10/Timeless", "Bgm10/TimelessB", "Bgm10/BizarreTales", "Bgm10/TheWayGrotesque", "Bgm10/Eregos",
"Bgm11/BlueWorld", "Bgm11/Aquarium", "Bgm11/ShiningSea", "Bgm11/DownTown", "Bgm11/DarkMountain",
"Bgm12/AquaCave", "Bgm12/DeepSee", "Bgm12/WaterWay", "Bgm12/AcientRemain", "Bgm12/RuinCastle", "Bgm12/Dispute",
"Bgm13/CokeTown", "Bgm13/Leafre", "Bgm13/Minar'sDream", "Bgm13/AcientForest", "Bgm13/TowerOfGoddess",
"Bgm14/DragonLoad", "Bgm14/HonTale", "Bgm14/CaveOfHontale", "Bgm14/DragonNest", "Bgm14/Ariant", "Bgm14/HotDesert",
"Bgm15/MureungHill", "Bgm15/MureungForest", "Bgm15/WhiteHerb", "Bgm15/Pirate", "Bgm15/SunsetDesert", "Bgm16/Duskofgod",
"Bgm16/FightingPinkBeen", "Bgm16/Forgetfulness", "Bgm16/Remembrance", "Bgm16/Repentance", "Bgm16/TimeTemple", "Bgm17/MureungSchool1",
"Bgm17/MureungSchool2", "Bgm17/MureungSchool3", "Bgm17/MureungSchool4", "Bgm18/BlackWing", "Bgm18/DrillHall", "Bgm18/QueensGarden",
"Bgm18/RaindropFlower", "Bgm18/WolfAndSheep", "Bgm19/BambooGym", "Bgm19/CrystalCave", "Bgm19/MushCatle", "Bgm19/RienVillage",
"Bgm19/SnowDrop", "Bgm20/GhostShip", "Bgm20/NetsPiramid", "Bgm20/UnderSubway",
"Bgm21/2021year", "Bgm21/2099year", "Bgm21/2215year", "Bgm21/2230year", "Bgm21/2503year", "Bgm21/KerningSquare",
"Bgm21/KerningSquareField", "Bgm21/KerningSquareSubway", "Bgm21/TeraForest",
"BgmEvent/FunnyRabbit", "BgmEvent/FunnyRabbitFaster", "BgmEvent/wedding", "BgmEvent/weddingDance", "BgmEvent/wichTower",
"BgmGL/amoria", "BgmGL/Amorianchallenge", "BgmGL/chapel", "BgmGL/cathedral", "BgmGL/Courtyard", "BgmGL/CrimsonwoodKeep",
"BgmGL/CrimsonwoodKeepInterior", "BgmGL/GrandmastersGauntlet", "BgmGL/HauntedHouse", "BgmGL/NLChunt", "BgmGL/NLCtown",
"BgmGL/NLCupbeat", "BgmGL/PartyQuestGL", "BgmGL/PhantomForest", "BgmJp/Feeling", "BgmJp/BizarreForest", "BgmJp/Hana",
"BgmJp/Yume", "BgmJp/Bathroom", "BgmJp/BattleField", "BgmJp/FirstStepMaster", "BgmMY/Highland", "BgmMY/KualaLumpur",
"BgmSG/BoatQuay_field", "BgmSG/BoatQuay_town", "BgmSG/CBD_field", "BgmSG/CBD_town", "BgmSG/Ghostship", "BgmUI/ShopBgm", "BgmUI/Title");
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (status >= 2 && mode == 0) {
cm.sendOk("Alright then, see you next time #h #.");
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
var jukebox = "#b#eJukebox 2.0#k#n"; //or YourServerName Jukebox :)
jukebox += "\r\n\r\n #fUI/UIWindow.img/Radio/On/2# \r\n\r\n You can listen to your favorite #bMaplestory Music#k ! \r\n\r\n To change the music, it will cost #r" + price + "#k #fUI/UIWindow.img/QuestIcon/7/0# \r\n\r\n #fUI/UIWindow.img/QuestIcon/3/0#";
for (var i = 0; i < music.length; i++) {
jukebox += "\r\n#L" + i + "# " + music[i] + "#l";
}
cm.sendSimple(jukebox);
} else if (status == 1) {
if (selection >= 0) {
cm.sendYesNo("Do you want change the music to #b" + music[selection] + "#k for the cost of #r" + price + "#k #fUI/UIWindow.img/QuestIcon/7/0# ?");
mc = selection;
} else {
cm.sendOk("Alright then, see you next time #h #.");
cm.dispose();
}
} else if (status == 2) {
var text = "" + cm.getPlayer() + " has changed the song to " + music[mc]+ "";
if (cm.getMeso() > price) {
cm.gainMeso(-price);
cm.musicChange(music[mc]);
cm.mapMessage(5, text);
cm.dispose();
} else {
cm.sendOk("Please come back when you have at least #r" + price + "#k #fUI/UIWindow.img/QuestIcon/7/0# ");
cm.dispose();
}
} else {
cm.dispose();
}
}
}