Skip to main content

Configuration Files

aMule stores its configuration, data, and runtime files in a dedicated directory. Most of these files are compatible with or equivalent to eMule's files. Not all files exist at all times — many are created on demand.

This page is a catalogue: what each file is, what it is for, and where to find it. The only files meant to be edited by hand are amule.conf and remote.conf. For the on-disk format of the non-editable files (binary layouts, byte tables, parsing scripts), each entry links to the File Formats reference in the Developer Guide.

Platform paths

PlatformDirectory
Windows%APPDATA%\aMule\
macOS~/Library/Application Support/aMule/
Linux / Unix / BSD~/.aMule/

On macOS, whenever this reference writes ~/.aMule/, it means ~/Library/Application Support/aMule/.

note

These are aMule's configuration paths. For the download directories (Incoming, Temporary, and shared folders), see Directories.

All files at a glance

FileDescription
amule.confMain configuration — stores all user preferences
amule.conf.bakAutomatic backup of amule.conf (written on shutdown)
amule.conf.backupBackup of amule.conf, written only when started with --reset-config
remote.confConfiguration for remote tools (amulecmd, amuleweb, amulegui)
preferences.datStores the userhash and config file version
preferencesKad.datStores the client IP and Kademlia ClientID
cryptkey.dat384-bit RSA private key for Secure User Identification
server.meteD2k server list (IP, port, name, statistics)
server.met.bakAutomatic backup of server.met
server_auto.metTemporary file holding a server list during auto-update (deleted after merge)
staticservers.datStatic eD2k servers that override server.met entries
addresses.datURLs to download server.met updates from
nodes.datKnown Kademlia contacts for network bootstrap
known.metHash cache for shared files (avoids rehashing)
known2_64.metVerified AICH hashes for shared files (large file support)
clients.metCredit ledger: bytes uploaded/downloaded per peer
clients.met.bakAutomatic backup of clients.met
emfriends.metFriends list with last known IP, port, and timestamps
statistics.datLifetime traffic totals (cumulative bytes uploaded/downloaded)
canceled.metHashes of cancelled downloads (highlights them in search results)
shareddir.datUnion of all shared directories (regenerated automatically)
shareddir-explicit.datNon-recursive shared directory roots (user-added)
shareddir-recursive.datRecursive shared directory roots (contents shared including subdirectories)
ipfilter.datIP range block/allow list (auto-updated)
ipfilter_static.datStatic IP range overrides (never modified by aMule)
ED2KLinksOne-way interface for adding downloads to aMule
amulesig.dataMule status signature for external apps (17-line format)
onlinesig.dateMule-compatible 2-line status signature
muleLockPID file that prevents two simultaneous aMule instances
muleLockRGUIPID file for the Remote GUI (amulegui) instance
GeoLite2-Country.mmdbMaxMind GeoLite2 database for IP-to-country lookups
logfileLog of the current aMule session
logfile.bakLog of the previous aMule session
remotelogfileLog written by amulegui (Remote GUI) for its own session
lastversionHistory of the 10 most recently launched aMule versions
last_version_checkLatest release info fetched from GitHub (Releases API JSON)
last_versionRename destination of a successful version-check download
key_index.datKademlia keyword data this client publishes to the network
src_index.datKademlia source data this client publishes to the network
load_index.datKademlia client keyIDs and last-seen timestamps
casrcCAS image/HTML generation configuration
aMule-online-sign.htmlCAS-generated HTML status page
aMule-online-sign.pngCAS-generated PNG status image
*.partIn-progress download data (in Temp/)
*.part.metDownload metadata: hashes, verified chunks, tags (in Temp/)
*.part.met.bakRecovery backup of *.part.met (previous version, kept on each save)
*.part.met.tmpWrite-in-progress temp (renamed to .met on success)
*.part.met.seedsUp to 10 sources for rare files (in Temp/)

Configuration files

amule.conf

Location: ~/.aMule/amule.conf

This is aMule's main configuration file. It stores virtually all user preferences set through the Preferences dialog — connection limits, directories, interface settings, and more. The format is a standard Windows-style INI file. It is read on startup and written on exit.

amule.conf.bak is an automatic backup: on a clean shutdown aMule copies the current amule.conf to amule.conf.bak, so the previous session's configuration is always available.

A separate amule.conf.backup is written only when aMule is started with the --reset-config option: the existing configuration is renamed to amule.conf.backup before being reset to default values.

See the amule.conf reference for the complete key reference and a full example file.

remote.conf

Location: ~/.aMule/remote.conf

Configuration file for the remote tools — amulecmd, amuleweb, and the Remote GUI (amulegui). It stores the External Connections host, port, and password, plus tool-specific settings. The format is a standard INI file.

See the remote.conf reference for the complete key reference and a full example file.

preferences.dat

Location: ~/.aMule/preferences.dat

In early eMule versions this file stored all user configuration. In current aMule it stores only two fields: the configuration file version and the userhash — a 128-bit value that uniquely identifies your client on the eD2k network (used for credit tracking and Secure User Identification).

This file is not meant to be edited by hand. For its binary layout, see the preferences.dat format reference.

preferencesKad.dat

Location: ~/.aMule/preferencesKad.dat

Stores the client's IP address and its Kademlia ClientID. Both are used to identify the client on the Kad network.

For its binary layout, see the preferencesKad.dat format reference.

cryptkey.dat

Location: ~/.aMule/cryptkey.dat

Contains the client's 384-bit RSA private key, used for Secure User Identification. This key is unique to each client and is generated automatically the first time aMule runs.

warning

This file contains your private key. Never share it. If it is compromised, anyone can impersonate your client on the eD2k network.

For its storage format, see the cryptkey.dat format reference.

Network data files

server.met

Location: ~/.aMule/server.met

Binary database of known eD2k servers. Each entry records the server's IP address, TCP port, name, description, ping time, failure count, user count, and capability flags. The format is compatible with eMule's server.met. Servers listed in staticservers.dat override matching entries here. server.met.bak is an automatic backup. During an automatic server-list update, the downloaded list is written to server_auto.met first, then merged into server.met and deleted on success.

Obtaining server.met online

A current server.met can be downloaded on first run, when the local list is empty, or when all known servers are unreachable:

URLNotes
https://upd.emule-security.org/server.metDefault URL configured in aMule; maintained by the eMule Security project
https://shortypower.org/server.metAggregated server list
note

These are third-party services unaffiliated with the aMule project. Their availability may change over time.

Enter a URL in the Networks → eD2k tab to download immediately, or set Ed2kServersUrl in amule.conf for automatic updates at startup.

For the complete binary format and tag reference, see the server.met reference.

staticservers.dat

Location: ~/.aMule/staticservers.dat

A text file listing eD2k servers that should always be treated as static servers. When aMule loads, entries from this file override matching entries in server.met. This file is never modified by aMule.

For its line format, see the staticservers.dat format reference.

addresses.dat

Location: ~/.aMule/addresses.dat

A plain-text list of URLs from which aMule downloads server.met files on startup (if the "Update server list on startup" preference is enabled). The downloaded lists are merged into ~/.aMule/server.met.

For its format, see the addresses.dat format reference.

nodes.dat

Location: ~/.aMule/nodes.dat

Binary file storing known Kademlia contacts used to bootstrap the Kad network on startup.

Obtaining nodes.dat online

A fresh nodes.dat is useful on first run, when the local file is missing, or when it has become too stale to bootstrap into Kad:

URLNotes
https://upd.emule-security.org/nodes.datDefault URL configured in aMule; maintained by the eMule Security project
note

This is a third-party service unaffiliated with the aMule project. Its availability may change over time.

Enter a URL in the Networks → Kad tab to download immediately, or set KadNodesUrl in amule.conf for automatic updates. Once connected to Kad, aMule keeps nodes.dat up to date automatically.

For the complete binary format, see the nodes.dat reference.

known.met

Location: ~/.aMule/known.met

Binary file that caches the hashes, names, sizes, modification dates, priorities, and notes of shared files. This prevents aMule from having to rehash every shared file each time it starts — a significant time saving for large files.

For its format, see the known.met format reference.

known2_64.met

Location: ~/.aMule/known2_64.met

Binary file that stores the verified AICH hashes of shared files. Supports large files (64-bit sizes). This is the successor to the deprecated known2.met.

For more detail, see the known2_64.met format reference.

clients.met

Location: ~/.aMule/clients.met

Binary credit ledger: for every peer you have exchanged data with, it records the bytes uploaded and downloaded, used to compute the credits that influence your position in other clients' upload queues. clients.met.bak is an automatic backup.

See the clients.met reference for the complete binary format.

emfriends.met

Location: ~/.aMule/emfriends.met

Binary file storing your friends list: each entry keeps a friend's userhash, last known IP, port, and timestamps.

See the emfriends.met reference for the complete binary format.

canceled.met

Location: ~/.aMule/canceled.met

Binary file storing the MD4 hashes of all downloads the user has cancelled. When a file appears in a search result but its hash is listed here, aMule marks it with a distinct colour to indicate it was previously cancelled.

For its format, see the canceled.met format reference.

statistics.dat

Location: ~/.aMule/statistics.dat

Small binary file storing aMule's lifetime traffic totals — the cumulative number of bytes ever uploaded and downloaded across all sessions. aMule has stored these totals in this file since 2.3.1; earlier versions kept them in the [Statistics] section of amule.conf.

For its format, see the statistics.dat format reference.

Shared files

shareddir.dat, shareddir-explicit.dat, shareddir-recursive.dat

aMule uses three related files to track shared directories. For how to configure shared directories from the GUI, see Directories.

FilePurpose
shareddir-explicit.datCanonical. Non-recursive roots: only the immediate files in each listed directory are shared (subdirectories are not included).
shareddir-recursive.datCanonical. Recursive roots: aMule expands each listed directory to include all subdirectories.
shareddir.datDerived. Union of the expanded contents of the two canonical files. aMule regenerates this file automatically on every save. External tools that only know shareddir.dat (e.g. old scripts or older aMule versions) can still read it.

When aMule starts and neither shareddir-explicit.dat nor shareddir-recursive.dat exists (fresh install or migration from an older version), all entries in shareddir.dat are loaded as explicit (non-recursive) shares. This is the safe default for migration.

For the shared file format, see the shared directory files reference.

IP filter files

The IP filter blocks all traffic to and from a configurable list of IP addresses and ranges: blocked IPs cannot upload to you or download from you. The list is read from the two files below. aMule's ipfilter.dat is 100% compatible with eMule's. To enable and tune the filter, see Preferences → Security → IP-Filtering.

ipfilter.dat

Location: ~/.aMule/ipfilter.dat

Text file containing IP ranges that aMule should block or allow. aMule can auto-update this file by downloading a new one from a configurable URL. During the download, the new data is written to ipfilter.download first, then renamed to ipfilter.dat on success. The downloaded file may be a ZIP archive; aMule decompresses it automatically and accepts any of the entries named ipfilter.dat, guardian.p2p, or guarding.p2p (the PeerGuardian list filenames). For how to enable and tune the filter, see Preferences → Security → IP-Filtering; for the line format, see the ipfilter format reference.

If the local file cannot be loaded and Use system-wide ipfilter.dat if available (IPFilterSystem) is enabled, aMule falls back to a system-wide ipfilter.dat (on Linux, typically /usr/share/amule/ipfilter.dat). This lets a package manager or cron job maintain a shared file, so aMule does not have to re-download a large list at every startup.

Obtaining ipfilter.dat online

URLNotes
https://upd.emule-security.org/ipfilter.zipMaintained by the eMule Security project; distributed as a ZIP archive that aMule decompresses automatically
note

This is a third-party service unaffiliated with the aMule project. Its availability may change over time.

Configure the URL via the IPFilterURL key in amule.conf:

[eMule]
IPFilterURL=https://upd.emule-security.org/ipfilter.zip

ipfilter_static.dat

Location: ~/.aMule/ipfilter_static.dat

Same purpose as ipfilter.dat, but with two important differences: its entries override conflicting entries in ipfilter.dat, and aMule never modifies it. Use it for custom IP ranges that must survive auto-updates.

For its format (identical to ipfilter.dat) and the default comment block aMule writes, see the ipfilter format reference.

Always-filtered ranges (hard-coded)

In addition to the ranges loaded from the files above, aMule always blocks the reserved IP ranges defined by RFC 3330. These are reserved, special-use, or non-routable addresses that should never appear as eD2k peers. This list is compiled into aMule and cannot be disabled by any preference:

0.0.0.0/8 "This" Network [RFC1700]
39.0.0.0/8 Reserved but subject to allocation [RFC1797]
127.0.0.0/8 Loopback [RFC1700]
128.0.0.0/16 Reserved but subject to allocation
169.254.0.0/16 Link Local
191.255.0.0/16 Reserved but subject to allocation
192.0.0.0/24 Reserved but subject to allocation
192.0.2.0/24 Test-Net
192.88.99.0/24 6to4 Relay Anycast [RFC3068]
198.18.0.0/15 Network Interconnect Benchmarking [RFC2544]
223.255.255.0/24 Reserved but subject to allocation
224.0.0.0/4 Multicast [RFC3171]
240.0.0.0/4 Reserved for Future Use [RFC1700]

Separately, the private LAN ranges below are blocked only when Always filter LAN IPs (FilterLanIPs, in amule.conf) is enabled, which is the default:

10.0.0.0/8 Private-Use Networks [RFC1918]
172.16.0.0/12 Private-Use Networks [RFC1918]
192.168.0.0/16 Private-Use Networks [RFC1918]

Status and interface files

Location: ~/.aMule/ED2KLinks

A plain-text interface for sending commands to a running aMule instance. As soon as aMule detects that this file exists, it reads it, processes each entry, and deletes the file. The interface is one-directional (write-only from the user's perspective). It is used by browser plugins and the ed2k command-line tool to pass links to a running aMule session.

For its format, see the ED2KLinks format reference.

amulesig.dat

Location: ~/.aMule/amulesig.dat

aMule's native status signature file: a 17-line text file that external applications (such as the cas tool) read to display the client's current status. See the amulesig.dat reference for details.

onlinesig.dat

Location: ~/.aMule/onlinesig.dat

eMule-compatible 2-line status file. aMule generates it for compatibility with eMule utilities. The native aMule status file is amulesig.dat, which carries far more information.

For its format, see the onlinesig.dat format reference.

muleLock

Location: ~/.aMule/muleLock

Plain-text file containing the PID of the currently running aMule process. It is created when aMule starts and deleted when aMule exits normally.

On startup, aMule checks whether muleLock exists. If it does, aMule reads the PID and checks whether a process with that PID is currently running. If one is found, aMule refuses to start, preventing two simultaneous instances for the same user.

note

aMule does not verify that the running process is actually another aMule. Any process with the stored PID will block startup. If muleLock is left behind after a crash, delete it manually before restarting aMule.

The Remote GUI (amulegui) uses its own lock file, muleLockRGUI, with the same mechanism, so a local aMule instance and the Remote GUI do not block each other.

This file replaces the old muleconn socket file used in versions before 2.1.0.

GeoLite2-Country.mmdb

Location: ~/.aMule/GeoLite2-Country.mmdb

Binary database in MaxMind DB format (.mmdb), used to look up the country of any IP address. aMule uses this to display country flags next to clients and servers in the user interface.

The feature requires the libmaxminddb library at compile time (ENABLE_IP2COUNTRY CMake option).

note

Since aMule 3.0.0 the legacy GeoIP system (libGeoIP v1 / GeoIP.dat) is no longer used; it has been replaced by MaxMindDB. MaxMind discontinued the legacy .dat databases in 2019.

The configuration key GeoIPEnabled (in [eMule]) controls whether the feature is active. Country flag display can be disabled without deleting the file.

Obtaining the database

aMule does not ship the database. MaxMind requires a free account to download GeoLite2 databases:

  1. Register at maxmind.com and obtain a free license key.
  2. Download the GeoLite2-Country database in the binary .mmdb format (the GZIP download, not the CSV variant). MaxMind delivers it as GeoLite2-Country_YYYYMMDD.tar.gz — an archive containing a date-stamped subdirectory.
  3. Extract it: tar -xzvf GeoLite2-Country_*.tar.gz.
  4. Move the extracted database into place: mv GeoLite2-Country_*/GeoLite2-Country.mmdb ~/.aMule/GeoLite2-Country.mmdb.

Some community mirrors redistribute the same database; use them at your own risk and verify checksums when possible. Replacing the file requires an aMule restart.

Auto-update

aMule can refresh the database itself if you set a direct download URL in the GeoLiteCountryUpdateUrl key under [eMule]. There is no field for this in the GUI — edit amule.conf directly while aMule is not running:

GeoLiteCountryUpdateUrl=https://example.org/path/GeoLite2-Country.mmdb.gz

During an auto-update, aMule writes GeoLite2-Country.mmdb.download first, then renames it to GeoLite2-Country.mmdb on success. The .download file is temporary and can be deleted if it is left behind after a failed update. Leave the key empty (the default) to manage the file manually.

caution

aMule's auto-updater only understands .mmdb or .mmdb.gz files. MaxMind's official download URL (…&suffix=tar.gz) delivers a .tar.gz with a date-stamped subdirectory and does not work end-to-end — use a mirror that serves a plain .mmdb.gz, or download manually. This is why GeoLiteCountryUpdateUrl is empty by default; when the file is missing aMule logs a message asking for a manual download.

The on-disk layout is the standard MaxMind DB format and is not aMule-specific; see the GeoLite2 note in the File Formats reference.

Log files

logfile

Location: ~/.aMule/logfile

Plain-text log of the current aMule session, capturing all messages, warnings, and errors reported during operation. When a new session starts, the previous logfile is renamed to logfile.bak and a fresh one is created. Each line is prefixed with a YYYY-MM-DD HH:MM:SS: timestamp.

The amulegui writes its own separate log to ~/.aMule/remotelogfile, in the same format but recording only events from the GUI process.

Version tracking files

lastversion

Location: ~/.aMule/lastversion

Plain-text file recording the last 10 aMule versions launched on this machine, in reverse chronological order (most recent first), one version string per line. aMule uses it to detect version upgrades and show first-run messages. When an 11th version is added, the oldest entry is dropped.

last_version_check

Location: ~/.aMule/last_version_check

File holding the response of aMule's update check. aMule queries the GitHub Releases API (https://api.github.com/repos/amule-org/amule/releases/latest) and stores the returned JSON here; it then extracts the tag_name field and compares it with the running version to notify the user of updates. On a successful download the file is renamed to last_version.

This replaces the legacy single-line lastversion text file that was fetched from SourceForge, which has been unmaintained since the project moved to GitHub.

Kademlia index files

key_index.dat, src_index.dat and load_index.dat

Location: ~/.aMule/key_index.dat, ~/.aMule/src_index.dat, ~/.aMule/load_index.dat

Binary files that store the Kademlia network index data this client maintains as a node of the Kad network:

  • key_index.dat — keyword index: the keywords this client publishes so other clients can search for files through it.
  • src_index.dat — source index: the sources (which clients hold which files) this client publishes.
  • load_index.dat — keyIDs of known Kademlia clients with their last-seen dates, used to gauge network load.

All three are internal to the Kad implementation and are not intended for manual editing.

For more detail, see the Kad index files format reference.

CAS files

casrc, aMule-online-sign.html, aMule-online-sign.png

Files used by the cas status-image tool: casrc is its configuration, and aMule-online-sign.html / aMule-online-sign.png are the HTML and PNG status outputs it generates. See the cas / wxcas documentation for details.

Temporary download files

*.part, *.part.met and related

Each in-progress download in the Temp/ directory is represented by a group of files: *.part (the partial data), *.part.met (metadata: hashes, verified chunks, tags), *.part.met.bak (recovery backup of *.part.met), *.part.met.tmp (short-lived write-in-progress temp), and *.part.met.seeds (up to 10 sources for rare files).

See the Temporary download files reference for the complete formats.

Deprecated files

These files are no longer created by current aMule versions but may be present in older installations.

FileReplaced byDeprecated since
~/.eMule/~/.aMule/amule.confaMule 2.0.0
~/.aMule/aMule.tmpl~/.aMule/webserver/ (skin directory)aMule 2.0.0
~/.aMule/known2.met~/.aMule/known2_64.met (large-file support)
~/.aMule/muleconn~/.aMule/muleLockaMule 2.1.0
~/.aMule/server_met.old(backup of server.met, no longer written)
~/.aMule/GeoIP.dat~/.aMule/GeoLite2-Country.mmdb (MaxMind DB format)aMule 3.0.0