AE2 Web Integration
Discord & ntfy notifications
Receive updates when tracked crafting jobs complete or are canceled, in a Discord channel or on your phone.
1. Prepare the server
Start with a working AE2 Web Integration server. Open
config/ae2webintegration/config.toml and disable public mode:
[general]
public_mode = false
Crafting notifications require this mode, which makes the web panel available through the Admin account. You can use Discord, ntfy or both. Edit the existing sections in the generated file and keep your other settings.
2. Set up Discord
- In Discord, open Server Settings, then Integrations. Select Create Webhook and choose the text channel for updates. Your Discord role needs the Manage Webhooks permission.
-
Select Copy Webhook URL and put the complete URL in
discord.webhook. - Optionally set
discord.role_idto the numeric ID of a role to mention.
[discord]
webhook = 'paste-your-webhook-url-here'
role_id = ''
crafting_style = 'IMAGE_CARD'
Leave role_id empty for no role mention. When set, the role is mentioned on every
Discord notification. Keep the webhook URL private; it allows posting to that channel. An empty
webhook disables this destination.
crafting_style sets how a crafting notification looks. It defaults to
IMAGE_CARD. Every style includes the text message with the item, quantity, network,
CPU, duration and requesters.
IMAGE_CARD: adds a dark card image with the same details.SMALL_ICON: adds the item's icon as a small thumbnail.SIMPLE: sends text only.
The images use the server's icon pack. SMALL_ICON sends text only when no icon is
available for the item, and IMAGE_CARD shows a placeholder instead of the icon, or
sends text if the card cannot be created.
Discord's webhook guide includes the service's setup screens.
3. Set up ntfy
-
Install the ntfy app and subscribe to a topic on
ntfy.shor your own ntfy server. The official phone setup guide covers the Android and iOS apps. -
Set
ntfy.hostto that server's base address andntfy.topicto the exact topic name you subscribed to. Keep the topic out of the host address. -
For a topic that requires authentication, fill in both
ntfy.userandntfy.passwordusing an account allowed to publish there. Otherwise leave both empty.
[ntfy]
host = 'ntfy.sh'
topic = 'your-topic-name'
user = ''
password = ''
An unprotected topic is accessible to anyone who knows its name. Choose a hard-to-guess topic or configure access control on your ntfy server.
A host without a protocol uses HTTPS. You can also provide a complete base address such as
https://ntfy.example.com. Both host and topic are required. Filling in only one of user
or password disables ntfy. See ntfy's
authentication documentation
for topic permissions.
4. Choose filters and the panel link
[notifications]
minimum_crafting_duration_seconds = 0
minimum_crafting_amount = 0
full_domain = ''
Both minimums must be met for a crafting notification to be sent. Duration is measured in seconds;
amount uses the job's recorded final output quantity. Both default to
0, which allows all tracked jobs through these filters. Use nonnegative whole numbers
to raise either minimum.
These filters apply to completed and canceled jobs on both destinations. Integration startup and configuration warning messages are separate and do not use these filters.
To open your web panel when an ntfy notification is selected, set
notifications.full_domain to its complete browser address, including the protocol and
port when needed. Use an address reachable from the receiving device. An empty value disables that
link. This setting applies to ntfy.
5. Enable crafting tracking for each network
- Sign in to the web panel as Admin and choose a network.
- Open Network details.
- Enable Record crafting history and select Save settings.
Repeat this for each network whose jobs should send updates. Tracking must be enabled when a job starts and when it ends. The crafting notification includes the network name, CPU name, output name and quantity, elapsed time and whether the job completed or was canceled. A network without a name is shown by its identifier.
Discord and ntfy notifications also say who requested the job. A player is shown by name, an order placed in the web terminal as Web, and a machine request as Automation. When requests are merged into a running job, each different requester is listed, separated by commas; a repeat from the same player or source appears once. If no requester was recorded, the notification shows Unknown.
Jobs started by machines
Player crafting requests are eligible by default. To include requests made directly by machines, enable this setting too:
[tracking]
track_machine_crafting = true
This defaults to false. The network must still have crafting tracking enabled.
6. Apply the configuration and check delivery
Save config.toml, then restart the Minecraft server or run this command with server
operator permission level 4:
/ae2webintegration reload
The reload restarts the web server and initializes the configured destinations. The mod sends an integration startup message to each enabled destination when public mode is disabled. Then start a new job on a tracked network and let it complete to check crafting notifications with your chosen filters.
If updates do not arrive
No startup message
Check the destination values and apply the configuration again. For Discord, confirm that the full webhook URL was copied. For ntfy, check the host, topic and matching subscription, and supply either both credentials or neither. Check the Minecraft server log for a webhook request failure or an HTTP response error.
Startup works, but crafting updates are missing
Confirm general.public_mode = false, enable Record crafting history on
the correct network and start a new job. Check both notification minimums. For a request started
directly by a machine, also check tracking.track_machine_crafting. A warning about
public mode means crafting notifications are disabled until you change it and reload.
The ntfy notification opens the wrong address
Update notifications.full_domain to the panel address you use on that device, then
reload the configuration. The notification link opens the panel; normal web access and login
settings still apply.