diff --git a/buildNumber.properties b/buildNumber.properties
index 81ae460b..05f0dd2d 100644
--- a/buildNumber.properties
+++ b/buildNumber.properties
@@ -1,3 +1,3 @@
#maven.buildNumber.plugin properties file
-#Wed Feb 28 20:29:21 EST 2024
-buildNumber=26
+#Thu Feb 29 11:18:06 EST 2024
+buildNumber=29
diff --git a/docs/src/architecture/architectureindex.md b/docs/src/architecture/architectureindex.md
new file mode 100644
index 00000000..ab9fb748
--- /dev/null
+++ b/docs/src/architecture/architectureindex.md
@@ -0,0 +1 @@
+@page architectureindex Engine Architecture
diff --git a/docs/src/blender/WeavingMeshes.md b/docs/src/blender/WeavingMeshes.md
index 82960aed..83ef5ebd 100644
--- a/docs/src/blender/WeavingMeshes.md
+++ b/docs/src/blender/WeavingMeshes.md
@@ -1,4 +1,4 @@
-# Weaving Meshes
+@page WeavingMeshes Weaving Meshes
diff --git a/docs/src/blender/indexblender.md b/docs/src/blender/indexblender.md
new file mode 100644
index 00000000..6f11c447
--- /dev/null
+++ b/docs/src/blender/indexblender.md
@@ -0,0 +1,4 @@
+@page blenderindex Blender
+
+[TOC]
+- @subpage WeavingMeshes
diff --git a/docs/src/codegen/codegen.md b/docs/src/codegen/codegen.md
index 8a14459d..e7ccd9a2 100644
--- a/docs/src/codegen/codegen.md
+++ b/docs/src/codegen/codegen.md
@@ -1,3 +1,4 @@
+@page codegen Internal Field Synchronization
## Behavior Trees
diff --git a/docs/src/codegen/indexcodegen.md b/docs/src/codegen/indexcodegen.md
new file mode 100644
index 00000000..4c181ca8
--- /dev/null
+++ b/docs/src/codegen/indexcodegen.md
@@ -0,0 +1,5 @@
+@page codegenindex Internal Code Generation
+
+
+[TOC]
+- @subpage codegen
\ No newline at end of file
diff --git a/docs/src/debug/LoadingHalting.md b/docs/src/debug/LoadingHalting.md
index 6e7eff1c..050740b6 100644
--- a/docs/src/debug/LoadingHalting.md
+++ b/docs/src/debug/LoadingHalting.md
@@ -1,4 +1,4 @@
-# Debug Loading Halting
+@page LoadingHalting Debug Loading Halting
A very common issue is that the loading for the client never completes for a certain gamemode.
The goal of this doc is to track causes for this so that it can be debugged faster in the future.
diff --git a/docs/src/debug/indexdebug.md b/docs/src/debug/indexdebug.md
new file mode 100644
index 00000000..4dd3a7ed
--- /dev/null
+++ b/docs/src/debug/indexdebug.md
@@ -0,0 +1,5 @@
+@page indexdebug Debugging
+
+
+[TOC]
+- @subpage LoadingHalting
\ No newline at end of file
diff --git a/docs/src/documentation/doxygen.md b/docs/src/documentation/doxygen.md
index 28220903..1fe3c92f 100644
--- a/docs/src/documentation/doxygen.md
+++ b/docs/src/documentation/doxygen.md
@@ -1,4 +1,4 @@
-# Documentation System Explanation
+@page doxygen Documentation System Explanation
The engine uses doxygen to document its features, code, and organization.
## Building
diff --git a/docs/src/documentation/indexdocumentation.md b/docs/src/documentation/indexdocumentation.md
new file mode 100644
index 00000000..38764459
--- /dev/null
+++ b/docs/src/documentation/indexdocumentation.md
@@ -0,0 +1,5 @@
+@page indexdocumentation Documentation
+
+
+[TOC]
+- @subpage doxygen
\ No newline at end of file
diff --git a/docs/src/entitytypes/entitytypesindex.md b/docs/src/entitytypes/entitytypesindex.md
new file mode 100644
index 00000000..d5eb9491
--- /dev/null
+++ b/docs/src/entitytypes/entitytypesindex.md
@@ -0,0 +1,4 @@
+@page entitytypesindex Entity Types
+
+[TOC]
+- @subpage treesystem
\ No newline at end of file
diff --git a/docs/src/foliage/treesystem.md b/docs/src/entitytypes/treesystem.md
similarity index 99%
rename from docs/src/foliage/treesystem.md
rename to docs/src/entitytypes/treesystem.md
index f69e6289..493a62a2 100644
--- a/docs/src/foliage/treesystem.md
+++ b/docs/src/entitytypes/treesystem.md
@@ -1,4 +1,4 @@
-# Tree System
+@page treesystem Tree System
### The Concept
diff --git a/docs/src/highlevel-design/highleveldesignindex.md b/docs/src/highlevel-design/highleveldesignindex.md
new file mode 100644
index 00000000..63428334
--- /dev/null
+++ b/docs/src/highlevel-design/highleveldesignindex.md
@@ -0,0 +1,4 @@
+@page highleveldesignindex High Level Game Design
+
+[TOC]
+- @subpage macroWorldPartitioning
\ No newline at end of file
diff --git a/docs/src/highlevel-design/macroWorldPartitioning.md b/docs/src/highlevel-design/macroWorldPartitioning.md
index f6d49291..a157bbea 100644
--- a/docs/src/highlevel-design/macroWorldPartitioning.md
+++ b/docs/src/highlevel-design/macroWorldPartitioning.md
@@ -1,4 +1,4 @@
-# Macro World Partitioning
+@page macroWorldPartitioning Macro World Partitioning
diff --git a/docs/src/navmesh/indexnavmesh.md b/docs/src/navmesh/indexnavmesh.md
new file mode 100644
index 00000000..4f4ea58a
--- /dev/null
+++ b/docs/src/navmesh/indexnavmesh.md
@@ -0,0 +1,4 @@
+@page navmeshIndex Navigation Systems
+
+[TOC]
+- @subpage navmesh
\ No newline at end of file
diff --git a/docs/src/navmesh/navmesh.md b/docs/src/navmesh/navmesh.md
new file mode 100644
index 00000000..c56b39f8
--- /dev/null
+++ b/docs/src/navmesh/navmesh.md
@@ -0,0 +1,14 @@
+@page navmesh Nav Mesh System
+
+
+
+
+## High Level Overview
+https://github.com/ppiastucki/recast4j
+recast4j is a java lib that provides java version of recast and detour. Recast generates navmeshes, detour handles pathfinding through meshes generated with recast.
+Goal is to eventually bake them into the engine.
+
+
+## Future Goals
+
+ - Overhaul existing, broken navmesh logic to leverage recast and detour
\ No newline at end of file
diff --git a/docs/src/physics/collision.md b/docs/src/physics/collision.md
index b098a0e4..7dc81c71 100644
--- a/docs/src/physics/collision.md
+++ b/docs/src/physics/collision.md
@@ -1,4 +1,4 @@
-# Collision Engine
+@page collision Collision Engine
diff --git a/docs/src/physics/indexphysics.md b/docs/src/physics/indexphysics.md
new file mode 100644
index 00000000..46634fb6
--- /dev/null
+++ b/docs/src/physics/indexphysics.md
@@ -0,0 +1,5 @@
+@page physicsindex Physics and Collision Systems
+
+[TOC]
+- @subpage collision
+- @subpage physics
\ No newline at end of file
diff --git a/docs/src/physics/physics.md b/docs/src/physics/physics.md
index 8b134750..18c7ddfa 100644
--- a/docs/src/physics/physics.md
+++ b/docs/src/physics/physics.md
@@ -1,4 +1,4 @@
-# Physics Engine
+@page physics Physics Engine
## High Level Overview
The goal of the physics engine is to wrap around the collision engine to allow physics to occur within the game.
diff --git a/docs/src/drawcell/DrawCell.md b/docs/src/rendering/DrawCell.md
similarity index 90%
rename from docs/src/drawcell/DrawCell.md
rename to docs/src/rendering/DrawCell.md
index ba1a773d..671aa9d4 100644
--- a/docs/src/drawcell/DrawCell.md
+++ b/docs/src/rendering/DrawCell.md
@@ -1,4 +1,4 @@
-# Draw Cells
+@page DrawCell Draw Cells
TODO
diff --git a/docs/src/fonts/Fonts.md b/docs/src/rendering/Fonts.md
similarity index 98%
rename from docs/src/fonts/Fonts.md
rename to docs/src/rendering/Fonts.md
index cddf0391..54d518a4 100644
--- a/docs/src/fonts/Fonts.md
+++ b/docs/src/rendering/Fonts.md
@@ -1,4 +1,4 @@
-# Fonts
+@page Fonts Fonts
diff --git a/docs/src/rendering/indexdrawcell.md b/docs/src/rendering/indexdrawcell.md
new file mode 100644
index 00000000..041e6ec2
--- /dev/null
+++ b/docs/src/rendering/indexdrawcell.md
@@ -0,0 +1,7 @@
+@page indexrendering Rendering
+
+
+[TOC]
+- @subpage DrawCell
+- @subpage Fonts
+- @subpage modelLoading
\ No newline at end of file
diff --git a/docs/src/resources/modelLoading.md b/docs/src/rendering/modelLoading.md
similarity index 95%
rename from docs/src/resources/modelLoading.md
rename to docs/src/rendering/modelLoading.md
index 473806ee..998adc3b 100644
--- a/docs/src/resources/modelLoading.md
+++ b/docs/src/rendering/modelLoading.md
@@ -1,4 +1,4 @@
-# Model Loading
+@page modelLoading Model Loading
TODO
diff --git a/docs/src/server-common/entitySpawning.md b/docs/src/server-common/entitySpawning.md
index 3e8ca51f..0e546868 100644
--- a/docs/src/server-common/entitySpawning.md
+++ b/docs/src/server-common/entitySpawning.md
@@ -1,4 +1,4 @@
-# Entity Spawning
+@page entitySpawning Entity Spawning
Recommended flow and tips for spawning entities from the server
diff --git a/docs/src/server-common/servercommonindex.md b/docs/src/server-common/servercommonindex.md
new file mode 100644
index 00000000..f918b1b0
--- /dev/null
+++ b/docs/src/server-common/servercommonindex.md
@@ -0,0 +1,4 @@
+@page servercommonindex Common Server Tasks
+
+[TOC]
+- @subpage entitySpawning
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 25641ee7..4b953e48 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,6 +11,7 @@
17
3.2.3
1.9.19
+ 1.5.7
@@ -179,6 +180,40 @@
1.9.0
+
+
+
+
+ org.recast4j
+ recast
+ ${recast.version}
+
+
+ org.recast4j
+ detour
+ ${recast.version}
+
+
+ org.recast4j
+ detour-crowd
+ ${recast.version}
+
+
+ org.recast4j
+ detour-tile-cache
+ ${recast.version}
+
+
+ org.recast4j
+ detour-extras
+ ${recast.version}
+
+
+ org.recast4j
+ detour-dynamic
+ ${recast.version}
+
+