diff --git a/media/attribution.js b/media/attribution.js
index 53e618ab..2468ba70 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -9496,6 +9496,13 @@ const attributionData = {
                 "chemicalcrux"
             ]
         },
+        {
+            prefix: "./media/objects/signs",
+            all: "https://www.txdot.gov/inside-txdot/forms-publications/publications/highway-signs.html",
+            authors: [
+                "txdot"
+            ]
+        },
         {
             prefix: "./media/objects/",
             files: [
@@ -12732,6 +12739,10 @@ const attributionData = {
             "name": "Pliskin",
             "url": "https://www.furaffinity.net/user/pliskin",
         },
+        "txdot": {
+            "name": "TxDOT",
+            "url": "https://www.txdot.gov/content/txdot/en.html",
+        },
     }
 }
 
diff --git a/media/objects/signs/highway-exit.svg b/media/objects/signs/highway-exit.svg
new file mode 100644
index 00000000..0863e6a5
--- /dev/null
+++ b/media/objects/signs/highway-exit.svg
@@ -0,0 +1,169 @@
+
+
+
diff --git a/media/objects/signs/pedestrian-crossing.svg b/media/objects/signs/pedestrian-crossing.svg
new file mode 100644
index 00000000..35c8184a
--- /dev/null
+++ b/media/objects/signs/pedestrian-crossing.svg
@@ -0,0 +1,25 @@
+
+
+
diff --git a/media/objects/signs/stop-sign.svg b/media/objects/signs/stop-sign.svg
new file mode 100644
index 00000000..4dbf8a57
--- /dev/null
+++ b/media/objects/signs/stop-sign.svg
@@ -0,0 +1,28 @@
+
+
+
diff --git a/media/objects/signs/yield-sign.svg b/media/objects/signs/yield-sign.svg
new file mode 100644
index 00000000..c7944d32
--- /dev/null
+++ b/media/objects/signs/yield-sign.svg
@@ -0,0 +1,27 @@
+
+
+
diff --git a/presets/objects.js b/presets/objects.js
index f6b8f4af..6ec7221c 100644
--- a/presets/objects.js
+++ b/presets/objects.js
@@ -583,6 +583,17 @@ function makeObjects() {
         "cell_"
     ))
 
+    results.push(makeHeight(
+        [
+            ["stop-sign", 36, "inches"],
+            ["yield-sign", 36, "inches"],
+            ["pedestrian-crossing", 30, "inches"],
+            ["highway-exit", 150, "inches"]
+        ],
+        "Signs",
+        ""
+    ))
+
 
     results.sort((b1, b2) => {
         e1 = b1.constructor();