# PBot Documentation

## Table of Contents

<!-- md-toc-begin -->
* [QuickStart](QuickStart.md#quickstart)
  * [Installation](QuickStart.md#installation)
    * [Installing Perl](QuickStart.md#installing-perl)
    * [Installing CPAN modules](QuickStart.md#installing-cpan-modules)
    * [Installing PBot](QuickStart.md#installing-pbot)
  * [Initial Setup](QuickStart.md#initial-setup)
    * [Clone data-directory](QuickStart.md#clone-data-directory)
    * [Configuration](QuickStart.md#configuration)
  * [Starting PBot](QuickStart.md#starting-pbot)
    * [Usage](QuickStart.md#usage)
    * [First-time start-up](QuickStart.md#first-time-start-up)
    * [Regular start-up](QuickStart.md#regular-start-up)
  * [Additional configuration](QuickStart.md#additional-configuration)
    * [Creating your bot owner admin account](QuickStart.md#creating-your-bot-owner-admin-account)
    * [Adding other users and admins](QuickStart.md#adding-other-users-and-admins)
    * [Adding channels](QuickStart.md#adding-channels)
  * [Further Reading](QuickStart.md#further-reading)
    * [Commands](QuickStart.md#commands)
    * [Factoids](QuickStart.md#factoids)
    * [Plugins](QuickStart.md#plugins)
    * [Modules](QuickStart.md#modules)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Commands](Commands.md#commands)
  * [Command interpreter](Commands.md#command-interpreter)
    * [Piping](Commands.md#piping)
    * [Substitution](Commands.md#substitution)
    * [Chaining](Commands.md#chaining)
    * [Variables](Commands.md#variables)
    * [Inline invocation](Commands.md#inline-invocation)
  * [Types of commands](Commands.md#types-of-commands)
    * [Built-in commands](Commands.md#built-in-commands)
    * [Factoids](Commands.md#factoids)
  * [Commands documented here](Commands.md#commands-documented-here)
    * [version](Commands.md#version)
    * [help](Commands.md#help)
    * [uptime](Commands.md#uptime)
    * [my](Commands.md#my)
    * [date](Commands.md#date)
    * [weather](Commands.md#weather)
  * [Commands documented elsewhere](Commands.md#commands-documented-elsewhere)
    * [Administrative commands](Commands.md#administrative-commands)
    * [Factoid commands](Commands.md#factoid-commands)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Administrative](Admin.md#administrative)
  * [Logging in and out](Admin.md#logging-in-and-out)
    * [login](Admin.md#login)
    * [logout](Admin.md#logout)
  * [User management commands](Admin.md#user-management-commands)
    * [useradd](Admin.md#useradd)
    * [userdel](Admin.md#userdel)
    * [userset](Admin.md#userset)
    * [userunset](Admin.md#userunset)
    * [Listing users](Admin.md#listing-users)
  * [Channel management commands](Admin.md#channel-management-commands)
    * [join](Admin.md#join)
    * [part](Admin.md#part)
    * [chanadd](Admin.md#chanadd)
    * [chanrem](Admin.md#chanrem)
    * [chanset](Admin.md#chanset)
    * [chanunset](Admin.md#chanunset)
    * [chanlist](Admin.md#chanlist)
    * [ignore](Admin.md#ignore)
    * [unignore](Admin.md#unignore)
    * [whitelist](Admin.md#whitelist)
    * [blacklist](Admin.md#blacklist)
    * [op](Admin.md#op)
    * [deop](Admin.md#deop)
    * [voice](Admin.md#voice)
    * [devoice](Admin.md#devoice)
    * [mode](Admin.md#mode)
    * [ban/mute](Admin.md#banmute)
    * [unban/unmute](Admin.md#unbanunmute)
    * [invite](Admin.md#invite)
    * [kick](Admin.md#kick)
  * [Module management commands](Admin.md#module-management-commands)
    * [load](Admin.md#load)
    * [unload](Admin.md#unload)
    * [Listing modules](Admin.md#listing-modules)
  * [Plugin management commands](Admin.md#plugin-management-commands)
    * [plug](Admin.md#plug)
    * [unplug](Admin.md#unplug)
    * [replug](Admin.md#replug)
    * [pluglist](Admin.md#pluglist)
  * [Command metadata commands](Admin.md#command-metadata-commands)
    * [cmdset](Admin.md#cmdset)
    * [cmdunset](Admin.md#cmdunset)
    * [Command metadata list](Admin.md#command-metadata-list)
  * [Miscellaneous commands](Admin.md#miscellaneous-commands)
    * [export](Admin.md#export)
    * [refresh](Admin.md#refresh)
    * [reload](Admin.md#reload)
    * [sl](Admin.md#sl)
    * [die](Admin.md#die)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Factoids](Factoids.md#factoids)
  * [About](Factoids.md#about)
  * [Special commands](Factoids.md#special-commands)
    * [/say](Factoids.md#say)
    * [/me](Factoids.md#me)
    * [/call](Factoids.md#call)
    * [/msg](Factoids.md#msg)
    * [/code](Factoids.md#code)
  * [Special variables](Factoids.md#special-variables-1)
    * [$args](Factoids.md#args)
    * [$arg[n]](Factoids.md#argn)
    * [$arg[n:m]](Factoids.md#argnm)
    * [$arglen](Factoids.md#arglen)
    * [$channel](Factoids.md#channel)
    * [$nick](Factoids.md#nick)
    * [$randomnick](Factoids.md#randomnick)
    * [$0](Factoids.md#0)
  * [List variables](Factoids.md#list-variables)
    * [Expansion modifiers](Factoids.md#expansion-modifiers)
  * [action_with_args](Factoids.md#action_with_args)
  * [add_nick](Factoids.md#add_nick)
  * [Channel namespaces](Factoids.md#channel-namespaces)
  * [Adding/removing factoids](Factoids.md#addingremoving-factoids)
    * [factadd](Factoids.md#factadd)
    * [factrem](Factoids.md#factrem)
    * [forget](Factoids.md#forget)
    * [factalias](Factoids.md#factalias)
  * [Displaying factoids](Factoids.md#displaying-factoids)
    * [fact](Factoids.md#fact)
    * [factshow](Factoids.md#factshow)
  * [Editing factoids](Factoids.md#editing-factoids)
    * [factchange](Factoids.md#factchange)
    * [factmove](Factoids.md#factmove)
    * [factundo](Factoids.md#factundo)
    * [factredo](Factoids.md#factredo)
  * [Factoid Metadata](Factoids.md#factoid-metadata)
    * [factset](Factoids.md#factset)
    * [factunset](Factoids.md#factunset)
    * [Factoid Metadata List](Factoids.md#factoid-metadata-list)
  * [Information about factoids](Factoids.md#information-about-factoids)
    * [factfind](Factoids.md#factfind)
    * [factinfo](Factoids.md#factinfo)
    * [factlog](Factoids.md#factlog)
    * [factset](Factoids.md#factset-1)
    * [count](Factoids.md#count)
    * [histogram](Factoids.md#histogram)
    * [top20](Factoids.md#top20)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Registry](Registry.md#registry)
  * [About](Registry.md#about)
    * [Types of values](Registry.md#types-of-values)
    * [Creating array values](Registry.md#creating-array-values)
    * [Overriding Registry values per-channel](Registry.md#overriding-registry-values-per-channel)
  * [Overriding Registry values via command-line](Registry.md#overriding-registry-values-via-command-line)
  * [Registry commands](Registry.md#registry-commands)
    * [regset](Registry.md#regset)
    * [regunset](Registry.md#regunset)
    * [regchange](Registry.md#regchange)
    * [regshow](Registry.md#regshow)
    * [regfind](Registry.md#regfind)
    * [regsetmeta](Registry.md#regsetmeta)
    * [regunsetmeta](Registry.md#regunsetmeta)
  * [Editing Registry file](Registry.md#editing-registry-file)
  * [Metadata list](Registry.md#metadata-list)
  * [List of known Registry items](Registry.md#list-of-known-registry-items)
    * [Channel-specific Registry items](Registry.md#channel-specific-registry-items)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Modules](Modules.md#modules)
  * [About](Modules.md#about)
  * [Creating modules](Modules.md#creating-modules)
  * [Documentation for built-in modules](Modules.md#documentation-for-built-in-modules)
    * [cc](Modules.md#cc)
    * [english](Modules.md#english)
    * [expand](Modules.md#expand)
    * [prec](Modules.md#prec)
    * [paren](Modules.md#paren)
    * [faq](Modules.md#faq)
    * [cfact](Modules.md#cfact)
    * [cjeopardy](Modules.md#cjeopardy)
    * [c99std](Modules.md#c99std)
    * [c11std](Modules.md#c11std)
    * [man](Modules.md#man)
    * [google](Modules.md#google)
    * [define](Modules.md#define)
    * [dict](Modules.md#dict)
    * [foldoc](Modules.md#foldoc)
    * [vera](Modules.md#vera)
    * [udict](Modules.md#udict)
    * [wdict](Modules.md#wdict)
    * [acronym](Modules.md#acronym)
    * [math](Modules.md#math)
    * [calc](Modules.md#calc)
    * [qalc](Modules.md#qalc)
    * [compliment](Modules.md#compliment)
    * [insult](Modules.md#insult)
    * [excuse](Modules.md#excuse)
    * [horoscope](Modules.md#horoscope)
    * [quote](Modules.md#quote)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Quotegrabs](Quotegrabs.md#quotegrabs)
  * [About](Quotegrabs.md#about)
  * [Commands](Quotegrabs.md#commands)
    * [grab](Quotegrabs.md#grab)
    * [getq](Quotegrabs.md#getq)
    * [rq](Quotegrabs.md#rq)
    * [delq](Quotegrabs.md#delq)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Anti-Abuse](AntiAbuse.md#anti-abuse)
  * [Flood control](AntiAbuse.md#flood-control)
    * [Message flood](AntiAbuse.md#message-flood)
    * [Join flood](AntiAbuse.md#join-flood)
    * [Enter key abuse](AntiAbuse.md#enter-key-abuse)
    * [Nick flood](AntiAbuse.md#nick-flood)
  * [Anti-away/Nick-control](AntiAbuse.md#anti-awaynick-control)
  * [Anti-auto-rejoin control](AntiAbuse.md#anti-auto-rejoin-control)
  * [Opping/Deopping](AntiAbuse.md#oppingdeopping)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Virtual Machine](VirtualMachine.md#virtual-machine)
  * [About](VirtualMachine.md#about)
  * [Creating a new virtual machine](VirtualMachine.md#creating-a-new-virtual-machine)
  * [Configuring the virtual machine](VirtualMachine.md#configuring-the-virtual-machine)
  * [Installing Linux in the virtual machine](VirtualMachine.md#installing-linux-in-the-virtual-machine)
  * [Configuring Linux for PBot Communication](VirtualMachine.md#configuring-linux-for-pbot-communication)
  * [Hardening the PBot virtual machine](VirtualMachine.md#hardening-the-pbot-virtual-machine)
<!-- md-toc-end -->
<!-- md-toc-begin -->
* [Frequently Asked Questions](FAQ.md#frequently-asked-questions)
  * [How do I change my password?](FAQ.md#how-do-i-change-my-password)
  * [How do I make PBot remember my `date` timezone?](FAQ.md#how-do-i-make-pbot-remember-my-date-timezone)
  * [How do I make PBot remember my `weather` location?](FAQ.md#how-do-i-make-pbot-remember-my-weather-location)
  * [How do I change the bot trigger?](FAQ.md#how-do-i-change-the-bot-trigger)
<!-- md-toc-end -->