<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.eggheads.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Geo</id>
	<title>EggWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eggheads.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Geo"/>
	<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php/Special:Contributions/Geo"/>
	<updated>2026-05-09T12:59:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=199</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=199"/>
		<updated>2026-01-02T14:23:28Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Setting Up Eggdrop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/tutorials/setup.html Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
[[Docker| Common Docker issues]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing Tcl scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Writing a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl script that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl script that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
[[SelfJoin| Writing a Tcl script that performs an action when the bot joins a channel]]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=198</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=198"/>
		<updated>2025-09-06T19:59:26Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* 'account-notify' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
set account-notify 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'extended-join' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the extended-join feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
set extended-join 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'account-tag' setting is added with the default value 0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-tag feature via CAP, set this to 1&lt;br /&gt;
# This can be enabled if necessary for imperfect account tracking if you don't&lt;br /&gt;
# have the WHOX (use_354), account-notify and extended-join features available&lt;br /&gt;
# see doc/ACCOUNTS for details&lt;br /&gt;
#set account-tag 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-logs setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This module gives Eggdrop the ability to run python scripts. if loaded,&lt;br /&gt;
# Python scripts can be loaded at the end of the config file using the pysouce&lt;br /&gt;
# command to tell Eggdrop where the file is loaded. The module requires Python&lt;br /&gt;
# version 3.8 or higher to run. To load the python module, uncomment it below.&lt;br /&gt;
#loadmodule python&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### AUTOSCRIPTS #####&lt;br /&gt;
&lt;br /&gt;
# Load this script to enable the autoscripts functionality for Eggdrop.&lt;br /&gt;
# Autoscripts are scripts that can be downloaded, installed and configured via&lt;br /&gt;
# the partyline. For more information, read doc/AUTOSCRIPTS&lt;br /&gt;
source scripts/autoscripts.tcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* Added SCRAM-SHA-256 and SCRAM-SHA-512 as SASL authentication methods for sasl-mechanism&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#   3 = SCRAM-SHA-256&lt;br /&gt;
#&lt;br /&gt;
#   4 = SCRAM-SHA-512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed quotepong.tcl script, as no networks use it anymore&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=197</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=197"/>
		<updated>2025-09-06T19:58:40Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Config changes made in 1.9.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* 'account-notify' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
set account-notify 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'extended-join' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the extended-join feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
set extended-join 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'account-tag' setting is added with the default value 0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-tag feature via CAP, set this to 1&lt;br /&gt;
# This can be enabled if necessary for imperfect account tracking if you don't&lt;br /&gt;
# have the WHOX (use_354), account-notify and extended-join features available&lt;br /&gt;
# see doc/ACCOUNTS for details&lt;br /&gt;
#set account-tag 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-logs setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This module gives Eggdrop the ability to run python scripts. if loaded,&lt;br /&gt;
# Python scripts can be loaded at the end of the config file using the pysouce&lt;br /&gt;
# command to tell Eggdrop where the file is loaded. The module requires Python&lt;br /&gt;
# version 3.8 or higher to run. To load the python module, uncomment it below.&lt;br /&gt;
#loadmodule python&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### AUTOSCRIPTS #####&lt;br /&gt;
&lt;br /&gt;
# Load this script to enable the autoscripts functionality for Eggdrop.&lt;br /&gt;
# Autoscripts are scripts that can be downloaded, installed and configured via&lt;br /&gt;
# the partyline. For more information, read doc/AUTOSCRIPTS&lt;br /&gt;
source scripts/autoscripts.tcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* Added SCRAM-SHA-256 and SCRAM-SHA-512 as SASL authentication methods for sasl-mechanism&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#   3 = SCRAM-SHA-256&lt;br /&gt;
#&lt;br /&gt;
#   4 = SCRAM-SHA-512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=196</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=196"/>
		<updated>2025-09-06T19:58:09Z</updated>

		<summary type="html">&lt;p&gt;Geo: Added 1.10.1 settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   Libera&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* 'account-notify' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
set account-notify 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'extended-join' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the extended-join feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
set extended-join 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'account-tag' setting is added with the default value 0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-tag feature via CAP, set this to 1&lt;br /&gt;
# This can be enabled if necessary for imperfect account tracking if you don't&lt;br /&gt;
# have the WHOX (use_354), account-notify and extended-join features available&lt;br /&gt;
# see doc/ACCOUNTS for details&lt;br /&gt;
#set account-tag 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-logs setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This module gives Eggdrop the ability to run python scripts. if loaded,&lt;br /&gt;
# Python scripts can be loaded at the end of the config file using the pysouce&lt;br /&gt;
# command to tell Eggdrop where the file is loaded. The module requires Python&lt;br /&gt;
# version 3.8 or higher to run. To load the python module, uncomment it below.&lt;br /&gt;
#loadmodule python&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### AUTOSCRIPTS #####&lt;br /&gt;
&lt;br /&gt;
# Load this script to enable the autoscripts functionality for Eggdrop.&lt;br /&gt;
# Autoscripts are scripts that can be downloaded, installed and configured via&lt;br /&gt;
# the partyline. For more information, read doc/AUTOSCRIPTS&lt;br /&gt;
source scripts/autoscripts.tcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* Added SCRAM-SHA-256 and SCRAM-SHA-512 as SASL authentication methods for sasl-mechanism&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#   3 = SCRAM-SHA-256&lt;br /&gt;
#&lt;br /&gt;
#   4 = SCRAM-SHA-512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=SelfJoin&amp;diff=195</id>
		<title>SelfJoin</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=SelfJoin&amp;diff=195"/>
		<updated>2025-07-28T12:42:13Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A common question from users is, &amp;quot;Why isn't my Eggdrop triggering a JOIN bind when it joins a channel?&amp;quot; The answer is it doesn't know it joined the channel- the IRCD server only sends the 'JOIN' message to clients that are already on that channel, not to the client that joined. &lt;br /&gt;
&lt;br /&gt;
Another common question is &amp;quot;Why doesn't my Eggdrop do X as soon as it joins a channel?&amp;quot; The answer here is that there is a small gap between when the Eggdrop joins a channel and when the IRCD sends information about the channel to the Eggdrop, like the user list, modes, etc. &lt;br /&gt;
&lt;br /&gt;
To deal with these scenarios, Eggdrop has the EVNT bind type &amp;quot;got-chanlist&amp;quot;, which will trigger once all the channel information is received from the server. At this point, Eggdrop has all the information it needs to properly administer the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Bind to the 'got-chanlist' event&lt;br /&gt;
bind evnt * got-chanlist do_action&lt;br /&gt;
&lt;br /&gt;
# Say hello once we have received a channel list&lt;br /&gt;
proc do_action {type chan} {&lt;br /&gt;
    putserv &amp;quot;PRIVMSG $chan :Channel list received. Hi!&amp;quot;&lt;br /&gt;
    # &amp;lt;Do more stuff here&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=194</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=194"/>
		<updated>2025-07-27T15:11:17Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Tcl Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
[[Docker| Common Docker issues]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing Tcl scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Writing a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl script that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl script that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
[[SelfJoin| Writing a Tcl script that performs an action when the bot joins a channel]]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=193</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=193"/>
		<updated>2025-07-27T15:10:33Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Tcl Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
[[Docker| Common Docker issues]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
[[SelfJoin| Write a script that performs an action when the bot joins a channel]]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=SelfJoin&amp;diff=192</id>
		<title>SelfJoin</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=SelfJoin&amp;diff=192"/>
		<updated>2025-07-27T15:10:02Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;A common question from users is, &amp;quot;Why isn't my Eggdrop triggering a JOIN bind when it joins a channel?&amp;quot; The answer is it doesn't know it joined the channel- the IRCD server only sends the 'JOIN' message to clients that are already on that channel, not to the client that joined.   Another common question is &amp;quot;Why doesn't my Eggdrop do X as soon as it joins a channel?&amp;quot; The answer here is that there is a small gap between when the Eggdrop joins a channel and when the IRCD se...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A common question from users is, &amp;quot;Why isn't my Eggdrop triggering a JOIN bind when it joins a channel?&amp;quot; The answer is it doesn't know it joined the channel- the IRCD server only sends the 'JOIN' message to clients that are already on that channel, not to the client that joined. &lt;br /&gt;
&lt;br /&gt;
Another common question is &amp;quot;Why doesn't my Eggdrop do X as soon as it joins a channel?&amp;quot; The answer here is that there is a small gap between when the Eggdrop joins a channel and when the IRCD sends information about the channel to the Eggdrop, like the user list, modes, etc. &lt;br /&gt;
&lt;br /&gt;
To deal with these scenarios, Eggdrop has the EVNT bind type &amp;quot;got-chanmode&amp;quot;, which will trigger once all the channel information is received from the server. At this point, Eggdrop has all the information it needs to properly administer the channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Bind to the 'got-chanlist' event&lt;br /&gt;
bind evnt * got-chanlist do_action&lt;br /&gt;
&lt;br /&gt;
# Say hello once we have received a channel list&lt;br /&gt;
proc do_action {type chan} {&lt;br /&gt;
    putserv &amp;quot;PRIVMSG $chan :Channel list received. Hi!&amp;quot;&lt;br /&gt;
    # &amp;lt;Do more stuff here&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=191</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=191"/>
		<updated>2025-07-27T14:36:04Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Tcl Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
[[Docker| Common Docker issues]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
[[SelfJoin| Write a script that performs an action when the bot joins a channel]]&lt;br /&gt;
&lt;br /&gt;
[[DoOnOp]]| Write a script that performs an action when the bot joins a that requires +o]]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Python&amp;diff=190</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Python&amp;diff=190"/>
		<updated>2024-10-14T02:42:03Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Eggdrop's Python module duplicates bindings after a rehash ===&lt;br /&gt;
Eggdrop currently has trouble tracking python binds through a rehash. This results in multiple binds being set for the same trigger in some cases. Example code on how to get around this issue is below- basically, have the python script track its binds and, upon load, check that variable. If there are binds in it- remove them!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Check for previously-existing binds when the script is loaded and delete them if they exist&lt;br /&gt;
if 'GREET_BINDS' in globals():&lt;br /&gt;
  for greetbind in GREET_BINDS:&lt;br /&gt;
    greetbind.unbind()&lt;br /&gt;
  del GREET_BINDS&lt;br /&gt;
&lt;br /&gt;
# Continuing from the above section of code, the GREET_BINDS list is created to track the binds&lt;br /&gt;
# created by this script, and then the binds are added to it.&lt;br /&gt;
GREET_BINDS = list()&lt;br /&gt;
# Append the bind to the list you just made&lt;br /&gt;
GREET_BINDS.append(bind(&amp;quot;join&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;*&amp;quot;, joinGreetUser))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The python print() function doesn't do anything ==&lt;br /&gt;
&lt;br /&gt;
The print() function in python only prints to stdout, it won't write to IRC or the partyline (unless you started Eggdrop in terminal mode with the -t flag). In order to print something to a channel, you'd need to import the putserv or putmsg Tcl command, or the putlog command to write to the partyline.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from eggdrop.tcl import putmsg, putlog&lt;br /&gt;
&lt;br /&gt;
putlog(&amp;quot;This sends to the partyline!&amp;quot;)&lt;br /&gt;
putmsg(chan, &amp;quot;This sends to a channel!&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Python&amp;diff=189</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Python&amp;diff=189"/>
		<updated>2024-10-06T14:39:52Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;== The python print() function doesn't do anything ==  The print() function in python only prints to stdout, it won't write to IRC or the partyline (unless you started Eggdrop in terminal mode with the -t flag). In order to print something to a channel, you'd need to import the putserv or putmsg Tcl command, or the putlog command to write to the partyline. &amp;lt;pre&amp;gt; from eggdrop.tcl import putmsg, putlog  putlog(&amp;quot;This sends to the partyline!&amp;quot;) putmsg(chan, &amp;quot;This sends to a c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The python print() function doesn't do anything ==&lt;br /&gt;
&lt;br /&gt;
The print() function in python only prints to stdout, it won't write to IRC or the partyline (unless you started Eggdrop in terminal mode with the -t flag). In order to print something to a channel, you'd need to import the putserv or putmsg Tcl command, or the putlog command to write to the partyline.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from eggdrop.tcl import putmsg, putlog&lt;br /&gt;
&lt;br /&gt;
putlog(&amp;quot;This sends to the partyline!&amp;quot;)&lt;br /&gt;
putmsg(chan, &amp;quot;This sends to a channel!&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=188</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=188"/>
		<updated>2024-10-06T14:35:01Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
[[Docker| Common Docker issues]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
[[Python]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=UTF-8&amp;diff=186</id>
		<title>UTF-8</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=UTF-8&amp;diff=186"/>
		<updated>2024-09-11T17:47:06Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;IMPORTANT!! As of Eggdrop 1.9.4, Eggdrop was able to successfully workaround the default UTF handling issues with Tcl 8.x versions. That means if you're using a recent version, you probably don't need to do these steps! Tcl 9 and above should not have an issue with UTF-8.&lt;br /&gt;
HOWEVER&lt;br /&gt;
Eggdrop's ability to handle UTF does not mean Tcl scripts running on Eggdrop were written to handle UTF. For that reason, if you're using a script that isn't displaying Emoji's properly, check out that section below FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are four common issues users encounter when dealing with UTF-8 encoding issues.&lt;br /&gt;
&lt;br /&gt;
== HTTP scripts output &amp;quot;funny&amp;quot; characters ==&lt;br /&gt;
&lt;br /&gt;
If a script that pulls information from an HTTP source isn't outputting characters properly (letters with accents, etc, are being displayed as other incorrect characters), take a look at https://tcl.tk/man/tcl8.6/TclCmd/http.htm#M61 for an explanation, then try adding set ::http::defaultCharset utf-8 before the http request in the script.&lt;br /&gt;
&lt;br /&gt;
== Emojis don't appear in various other ways ==&lt;br /&gt;
&lt;br /&gt;
Prior to Eggdrop versiom 1.9.4, perhaps the most common problem was people attempting to use Unicode emojis (Thumbs up, skull and crossbones, party hats, etc), and incorrectly thinking their Eggdrop does not support any UTF-8 encoding at all. The inability to use Emojis is a result of an issue with Tcl currently (by default) not being able to support Unicode characters with control codes over 3 bytes, which means Tcl cannot handle control codes higher than U+FFFF (More information on this can be found at https://wiki.tcl-lang.org/page/Unicode+and+UTF-8). The remedy for this issue requires you to download a current version of the Tcl source from https://www.tcl.tk/software/tcltk/download.html and manually compile it (this cannot be done by intalling Tcl via a package manager such as apt or yum).&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Open the generic/tcl.h file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define TCL_UTF_MAX 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and replace it with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define TCL_UTF_MAX 6&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Follow the instructions included with the download to compile and install Tcl.&lt;br /&gt;
&lt;br /&gt;
'''Step 3'''&lt;br /&gt;
&lt;br /&gt;
You'll need to recompile Eggdrop, and may need to specify --with-tcllib and --with-tclinc to point to the new location you installed Tcl to. A correct ./configure command may look similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure --with-tclinc=/usr/local/include/tcl.h --with-tcllib=/usr/local/lib/libtcl8.6.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locale issues ==&lt;br /&gt;
&lt;br /&gt;
If you're still having issues with UTF-8, on your host machine, type locale. If it looks similar to this, congrats! you have UTF-8 support and Eggdrop should be able to handle non-Emoji unicode characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
LANGUAGE=&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_PAPER=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NAME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ADDRESS=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TELEPHONE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it does *not* look like that (specifically, the LANG variable does not end in UTF-8, then you can change your locale to one that supports UTF-8, and Eggdrop will pick up on that change. To do this:&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Visit https://help.ubuntu.com/community/Locale (or a similar page for the OS flavor of your choice). In short, you'll want to view the locales available on your system by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
locale -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and find the UTF-8 setting that matches your preferred language. Open the /etc/default/locale file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LANG=&amp;lt;something&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and replace it with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LANG=de_EN.UTF-8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, obviously, whichever language makes sense to use for you.&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Recompile Eggdrop.&lt;br /&gt;
&lt;br /&gt;
If you are still having issues after making these changes, re-read the Emojis section.&lt;br /&gt;
&lt;br /&gt;
== UTF-8 not found on system ==&lt;br /&gt;
&lt;br /&gt;
If the locale trick does not work, or you are on a system that does not have a UTF locale pack (or you are unable to install one), you can try to force UTF-8 by doing the following.&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Open the eggdrop1.9.2/src/tcl.c file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for (around line 650)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (encoding == NULL) {&lt;br /&gt;
  encoding = &amp;quot;iso8859-1&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and insert the following right after it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
encoding = &amp;quot;utf-8&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Recompile Eggdrop.&lt;br /&gt;
&lt;br /&gt;
== How can I check what encoding is set? ==&lt;br /&gt;
* If you have the .tcl command enabled, you can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.tcl encoding system&lt;br /&gt;
&amp;lt;/pre&amp;gt; to check what encoding Tcl is trying to use&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=185</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=185"/>
		<updated>2024-09-09T15:30:58Z</updated>

		<summary type="html">&lt;p&gt;Geo: Add docker to main page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
[[Docker| Common Docker issues]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
[[Http_async| Writing a Tcl that can access http websites asynchronous and gets the title of it]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Docker&amp;diff=184</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Docker&amp;diff=184"/>
		<updated>2024-09-09T15:30:02Z</updated>

		<summary type="html">&lt;p&gt;Geo: Add Tcl error msgs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eggdrop has an official Docker image! While most things work the same, there are a few new errors that pop up, and ways to implement it. A docker-compose.yml example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml⁠&lt;br /&gt;
&lt;br /&gt;
== Loading Tcl Packages ==&lt;br /&gt;
Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcl-lib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container from the command line like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker run -i eggdrop sh -c 'apk add tcl-lib tcl-tls &amp;amp;&amp;amp; exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For a docker-compose file, you can add the following line in the build section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build:&lt;br /&gt;
  context: .&lt;br /&gt;
  dockerfile_inline: |&lt;br /&gt;
    FROM eggdrop:latest&lt;br /&gt;
    RUN apk add tcl-lib tcl-tls  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Commonly Seen Errors ==&lt;br /&gt;
* When using a docker-compose file started from scratch, you may see the error message &amp;lt;code&amp;gt;&amp;quot;END OF FILE ON TERMINAL&amp;quot;&amp;lt;/code&amp;gt; at startup. To fix this, add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stdin_open: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the docker-compose.yml file.&lt;br /&gt;
* In docker images for 1.9.3, 1.9.4, and 1.9.5, even after installing packages like tcl-lib and tcl-tls, Eggdrop still can't use them. This is because the install location for Tcl packages in alpine 3.18 and 3.19 do not match the install location of the version compiled by the Eggdrop image, causing errors similar to &amp;lt;code&amp;gt;can't find package &amp;lt;/code&amp;gt; or similar when running &amp;lt;code&amp;gt;package require tls&amp;lt;/code&amp;gt; or similar. To tell Eggdrop where to look for Tcl packages installed by the apk package manager, pass the environmental flag via docker command line &amp;lt;code&amp;gt;-e TCLLIBPATH=/usr/lib&amp;lt;/code&amp;gt; or via the partyline if the .tcl command is enabled by &amp;lt;code&amp;gt;.tcl set env(TCLLIBPATH) /usr/lib&amp;lt;/code&amp;gt;. If using compose, you can also edit the doker-compose.yml file and add:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
environment:&lt;br /&gt;
  TCLLIB: /usr/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Docker&amp;diff=183</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Docker&amp;diff=183"/>
		<updated>2024-09-09T15:18:50Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;Eggdrop has an official Docker image! While most things work the same, there are a few new errors that pop up, and ways to implement it. A docker-compose.yml example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml⁠  == Loading Tcl Packages == Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcl-lib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intenti...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eggdrop has an official Docker image! While most things work the same, there are a few new errors that pop up, and ways to implement it. A docker-compose.yml example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml⁠&lt;br /&gt;
&lt;br /&gt;
== Loading Tcl Packages ==&lt;br /&gt;
Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcl-lib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container from the command line like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker run -i eggdrop sh -c 'apk add tcl-lib tcl-tls &amp;amp;&amp;amp; exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For a docker-compose file, you can add the following line in the build section:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build:&lt;br /&gt;
  context: .&lt;br /&gt;
  dockerfile_inline: |&lt;br /&gt;
    FROM eggdrop:latest&lt;br /&gt;
    RUN apk add tcl-lib tcl-tls  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Commonly Seen Errors ==&lt;br /&gt;
* When using a docker-compose file started from scratch, you may see the error message &amp;lt;code&amp;gt;&amp;quot;END OF FILE ON TERMINAL&amp;quot;&amp;lt;/code&amp;gt; at startup. To fix this, add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stdin_open: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the docker-compose.yml file.&lt;br /&gt;
* When adding Tcl packages,&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=182</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=182"/>
		<updated>2024-09-08T17:23:08Z</updated>

		<summary type="html">&lt;p&gt;Geo: Add config codeblocks to 1.10.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   Libera&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* 'account-notify' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
set account-notify 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'extended-join' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the extended-join feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
set extended-join 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'account-tag' setting is added with the default value 0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-tag feature via CAP, set this to 1&lt;br /&gt;
# This can be enabled if necessary for imperfect account tracking if you don't&lt;br /&gt;
# have the WHOX (use_354), account-notify and extended-join features available&lt;br /&gt;
# see doc/ACCOUNTS for details&lt;br /&gt;
#set account-tag 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-logs setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This module gives Eggdrop the ability to run python scripts. if loaded,&lt;br /&gt;
# Python scripts can be loaded at the end of the config file using the pysouce&lt;br /&gt;
# command to tell Eggdrop where the file is loaded. The module requires Python&lt;br /&gt;
# version 3.8 or higher to run. To load the python module, uncomment it below.&lt;br /&gt;
#loadmodule python&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### AUTOSCRIPTS #####&lt;br /&gt;
&lt;br /&gt;
# Load this script to enable the autoscripts functionality for Eggdrop.&lt;br /&gt;
# Autoscripts are scripts that can be downloaded, installed and configured via&lt;br /&gt;
# the partyline. For more information, read doc/AUTOSCRIPTS&lt;br /&gt;
source scripts/autoscripts.tcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=181</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=181"/>
		<updated>2024-09-08T17:21:39Z</updated>

		<summary type="html">&lt;p&gt;Geo: Add config codeblocks to 1.9.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   Libera&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* 'account-notify' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
set account-notify 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'extended-join' default is changed to 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the extended-join feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
set extended-join 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 'account-tag' setting is added with the default value 0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-tag feature via CAP, set this to 1&lt;br /&gt;
# This can be enabled if necessary for imperfect account tracking if you don't&lt;br /&gt;
# have the WHOX (use_354), account-notify and extended-join features available&lt;br /&gt;
# see doc/ACCOUNTS for details&lt;br /&gt;
#set account-tag 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-logs setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=180</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=180"/>
		<updated>2024-09-08T17:12:55Z</updated>

		<summary type="html">&lt;p&gt;Geo: Corrected config setting versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   Libera&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* 'account-notify' default is changed to 1&lt;br /&gt;
* 'extended-join' default is changed to 1&lt;br /&gt;
* 'account-tag' setting is added with the default value 0&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-logs setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=179</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=179"/>
		<updated>2024-09-08T17:06:38Z</updated>

		<summary type="html">&lt;p&gt;Geo: Add 1.10 config changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   Libera&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.10.0 ==&lt;br /&gt;
* The copy-to-tmp setting was removed&lt;br /&gt;
* The quick-log setting was removed&lt;br /&gt;
* Settings for the removed DNS module were removed:&lt;br /&gt;
** loadmodue dns&lt;br /&gt;
** set dns-servers&lt;br /&gt;
** set dns-cache&lt;br /&gt;
** set dns-negcache&lt;br /&gt;
** set dns-maxsends&lt;br /&gt;
** set dns-retrydelay&lt;br /&gt;
* Added 'loadmodule python' to load the new Python module&lt;br /&gt;
* The 'account-notify' setting default was changed to '1'&lt;br /&gt;
* The 'account-tag' setting was added, and defaults to 0. This is helpful to enable for account tracking purposes&lt;br /&gt;
* The autoscripts Tcl script was added and loaded by default, to allow scripts to be loaded and managed from the partyline&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=UTF-8&amp;diff=178</id>
		<title>UTF-8</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=UTF-8&amp;diff=178"/>
		<updated>2024-08-02T19:48:35Z</updated>

		<summary type="html">&lt;p&gt;Geo: Update 1.9.4 UTF changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;IMPORTANT!! As of Eggdrop 1.9.4, Eggdrop was able to successfully workaround the default UTF handling issues with Tcl. That means if you're using a recent version, you probably don't need to do these steps!&lt;br /&gt;
HOWEVER&lt;br /&gt;
Eggdrop's ability to handle UTF does not mean Tcl scripts running on Eggdrop were written to handle UTF. For that reason, if you're using a script that isn't displaying Emoji's properly, check out that section below FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are four common issues users encounter when dealing with UTF-8 encoding issues.&lt;br /&gt;
&lt;br /&gt;
== HTTP scripts output &amp;quot;funny&amp;quot; characters ==&lt;br /&gt;
&lt;br /&gt;
If a script that pulls information from an HTTP source isn't outputting characters properly (letters with accents, etc, are being displayed as other incorrect characters), take a look at https://tcl.tk/man/tcl8.6/TclCmd/http.htm#M61 for an explanation, then try adding set ::http::defaultCharset utf-8 before the http request in the script.&lt;br /&gt;
&lt;br /&gt;
== Emojis don't appear in various other ways ==&lt;br /&gt;
&lt;br /&gt;
Prior to Eggdrop versiom 1.9.4, perhaps the most common problem was people attempting to use Unicode emojis (Thumbs up, skull and crossbones, party hats, etc), and incorrectly thinking their Eggdrop does not support any UTF-8 encoding at all. The inability to use Emojis is a result of an issue with Tcl currently (by default) not being able to support Unicode characters with control codes over 3 bytes, which means Tcl cannot handle control codes higher than U+FFFF (More information on this can be found at https://wiki.tcl-lang.org/page/Unicode+and+UTF-8). The remedy for this issue requires you to download a current version of the Tcl source from https://www.tcl.tk/software/tcltk/download.html and manually compile it (this cannot be done by intalling Tcl via a package manager such as apt or yum).&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Open the generic/tcl.h file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define TCL_UTF_MAX 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and replace it with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define TCL_UTF_MAX 6&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Follow the instructions included with the download to compile and install Tcl.&lt;br /&gt;
&lt;br /&gt;
'''Step 3'''&lt;br /&gt;
&lt;br /&gt;
You'll need to recompile Eggdrop, and may need to specify --with-tcllib and --with-tclinc to point to the new location you installed Tcl to. A correct ./configure command may look similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure --with-tclinc=/usr/local/include/tcl.h --with-tcllib=/usr/local/lib/libtcl8.6.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locale issues ==&lt;br /&gt;
&lt;br /&gt;
If you're still having issues with UTF-8, on your host machine, type locale. If it looks similar to this, congrats! you have UTF-8 support and Eggdrop should be able to handle non-Emoji unicode characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
LANGUAGE=&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_PAPER=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NAME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ADDRESS=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TELEPHONE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it does *not* look like that (specifically, the LANG variable does not end in UTF-8, then you can change your locale to one that supports UTF-8, and Eggdrop will pick up on that change. To do this:&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Visit https://help.ubuntu.com/community/Locale (or a similar page for the OS flavor of your choice). In short, you'll want to view the locales available on your system by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
locale -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and find the UTF-8 setting that matches your preferred language. Open the /etc/default/locale file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LANG=&amp;lt;something&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and replace it with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LANG=de_EN.UTF-8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, obviously, whichever language makes sense to use for you.&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Recompile Eggdrop.&lt;br /&gt;
&lt;br /&gt;
If you are still having issues after making these changes, re-read the Emojis section.&lt;br /&gt;
&lt;br /&gt;
== UTF-8 not found on system ==&lt;br /&gt;
&lt;br /&gt;
If the locale trick does not work, or you are on a system that does not have a UTF locale pack (or you are unable to install one), you can try to force UTF-8 by doing the following.&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Open the eggdrop1.9.2/src/tcl.c file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for (around line 650)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (encoding == NULL) {&lt;br /&gt;
  encoding = &amp;quot;iso8859-1&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and insert the following right after it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
encoding = &amp;quot;utf-8&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Recompile Eggdrop.&lt;br /&gt;
&lt;br /&gt;
== How can I check what encoding is set? ==&lt;br /&gt;
* If you have the .tcl command enabled, you can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.tcl encoding system&lt;br /&gt;
&amp;lt;/pre&amp;gt; to check what encoding Tcl is trying to use&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Account_Tracking&amp;diff=175</id>
		<title>Account Tracking</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Account_Tracking&amp;diff=175"/>
		<updated>2024-05-25T15:32:48Z</updated>

		<summary type="html">&lt;p&gt;Geo: Add limitation for join floods&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Eggdrop version 1.9.3, the ability to identify users based on their IRC service account name was added. However, Eggdrop's ability to 100% accurately track the account name associated with a user on a channel depends on three server-provided features&lt;br /&gt;
* WHOX. WHOX is an updated version of the WHO command that can provide the account name of users in a channel when requested. WHOX allows Eggdrop to obtain the account status of members already present in a channel when it joins. You can view if your IRC server supports WHOX by viewing the 005 line when you connect to the server.&lt;br /&gt;
* Extended-join. Extended-join is an IRCv3 capability that sends the account name of a user (if present) when a user joins a channel. Extended-join allows Eggdrop to obtain the account status of a member as they join a channel. You can view if your IRC server supports this capability by sending /quote CAP LS with your IRC client and viewing the response.&lt;br /&gt;
* Account-notify. Account-notify is an IRCv3 capability that notifies members in a channel when a user authenticates to server. Account-notify allows Eggdrop to update the account status of a user if they authenticate after joining a channel. You can view if your IRC server supports this capability by sending /quote CAP LS with your IRC client and viewing the response.&lt;br /&gt;
&lt;br /&gt;
If these three capabilities are all present and enabled, Eggdrop can accurately track a user's account status at all times. If one or more of these three capabilities is missing, Eggdrop will attempt a &amp;quot;best-effort&amp;quot; at tracking account status based on the information it can glean from the capabilities that are enabled. Additionally, you can negotiate the &amp;quot;account-tag&amp;quot; capability (if the IRC server supports it) and Eggdrop will update the account information of a user that speaks in a channel. For those that like tables, it looks like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Eggdrop updates the account list when the...&lt;br /&gt;
! WHOX&lt;br /&gt;
! extended-join&lt;br /&gt;
! account-notify&lt;br /&gt;
! account-tag&lt;br /&gt;
|-&lt;br /&gt;
|... bot joins a channel&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|... auth'd user joins a channel&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|... user authenticates on a channel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|... auth'd user talks&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Use in Tcl Scripts ==&lt;br /&gt;
The ability to track accounts opens up a wealth of possibilities for Tcl scripts. In order to trigger Tcl script events to cover all instances where a user logs in, it is recommended to pair an ACCOUNT bind with a JOIN bind. This will allow you to check the account (if any) associated with a user as they join, as well as if they authenticate after joining.&lt;br /&gt;
&lt;br /&gt;
== Imperfect Tracking ==&lt;br /&gt;
If the WHOX, extended-join and account-notify are not all enabled, the accuracy of the account list looks like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| WHOX&lt;br /&gt;
! account-notify&lt;br /&gt;
! extended-join&lt;br /&gt;
! account-tag&lt;br /&gt;
| Eggdrop properly tracks a user's account status...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ... when the bot joins the channel and the user is already authenticated&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ... when the bot joins the channel and the user is already authenticated, or the user authenticates in a common channel&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|&lt;br /&gt;
| ... all the time&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... all the time&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... when the bot joins the channel and the user is already authenticated, or if the user authenticates in a common channel, or an authenticated user joins then talks in a common channel&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... when the bot joins the channel and the user is already authenticated, or once an authenticated user talks after joining&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... when the bot joins the channel and the user is already authenticated, or if the user is authenticated before they join a common channel, or once a they join a common channel then authenticate and then talk&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| ... when a user authenticates in a common channel or an already authenticated user joins a channel&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| ... when the bot joins the channel and the user is already authenticated, or an already authenticated user joins a channel&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ... when a user authenticates in a common channel&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... when an authenticated user joins a common channel, or when a user authenticates in the channel, or when a user authenticated before the bot joined talks&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... when a user authenticates in a common channel, or a user who authenticated before the bot joined talks&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| .. when an already authenticated user joins the channel or a user who authenticated before the bot joined talks&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| &lt;br /&gt;
| ... when an authenticated user joins the channel&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| ... when an authenticated user talks&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Example Tcl Script ==&lt;br /&gt;
This is an example script that allows an authenticated user to op someone via a public command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
bind PUB * .op acct_op&lt;br /&gt;
&lt;br /&gt;
proc acct_op {nick user hand chan text} {&lt;br /&gt;
    set accthand [finduser -a [getaccount $nick]]&lt;br /&gt;
    if [string match $accthand &amp;quot;&amp;quot;] {&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :You are not authenticated&amp;quot;&lt;br /&gt;
      return 1&lt;br /&gt;
    }&lt;br /&gt;
    if {[matchattr $accthand +o|+o $chan]} {&lt;br /&gt;
      pushmode $chan +o $text&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :Op'ing $nick&amp;quot;&lt;br /&gt;
    } else {&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :You do not have access to .op&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example script that performs actions when a user authenticates or joins a channel already authenticated&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
bind ACCOUNT * * acct_track_acct&lt;br /&gt;
bind JOIN * * acct_track_join&lt;br /&gt;
&lt;br /&gt;
proc acct_track_acct {nick user hand chan acct} {&lt;br /&gt;
    if {[string match $acct &amp;quot;&amp;quot;]} {&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :$nick de-authenticated&amp;quot;&lt;br /&gt;
    } else {&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :$nick is now authenticated as $acct&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
proc acct_track_join {nick user hand chan} {&lt;br /&gt;
    set acctnick [getaccount $nick]&lt;br /&gt;
    if {[string match $acctnick &amp;quot;&amp;quot;]} {&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :$nick joined and is not authenticated.&amp;quot;&lt;br /&gt;
    } else {&lt;br /&gt;
      putserv &amp;quot;PRIVMSG $chan :$nick joined and is authenticated as $acctnick&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Limitations ==&lt;br /&gt;
&lt;br /&gt;
If the extended join capability is not enabled, Eggdrop can't check accounts when a user joins. This means handles with a +f flag that have an account, but not a matching hostmask, added will not be exempt from join flood controls and could be kicked/banned. To prevent this, you must either update the hostmask to match that of the user, or ensure Eggdrop has requested the extended join capability from the server if available.&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=171</id>
		<title>EggModules</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=171"/>
		<updated>2024-05-04T16:45:54Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;server.mod is anything that affects the live connection to the ircd that does not involve channels&lt;br /&gt;
&lt;br /&gt;
irc.mod is anything that affects live channels and live users on channels. &lt;br /&gt;
&lt;br /&gt;
channels.mod has nothing to do with the live connection and is just userfile/chanfile storage of handles and permissions and flags&lt;br /&gt;
&lt;br /&gt;
the line between server.mod and irc.mod is blurry at times - for example when we receive an AWAY notification we break it down for the channel-users it triggers for, so the message itself has nothing to do with channels but we call it for each channel the user is on, so that's irc.mod. server.mod and irc.mod separation is historical, I wouldn't separate them these days. cross-module stuff is a bit annoying (as opposed to modules calling into the core) because of it, easier if you put it in the &amp;quot;right&amp;quot; spot&lt;br /&gt;
&lt;br /&gt;
channels.mod is .+user, .+chan etc. channels.mod can check and do IRC stuff via server.mod/irc.mod if they are loaded but it does not require it&lt;br /&gt;
&lt;br /&gt;
irc.mod requires channels.mod and server.mod. server.mod can works without channels.mod and irc.mod&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=170</id>
		<title>EggModules</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=170"/>
		<updated>2024-05-04T16:43:04Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;irc.mod is anything that affects live channels and live users on channels. &lt;br /&gt;
&lt;br /&gt;
channels.mod has nothing to do with the live connection and is just userfile/chanfile storage of handles and permissions and flags&lt;br /&gt;
&lt;br /&gt;
the line between server.mod and irc.mod is blurry at times - for example when we receive an AWAY notification we break it down for the channel-users it triggers for, so the message itself has nothing to do with channels but we call it for each channel the user is on, so that's irc.mod. server.mod and irc.mod separation is historical, I wouldn't separate them these days. cross-module stuff is a bit annoying (as opposed to modules calling into the core) because of it, easier if you put it in the &amp;quot;right&amp;quot; spot&lt;br /&gt;
&lt;br /&gt;
channels.mod is .+user, .+chan etc. channels.mod can check and do IRC stuff via server.mod/irc.mod if they are loaded but it does not require it&lt;br /&gt;
&lt;br /&gt;
irc.mod requires channels.mod and server.mod. server.mod can works without channels.mod and irc.mod&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=169</id>
		<title>EggModules</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=169"/>
		<updated>2024-05-04T16:42:07Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;irc.mod is anything that affects live channels and live users on channels. &lt;br /&gt;
&lt;br /&gt;
channels.mod has nothing to do with the live connection and is just userfile/chanfile storage of handles and permissions and flags&lt;br /&gt;
&lt;br /&gt;
he line between server.mod and irc.mod is blurry at times - for example when we receive an AWAY notification we break it down for the channel-users it triggers for, so the message itself has nothing to do with channels but we call it for each channel the user is on, so that's irc.mod. server.mod and irc.mod separation is historical, I wouldn't separate them these days. cross-module stuff is a bit annoying (as opposed to modules calling into the core) because of it, easier if you put it in the &amp;quot;right&amp;quot; spot&lt;br /&gt;
&lt;br /&gt;
channels.mod is .+user, .+chan etc. channels.mod can check and do IRC stuff via server.mod/irc.mod if they are loaded but it does not require it&lt;br /&gt;
&lt;br /&gt;
irc.mod requires channels.mod and server.mod. server.mod can works without channels.mod and irc.mod&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=168</id>
		<title>EggModules</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggModules&amp;diff=168"/>
		<updated>2024-05-04T15:40:27Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;irc.mod is anything that affects live channels and live users on channels channels.mod has nothing to do with the live connection and is just userfile/chanfile storage of handles and permissions and flags the line between server.mod and irc.mod is blurry at times - for example when we receive an AWAY notification we break it down for the channel-users it triggers for, so the message itself has nothing to do with channels but we call it for each channel the user is on, so...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;irc.mod is anything that affects live channels and live users on channels&lt;br /&gt;
channels.mod has nothing to do with the live connection and is just userfile/chanfile storage of handles and permissions and flags&lt;br /&gt;
the line between server.mod and irc.mod is blurry at times - for example when we receive an AWAY notification we break it down for the channel-users it triggers for, so the message itself has nothing to do with channels but we call it for each channel the user is on, so that's irc.mod. server.mod and irc.mod separation is historical, I wouldn't separate them these days. cross-module stuff is a bit annoying (as opposed to modules calling into the core) because of it, easier if you put it in the &amp;quot;right&amp;quot; spot&lt;br /&gt;
&lt;br /&gt;
irc.mod guarantees server.mod is loaded, but not vice versa&lt;br /&gt;
&lt;br /&gt;
server.mod works without channels.mod, irc.mod requires channels.mod&lt;br /&gt;
&lt;br /&gt;
channels.mod is .+user, .+chan etc.&lt;br /&gt;
channels.mod can check and do IRC stuff via server.mod/irc.mod if they are loaded but it does not require it&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=167</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=167"/>
		<updated>2024-05-04T15:39:14Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=166</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=166"/>
		<updated>2024-05-04T15:39:02Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;br /&gt;
[[EggModules|What is the difference between the IRC, Server, and Channel modules?]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Eggdrop_for_Docker&amp;diff=165</id>
		<title>Eggdrop for Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Eggdrop_for_Docker&amp;diff=165"/>
		<updated>2024-04-09T23:30:01Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information and documentation for the Eggdrop Docker image can be found at [https://hub.docker.com/_/eggdrop https://hub.docker.com/_/eggdrop].&lt;br /&gt;
&lt;br /&gt;
== Mounting Scripts into Docker ==&lt;br /&gt;
It can be difficult for beginners to add scripts into a Docker container. An easy way to add scripts would be to create a scripts directory on the host and mount it to /home/eggdrop/eggdrop/scripts (or the path of your choosing). This would be accomplished from the command line by adding an option similar to:&lt;br /&gt;
&lt;br /&gt;
 -v /path/to/host/scripts:/home/eggdrop/eggdrop/scripts&lt;br /&gt;
&lt;br /&gt;
or via docker-compose:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volumes:&lt;br /&gt;
    - /path/to/host/scripts:/home/eggdrop/eggdrop/scripts   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and then load the script as usual from the config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding Tcl packages required for scripts ==&lt;br /&gt;
&lt;br /&gt;
Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcl-lib and libsqlite3-tcl. At first look, it may feel difficult to install a package required for a Tcl script since you don't (generally) have command line access. In keeping with Docker philosophy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker run -i eggdrop sh -c 'apk add tcl-lib tcl-tls &amp;amp;&amp;amp; exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or in a docker-compose file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    command: [ &amp;quot;apk add tcl-lib tcl-tls &amp;amp;&amp;amp; exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf&amp;quot; ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting a Vhost with Docker ==&lt;br /&gt;
We're still trying to figure out the best way to do this! One method we've found is to set the following options in your docker-compose config file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
networks:&lt;br /&gt;
  default:&lt;br /&gt;
    driver: bridge&lt;br /&gt;
    ipam:&lt;br /&gt;
      driver: default&lt;br /&gt;
    driver_opts:&lt;br /&gt;
      com.docker.network.host_ipv4: &amp;lt;ip here&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Importantly, do not set the vhost4 setting in the config if you use this method.&lt;br /&gt;
&lt;br /&gt;
Also importantly, there are still some to-be-determined side effects for using this method, but this will atleast get you online using the vhost of your choice&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Eggdrop_for_Docker&amp;diff=164</id>
		<title>Eggdrop for Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Eggdrop_for_Docker&amp;diff=164"/>
		<updated>2024-04-09T22:59:09Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information and documentation for the Eggdrop Docker image can be found at [https://hub.docker.com/_/eggdrop https://hub.docker.com/_/eggdrop].&lt;br /&gt;
&lt;br /&gt;
== Setting a Vhost with Docker ==&lt;br /&gt;
We're still trying to figure out the best way to do this! One method we've found is to set the following options in your docker-compose config file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
networks:&lt;br /&gt;
  default:&lt;br /&gt;
    driver: bridge&lt;br /&gt;
    ipam:&lt;br /&gt;
      driver: default&lt;br /&gt;
    driver_opts:&lt;br /&gt;
      com.docker.network.host_ipv4: &amp;lt;ip here&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Importantly, do not set the vhost4 setting in the config if you use this method.&lt;br /&gt;
&lt;br /&gt;
Also importantly, there are still some to-be-determined side effects for using this method, but this will atleast get you online using the vhost of your choice&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Eggdrop_for_Docker&amp;diff=163</id>
		<title>Eggdrop for Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Eggdrop_for_Docker&amp;diff=163"/>
		<updated>2024-04-09T22:57:03Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;Information and documentation for the Eggdrop Docker image can be found at [https://hub.docker.com/_/eggdrop].  == Setting a Vhost with Docker == We're still trying to figure out the best way to do this! One method we've found is to set the following options in your docker-compose config file:  &amp;lt;pre&amp;gt; networks:   default:     driver: bridge     ipam:       driver: default     driver_opts:       com.docker.network.host_ipv4: &amp;lt;ip here&amp;gt; &amp;lt;/pre&amp;gt;  Importantly, do not set the vh...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information and documentation for the Eggdrop Docker image can be found at [https://hub.docker.com/_/eggdrop].&lt;br /&gt;
&lt;br /&gt;
== Setting a Vhost with Docker ==&lt;br /&gt;
We're still trying to figure out the best way to do this! One method we've found is to set the following options in your docker-compose config file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
networks:&lt;br /&gt;
  default:&lt;br /&gt;
    driver: bridge&lt;br /&gt;
    ipam:&lt;br /&gt;
      driver: default&lt;br /&gt;
    driver_opts:&lt;br /&gt;
      com.docker.network.host_ipv4: &amp;lt;ip here&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Importantly, do not set the vhost4 setting in the config if you use this method.&lt;br /&gt;
&lt;br /&gt;
Also importantly, there are still some to-be-determined side effects for using this method, but this will atleast get you online using the vhost of your choice&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Inline&amp;diff=162</id>
		<title>Inline</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Inline&amp;diff=162"/>
		<updated>2023-12-29T22:46:46Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Errors like &amp;quot;undefined reference to `cron_matchfld'&amp;quot; indicate a compatibility issue regarding Eggdrop's use of the inline keyword.&lt;br /&gt;
&lt;br /&gt;
See [http://www.greenend.org.uk/rjk/tech/inline.html here] for the gory details as to why.&lt;br /&gt;
&lt;br /&gt;
The fix is to use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-std=gnu89&amp;quot; ./configure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
instead of just&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(you may need to do a &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt; prior to running this).&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Inline&amp;diff=161</id>
		<title>Inline</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Inline&amp;diff=161"/>
		<updated>2023-12-29T22:46:05Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;Errors like &amp;quot;undefined reference to `cron_matchfld'&amp;quot; indicate a compatibility issue regarding Eggdrop's use of the inline keyword.  See [http://www.greenend.org.uk/rjk/tech/inline.html here] for the gory details as to why.  The fix is to use &amp;lt;pre&amp;gt; CFLAGS=&amp;quot;-std=gnu89&amp;quot; ./configure &amp;lt;/pre&amp;gt; instead of just &amp;lt;pre  ./configure &amp;lt;/pre&amp;gt;  (you may need to do a &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt; prior to running this).&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Errors like &amp;quot;undefined reference to `cron_matchfld'&amp;quot; indicate a compatibility issue regarding Eggdrop's use of the inline keyword.&lt;br /&gt;
&lt;br /&gt;
See [http://www.greenend.org.uk/rjk/tech/inline.html here] for the gory details as to why.&lt;br /&gt;
&lt;br /&gt;
The fix is to use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-std=gnu89&amp;quot; ./configure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
instead of just&lt;br /&gt;
&amp;lt;pre&lt;br /&gt;
 ./configure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(you may need to do a &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt; prior to running this).&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=160</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=160"/>
		<updated>2023-12-29T22:43:14Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=159</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=159"/>
		<updated>2023-12-29T22:42:58Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
[[Inline]]| When compiling ancient versions of Eggdrop, I get &amp;quot;undefined reference to `cron_matchfld'&amp;quot; and other similar errors]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=UTF-8&amp;diff=158</id>
		<title>UTF-8</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=UTF-8&amp;diff=158"/>
		<updated>2023-08-12T22:59:17Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are four common issues users encounter when dealing with UTF-8 encoding issues.&lt;br /&gt;
&lt;br /&gt;
== Emojis don't appear ==&lt;br /&gt;
&lt;br /&gt;
Perhaps the most common problem seen today is people attempting to use Unicode emojis (Thumbs up, skull and crossbones, party hats, etc), and incorrectly thinking their Eggdrop does not support any UTF-8 encoding at all. The inability to use Emojis is a result of an issue with Tcl currently (by default) not being able to support Unicode characters with control codes over 3 bytes, which means Tcl cannot handle control codes higher than U+FFFF (More information on this can be found at https://wiki.tcl-lang.org/page/Unicode+and+UTF-8). The remedy for this issue requires you to download a current version of the Tcl source from https://www.tcl.tk/software/tcltk/download.html and manually compile it (this cannot be done by intalling Tcl via a package manager such as apt or yum).&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Open the generic/tcl.h file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define TCL_UTF_MAX 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and replace it with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define TCL_UTF_MAX 6&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Follow the instructions included with the download to compile and install Tcl.&lt;br /&gt;
&lt;br /&gt;
'''Step 3'''&lt;br /&gt;
&lt;br /&gt;
You'll need to recompile Eggdrop, and may need to specify --with-tcllib and --with-tclinc to point to the new location you installed Tcl to. A correct ./configure command may look similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
./configure --with-tclinc=/usr/local/include/tcl.h --with-tcllib=/usr/local/lib/libtcl8.6.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTTP scripts output &amp;quot;funny&amp;quot; characters ==&lt;br /&gt;
&lt;br /&gt;
If a script that pulls information from an HTTP source isn't outputting characters properly (letters with accents, etc, are being displayed as other incorrect characters), take a look at https://tcl.tk/man/tcl8.6/TclCmd/http.htm#M61 for an explanation, then try adding set ::http::defaultCharset utf-8 before the http request in the script.&lt;br /&gt;
&lt;br /&gt;
== Locale issues ==&lt;br /&gt;
&lt;br /&gt;
If you're still having issues with UTF-8, on your host machine, type locale. If it looks similar to this, congrats! you have UTF-8 support and Eggdrop should be able to handle non-Emoji unicode characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LANG=en_US.UTF-8&lt;br /&gt;
LANGUAGE=&lt;br /&gt;
LC_CTYPE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NUMERIC=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TIME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_COLLATE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MONETARY=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MESSAGES=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_PAPER=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_NAME=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ADDRESS=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_TELEPHONE=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_MEASUREMENT=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_IDENTIFICATION=&amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
LC_ALL=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it does *not* look like that (specifically, the LANG variable does not end in UTF-8, then you can change your locale to one that supports UTF-8, and Eggdrop will pick up on that change. To do this:&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Visit https://help.ubuntu.com/community/Locale (or a similar page for the OS flavor of your choice). In short, you'll want to view the locales available on your system by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
locale -a&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and find the UTF-8 setting that matches your preferred language. Open the /etc/default/locale file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LANG=&amp;lt;something&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and replace it with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LANG=de_EN.UTF-8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, obviously, whichever language makes sense to use for you.&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Recompile Eggdrop.&lt;br /&gt;
&lt;br /&gt;
If you are still having issues after making these changes, re-read the Emojis section.&lt;br /&gt;
&lt;br /&gt;
== UTF-8 not found on system ==&lt;br /&gt;
&lt;br /&gt;
If the locale trick does not work, or you are on a system that does not have a UTF locale pack (or you are unable to install one), you can try to force UTF-8 by doing the following.&lt;br /&gt;
&lt;br /&gt;
'''Step 1'''&lt;br /&gt;
&lt;br /&gt;
Open the eggdrop1.9.2/src/tcl.c file in your editor.&lt;br /&gt;
&lt;br /&gt;
Search for (around line 650)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (encoding == NULL) {&lt;br /&gt;
  encoding = &amp;quot;iso8859-1&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and insert the following right after it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
encoding = &amp;quot;utf-8&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Step 2'''&lt;br /&gt;
&lt;br /&gt;
Recompile Eggdrop.&lt;br /&gt;
&lt;br /&gt;
== How can I check what encoding is set? ==&lt;br /&gt;
* If you have the .tcl command enabled, you can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.tcl encoding system&lt;br /&gt;
&amp;lt;/pre&amp;gt; to check what encoding Tcl is trying to use&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Connect_To_Partyline_with_TLS&amp;diff=157</id>
		<title>Connect To Partyline with TLS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Connect_To_Partyline_with_TLS&amp;diff=157"/>
		<updated>2023-07-09T21:09:30Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Connect with TLS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Create a TLS Listen Port ==&lt;br /&gt;
&lt;br /&gt;
To connect to the partyline using TLS, you must first ensure you created a listening port that uses TLS (in the config). This is done by specifying a '+' in front of the port specified in the config. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen 1.2.3.4 +4444 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create TLS certificates ==&lt;br /&gt;
Next, you must ensure you have TLS certificates to use. If you don't have a pair already, you can generate self-signed certificates from a terminal by running:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -new -x509 -nodes -keyout my.key -out my.crt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect with TLS ==&lt;br /&gt;
Then, you must use a client capable of TLS connections (No, telnet is not one of them!) A common method is using the OpenSSL 'sclient' program. To connect from a host with OpenSSL installed, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl s_client -cert my.crt -key my.key -connect host:sslport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Don't use a + in front of the port here, just the number)&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Connect_To_Partyline_with_TLS&amp;diff=156</id>
		<title>Connect To Partyline with TLS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Connect_To_Partyline_with_TLS&amp;diff=156"/>
		<updated>2023-07-09T21:09:02Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;== Create a TLS Listen Port ==  To connect to the partyline using TLS, you must first ensure you created a listening port that uses TLS (in the config). This is done by specifying a '+' in front of the port specified in the config.   &amp;lt;pre&amp;gt; listen 1.2.3.4 +4444 all &amp;lt;/pre&amp;gt;  == Create TLS certificates == Next, you must ensure you have TLS certificates to use. If you don't have a pair already, you can generate self-signed certificates from a terminal by running: &amp;lt;pre&amp;gt; openss...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Create a TLS Listen Port ==&lt;br /&gt;
&lt;br /&gt;
To connect to the partyline using TLS, you must first ensure you created a listening port that uses TLS (in the config). This is done by specifying a '+' in front of the port specified in the config. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen 1.2.3.4 +4444 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create TLS certificates ==&lt;br /&gt;
Next, you must ensure you have TLS certificates to use. If you don't have a pair already, you can generate self-signed certificates from a terminal by running:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -new -x509 -nodes -keyout my.key -out my.crt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect with TLS ==&lt;br /&gt;
Then, you must use a client capable of TLS connections (No, telnet is not one of them!) A common method is using the OpenSSL 'sclient' program. To connect from a host with OpenSSL installed, use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl s_client -cert my.crt -key my.key -connect host:sslport (Don't use a + in front of the port here, just the number)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=155</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=155"/>
		<updated>2023-07-09T21:02:20Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Connect To Partyline with TLS| How do I connect to the partyline using TLS?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Cert_Val_Failed&amp;diff=154</id>
		<title>Cert Val Failed</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Cert_Val_Failed&amp;diff=154"/>
		<updated>2023-07-09T19:02:39Z</updated>

		<summary type="html">&lt;p&gt;Geo: Geo moved page Cert Val Failed to Certificate Validation Failed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Certificate Validation Failed]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Certificate_Validation_Failed&amp;diff=153</id>
		<title>Certificate Validation Failed</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Certificate_Validation_Failed&amp;diff=153"/>
		<updated>2023-07-09T19:02:39Z</updated>

		<summary type="html">&lt;p&gt;Geo: Geo moved page Cert Val Failed to Certificate Validation Failed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With some servers, you may see an error that looks like this (debug log enabled):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[21:57:55] TLS: certificate validation failed at depth 2: unable to get local issuer certificate                                                                                                                                              &lt;br /&gt;
[21:57:55] TLS: alert during write: fatal (unknown CA).                                                                                                                                                                                       &lt;br /&gt;
[21:57:55] TLS: awaiting more writes                                                                                                                                                                                                          &lt;br /&gt;
[21:57:55] TLS: handshake failed due to the following error: certificate verify failed                                                                                                                                                        &lt;br /&gt;
[21:57:55] TLS: handshake failed due to the following errors:                                                                                                                                                                                 &lt;br /&gt;
[21:57:55] TLS: error:0A000086:SSL routines::certificate verify failed    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The exact cause or server misconfiguration is still unknown, but if you see this error, ensure you have set your local CA path in the config correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set ssl-capath /etc/ssl/certs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Certificate_Validation_Failed&amp;diff=152</id>
		<title>Certificate Validation Failed</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Certificate_Validation_Failed&amp;diff=152"/>
		<updated>2023-07-09T19:01:12Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;With some servers, you may see an error that looks like this (debug log enabled):  &amp;lt;pre&amp;gt; [21:57:55] TLS: certificate validation failed at depth 2: unable to get local issuer certificate                                                                                                                                               [21:57:55] TLS: alert during write: fatal (unknown CA)....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With some servers, you may see an error that looks like this (debug log enabled):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[21:57:55] TLS: certificate validation failed at depth 2: unable to get local issuer certificate                                                                                                                                              &lt;br /&gt;
[21:57:55] TLS: alert during write: fatal (unknown CA).                                                                                                                                                                                       &lt;br /&gt;
[21:57:55] TLS: awaiting more writes                                                                                                                                                                                                          &lt;br /&gt;
[21:57:55] TLS: handshake failed due to the following error: certificate verify failed                                                                                                                                                        &lt;br /&gt;
[21:57:55] TLS: handshake failed due to the following errors:                                                                                                                                                                                 &lt;br /&gt;
[21:57:55] TLS: error:0A000086:SSL routines::certificate verify failed    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The exact cause or server misconfiguration is still unknown, but if you see this error, ensure you have set your local CA path in the config correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set ssl-capath /etc/ssl/certs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=151</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=151"/>
		<updated>2023-07-09T18:58:11Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Common Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
[[Cert Val Failed| certificate validation failed: unable to get local issuer certificate ]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=150</id>
		<title>Config Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Config_Changes&amp;diff=150"/>
		<updated>2023-04-09T01:40:26Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Config changes made in 1.9.0 ==&lt;br /&gt;
* Added additional net-types for freenode, Quakenet, and Rizon (net-type)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## What is your network?&lt;br /&gt;
## Options are:&lt;br /&gt;
##   EFnet&lt;br /&gt;
##   IRCnet&lt;br /&gt;
##   Undernet&lt;br /&gt;
##   DALnet&lt;br /&gt;
##   Libera&lt;br /&gt;
##   freenode&lt;br /&gt;
##   QuakeNet&lt;br /&gt;
##   Rizon&lt;br /&gt;
##   Twitch (This requires twitch.mod to be loaded as well)&lt;br /&gt;
##   Other  (This is a good, sane default option to use if your network/ircd is&lt;br /&gt;
##          not listed here. Additional configuration options for this setting&lt;br /&gt;
##          can be found further down in the IRC MODULE section)&lt;br /&gt;
set net-type &amp;quot;EFnet&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added SASL configuration settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#### CAP Features ####&lt;br /&gt;
# This section controls IRCv3 capabilities supported natively by Eggdrop. You&lt;br /&gt;
# can enable individual settings here to be requested as part of the&lt;br /&gt;
# registration process with the IRC server. Not all servers support all CAP&lt;br /&gt;
# features. https://ircv3.net/support/networks.html maintains a list of some&lt;br /&gt;
# popular servers, and you can also use '.tcl cap available' from the partyline&lt;br /&gt;
# to list capabilities available on that server.&lt;br /&gt;
# SASL is a method that allows Eggdrop to authenticate with a NickServ service&lt;br /&gt;
# as part of the connection process to a server, eliminating the need to later&lt;br /&gt;
# authenticate via a /msg command.&lt;br /&gt;
#&lt;br /&gt;
# To request SASL authentication via CAP, set this to 1&lt;br /&gt;
#set sasl 0&lt;br /&gt;
# Set SASL mechanism to authenticate with.&lt;br /&gt;
# Options are:&lt;br /&gt;
#   0 = PLAIN                       (normal user/pass exchange, only encrypted&lt;br /&gt;
#                                    if connected to the IRC server with a&lt;br /&gt;
#                                    SSL/TLS connection)&lt;br /&gt;
#&lt;br /&gt;
#   1 = ECDSA-NIST256P-CHALLENGE    (Uses a certificate; usually requires a&lt;br /&gt;
#                                    public key to be registered with NickServ&lt;br /&gt;
#                                    or other similar service. Set certificate&lt;br /&gt;
#                                    to use in sasl-ecdsa-key setting below)&lt;br /&gt;
#&lt;br /&gt;
#   2 = EXTERNAL                    (Some other method you set up. Certificates&lt;br /&gt;
#                                    used are defined in ssl-certificate and&lt;br /&gt;
#                                    ssl-privatekey settings in SSL section)&lt;br /&gt;
#&lt;br /&gt;
#set sasl-mechanism 0&lt;br /&gt;
# Set username to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-username &amp;quot;llamabot&amp;quot;&lt;br /&gt;
# Set password to authenticate to IRC NickServ with&lt;br /&gt;
#set sasl-password &amp;quot;password&amp;quot;&lt;br /&gt;
# Specify the location of certificate to use for the SASL&lt;br /&gt;
# ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the&lt;br /&gt;
# command:&lt;br /&gt;
#   openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem&lt;br /&gt;
#set sasl-ecdsa-key &amp;quot;eggdrop-ecdsa.pem&amp;quot;&lt;br /&gt;
# Set SASL failure action&lt;br /&gt;
# If SASL authentication fails, do you want to connect to the server anyway?&lt;br /&gt;
# Set to this to 0 to disconnect and retry until success, or 1 to continue&lt;br /&gt;
# connecting to the server without SASL authentication.&lt;br /&gt;
#set sasl-continue 1&lt;br /&gt;
#&lt;br /&gt;
# Timeout (in seconds) before giving up SASL authentication&lt;br /&gt;
#set sasl-timeout 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to choose specific SSL/TLS protocols to use (ssl-protocols)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specify the list of protocols allowed for use with ssl. The protocol list is&lt;br /&gt;
# one or more protocol strings separated by spaces. Available protocols are&lt;br /&gt;
# SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.&lt;br /&gt;
# set ssl-protocols &amp;quot;TLSv1 TLSv1.1 TLSv1.2 TLSv1.3&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added ability to allow bots to remain linked if userfile sharing fails (sharefail-unlink)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# By default, Eggdrop will abort the linking process if userfile sharing is&lt;br /&gt;
# enabled but the userfile transfer fails. Set this to 0 to keep the bots&lt;br /&gt;
# linked if the userfile transfer fails and retry every minute (both bots must&lt;br /&gt;
# be v1.9.0 or higher).&lt;br /&gt;
#set sharefail-unlink 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Changed the method Eggdrop uses to add servers from a {} list to the new addserver command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is the bot's server list. The bot will start at the first server listed,&lt;br /&gt;
# and cycle through them whenever it gets disconnected. You need to change these&lt;br /&gt;
# servers to YOUR network's servers.&lt;br /&gt;
#&lt;br /&gt;
# The format is:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; [port [password]]&lt;br /&gt;
# Prefix the port with a plus sign to attempt a SSL connection:&lt;br /&gt;
#   server add &amp;lt;server&amp;gt; +port [password]&lt;br /&gt;
#&lt;br /&gt;
# This format is new as of version 1.9.0. The previous method using&lt;br /&gt;
# set servers {} will still work for now, but is deprecated and will be removed&lt;br /&gt;
# in a future release.&lt;br /&gt;
server add you.need.to.change.this 6667&lt;br /&gt;
server add another.example.com 6669 password&lt;br /&gt;
server add 2001:db8:618:5c0:263:: 6669 password&lt;br /&gt;
server add ssl.example.net +7000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added CAP settings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set account-notify 0&lt;br /&gt;
# To request the invite-notify feature via CAP, set this to 1&lt;br /&gt;
#set invite-notify 0&lt;br /&gt;
# To request the message-tags feature via CAP, set this to 1. NOTE: Enabling&lt;br /&gt;
# this feature may interfere with RAW binds in scripts.&lt;br /&gt;
#set message-tags 0&lt;br /&gt;
# If you have any additional CAP features you would like to request at&lt;br /&gt;
# registration but are not listed above, set them here as space separated&lt;br /&gt;
# strings. Setting features here does not guarantee Eggdrop's ability to support&lt;br /&gt;
# these them.&lt;br /&gt;
#set cap-request &amp;quot;feature1 feature2 feature3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Removed the listen-addr command. The listen command now accepts an optional IP argument in lieu of using listen-addr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To bind the listening port to a specific IP instead of all available, insert&lt;br /&gt;
# a valid IP assigned to the host Eggdrop is running on infront of the port&lt;br /&gt;
# (this replaces the listen-addr setting used prior to Eggdrop v1.9)&lt;br /&gt;
#&lt;br /&gt;
#   listen 1.2.3.4 3333 all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Added the show-uname setting, which allows you to disable the display of uname info for the host system in things like .status&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable this setting if you do not want to show name and release level of the&lt;br /&gt;
# operating system. You'll probably also want to edit the default motd (in&lt;br /&gt;
# text/motd) and remove its display from there.&lt;br /&gt;
set show-uname 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.1 ==&lt;br /&gt;
* Added Libera to accepted server types&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.2 ==&lt;br /&gt;
* Added the 'extended-join' setting, to enable the extended-join CAP capability&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# To request the account-notify feature via CAP, set this to 1&lt;br /&gt;
#set extended-join 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Moved DNS-related settings out of the modules section and into the core config area&lt;br /&gt;
* No longer load the (now-deprecated) DNS module by default&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.3 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.4 ==&lt;br /&gt;
* None.&lt;br /&gt;
&lt;br /&gt;
== Config changes made in 1.9.5 ==&lt;br /&gt;
* None.&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Do_I_have_Tcl_installed%3F&amp;diff=149</id>
		<title>Do I have Tcl installed?</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Do_I_have_Tcl_installed%3F&amp;diff=149"/>
		<updated>2023-03-06T00:28:17Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;To compile the bot you need the TCL libraries and header somewhere on your system. The ./configure script will try to find them for you. If this fails, you might try to search them on your own.  The library is called libtclX.X.so or libtclX.X.a. The &amp;quot;X.X&amp;quot; will be the version of the library. The extension '.so' means it is a &amp;quot;dynamically loadable library&amp;quot; and the '.a' mean it will be &amp;quot;statically linked&amp;quot;. You can try to find it using     find /usr -name &amp;quot;libtcl*&amp;quot; -print Th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To compile the bot you need the TCL libraries and header somewhere on your system. The ./configure script will try to find them for you. If this fails, you might try to search them on your own.&lt;br /&gt;
&lt;br /&gt;
The library is called libtclX.X.so or libtclX.X.a. The &amp;quot;X.X&amp;quot; will be the version of the library. The extension '.so' means it is a &amp;quot;dynamically loadable library&amp;quot; and the '.a' mean it will be &amp;quot;statically linked&amp;quot;. You can try to find it using&lt;br /&gt;
    find /usr -name &amp;quot;libtcl*&amp;quot; -print This can take a HUGE amount of time.&lt;br /&gt;
Do the same to find the header file&lt;br /&gt;
    find /usr -name &amp;quot;tcl.h&amp;quot; -print&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=148</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=148"/>
		<updated>2023-03-06T00:27:26Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Setting Up Eggdrop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Do I have Tcl installed?]]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=Compiling&amp;diff=147</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=Compiling&amp;diff=147"/>
		<updated>2023-03-06T00:26:52Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;== What do I need to apply a .patch file to the eggdrop's source? ==  You need to make sure you have the 'patch' utility, and that it is at least version 2.1.      patch -v  to find this out.   == How do I apply a patch to my source? ==  Make sure that you are applying the patch file to the correct version of eggdrop. 'gzip -d' the .patch file, if it ends with .gz Enter your eggdrop's source root directory and apply the patch with      patch -p1 &amp;lt; eggdrop1.3.xx+demo.patc...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What do I need to apply a .patch file to the eggdrop's source? ==&lt;br /&gt;
&lt;br /&gt;
You need to make sure you have the 'patch' utility, and that it is at least version 2.1.&lt;br /&gt;
&lt;br /&gt;
    patch -v&lt;br /&gt;
&lt;br /&gt;
to find this out. &lt;br /&gt;
&lt;br /&gt;
== How do I apply a patch to my source? ==&lt;br /&gt;
&lt;br /&gt;
Make sure that you are applying the patch file to the correct version of eggdrop. 'gzip -d' the .patch file, if it ends with .gz Enter your eggdrop's source root directory and apply the patch with&lt;br /&gt;
&lt;br /&gt;
    patch -p1 &amp;lt; eggdrop1.3.xx+demo.patch&lt;br /&gt;
&lt;br /&gt;
Find things that might have gone wrong: find . -name &amp;quot;*.rej&amp;quot; -print &lt;br /&gt;
&lt;br /&gt;
If the patch utility asked you about &amp;quot;What file to patch&amp;quot;, then you probably do not have the correct version of the patch utility. If you do, then it also may be that you are trying to apply the patch file to an incorrect version of eggdrop. Make sure the eggdrop source you have match the version of the patch file you are trying to apply.&lt;br /&gt;
&lt;br /&gt;
== What kind of shell am I using? ==&lt;br /&gt;
&lt;br /&gt;
For some things you do on your shell account you need to know what kind of shell you are using. The easiest way is to type&lt;br /&gt;
    echo $SHELL&lt;br /&gt;
If this does not work, use 'ps' and see what processes are running. Find the one that starts with a dash '-', this is probably your login shell.&lt;br /&gt;
&lt;br /&gt;
This shell can be: sh, bash, ksh, csh or tcsh (or others...). &lt;br /&gt;
&lt;br /&gt;
== Where can i get a precompiled eggdrop for my computer? ==&lt;br /&gt;
&lt;br /&gt;
It is HIGHLY recommended AGAINST using precompiled Eggdrops from untrusted sources. Eggdrop has been a regular target for hacking and crashing. Distribution of precompiled (binary) versions of Eggdrop are the easiest way of hackers to provide you with the easiest (and most dangerous) way of gaining access to not only your bot, but to your computer account directly. Don't advertise your precompiled Eggdrop binary sites on the Eggdrop list either =P&lt;br /&gt;
&lt;br /&gt;
== I get 'Makefile:3 :invalid operator' or some-such-thing when I try to 'make' ==&lt;br /&gt;
&lt;br /&gt;
Try 'gmake' instead of make&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=146</id>
		<title>EggWiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=EggWiki&amp;diff=146"/>
		<updated>2023-03-06T00:21:36Z</updated>

		<summary type="html">&lt;p&gt;Geo: /* Setting Up Eggdrop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to EggWiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Eggdrop ==&lt;br /&gt;
[https://docs.eggheads.org/setup Installation Tutorial]&lt;br /&gt;
&lt;br /&gt;
[[Installing Tcl Locally]]&lt;br /&gt;
&lt;br /&gt;
[[Running_Multiple_Eggdrops_From_One_Directory|Running Multiple Eggdrops From One Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Upgrading]]&lt;br /&gt;
&lt;br /&gt;
* [[Config_Changes|Config file changes, by version]]&lt;br /&gt;
&lt;br /&gt;
[[Compiling|Compiling FAQs]]&lt;br /&gt;
&lt;br /&gt;
== Using Eggdrop ==&lt;br /&gt;
[[Partyline]]&lt;br /&gt;
&lt;br /&gt;
[[DCC]]&lt;br /&gt;
&lt;br /&gt;
[[Channel_Administration|Channel Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Loading Tcl Scripts]]&lt;br /&gt;
&lt;br /&gt;
[[CAP|Enabling CAP (IRCv3) Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Account Tracking]]&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
[[Tcl Not Installed]]&lt;br /&gt;
&lt;br /&gt;
[[No Telnet Port Set]]&lt;br /&gt;
&lt;br /&gt;
[[Known Eggdrop Errors]]&lt;br /&gt;
&lt;br /&gt;
[[Matchattr Tcl Command Issues]]&lt;br /&gt;
&lt;br /&gt;
[[Not Sharing Userfile | User file rejected by &amp;lt;bot&amp;gt;: Not sharing userfile]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
[[Eggdrop_Startup_Errors| Why won't my Eggdrop start?]]&lt;br /&gt;
&lt;br /&gt;
[[NickServ| How do I authenticate to NickServ?]]&lt;br /&gt;
&lt;br /&gt;
[[Bot Auto Op| How do I make my Eggdrops securely op each other?]]&lt;br /&gt;
&lt;br /&gt;
[[Dynamic_Bans| How do I stop Eggdrop from removing bans?]]&lt;br /&gt;
&lt;br /&gt;
[[Hostmasks]]&lt;br /&gt;
&lt;br /&gt;
[[UTF-8]]&lt;br /&gt;
&lt;br /&gt;
[[Threaded DNS]]&lt;br /&gt;
&lt;br /&gt;
[[Timer_Drift| What does &amp;quot;timer drift - spun X minutes&amp;quot; mean?]]&lt;br /&gt;
&lt;br /&gt;
[[Tcl| What is Tcl?]]&lt;br /&gt;
&lt;br /&gt;
[[TermSignal| Eggdrop quit, and the last entry says &amp;quot;Received Terminal Signal&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[PBKDF2_transition| How should I upgrade to PBKDF2 hashing from Blowfish? (1.9.0+)]]&lt;br /&gt;
&lt;br /&gt;
== Tcl Examples ==&lt;br /&gt;
[[Setudef| Writing scripts that work only on selected channels]]&lt;br /&gt;
&lt;br /&gt;
[[MinutelyWho| Write a script that performs a /who on all channels]]&lt;br /&gt;
&lt;br /&gt;
[[EndOfWho| Writing a bind that triggers at the end of a 315 message (WHO listing)]]&lt;br /&gt;
&lt;br /&gt;
[[TclHTTPS| Writing a Tcl that can access https websites]]&lt;br /&gt;
&lt;br /&gt;
== Eggdrop Mechanics ==&lt;br /&gt;
This is a really technical section dedicated to what is happening under the covers... you probably will never need this information, but its good to have it documented somewhere!&lt;br /&gt;
&lt;br /&gt;
[[EggdropRecords|How Eggdrop tracks users]]&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=TclHTTPS&amp;diff=145</id>
		<title>TclHTTPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=TclHTTPS&amp;diff=145"/>
		<updated>2023-02-05T22:24:27Z</updated>

		<summary type="html">&lt;p&gt;Geo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The http package is a common package required by Tcl scripts that need to connect to websites. However, the &amp;quot;default&amp;quot; commands don't make it easy to understand how to connect to an https website instead of an http website, and will often generate an error if the user tries to do so. Below is an example of how to do so.&lt;br /&gt;
&lt;br /&gt;
NOTE: You have to install both the http AND tls Tcl libraries on the host for this to work- on Debian-based systems, this is done by an administrator running &amp;lt;code&amp;gt;sudo apt-get install tcl-tls&amp;lt;/code&amp;gt;. The http package comes standard with Tcl; you shouldn't need to install it separately.&lt;br /&gt;
&lt;br /&gt;
To connect to a webpage and display its contents, you can use the following code example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package require http&lt;br /&gt;
package require tls&lt;br /&gt;
&lt;br /&gt;
http::register https 443 [list ::tls::socket -autoservername true]&lt;br /&gt;
catch {set req [http::geturl https://my.secure.site/ -timeout 10000]} error    &lt;br /&gt;
set status [http::status $req]&lt;br /&gt;
if {$status != &amp;quot;ok&amp;quot;} {&lt;br /&gt;
  putlog &amp;quot;HTTP request error: $error&amp;quot;&lt;br /&gt;
  return&lt;br /&gt;
}&lt;br /&gt;
putlog [http::data $req]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eggheads.org/index.php?title=TclHTTPS&amp;diff=144</id>
		<title>TclHTTPS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eggheads.org/index.php?title=TclHTTPS&amp;diff=144"/>
		<updated>2023-02-05T22:23:43Z</updated>

		<summary type="html">&lt;p&gt;Geo: Created page with &amp;quot;The http package is a common package required by Tcl scripts that need to connect to websites. However, the &amp;quot;default&amp;quot; commands don't make it easy to understand how to connect to an https website instead of an http website, and will often generate an error if the user tries to do so. Below is an example of how to do so.  NOTE: You have to install both the http AND tls Tcl libraries on the host for this to work- on Debian-based systems, this is done by an administrator run...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The http package is a common package required by Tcl scripts that need to connect to websites. However, the &amp;quot;default&amp;quot; commands don't make it easy to understand how to connect to an https website instead of an http website, and will often generate an error if the user tries to do so. Below is an example of how to do so.&lt;br /&gt;
&lt;br /&gt;
NOTE: You have to install both the http AND tls Tcl libraries on the host for this to work- on Debian-based systems, this is done by an administrator running &amp;lt;code&amp;gt;sudo apt-get install tcl-tls&amp;lt;/code&amp;gt;. The http package comes standard with Tcl; you shouldn't need to install it separately.&lt;br /&gt;
&lt;br /&gt;
To connect to a webpage and display its contents, you can use the following code example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
package require http&lt;br /&gt;
package require tls&lt;br /&gt;
&lt;br /&gt;
http::register https 443 [list ::tls::socket -autoservername true]&lt;br /&gt;
catch {set req [http::geturl https://my.secure.site/ -timeout 10000]} error    &lt;br /&gt;
set status [http::status $req]&lt;br /&gt;
if {$status != &amp;quot;ok&amp;quot;} {&lt;br /&gt;
  putlog &amp;quot;HTTP request error: $error&amp;quot;&lt;br /&gt;
  return&lt;br /&gt;
}&lt;br /&gt;
putlog [http::data $req]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geo</name></author>
	</entry>
</feed>