File: server.html

package info (click to toggle)
eggdrop 1.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,596 kB
  • sloc: ansic: 65,863; javascript: 8,908; sh: 5,337; tcl: 3,801; makefile: 1,771; python: 121
file content (383 lines) | stat: -rw-r--r-- 21,927 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
<!DOCTYPE html>

<html lang="en" data-content_root="../../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Server Module &#8212; Eggdrop 1.10.1rc2 documentation</title>
    <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
    <link rel="stylesheet" type="text/css" href="../../_static/eggdrop.css?v=ab48a1b6" />
    <script src="../../_static/documentation_options.js?v=290de6c6"></script>
    <script src="../../_static/doctools.js?v=9bcbadda"></script>
    <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="Share Module" href="share.html" />
    <link rel="prev" title="Seen Module" href="seen.html" /> 
  </head><body>
    <div class="header-wrapper" role="banner">
      <div class="header">
        <div class="headertitle"><a
          href="../../index.html">Eggdrop 1.10.1rc2 documentation</a></div>
        <div class="rel" role="navigation" aria-label="related navigation">
          <a href="seen.html" title="Seen Module"
             accesskey="P">previous</a> |
          <a href="share.html" title="Share Module"
             accesskey="N">next</a>
        </div>
       </div>
    </div>

    <div class="content-wrapper">
      <div class="content">
        <div class="sidebar">
          
          <h3>Table of Contents</h3>
          <p class="caption" role="heading"><span class="caption-text">Installing Eggdrop</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../install/readme.html">README</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../install/install.html">Installing Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../install/upgrading.html">Upgrading Eggdrop</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Using Eggdrop</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../using/features.html">Eggdrop Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/core.html">Eggdrop Core Settings</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/partyline.html">The Party Line</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/autoscripts.html">Eggdrop Autoscripts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/users.html">Users and Flags</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/bans.html">Bans, Invites, and Exempts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/botnet.html">Botnet Sharing and Linking</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/ipv6.html">IPv6 support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/tls.html">TLS support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/ircv3.html">IRCv3 support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/accounts.html">Account tracking in Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/pbkdf2info.html">Encryption/Hashing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/python.html">Using the Python Module</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/twitchinfo.html">Twitch</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/tricks.html">Advanced Tips</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/text-sub.html">Textfile Substitutions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/tcl-commands.html">Eggdrop Tcl Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/twitch-tcl-commands.html">Eggdrop Twitch Tcl Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../using/patch.html">Patching Eggdrop</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Tutorials</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/setup.html">Setting Up Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/firststeps.html">Common First Steps</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/tlssetup.html">Enabling TLS Security on Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/userfilesharing.html">Sharing Userfiles</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/firstscript.html">Writing an Eggdrop Tcl Script</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/module.html">Writing a Basic Eggdrop Module</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Eggdrop Modules</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Eggdrop Module Information</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../included.html">Modules included with Eggdrop</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="assoc.html">Assoc Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="blowfish.html">Blowfish Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="channels.html">Channels Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="compress.html">Compress Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="console.html">Console Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="ctcp.html">CTCP Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="dns.html">DNS Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="filesys.html">Filesys Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="ident.html">Ident Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="irc.html">IRC Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="notes.html">Notes Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pbkdf2.html">PBKDF2 Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="python.html">Python Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="seen.html">Seen Module</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Server Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="share.html">Share Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="transfer.html">Transfer Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="twitch.html">Twitch Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="woobie.html">Woobie Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="uptime.html">Uptime Module</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../writing.html">How to Write an Eggdrop Module</a></li>
<li class="toctree-l1"><a class="reference internal" href="../internals.html">Eggdrop Bind Internals</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">About Eggdrop</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../about/about.html">About Eggdrop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../about/legal.html">Boring legal stuff</a></li>
</ul>

          <div role="search">
            <h3 style="margin-top: 1.5em;">Search</h3>
            <form class="search" action="../../search.html" method="get">
                <input type="text" name="q" />
                <input type="submit" value="Go" />
            </form>
          </div>

        </div>
        <div class="document">
            
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <p>Last revised: October 25, 2010</p>
<section id="server-module">
<span id="server"></span><h1>Server Module<a class="headerlink" href="#server-module" title="Link to this heading">¶</a></h1>
<p>This module provides the core server support. You have to load this if
you want your bot to come on IRC. Not loading this is equivalent to the
old NO_IRC define.</p>
<p>This module requires: none</p>
<p>Put this line into your Eggdrop configuration file to load the server
module:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">loadmodule</span> <span class="n">server</span>
</pre></div>
</div>
<p>There are also some variables you can set in your config file:</p>
<blockquote>
<div><dl class="simple">
<dt>set net-type Efnet</dt><dd><p>What is your network? Possible allowed values are Efnet, IRCnet, Undernet,
DALnet, Libera, freenode, Quakenet, Rizon, Other. If the network you use is
not listed, using “Other” is a good sane choice and can be customized with
settings both here and in the IRC module sections of the config file.</p>
</dd>
<dt>set nick “LamestBot”</dt><dd><p>Set the nick the bot uses on IRC, and on the botnet unless you specify a
separate botnet-nick, here.</p>
</dd>
<dt>set altnick “L?m?stB?t”</dt><dd><p>Set the alternative nick which the bot uses on IRC if the nick specified
by ‘set nick’ is unavailable. All ‘?’ characters will be replaced by
random numbers.</p>
</dd>
<dt>set keep-nick 1</dt><dd><p>This setting makes the bot try to get his original nickname back if its
primary nickname is already in use.</p>
</dd>
<dt>set realname “/msg LamestBot hello”</dt><dd><p>Set here what to display in the real-name field for the bot.</p>
</dd>
</dl>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bind</span> <span class="n">evnt</span> <span class="o">-</span> <span class="n">init</span><span class="o">-</span><span class="n">server</span> <span class="n">evnt</span><span class="p">:</span><span class="n">init_server</span>
<span class="n">proc</span> <span class="n">evnt</span><span class="p">:</span><span class="n">init_server</span> <span class="p">{</span><span class="nb">type</span><span class="p">}</span> <span class="p">{</span>
  <span class="k">global</span> <span class="n">botnick</span>
  <span class="n">putquick</span> <span class="s2">&quot;MODE $botnick +i-ws&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
<p>… is Tcl scripting that is run immediately after connecting to a server.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span> <span class="n">init</span><span class="o">-</span><span class="n">server</span> <span class="p">{</span> <span class="n">putquick</span> <span class="s2">&quot;MODE $botnick +i-ws&quot;</span> <span class="p">}</span>
</pre></div>
</div>
<p>… is Tcl scripting that is run immediately after connecting to a server.
It is limited to 120 characters, and is depriciated due to the EVNT bind
(see doc/tcl-commands.doc).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span> <span class="n">connect</span><span class="o">-</span><span class="n">server</span> <span class="p">{</span> <span class="n">putlog</span> <span class="s2">&quot;Connecting to server.&quot;</span> <span class="p">}</span>
</pre></div>
</div>
<p>… is Tcl scripting that is run immediately before connecting to a server.
It is limited to 120 characters, and is depriciated due to the EVNT bind
(see doc/tcl-commands.doc).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span> <span class="n">disconnect</span><span class="o">-</span><span class="n">server</span> <span class="p">{</span> <span class="n">putlog</span> <span class="s2">&quot;Disconnected from server.&quot;</span> <span class="p">}</span>
</pre></div>
</div>
<p>… is a Tcl script that is run immediately after disconnecting from a
server. It is limited to 120 characters, and is depriciated due to the
EVNT bind (see doc/tcl-commands.doc).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span> <span class="n">servers</span> <span class="p">{</span>
  <span class="n">you</span><span class="o">.</span><span class="n">need</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">change</span><span class="o">.</span><span class="n">this</span><span class="p">:</span><span class="mi">6667</span>
  <span class="n">another</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="p">:</span><span class="mi">7000</span><span class="p">:</span><span class="n">password</span>
  <span class="p">[</span><span class="mi">2001</span><span class="p">:</span><span class="n">db8</span><span class="p">:</span><span class="mi">618</span><span class="p">:</span><span class="mi">5</span><span class="n">c0</span><span class="p">:</span><span class="mi">263</span><span class="p">::]:</span><span class="mi">6669</span><span class="p">:</span><span class="n">password</span>
  <span class="n">ssl</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">net</span><span class="p">:</span><span class="o">+</span><span class="mi">6697</span>
<span class="p">}</span>
</pre></div>
</div>
<p>… is the bot’s server list. The bot will start at the first server
listed, and cycle through them whenever it gets disconnected. You need
to change these servers to YOUR network’s servers.</p>
<blockquote>
<div><dl class="simple">
<dt>The format is:</dt><dd><p>server[:port[:password]]</p>
</dd>
<dt>Prefix the port with a plus sign to attempt a SSL connection:</dt><dd><p>server:+port[:password]</p>
</dd>
</dl>
<p>Both the port and password fields are optional; however, if you want to
set a password or use SSL you must also set a port. If a port isn’t
specified it will default to your default-port setting.</p>
</div></blockquote>
<dl>
<dt>set default-port 6667</dt><dd><p>Set the default port which should be used if none is specified with
‘.jump’ or in ‘set servers’.</p>
</dd>
<dt>set msg-rate 2</dt><dd><p>Number of seconds to wait between transmitting queued lines to the
server. Lower this value at your own risk. ircd is known to start flood
control at 512 bytes/2 seconds.</p>
</dd>
<dt>set ssl-verify-servers 0</dt><dd><p>Control certificate verification for servers. You can set this by adding
together the numbers for all exceptions you want to enable. By default
certificate verification is disabled and all certificates are assumed to
be valid. The numbers are the following:</p>
<p>The numbers are the following:</p>
<blockquote>
<div><table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>0</p></td>
<td><p>disable verification</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>enable certificate verification</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>allow self-signed certificates</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>don’t check peer common or alt names</p></td>
</tr>
<tr class="row-odd"><td><p>8</p></td>
<td><p>allow expired certificates</p></td>
</tr>
<tr class="row-even"><td><p>16</p></td>
<td><p>allow certificates which are not valid yet</p></td>
</tr>
<tr class="row-odd"><td><p>32</p></td>
<td><p>allow revoked certificates</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
</dd>
<dt>set server-cycle-wait 60</dt><dd><p>This setting defines how long Eggdrop should wait before moving from one
server to another on disconnect. If you set 0 here, Eggdrop will not wait
at all and will connect instantly. Setting this too low could result in
your bot being K:Lined.</p>
</dd>
<dt>set server-timeout 60</dt><dd><p>Set here how long Eggdrop should wait for a response when connecting to
a server before giving up and moving on to next server.</p>
</dd>
<dt>set check-stoned 1</dt><dd><p>Set this to 1 if Eggdrop should check for stoned servers? (where the
server connection has died, but Eggdrop hasn’t been notified yet).</p>
</dd>
<dt>set serverror-quit 1</dt><dd><p>If you want your bot to exit the server if it receives an ERROR message,
set this to 1.</p>
</dd>
<dt>set max-queue-msg 300</dt><dd><p>Set here the maximum number of lines to queue to the server. If you’re
going to dump large chunks of text to people over IRC, you will probably
want to raise this. 300 is fine for most people though.</p>
</dd>
<dt>set quiet-reject 1</dt><dd><p>This setting makes the bot squelch the error message when rejecting a
DCC CHAT, SEND or message command. Normally, Eggdrop notifies the user
that the command has been rejected because they don’t have access. Note
that sometimes IRC server operators detect bots that way.</p>
</dd>
<dt>set flood-msg 5:60</dt><dd><p>Set here how many msgs in how many seconds from one host constitutes
a flood. If you set this to 0:0, msg flood protection will be disabled.</p>
</dd>
<dt>set flood-ctcp 3:60</dt><dd><p>Set here how many ctcps in how many seconds from one host are
recognized as a flood. Not specifying or using number = 0
will not check against ctcp floods.</p>
</dd>
<dt>set answer-ctcp 3</dt><dd><p>Set how many ctcps should be answered at once here.</p>
</dd>
<dt>set lowercase-ctcp 0</dt><dd><p>If you want your bot to answer lower case ctcp requests (non rfc-
compliant), set this setting to 1. mIRC will do this, most other
clients will not.</p>
</dd>
<dt>set trigger-on-ignore 0</dt><dd><p>If you want Eggdrop to trigger binds for ignored users, set this to 1.</p>
</dd>
<dt>set exclusive-binds 0</dt><dd><p>This setting configures PUBM and MSGM binds to be exclusive of PUB
and MSG binds. This means if a MSGM bind with the mask “<em>help</em>” exists
and is triggered, any MSG bindings with “help” in their mask will not
be triggered. Don’t enable this unless you know what you are doing!</p>
</dd>
<dt>set double-mode 0</dt><dd><p>Allow identical messages in the mode queue?</p>
</dd>
<dt>set double-server 0</dt><dd><p>Allow identical messages in the server queue?</p>
</dd>
<dt>set double-help 0</dt><dd><p>Allow identical messages in the help queue?</p>
</dd>
<dt>set use-penalties 1 (default on net-type IRCnet)</dt><dd><p>This enables Eggdrop’s penalty calculation. Every command Eggdrop sends
to the IRC server raises its penalty points. If Eggdrop reaches a server
limit, it gets disconnected with “excess flood” message. Eggdrop is able
to count internal those penalty points, too and take measures against
excess flooding. Note: it’s highly advised to turn this on!</p>
</dd>
<dt>set optimize-kicks 1</dt><dd><p>This optimizes the kick queue. It also traces nick changes and parts in
the channel and changes the kick queue accordingly. There are three
different options for this setting:</p>
<blockquote>
<div><table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>0</p></td>
<td><p>Turn it off.</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>Optimize the kick queue by summarizing kicks.</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>Trace nick changes and parts on the channel and change the queue
accordingly. For example, bot will not try to kick users who have
already parted the channel.</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
<p>ATTENTION: Setting 2 is very CPU intensive.</p>
</dd>
</dl>
</div></blockquote>
<p>There are additional settings for ‘net-type’ Efnet.</p>
<blockquote>
<div><p><em>net-type 5 specific features:</em></p>
<p>Attention: Use this settings <em>only</em> if you set ‘net-type’ to Efnet!</p>
<blockquote>
<div><dl class="simple">
<dt>set check-mode-r 1</dt><dd><p>This settings defines how umode +r is understood by Eggdrop. Some
networks use +r to indicate a restricted connection. If this is your
case, and you want your bot to leave restricted servers and jump to
the next server on its list, then set it to 1.
Please note, this setting is automatically set to 0 for net-type of
Efnet, Undernet, and DALnet, and set to 1 for net-type IRCNet.</p>
</dd>
<dt>set nick-len 9</dt><dd><p>This setting allows you to specify the maximum nick-length supported by
your network. The default setting is 9. The maximum supported length by
Eggdrop is 32.</p>
</dd>
</dl>
</div></blockquote>
<p>Copyright (C) 2000 - 2025 Eggheads Development Team</p>
</div></blockquote>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
        </div>
        <div class="clearer"></div>
      </div>
    </div>

    <div class="footer-wrapper">
      <div class="footer">
        <div class="left">
          <div role="navigation" aria-label="related navigaton">
            <a href="seen.html" title="Seen Module"
              >previous</a> |
            <a href="share.html" title="Share Module"
              >next</a>
          </div>
          <div role="note" aria-label="source link">
          </div>
        </div>

        <div class="right">
          
    <div class="footer" role="contentinfo">
    &#169; Copyright 2025, Eggheads.
      Last updated on Aug 15, 2025.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
    </div>
        </div>
        <div class="clearer"></div>
      </div>
    </div>

  </body>
</html>