diff --git a/guidebook/ae2-mechanics/energy.md b/guidebook/ae2-mechanics/energy.md
index fa90930eb84..4c78daaca5f 100644
--- a/guidebook/ae2-mechanics/energy.md
+++ b/guidebook/ae2-mechanics/energy.md
@@ -26,12 +26,14 @@ energy acceptors can intake at functionally unlimited speed, only limited by you
+
+
AE2 does not use Forge Energy (on Forge) or TechReborn Energy (on Fabric) internally. Instead it converts them to
its own unit, AE. This conversion is one-way. Energy can be converted by s and
s, though controller faces are better used for more [channels](../ae2-mechanics/channels.md).
-It can also be generated by s, but AE2 is designed
+It can also be generated by s or passively using a , but AE2 is designed
to be used with other tech mods that have better energy generation.
All this means that it's best to consider an AE2 network as a single large multiblock machine when laying out your base's
diff --git a/guidebook/items-blocks-machines/crystal_resonance_generator.md b/guidebook/items-blocks-machines/crystal_resonance_generator.md
new file mode 100644
index 00000000000..98579ad77dc
--- /dev/null
+++ b/guidebook/items-blocks-machines/crystal_resonance_generator.md
@@ -0,0 +1,23 @@
+---
+navigation:
+ parent: items-blocks-machines/items-blocks-machines-index.md
+ title: Crystal Resonance Generator
+ icon: crystal_resonance_generator
+ position: 110
+categories:
+- devices
+item_ids:
+- ae2:crystal_resonance_generator
+---
+
+# The Crystal Resonance Generator
+
+
+
+This device generates energy for your ME network without the need for fuel. Because of the crystal vibrations this device generates, only one can be used in each network. These vibrations even pass through .
+
+**Generation Rate:** AE/t
+
+## Recipes
+
+
diff --git a/src/main/java/appeng/client/guidebook/extensions/ConfigValueTagExtension.java b/src/main/java/appeng/client/guidebook/extensions/ConfigValueTagExtension.java
new file mode 100644
index 00000000000..a116ab44532
--- /dev/null
+++ b/src/main/java/appeng/client/guidebook/extensions/ConfigValueTagExtension.java
@@ -0,0 +1,42 @@
+package appeng.client.guidebook.extensions;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Supplier;
+
+import appeng.client.guidebook.compiler.PageCompiler;
+import appeng.client.guidebook.compiler.tags.FlowTagCompiler;
+import appeng.client.guidebook.document.flow.LytFlowParent;
+import appeng.core.AEConfig;
+import appeng.libs.mdast.mdx.model.MdxJsxElementFields;
+
+/**
+ * Provides access to AE2 config values in guide content.
+ */
+public class ConfigValueTagExtension extends FlowTagCompiler {
+ private static final Map> CONFIG_VALUES = Map.of(
+ "crystalResonanceGeneratorRate",
+ () -> String.valueOf(AEConfig.instance().getCrystalResonanceGeneratorRate()));
+
+ @Override
+ public Set getTagNames() {
+ return Set.of("ae2:ConfigValue");
+ }
+
+ @Override
+ protected void compile(PageCompiler compiler, LytFlowParent parent, MdxJsxElementFields el) {
+ var configValueName = el.getAttributeString("name", "");
+ if (configValueName.isEmpty()) {
+ parent.appendError(compiler, "name is required", el);
+ return;
+ }
+
+ var configValueSupplier = CONFIG_VALUES.get(configValueName);
+ if (configValueSupplier == null) {
+ parent.appendError(compiler, "unknown configuration value", el);
+ return;
+ }
+
+ parent.appendText(configValueSupplier.get());
+ }
+}
diff --git a/src/main/java/appeng/core/AppEngClient.java b/src/main/java/appeng/core/AppEngClient.java
index 01ef34f9dea..5f208d8d555 100644
--- a/src/main/java/appeng/core/AppEngClient.java
+++ b/src/main/java/appeng/core/AppEngClient.java
@@ -66,6 +66,8 @@
import appeng.client.guidebook.Guide;
import appeng.client.guidebook.PageAnchor;
import appeng.client.guidebook.command.GuidebookStructureCommands;
+import appeng.client.guidebook.compiler.TagCompiler;
+import appeng.client.guidebook.extensions.ConfigValueTagExtension;
import appeng.client.guidebook.hotkey.OpenGuideHotkey;
import appeng.client.guidebook.scene.ImplicitAnnotationStrategy;
import appeng.client.guidebook.scene.PartAnnotationStrategy;
@@ -190,6 +192,7 @@ private Guide createGuide(IEventBus modEventBus) {
return Guide.builder(modEventBus, MOD_ID, "ae2guide")
.extension(ImplicitAnnotationStrategy.EXTENSION_POINT, new PartAnnotationStrategy())
+ .extension(TagCompiler.EXTENSION_POINT, new ConfigValueTagExtension())
.build();
}