Advertisement
idkwhatiam

golden radio fe

Apr 23rd, 2019
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.40 KB | None | 0 0
  1. if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility: by WaverlyCole");InternalData = {}
  2. do
  3.     script.Parent = owner.Character
  4.     local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
  5.     local function NewFakeEvent()
  6.         local Bind = Instance.new("BindableEvent")
  7.         local Fake;Fake = {Connections = {},
  8.         fakeEvent=true;
  9.         Connect=function(self,Func)
  10.             Bind.Event:connect(Func)
  11.             self.Connections[Bind] = true
  12.             return setmetatable({Connected = true},{
  13.             __index = function (self,Index)
  14.                 if Index:lower() == "disconnect" then
  15.                     return function() Fake.Connections[Bind] = false;self.Connected = false end
  16.                 end
  17.                 return Fake[Index]
  18.             end;
  19.             __tostring = function() return "Connection" end;
  20.         })
  21.         end}
  22.         Fake.connect = Fake.Connect;return Fake;
  23.     end
  24.     local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
  25.     local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
  26.     local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
  27.         self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
  28.     end};ContextActionService.UnBindAction = ContextActionService.BindAction
  29.     local function TriggerEvent(self,Event,...)
  30.         local Trigger = Mouse[Event]
  31.         if Trigger and Trigger.fakeEvent and Trigger.Connections then
  32.             for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
  33.         end
  34.     end
  35.     Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
  36.     Event.OnServerEvent:Connect(function(FiredBy,Input)
  37.         if FiredBy.Name ~= owner.Name then return end
  38.         if Input.MouseEvent then
  39.             Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
  40.         else
  41.             local Begin = Input.UserInputState == Enum.UserInputState.Begin
  42.             if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
  43.             for _,Action in pairs(ContextActionService.Actions) do
  44.                 for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
  45.             end
  46.             Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
  47.             UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
  48.         end
  49.     end)
  50.     InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
  51.     Event.Parent = NLS([[
  52.         local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
  53.         local Input = function(Input,gameProcessedEvent)
  54.             if gameProcessedEvent then return end
  55.             Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
  56.         end
  57.         UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
  58.         local Hit,Target
  59.         while wait(1/30) do
  60.             if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
  61.                 Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
  62.             end
  63.         end
  64.     ]],owner.Character)
  65. end
  66. RealGame = game;game = setmetatable({},{
  67.     __index = function (self,Index)
  68.         local Sandbox = function (Thing)
  69.             if Thing:IsA("Player") then
  70.                 local RealPlayer = Thing
  71.                 return setmetatable({},{
  72.                     __index = function (self,Index)
  73.                         local Type = type(RealPlayer[Index])
  74.                         if Type == "function" then
  75.                             if Index:lower() == "getmouse" or Index:lower() == "mouse" then
  76.                                 return function (self)return InternalData["Mouse"] end
  77.                             end
  78.                             return function (self,...)return RealPlayer[Index](RealPlayer,...) end
  79.                         end
  80.                         return RealPlayer[Index]
  81.                     end;
  82.                     __tostring = function(self) return RealPlayer.Name end
  83.                 })
  84.             end
  85.         end
  86.         if RealGame[Index] then
  87.             local Type = type(RealGame[Index])
  88.             if Type == "function" then
  89.                 if Index:lower() == "getservice" or Index:lower() == "service" then
  90.                     return function (self,Service)
  91.                         local FakeServices = {
  92.                             ["players"] = function()
  93.                                 return setmetatable({},{
  94.                                     __index = function (self2,Index2)
  95.                                         local RealService = RealGame:GetService(Service)
  96.                                         local Type2 = type(Index2)
  97.                                         if Type2 == "function" then
  98.                                             return function (self,...) return RealService[Index2](RealService,...)end
  99.                                         else
  100.                                             if Index2:lower() == "localplayer" then return Sandbox(owner) end
  101.                                             return RealService[Index2]
  102.                                         end
  103.                                     end;
  104.                                     __tostring = function(self) return RealGame:GetService(Service).Name end
  105.                                 })
  106.                             end;
  107.                             ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
  108.                             ["userinputservice"] = function() return InternalData["UserInputService"] end;
  109.                             ["runservice"] = function()
  110.                                 return setmetatable({},{
  111.                                     __index = function(self2,Index2)
  112.                                         local RealService = RealGame:GetService(Service)
  113.                                         local Type2 = type(Index2)
  114.                                         if Type2 == "function" then
  115.                                             return function (self,...) return RealService[Index2](RealService,...) end
  116.                                         else
  117.                                             local RunServices = {
  118.                                                 ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
  119.                                                 ["renderstepped"] = function() return RealService["Stepped"] end
  120.                                             }
  121.                                             if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
  122.                                             return RealService[Index2]
  123.                                         end
  124.                                     end
  125.                                 })
  126.                             end
  127.                         }
  128.                         if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
  129.                         return RealGame:GetService(Service)
  130.                     end
  131.                 end
  132.                 return function (self,...) return RealGame[Index](RealGame,...) end
  133.             else
  134.                 if game:GetService(Index) then return game:GetService(Index) end
  135.                 return RealGame[Index]
  136.             end
  137.         end
  138.         return nil
  139.     end
  140. });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
  141.  
  142. -- GPlayr by ModernLukest. Made for v3rmillion, , etc.
  143. -- Note that anyone can hear the music that you play. Just a clarification for what LocalScripts can do.
  144.  
  145. local char = game.Players.LocalPlayer.Character
  146.  
  147.  
  148.  
  149. -- CREATING BUTTONS, LABELS, FRAMES, ETC.
  150. local gui = Instance.new("ScreenGui", game.Players.LocalPlayer.PlayerGui) -- CoreGui is buggy, since GPlayr is designed for PlayerGuis, not CoreGuis.
  151. local openbtn = Instance.new("TextButton", gui)
  152. local closebtn = Instance.new("TextButton", gui)
  153. local openguibtn = Instance.new("TextButton", gui)
  154. local playmusicint = Instance.new("Frame", gui)
  155. local playmusicbtn = Instance.new("ImageButton", playmusicint)
  156. local stopmusicbtn = Instance.new("ImageButton", playmusicint)
  157. local musicidbox = Instance.new("TextBox", playmusicint)
  158. local credit = Instance.new("TextLabel", playmusicint)
  159. local title = Instance.new("TextLabel", playmusicint)
  160.  
  161. -- SIZING --
  162.  
  163. openbtn.Size = UDim2.new(0, 100, 0, 50)
  164. closebtn.Size = UDim2.new(0, 100, 0, 50)
  165. openguibtn.Size = UDim2.new(0, 100, 0, 50)
  166. playmusicbtn.Size = UDim2.new(0, 50, 0, 50)
  167. stopmusicbtn.Size = UDim2.new(0, 57, 0, 57)
  168. musicidbox.Size = UDim2.new(0, 300, 0, 50)
  169. credit.Size = UDim2.new(0, 300, 0, 20)
  170. title.Size = UDim2.new(0, 300, 0, 30)
  171. playmusicint.Size = UDim2.new(0, 300, 0, 500)
  172.  
  173. -- POSITIONING --
  174.  
  175. openbtn.Position = UDim2.new(0, 0, 0, 510)
  176. closebtn.Position = UDim2.new(0, 0, 0, 510)
  177. openguibtn.Position = UDim2.new(0, 0, 0, 590)
  178. playmusicbtn.Position = UDim2.new(0, 50, 0, 200)
  179. stopmusicbtn.Position = UDim2.new(0, 175, 0, 197)
  180. musicidbox.Position = UDim2.new(0, 0, 0, 100)
  181. credit.Position = UDim2.new(0, 0, 0, 470)
  182. title.Position = UDim2.new(0, 0, 0, 0)
  183. playmusicint.Position = UDim2.new(0, 200, 0, 100)
  184.  
  185. -- SET TEXT --
  186.  
  187. title.Text = "GPlayr (BETA)"
  188. credit.Text = "GPlayr & radio scripting by Developer / ModernLukest"
  189. musicidbox.Text = "Enter Sound ID Here"
  190. openbtn.Text = "Take Out Radio"
  191. closebtn.Text = "Put Away Radio"
  192. openguibtn.Text = "Open/Close Music GUI"
  193.  
  194. -- SET IMAGE IDS --
  195. playmusicbtn.Image = "rbxassetid://499381047"
  196. stopmusicbtn.Image = "rbxassetid://499381006"
  197.  
  198. -- BACKGROUND COLOR3 --
  199.  
  200. playmusicint.BackgroundColor3 = Color3.new(136, 136, 136)
  201. openbtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  202. closebtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  203. openguibtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
  204. musicidbox.BackgroundColor3 = Color3.fromRGB(109, 109, 109)
  205.  
  206. -- BACKGROUND TRANSPARENCY --
  207.  
  208. playmusicint.BackgroundTransparency = 0.9
  209. playmusicbtn.BackgroundTransparency = 1
  210. stopmusicbtn.BackgroundTransparency = 1
  211. musicidbox.BackgroundTransparency = 0.43
  212. credit.BackgroundTransparency = 1
  213. title.BackgroundTransparency = 1
  214.  
  215. -- BORDER SIZE PIXEL --
  216.  
  217. musicidbox.BorderSizePixel = 0
  218. openbtn.BorderSizePixel = 3
  219. closebtn.BorderSizePixel = 3
  220. openguibtn.BorderSizePixel = 3
  221.  
  222. -- FONTS --
  223. musicidbox.Font = "SourceSansLight"
  224. credit.Font = "SourceSansLight"
  225. title.Font = "SourceSansLight"
  226.  
  227.  
  228. -- TEXT SCALED --
  229. credit.TextScaled = true
  230. title.TextScaled = true
  231.  
  232. -- TEXT WRAPPED --
  233. musicidbox.TextWrapped = true
  234. credit.TextWrapped = true
  235. title.TextWrapped = true
  236. openguibtn.TextWrapped = true
  237.  
  238. -- FONT SIZE --
  239. musicidbox.FontSize = "Size28"
  240.  
  241. -- ACTIVE --
  242. playmusicint.Active = true
  243.  
  244. -- DRAGGABLE --
  245. playmusicint.Draggable = true
  246.  
  247. -- GUI FUNCTIONS (MAIN) --
  248.  
  249. -- set up the stuff --
  250. isGuiOpen = false
  251. closebtn.Visible = false
  252. playmusicint.Visible = false
  253. openguibtn.Visible = false
  254.  
  255. openbtn.MouseButton1Click:connect(function()
  256. openbtn.Visible = false
  257. closebtn.Visible = true
  258.  
  259. local radio = Instance.new("Part", char)
  260. radio.Name = "Radio"
  261. local mesh = Instance.new("FileMesh", radio)
  262. mesh.MeshId = "http://www.roblox.com/asset/?id=212302951"
  263. mesh.TextureId = "http://www.roblox.com/asset/?id=212303049"
  264. mesh.Scale = Vector3.new(4, 4, 4)
  265. mesh.VertexColor = Vector3.new(1, 1, 1)
  266. mesh.Offset = Vector3.new(0, 0, 0)
  267.  
  268.  
  269. local function weldBetween(a, b)
  270.    local weld = Instance.new("ManualWeld")
  271.    weld.Part0 = a
  272.    weld.Part1 = b
  273.    weld.C0 = CFrame.new()
  274.    weld.C1 = b.CFrame:inverse() * a.CFrame
  275.    weld.Parent = a
  276.    return weld;
  277. end
  278. local hand = radio:clone()
  279. hand.Parent=char
  280. hand.CFrame=char:WaitForChild("Torso").CFrame*CFrame.new(Vector3.new(0,0,0.9))*CFrame.Angles(0,math.rad(180),math.rad(45))
  281. weldBetween(char:WaitForChild("Torso"), hand)
  282. hand.CanCollide=true
  283. hand.Anchored=false
  284.  
  285. sound = Instance.new("Sound", hand) -- we will now call the radio "hand"
  286. sound.Volume = 0.5
  287. sound.Pitch = 1
  288.  
  289. openguibtn.Visible = true
  290. char:FindFirstChild("Radio"):Destroy()
  291. end)
  292.  
  293.  
  294. closebtn.MouseButton1Click:connect(function()
  295. openbtn.Visible = true
  296. closebtn.Visible = false
  297. openguibtn.Visible = false
  298. playmusicint.Visible = false
  299. isGuiOpen = false
  300. char:WaitForChild("Radio"):Destroy()
  301. end)
  302.  
  303. playmusicbtn.MouseButton1Click:connect(function()
  304. sound:stop()
  305. wait(0.2)
  306. sound.SoundId = "rbxassetid://"..musicidbox.Text
  307. sound:play()
  308. end)
  309.  
  310. stopmusicbtn.MouseButton1Click:connect(function()
  311. sound:stop()
  312. end)
  313.  
  314.  
  315. openguibtn.MouseButton1Click:connect(function()
  316. if isGuiOpen == false then isGuiOpen = true
  317. playmusicint.Visible = true else isGuiOpen = false playmusicint.Visible = false
  318. end
  319. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement