diff --git a/rojo-test/build-test-snapshots/end_to_end__tests__build__issue_546.snap b/rojo-test/build-test-snapshots/end_to_end__tests__build__issue_546.snap
new file mode 100644
index 00000000..3107344a
--- /dev/null
+++ b/rojo-test/build-test-snapshots/end_to_end__tests__build__issue_546.snap
@@ -0,0 +1,14 @@
+---
+source: tests/tests/build.rs
+assertion_line: 98
+expression: contents
+---
+
+ -
+
+ issue_546
+ true
+ print("Hello, world!")
+
+
+
diff --git a/rojo-test/build-tests/issue_546/README.md b/rojo-test/build-tests/issue_546/README.md
new file mode 100644
index 00000000..7ccd95fa
--- /dev/null
+++ b/rojo-test/build-tests/issue_546/README.md
@@ -0,0 +1,2 @@
+# Issue #546 (https://github.com/rojo-rbx/rojo/issues/546)
+Regression from Rojo 6.2.0 to Rojo 7.0.0. Meta files named as init.meta.json should apply after init.client.lua and other init files.
\ No newline at end of file
diff --git a/rojo-test/build-tests/issue_546/default.project.json b/rojo-test/build-tests/issue_546/default.project.json
new file mode 100644
index 00000000..65c91a52
--- /dev/null
+++ b/rojo-test/build-tests/issue_546/default.project.json
@@ -0,0 +1,6 @@
+{
+ "name": "issue_546",
+ "tree": {
+ "$path": "hello"
+ }
+}
\ No newline at end of file
diff --git a/rojo-test/build-tests/issue_546/hello/init.client.lua b/rojo-test/build-tests/issue_546/hello/init.client.lua
new file mode 100644
index 00000000..1385fe3e
--- /dev/null
+++ b/rojo-test/build-tests/issue_546/hello/init.client.lua
@@ -0,0 +1 @@
+print("Hello, world!")
\ No newline at end of file
diff --git a/rojo-test/build-tests/issue_546/hello/init.meta.json b/rojo-test/build-tests/issue_546/hello/init.meta.json
new file mode 100644
index 00000000..54f46925
--- /dev/null
+++ b/rojo-test/build-tests/issue_546/hello/init.meta.json
@@ -0,0 +1,5 @@
+{
+ "properties": {
+ "Disabled": true
+ }
+}
\ No newline at end of file
diff --git a/src/snapshot_middleware/dir.rs b/src/snapshot_middleware/dir.rs
index bad35c81..404b794d 100644
--- a/src/snapshot_middleware/dir.rs
+++ b/src/snapshot_middleware/dir.rs
@@ -10,6 +10,40 @@ pub fn snapshot_dir(
context: &InstanceContext,
vfs: &Vfs,
path: &Path,
+) -> anyhow::Result