Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --//Holiday Feelings//--
- --[[
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣤
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿
- ⠀⠀⣶⠀⠀⣀⣤⣶⣤⣉⣿⣿⣤⣀
- ⠤⣤⣿⣤⣿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣀
- ⠀⠛⠿⠀⠀⠀⠀⠉⣿⣿⣿⣿⣿⠉⠛⠿⣿⣤
- ⠀⠀⠀⠀⠀⠀⠀⠀⠿⣿⣿⣿⠛⠀⠀⠀⣶⠿
- ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⣿⣿⣿⣤⠀⣿⠿
- ⠀⠀⠀⠀⠀⠀⠀⣶⣿⣿⣿⣿⣿⣿⣿⣿
- ⠀⠀⠀⠀⠀⠀⠀⠿⣿⣿⣿⣿⣿⠿⠉⠉
- ⠀⠀⠀⠀⠀⠀⠀⠉⣿⣿⣿⣿⠿
- ⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠉
- ⠀⠀⠀⠀⠀⠀⠀⠀⣛⣿⣭⣶⣀
- ⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠉⠛⣿
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⣿⣿
- ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣉⠀⣶⠿
- ⠀⠀⠀⠀⠀⠀⠀⠀⣶⣿⠿
- ⠀⠀⠀⠀⠀⠀⠀⠛⠿⠛
- D
- E
- F
- A
- U
- L
- T
- ]]
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code by Mokiros")
- local rp = RealPlayer
- script.Parent = rp.Character
- --RemoteEvent for communicating
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- --Fake event to make stuff like Mouse.KeyDown work
- local function fakeEvent()
- local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
- t.connect = t.Connect
- return t
- end
- --Creating fake input objects with fake variables
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function te(self,ev,...)
- local t = m[ev]
- if t and t._fakeEvent then
- for _,f in pairs(t.Functions) do
- f(...)
- end
- end
- end
- m.TrigEvent = te
- UIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=rp then return end
- m.Target = io.Target
- m.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return m:TrigEvent(b and "Button1Down" or "Button1Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[
- local Player = game:GetService("Players").LocalPlayer
- local Event = script:WaitForChild("UserInput_Event")
- local Mouse = Player:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,a)
- if a then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data 30 times every second, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- while wait(1/30) do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- end]==],Player.Character)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local _rg = game
- --Metatable for fake service
- local fsmt = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then return s[k] end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end,
- __call = function(self,...)
- local s = rawget(self,"_RealService")
- if s then return s(...) end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
- return setmetatable(t,fsmt)
- end
- --Fake game object
- local g = {
- GetService = function(self,s)
- return self[s]
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- }
- rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
- g.service = g.GetService
- g.RunService = FakeService({
- RenderStepped = _rg:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- setmetatable(g,{
- __index=function(self,s)
- return _rg:GetService(s) or typeof(_rg[s])=="function"
- and function(_,...)return _rg[s](_rg,...)end or _rg[s]
- end,
- __newindex = fsmt.__newindex,
- __call = fsmt.__call
- })
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = g,g.Players.LocalPlayer
- end
- print("Holiday Feelings")
- print("Made by vlad20020.")
- warn("This is holiday time!")
- local plr = game:GetService("Players").LocalPlayer
- local plrg = plr.PlayerGui
- local mouse = plr:GetMouse()
- local char = plr.Character
- local h = char:FindFirstChild("Head")
- local t = char:FindFirstChild("Torso")
- local ra = char:FindFirstChild("Right Arm")
- local la = char:FindFirstChild("Left Arm")
- local rl = char:FindFirstChild("Right Leg")
- local ll = char:FindFirstChild("Left Leg")
- local rs = t:FindFirstChild("Right Shoulder")
- local ls = t:FindFirstChild("Left Shoulder")
- local rh = t:FindFirstChild("Right Hip")
- local lh = t:FindFirstChild("Left Hip")
- local nec = t.Neck
- local rut = char.HumanoidRootPart
- local rutj = rut.RootJoint
- local hum = char:FindFirstChildOfClass("Humanoid")
- local rad = math.rad
- local huge = math.huge
- local using = false
- local hugging = false
- local qui = Enum.EasingStyle.Quint
- local io = Enum.EasingDirection.InOut
- local tweens = game:GetService("TweenService")
- local gifts = {"rbxassetid://5013502","rbxassetid://1237427","rbxassetid://6109471","rbxassetid://7812400","rbxassetid://19428684"}
- local spart
- --//ArmJointParts~//--
- local tpr = Instance.new("Part",t) tpr.Size = Vector3.new(.1,.1,.1) tpr.CanCollide = false tpr.Transparency = 1
- local tpl = Instance.new("Part",t) tpl.Size = Vector3.new(.1,.1,.1) tpl.CanCollide = false tpl.Transparency = 1
- local tprw = Instance.new("Weld",t) tprw.Part0 = t tprw.Part1 = tpr tprw.C0 = CFrame.new(1,.5,0)
- local tplw = Instance.new("Weld",t) tplw.Part0 = t tplw.Part1 = tpl tplw.C0 = CFrame.new(-1,.5,0)
- --
- local rapr = Instance.new("Part",ra) rapr.Size = Vector3.new(.1,.1,.1) rapr.CanCollide = false rapr.Transparency = 1 --Right Arm
- local lapl = Instance.new("Part",la) lapl.Size = Vector3.new(.1,.1,.1) lapl.CanCollide = false lapl.Transparency = 1 --Left Arm
- local raprw = Instance.new("Weld",ra) raprw.Part0 = ra raprw.Part1 = rapr raprw.C0 = CFrame.new(-.5,.5,0)
- local laplw = Instance.new("Weld",la) laplw.Part0 = la laplw.Part1 = lapl laplw.C0 = CFrame.new(.5,.5,0)
- --/JointsWelds~//--
- local rsw = Instance.new("Weld",ra) rsw.Part0 = tpr rsw.Part1 = nil --Right Shoulder
- local lsw = Instance.new("Weld",la) lsw.Part0 = tpl lsw.Part1 = nil --Left Shoulder
- local bil = Instance.new("BillboardGui",char) bil.Name = "ChatFunc" bil.Adornee = h bil.Size = UDim2.new(1,0,1,0) bil.StudsOffset = Vector3.new(0,2,0)
- local tlerp = function(part,tablee,leinght,easingstyle,easingdirec)
- local info = TweenInfo.new(
- leinght,
- easingstyle,
- easingdirec,
- 0,
- false,
- 0
- )
- local lerp = tweens:Create(part,info,tablee)
- lerp:Play()
- end
- function removewithfade(part,timebeforefade)
- coroutine.resume(coroutine.create(function()
- wait(timebeforefade)
- part:BreakJoints()
- for i = 1,5 do
- part.Transparency = part.Transparency +.2
- wait(.1)
- end
- wait(.5)
- part:Destroy()
- end))
- end
- function chat(text,tiem)
- spawn(function()
- coroutine.resume(coroutine.create(function()
- local label = Instance.new("TextLabel",bil) label.Size = UDim2.new(1,0,1,0) label.BorderSizePixel = 0 label.BackgroundTransparency = 1 label.TextSize = 20 label.Text = " " label.TextColor3 = Color3.new(1,1,1)
- for i = 1,#text do
- label.Text = string.sub(text,1,i)
- wait(.03)
- end
- wait(tiem)
- for i = 1,5 do
- label.TextTransparency = label.TextTransparency +.2
- wait()
- end
- wait(.3)
- label:Destroy()
- end))
- end)
- end
- function introhat()
- using = true
- rsw.Part1 = rapr
- lsw.Part1 = lapl
- local hpart = Instance.new("Part",char) hpart.Size = Vector3.new(.01,.01,.01) hpart.Transparency = 0 hpart.Name = "Santa Hat"
- local hmesh = Instance.new("FileMesh",hpart) hmesh.MeshId = "http://www.roblox.com/asset/?id=1090610" hmesh.TextureId = "http://www.roblox.com/asset/?id=66690053"
- local hweld = Instance.new("Weld",h) hweld.Part0 = ra hweld.Part1 = hpart hweld.C0 = CFrame.new(0,-1.2,0) * CFrame.Angles(rad(-120),rad(30),rad(0))
- tlerp(rsw,{C0 = CFrame.new(-.3,-.1,-.1) * CFrame.Angles(rad(50),rad(20),rad(-40))},.8,qui,io)
- tlerp(lsw,{C0 = CFrame.new(.3,-.1,-.1) * CFrame.Angles(rad(50),rad(-20),rad(40))},.8,qui,io)
- tlerp(hweld,{C0 = CFrame.new(0,-1.2,0) * CFrame.Angles(rad(-120),rad(-65),rad(-30))},.8,qui,io)
- wait(.65)
- tlerp(rsw,{C0 = CFrame.new(-.3,.65,-.2) * CFrame.Angles(rad(160),rad(20),rad(-30))},1,qui,io)
- tlerp(lsw,{C0 = CFrame.new(.3,.65,-.2) * CFrame.Angles(rad(160),rad(-20),rad(30))},1,qui,io)
- tlerp(hweld,{C0 = CFrame.new(-.3,-1.2,-.2) * CFrame.Angles(rad(-180),rad(-65),rad(-100)) * CFrame.Angles(rad(0),rad(0),rad(60))},1,qui,io)
- wait(.65)
- tlerp(rsw,{C0 = CFrame.new(-.3,.15,0) * CFrame.Angles(rad(179),rad(20),rad(-30))},1,qui,io)
- tlerp(lsw,{C0 = CFrame.new(.3,.15,0) * CFrame.Angles(rad(179),rad(-20),rad(30))},1,qui,io)
- hweld.C0 = CFrame.new(-.3,-1,-.2) * CFrame.Angles(rad(-180),rad(0),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(-30)) * CFrame.Angles(rad(0),rad(-30),rad(0))
- wait(.6)
- hweld.Part0 = h
- hweld.C0 = CFrame.new(0,.5,0) * CFrame.Angles(rad(0),rad(-30),rad(0))
- wait(.1)
- tlerp(rsw,{C0 = CFrame.new(0,0,0)},1,qui,io)
- tlerp(lsw,{C0 = CFrame.new(0,0,0)},1,qui,io)
- local music = Instance.new("Sound",t) music.Name = "Song" music.SoundId = "rbxassetid://1845187266" music.Volume = 0 music.Looped = true music:Play()
- coroutine.resume(coroutine.create(function()
- for i = 1,5 do
- music.Volume = music.Volume +.2
- wait(.2)
- end
- end))
- spart = Instance.new("Part",char) spart.Size = Vector3.new(20,1,20) spart.CanCollide = false spart.Anchored = true spart.Massless = true spart.Transparency = 1 spart.CFrame = h.CFrame * CFrame.new(0,15,0)
- local emitter = Instance.new("ParticleEmitter",spart) emitter.Texture = "http://www.roblox.com/asset/?id=137831468" emitter.Size = NumberSequence.new(.2,.01) emitter.Rate = 40 emitter.Color = ColorSequence.new(Color3.new(1,1,1),Color3.new(1,1,1)) emitter.EmissionDirection = "Top" emitter.Lifetime = NumberRange.new(3) emitter.Acceleration = Vector3.new(0,-40,0) emitter.Speed = NumberRange.new(-10,10) emitter.SpreadAngle = Vector2.new(-30,30)
- wait(1)
- rsw.Part1 = nil
- lsw.Part1 = nil
- using = false
- end
- function hug(who)
- if not hugging then
- local removerut = false
- hugging = true
- using = true
- local tors = who:FindFirstChild("Torso") or who:FindFirstChild("UpperTorso")
- local hu = who:FindFirstChildOfClass("Humanoid")
- hu.PlatformStand = true
- local weld = Instance.new("Weld",t) weld.Part0 = t weld.Part1 = tors weld.C0 = CFrame.new(0,0,-.9) * CFrame.Angles(rad(0),rad(180),rad(0))
- local deb = Instance.new("Glue",who) deb.Name = "Hugging"
- tlerp(rsw,{C0 = CFrame.new(-.3,-.2,-.45) * CFrame.Angles(rad(110),rad(0),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(-60))},.5,qui,io)
- tlerp(lsw,{C0 = CFrame.new(.2,-.2,-.45) * CFrame.Angles(rad(105),rad(0),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(65))},.5,qui,io)
- tlerp(nec,{C0 = CFrame.new(-.15,1,0) * CFrame.Angles(rad(90),rad(180),rad(0)) * CFrame.Angles(rad(0),rad(15),rad(25))},.5,qui,io)
- rsw.Part1 = rapr
- lsw.Part1 = lapl
- wait(2)
- tlerp(rsw,{C0 = CFrame.new(0,0,0)},1,qui,io)
- tlerp(lsw,{C0 = CFrame.new(0,0,0)},1,qui,io)
- tlerp(nec,{C0 = CFrame.new(0,1,0) * CFrame.Angles(rad(90),rad(180),rad(0))},1,qui,io)
- wait(.4)
- hu.PlatformStand = false
- weld:Destroy()
- wait(.4)
- rsw.Part1 = nil
- lsw.Part1 = nil
- deb:Destroy()
- hugging = false
- using = false
- end
- end
- function detect()
- coroutine.resume(coroutine.create(function()
- local canhug = true
- local fakedetect = Instance.new("Part",char) fakedetect.Size = Vector3.new(3.5,5,3.5) fakedetect.CanCollide = false fakedetect.Massless = true fakedetect.Transparency = 1 fakedetect.CFrame = t.CFrame
- local fdweld = Instance.new("Weld",fakedetect) fdweld.Part0 = t fdweld.Part1 = fakedetect fdweld.C0 = CFrame.new(0,0,-1)
- local region
- for i = 1,7 do
- if canhug then
- region = Region3.new(fakedetect.Position - fakedetect.Size/2,fakedetect.Position + fakedetect.Size/2)
- local hit = workspace:FindPartsInRegion3WithIgnoreList(region,{char},200)
- local characters = {}
- for i,v in pairs(hit) do
- if v.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
- characters[v.Parent.Name] = v.Parent
- end
- end
- for i,v in pairs(characters) do
- spawn(function()
- fakedetect:Destroy()
- hug(v)
- canhug = false
- end)
- end
- end
- wait(.1)
- end
- if canhug then
- if fakedetect ~= nil then
- fakedetect:Destroy()
- end
- end
- end))
- end
- function placegift()
- using = true
- hum.WalkSpeed = 0 hum.JumpPower = 0
- rsw.Part1 = rapr
- lsw.Part1 = lapl
- local giftp = Instance.new("Part",char) giftp.Size = Vector3.new(1.5,1.5,1.5) giftp.Massless = true giftp.CanCollide = false giftp.Name = "Gift"
- local gmesh = Instance.new("FileMesh",giftp) gmesh.MeshId = "rbxassetid://1237207" gmesh.TextureId = gifts[math.random(1,#gifts)] gmesh.Scale = Vector3.new(1.5,1.5,1.5)
- local gweld = Instance.new("Weld",giftp) gweld.Part0 = ra gweld.Part1 = giftp gweld.C0 = CFrame.new(-.55,-1.4,0) * CFrame.Angles(rad(-60),rad(-10),rad(10))
- tlerp(rsw,{C0 = CFrame.new(-.3,-.3,-.3) * CFrame.Angles(rad(80),rad(0),rad(-20))},1,qui,io)
- tlerp(lsw,{C0 = CFrame.new(.3,-.3,-.3) * CFrame.Angles(rad(80),rad(0),rad(20))},1,qui,io)
- tlerp(nec,{C0 = CFrame.new(0,1,0) * CFrame.Angles(rad(70),rad(180),rad(0))},1,qui,io)
- tlerp(rh,{C0 = CFrame.new(1,0,-.7) * CFrame.Angles(rad(0),rad(90),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(20))},1,qui,io)
- tlerp(lh,{C0 = CFrame.new(-1,-1.3,-1) * CFrame.Angles(rad(0),rad(-90),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(70))},1,qui,io)
- tlerp(rutj,{C0 = CFrame.new(0,-1,0) * CFrame.Angles(rad(70),rad(180),rad(0))},1,qui,io)
- wait(.9)
- local ray = Ray.new(giftp.Position - Vector3.new(0,giftp.Size.y/2,0),-giftp.CFrame.UpVector.unit * 20)
- local hit,pos,idk = workspace:FindPartOnRayWithIgnoreList(ray,{char,giftp},false,true)
- if hit ~= nil then
- local oy = giftp.Orientation.y
- local oz = giftp.Orientation.z
- giftp:BreakJoints()
- giftp.Anchored = true
- giftp.CanCollide = true
- giftp.Parent = workspace
- giftp.CFrame = CFrame.new(pos,pos + idk) * CFrame.Angles(rad(-90),rad(oy),rad(oz)) * CFrame.new(0,.75,0)
- local cdet = Instance.new("ClickDetector",giftp) cdet.MaxActivationDistance = 10
- spawn(function()
- removewithfade(giftp,30)
- cdet.MouseClick:Connect(function(plr)
- if script.ClassName == "Script" then
- local ids = {107458429,104642566,111876831,164207842,212641536}
- local requireditem = game:GetService("InsertService"):LoadAsset(ids[math.random(1,#ids)])
- local item = requireditem:FindFirstChildOfClass("Tool")
- item.Parent = plr.Backpack
- removewithfade(giftp,0)
- cdet:Destroy()
- else
- print("oof")
- removewithfade(giftp,0)
- cdet:Destroy()
- end
- end)
- end)
- else
- giftp:Destroy()
- end
- tlerp(rsw,{C0 = CFrame.new(0,0,0)},1,qui,io)
- tlerp(lsw,{C0 = CFrame.new(0,0,0)},1,qui,io)
- tlerp(nec,{C0 = CFrame.new(0,1,0) * CFrame.Angles(rad(90),rad(180),rad(0))},1,qui,io)
- tlerp(rh,{C0 = CFrame.new(1,-1,0) * CFrame.Angles(rad(0),rad(90),rad(0))},1,qui,io)
- tlerp(lh,{C0 = CFrame.new(-1,-1,0) * CFrame.Angles(rad(0),rad(-90),rad(0))},1,qui,io)
- tlerp(rutj,{C0 = CFrame.new(0,0,0) * CFrame.Angles(rad(90),rad(180),rad(0))},1,qui,io)
- wait(1)
- hum.WalkSpeed = 16 hum.JumpPower = 50
- rsw.Part1 = nil
- lsw.Part1 = nil
- using = false
- end
- function huggies()
- using = true
- rsw.Part1 = rapr
- lsw.Part1 = lapl
- tlerp(rsw,{C0 = CFrame.new(0,0,-.5) * CFrame.Angles(rad(90),rad(0),rad(50))},.65,qui,io)
- tlerp(lsw,{C0 = CFrame.new(0,0,-.5) * CFrame.Angles(rad(90),rad(0),rad(-50))},.65,qui,io)
- wait(.45)
- detect()
- tlerp(rsw,{C0 = CFrame.new(-.3,-.2,-.45) * CFrame.Angles(rad(110),rad(0),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(-60))},.5,qui,io)
- tlerp(lsw,{C0 = CFrame.new(.2,-.2,-.45) * CFrame.Angles(rad(105),rad(0),rad(0)) * CFrame.Angles(rad(0),rad(0),rad(65))},.5,qui,io)
- wait(.5)
- if not hugging then
- tlerp(rsw,{C0 = CFrame.new(0,0,0)},.5,qui,io)
- tlerp(lsw,{C0 = CFrame.new(0,0,0)},.5,qui,io)
- wait(.5)
- rsw.Part1 = nil
- lsw.Part1 = nil
- using = false
- end
- end
- mouse.KeyDown:Connect(function(key)
- if key == "e" and not using then
- huggies()
- end
- if key == "f" and not using then
- placegift()
- end
- end)
- --intr0
- introhat()
- while true do
- spart.CFrame = spart.CFrame:Lerp(h.CFrame * CFrame.new(0,15,0),.1)
- wait()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement