Module:Documentation and VM 0b0t: Difference between pages

From Computernewb Wiki
(Difference between pages)
Jump to navigation Jump to search
m (1 revision imported)
 
No edit summary
 
Line 1: Line 1:
{{DISPLAYTITLE:Windows 8.1 Black Aryan Edition x64 (VM 0b0t) - ANARCHY VM}}
-- This module implements {{documentation}}.
{{Infobox VM
|screenshot = Vm0b0t_new38.png
|introduced = 10 May 2022
|os = [[Windows 7]]
|arch = x64
|node = vm0b0t
|previous = Windows 8.1<br>Windows 10<br>Windows 10<br>Windows 7<br>Windows Vista<br>Windows 8.1<br>Windows 10<br>Windows 8<br>Windows 7<br>Windows Vista<br>Windows 2000<br>macOS Mojave
|next = [[VM1]]
|previousvm = [[EventVM]]
}}


<div style="display:none">__NOTOC__</div>
-- Get required modules.
'''VM 0b0t''' is the first VM and the oldest Anarchy VM in [[CollabVM]] (formerly the Mac OS VM and the Windows 2000 (Whitelisted) VM), the proud home of pure unadulterated Anarchy (formerly SWF projector shell trojans), unpatrolled, ungoverned and unregulated, free of judgment, the absolute worst of [[CollabVM]] culture, a mockery to all that is [[CollabNet|fair]] and [[Whitelister|good]], the bad future of [[CollabVM]], a malware paradise for [[Forkies|forkies]] to reign freely and eat away at fine culture, disrespecting it and destroying its integrity in the process, a place where [[Hildaboo|authority]] and [[DarkOK|prestige]] is meaningless, a place where [https://computernewb.com/collab-vm/rules human etiquette] and [https://computernewb.com/collab-vm/faq societal norms] are meaningless, a place where [[CollabVM#CollabVM:_the_Revengance/1.2.10|power and justice]] is meaningless, a place where [[Wikipedia:4chan|moderation is completely nonexistent]], a place where you can detach yourself from [[VM1|reality]] and take in a whole new dystopia where you will never thrive, a place where [[CollabVM_Discord|nothing ever changes]] and [[Andrej_Akan|no one ever learns]]... where horsefucking, and more recently, taking orders as a waiter holding numerous positions at various well-established restaurants part of the Papa Louie franchise, and even more recently, working as an Arstotzka border patrol agent stamping "Denied" on everyone's papers, and most possibly the most recent, running GandCrab and other ransomware through an autotyped bitsadmin Run command is the VM's, the [[VNC Resolver|GandCrab bot]]'s, [[Hildaboo|and the admin's]] favorite pastime. The name is a reference to the oldest Anarchy server in Minecraft, [[Wikipedia:2b2t|2b2t.org]].
local getArgs = require('Module:Arguments').getArgs


It runs [https://crustywindo.ws/Windows_8.1_Black_Alien_Edition Windows 8.1 Black Alien Edition] (a [https://crustywindo.ws/collection/Windows%2010/ Windows 10] bootleg you can get from Crustywindows) with a few custom programs added, which is running on a 100GB hard drive with 4 gigabytes of RAM. The idea for this VM came from [[CHOCOLATEMAN]], which emulates the 2016/2017 CollabVM experience, where there were less restrictions and more chaotic. Due to the nature of the VM, the various shortcuts on the desktop have weird and hilarious titles.
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')


The VM has the wallpaper set by default as a fan picture of Mr Beast. [[VM 0b0t#Installed Programs & Games on VM 0b0t|There are several custom programs and games, and other things on the VM (ie the various browsers' themes, extensions and bookmarks, custom pictures and more), which is contained in a list you can view here with this link.]]
local p = {}


The premise of the VM is that nearly none of the [[CollabVM]] rules (except the first 4 rules, due to an obligation to federal law and our server host, and there are some new rules in place to mitigate excessive viewing of such content as child pornography and gore) are enforced, effectively making it an Anarchy VM, as anyone can do whatever they please on the VM without restriction.
-- Often-used functions.
local ugsub = mw.ustring.gsub


Although the internet is nearly unrestricted on VM 0b0t, there is a heavily stripped down version of CollabNet in place on the VMs, meaning anyone can visit almost any website they please (except a few select areas, see [https://computernewb.com/collab-vm/rules/vm0/ here]). This allows for a lot more freedom and flexibility compared to the regular VMs, which are restricted with AD system policies, and have [[CollabNet]] in place to prevent you from using certain parts of the system for abuse, and accessing inappropriate/malicious websites.
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------


However, since there are very little internet restrictions in place, anyone can open up just about anything, which may include NSFW content (pornography and others), which is why the VM thumbnail has a blur on it by default. The CollabVM administration team will still actively enforce some of the [[CollabVM]] and VM rules on the VM however.
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end


<s>This also marks the return of [[debianguy|Debianguy]] in 2 years, and seandc02 also came back to the site after like... a year or three?</s> <s>'''''HOLY FUCK FLUFFY'S BACK'''''</s> <s>He got b&</s> <s>FLUFFY HAS RETURNED YET AGAIN!!! 2017 COLLABVM WILL NEVER DIE!!!</s> banned again :)
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end


== Prior Incarnations ==
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
{| class="wikitable"
end
! Operating System !! Version !! Time Period !! Revision #
|-
| Windows 7 || [https://crustywindo.ws/Windows_7_xDark_v5.2_RG_Deluxe xDark v5.2 RG Deluxe] || 2023-11-10 - now || 38
|-
| Windows 8.1 || [https://crustywindo.ws/Windows_8.1_Black_Alien_Edition Black Alien Edition] || 2023-07-11 - 2023-11-10 || 36-37
|-
| Windows 10 || [https://crustywindo.ws/Windows_10_Dragonball_Super_Edition Dragonball Super Edition] || 2023-05-19 - 2023-07-11 || 35
|-
| Windows 10 || [https://crustywindo.ws/Super_Windows_Longhorn-C_Build_2 Longhorn-C] || 2023-05-07 - 2023-05-19 || 33
|-
| Windows 10 || [https://crustywindo.ws/Windows_10_Steampunk_Edition Steampunk Edition] || 2023-03-13 - 2023-05-07 || 29
|-
| Windows 8.1 || [https://crustywindo.ws/Windows_9_(DiLShad) Windows 9 Pro (DiLShad)] || 2023-02-14 - 2023-03-13 || 23
|-
| Windows Vista || [https://crustywindo.ws/Windows_2007 Windows 2007 - Build 6021] || 2023-02-05 - 2023-02-14 || 21
|-
| Windows 8.1 || [https://crustywindo.ws/Windows_8.1_Google_Chromium_Edition Windows 8.1 Google Chromium Edition] || 2022-12-26 - 2023-02-05 || 14
|-
| Windows 10 || [https://crustywindo.ws/Windows_10_Christmas_Magic_Pro Windows 10 Christmas Magic Pro] || 2022-11-23 - 2022-12-26 || 11.1
|-
| <s>Windows 7</s> || <s>[https://crustywindo.ws/Windows_7_Mac_Extreme_2015 Windows 7 Mac Extreme 2015]</s> || 2022-11-23 - 2022-11-23 || 11
|-
| Windows 7 || [https://crustywindo.ws/Windows_7_Christmas_Edition_2015 Windows 7 Christmas Edition 2015] || 2022-11-22 - 2022-11-23 || 9
|-
| Windows 7 || [https://crustywindo.ws/Windows_7_Pony_Edition_2015 Windows 7 Pony Edition 2015] || 2022-10-20 - 2022-11-22 || 8
|-
| Windows 7 || [https://crustywindo.ws/Windows_7_FaceBooK_Edition_2012 Windows 7 FaceBooK Edition] || 2022-08-09 - 2022-10-20 || 6
|-
| Windows 7 || [https://crustywindo.ws/Windows_7_Angry_Birds Windows 7 Angry Birds Edition] || 2022-05-24 - 2022-08-09 || 1
|-
| [https://crustywindo.ws/Category:Bootlegs_based_on_Windows_Vista Windows Vista] || SP2 - Extended Kernel || 2022-05-10 - 2022-05-24 || 0
|}


== Installed Programs & Games on VM 0b0t ==
p.message = message
There are numerous programs and games installed on the VM along with some pretty interesting things hidden deep in the VM. This list is not guaranteed to be 100% accurate but it certainly is not complete either. This particular list includes (but is not limited to, sans the WPI default programs):


The programs on the VM are Mozilla Firefox 115.4.0esr, Google Chrome 109.0.5414.120, Notepad++ 8.5.8, AIMP 5.11.2436, VLC Media Player 3.0.20, HxD 2.5, Everything 1.4.1.1024, Driver Robot 2.5.4.2, Process Hacker 2.30, Embarcardero Dev-C++ 6.3, Detect It Easy 3.08, Ghidra 10.4 and MEMZ.
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end


=== Miscellaneous ===
p.makeWikilink = makeWikilink
5 images in the Pictures directory.


== MOTD ==
local function makeCategoryLink(cat, sort)
May 10th, 2022:
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end


<pre>
p.makeCategoryLink = makeCategoryLink
Welcome to VM0b0bt, the oldest Anarchy VM on CollabVM
Rules:


ZOMG NONE!!!
local function makeUrlLink(url, display)
Rules 1, 2, 3, and 4 still apply
return mw.ustring.format('[%s %s]', url, display)
NO COLLABNET!!!!!111
end


Good luck and may god have mercy on your souls
p.makeUrlLink = makeUrlLink
</pre>


March 2023:
local function makeToolbar(...)
<pre>
local ret = {}
Welcome to VM0b0bt, the oldest Anarchy VM on CollabVM
local lim = select('#', ...)
Rules:
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' &#124; ') .. ')</span>'
end


ZOMG NONE!!!
p.makeToolbar = makeToolbar
Except these
You people ruin everything


Good luck and may god have mercy on your souls
----------------------------------------------------------------------------
</pre>
-- Argument processing
----------------------------------------------------------------------------


== Gallery ==
local function makeInvokeFunc(funcName)
=== Revisions ===
return function (frame)
Note: The dates in the description don't reflect the dates on the actual VM, they are based on the modified dates of the actual files themselves.
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end


<gallery>
----------------------------------------------------------------------------
File:Vm0b0t.png | Revision 0 (May 10th 2022, Windows Vista)
-- Entry points
File:Vm0b0t_new.png | Revision 1 (May 24th, Windows 7 Angry Birds)
----------------------------------------------------------------------------
File:Vm0b0t_new2.png | Revision 2 (May 26th)
File:Vm0b0t_new3.png | Revision 3 (June 12th)
File:Vm0b0t_new4.png | Revision 4 (August 5th)
File:Vm0b0t_new5.png | Revision 5 (August 9th)
File:Vm0b0t_new6.png | Revision 6 (August 9th, Windows 7 FaceBooK)
File:Vm0b0t_new7.png | Revision 7 (August 15th)
File:Vm0b0t_new8.png | Revision 8 (October 20th, Windows 7 Pony Edition)
File:Vm0b0t_new9.png | Revision 9 (November 22nd, Windows 7 Christmas Edition)
File:Vm0b0t_new10.png | Revision 10 (November 23rd)
File:Vm0b0t_new11.png | Revision 11 (Cut, November 23rd, Windows 7 Mac Extreme)
File:Vm0b0t_new11.1.png | Revision 11.1 (November 23rd, Windows 10 Christmas Magic)
File:Vm0b0t_new12.png | Revision 12 (November 26th)
File:Vm0b0t_new13.png | Revision 13 (December 8th)
File:Vm0b0t_new14.png | Revision 14 (December 26th, Windows 8.1 Google Chromium)
File:Vm0b0t_new15.png | Revision 15 (December 27th)
File:Vm0b0t_new16.png | Revision 16 (December 28th)
File:Vm0b0t_new17.png | Revision 17 (January 1st 2023)
File:Vm0b0t_new18.png | Revision 18 (January 15th)
File:Vm0b0t_new19.png | Revision 19 (January 22nd)
File:Vm0b0t_new20.png | Revision 20 (January 28th)
File:Vm0b0t_new21.png | Revision 21 (February 5th, Windows 2007 Build 6021)
File:Vm0b0t_new22.png | Revision 22 (February 7th)
File:Vm0b0t_new23.png | Revision 23 (February 14th, Windows 9 Pro)
File:Vm0b0t_new24.png | Revision 24 (February 15th)
File:VM0b0t_new25.png | Revision 25 (February 27th)
File:VM0b0t_new26.png | Revision 26 (March 1st)
File:VM0b0t_new27.png | Revision 27 (March 3rd)
File:Vm0b0t_new28.png | Revision 28 (March 5th)
File:Vm0b0t_new29.png | Revision 29 (March 13th, Windows 10 Steampunk)
File:Vm0b0t_new30.png | Revision 30 (March 14th)
File:Vm0b0t_new31.png | Revision 31 (April 26th)
File:Vm0b0t_new32.png | Revision 32 (April 27th)
File:Vm0b0t_new33.png | Revision 33 (May 7th, Windows 10 Longhorn-C)
File:Vm0b0t_new34.png | Revision 34
File:Vm0b0t_new35.png | Revision 35 (May 19th, Windows 10 Dragonball Super)
File:Vm0b0t_new36.png | Revision 36 (July 11th, Windows 8.1 Black Alien Edition)
File:Vm0b0t_new36.png | Revision 37
File:Vm0b0t_new37.png | Revision 38 (November 10th, Windows 7 xDark v5.2 RG Deluxe)
</gallery>


=== Wallpapers ===
function p.nonexistent(frame)
<gallery>
if mw.title.getCurrentTitle().subpageText == 'testcases' then
File:Vm0b0tw.jpg | The VM 0b0t Wallpaper
return frame:expandTemplate{title = 'module test cases notice'}
File:Vm0b0tw2.png | The New VM 0b0t Wallpaper
else
File:Vm0b0t_cw.png | The VM 0b0t Christmas wallpaper
return p.main(frame)
File:Vm0b0t_cw2.png | The New VM 0b0t Christmas wallpaper
end
File:VM0b0t_nyw.png | The VM 0b0t New Years wallpaper
end
File:VM0b0t_nyw2.png | The New VM 0b0t New Years wallpaper
File:0b0tislamicstate.png | Halal VM 0b0t Wallpaper
File:0b0tccp.png | Chinese government approved VM 0b0t Wallpaper
File:Vm0b0t_1984.png | Orwellian VM 0b0t Wallpaper
File:0b0tkillme.png | Dragon Ball VM 0b0t Wallpaper
File:Vm0b0t_SkibidiWallpaper.png | Skibidi Toilet VM 0b0t Wallpaper
</gallery>


=== Former Incarnations ===
p.main = makeInvokeFunc('_main')
<gallery>
File:VM0_14-11-2021.png | A screenshot of the pre-Anarchy macOS Mojave VM
</gallery>


[[Category:Main_VMs]]
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p._getModuleWikitext(args, env))
-- :wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end

----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------

function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
-- env.printTitle - the print version of the template, located at the /Print subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}

-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})

function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end

function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end

function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.printTitle()
--[[
-- Title object for the /Print subpage.
-- Messages:
-- 'print-subpage' --> 'Print'
--]]
return env.templateTitle:subPageTitle(message('print-subpage'))
end

function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end

function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end

function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end

function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end

return env
end

----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------

p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')

function p._getModuleWikitext(args, env)
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.contentModel ~= 'Scribunto' then return end
pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
local moduleWikitext = package.loaded["Module:Module wikitext"]
if moduleWikitext then
return moduleWikitext.main()
end
end

function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.contentModel == "Scribunto" then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))

-- 'documentation-clear'
return '<div class="' .. message('clear') .. '"></div>'
.. require('Module:Message box').main('ombox', omargs)
end

function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
return require('Module:Protection banner')._main{
message('protection-reason-edit'), small = true
}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
return require('Module:Protection banner')._main{
action = 'move', small = true
}
else
return nil
end
end

----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------

p.startBox = makeInvokeFunc('_startBox')

function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end

function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end

local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 6 then -- File namespace
preload = message('file-docpage-preload')
elseif subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end

function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '&#91;') -- Replace square brackets with HTML entities.
s = s:gsub('%]', '&#93;')
return s
end

local ret
local docTitle = data.docTitle
local title = data.title
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink)
end
return ret
end

function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end

function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end

----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------

p.content = makeInvokeFunc('_content')

function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end

p.contentTitle = makeInvokeFunc('_contentTitle')

function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end

----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------

p.endBox = makeInvokeFunc('_endBox')

function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end

-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
if printBlurb then
text = text .. '<br />' .. printBlurb
end
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()

return '\n' .. tostring(box)
end

function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end

function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end

function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end

function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end

function p.makePrintBlurb(args, env)
--[=[
-- Generates the blurb displayed when there is a print version of the template available.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'print-link-display' --> '/Print'
-- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]'
-- .. ' of this template exists at $1.'
-- .. ' If you make a change to this template, please update the print version as well.'
-- 'display-print-category' --> true
-- 'print-category' --> 'Templates with print versions'
--]=]
local printTitle = env.printTitle
if not printTitle then
return nil
end
local ret
if printTitle.exists then
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display'))
ret = message('print-blurb', {printLink})
local displayPrintCategory = message('display-print-category', nil, 'boolean')
if displayPrintCategory then
ret = ret .. makeCategoryLink(message('print-category'))
end
end
return ret
end

----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------

function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end

return p

Revision as of 07:21, 10 November 2023

{{{title}}}
CollabVM virtual machine
Screenshot
Introduced10 May 2022
OSWindows 7
Architecturex64
Node IDvm0b0t
Previous incarnationsWindows 8.1
Windows 10
Windows 10
Windows 7
Windows Vista
Windows 8.1
Windows 10
Windows 8
Windows 7
Windows Vista
Windows 2000
macOS Mojave
Previous VMEventVM
Next VMVM1

VM 0b0t is the first VM and the oldest Anarchy VM in CollabVM (formerly the Mac OS VM and the Windows 2000 (Whitelisted) VM), the proud home of pure unadulterated Anarchy (formerly SWF projector shell trojans), unpatrolled, ungoverned and unregulated, free of judgment, the absolute worst of CollabVM culture, a mockery to all that is fair and good, the bad future of CollabVM, a malware paradise for forkies to reign freely and eat away at fine culture, disrespecting it and destroying its integrity in the process, a place where authority and prestige is meaningless, a place where human etiquette and societal norms are meaningless, a place where power and justice is meaningless, a place where moderation is completely nonexistent, a place where you can detach yourself from reality and take in a whole new dystopia where you will never thrive, a place where nothing ever changes and no one ever learns... where horsefucking, and more recently, taking orders as a waiter holding numerous positions at various well-established restaurants part of the Papa Louie franchise, and even more recently, working as an Arstotzka border patrol agent stamping "Denied" on everyone's papers, and most possibly the most recent, running GandCrab and other ransomware through an autotyped bitsadmin Run command is the VM's, the GandCrab bot's, and the admin's favorite pastime. The name is a reference to the oldest Anarchy server in Minecraft, 2b2t.org.

It runs Windows 8.1 Black Alien Edition (a Windows 10 bootleg you can get from Crustywindows) with a few custom programs added, which is running on a 100GB hard drive with 4 gigabytes of RAM. The idea for this VM came from CHOCOLATEMAN, which emulates the 2016/2017 CollabVM experience, where there were less restrictions and more chaotic. Due to the nature of the VM, the various shortcuts on the desktop have weird and hilarious titles.

The VM has the wallpaper set by default as a fan picture of Mr Beast. There are several custom programs and games, and other things on the VM (ie the various browsers' themes, extensions and bookmarks, custom pictures and more), which is contained in a list you can view here with this link.

The premise of the VM is that nearly none of the CollabVM rules (except the first 4 rules, due to an obligation to federal law and our server host, and there are some new rules in place to mitigate excessive viewing of such content as child pornography and gore) are enforced, effectively making it an Anarchy VM, as anyone can do whatever they please on the VM without restriction.

Although the internet is nearly unrestricted on VM 0b0t, there is a heavily stripped down version of CollabNet in place on the VMs, meaning anyone can visit almost any website they please (except a few select areas, see here). This allows for a lot more freedom and flexibility compared to the regular VMs, which are restricted with AD system policies, and have CollabNet in place to prevent you from using certain parts of the system for abuse, and accessing inappropriate/malicious websites.

However, since there are very little internet restrictions in place, anyone can open up just about anything, which may include NSFW content (pornography and others), which is why the VM thumbnail has a blur on it by default. The CollabVM administration team will still actively enforce some of the CollabVM and VM rules on the VM however.

This also marks the return of Debianguy in 2 years, and seandc02 also came back to the site after like... a year or three? HOLY FUCK FLUFFY'S BACK He got b& FLUFFY HAS RETURNED YET AGAIN!!! 2017 COLLABVM WILL NEVER DIE!!! banned again :)

Prior Incarnations

Operating System Version Time Period Revision #
Windows 7 xDark v5.2 RG Deluxe 2023-11-10 - now 38
Windows 8.1 Black Alien Edition 2023-07-11 - 2023-11-10 36-37
Windows 10 Dragonball Super Edition 2023-05-19 - 2023-07-11 35
Windows 10 Longhorn-C 2023-05-07 - 2023-05-19 33
Windows 10 Steampunk Edition 2023-03-13 - 2023-05-07 29
Windows 8.1 Windows 9 Pro (DiLShad) 2023-02-14 - 2023-03-13 23
Windows Vista Windows 2007 - Build 6021 2023-02-05 - 2023-02-14 21
Windows 8.1 Windows 8.1 Google Chromium Edition 2022-12-26 - 2023-02-05 14
Windows 10 Windows 10 Christmas Magic Pro 2022-11-23 - 2022-12-26 11.1
Windows 7 Windows 7 Mac Extreme 2015 2022-11-23 - 2022-11-23 11
Windows 7 Windows 7 Christmas Edition 2015 2022-11-22 - 2022-11-23 9
Windows 7 Windows 7 Pony Edition 2015 2022-10-20 - 2022-11-22 8
Windows 7 Windows 7 FaceBooK Edition 2022-08-09 - 2022-10-20 6
Windows 7 Windows 7 Angry Birds Edition 2022-05-24 - 2022-08-09 1
Windows Vista SP2 - Extended Kernel 2022-05-10 - 2022-05-24 0

Installed Programs & Games on VM 0b0t

There are numerous programs and games installed on the VM along with some pretty interesting things hidden deep in the VM. This list is not guaranteed to be 100% accurate but it certainly is not complete either. This particular list includes (but is not limited to, sans the WPI default programs):

The programs on the VM are Mozilla Firefox 115.4.0esr, Google Chrome 109.0.5414.120, Notepad++ 8.5.8, AIMP 5.11.2436, VLC Media Player 3.0.20, HxD 2.5, Everything 1.4.1.1024, Driver Robot 2.5.4.2, Process Hacker 2.30, Embarcardero Dev-C++ 6.3, Detect It Easy 3.08, Ghidra 10.4 and MEMZ.

Miscellaneous

5 images in the Pictures directory.

MOTD

May 10th, 2022:

Welcome to VM0b0bt, the oldest Anarchy VM on CollabVM
Rules:

    ZOMG NONE!!!
    Rules 1, 2, 3, and 4 still apply
    NO COLLABNET!!!!!111

Good luck and may god have mercy on your souls

March 2023:

Welcome to VM0b0bt, the oldest Anarchy VM on CollabVM
Rules:

    ZOMG NONE!!!
    Except these
    You people ruin everything

Good luck and may god have mercy on your souls

Gallery

Revisions

Note: The dates in the description don't reflect the dates on the actual VM, they are based on the modified dates of the actual files themselves.

Wallpapers

Former Incarnations