diff --git a/scripts/nav_obstacle.gd b/scripts/nav_obstacle.gd
new file mode 100644
index 0000000..6aa7838
--- /dev/null
+++ b/scripts/nav_obstacle.gd
@@ -0,0 +1,27 @@
+extends Node3D
+
+@export var aabb: AABB = AABB(Vector3(-1,0,-1),Vector3(2,2,2))
+@export var weight: float = 10.0
+@export var make_solid: bool = true
+
+var enable_timer: float = 1.0
+var enabled: bool = false
+
+func _process(delta: float) -> void:
+	if enable_timer > 0:
+		enable_timer -= delta
+	if !enabled and enable_timer <= 0:
+		enabled = true
+		update()
+	
+func update() -> void:
+	var global_aabb: AABB = global_transform * aabb
+	#DebugDraw3D.draw_aabb(global_aabb, Color.DARK_CYAN, 5)
+	for map_rid in NavigationServer3D.get_maps():
+		for region_rid in NavigationServer3D.map_get_regions(map_rid):
+			var region_aabb: AABB = NavigationServer3D.region_get_bounds(region_rid).grow(0.1)
+			#DebugDraw3D.draw_aabb(region_aabb, Color.YELLOW, 5)
+			if global_aabb.intersects(region_aabb):
+				NavigationServer3D.region_set_travel_cost(region_rid, weight)
+				#NavigationServer3D.region_set_enabled(region_rid, false)
+				DebugDraw3D.draw_aabb(region_aabb, Color.RED, 5)
diff --git a/scripts/nav_obstacle.gd.uid b/scripts/nav_obstacle.gd.uid
new file mode 100644
index 0000000..6be287b
--- /dev/null
+++ b/scripts/nav_obstacle.gd.uid
@@ -0,0 +1 @@
+uid://bcp3fwf3nds3k