Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do
- -- Converted using Mokiros's Model to Script Version 3
- -- Converted string size: 1244 characters
- local function Decode(str)
- local StringLength = #str
- -- Base64 decoding
- do
- local decoder = {}
- for b64code, char in pairs(('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='):split('')) do
- decoder[char:byte()] = b64code-1
- end
- local n = StringLength
- local t,k = table.create(math.floor(n/4)+1),1
- local padding = str:sub(-2) == '==' and 2 or str:sub(-1) == '=' and 1 or 0
- for i = 1, padding > 0 and n-4 or n, 4 do
- local a, b, c, d = str:byte(i,i+3)
- local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40 + decoder[d]
- t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8),bit32.extract(v,0,8))
- k = k + 1
- end
- if padding == 1 then
- local a, b, c = str:byte(n-3,n-1)
- local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40
- t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8))
- elseif padding == 2 then
- local a, b = str:byte(n-3,n-2)
- local v = decoder[a]*0x40000 + decoder[b]*0x1000
- t[k] = string.char(bit32.extract(v,16,8))
- end
- str = table.concat(t)
- end
- local Position = 1
- local function Parse(fmt)
- local Values = {string.unpack(fmt,str,Position)}
- Position = table.remove(Values)
- return table.unpack(Values)
- end
- local Settings = Parse('B')
- local Flags = Parse('B')
- Flags = {
- --[[ValueIndexByteLength]] bit32.extract(Flags,6,2)+1,
- --[[InstanceIndexByteLength]] bit32.extract(Flags,4,2)+1,
- --[[ConnectionsIndexByteLength]] bit32.extract(Flags,2,2)+1,
- --[[MaxPropertiesLengthByteLength]] bit32.extract(Flags,0,2)+1,
- --[[Use Double instead of Float]] bit32.band(Settings,0b1) > 0
- }
- local ValueFMT = ('I'..Flags[1])
- local InstanceFMT = ('I'..Flags[2])
- local ConnectionFMT = ('I'..Flags[3])
- local PropertyLengthFMT = ('I'..Flags[4])
- local ValuesLength = Parse(ValueFMT)
- local Values = table.create(ValuesLength)
- local CFrameIndexes = {}
- local ValueDecoders = {
- --!!Start
- [1] = function(Modifier)
- return Parse('s'..Modifier)
- end,
- --!!Split
- [2] = function(Modifier)
- return Modifier ~= 0
- end,
- --!!Split
- [3] = function()
- return Parse('d')
- end,
- --!!Split
- [4] = function(_,Index)
- table.insert(CFrameIndexes,{Index,Parse(('I'..Flags[1]):rep(3))})
- end,
- --!!Split
- [5] = {CFrame.new,Flags[5] and 'dddddddddddd' or 'ffffffffffff'},
- --!!Split
- [6] = {Color3.fromRGB,'BBB'},
- --!!Split
- [7] = {BrickColor.new,'I2'},
- --!!Split
- [8] = function(Modifier)
- local len = Parse('I'..Modifier)
- local kpts = table.create(len)
- for i = 1,len do
- kpts[i] = ColorSequenceKeypoint.new(Parse('f'),Color3.fromRGB(Parse('BBB')))
- end
- return ColorSequence.new(kpts)
- end,
- --!!Split
- [9] = function(Modifier)
- local len = Parse('I'..Modifier)
- local kpts = table.create(len)
- for i = 1,len do
- kpts[i] = NumberSequenceKeypoint.new(Parse(Flags[5] and 'ddd' or 'fff'))
- end
- return NumberSequence.new(kpts)
- end,
- --!!Split
- [10] = {Vector3.new,Flags[5] and 'ddd' or 'fff'},
- --!!Split
- [11] = {Vector2.new,Flags[5] and 'dd' or 'ff'},
- --!!Split
- [12] = {UDim2.new,Flags[5] and 'di2di2' or 'fi2fi2'},
- --!!Split
- [13] = {Rect.new,Flags[5] and 'dddd' or 'ffff'},
- --!!Split
- [14] = function()
- local flags = Parse('B')
- local ids = {"Top","Bottom","Left","Right","Front","Back"}
- local t = {}
- for i = 0,5 do
- if bit32.extract(flags,i,1)==1 then
- table.insert(t,Enum.NormalId[ids[i+1]])
- end
- end
- return Axes.new(unpack(t))
- end,
- --!!Split
- [15] = function()
- local flags = Parse('B')
- local ids = {"Top","Bottom","Left","Right","Front","Back"}
- local t = {}
- for i = 0,5 do
- if bit32.extract(flags,i,1)==1 then
- table.insert(t,Enum.NormalId[ids[i+1]])
- end
- end
- return Faces.new(unpack(t))
- end,
- --!!Split
- [16] = {PhysicalProperties.new,Flags[5] and 'ddddd' or 'fffff'},
- --!!Split
- [17] = {NumberRange.new,Flags[5] and 'dd' or 'ff'},
- --!!Split
- [18] = {UDim.new,Flags[5] and 'di2' or 'fi2'},
- --!!Split
- [19] = function()
- return Ray.new(Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')),Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')))
- end
- --!!End
- }
- for i = 1,ValuesLength do
- local TypeAndModifier = Parse('B')
- local Type = bit32.band(TypeAndModifier,0b11111)
- local Modifier = (TypeAndModifier - Type) / 0b100000
- local Decoder = ValueDecoders[Type]
- if type(Decoder)=='function' then
- Values[i] = Decoder(Modifier,i)
- else
- Values[i] = Decoder[1](Parse(Decoder[2]))
- end
- end
- for i,t in pairs(CFrameIndexes) do
- Values[t[1]] = CFrame.fromMatrix(Values[t[2]],Values[t[3]],Values[t[4]])
- end
- local InstancesLength = Parse(InstanceFMT)
- local Instances = {}
- local NoParent = {}
- for i = 1,InstancesLength do
- local ClassName = Values[Parse(ValueFMT)]
- local obj
- local MeshPartMesh,MeshPartScale
- if ClassName == "UnionOperation" then
- obj = DecodeUnion(Values,Flags,Parse)
- obj.UsePartColor = true
- elseif ClassName:find("Script") then
- obj = Instance.new("Folder")
- Script(obj,ClassName=='ModuleScript')
- elseif ClassName == "MeshPart" then
- obj = Instance.new("Part")
- MeshPartMesh = Instance.new("SpecialMesh")
- MeshPartMesh.MeshType = Enum.MeshType.FileMesh
- MeshPartMesh.Parent = obj
- else
- obj = Instance.new(ClassName)
- end
- local Parent = Instances[Parse(InstanceFMT)]
- local PropertiesLength = Parse(PropertyLengthFMT)
- local AttributesLength = Parse(PropertyLengthFMT)
- Instances[i] = obj
- for i = 1,PropertiesLength do
- local Prop,Value = Values[Parse(ValueFMT)],Values[Parse(ValueFMT)]
- -- ok this looks awful
- if MeshPartMesh then
- if Prop == "MeshId" then
- MeshPartMesh.MeshId = Value
- continue
- elseif Prop == "TextureID" then
- MeshPartMesh.TextureId = Value
- continue
- elseif Prop == "Size" then
- if not MeshPartScale then
- MeshPartScale = Value
- else
- MeshPartMesh.Scale = Value / MeshPartScale
- end
- elseif Prop == "MeshSize" then
- if not MeshPartScale then
- MeshPartScale = Value
- MeshPartMesh.Scale = obj.Size / Value
- else
- MeshPartMesh.Scale = MeshPartScale / Value
- end
- continue
- end
- end
- obj[Prop] = Value
- end
- if MeshPartMesh then
- if MeshPartMesh.MeshId=='' then
- if MeshPartMesh.TextureId=='' then
- MeshPartMesh.TextureId = 'rbxasset://textures/meshPartFallback.png'
- end
- MeshPartMesh.Scale = obj.Size
- end
- end
- for i = 1,AttributesLength do
- obj:SetAttribute(Values[Parse(ValueFMT)],Values[Parse(ValueFMT)])
- end
- if not Parent then
- table.insert(NoParent,obj)
- else
- obj.Parent = Parent
- end
- end
- local ConnectionsLength = Parse(ConnectionFMT)
- for i = 1,ConnectionsLength do
- local a,b,c = Parse(InstanceFMT),Parse(ValueFMT),Parse(InstanceFMT)
- Instances[a][Values[b]] = Instances[c]
- end
- return NoParent
- end
- local Objects = Decode('AAA9IQlTY3JlZW5HdWkhDFJlc2V0T25TcGF3bgIhBUZyYW1lIQtBbmNob3JQb2ludAsAAAA/AAAAPyEQQmFja2dyb3VuZENvbG9yMwb///8hFkJhY2tncm91bmRUcmFuc3BhcmVuY3kDAAAAAAAA8D8hDEJvcmRlckNvbG9yMwYAAAAhCFBvc2l0aW9uDAAAAD8AAM3M'
- ..'zD0AACEEU2l6ZQwAAAAA9AEAAAAAMgAhBE5hbWUhBnNjcm9sbAMAAAAAAADgPyEQQ2xpcHNEZXNjZW5kYW50cyIMAACAPwAAAACAPwAAIQNiYXILAAAAAAAAAD8hD0JvcmRlclNpemVQaXhlbAMAAAAAAAAAAAwAAAAAAAAAAAA/AAAMAAAAAAMAZmZmPwAAIQZaSW5k'
- ..'ZXgDAAAAAAAAAEAhCVRleHRMYWJlbAwAAAA/AAAAAAAA8f8MAAAAADIAAAAAABQAIQRGb250AwAAAAAAAAhAIQRUZXh0IQExIQpUZXh0Q29sb3IzIQhUZXh0U2l6ZQMAAAAAAAA0QCEWVGV4dFN0cm9rZVRyYW5zcGFyZW5jeSEFc3RhcnQDAAAAQDMz4z8MAAAAAAMA'
- ..'AAAAPwAADAAAAD8AAAAAgD8jAAwAAAAAMgAAAAAAHgADAAAAAAAAREAhA2VuZAsAAIA/AAAAPwwAAIA/AAAAAAA/AAAhBm1pZGRsZQwAAAA/AAAAAAA/AAALAAAAPwAAAAAMAACAPgAAAQCAPwAADAAAAADIAAAAAAAlACEEVGltZSEKVGV4dFNjYWxlZAMAAAAAAAAs'
- ..'QCELVGV4dFdyYXBwZWQMAABAPwAAAACAPwAAIQVTY2FsZQ0BAAEAAgMEAQYABQYHCAkKCwwNDg8QBAIGABESBwgJEwsMFBUPFgQDCQARFwUYBwwJEwsMGRoNGw8cHR4fBAwABQYHCAkKCwwZGg0gDyEiIyQlJggnKCkaBAIIABEqBRgHDAkrCwwZGg0bDywfBgwABQYH'
- ..'CAkKCwwZGg0tDy4iIyQlJggnLykaBAIIABEwBTEHDAkrCwwZGg0yDywfCAwABQYHCAkKCwwZGg0tDy4iIyQlJggnLykaBAIIABEzBRgHDAkrCwwZGg00DywfCgwABQYHCAkKCwwZGg0tDy4iIyQlJggnLykaHwIOAAU1BwgJCgsMGRoNNg83IiMkOCYIORUnOikaOxUf'
- ..'Ag4ABTUHCAkKCwwZGg08DzciIyQ9Jgg5FSc6KRo7FQA=')
- for _,obj in pairs(Objects) do
- obj.Parent = script or workspace
- end
- end
- local gui = script:FindFirstChildOfClass("ScreenGui")
- gui.Parent = nil
- local plr = owner
- local s = Instance.new("ScreenGui")
- s.ResetOnSpawn = false
- s.Parent = plr.PlayerGui
- local remote = Instance.new("RemoteEvent")
- remote.Parent = s
- local cooldowns = {}
- function set_cooldown(id,n)
- cooldowns[id] = {os.clock(),n or 0}
- end
- function is_cooldown(id)
- local cd = cooldowns[id]
- if cd and cd[2] > os.clock()-cd[1] then
- return true
- end
- end
- local ids = {}
- function set_id(id)
- if not ids[id] then
- ids[id] = 0
- else
- ids[id] += 1
- end
- return {id,ids[id]}
- end
- function get_id(id)
- if not ids[id] then
- set_id(id)
- end
- return ids[id]
- end
- function verify_id(t)
- local id = t[1]
- local v = t[2]
- local c = get_id(id)
- return c == v
- end
- function lerp(start, goal, alpha)
- return start + (goal - start) * alpha
- end
- local guis = {}
- local gui = gui
- local example_gui = nil
- function show_gui(p)
- local pg = p:FindFirstChildOfClass("PlayerGui")
- for i,v in pairs(pg:GetChildren()) do
- if v:GetAttribute('JKNDFVKNJDFVKJNVFKDJN') then
- v:Destroy()
- end
- end
- local g = example_gui:Clone()
- g:SetAttribute('JKNDFVKNJDFVKJNVFKDJN',1)
- g.Enabled = false
- g.Parent = pg
- table.insert(guis,g)
- end
- function remove_gui(g)
- if g then
- g:Destroy()
- end
- end
- function round(n)
- n = math.floor(n*100)/100
- return n
- end
- function update_gui(g,time_start,speed,time_multi,w)
- if g then else return end
- local main = g:FindFirstChild("Frame")
- if main then else return end
- local scroll = main.scroll
- local _start = main.start.TextLabel
- local _middle = main.middle.TextLabel
- local _end = main['end'].TextLabel
- local start,endd
- local forward = true
- if time_multi > time_start then
- start = time_start
- endd = speed*2
- else
- start = speed/2
- endd = time_start
- forward = false
- end
- _start.Text = round(start)
- _middle.Text = round(speed)
- _end.Text = round(endd)
- local total = 5
- local m = total*10
- local derender_offset = 0.5
- local offset = total
- if #scroll:GetChildren() > 1 then
- if not scroll:GetAttribute('set') then
- scroll:SetAttribute('set',1)
- end
- for i = 1,m do
- local c = scroll:FindFirstChild(i)
- local dset = c:GetAttribute('dset') or 0
- local w = w
- i = i - 1
- if forward then
- local doffset = (offset)*dset
- local r = (doffset+i*0.1-(speed-time_start))
- if 0-derender_offset > r then
- dset += 1
- doffset = (offset)*dset
- r = (doffset+i*0.1-(speed-time_start))
- c:SetAttribute('dset',dset)
- w = 0
- end
- game:GetService("TweenService"):Create(c,TweenInfo.new(w*1.5,Enum.EasingStyle.Quad),{
- Position = UDim2.new(r,0,0.5,0),
- }):Play()
- else
- local doffset = -(offset)*dset
- local r = (doffset-i*0.1-(speed-time_start))+1
- if r > 1+derender_offset then
- dset += 1
- doffset = -(offset)*dset
- r = (doffset-i*0.1-(speed-time_start))+1
- c:SetAttribute('dset',dset)
- w = 0
- end
- game:GetService("TweenService"):Create(c,TweenInfo.new(w*1.5,Enum.EasingStyle.Quad),{
- Position = UDim2.new(r,0,0.5,0),
- }):Play()
- end
- --c.TextLabel.Text = speed*i/m
- end
- end
- g.Enabled = true
- end
- local time_multi = 0.5
- local slowing = false
- local yes_bar = true
- plr.Chatted:Connect(function(msg)
- if msg:sub(1,8) == '/e time/' then
- local t = msg:sub(9)
- if tonumber(t) then
- time_multi = tonumber(t)
- end
- elseif msg:sub(1,5) == 'time/' then
- local t = msg:sub(6)
- if tonumber(t) then
- time_multi = tonumber(t)
- end
- elseif msg:sub(1,4) == 'bar/' then
- local t = msg:sub(5)
- if t == 'true' then
- yes_bar = true
- else
- yes_bar = false
- end
- elseif msg:sub(1,7) == '/e bar/' then
- local t = msg:sub(8)
- if t == 'true' then
- yes_bar = true
- else
- yes_bar = false
- end
- end
- end)
- function time_slow()
- if slowing then
- set_id('slow')
- return
- end
- local id = set_id('slow')
- local time_multi = time_multi
- local time_start = 1
- slowing = true
- local ticking = Instance.new("Sound")
- ticking.SoundId = 'rbxassetid://3587054956'
- ticking.Volume = 1
- ticking.Looped = true
- ticking.PlaybackSpeed = time_start
- ticking:SetAttribute('bypass_time',1)
- ticking.Parent = script
- ticking:Play()
- local max = math.abs(time_multi-time_start)*10
- do
- if example_gui then
- example_gui:Destroy()
- end
- example_gui = gui:Clone()
- local bar = example_gui.Frame.scroll.bar
- bar.Parent = nil
- local m = 5*10 --math.abs(time_multi-time_start)*10*2+10
- if yes_bar then
- for i = 1,m do
- local c = bar:Clone()
- c.Name = i
- c.Position = UDim2.new(0,0,0.5,0)
- c.Parent = example_gui.Frame.scroll
- end
- end
- end
- for i,v in pairs(game:GetService("Players"):GetPlayers()) do
- if not verify_id(id) then break end
- show_gui(v)
- end
- for i,v in ipairs(guis) do
- update_gui(v,time_start,time_start,time_multi,0)
- end
- local slowed = true
- workspace:SetAttribute('time_multi',time_start)
- if verify_id(id) then
- require(14525812051)(plr.Name,[[
- _G['time_slowed'] = true
- local r = function(v)
- local s = Instance.new("ScreenGui")
- s.ResetOnSpawn = false
- s.Parent = v.PlayerGui
- NLS([=[
- local obj_list = {}
- local time_multi = workspace:GetAttribute('time_multi')
- _G['time_slowed'] = true
- function add_list(v)
- if v and not obj_list[v] and not v:GetAttribute('bypass_time') then else return end
- obj_list[v] = 1
- end
- add_list(workspace)
- local function add(v)
- if v:IsA("Sound") or v:IsA("Humanoid") then
- add_list(v)
- end
- end
- for i,v in ipairs(workspace:GetDescendants()) do
- add(v)
- end
- local c2
- c2 = workspace.DescendantAdded:Connect(function(v)
- if c2 and not _G['time_slowed'] then
- c2:Disconnect()
- c2 = nil
- return
- end
- add(v)
- end)
- local char_cooldown = {}
- local c
- c = game:GetService("RunService").RenderStepped:Connect(function()
- time_multi = workspace:GetAttribute('time_multi')
- if not _G['time_slowed'] then
- c:Disconnect()
- if c2 then
- c2:Disconnect()
- c2 = nil
- end
- for v,prop in pairs(obj_list) do
- if v and prop then
- obj_list[v] = nil
- if v == workspace then
- if prop == 1 then
- prop = {}
- prop.Gravity = v.Gravity
- end
- v.Gravity = 196.2 --prop.Gravity
- elseif v:IsA("BasePart") then
- elseif v:IsA("Sound") then
- if prop == 1 then
- prop = {}
- prop.PlaybackSpeed = v.PlaybackSpeed
- end
- v.PlaybackSpeed = prop.PlaybackSpeed
- elseif v:IsA("Humanoid") then
- local anims = v:GetPlayingAnimationTracks()
- if prop == 1 then
- prop = {}
- prop.anims = {}
- prop.WalkSpeed = v.WalkSpeed
- end
- v.WalkSpeed = prop.WalkSpeed
- for _,track in pairs(anims) do
- if prop.anims[track] then
- track:AdjustSpeed(prop.anims[track].Speed)
- end
- end
- end
- end
- end
- return
- end
- for i,v in pairs(workspace:GetChildren()) do
- local h = v:FindFirstChildOfClass("Humanoid")
- local root = v:FindFirstChild("HumanoidRootPart") or v:FindFirstChild("Head")
- if h and root and root.Velocity.Magnitude > 0.5 then
- local r = function()
- char_cooldown[v] = os.clock()
- for _,obj in pairs(v:GetChildren()) do
- if obj:IsA("BasePart") and 1 > obj.Transparency then
- local c = obj:Clone()
- c:ClearAllChildren()
- c.Color = Color3.new(0,0,0)
- c.Transparency = 0.5
- c.Anchored = true
- c.CanCollide = false
- c.CanQuery = false
- c.CanTouch = false
- c:SetAttribute('bypass_time',1)
- c.Parent = workspace
- game:GetService("TweenService"):Create(c,TweenInfo.new(0.5),{
- Transparency = 1,
- }):Play()
- game:GetService("Debris"):AddItem(c,1)
- end
- end
- end
- if not char_cooldown[v] then
- r()
- elseif os.clock()-char_cooldown[v] >= 0.1 then
- r()
- end
- end
- end
- task.wait()
- for v,prop in pairs(obj_list) do
- if v and prop then
- if v == workspace then
- if prop == 1 then
- prop = {}
- prop.Gravity = v.Gravity
- end
- v.Gravity = prop.Gravity*time_multi
- elseif v:IsA("Sound") then
- if prop == 1 then
- prop = {}
- prop.PlaybackSpeed = v.PlaybackSpeed
- end
- v.PlaybackSpeed = prop.PlaybackSpeed*time_multi
- elseif v:IsA("Humanoid") then
- local anims = v:GetPlayingAnimationTracks()
- if prop == 1 then
- prop = {}
- prop.anims = {}
- prop.WalkSpeed = v.WalkSpeed
- end
- v.WalkSpeed = prop.WalkSpeed*time_multi
- for _,track in pairs(anims) do
- if not prop.anims[track] then
- prop.anims[track] = {
- Speed = track.Speed
- }
- end
- track:AdjustSpeed(prop.anims[track].Speed*time_multi)
- end
- end
- obj_list[v] = prop
- end
- end
- end)
- ]=],s)
- end
- for i,v in pairs(game:GetService("Players"):GetPlayers()) do
- r(v)
- end
- local c = game:GetService("Players").PlayerAdded:Connect(function(v)
- task.wait(0.1)
- if _G['time_slowed'] then else return end
- r(v)
- end)
- repeat
- task.wait()
- until not _G['time_slowed']
- c:Disconnect()
- ]])
- end
- local skip = 0
- for i = 1,max do
- if not verify_id(id) then break end
- local speed = lerp(time_start,time_multi,i/max)
- local div = 30
- local w = math.clamp(1/speed,1/div,0.5)
- if speed > div then
- skip += 1
- if skip >= 1+(speed-30)/10 or skip >= 1000 then
- skip = 0
- ticking.PlaybackSpeed = math.clamp(speed,0,7)
- workspace:SetAttribute('time_multi',speed)
- for i,v in ipairs(guis) do
- update_gui(v,time_start,speed,time_multi,w)
- end
- task.wait(w)
- end
- else
- ticking.PlaybackSpeed = math.clamp(speed,0,7)
- workspace:SetAttribute('time_multi',speed)
- for i,v in ipairs(guis) do
- update_gui(v,time_start,speed,time_multi,w)
- end
- task.wait(w)
- end
- end
- if verify_id(id) then
- local s = Instance.new("Sound")
- s.SoundId = 'rbxassetid://8036843509'
- s.Volume = 2
- s.PlayOnRemove = true
- s:SetAttribute('bypass_time',1)
- s.Parent = script
- s:Destroy()
- task.wait(1)
- end
- repeat
- task.wait()
- until not verify_id(id)
- for i,v in ipairs(guis) do
- remove_gui(v)
- end
- ticking:Destroy()
- if slowed then
- slowed = false
- workspace:SetAttribute('time_multi',nil)
- require(14525812051)(plr.Name,[[
- _G['time_slowed'] = nil
- for i,v in pairs(game:GetService("Players"):GetPlayers()) do
- NLS([=[
- _G['time_slowed'] = nil
- ]=],v.PlayerGui)
- end
- ]])
- local s = Instance.new("Sound")
- s.SoundId = 'rbxassetid://3763437293'
- s.Volume = 2
- s.PlayOnRemove = true
- s.Parent = script
- s:Destroy()
- end
- task.wait(1)
- slowing = false
- end
- local key_funcs = {
- [Enum.KeyCode.E] = time_slow,
- }
- remote.OnServerEvent:Connect(function(lplr,key,...)
- if lplr == plr then else return end
- if key_funcs[key] then
- key_funcs[key](...)
- end
- end)
- NLS([[
- local remote = script.Parent
- local uis = game:GetService("UserInputService")
- uis.InputBegan:Connect(function(input,gp)
- if gp then return end
- if input.UserInputType == Enum.UserInputType.Keyboard then
- local key = input.KeyCode
- remote:FireServer(key)
- end
- end)
- while wait() do end
- ]],remote)
Add Comment
Please, Sign In to add comment