diff --git a/internal/packets/PARSER.md b/internal/packets/PARSER.md
index 9a8db77..e98d689 100644
--- a/internal/packets/PARSER.md
+++ b/internal/packets/PARSER.md
@@ -90,6 +90,42 @@ Organize related fields with automatic prefixing:
```
+## Templates
+
+Define reusable field groups that can be injected into packets:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+Templates work with groups for prefixing:
+
+```xml
+
+
+
+
+```
+
## Arrays
```xml
@@ -125,6 +161,7 @@ Organize related fields with automatic prefixing:
| Attribute | Description | Example |
|-----------|-------------|---------|
| `name` | Field name(s), comma-separated | `"id,account_id"` |
+| `use` | Template name to inject | `"position"` |
| `if` | Conditional parsing expression | `"flag:has_guild"` |
| `size` | Fixed array size for `char` type | `"10"` |
| `count` | Array size variable | `"var:item_count"` |
@@ -210,6 +247,17 @@ playerName := result["player_name"].(common.EQ2String16).Data
## Complete Example
```xml
+
+
+
+
+
+
+
+
+
+
+
@@ -221,7 +269,8 @@ playerName := result["player_name"].(common.EQ2String16).Data
-
+
+