Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Please refer to any documentation for the Group Infobox template at: https://obbywiki.com/wiki/Template:GroupInfobox.

This infobox uses InfoboxNeue, which is likely imported, view more information at: https://obbywiki.com/wiki/Module:InfoboxNeue.


--[=[
    DO NOT EDIT THIS FILE MANUALLY.

    This file was automatically minified and transpiled from Luau by DarkLua.
    The original source code was written in Luau, the below code is transpiled and compatible with Lua 5.1.5 and contains the necessary polyfills.
    
    Uploaded automatically via WikiWire. View the original source at our central code repository: https://github.com/obbywiki/modules
    ANY EDITS WILL LIKELY BE OVERWRITTEN. A copyright notice should be supplied at the bottom of this page.
]=]--



local GroupInfobox={}local months_full={'January','February','March','April','May','June','July','August','September','October','November','December'}local function month_by_index(month)return months_full[month]or'N/A'end local function get_comma_val(num)local formatted=num while true do local k formatted,k=string.gsub(formatted,'^(-?%d+)(%d%d%d)','%1,%2')if(k==0)then break end end return formatted end local function page_exists(page_title)local title=mw.title.new(page_title)return title and title.exists end local smm={twitter={icon='External Twitter Coloured Small.webp',url='https://twitter.com/',display='Twitter'},bsky={icon='External BlueSky White Small.png',url='https://bsky.app/profile/',display='BlueSky'},youtube={icon='External YouTube White Small.png',url='https://youtube.com/@',display='YouTube'},discord={icon='External Discord White Small.png',url='https://discord.com/invite/',display='Discord'},guilded={icon='External Guilded White Small.png',url='https://guilded.gg/',display='Guilded'},roblox={icon='External Roblox White Small.png',url='https://roblox.com/users/profile?username=',display='Roblox'},website={icon='GoogleMaterialIcons-Globe.svg',url='https://',display='Website'},wiki={icon='External MediaWiki White Small.png',url='https://',display='MediaWiki'}}local cargo=mw.ext.cargo local studio_schema={['_table']='Studios',name='String',owner='String',total_obbies='Integer',members='Float',thumbnail='String',developers='List (,) of String',contributors='List (,) of String',admins='List (,) of String',moderators='List (,) of String',year='Integer',month='Integer',group_id='String'}function GroupInfobox.declare(frame)return cargo.declare(studio_schema)end function GroupInfobox.store(frame,data)local store_args={'_table='..studio_schema._table}for k,v in pairs(data)do if v~=nil and v~=''then table.insert(store_args,k..'='..tostring(v))end end return frame:callParserFunction{name='#cargo_store',args=store_args}end function GroupInfobox.main(frame)local InfoboxNeue=require('Module:InfoboxNeue')local test=InfoboxNeue:new({placeholderImage='Standard11placeholder.webp'})local args=require('Module:Arguments').getArgs(frame)local group_name=args.name or mw.title.getCurrentTitle().text local group_id=args.group_id or args.id or 7 local group_name_raw local group_stats_members_raw local group_creator,group_creator_was_corrected=args.developer or args.creator or args.owner or'Unknown',false local _=args.relations or'Independent'local group_obbies=args.obbies or args.games or 0 local group_creator_raw=group_creator local group_creation_year=args.year or''local group_creation_month=month_by_index(tonumber(args.month or'0')or 0)local group_stats_members=args.members or'N/A'if tonumber(group_stats_members)~=nil then group_stats_members_raw=group_stats_members group_stats_members=get_comma_val(group_stats_members)end local thumb=args.image or args.thumbnail or args.thumb if group_id then local group_res=mw.ext.externalData.getExternalData{url='https://groups.roblox.com/v1/groups/'..tostring(group_id),format='json'}local group_json=group_res and group_res.__json local row=group_json mw.log(group_res,row)if row and row.owner then local c=row.owner local base=not c.type and'users'or(c.type=='Group')and'communities'or'users'group_creator=c.username and'@'..c.username or c.name or'Unknown'group_creator_raw=group_creator if page_exists(base=='communities'and(c.name or c.groupName)or'@'..(c.username or c.name or'Unknown'))then group_creator='[['..group_creator..']]'..(c.hasVerifiedBadge and[==[ [[File:Roblox_Verification_Badge.svg|12px|alt=Verified|link=]==]..group_creator..']]'or'')group_creator_was_corrected=true else group_creator=string.format('[https://roblox.com/%s/%s/%s %s%s]',base,base=='users'and c.userId or c.id or c.groupId,base=='communities'and(string.gsub(c.name or c.groupName or c.username or'Error',' ','_')..'#!/about')or'profile',(c.username and'@'or'')..(c.username or c.name),(c.hasVerifiedBadge and[=[  [[File:Roblox_Verification_Badge.svg|12px|alt=Verified|link=]]]=])or'')group_creator_was_corrected=true end end if row and row.name then group_name=row.name group_name_raw=row.name group_name=string.format('[https://roblox.com/groups/%s/%s#!/about %s%s]',group_id,string.gsub(group_name,' ','_'),group_name,(row.hasVerifiedBadge and[=[  [[File:Roblox_Verification_Badge.svg|12px|alt=Verified|link=]]]=])or'')end if row then group_stats_members_raw=row.memberCount or 0 group_stats_members=row.memberCount or group_stats_members if row.memberCount and tonumber(group_stats_members)~=nil then group_stats_members=get_comma_val(group_stats_members)end end end test:renderImage(thumb)test:renderHeader({title=group_name,subtitle=(group_creator_was_corrected and("by '''"..group_creator.."'''")or("by '''[["..group_creator.."]]'''"))..(group_creation_year~=''and(' — '..group_creation_year)or'')})test:renderSection({title='Statistics',col=2,content={test:renderItem('Members',group_stats_members..'+'),test:renderItem('Obbies','~'..group_obbies)}})test:renderSection({title='Publishing & Other',col=2,content={test:renderItem('Created',group_creation_month..' '..group_creation_year)}})local social_icons_wikitext={}for i,v in pairs(smm)do if args[i]then local handle=args[i]local full_url=v.url..handle local wikitext=string.format([=[[%s [[File:%s|24px|link=|alt=%s|class=social-icon %s-social-icon]]]]=],full_url,v.icon,v.display..' icon',string.lower(v.display))table.insert(social_icons_wikitext,wikitext)end end if#social_icons_wikitext>0 then test:renderSection({title='Presence',content={test:renderItem({label='Socials',plainlinks_enabled=true,data=table.concat(social_icons_wikitext,' ')})}})end test:renderSection({title='Advanced',col=2,content={test:renderItem('Group ID','<code>'..(group_id==7 and'Unlisted'or tostring(group_id)or'Unknown')..'</code>')}})local rendered=test:renderInfobox(nil,group_name)local append_categories={}table.insert(append_categories,'[[Category:'..'Group'..']]')table.insert(append_categories,'[[Category:'..'Studio'..']]')GroupInfobox.store(frame,{name=group_name_raw,owner=group_creator_raw,total_obbies=tonumber(group_obbies),year=tonumber(args.year),month=tonumber(args.month),group_id=tostring(group_id),developers=args.developers,contributors=args.contributors,admins=args.admins,moderators=args.moderators,thumbnail=thumb,members=group_stats_members_raw})return rendered..'\n'..table.concat(append_categories,'\n')end return GroupInfobox