WinslowMau

Untitled

Apr 23rd, 2017
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.09 KB | None | 0 0
  1. --[[SoWiki, made by xSoulStealerx.]]------------------------------------------------------------------------------------------------
  2.  
  3. Contributors = {"xSoulStealerx", "Scriptax", "awxsd561", "niels22"}
  4.  
  5. Avatar = "http://www.roblox.com/thumbs/avatar.ashx?x=150&y=200&format=png&username="
  6. Asset = "http://www.roblox.com/asset/?id="
  7. ScriptDec = Asset..(52661476)
  8. TrollDec = Asset..(29658197)
  9.  
  10. Sites = {
  11.  
  12.  
  13.  
  14. {"xSoulStealerx", [[xSoulStealerx is a pretty awesome scripter, great animator and CFramer. He is also a brony and the creator of SoWiki.
  15. He joined in 07 May 2008 according to forum.]], Avatar.."xSoulStealerx", "", "xSoulStealerx"},
  16. {"linerider64", [[linerider64 is a good animator, cframer and scripter. He makes pretty cool places and likes to play Patapon. He is also filipino.]], "", ""},
  17. {"XLua", "Script stealer, known as Dr4gOnh4cker2 and Dr4gOnh4cker2z.", Avatar.."XLua", "", "xSoulStealerx"},
  18. {"Fenrier", "A good friend. Filipino, great animator, scripter and CFramer. Fenrier is a brony, likes Patapon and other cool stuff.", Avatar.."Fenrier", "", "xSoulStealerx"},
  19. {"ROBLOX", "This is an account that Roblox game owns, makes almost everything in catalog. Can't get contact very often and looks like a Guest.", Avatar.."ROBLOX", Avatar.."ROBLOX", "xSoulStealerx"},
  20. {"Guests", "Guests are unregistered users. Most of guests are very annoying and stupid.", Avatar.."ROBLOX", Avatar.."ROBLOX", "xSoulStealerx"},
  21. {"Functions", [[Functions are something that is used in mosts scripts. Ex. function lol() print("lol") end
  22. lol is the function name, and you can run it by lol(). It prints 'lol'. You can used them attached to events, Ex. Part.Touched:connect(lol).]], "", "", "xSoulStealerx"},
  23. {"SoWiki",[[SoWiki is an information database made by xSoulStealerx. It updates as soon as xSoulStealerx is going to open notepad and add information.
  24. SoWiki is a GUI-Based Wikipedia of ROBLOX, Users and scripting.]], ScriptDec, "", "xSoulStealerx"},
  25. {"Variables",[[You can use variables to store data, Ex; variable = 1
  26. Now this variable called 'variable' holds number 1. Lets try it in print!
  27. print(variable)
  28. Outputs 1. You can store other data in also, including strings, functions, objects and tables.]], ScriptDec, "", "xSoulStealerx"},
  29. {"Loops Part 1",[[There are a few different loops in scripting. 'while' loop, 'for' loop and 'repeat' loop.
  30. The while loop keeps looping until condition is false. Ex; while true do
  31. As true can not be false, it keeps looping forever. Continues in part 2.]], ScriptDec, "", "xSoulStealerx"},
  32. {"Loops Part 2",[[Also, you can't only use it just for booleans. You can use it for nil too. Ex; var = ":3" while var do end
  33. As you noticed, loops need end. Loops can't be broken unless there is going to be a false condition, or you use 'break'. Continues in part 3.]], ScriptDec, "", "xSoulStealerx"},
  34. {"Loops Part 3",[[Ex;
  35. a = 1 while true do a = a + 1 if a >= 10 then break end end
  36. That will break the loop. Literally, repeat loop repeats until condition. Ex;
  37. repeat wait() print("lol") until true
  38. It prints 'lol' once, cause it stops until true. Continues on part 4.]], ScriptDec, "", "xSoulStealerx"},
  39. {"Loops Part 4",[[Now we're gonna learn 'for' loop. Alright. Ex;
  40. for INDEX, 0, 10, 2 do
  41. print(INDEX)
  42. end
  43. That '0' is the starting position, '10' is ending position and '2' is how much it goes forward each time. So, INDEX holds the value where it is going.]], ScriptDec, "", "xSoulStealerx"},
  44. {"If statement part 1",[['if' statement's function runs, if condition is true. Ex;
  45. if true then
  46. print("Its true")
  47. end
  48. Of course it prints 'Its true'. More examples:
  49. if 1 > 2 then if 9001 == 9000 then if 1 ~= "lol" then
  50. You can use 'else' in statement too. Continues in part 2.]], ScriptDec, "", "xSoulStealerx"},
  51. {"If statement part 2",[['else' is used if condition is not true. Ex;
  52. if false then
  53. else
  54. print("K")
  55. end
  56. It prints 'K'. Now theres 'elseif'. It's almost same as 'if'. Ex;
  57. if 2 > 3 then print(":O") elseif 2 > 1 then print(":D") end
  58. elseif has to be in an if statement.]], ScriptDec, "", "xSoulStealerx"},
  59. {"Part",[[Part is a physics object that you can collide with.
  60. Main properties are Size, Position, BrickColor, Anchored, CanCollide, Transparency and Reflectance.]], "", "", "xSoulStealerx"},
  61. {"Players",[[Players is an object that holds every player who joins. It is parented in game and is a service. Players has a property called MaxPlayers, so you can set maximum amount of players in server.]], "", "", "xSoulStealerx"},
  62. {"Tables Part One",[[Tables are extremely useful. They're a way to organize all your information. i.e., local tab = {"T1", "T2"}. To index something in a table, you would use:
  63. tab[Index].
  64. print(tab[1]) "T1"
  65. print(tab[2]) "T2"
  66. You can store anything in table, even tables.]], ScriptDec, "", "Scriptax"},
  67. {"Tables Part Two",[[Inserting to table goes like:
  68. table.insert(TabName, Add)
  69. i.e., local tab = {"I like"} table.insert(tab, " apples")
  70. >>print(tab[1]..tab[2])
  71. "I like apples"
  72. You can also insert data into a specific index.
  73. table.insert(tab, index, data)
  74. ]], ScriptDec, "", "Scriptax"},
  75. {"Tables Part Three",[[You can also remove from tables. To do that, you would use:
  76. table.remove(TableName, Index)
  77. table.remove requires the index, not name. i.e.,
  78. local tab = {"I like ", "cats"}
  79. table.remove(tab, 2)
  80. If we were to print its contents...
  81. "I like ".
  82. ]], ScriptDec, "", "Scriptax"},
  83. {"Tables Part Four",[[table.concat concatenates a table into one string. It also has a seperator argument. table.concat(Table, Seperator)
  84. i.e.,
  85. local tab = {"Scriptax", "is", "awesome"}
  86. >>print(table.concat(tab, " ")
  87. Output will say: "Scriptax is awesome".]], ScriptDec, "", "Scriptax"},
  88. {"Tables Part 2.5",[[I added 2.5 just to show you other ways to add to a table.
  89. local tab = {}
  90. tab[1] = "ghj" or
  91. tab["AFunction"] = function(Arg1, arg2) return "Scriptax Is Awesome" end or
  92. tab.thing = false print(tab.thing)=false
  93. So yah. Tables.]], ScriptDec, "", "Scriptax"},
  94. {"Scriptax", [[My my, you've stumbled across the article of Scriptax. I have nothing else to say.
  95. Scriptax is a contributor of SoWiki.]], Avatar.."Scriptax", Asset..(52306378), "Scriptax"},
  96. {"Telamon", [[A ROBLOX admin, he's been working in ROBLOX since the beginning. He's also is the "Proud" owner of SFOTH, a famous place, and his real name is John Shedletsky.]], Avatar.."Telamon", "", "Scriptax"},
  97. {"builderman", [[He is another ROBLOX admin. He is extremely helpful, and can provide you with important info on ROBLOX, but don't send him profane-spam. He banned me for that.]], Avatar.."builderman", "", "Scriptax"},
  98. {"Sharp1331", [[One of Scriptax's noobs. He is very good at being a troll :D.]], Avatar.."Sharp1331", TrollDec, "Scriptax"},
  99. {"oxcool1", [[A good scripter and arabian. His script builder is almost perfect. SoWiki was made in his script builder.]], Avatar.."oxcool1", "", "xSoulStealerx"},
  100. {"TheNewScripter", [[A very good scripter. Has a ScriptBuilder, too. He's helped and banned many noobs, but he no longer logs onto ROBLOX...]], Avatar.."TheNewScripter", "", "Scriptax"},
  101. {"tick()", [[A function that returns the time since Midnight of January 1st, 1970. May have different results if used in a Local Script.]], ScriptDec, "", "Scriptax"},
  102. {"time()", [[A function that returns how long the server has been up in seconds.]], ScriptDec, "", "Scriptax"},
  103. {"crash__()", [[A locked function. Basicly, it crashes the game.]], ScriptDec, "", "Scriptax"},
  104. {"string.find Part One", [[Finds a specific string in another string. string.find(String, ThingToFind)
  105. returns start and end of first match, otherwise returns nil.
  106. >>print(string.find("catcatcat", "cat"))
  107. 1 3]], ScriptDec, "", "Scriptax"},
  108. {"string.find Part Two", [[You can also use the "Magic Characters" to find parts of a string. i.e.,
  109. >>print(string.find("catcatcat", "%a+"))
  110. 1 9
  111. That searched for all alphanumeric characters.]], ScriptDec, "", "Scriptax"},
  112. {"string.gsub", [[Replaces a segment in a string with a different string. i.e.,
  113. >>print(string.gsub("builderman is not a noob", "is not", "is"))
  114. "builderman is a noob"
  115. This also can use "Magic Characters"]], ScriptDec, "", "Scriptax"},
  116. {"PlayerAdded", [[An event that fires when a player joins the game.
  117. game.Players.PlayerAdded:connect(function(Player)
  118. print(Player.Name)
  119. end)
  120. This will print a player's name when they enter the game.]], ScriptDec, "", "Scriptax"},
  121. {"string.len", [[Returns length of a string.
  122. >>string.len("abcdefg")
  123. 7
  124. Same thing as #"abcdefg"]], ScriptDec, "", "Scriptax"},
  125. {"string.lower", [[Returns the a string, but all uperpcase letters are lowercase.
  126. >>string.lower("LolWUT")
  127. "lolwut"]], ScriptDec, "", "Scriptax"},
  128. {"string.upper", [[Returns a string, but all lowercase letters are uppercase.
  129. >>string.upper("bump")
  130. "BUMP"]], ScriptDec, "", "Scriptax"},
  131. {"string.rep", [[Replicates a string x amount of times. i.e.,
  132. >>string.rep("Boo", 3)
  133. "BooBooBoo"]], ScriptDec, "", "Scriptax"},
  134. {"math.abs", [[Returns the absolute value of a number.
  135. >>math.abs(-355)
  136. 355
  137. >>math.abs(355)
  138. 355]], ScriptDec, "", "Scriptax"},
  139. {"math.huge", [[Biggest number you can get.
  140. >>math.huge
  141. 1.#INF
  142. ]], ScriptDec, "", "Scriptax"},
  143. {"math.pi", [[Returns pi.
  144. >>math.pi
  145. 3.1415926535898]], ScriptDec, "", "Scriptax"},
  146. {"math.rad", [[Converts degrees to radians.
  147. >>math.rad(90)
  148. about 1.57, basicly half of pi.]], ScriptDec, "", "Scriptax"},
  149. {"Notepad++",[[Notepad++ is a very advanced modified notepad, where are many tools and languages. SoWiki was made with Notepad++.]], ScriptDec, "", "xSoulStealerx"},
  150. {"Roblox Studio",[[Roblox Studio is a place-creating software with built-in browser. This has an useful command bar and you can search through explorer.]], "", "", "xSoulStealerx"},
  151. {"TheGamer101",[[TheGamer101 has a famous place called Sword Fighting Tournament. TheGamer is famous only because of his poorly scripted game.]], Avatar.."TheGamer101", "", "xSoulStealerx"},
  152. {"Coroutine",[[Coroutine is used in scripts. When using it and if theres a wait function call inside, anything outside coroutine will run normally in realtime, but inside coroutine, it waits. kthxbai.]], ScriptDec, "", "xSoulStealerx"},
  153. {"brandonhare",[[A very AWESOME scripter. brandonhare made RIDI with good songs and very complex scripts. Respect!]], Avatar.."brandonhare", "", "xSoulStealerx"},
  154. {"Vector3",[[Vector3 is a value type of x, y and z. i.e.
  155. Vector3.new(x number, y number, z number)
  156. Vector3's are used for part positions, velocitys and many other things.
  157. You can access Vector3's specific value by this way:
  158. v = Vector3.new(-10, 0, 40)
  159. x = v.X]], ScriptDec, "", "xSoulStealerx"},
  160. {"Color3",[[Color3 is constructed with r, g, b, which means red, green, blue. i.e.
  161. local color = Color3.new(1, 1, 0)
  162. 1 means full in Color3.new, which is 255. This 'color' variable is yellow, and you can use Color3 in smoke, guis, fire and many other things.]], "", "", "xSoulStealerx"},
  163. {"Boolean",[[Boolean is a value between false and true. That's all I have to say.]], "", "", "xSoulStealerx"},
  164. {"Private server",[[Private server is often used in script builders, and most people don't like it. Unless they use it. Private server means other people than allowed can't enter the game.]], Asset..(9992903), "", "xSoulStealerx"},
  165. {"math.sqrt",[[Returns to the square root of x. i.e.
  166. > print(math.sqrt(9))
  167. 3]], ScriptDec, "", "xSoulStealerx"},
  168. {"string.sub",[[Returns a string of String between Start and End. i.e.
  169. > print(string.sub("This is a string", 1, 7))
  170. "This is"]], ScriptDec, "", "xSoulStealerx"},
  171. {"matthewhwang",[[matthewhwang likes Naruto and other anime + manga sht. He also made the annoying GUI sword script which alot of noobs use to annoy people. Lets give a thanks to matthewhwang for all these noobs and annoying scripts, but he's a good scripter anyways.]], Avatar.."matthewhwang", "", "xSoulStealerx"},
  172. {"Insert tool",[[Most noobs use insert tools in script builders to insert stupid nairod orbs and nukes. Why don't they go to Insert Wars?]], Asset..(51887666), "", "xSoulStealerx"},
  173. {"nairod's orb",[[The most annoying orb ever made. Noobs insert it, use it, ban, kick and loopkill with it. I mean c'mon!!]], Asset..(41692146), "", "xSoulStealerx"},
  174. {"Script Builder - Share your scripts!",[[This is a forum thread, where every noob post stolen and already forumed scripts. Nubs visit that thread often, take scripts, go to a script builder and claim them as their own.]], ScriptDec, "", "xSoulStealerx"},
  175. {"JetPack Script", [[A forum script, used by noobs to do a variety of things, like kill, kick, and annoy you. Avoid.]], ScriptDec, "", "Scriptax"},
  176. {"Forum Scripts", [[Scripts that have been put on the forum. In most cases, one player stole the script from another, and posted it there. Using Forum Scripts can irritate people. Avoid use.]], ScriptDec, "", "Scriptax"},
  177. {"DarkShadow6", [[An extremely good scripter, and maker of CoolCMDs. He likes to dress up as a traffic cone, though.]], Avatar.."DarkShadow6", "", "Scriptax"},
  178. {"Builders Club", [[Builders club is a 'club' which costs you real money. It gives you up to 10 places, 15 robux a day and stuff.]], "", "", "xSoulStealerx"},
  179. {"CoolCMDs", [[A long script created, created by user DarkShadow6. Sadly, it was put on the forums. It's most used at Anaminus's sbs. Avoid.]], ScriptDec, "", "Scriptax"},
  180. {"math.sin", [[Returns the sine value of a given number. i.e.,
  181. >>math.sin(math.rad(90))
  182. 1]], "", "", "xSoulStealerx"},
  183. {"Lua", [[A scripting language that ROBLOX has implemented in their games. It is not an acronym. It is used to make most games, and was used to create SoWiki.]], ScriptDec, ScriptDec, "Scriptax"},
  184. {"awxsd561", [[awxsd561 is a basic advanced scripter. He usually makes hoppers and guis. He owns a company called Awx. Inc.
  185. awxsd561 is a contributor of SoWiki.]], Avatar.."awxsd561", "ImgRight", "awxsd561"},
  186. {"oysi93", [[oysi93 is the owner of the ever popular group, Ro-Scripters. He is very good at raycasting, rendering, commands and much more.]], Avatar.."oysi93", "ImgRight", "awxsd561"},
  187. {"math.random", [[Chooses a random number between two points that you specify. Ex.
  188. print(math.random(1,5)).
  189. That would print a random number between 1 and 5.]], ScriptDec, "ImgRight", "awxsd561"},
  190. {"Advanced functions", [[Advanced functions are functions which have variables(see variables section) in the function. Ex.
  191. function message(msg)
  192. Instance.new("Message",workspace).Text = msg
  193. end
  194. message("hi")
  195. That would cause the Message to say hi.]], ScriptDec, "ImgRight", "awxsd561"},
  196. {"Games", [[Games are places created by Robloxian users for the enjoyment of others. Every visit you get on a game earns you 1 ticket.]], "ImgLeft", "ImgRight", "awxsd561"},
  197. {"Tickets",[[A currency of roblox, called 'tix'. You get 1 ticket each time someone visits your place and 10 tix everyday as login award. Most of items in catalog made by ROBLOX are sold for robux and you can't buy tickets.]], "", "", "xSoulStealerx"},
  198. {"Robux",[[A currency of roblox, called 'rs' or 'R$'. Robux is usually worth 10 times more than tickets. You gain robux each day only if you have bought Builders Club. Robux is used to buy almost everything in roblox and you can buy it for real money.]], "", "", "xSoulStealerx"},
  199. {"Raycasting",[[Raycasting is casting a line and checking if it intersects any object. Roblox added it's own raycast method called:
  200. workspace:findPartOnRay()]], "", "", "xSoulStealerx"},
  201. {"Chatted",[[Chatted is an event for players. It is fired when player talks and it returns to message, recipient and speaker. It is used to make commands.]], "", "", "xSoulStealerx"},
  202. {"CFrame",[[CFrame is used to set a brick's angle and position. CFrame can make a part be inside of another. CFrame is set by CFrame.new(0, 0, 0) and angle is set by CFrame.Angles(math.pi, math.rad(90), 0).]], "", "", "xSoulStealerx"},
  203. {"IntValue",[[A value object that holds an integer value. Integer value does not have any decimals and is always rounded to nearest.]], "", "", "xSoulStealerx"},
  204. {"NumberValue",[[A value object that holds any number.]], "", "", "xSoulStealerx"},
  205. {"ObjectValue",[[A value object that holds an object, such as game.Players, workspace or workspace.Model.Part.]], "", "", "xSoulStealerx"},
  206. {"Weld",[[Weld has two CFrame properties, C0 and C1. Weld is used to stick two bricks together, even if they aren't connected. Part0 property is where to attach, Part1 property is attached part.]], "", "", "xSoulStealerx"},
  207. {"Motor6D",[[Motor6D is same as weld, but it has DesiredAngle and MaxVelocity property, which make parts move smoothly. Motor6D is also used to make character animations.]], "", "", "xSoulStealerx"},
  208. {"Lighting",[[Lighting is a service to set brightness, ambient and shadows.]], "", "", "xSoulStealerx"},
  209. {"Workspace",[[Workspace is the only place where parts are seen, and where are parented most of objects.]], "", "", "xSoulStealerx"},
  210. {"RobloxMasterDX",[[RobloxMasterDX is a funny :D D: guy. He likes My Little Pony and derping, and is a filipino.]], Avatar.."RobloxMasterDX", "", "xSoulStealerx"},
  211. {"niels22", [[Average scripter, likes building and scripting. Lives in Denmark, and is very much like :D also likes MLP and the inventor of Blocklate (99% bricks 1% chocolate!)]], Avatar.."niels22", Asset.."50660649", "niels22"},
  212. {"Decal", [[A texture used for many things. Such as mouse icons, text on bricks or pictures at walls and buttons eg. Many of those is uploaded by players.]], TrollDec, "ImageRight", "niels22"},
  213. {"pcall", [[Pcall is a function that ignores glitches. It stops the function if there's an error. Ex.
  214. pcall(function() pppprint("lol") end) will just do nothing because there are errors. However, it breaks if you have a wait inside your pcall. pcall will always returns to a bool, and if it's true, it has no errors and opposite.]], ScriptDec, "ImageRight", "niels22"},
  215. {"Output", [[Output; the scripters' best friend. It automatically posts all errors in running scripts, results and info. Scripting would be very hard if you couldn't find the errors, it could take hours to fix a script!]], "ImageLeft", "ImageRight", "niels22"},
  216. {"Wedge part", [[Look up part for more info. Wedge parts is almost the same as a part, it's just shaped as a ramp and have no other properties]], Asset.."38076210", "ImageRight", "niels22"},
  217. {"math.asin", [[Returns the arc sine of x (in radius). Exp:
  218. print(math.asin(1))
  219. That will result in 1.57
  220. ]], "ImgLeft", "ImgRight", "awxsd561"},
  221. {"math.ceil", [[Returns the smallest number larger then or equal to x. Essentially, rounds a number to the next highest value.Exp:
  222. print(math.ceil(4.2))
  223. That will result in 5
  224. ]], "ImgLeft", "ImgRight", "awxsd561"},
  225. {"math.deg", [[Returns the angle x(in radius) in degrees. Exp:
  226. print(math.deg (1.5707963267948966192313216916398))
  227. That will result in 90
  228. ]], "ImgLeft", "ImgRight", "awxsd561"},
  229. {"Bodyposition", [[A force that try pull it's parent(if it is a part) to a target. Target is a Vector3 value. Properties are P(Power) D(Dampening) maxForce(Vector3) and position(Vector3) ]], "ImageLeft", "ImageRight", "niels22"},
  230. {"Sound", [[A sound! What else? Set a valid SoundId and put sound:play() to hear your sound! Properties: Volume(Number) Pitch(Number) SoundId(String)]], Asset.."47619018", "ImageRight", "niels22"},
  231. {"News", [[The digital newspaper at Roblox. Roblox admins use it to write updates, host contest, run surveys with more. The most often posting is Brighteyes, ReeseMCBlox and Sorcus]], Asset.. "53086248", "ImageRight", "niels22"},
  232. {"Spam", [[Spam is a annoying thing that only noobs do. It involves clogging up the chatbox and posting something a million times in the comments.Exp:
  233. awxsd561:Hi,xSoul
  234. xSoul:Hi,awxsd561
  235. Noob:ffffff
  236. Noob:fffffff
  237. Noob:fffffff
  238. Noob:fffffffffff
  239. xSoul:ban/Noob
  240. ]], Asset.. "50854922", "ImageRight","awxsd561"},
  241. {"acb227",[[I am an awesome scripter, not better then xSoulStealerx, and also a contributor of SoWiki. But Im great at welds, ok at hopperbins. And that is basically it.]], Avatar.."acb227", "Image 2", "acb227"},
  242. {"Tool",[[A tool is used somewhat in the sameway as a hopperbin, but alot easier to use. To insert a Tool, you have to do: Instance.new("Tool").
  243. To use a tool such as a sword, you would need to make sure that the part you hang onto is labeled as "Handle". In order to get other parts than just a handle, you would need to weld them to the handle. Tools opperate while you click with your mouse, aswell as keys.
  244. ]], "Image 1", "Image 2", "acb227"},
  245. {"ForceField",[[ForceFields are shields that protect you from guns, explosions, aswell as anything that does the TakeDamage function.
  246. If they do a direct health drain, then the ForceField will not protect you. You can aquire a ForceField by: Spawning on a spawn that has ForceFields enabled, using scripts to put one on you, or using tools. If you wish to make a ForceField, you would need to do Instance.new("ForceField").]], "Image 1", "Image 2", "acb227"},
  247. {"Build Mode",[[Build Mode is similar to building in Edit mode except, you are a player using tools like in edit, and you can use tools that you would use if you play in a game. To insert stuff you will have to go to the Veiw tab and click Insert and choose what you want to insert. Just have fun building anything you can think of.]], "Image 1", "Image 2", "acb227"},
  248. --{"Blank",[[]], "", "", "xSoulStealerx"},
  249.  
  250.  
  251.  
  252. }
  253.  
  254. function Find(txt)
  255. local found = {}
  256. if #txt >= 1 then
  257. for _, v in pairs(Sites) do
  258. if txt:lower() == v[1]:lower():sub(1,#txt) then
  259. table.insert(found, v)
  260. end
  261. end
  262. end
  263. if #found < 1 then found = nil end
  264. return found
  265. end
  266.  
  267. UD = UDim2.new
  268. C3 = Color3.new
  269.  
  270. function EditGui(obj, parent, size, position, bgcolor, bordercolor, transparency, text, textcolor, auto)
  271. obj.Size = size
  272. obj.Position = position
  273. obj.BackgroundColor3 = bgcolor
  274. obj.BorderColor3 = bordercolor
  275. obj.BackgroundTransparency = transparency
  276. if text then
  277. obj.Text = text
  278. end
  279. if textcolor then
  280. obj.TextColor3 = textcolor
  281. end
  282. if auto then
  283. obj.AutoButtonColor = auto
  284. end
  285. obj.Parent = parent
  286. end
  287.  
  288. function Add(Title, Information, Img1, Img2, Creator)
  289. local tab = {Title, Information, Img1, Img2, Creator.Name}
  290. table.insert(Sites, tab)
  291. return tab
  292. end
  293.  
  294. function FindAny(str, what, which)
  295. local where = 0
  296. local a, b = nil, nil
  297. for i=1,#str do
  298. if str:sub(i,i + #what - 1) == what then
  299. where = where + 1
  300. if where == which then
  301. a, b = i, i+ #what-1
  302. break
  303. end
  304. end
  305. end
  306. return a, b
  307. end
  308.  
  309. function GiveWiki(Player)
  310. Player.Chatted:connect(function(msg)
  311. if msg:lower():sub(1,4) == "add/" then
  312. local a = FindAny(msg, "/", 2)
  313. pcall(function()
  314. Add(msg:sub(5, a-1), msg:sub(a+1, #msg), "", "", Player)
  315. end)
  316. end
  317. end)
  318. local PlrGui = Player:findFirstChild("PlayerGui")
  319. if PlrGui == nil then repeat wait() PlrGui = Player:findFirstChild("PlayerGui") until PlrGui ~= nil end
  320. for _,v in pairs(PlrGui:children()) do if v.Name == "SoWiki" then v:remove() end end
  321. local Hidden = true
  322. local Props = nil
  323. local ShowNew = 12
  324. local function RemoveProps()
  325. if Props then
  326. for _,v in pairs(Props) do
  327. v:remove()
  328. end
  329. Props = nil
  330. end
  331. end
  332. function onDown(g)
  333. g.MouseButton1Down:connect(function()
  334. RemoveProps()
  335. end)
  336. end
  337. local SiteAtm = Sites[8]
  338. local Sc = Instance.new("ScreenGui")
  339. Sc.Name = "SoWiki"
  340. local Name = Instance.new("TextButton")
  341. EditGui(Name, Sc, UD(0, 170, 0, 25), UD(1, -170, 0.94, -25), C3(0.9, 0.9, 1), C3(), 0.1, "SoWiki", C3(), false)
  342. Name.Font = "ArialBold"
  343. Name.FontSize = Enum.FontSize.Size24
  344. onDown(Name, false)
  345. local SiteGui = Instance.new("ImageButton")
  346. EditGui(SiteGui, Name, UD(0, 350, 0, 300), UD(0, 0, 1, 0), C3(0.9, 0.9, 0.95), C3(), 0.1, nil, nil, false)
  347. onDown(SiteGui)
  348. SiteGui.AutoButtonColor = false
  349. local Search = Instance.new("TextBox")
  350. EditGui(Search, Name, UD(0, 180, 1, 0), UD(1, 0, 0, 0), C3(0.8, 0.8, 0.9), C3(), 0.1, "Search", C3())
  351. Search.Font = "Arial"
  352. Search.FontSize = Enum.FontSize.Size14
  353. Search.TextXAlignment = "Left"
  354. local Title = Instance.new("TextLabel")
  355. EditGui(Title, SiteGui, UD(1, 0, 0, 25), UD(0, 0, 0, 0), C3(), C3(), 1, "", C3())
  356. Title.Font = "ArialBold"
  357. Title.FontSize = Enum.FontSize.Size18
  358. local Information = Instance.new("TextLabel")
  359. EditGui(Information, SiteGui, UD(1, -20, 1, -110), UD(0, 10, 0, 30), C3(), C3(), 1, "", C3())
  360. Information.Font = "Arial"
  361. Information.FontSize = Enum.FontSize.Size14
  362. Information.TextWrap = true
  363. Information.TextYAlignment = "Top"
  364. Information.TextXAlignment = "Left"
  365. local Glass = Instance.new("ImageButton")
  366. EditGui(Glass, Search, UD(0, 25, 1, 0), UD(1, -25, 0, 0), C3(), C3(), 1)
  367. Glass.AutoButtonColor = false
  368. Glass.Image = "http://www.roblox.com/asset/?id=52605819"
  369. local Image1 = Instance.new("ImageLabel")
  370. EditGui(Image1, SiteGui, UD(0, 150, 0, 110), UD(0, 20, 1, -125), C3(0.9, 0.9, 0.95), C3(), 0.6)
  371. Image1.Image = ""
  372. local Image2 = Instance.new("ImageLabel")
  373. EditGui(Image2, SiteGui, UD(0, 150, 0, 110), UD(0, 180, 1, -125), C3(0.9, 0.9, 0.95), C3(), 0.6)
  374. Image2.Image = ""
  375. local AdderText = Instance.new("TextLabel")
  376. EditGui(AdderText, SiteGui, UD(0, 0, 0, 15), UD(0, 0, 1, -15), C3(), C3(), 1, "", C3())
  377. AdderText.Font = "Arial"
  378. AdderText.FontSize = Enum.FontSize.Size12
  379. AdderText.TextXAlignment = "Left"
  380. local AdderImage = Instance.new("ImageButton")
  381. EditGui(AdderImage, SiteGui, UD(0, 40, 0, 50), UD(0, -40, 1, -50), C3(0.9, 0.9, 0.95), C3(), 0.2)
  382. AdderImage.Image = ""
  383. AdderImage.AutoButtonColor = false
  384. local Articles = Instance.new("TextLabel")
  385. EditGui(Articles, SiteGui, UD(0.5, 0, 0, 20), UD(0.25, -40, 1, 0), C3(0.9, 0.9, 0.95), C3(), 0.1, "Articles: "..#Sites, C3())
  386. Articles.Font = "Arial"
  387. Articles.FontSize = Enum.FontSize.Size14
  388. local WhatsNew = Instance.new("TextButton")
  389. EditGui(WhatsNew, Name, UD(0, 150, 0, 25), UD(0, -150, 0, 0), C3(0.9, 0.9, 0.95), C3(), 0.1, "What's new", C3())
  390. WhatsNew.Font = "ArialBold"
  391. WhatsNew.FontSize = Enum.FontSize.Size18
  392. WhatsNew.AutoButtonColor = false
  393. onDown(WhatsNew)
  394. local WhatsFrame = Instance.new("ImageButton")
  395. EditGui(WhatsFrame, WhatsNew, UD(1, 0, 0, 20*ShowNew+5), UD(0, 0, 1, 0), C3(0.9, 0.9, 0.95), C3(), 0.2)
  396. WhatsFrame.AutoButtonColor = false
  397. onDown(WhatsFrame)
  398. local function OpenSite(Site)
  399. Title.Text = tostring(Site[1])
  400. Information.Text = tostring(Site[2])
  401. Image1.Image = tostring(Site[3])
  402. Image2.Image = tostring(Site[4])
  403. local Name = Site[5]
  404. if Name == nil then Name = "xSoulStealerx" end
  405. AdderText.Text = "Added by: "..tostring(Name)
  406. AdderImage.Image = tostring(Avatar..Name)
  407. SiteAtm = Site
  408. end
  409. local Random = Instance.new("TextButton")
  410. EditGui(Random, Search, UD(0.5, 0, 0, 15), UD(0.25, 0, 0, -15), C3(0.8, 0.8, 0.9), C3(), 0.1, "Random", C3())
  411. Random.Font = "ArialBold"
  412. Random.FontSize = Enum.FontSize.Size12
  413. Random.MouseButton1Down:connect(function()
  414. OpenSite(Sites[math.random(1,#Sites)])
  415. end)
  416. for i = #Sites, #Sites-(ShowNew-1), -1 do
  417. local a = (i-(#Sites-ShowNew))
  418. local but = Instance.new("TextButton")
  419. EditGui(but, WhatsFrame, UD(1, -10, 0, 20), UD(0, 5, 0, (20*ShowNew)+(-a*20)), C3(0.75, 0.75, 0.85), C3(), 0.1, Sites[i][1], C3())
  420. but.TextWrap = true
  421. but.BorderSizePixel = 0
  422. but.MouseButton1Down:connect(function()
  423. RemoveProps()
  424. OpenSite(Sites[i])
  425. end)
  426. end
  427. OpenSite(SiteAtm)
  428. Name.MouseButton1Down:connect(function()
  429. if Hidden then
  430. Name:TweenPosition(UD(1, -375, 0.94, -350), nil, nil, 0.4)
  431. else
  432. Name:TweenPosition(UD(1, -170, 0.94, -25), nil, nil, 0.8)
  433. end
  434. Hidden = not Hidden
  435. end)
  436. AdderImage.MouseButton1Click:connect(function()
  437. local found = Find(SiteAtm[5])
  438. if found then
  439. OpenSite(found[1])
  440. end
  441. end)
  442. local function ShowFound(found)
  443. local lol = {}
  444. for i, v in pairs(found) do
  445. local g = Instance.new("TextButton")
  446. EditGui(g, Search, UD(1, 0, 0, 20), UD(0, 0, 0, 5+i*20), C3(0.75, 0.75, 0.85), C3(), 0.1, v[1], C3(), false)
  447. g.TextWrap = true
  448. table.insert(lol, g)
  449. g.MouseButton1Down:connect(function()
  450. RemoveProps()
  451. OpenSite(v)
  452. end)
  453. end
  454. Props = lol
  455. end
  456. Search.Changed:connect(function(p)
  457. if p == "Text" then
  458. RemoveProps()
  459. local found = Find(Search.Text)
  460. if found then
  461. ShowFound(found)
  462. end
  463. end
  464. end)
  465. Glass.MouseButton1Click:connect(function()
  466. RemoveProps()
  467. local found = Find(Search.Text)
  468. if found then
  469. ShowFound(found)
  470. end
  471. end)
  472. Sc.Parent = PlrGui
  473. end
  474.  
  475. for i,v in pairs(game.Players:GetPlayers()) do
  476. GiveWiki(v)
  477. end
Add Comment
Please, Sign In to add comment