Player = game.Players.LocalPlayer Char = Player.Character Torso = Char.Torso Head = Char.Head Arms = {Char:FindFirstChild'Right Arm', Char:FindFirstChild'Left Arm'} Shoulders = {Torso:FindFirstChild'Right Shoulder', Torso:FindFirstChild'Left Shoulder'} Legs = {Char:FindFirstChild'Right Leg', Char:FindFirstChild'Left Leg'} HumRoot = Char:FindFirstChild'HumanoidRootPart' HumRootJ = HumRoot['RootJoint'] Humanoid = Char:FindFirstChild'Humanoid' local s = Workspace:FindFirstChild('shirobako_script: '..Player.Name,true) if s then local f = s:FindFirstChild'stop' if f then f:Invoke() end end s=nil Debris = game:service'Debris' RS = game:service'RunService' Chatserv = game:service'Chat' Insertserv = game:service'InsertService' Neck = Torso:FindFirstChild'Neck' pcall(function() Char.Shirobako:Destroy() end) Main = Instance.new("Model",Char) Main.Name = "Shirobako" script.Parent=Main cfn=CFrame.new ang = function(x,y,z) return CFrame.Angles(x or 0,y or 0,z or 0)end m={tau=math.pi*2} v3n=Vector3.new md,mr,PI=math.rad, math.random, math.pi bcol=BrickColor.new function l(a1,x,y,z,rx,ry,rz) local cf if tostring(a1):find(',') == nil then cf=a1.CFrame else cf=a1 end return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles( rx or 0,ry or 0,yz or 0) end New = function(what) return function(bar) local obj=Instance.new(what) for arg,val in pairs(bar) do if arg == "_P" then obj.Parent = val else if pcall(function()return obj[arg] end) then obj[arg]=val end end end return obj end end Edit = function(what) return function(args) for _,obj in next,what do for arg,val in next,args do if pcall(function()return obj[arg]end) then obj[arg]=val end end end end end _1=nil set_material = nil set_color = nil set_parent = nil Part = function(x,y,z,col,tr) local p = New"Part"{ _P=set_parent or Main; BrickColor = bcol(col or set_color or "White"); CanCollide = false; Transparency = tr or 0; Size = Vector3.new(x or 0,y or 0,z or 0); Material = set_material or 'SmoothPlastic'; } for _,sur in next,Enum.NormalId:GetEnumItems() do p[sur.Name..'Surface'] = 0 end _1 = p return p end Wedge = function(x,y,z,col,tr) local p = New"WedgePart"{ _P=Main; BrickColor = bcol(col or "White"); CanCollide = false; Transparency = tr or 0; Size = Vector3.new(x or 0,y or 0,z or 0); Material = set_material or 'SmoothPlastic'; } for _,sur in next,Enum.NormalId:GetEnumItems() do p[sur.Name..'Surface'] = 0 end _1 = p return p end Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things local ar = {...} local cframe0,cframe1 local function checkf()local res=true for i,v in pairs(ar)do if type(v) ~= 'number' then res=false end end return res end if type(c0) == 'table' then cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles( c0[4] or 0, c0[5] or 0, c0[6] or 0) elseif type(c0) == 'userdata' then cframe0 = c0 elseif type(c0) == 'number' and checkf() then cframe0 = CFrame.new(c0 or 0,c1 or 0,ar[1] or 0) * CFrame.Angles(ar[2] or 0, ar[3] or 0, ar[4] or 0) end if type(c1) == 'table' then cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles( c1[4] or 0, c1[5] or 0, c1[6] or 0) elseif type(c1) == 'userdata' then cframe1 = c1 elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then cframe1 = CFrame.new(c1 or 0, ar[1] or 0, ar[2] or 0) * CFrame.Angles(ar[3] or 0, ar[4] or 0, ar[5] or 0) end for i,v in pairs(ar)do if type(v) == 'table' then cframe1 = CFrame.new(v[1] or 0, v[2] or 0, v[3] or 0) * CFrame.new(v[4] or 0, v[5] or 0, v[6] or 0) elseif type(v) == 'userdata' then cframe1 = v end end cframe0,cframe1 = cframe1,cframe0 part0.Position=part1.Position local weld = Instance.new("Motor") weld.Part0 = part0 weld.Part1 = part1 weld.C0 = cframe0 or CFrame.new() weld.C1 = cframe1 or CFrame.new() weld.MaxVelocity = .1 weld.Parent = part0 return weld end mesh_ids = {spike = "rbxassetid://1033714"; ring="rbxassetid://3270017"; } Mesh = function(parent,id,sx,sy,sz) local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh') local mesh = Instance.new(name) if id == 's' then mesh.MeshType = Enum.MeshType.Sphere elseif id == 'w' then mesh.MeshType = Enum.MeshType.Wedge elseif string.find(id,"://") ~= nil then mesh.MeshId = id end mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1) mesh.Parent = parent return mesh end hdl = Part(1.1,1.5,1.1) hdl.Material='Wood' hw=Weld(hdl,Arms[1],0,-2,0,-PI/2) -- New'Decal'{_P=hdl;face='Front';Texture='rbxassetid://49125250'} dollar = Part(1,1,1,'Bright green') dollar_msh=Mesh(dollar,"rbxassetid://443493147",.015,.015,.015) Weld(dollar,hdl,0,0,-.5,0,PI) top=Part(1,.1,1,'Black')Mesh(top,'bl',.95,.1,.95) Weld(top,hdl,0,.75) ring = Part(1,1,1) Weld(ring,hdl,0,0,.5,0,PI/2) Mesh(ring,mesh_ids.ring,1,1,3) Joints = {} function addJoint(name,weld,c0,c1) local t= {} t.w=weld t.n_c0 = c0 or weld.C0 t.n_c1 = c1 or weld.C1 t._desired=weld.C0 t.speed=.1 t.l=0 function t:get() return setmetatable({},{__newindex=function(t,i,v) if i=='d' and self.l == 0 then self.d = v elseif i == 's' then self.speed=v end end}) end setmetatable(t,{__newindex=function(ta,i,v) if i=='d' then ta._desired = ta.n_c0 * v end end}) Joints[name]=t end addJoint('rw',New"Weld"{_P = Torso;Part0=Torso;Part1=Arms[1]; C0=cfn(1,0.5,0); C1=cfn(-.5,0.5,0)}) addJoint('hw',hw) addJoint('tw',HumRootJ) rw=Joints.rw hw=Joints.hw tw=Joints.tw snd=New"Sound"{_P=hdl;SoundId='rbxassetid://359628148'} rw.d=ang(PI/2) script.Name='shirobako_script: '..Player.Name angle=0 p_tick=tick() --Clear clothing-- for i,v in pairs(Char:children())do if v:IsA'Hat' or v:IsA'Clothing'then v:Destroy() end end function addHat(id) return function() local id=id for i,v in next,Char:children()do if v:IsA'Hat' then v:Destroy() end end local as=Insertserv:LoadAsset(id):children()[1] Player:LoadCharacterAppearance(as) end end MONEY = 0 DonatedPlayers = {} function GiveAll() local as=Insertserv:LoadAsset(162067148) for i,v in next,DonatedPlayers do local pl=game:service'Players':FindFirstChild(v) if pl then local cl=as:Clone() pl:LoadCharacterAppearance(cl:children()[1]) end end acting = true rw.w.Part1 = nil tw.w.C0 = tw.n_c0 Shoulders[1].Part0=Torso Shoulders[1].Part1=Arms[1] Shoulders[1].Parent=Torso Chatserv:Chat(Head,"THANK YOU EVERYONE =D") for i,v in pairs(Connections) do v:disconnect() end Main:Destroy() end suits = { beggar={'rbxassetid://54674221','rbxassetid://54676961',-1}; poor={'rbxassetid://398635080','rbxassetid://217385535',10,addHat(68259961)}; rich={'rbxassetid://286378066','rbxassetid://198292567',20,addHat(1563352)}; uberrich={'rbxassetid://231706573','rbxassetid://239131699',30,addHat(138932314)}; FINAL={'rbxassetid://231706573','rbxassetid://239131699',40,GiveAll}; } shirt = New"Shirt"{_P=Char;ShirtTemplate=suits.beggar[1]} pants = New"Pants"{_P=Char;PantsTemplate=suits.beggar[2]} function checksuit() for i,v in pairs(suits)do if MONEY == v[3] then cur_choise = i shirt.ShirtTemplate=v[1] pants.PantsTemplate=v[2] if v[4] then v[4]() end end end end cur_choise = "beggar" choises = { beggar = {"Can I have some money?";";_;";"Can ya spare couple bucks?";"I'm so poor..."}; poor = {"I need money for studies.", "Can ya lend me some cash?", ";_; Anyone?"}; rich = {"Can ya give sum money for taxi?", "Please?"}; uberrich={"Wanna get dominus? Gimme money!", "This is not a scam... I swear!", "Does anyone want a dominus?"}; FINAL={"THANK YOU EVERYONE WHO DONATED =D"}; } text = "_ bucks donated" text2 = "Thank you kind _" surfg = New"SurfaceGui"{_P=hdl,Face='Right'} lab=New"TextLabel"{_P=surfg;Size=UDim2.new(1,0,1,0);Text="0 bucks donated";TextScaled=true;BackgroundTransparency=1} thanking=false anim_con = RS.Stepped:connect(function() for _,j in next,Joints do j.w.C0 = j.w.C0:lerp(j._desired,j.speed) end end) dead_con = Humanoid.Died:connect(function() acting=true Chatserv:Chat(Head,"World is so cruel =(") end) acting=false depmoney=function(a) if not thanking then snd:Play() thanking=true Chatserv:Chat(Head,text2:gsub('_',(a and a.Name or 'human')) ) MONEY = MONEY+1 if a then local name = a.Name local _in=false for _,v in pairs(DonatedPlayers) do if v == name then _in=true end end if not _in then table.insert(DonatedPlayers,name) end end checksuit() lab.Text=text:gsub('_',MONEY) wait(1.25) thanking=false end end lab.Text=text:gsub('_',MONEY) New"ClickDetector"{_P=dollar}.MouseClick:connect(function(a)depmoney(a)end) cnt=0 Connections = {} for i,v in next,getfenv(0) do if i:match("_con") ~= nil then table.insert(Connections,v) end end swoosh_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://134012322'} hit_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://386946017'} function slash() acting=true rw.speed=.3 rw.d=ang(PI/2,0,-PI/4)*ang(0,PI/2) swoosh_snd:Play() local con con=hdl.Touched:connect(function(hit) local hum=hit.Parent:FindFirstChild'Humanoid' if hum then Spawn(function()hum.PlatformStand=true wait'.1'hum.PlatformStand=false end) hum.Torso.Velocity=cfn(Torso.Position,hum.Torso.Position).lookVector*70+v3n(0,30,0) hit_snd:Play() con:disconnect() Chatserv:Chat(Head,"Dont come closer!") end end) wait'.15' rw.d=ang(PI/2,0,PI/4)*ang(0,PI/2) wait'.25' acting=false rw.speed=.1 con:disconnect() end New"BindableFunction"{_P=script;Name='stop'}.OnInvoke=function()for i,v in pairs(Connections)do v:disconnect()end end -- thanking=true Spawn(function() while wait()do if not acting then if (tick()-p_tick)>(2+(cnt/2*1.75)) and not thanking and cur_choise~='FINAL' then local choise = choises[cur_choise] cnt=cnt+1 cnt=(cnt>#choise and 1 or cnt) Chatserv:Chat(Head, choise[cnt]) p_tick=tick() end angle=angle%100 + 1/5 if not thanking then rw.d=ang(PI/2+math.sin(angle)*.15) hw.d=ang(0,0,math.sin(angle)*.15) tw.d=cfn() else rw.d=cfn(0,0,.15)*ang(PI/2,0,-PI/4) hw.d=cfn(.15,0,0)*ang(0,md'-35') tw.d=ang(md'15') end end end end) Mouse = Player:GetMouse() Mouse.KeyDown:connect(function(key) if acting then return end if key == 'f' then slash() end end) -- slash() -- for i =1,40 do depmoney(Player)end --type: hl/https://titanpad.com/ep/pad/export/Beggar/latest?format=txt