diff --git a/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml
new file mode 100644
index 000000000000..e3cbda05749b
--- /dev/null
+++ b/.github/workflows/rerun_flaky_tests.yml
@@ -0,0 +1,37 @@
+name: Rerun/Report Flaky Tests
+on:
+ workflow_run:
+ workflows: [Checks]
+ types:
+ - completed
+
+permissions:
+ actions: write
+ contents: write
+ issues: write
+
+jobs:
+ rerun_flaky_tests:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt == 1 }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Rerun flaky tests
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { rerunFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js')
+ await rerunFlakyTests({ github, context })
+ report_flaky_tests:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.run_attempt == 2 }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Report flaky tests
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { reportFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js')
+ await reportFlakyTests({ github, context })
diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
index cfe522aeb415..bda6fb742d53 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
@@ -373,7 +373,7 @@
name = "charge rifle"
},
/obj/item/gun/energy/lasercannon{
- pixel_y = 5;
+ pixel_y = 5
},
/obj/item/gun/energy/lasercannon,
/obj/effect/turf_decal/industrial/hatch,
diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
index ea1a18b11c4b..6a81ff12aaac 100644
--- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
@@ -67,6 +67,11 @@
},
/turf/open/water/beach/deep,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"eB" = (
+/obj/item/storage/box/ammo/c38,
+/obj/structure/closet/crate/wooden,
+/turf/open/floor/wood,
+/area/ruin/beach)
"eJ" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -200,12 +205,6 @@
/obj/structure/railing/corner,
/turf/open/water/beach/deep,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"kj" = (
-/obj/structure/closet/cabinet,
-/obj/item/pneumatic_cannon/speargun,
-/obj/item/melee/knife/hunting,
-/turf/open/floor/wood,
-/area/ruin/beach)
"kr" = (
/obj/effect/turf_decal/weather/sand/corner{
dir = 1
@@ -280,11 +279,6 @@
},
/turf/open/floor/plating/asteroid/sand,
/area/overmap_encounter/planetoid/cave/explored)
-"mq" = (
-/obj/item/ammo_box/c38_box,
-/obj/structure/closet/crate/wooden,
-/turf/open/floor/wood,
-/area/ruin/beach)
"my" = (
/obj/effect/turf_decal/weather/sand{
dir = 5
@@ -745,12 +739,27 @@
},
/turf/open/floor/wood/ebony,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"CJ" = (
+/obj/structure/closet/cabinet,
+/obj/item/pneumatic_cannon/speargun,
+/obj/item/melee/knife/hunting,
+/obj/machinery/light/small/directional/east{
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/wood,
+/area/ruin/beach)
"CV" = (
/obj/machinery/grill,
/obj/effect/turf_decal/corner/opaque/pink/diagonal,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plastic,
/area/ruin/beach)
+"DG" = (
+/obj/structure/closet/cabinet,
+/obj/item/pneumatic_cannon/speargun,
+/obj/item/melee/knife/hunting,
+/turf/open/floor/wood,
+/area/ruin/beach)
"DL" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -1047,15 +1056,6 @@
/obj/effect/turf_decal/siding/white/corner,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"PB" = (
-/obj/structure/closet/cabinet,
-/obj/item/pneumatic_cannon/speargun,
-/obj/item/melee/knife/hunting,
-/obj/machinery/light/small/directional/east{
- light_color = "#d8b1b1"
- },
-/turf/open/floor/wood,
-/area/ruin/beach)
"PC" = (
/obj/effect/turf_decal/weather/sand{
dir = 10
@@ -2186,9 +2186,9 @@ sz
ut
Ty
oS
-mq
-kj
-PB
+eB
+DG
+CJ
ut
BW
BN
diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
index 997f6bb56703..839e87815f93 100644
--- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
@@ -666,13 +666,8 @@
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
-/obj/item/ammo_box/c38_box{
- pixel_x = 10;
- pixel_y = 8
- },
-/obj/item/ammo_box/c38_box{
- pixel_x = 10
- },
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/structure/sign/poster/contraband/energy_swords{
pixel_x = -32
},
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index 29710e094f64..42aa6b288469 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -383,7 +383,7 @@
"EF" = (
/obj/effect/decal/cleanable/blood/gibs/torso,
/obj/structure/safe,
-/obj/item/ammo_box/a12g/slug,
+/obj/item/storage/box/ammo/a12g_slug,
/obj/item/melee/knife/combat,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
index aab9b566f78e..f6efbca453e2 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
@@ -3050,7 +3050,7 @@
/obj/item/clothing/under/rank/security/officer/blueshirt,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/shoes/jackboots,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/machinery/light/small/broken/directional/north,
/obj/effect/turf_decal/corner/transparent/bar/three_quarters{
dir = 4
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
index 4d63ae26b5bb..8f3921ed0520 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
@@ -92,7 +92,7 @@
name = "armory locker";
req_one_access_txt = "1"
},
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_buckshot,
/turf/open/floor/mineral/plastitanium,
/area/ruin/unpowered/crashed_starwalker)
"bL" = (
@@ -942,7 +942,7 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/crate/secure/gear,
-/obj/item/ammo_box/c10mm/surplus,
+/obj/item/storage/box/ammo/c10mm_surplus,
/obj/item/weaponcrafting/stock,
/obj/item/weaponcrafting/stock{
pixel_x = -6
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
index 92fa7dfb9203..6ad3e8ba7458 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
@@ -883,7 +883,7 @@
/area/overmap_encounter/planetoid/lava/explored)
"zb" = (
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{
- loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon);
+ loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon)
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/overmap_encounter/planetoid/cave/explored)
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
index ef9240170e41..183df18879da 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
@@ -2745,7 +2745,7 @@
/area/ruin/rockplanet/nanotrasen)
"WY" = (
/obj/structure/frame/computer{
- dir = 1;
+ dir = 1
},
/obj/effect/turf_decal/corner/opaque/red/diagonal,
/turf/open/floor/plasteel/tech/techmaint,
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
index 2fd3caa4c42f..3926cffbbf81 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
@@ -3086,7 +3086,7 @@
pixel_x = -3
},
/obj/item/ammo_box/magazine/illestren_a850r,
-/obj/item/ammo_box/c9mm/ap,
+/obj/item/storage/box/ammo/c9mm/ap,
/obj/item/ammo_box/magazine/illestren_a850r,
/obj/item/ammo_box/magazine/co9mm{
start_empty = 1
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
index a86efe2e9744..a47ad168fb72 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
@@ -1862,10 +1862,7 @@
pixel_x = 5;
pixel_y = 7
},
-/obj/item/ammo_box/foambox/riot{
- pixel_x = -3;
- pixel_y = -3
- },
+/obj/item/storage/box/ammo/foam_darts/riot,
/obj/structure/cable{
icon_state = "4-8"
},
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
index 3394913e2d2d..f18742a8aadb 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
@@ -2002,7 +2002,7 @@
},
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
-/obj/item/storage/pistolcase/ringneck,
+/obj/item/gun/ballistic/automatic/pistol/rattlesnake/no_mag,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdocksecure)
"rK" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
index b903fd3cce78..c7b060634951 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
@@ -1301,7 +1301,7 @@
"XP" = (
/obj/structure/table,
/obj/item/trash/can,
-/obj/item/ammo_box/c45/surplus,
+/obj/item/storage/box/ammo/c45_surplus,
/turf/open/floor/concrete,
/area/ruin)
"XS" = (
diff --git a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
index 3d05cfb13d35..e126234531f2 100644
--- a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
+++ b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
@@ -2694,8 +2694,8 @@
/obj/structure/closet/crate/secure/weapon{
name = "Ammo Crate"
},
-/obj/item/ammo_box/c9mm/surplus,
-/obj/item/ammo_box/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
/turf/open/floor/plasteel,
diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
index db3f30c15f76..6b75031ae8ba 100644
--- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
@@ -320,7 +320,7 @@
/obj/item/toy/talking/AI{
pixel_x = 20
},
-/obj/item/ammo_box/foambox/riot,
+/obj/item/storage/box/ammo/foam_darts/riot,
/obj/item/gun/ballistic/shotgun/toy,
/turf/open/floor/light,
/area/ruin/space/has_grav/spacemall/shop2)
@@ -2434,7 +2434,7 @@
/area/ruin/space/has_grav/spacemall)
"jm" = (
/obj/structure/rack,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/item/ammo_box/magazine/co9mm{
pixel_x = 5
},
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
index aa5797d05a95..dba9f5e3c3c9 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
@@ -118,13 +118,13 @@
/area/ruin/powered)
"gw" = (
/obj/structure/table,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c45,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/mono/white,
/area/ruin/powered)
"gx" = (
/obj/structure/table,
-/obj/item/ammo_box/c9mm/rubbershot,
+/obj/item/storage/box/ammo/c9mm_rubber,
/turf/open/floor/plasteel/mono/white,
/area/ruin/powered)
"gz" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
index 934b648c0bd6..adab5732e0c1 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
@@ -23,7 +23,7 @@
/area/ruin/wasteplanet)
"bc" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet)
"bd" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
index 60325851692d..a53934c91013 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
@@ -3042,10 +3042,10 @@
icon_state = "0-2"
},
/obj/structure/closet/wall/directional/west,
-/obj/item/gun/ballistic/revolver,
/obj/item/clothing/suit/hooded/wintercoat/captain,
/obj/item/storage/firstaid/o2,
/obj/machinery/light/small/broken/directional/north,
+/obj/item/gun/ballistic/revolver/viper/indie,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"Mf" = (
diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm
index d1cc698c0c92..7f8e7b569c68 100644
--- a/_maps/shuttles/independent/independent_dwayne.dmm
+++ b/_maps/shuttles/independent/independent_dwayne.dmm
@@ -272,9 +272,9 @@
dir = 9
},
/obj/effect/decal/cleanable/dirt,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/structure/closet/crate/secure/plasma{
name = "ammo crate";
desc = "A secure ammo crate."
diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm
index 35f955ff0b3d..f9504be9d31e 100644
--- a/_maps/shuttles/independent/independent_kilo.dmm
+++ b/_maps/shuttles/independent/independent_kilo.dmm
@@ -661,7 +661,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/item/ammo_box/a12g/rubbershot,
+/obj/item/storage/box/ammo/a12g_rubbershot,
/obj/item/gun/ballistic/shotgun/doublebarrel/presawn{
spawnwithmagazine = 0
},
@@ -1875,7 +1875,7 @@
icon_state = "9-10"
},
/obj/effect/decal/cleanable/oil,
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_buckshot,
/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm
index d6cb54aed39c..d87ae083832b 100644
--- a/_maps/shuttles/independent/independent_rigger.dmm
+++ b/_maps/shuttles/independent/independent_rigger.dmm
@@ -4132,7 +4132,7 @@
name = "ammunition locker";
req_access_txt = "1"
},
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/m45/rubber,
/obj/item/ammo_box/magazine/m45/rubber,
/obj/item/ammo_box/magazine/m45,
diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm
index 3bf95ea99b6f..75784c301eda 100644
--- a/_maps/shuttles/independent/independent_shetland.dmm
+++ b/_maps/shuttles/independent/independent_shetland.dmm
@@ -3475,7 +3475,7 @@
req_access_txt = "1";
req_ship_access = 1
},
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/effect/turf_decal/box,
/obj/item/ammo_box/c38,
/obj/item/ammo_box/c38,
diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm
index 74ac142692c6..70f32bfb60f2 100644
--- a/_maps/shuttles/inteq/inteq_colossus.dmm
+++ b/_maps/shuttles/inteq/inteq_colossus.dmm
@@ -2224,9 +2224,7 @@
name = "folder"
},
/obj/item/pen/fourcolor,
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/item/reagent_containers/food/drinks/coffee{
pixel_y = 20
},
@@ -4212,9 +4210,7 @@
desc = "A slick black folder stamped 'Property of Inteq Risk Management Group.'";
name = "folder"
},
-/obj/item/stamp/law{
- name = "master at arms' rubber stamp"
- },
+/obj/item/stamp/inteq/maa,
/obj/item/table_bell{
pixel_y = 13
},
diff --git a/_maps/shuttles/inteq/inteq_hound.dmm b/_maps/shuttles/inteq/inteq_hound.dmm
index da82ccbf26b7..c6f9e34a653d 100644
--- a/_maps/shuttles/inteq/inteq_hound.dmm
+++ b/_maps/shuttles/inteq/inteq_hound.dmm
@@ -50,10 +50,7 @@
pixel_x = -11;
pixel_y = 5
},
-/obj/item/ammo_box/a762_40/inteq{
- pixel_x = 5;
- pixel_y = 12
- },
+/obj/item/storage/box/ammo/a762_40/inteq,
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
pixel_x = -7;
pixel_y = 6
@@ -2346,9 +2343,7 @@
/obj/item/gps{
pixel_x = 12
},
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/item/pen/fountain,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm
index 2ab9a9405507..79ec309513f8 100644
--- a/_maps/shuttles/inteq/inteq_talos.dmm
+++ b/_maps/shuttles/inteq/inteq_talos.dmm
@@ -2529,9 +2529,7 @@
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 1
},
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -5797,9 +5795,7 @@
desc = "A slick black folder stamped 'Property of Inteq Risk Management Group.'";
name = "folder"
},
-/obj/item/stamp/law{
- name = "master at arms' rubber stamp"
- },
+/obj/item/stamp/inteq/maa,
/obj/item/table_bell{
pixel_x = -15
},
@@ -7830,9 +7826,7 @@
/obj/item/megaphone/cargo{
name = "engineering megaphone"
},
-/obj/item/stamp/ce{
- name = "honorable artificer's rubber stamp"
- },
+/obj/item/stamp/inteq/artificer,
/obj/item/clothing/glasses/meson/engine,
/obj/item/clothing/glasses/welding,
/obj/item/pipe_dispenser,
diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm
index 3f709a261b15..247743c165bf 100644
--- a/_maps/shuttles/inteq/inteq_valor.dmm
+++ b/_maps/shuttles/inteq/inteq_valor.dmm
@@ -4430,6 +4430,7 @@
/obj/item/storage/lockbox/medal/sec,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/head/inteq_peaked,
+/obj/item/stamp/inteq/vanguard,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"Od" = (
@@ -4805,6 +4806,7 @@
/obj/item/clothing/glasses/hud/health/sunglasses,
/obj/item/storage/box/hypospray/CMO,
/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/stamp/inteq/corpsman,
/turf/open/floor/carpet/blue,
/area/ship/bridge)
"RT" = (
@@ -5074,14 +5076,8 @@
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/structure/rack,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/ammo_box/c9mm/rubbershot{
- pixel_x = 5;
- pixel_y = 10
- },
-/obj/item/ammo_box/c9mm{
- pixel_x = -2;
- pixel_y = 2
- },
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm,
/obj/machinery/light/small/directional/north,
/obj/structure/sign/poster/official/safety_report{
pixel_x = 32
diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm
index 92e024ba7bf6..662ce9c5e3d6 100644
--- a/_maps/shuttles/inteq/inteq_vaquero.dmm
+++ b/_maps/shuttles/inteq/inteq_vaquero.dmm
@@ -684,9 +684,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/structure/cable{
icon_state = "1-8"
},
@@ -3367,9 +3365,8 @@
name = "folder";
pixel_x = 5
},
-/obj/item/stamp/law{
- name = "master at arms' rubber stamp";
- pixel_x = 5
+/obj/item/stamp/inteq/maa{
+ pixel_x = 6
},
/obj/item/table_bell{
pixel_x = -4;
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
index 9e5d93f7af77..72bd430d743b 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
@@ -5189,9 +5189,9 @@
/obj/item/reagent_containers/spray/pepper,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm/rubbershot,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
/obj/effect/turf_decal/trimline/opaque/vired/line,
/obj/item/storage/belt/security,
/obj/item/melee/knife/survival,
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
index a5673c22d7bc..a02ec78fc9e6 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
@@ -13072,22 +13072,10 @@
pixel_x = 5;
pixel_y = 4
},
-/obj/item/ammo_box/c9mm{
- pixel_x = 4;
- pixel_y = -6
- },
-/obj/item/ammo_box/c9mm{
- pixel_x = 4;
- pixel_y = 1
- },
-/obj/item/ammo_box/c9mm{
- pixel_x = 4;
- pixel_y = 9
- },
-/obj/item/ammo_box/c9mm/ap{
- pixel_y = 17;
- pixel_x = 4
- },
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm/ap,
/obj/item/stock_parts/cell/gun{
pixel_x = -3;
pixel_y = -5
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
index 07b8722e5e7b..d70424c08c84 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
@@ -1750,11 +1750,11 @@
/obj/structure/chair/handrail{
dir = 4
},
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm/rubbershot,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 10
},
diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm
index fc08d44db510..3e48d25a962c 100644
--- a/_maps/shuttles/pirate/pirate_tortuga.dmm
+++ b/_maps/shuttles/pirate/pirate_tortuga.dmm
@@ -667,10 +667,7 @@
/area/ship/security/armory)
"hU" = (
/obj/structure/rack,
-/obj/item/ammo_box/c45{
- pixel_x = -9;
- pixel_y = 8
- },
+/obj/item/storage/box/ammo/c45,
/obj/item/storage/toolbox/ammo/a762_40{
pixel_x = 5;
pixel_y = 6
@@ -3141,7 +3138,7 @@
/obj/item/clothing/shoes/jackboots{
pixel_y = -13
},
-/obj/item/ammo_box/c38_box/surplus,
+/obj/item/storage/box/ammo/c38_surplus,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/carpet/nanoweave,
/area/ship/crew/crewtwo)
diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm
index 0e501c62ed57..23c64f4681a6 100644
--- a/_maps/shuttles/roumain/srm_elder.dmm
+++ b/_maps/shuttles/roumain/srm_elder.dmm
@@ -337,18 +337,12 @@
pixel_y = 14;
pixel_x = 5
},
-/obj/item/ammo_box/c38_box{
- pixel_x = -6;
- pixel_y = 7
- },
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/illestren_a850r{
pixel_x = 8;
pixel_y = 6
},
-/obj/item/ammo_box/c38_box{
- pixel_x = -6;
- pixel_y = 1
- },
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/illestren_a850r{
pixel_x = 8
},
@@ -2025,7 +2019,7 @@
pixel_x = -7
},
/obj/item/storage/backpack/satchel/leather,
-/obj/item/ammo_box/a44roum,
+/obj/item/storage/box/ammo/a44roum,
/obj/item/storage/pistolcase/montagne,
/obj/item/clothing/accessory/waistcoat/roumain,
/turf/open/floor/wood/mahogany,
@@ -2698,7 +2692,7 @@
/obj/item/gun/ballistic/revolver/detective,
/obj/item/ammo_box/c38,
/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/item/clothing/head/cowboy/sec/roumain/colligne,
/obj/item/clothing/suit/armor/roumain/colligne,
/obj/structure/closet/secure_closet/collignes,
diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm
index bacabd6cc23c..f08281a47103 100644
--- a/_maps/shuttles/solgov/solgov_chronicle.dmm
+++ b/_maps/shuttles/solgov/solgov_chronicle.dmm
@@ -273,7 +273,7 @@
/obj/item/spacecash/bundle/loadsamoney,
/obj/item/clothing/neck/cloak/solgovcap,
/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/carpet/royalblue,
/area/ship/crew/office)
"cg" = (
diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm
index 27427f9bbfa2..1a38d735246b 100644
--- a/_maps/shuttles/solgov/solgov_inkwell.dmm
+++ b/_maps/shuttles/solgov/solgov_inkwell.dmm
@@ -5934,7 +5934,7 @@
/obj/item/pen/fountain/solgov,
/obj/item/clothing/neck/cloak/solgovcap,
/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/wood/maple,
/area/ship/crew/dorm/dormtwo)
"LJ" = (
diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm
index 9cfda7a14c0d..e062f70d011d 100644
--- a/_maps/shuttles/solgov/solgov_paracelsus.dmm
+++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm
@@ -3582,7 +3582,7 @@
/obj/item/pen/fountain/solgov,
/obj/item/clothing/neck/cloak/solgovcap,
/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/carpet/royalblue,
/area/ship/crew)
"IZ" = (
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
index 66133d79d47a..7d0278f8b906 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
@@ -65,7 +65,7 @@
/obj/item/ammo_box/a357/match,
/obj/item/pen/edagger,
/obj/item/storage/pistolcase/a357,
-/obj/item/ammo_box/a357_box,
+/obj/item/storage/box/ammo/a357,
/turf/open/floor/carpet/black,
/area/ship/bridge)
"bJ" = (
@@ -301,8 +301,8 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/airalarm/directional/north,
/obj/effect/turf_decal/industrial/outline,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/c10mm,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"fC" = (
@@ -762,9 +762,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/item/stamp/qm{
- name = "foreman's rubber stamp"
- },
+/obj/item/stamp/ngr/foreman,
/obj/machinery/button/shieldwallgen{
dir = 1;
id = "hyena_cargo";
@@ -795,10 +793,12 @@
/area/ship/bridge)
"oF" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/documents/syndicate/mining,
-/obj/structure/filingcabinet,
+/obj/structure/filingcabinet{
+ dir = 1
+ },
/obj/machinery/firealarm/directional/west,
/obj/effect/turf_decal/borderfloorblack,
+/obj/item/folder/documents/syndicate/ngr,
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
"oJ" = (
@@ -1870,14 +1870,17 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/paper_bin/carbon,
-/obj/item/folder/documents/syndicate/red,
/obj/item/pen/fountain/captain,
-/obj/item/stamp/hos{
- name = "captain's rubber stamp"
- },
/obj/effect/turf_decal/borderfloorblack{
dir = 1
},
+/obj/item/stamp/ngr{
+ pixel_x = 13;
+ pixel_y = 7
+ },
+/obj/item/stamp/ngr/captain{
+ pixel_x = 13
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
"Ge" = (
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
index c466f5351f9c..4b42a90bbb26 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
@@ -5387,7 +5387,7 @@
},
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/structure/closet/secure_closet/wall/directional/west{
icon_state = "sec_wall";
diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
index 29f4bc28922b..3a3438c8f2f8 100644
--- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
+++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
@@ -7376,7 +7376,7 @@
},
/obj/item/storage/belt/sabre/solgov,
/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
"Qv" = (
@@ -8879,7 +8879,7 @@
name = "Armory Access";
req_access = list(3,150)
},
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"YJ" = (
diff --git a/check_regex.yaml b/check_regex.yaml
index a56bd83644d3..94f37cdcf83e 100644
--- a/check_regex.yaml
+++ b/check_regex.yaml
@@ -38,7 +38,7 @@ standards:
- exactly:
[
- 261,
+ 262,
"non-bitwise << uses",
'(?[victim] successfully rips [weapon] out of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].")
else
victim.visible_message("[victim] successfully rips [weapon] off of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].")
diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm
index a6c67af2d3cd..9306f6aae899 100644
--- a/code/datums/components/radioactive.dm
+++ b/code/datums/components/radioactive.dm
@@ -30,7 +30,7 @@
//Let's make er glow
//This relies on parent not being a turf or something. IF YOU CHANGE THAT, CHANGE THIS
var/atom/movable/master = parent
- master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2))
+ master.add_filter("rad_glow", 2, list("type" = "outline", "color" = RAD_GLOW_COLOR, "size" = 2))
addtimer(CALLBACK(src, PROC_REF(glow_loop), master), rand(1,19))//Things should look uneven
START_PROCESSING(SSradiation, src)
diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm
index 0d3d520c2b54..4d3d07576cc0 100644
--- a/code/datums/components/tackle.dm
+++ b/code/datums/components/tackle.dm
@@ -376,7 +376,7 @@
user.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE)
playsound(user, 'sound/effects/splat.ogg', 70, TRUE)
- user.emote("scream")
+ user.force_scream()
user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed!
shake_camera(user, 7, 7)
user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash)
diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm
index ea607f2a31fc..df39c5f06591 100644
--- a/code/datums/diseases/advance/symptoms/deafness.dm
+++ b/code/datums/diseases/advance/symptoms/deafness.dm
@@ -55,7 +55,7 @@ Bonus
if(istype(ears) && ears.damage < ears.maxHealth)
to_chat(M, "Your ears pop painfully and start bleeding!")
ears.damage = max(ears.damage, ears.maxHealth)
- M.emote("scream")
+ M.force_scream()
else
to_chat(M, "Your ears pop and begin ringing loudly!")
M.minimumDeafTicks(20)
diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm
index aeb9933debbd..98391edbdf1c 100644
--- a/code/datums/diseases/advance/symptoms/fire.dm
+++ b/code/datums/diseases/advance/symptoms/fire.dm
@@ -60,12 +60,12 @@ Bonus
Firestacks_stage_4(M, A)
M.IgniteMob()
to_chat(M, "Your skin bursts into flames!")
- M.emote("scream")
+ M.force_scream()
if(5)
Firestacks_stage_5(M, A)
M.IgniteMob()
to_chat(M, "Your skin erupts into an inferno!")
- M.emote("scream")
+ M.force_scream()
/datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A)
M.adjust_fire_stacks(1 * power)
@@ -147,7 +147,7 @@ Bonus
Alkali_fire_stage_4(M, A)
M.IgniteMob()
to_chat(M, "Your sweat bursts into flames!")
- M.emote("scream")
+ M.force_scream()
if(5)
if(M.fire_stacks < 0)
M.visible_message("[M]'s sweat sizzles and pops on contact with water!")
@@ -155,7 +155,7 @@ Bonus
Alkali_fire_stage_5(M, A)
M.IgniteMob()
to_chat(M, "Your skin erupts into an inferno!")
- M.emote("scream")
+ M.force_scream()
/datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A)
var/get_stacks = 6 * power
diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm
index e2af13bd6742..ed4c5267d14f 100644
--- a/code/datums/diseases/gastrolisis.dm
+++ b/code/datums/diseases/gastrolisis.dm
@@ -36,7 +36,7 @@
new_eyes.Insert(affected_mob, drop_if_replaced = TRUE)
affected_mob.visible_message("[affected_mob]'s eyes fall out, with snail eyes taking its place!", \
"You scream in pain as your eyes are pushed out by your new snail eyes!")
- affected_mob.emote("scream")
+ affected_mob.force_scream()
return
var/obj/item/organ/tongue/tongue = locate(/obj/item/organ/tongue/snail) in affected_mob.internal_organs
if(!tongue && prob(5))
diff --git a/code/datums/elements/world_icon.dm b/code/datums/elements/world_icon.dm
index bcb0129c6c68..31e52ee7677f 100644
--- a/code/datums/elements/world_icon.dm
+++ b/code/datums/elements/world_icon.dm
@@ -103,7 +103,7 @@
SIGNAL_HANDLER
if(!world_icon_state)
- source.icon_state = source.icon_state
+ source.icon_state = source.item_state
return
INVOKE_ASYNC(src, PROC_REF(check_world_icon_state), source)
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index e504bfee31d5..306c3d6b8d50 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -642,6 +642,25 @@
return
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "wrong_cigs", /datum/mood_event/wrong_brand)
+/datum/quirk/congenital_analgesia
+ name = "Congenital Analgesia"
+ desc = "Due to a rare condition, you have never felt pain. Physical pain, at least. That breakup still hurt."
+ value = -1
+ mob_traits = list(TRAIT_ANALGESIA)
+ gain_text = "You've never really felt pain."
+ lose_text = "...Oh god, you're sore."
+ medical_record_text = "Patient is unable to process pain"
+
+/datum/quirk/congenital_analgesia/on_spawn()
+ var/mob/living/carbon/human/H = quirk_holder
+ H.set_screwyhud(SCREWYHUD_HEALTHY)
+
+/datum/quirk/congenital_analgesia/remove()
+ if(quirk_holder)
+ var/mob/living/carbon/human/H = quirk_holder
+ H.set_screwyhud(SCREWYHUD_NONE)
+
+
/datum/quirk/unstable
name = "Unstable"
desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!"
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index e7c9c19325a6..84744a9187d6 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -1067,6 +1067,7 @@
VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EXPLOSION, "Explosion")
VV_DROPDOWN_OPTION(VV_HK_RADIATE, "Radiate")
VV_DROPDOWN_OPTION(VV_HK_EDIT_FILTERS, "Edit Filters")
+ VV_DROPDOWN_OPTION(VV_HK_SELL, "Export Item")
/atom/vv_do_topic(list/href_list)
. = ..()
@@ -1138,6 +1139,9 @@
var/client/C = usr.client
C?.open_filter_editor(src)
+ if(href_list[VV_HK_SELL] && check_rights(R_ADMIN|R_DEBUG) && check_rights(R_VAREDIT))
+ export_item_and_contents(src, allowed_categories = ALL, apply_elastic = FALSE)
+
/atom/vv_get_header()
. = ..()
var/refid = REF(src)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 2d76d7ecb351..594aeedbe43d 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -167,16 +167,7 @@
if(abandoned)
var/outcome = rand(1,100)
switch(outcome)
- if(1 to 9)
- var/turf/here = get_turf(src)
- for(var/turf/closed/T in range(2, src))
- here.PlaceOnTop(T.type)
- qdel(src)
- return
- here.PlaceOnTop(/turf/closed/wall)
- qdel(src)
- return
- if(9 to 11)
+ if(1 to 11)
lights = FALSE
locked = TRUE
if(12 to 15)
@@ -185,6 +176,19 @@
welded = TRUE
if(24 to 30)
panel_open = TRUE
+ if(31 to 40)
+ panel_open = TRUE
+ set_electrified(MACHINE_ELECTRIFIED_PERMANENT)
+ if(41 to 50)
+ seal = new /obj/item/door_seal(src)
+ modify_max_integrity(max_integrity * AIRLOCK_SEAL_MULTIPLIER)
+ if(51 to 60)
+ new previous_airlock(loc)
+ qdel(src)
+ if(69)
+ new /obj/effect/decal/cleanable/oil/slippery(loc)
+
+
update_appearance()
/obj/machinery/door/airlock/ComponentInitialize()
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 737bacbb650f..7c8371809e81 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -395,7 +395,7 @@
L.manual_emote("roar")
else if(ishuman(L)) //For humans
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
- L.manual_emote("scream")
+ L.force_manual_scream()
L.Paralyze(100)
else if(ismonkey(L)) //For monkeys
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm
index 1b0093458e49..22ff32ac3655 100644
--- a/code/game/machinery/harvester.dm
+++ b/code/game/machinery/harvester.dm
@@ -121,7 +121,7 @@
target = get_turf(src)
for(var/obj/item/bodypart/BP in operation_order) //first we do non-essential limbs
BP.drop_limb()
- C.emote("scream")
+ C.force_scream()
if(BP.body_zone != "chest")
BP.forceMove(target) //Move the limbs right next to it, except chest, that's a weird one
BP.drop_organs()
diff --git a/code/game/machinery/outpost_electrolyzer.dm b/code/game/machinery/outpost_electrolyzer.dm
index b91160c7e1c8..78711accb242 100644
--- a/code/game/machinery/outpost_electrolyzer.dm
+++ b/code/game/machinery/outpost_electrolyzer.dm
@@ -136,7 +136,7 @@
playsound(src, 'sound/effects/splat.ogg', 50, TRUE)
if(iscarbon(L) && L.stat == CONSCIOUS)
- L.emote("scream")
+ L.force_scream()
// Instantly lie down, also go unconscious from the pain, before you die.
L.Unconscious(100)
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 5c592c7409dd..c3c39c72e34a 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -41,6 +41,7 @@ DEFINE_BITFIELD(turret_flags, list(
integrity_failure = 0.5
armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
base_icon_state = "standard"
+ subsystem_type = /datum/controller/subsystem/turrets
/// Scan range of the turret for locating targets
var/scan_range = 7
/// For turrets inside other objects
@@ -77,7 +78,7 @@ DEFINE_BITFIELD(turret_flags, list(
var/has_cover = TRUE
/// The cover that is covering this turret
var/obj/machinery/porta_turret_cover/cover = null
- /// Ticks until next shot (1.5 ?)
+ /// Ticks until next shot (1.5 ?) If this needs to go below 5, use SSFastProcess
var/shot_delay = 15
/// Turret flags about who is turret allowed to shoot
var/turret_flags = TURRET_FLAG_SHOOT_CRIMINALS | TURRET_FLAG_SHOOT_ANOMALOUS
@@ -798,12 +799,13 @@ DEFINE_BITFIELD(turret_flags, list(
/obj/machinery/porta_turret/ship
installation = null
- max_integrity = 300
+ max_integrity = 200
always_up = 1
use_power = ACTIVE_POWER_USE
active_power_usage = ACTIVE_DRAW_MINIMAL
has_cover = 0
scan_range = 9
+ req_ship_access = TRUE
stun_projectile = /obj/projectile/beam/disabler
lethal_projectile = /obj/projectile/beam/laser
lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
@@ -824,7 +826,7 @@ DEFINE_BITFIELD(turret_flags, list(
. = ..()
if(in_range(user, src) || isobserver(user))
if(!(machine_stat & BROKEN))
- . += "Its reports that it's integrity is currently [(obj_integrity / max_integrity) * 100] percent."
+ . += "[src] reports its integrity is currently [round(obj_integrity / max_integrity) * 100] percent."
/obj/machinery/porta_turret/ship/weak
max_integrity = 120
@@ -849,6 +851,8 @@ DEFINE_BITFIELD(turret_flags, list(
name = "Sharplite Defense Turret"
desc = "A cheap and effective turret designed by Sharplite and purchased and installed on most Nanotrasen Vessels."
faction = list(FACTION_PLAYER_NANOTRASEN, "turret")
+ max_integrity = 160
+ integrity_failure = 0.6
icon_state = "standard_lethal"
base_icon_state = "standard"
stun_projectile = /obj/projectile/beam/disabler/sharplite
@@ -866,20 +870,19 @@ DEFINE_BITFIELD(turret_flags, list(
lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg'
stun_projectile_sound = 'sound/weapons/taser2.ogg'
-
/obj/machinery/porta_turret/ship/nt/heavy
name = "Sharplite Defense Cannon"
desc = "A heavy laser mounting designed by Sharplite for usage on Nanotrasen vessels."
lethal_projectile = /obj/projectile/beam/laser/heavylaser/sharplite
lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ max_integrity = 250
/obj/machinery/porta_turret/ship/nt/pulse
name = "Sharplite Pulse Cannon"
desc = "A pulse cannon mounting designed by Sharplite. Not sold to any purchasers and exclusively used on Nanotrasen Vessels."
lethal_projectile = /obj/projectile/beam/pulse/sharplite_turret
lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg'
-
-
+ max_integrity = 250
/* Syndicate Turrets */
@@ -903,8 +906,10 @@ DEFINE_BITFIELD(turret_flags, list(
stun_projectile_sound = 'sound/weapons/taser.ogg'
lethal_projectile = /obj/projectile/beam/laser/heavylaser
lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ max_integrity = 300
/* Inteq Turrets */
+//slower rof, higher damage + range
/obj/machinery/porta_turret/ship/inteq
name = "Vanguard Turret"
@@ -913,8 +918,9 @@ DEFINE_BITFIELD(turret_flags, list(
stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg'
lethal_projectile = /obj/projectile/bullet/a762_40
lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg'
- scan_range = 8
+ scan_range = 9
shot_delay = 20
+ integrity_failure = 0.4
faction = list(FACTION_PLAYER_INTEQ, "turret")
/obj/machinery/porta_turret/ship/inteq/light
@@ -925,7 +931,7 @@ DEFINE_BITFIELD(turret_flags, list(
lethal_projectile = /obj/projectile/bullet/c10mm
lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
subsystem_type = /datum/controller/subsystem/processing/fastprocess //turns out if you have a shot delay below what SSmachines fires at you need to use a different subsystem
- scan_range = 4
+ scan_range = 5
shot_delay = 5
/obj/machinery/porta_turret/ship/inteq/heavy
@@ -944,6 +950,7 @@ DEFINE_BITFIELD(turret_flags, list(
faction = list(FACTION_PLAYER_SOLCON, "turret")
/* Pan Gezena Federation Turrets */
+//midline but hitscan
/obj/machinery/porta_turret/ship/pgf
name = "Etherbor Defensive Mount"
@@ -955,6 +962,8 @@ DEFINE_BITFIELD(turret_flags, list(
lethal_projectile_sound = 'sound/weapons/gun/energy/kalixsmg.ogg'
icon_state = "standard_lethal"
base_icon_state = "standard"
+ max_integrity = 250
+ integrity_failure = 0.4
/obj/machinery/porta_turret/ship/pgf/light
name = "Etherbor Deterrent System"
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index f6be0b0a036e..ea6633370147 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -450,7 +450,7 @@
mob_occupant.adjustFireLoss(rand(20, 36))
else
mob_occupant.adjustFireLoss(rand(10, 16))
- mob_occupant.emote("scream")
+ mob_occupant.force_scream()
addtimer(CALLBACK(src, PROC_REF(cook)), 50)
else
uv_cycles = (BASE_UV_CYCLES - lasers_bonus)
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index da5a006de0b5..b75f97102904 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -85,7 +85,7 @@
update_appearance()
playsound(src.loc, 'sound/items/welder.ogg', 50, TRUE)
- H.emote("scream") // It is painful
+ H.force_scream() // It is painful
H.adjustBruteLoss(max(0, 80 - H.getBruteLoss())) // Hurt the human, don't try to kill them though.
// Sleep for a couple of ticks to allow the human to see the pain
diff --git a/code/game/mecha/equipment/weapons/mecha_ammo.dm b/code/game/mecha/equipment/weapons/mecha_ammo.dm
index 0febe3327cb6..9e5c6732d1cb 100644
--- a/code/game/mecha/equipment/weapons/mecha_ammo.dm
+++ b/code/game/mecha/equipment/weapons/mecha_ammo.dm
@@ -83,7 +83,7 @@
/obj/item/mecha_ammo/tank_shell
name = "anti-armor missile"
desc = "A large missle, intended to be loaded into a Type 207."
- icon = 'icons/obj/ammo_bullets.dmi'
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "srm-8"
rounds = 1
throw_range = 0
diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm
index 4a85f9321154..6477446a2b72 100644
--- a/code/game/objects/effects/anomalies/_anomalies.dm
+++ b/code/game/objects/effects/anomalies/_anomalies.dm
@@ -8,9 +8,7 @@
anchored = TRUE
light_range = 3
- //aSignal drops as the core, bSignal allows people to signal to detonate
- var/obj/item/assembly/signaler/anomaly/aSignal = /obj/item/assembly/signaler/anomaly
- var/obj/item/assembly/signaler/anomaly/bSignal = /obj/item/assembly/signaler/anomaly/det_signal
+ var/obj/item/assembly/signaler/anomaly/core = /obj/item/assembly/signaler/anomaly
var/area/impact_area
var/lifespan = 990
@@ -46,27 +44,17 @@
pulse_delay = rand(pulse_delay*0.5, pulse_delay*1.5)
src.drops_core = drops_core
- if(aSignal)
- aSignal = new aSignal(src)
- aSignal.code = rand(1,100)
- aSignal.anomaly_type = type
- aSignal.research = research_value
+ if(core)
+ core = new core(src)
+ core.code = rand(1,100)
+ core.code_b = rand(1,100)
+ core.anomaly_type = type
+ core.research = research_value
var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven!
frequency++
- aSignal.set_frequency(frequency)
-
- if(bSignal)
- bSignal = new bSignal(src)
- bSignal.code = rand(1,100)
- bSignal.anomaly_type = type
- var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
- if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven!
- frequency++
- bSignal.set_frequency(frequency)
-
-
+ core.set_frequency(frequency)
if(lifespan)
if(new_lifespan)
@@ -97,7 +85,7 @@
/obj/effect/anomaly/Destroy()
STOP_PROCESSING(SSobj, src)
QDEL_NULL(countdown)
- QDEL_NULL(aSignal)
+ QDEL_NULL(core)
return ..()
/obj/effect/anomaly/proc/anomalyEffect(seconds_per_tick)
@@ -118,30 +106,26 @@
/obj/effect/anomaly/proc/anomalyNeutralize()
new /obj/effect/particle_effect/smoke/bad(loc)
-
if(drops_core)
- if(isnull(aSignal))
+ if(isnull(core))
stack_trace("An anomaly ([src]) exists that drops a core, yet has no core!")
else
- aSignal.forceMove(drop_location())
- aSignal = null
+ core.forceMove(drop_location())
+ core = null
// else, anomaly core gets deleted by qdel(src).
qdel(src)
/obj/effect/anomaly/attackby(obj/item/weapon, mob/user, params)
- if(weapon.tool_behaviour == TOOL_ANALYZER && aSignal)
+ if(weapon.tool_behaviour == TOOL_ANALYZER && core)
to_chat(user, span_notice("You start analyzing [src]."))
if(do_after(user, 20, src, hidden = TRUE))
- to_chat(user, span_notice("[src]'s primary field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code]."))
- if(bSignal)
- to_chat(user, span_notice("A second field is fluctuating along [format_frequency(bSignal.frequency)], code [bSignal.code]. It is highly unstable." ))
- return TRUE
+ to_chat(user, span_notice("[src]'s primary field is fluctuating along frequency [format_frequency(core.frequency)], code [core.code]."))
+ return TRUE
return ..()
-
/obj/effect/anomaly/examine(mob/user)
. = ..()
if(user.research_scanner == TRUE)
diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm
index f7012e532944..d5825181295c 100644
--- a/code/game/objects/effects/anomalies/anomalies_bluespace.dm
+++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm
@@ -2,9 +2,9 @@
/obj/effect/anomaly/bluespace
name = "jumper"
icon_state = "bluespace"
- desc = "A mysterious anomaly that causes teleportation around it."
+ desc = "A hole in the fabric of bluespace, perforating reality around it."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/bluespace
+ core = /obj/item/assembly/signaler/anomaly/bluespace
///range from which we can teleport someone
effectrange = 3
var/reagent_amount = 3
diff --git a/code/game/objects/effects/anomalies/anomalies_flux.dm b/code/game/objects/effects/anomalies/anomalies_flux.dm
index b1318953f4a6..4eaddefdcae0 100644
--- a/code/game/objects/effects/anomalies/anomalies_flux.dm
+++ b/code/game/objects/effects/anomalies/anomalies_flux.dm
@@ -1,9 +1,10 @@
/obj/effect/anomaly/flux
name = "tesla"
- icon_state = "flux"
- desc = "A mysterious anomaly that sends out a near constant stream of electrical arcs."
+ icon_state = "tesla"
+ //double-check that these only happen in atmosphere now
+ desc = "A break in the atmosphere, small yet potent lightning arcs flashing off it."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/flux
+ core = /obj/item/assembly/signaler/anomaly/flux
pulse_delay = 2 SECONDS
effectrange = 0
var/canshock = FALSE
@@ -99,3 +100,7 @@
/obj/effect/anomaly/flux/big/planetary
immortal = TRUE
immobile = TRUE
+
+/obj/effect/anomaly/flux/storm
+ drops_core = FALSE
+ explosive = FLUX_LOW_EXPLOSIVE
diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm
index 1dea7049fc97..20cc30dcc74d 100644
--- a/code/game/objects/effects/anomalies/anomalies_gravity.dm
+++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm
@@ -9,10 +9,9 @@
/obj/effect/anomaly/grav
name = "throngler"
icon_state = "gravity"
- desc = "A mysterious anomaly that sucks things towards it with a gravitational field, ending in what has been termed a 'throngling'."
+ desc = "A miniature gravity well, constantly pulling the world around it into a 'throngling'."
density = FALSE
- aSignal = /obj/item/assembly/signaler/anomaly/grav
- bSignal = null
+ core = /obj/item/assembly/signaler/anomaly/grav
effectrange = 4
var/boing = 0
///Warp effect holder for displacement filter to "pulse" the anomaly
diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm
index ab859a3b3215..e48a1879f257 100644
--- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm
+++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm
@@ -2,7 +2,8 @@
/obj/effect/anomaly/hallucination
name = "hallucination anomaly"
icon_state = "hallucination"
- aSignal = /obj/item/assembly/signaler/anomaly/hallucination
+ desc = "A shimmering mirage suspended above the ground, never in the same place as it was a second ago."
+ core = /obj/item/assembly/signaler/anomaly/hallucination
/// Time passed since the last effect, increased by delta_time of the SSobj
var/ticks = 0
/// How many seconds between each small hallucination pulses
@@ -18,6 +19,8 @@
var/turf/open/our_turf = get_turf(src)
if(istype(our_turf))
hallucination_pulse(our_turf, 5)
+ pixel_x = pixel_x + clamp(rand(-5, 5), -16, 16)
+ pixel_y = pixel_y + clamp(rand(-5, 5), -16, 16)
/obj/effect/anomaly/hallucination/detonate()
var/turf/open/our_turf = get_turf(src)
diff --git a/code/game/objects/effects/anomalies/anomalies_heartbeat.dm b/code/game/objects/effects/anomalies/anomalies_heartbeat.dm
index 1b691d898436..ff111fe4882c 100644
--- a/code/game/objects/effects/anomalies/anomalies_heartbeat.dm
+++ b/code/game/objects/effects/anomalies/anomalies_heartbeat.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/heartbeat
name = "heartbeat"
icon_state = "heartbeat"
- desc = "A mysterious anomaly, it ionizes the world around it."
+ desc = "A throbbing vertex, spreading a cancer to the world around itself."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/heartbeat
+ core = /obj/item/assembly/signaler/anomaly/heartbeat
effectrange = 3
pulse_delay = 6 SECONDS
var/reagent_amount = 5
diff --git a/code/game/objects/effects/anomalies/anomalies_melter.dm b/code/game/objects/effects/anomalies/anomalies_melter.dm
index d906d4f4bad2..3c99fd7eab5a 100644
--- a/code/game/objects/effects/anomalies/anomalies_melter.dm
+++ b/code/game/objects/effects/anomalies/anomalies_melter.dm
@@ -1,10 +1,10 @@
/obj/effect/anomaly/melter
name = "melter"
icon_state = "melter"
- desc = "A mysterious anomaly. Everburning green flames with a horrid sizzle, melting what's near"
+ desc = "Everburning green flames, eager to lash out at anything that intrudes near."
effectrange = 2
pulse_delay = 10 SECONDS
- aSignal = /obj/item/assembly/signaler/anomaly/melter
+ core = /obj/item/assembly/signaler/anomaly/melter
/obj/effect/anomaly/melter/anomalyEffect(seconds_per_tick)
..()
@@ -20,7 +20,7 @@
I.acid_act(20, 20)
I.update_appearance()
for (var/obj/item/melt in range(effectrange, src))
-
+ //don't melt yourself
if(istype(melt, /obj/item/assembly/signaler/anomaly))
return
else
diff --git a/code/game/objects/effects/anomalies/anomalies_phantom.dm b/code/game/objects/effects/anomalies/anomalies_phantom.dm
index 9407bbcbf920..e2225c4c843e 100644
--- a/code/game/objects/effects/anomalies/anomalies_phantom.dm
+++ b/code/game/objects/effects/anomalies/anomalies_phantom.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/phantom
name = "phantom"
icon_state = "phantom"
- desc = "A mysterious anomaly, the outline of a humanoid, endlessly screaming in agony."
+ desc = "A familiar outline, it calls out for companionship. It screams for you."
density = FALSE
- aSignal = /obj/item/assembly/signaler/anomaly/phantom
+ core = /obj/item/assembly/signaler/anomaly/phantom
effectrange = 3
pulse_delay = 2 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm
index 006d42ac28d3..f2d9bf6308a5 100644
--- a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm
+++ b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/plasmasoul
name = "plasma soul"
icon_state = "plasmasoul"
- desc = "A mysterious anomaly, it slowly leaks plasma into the world around it."
+ desc = "A plasmatic pool, small crystals growing around it, spreading into the ground."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/plasmasoul
+ core = /obj/item/assembly/signaler/anomaly/plasmasoul
effectrange = 3
pulse_delay = 6 SECONDS
var/reagent_amount = 5
diff --git a/code/game/objects/effects/anomalies/anomalies_pulsar.dm b/code/game/objects/effects/anomalies/anomalies_pulsar.dm
index 1f75acee56b8..360e004b2adf 100644
--- a/code/game/objects/effects/anomalies/anomalies_pulsar.dm
+++ b/code/game/objects/effects/anomalies/anomalies_pulsar.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/pulsar
name = "pulsar"
icon_state = "pulsar"
- desc = "A mysterious anomaly, endless electromagnetic disturbances roll out from it"
+ desc = "A near transparent shell hovering, containing a near constant electromagnetic turmoil."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/pulsar
+ core = /obj/item/assembly/signaler/anomaly/pulsar
effectrange = 4
pulse_delay = 15 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm
index b4c93868e670..fef1c8b38a0b 100644
--- a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm
+++ b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm
@@ -2,17 +2,16 @@
/obj/effect/anomaly/pyro
name = "plasmaball"
icon_state = "pyroclastic"
- desc = "A mysterious anomaly, made of an everburning gas. Those who approach it tend to absorb it's heat, or even ignite."
+ desc = "A floating orb of everburning gas, not unlike a sun. It radiates a dangerous amount of heat."
effectrange = 4
pulse_delay = 10 SECONDS
- aSignal = /obj/item/assembly/signaler/anomaly/pyro
+ core = /obj/item/assembly/signaler/anomaly/pyro
/obj/effect/anomaly/pyro/anomalyEffect(seconds_per_tick)
..()
for(var/mob/living/carbon/nearby in range(effectrange, src))
nearby.adjust_bodytemperature(20)
- visible_message("[src] pulses!")
if(!COOLDOWN_FINISHED(src, pulse_cooldown))
return
@@ -21,7 +20,7 @@
for(var/mob/living/carbon/nearby in range(effectrange/2, src))
nearby.fire_stacks += 3
nearby.IgniteMob()
- visible_message("[src] ignites [nearby]!")
+ visible_message("[src] lets out a flare, igniting [nearby]!")
/obj/effect/anomaly/pyro/Bumped(atom/movable/AM)
@@ -84,3 +83,6 @@
/obj/effect/anomaly/pyro/big/planetary
immortal = TRUE
immobile = TRUE
+
+/obj/effect/anomaly/pyro/storm
+ drops_core = FALSE
diff --git a/code/game/objects/effects/anomalies/anomalies_sparkler.dm b/code/game/objects/effects/anomalies/anomalies_sparkler.dm
index 0b26e6fd6a1c..79dd55cf21a7 100644
--- a/code/game/objects/effects/anomalies/anomalies_sparkler.dm
+++ b/code/game/objects/effects/anomalies/anomalies_sparkler.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/sparkler
name = "sparkler"
icon_state = "sparkler"
- desc = "A mysterious anomaly, constantly throwing sparks into its vicinity."
+ desc = "A series of shimmering sparks flying to and fro. They try to spread, yet fail."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/sparkler
+ core = /obj/item/assembly/signaler/anomaly/sparkler
effectrange = 4
pulse_delay = 1 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm
index ab574ee475dd..5b5bb76badf2 100644
--- a/code/game/objects/effects/anomalies/anomalies_static.dm
+++ b/code/game/objects/effects/anomalies/anomalies_static.dm
@@ -1,9 +1,25 @@
+GLOBAL_LIST_INIT(tvstatic_sayings, list(
+ "... Help me...",
+ "... I need to get out ...",
+ "...No hope....",
+ "...Let me loose...",
+ "...stay with me...",
+ "...Not like this...",
+ "...please don't go...",
+ "...don't forget me...",
+ "...Are you there...?",
+ "...it hurts...",
+ "...the eyes...",
+ "...need to run...",
+ "...is anyone there..."
+))
+
/obj/effect/anomaly/tvstatic
name = "static"
icon_state = "static"
- desc = "A mysterious anomaly. A hole in the world, endless buzzing emitting from it."
+ desc = "A hole in the world emitting an endless buzzing. It hides something precious."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/tvstatic
+ core = /obj/item/assembly/signaler/anomaly/tvstatic
effectrange = 4
pulse_delay = 4 SECONDS
verb_say = "pleads"
@@ -48,7 +64,7 @@
var/mob/living/carbon/victim = looking
var/obj/effect/anomaly/tvstatic/planetary/expansion
expansion = new(get_turf(victim))
- visible_message(span_warning("The static overtakes [victim], [expansion] taking their place!"))
+ visible_message(span_warning("[src] overtakes [victim], [expansion] taking their place!"))
victim.death()
expansion.stored_mob = victim
victim.forceMove(expansion)
@@ -58,44 +74,18 @@
anomalyEffect()
/obj/effect/anomaly/tvstatic/proc/say_fucky_things()
- switch(rand(1, 13))
- if(1)
- say("... Help me...")
- if(2)
- say("... I need to get out ...")
- if(3)
- say("...No hope....")
- if(4)
- say("....Let me loose...")
- if(5)
- say("...stay with me...")
- if(6)
- say("...I hope I live...")
- if(7)
- say("...please don't go...")
- if(8)
- say("...don't forget me...")
- if(9)
- say("...Are you there...?")
- if(10)
- say("...it hurts...")
- if(11)
- say("...the eyes...")
- if(12)
- say("...need to run...")
- if(13)
- say("...don't become like me...")
+ say(pick(GLOB.tvstatic_sayings))
return
/obj/effect/anomaly/tvstatic/detonate()
for(var/mob/living/carbon/human/looking in range(effectrange, src))
- visible_message(span_boldwarning(" The static lashes out, agony filling your mind as its tendrils scrape your thoughts!"))
+ visible_message(span_boldwarning("[src] lashes out, agony filling your mind as its tendrils scrape your thoughts!"))
if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD)
looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100, 200)
playsound(src, 'sound/effects/stall.ogg', 100)
if(stored_mob)
mangle_corpse()
- visible_message(span_warning("The static sputters out [stored_mob], their body coming out in a burst of blood and gore!"))
+ visible_message(span_warning("[src] sputters out [stored_mob], their body coming out in a burst of blood and gore!"))
new /obj/effect/gibspawner/human(loc)
stored_mob.forceMove(get_turf(src))
stored_mob = null
@@ -111,7 +101,7 @@
var/turf/T = get_turf(src)
if(T)
if(stored_mob)
- visible_message(span_warning("The static spits out [stored_mob], their body coming out in a burst!"))
+ visible_message(span_warning("[src] spits out [stored_mob], their body coming out in a burst!"))
stored_mob.forceMove(get_turf(src))
stored_mob = null
. = ..()
diff --git a/code/game/objects/effects/anomalies/anomalies_transfusion.dm b/code/game/objects/effects/anomalies/anomalies_transfusion.dm
new file mode 100644
index 000000000000..f233f9c0a3c4
--- /dev/null
+++ b/code/game/objects/effects/anomalies/anomalies_transfusion.dm
@@ -0,0 +1,69 @@
+/obj/effect/anomaly/transfusion
+ name = "transfusion"
+ icon_state = "transfusion"
+ desc = "A throbbing field floating mid-air, crimson particulate hovering within it."
+ density = TRUE
+ core = /obj/item/assembly/signaler/anomaly/transfusion
+ effectrange = 3
+ pulse_delay = 5 SECONDS
+
+/obj/effect/anomaly/transfusion/anomalyEffect()
+ ..()
+
+ if(!COOLDOWN_FINISHED(src, pulse_cooldown))
+ return
+
+ COOLDOWN_START(src, pulse_cooldown, pulse_delay)
+ blood_music()
+ return
+
+/obj/effect/anomaly/transfusion/proc/blood_music() //by greg bear
+ //this is hacky *because* in an ideal world - it would involve making the core have a reagent container for the blood
+ //however - I am a lazy bitch
+ for(var/mob/living/carbon/victim in range(effectrange, src))
+ //if we're not hungry, we're not hungry.
+ if (core?:get_blood_max() < core?:get_blood_stored())
+ new /obj/effect/temp_visual/dir_setting/bloodsplatter(src.loc, rand(1, 8))
+ visible_message(span_boldwarning("[src] vomits up blood, seemingly satiated!"))
+ core?:set_blood_stored(core?:get_blood_max())
+ return
+ //if there's blood to take, take it
+ if (victim.blood_volume > BLOOD_VOLUME_SAFE)
+ var/bleeder
+ bleeder = rand(10,30)
+ victim.bleed(bleeder)
+ victim.spray_blood(get_dir(victim, src), splatter_strength = 1) //slurp
+ visible_message(span_boldwarning("Ichor flows out of [victim], and into [src]!"))
+ core?:set_blood_stored(bleeder)
+ break
+ //but if there's blood to give, share.
+ if(victim.blood_volume < BLOOD_VOLUME_SAFE && core?:get_blood_stored() > (core?:get_blood_max() / 2))
+ var/present_time
+ present_time = rand((core?:get_blood_stored() / 10), (core?:get_blood_stored() / 2))
+ visible_message(span_boldwarning("Globules of ichor fly away from [src], and into [victim]!"))
+ core?:set_blood_stored(-present_time)
+ victim.blood_volume += present_time
+ break
+ return
+
+/obj/effect/anomaly/transfusion/Bumped(atom/movable/AM)
+ if(!COOLDOWN_FINISHED(src, pulse_secondary_cooldown))
+ return
+ COOLDOWN_START(src, pulse_secondary_cooldown, 10)
+ if(istype(AM, /mob/living/carbon))
+ var/mob/living/carbon/victim = AM
+ visible_message(span_boldwarning("[victim] touches [src], and as they pull away their blood flows away from them!"))
+ var/amount = rand(50, 200)
+ victim.bleed(amount)
+ core?:set_blood_stored(amount)
+
+/obj/effect/anomaly/transfusion/detonate()
+ for(var/mob/living/carbon/victim in range(effectrange, src))
+ victim.bleed(rand(100, 250))
+ victim.spray_blood(get_dir(src, victim), splatter_strength = 3) //slurp
+ visible_message(span_boldwarning("[src] screams as it tries to pull all the blood around into itself!"))
+ . = ..()
+
+/obj/effect/anomaly/transfusion/planetary
+ immortal = TRUE
+ immobile = TRUE
diff --git a/code/game/objects/effects/anomalies/anomalies_veins.dm b/code/game/objects/effects/anomalies/anomalies_veins.dm
index 416e325ccdbd..b148f2d01666 100644
--- a/code/game/objects/effects/anomalies/anomalies_veins.dm
+++ b/code/game/objects/effects/anomalies/anomalies_veins.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/veins
name = "veins"
icon_state = "veins"
- desc = "A mysterious anomaly, throbbing purple veins, suspended midair."
+ desc = "Throbbing purple veins, an exposed artery of the world. It thirsts."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/veins
+ core = /obj/item/assembly/signaler/anomaly/veins
effectrange = 3
pulse_delay = 4 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_vortex.dm b/code/game/objects/effects/anomalies/anomalies_vortex.dm
index 16a30cbaa9c6..5e5875077660 100644
--- a/code/game/objects/effects/anomalies/anomalies_vortex.dm
+++ b/code/game/objects/effects/anomalies/anomalies_vortex.dm
@@ -2,9 +2,8 @@
/obj/effect/anomaly/vortex
name = "vortex"
icon_state = "vortex"
- desc = "A mysterious anomaly, this one destroys everything around it."
- aSignal = /obj/item/assembly/signaler/anomaly/vortex
- bSignal = null
+ desc = "An incredibly compact black orb, its hunger unquenchable."
+ core = /obj/item/assembly/signaler/anomaly/vortex
/obj/effect/anomaly/vortex/anomalyEffect()
..()
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 364ddeb72298..1163a5520631 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -805,6 +805,7 @@
/obj/effect/anomaly/plasmasoul/planetary,
/obj/effect/anomaly/phantom/planetary,
/obj/effect/anomaly/melter/planetary,
+ /obj/effect/anomaly/transfusion/planetary,
)
/obj/effect/spawner/lootdrop/anomaly/safe
@@ -815,6 +816,7 @@
/obj/effect/anomaly/sparkler/planetary,
/obj/effect/anomaly/veins/planetary,
/obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/transfusion/planetary,
)
/obj/effect/spawner/lootdrop/anomaly/dangerous
@@ -999,8 +1001,8 @@
/obj/effect/spawner/lootdrop/anomaly/storm
loot = list(
- /obj/effect/anomaly/flux,
- /obj/effect/anomaly/pyro,
+ /obj/effect/anomaly/flux/storm,
+ /obj/effect/anomaly/pyro/storm,
/obj/effect/anomaly/sparkler,
/obj/effect/anomaly/veins,
/obj/effect/anomaly/phantom,
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 90669dde84bb..3f7a43fe317b 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -26,6 +26,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
///Icon file for right inhand overlays
var/righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+ ///If set it will add a world icon using item_state
+ var/world_file
+
+ ///Handled by world_icon element
+ var/world_state
+ ///Handled by world_icon element
+ var/inventory_state
+
///This is a bitfield that defines what variations exist for bodyparts like Digi legs.
var/supports_variations = null
@@ -207,10 +215,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/canMouseDown = FALSE
- //for setting world icons on the go
- var/inventory_state
- var/world_state
-
/obj/item/Initialize()
if(attack_verb)
@@ -309,6 +313,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
updateEmbedding()
+ if(world_file)
+ AddElement(/datum/element/world_icon, null, world_file, icon)
+
if(GLOB.rpg_loot_items)
AddComponent(/datum/component/fantasy)
@@ -1219,7 +1226,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
*/
/obj/item/proc/on_accidental_consumption(mob/living/carbon/victim, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE)
if(get_sharpness() && force >= 5) //if we've got something sharp with a decent force (ie, not plastic)
- INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, emote), "scream")
+ INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, force_scream))
victim.visible_message("[victim] looks like [victim.p_theyve()] just bit something they shouldn't have!", \
"OH GOD! Was that a crunch? That didn't feel good at all!!")
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 7548625b31f6..883265896fe5 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -575,7 +575,7 @@ RLD
/obj/item/rcd_ammo
name = "compressed matter cartridge"
desc = "Highly compressed matter for the RCD."
- icon = 'icons/obj/ammo.dmi'
+ icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "rcd"
item_state = "rcdammo"
w_class = WEIGHT_CLASS_TINY
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 640b4e4a6a0a..89b73a0ffa9b 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -441,7 +441,7 @@
var/mob/living/M = H.pulledby
if(M.electrocute_act(30, H))
M.visible_message("[M] is electrocuted by [M.p_their()] contact with [H]!")
- M.emote("scream")
+ M.force_scream()
/obj/item/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user)
if(req_defib && defib.safety)
@@ -501,7 +501,7 @@
user.visible_message("[user] shocks [H] with \the [src]!", "You shock [H] with \the [src]!")
playsound(src, 'sound/machines/defib_zap.ogg', 100, TRUE, -1)
playsound(src, 'sound/weapons/egloves.ogg', 100, TRUE, -1)
- H.emote("scream")
+ H.force_scream()
shock_touching(45, H)
if(H.can_heartattack() && !H.undergoing_cardiac_arrest())
if(!H.stat)
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index 4abc1a3786bb..e1a20b508a5c 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -1,13 +1,3 @@
-#define RAD_LEVEL_NORMAL 9
-#define RAD_LEVEL_MODERATE 100
-#define RAD_LEVEL_HIGH 400
-#define RAD_LEVEL_VERY_HIGH 800
-#define RAD_LEVEL_CRITICAL 1500
-
-#define RAD_MEASURE_SMOOTHING 5
-
-#define RAD_GRACE_PERIOD 2
-
/obj/item/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis
name = "\improper Geiger counter"
desc = "A handheld device used for detecting and measuring radiation pulses."
@@ -222,9 +212,3 @@
. = ..()
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT)
-
-#undef RAD_LEVEL_NORMAL
-#undef RAD_LEVEL_MODERATE
-#undef RAD_LEVEL_HIGH
-#undef RAD_LEVEL_VERY_HIGH
-#undef RAD_LEVEL_CRITICAL
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 0f0081c90454..c649c1e3f594 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -212,6 +212,10 @@ GLOBAL_LIST_INIT(channel_tokens, list(
desc = "This is used by Inteq Risk Management Group's mercenaries. Protects ears from flashbangs."
icon_state = "inteq_headset_alt"
+/obj/item/radio/headset/inteq/alt/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
+
/obj/item/radio/headset/inteq/alt/captain
name = "vanguard bowman headset"
desc = "Used by Inteq Risk Management Group's elite vanguards. Protects ears from flashbangs."
diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm
index 2fb225fd2fb9..e7e78abb4abc 100644
--- a/code/game/objects/items/documents.dm
+++ b/code/game/objects/items/documents.dm
@@ -49,6 +49,11 @@
/obj/item/documents/syndicate/mining
desc = "\"Top Secret\" documents detailing Syndicate plasma mining operations."
+/obj/item/documents/syndicate/ngr
+ name = "Second Battlegroup secret documents"
+ desc = "\"Top Secret\" documents belonging to the Second Battlegroup of New Gorlex Republic. They are filled with sensitive operational intelligence. These documents are verified with a red wax seal."
+ icon_state = "docs_red"
+
/obj/item/documents/photocopy
desc = "A copy of some top-secret documents. Nobody will notice they aren't the originals... right?"
var/forgedseal = 0
diff --git a/code/game/objects/items/melee/knife.dm b/code/game/objects/items/melee/knife.dm
index 83022e7125ff..15d389477745 100644
--- a/code/game/objects/items/melee/knife.dm
+++ b/code/game/objects/items/melee/knife.dm
@@ -105,6 +105,7 @@
force = 20
throwforce = 20
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
+ world_file = 'icons/obj/world/melee.dmi'
/obj/item/melee/knife/survival
name = "survival knife"
@@ -115,6 +116,7 @@
force = 15
throwforce = 15
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
+ world_file = 'icons/obj/world/melee.dmi'
/obj/item/melee/knife/bone
name = "bone dagger"
@@ -127,6 +129,7 @@
force = 15
throwforce = 15
custom_materials = null
+ world_file = 'icons/obj/world/melee.dmi'
/obj/item/melee/knife/combat/cyborg
name = "cyborg knife"
diff --git a/code/game/objects/items/melee/weaponry.dm b/code/game/objects/items/melee/weaponry.dm
index 11c1b118570b..131e5e1aab20 100644
--- a/code/game/objects/items/melee/weaponry.dm
+++ b/code/game/objects/items/melee/weaponry.dm
@@ -75,7 +75,7 @@
/obj/item/throwing_star/magspear
name = "magnetic spear"
desc = "A reusable spear that is typically loaded into kinetic spearguns."
- icon = 'icons/obj/ammo_bullets.dmi'
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "magspear"
throwforce = 25 //kills regular carps in one hit
force = 10
diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm
index 959649c8c59b..249ee7dc41ed 100644
--- a/code/game/objects/items/shrapnel.dm
+++ b/code/game/objects/items/shrapnel.dm
@@ -20,7 +20,7 @@
/obj/item/shrapnel/bullet // bullets
name = "bullet"
- icon = 'icons/obj/ammo_bullets.dmi'
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "pistol-brass"
item_flags = NONE
diff --git a/code/game/objects/items/storage/ammo_can.dm b/code/game/objects/items/storage/ammo_can.dm
new file mode 100644
index 000000000000..7962621674ad
--- /dev/null
+++ b/code/game/objects/items/storage/ammo_can.dm
@@ -0,0 +1,52 @@
+//No idea why this is a toolbox but I'm not fixing that right now
+/obj/item/storage/toolbox/ammo
+ name = "ammo can"
+ desc = "A metal container for storing multiple boxes of ammunition or grenades."
+ icon_state = "ammobox"
+ item_state = "ammobox"
+ drop_sound = 'sound/items/handling/ammobox_drop.ogg'
+ pickup_sound = 'sound/items/handling/ammobox_pickup.ogg'
+ material_flags = NONE
+ has_latches = FALSE
+
+/obj/item/storage/toolbox/ammo/a850r/PopulateContents()
+ name = "ammo can (8x50mmR)"
+ icon_state = "ammobox_850"
+ for(var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a8_50r(src)
+
+/obj/item/storage/toolbox/ammo/a762_40/PopulateContents()
+ name = "ammo can (7.62x40mm CLIP)"
+ icon_state = "ammobox_762"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a762_40(src)
+
+/obj/item/storage/toolbox/ammo/a308/PopulateContents()
+ name = "ammo can (.308)"
+ icon_state = "ammobox_308"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a308(src)
+
+/obj/item/storage/toolbox/ammo/c45/PopulateContents()
+ name = "ammo can (.45)"
+ icon_state = "ammobox_45"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/c45(src)
+
+/obj/item/storage/toolbox/ammo/c9mm/PopulateContents()
+ name = "ammo can (9mm)"
+ icon_state = "ammobox_9mm"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/c9mm(src)
+
+/obj/item/storage/toolbox/ammo/c10mm/PopulateContents()
+ name = "ammo can (10mm)"
+ icon_state = "ammobox_10mm"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/c10mm(src)
+
+/obj/item/storage/toolbox/ammo/shotgun/PopulateContents()
+ name = "ammo can (12ga)"
+ icon_state = "ammobox_12ga"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a12g_buckshot(src)
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index dd0598e80c2d..34eba9a25191 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -483,7 +483,6 @@
desc = "A large duffel bag for holding extra tactical supplies."
icon_state = "duffel-syndie"
item_state = "duffel-syndieammo"
- slowdown = 0
resistance_flags = FIRE_PROOF
/obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize()
@@ -597,7 +596,7 @@
new /obj/item/clothing/shoes/magboots/syndie(src)
new /obj/item/storage/firstaid/tactical(src)
new /obj/item/gun/ballistic/automatic/toy(src)
- new /obj/item/ammo_box/foambox/riot(src)
+ new /obj/item/storage/box/ammo/foam_darts/riot(src)
/obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle
desc = "A large duffel bag containing deadly chemicals, a handheld chem sprayer, Bioterror foam grenade, a Donksoft assault rifle, box of riot grade darts, a dart pistol, and a box of syringes."
@@ -608,7 +607,7 @@
new /obj/item/gun/syringe/syndicate(src)
new /obj/item/gun/ballistic/automatic/toy(src)
new /obj/item/storage/box/syringes(src)
- new /obj/item/ammo_box/foambox/riot(src)
+ new /obj/item/storage/box/ammo/foam_darts/riot(src)
new /obj/item/grenade/chem_grenade/bioterrorfoam(src)
if(prob(5))
new /obj/item/reagent_containers/food/snacks/pizza/pineapple(src)
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index c6d55e03ef48..3b7de4f3ad1d 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -285,7 +285,6 @@
/obj/item/ammo_box/magazine,
/obj/item/ammo_box/c38, //speed loaders don't have a common path like magazines. pain.
/obj/item/ammo_box/a357, //some day we should refactor these into an ammo_box/speedloader type
- /obj/item/ammo_box/a4570, //but not today
/obj/item/ammo_box/a858, //oh boy stripper clips too
/obj/item/ammo_box/vickland_a308,
/obj/item/ammo_box/a300,
@@ -299,7 +298,8 @@
/obj/item/clothing/gloves,
/obj/item/restraints/legcuffs/bola,
/obj/item/holosign_creator/security,
- /obj/item/stock_parts/cell/gun //WS edit Gun cells fit where they should and not where they dont
+ /obj/item/stock_parts/cell/gun,
+ /obj/item/ammo_box/magazine/ammo_stack, //handfuls of bullets
))
/obj/item/storage/belt/security/full/PopulateContents()
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 57b574e39b7f..29d2cd22dbbd 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -41,6 +41,9 @@
/obj/item/storage/box/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT
+ STR.max_volume = STORAGE_VOLUME_CONTAINER_S
+ STR.max_w_class = WEIGHT_CLASS_SMALL
STR.use_sound = 'sound/items/storage/briefcase.ogg'
/obj/item/storage/box/update_overlays()
@@ -477,11 +480,6 @@
for(var/i in 1 to 6)
new donktype(src)
-/obj/item/storage/box/donkpockets/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/donkpocket))
-
/obj/item/storage/box/donkpockets/donkpocketspicy
name = "box of spicy-flavoured donk-pockets"
icon_state = "donkpocketboxspicy"
@@ -519,12 +517,6 @@
illustration = null
var/cube_type = /obj/item/reagent_containers/food/snacks/monkeycube
-/obj/item/storage/box/monkeycubes/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 7
- STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/monkeycube))
-
/obj/item/storage/box/monkeycubes/PopulateContents()
for(var/i in 1 to 5)
new cube_type(src)
@@ -539,12 +531,6 @@
icon_state = "monkeycubebox"
illustration = null
-/obj/item/storage/box/gorillacubes/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 3
- STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/monkeycube))
-
/obj/item/storage/box/gorillacubes/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/reagent_containers/food/snacks/monkeycube/gorilla(src)
@@ -676,12 +662,6 @@
icon = 'icons/obj/toy.dmi'
icon_state = "spbox"
-/obj/item/storage/box/snappops/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.set_holdable(list(/obj/item/toy/snappop))
- STR.max_items = 8
-
/obj/item/storage/box/snappops/PopulateContents()
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/toy/snappop)
@@ -697,12 +677,6 @@
pickup_sound = 'sound/items/handling/matchbox_pickup.ogg'
custom_price = 20
-/obj/item/storage/box/matches/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 10
- STR.set_holdable(list(/obj/item/match))
-
/obj/item/storage/box/matches/PopulateContents()
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/match)
@@ -720,9 +694,10 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
-/obj/item/storage/box/lights/ComponentInitialize()
+/obj/item/storage/box/lights/ComponentInitialize()//holy oversized box. this one can stay the way it is, for now
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT
STR.max_items = 21
STR.set_holdable(list(/obj/item/light/tube, /obj/item/light/bulb))
STR.max_combined_w_class = 21
@@ -1479,8 +1454,7 @@
/obj/item/storage/box/gum/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/chewable/bubblegum))
- STR.max_items = 4
+ STR.max_volume = (STORAGE_VOLUME_CONTAINER_S / 2)
/obj/item/storage/box/gum/PopulateContents()
for(var/i in 1 to 4)
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index e0768391dae5..0ee29e08e052 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -225,58 +225,6 @@
new /obj/item/stack/cable_coil/cyan(src)
new /obj/item/stack/cable_coil/white(src)
-/obj/item/storage/toolbox/ammo
- name = "ammo can"
- desc = "A metal container for storing multiple boxes of ammunition or grenades."
- icon_state = "ammobox"
- item_state = "ammobox"
- drop_sound = 'sound/items/handling/ammobox_drop.ogg'
- pickup_sound = 'sound/items/handling/ammobox_pickup.ogg'
- material_flags = NONE
- has_latches = FALSE
-
-/obj/item/storage/toolbox/ammo/a850r/PopulateContents()
- name = "ammo can (8x50mmR)"
- icon_state = "ammobox_850"
- for(var/i in 1 to 4)
- new /obj/item/ammo_box/c8x50mm_box(src)
-
-/obj/item/storage/toolbox/ammo/a762_40/PopulateContents()
- name = "ammo can (7.62x40mm CLIP)"
- icon_state = "ammobox_762"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/a762_40(src)
-
-/obj/item/storage/toolbox/ammo/a308/PopulateContents()
- name = "ammo can (.308)"
- icon_state = "ammobox_308"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/a308(src)
-
-/obj/item/storage/toolbox/ammo/c45/PopulateContents()
- name = "ammo can (.45)"
- icon_state = "ammobox_45"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/c45(src)
-
-/obj/item/storage/toolbox/ammo/c9mm/PopulateContents()
- name = "ammo can (9mm)"
- icon_state = "ammobox_9mm"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/c9mm(src)
-
-/obj/item/storage/toolbox/ammo/c10mm/PopulateContents()
- name = "ammo can (10mm)"
- icon_state = "ammobox_10mm"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/c10mm(src)
-
-/obj/item/storage/toolbox/ammo/shotgun/PopulateContents()
- name = "ammo can (12ga)"
- icon_state = "ammobox_12ga"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/a12g(src)
-
/obj/item/storage/toolbox/infiltrator
name = "insidious case"
desc = "Bearing the emblem of the Syndicate, this case contains a full infiltrator stealth suit, and has enough room to fit weaponry if necessary."
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 6d6d258b5b0c..81e6ea9d54ec 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -245,7 +245,7 @@
/obj/item/toy/ammo/gun
name = "capgun ammo"
desc = "Make sure to recyle the box in an autolathe when it gets empty."
- icon = 'icons/obj/ammo.dmi'
+ icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "357OLD-7"
w_class = WEIGHT_CLASS_TINY
custom_materials = list(/datum/material/iron=10, /datum/material/glass=10)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 23aa2df0ab5a..77497b671617 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -328,10 +328,10 @@
..()
for(var/i in 1 to 3)
new /obj/item/storage/box/lethalshot(src)
- new /obj/item/ammo_box/magazine/co9mm(src) //WS edit - begin - better safe than sorry
new /obj/item/ammo_box/magazine/co9mm(src)
new /obj/item/ammo_box/magazine/co9mm(src)
- new /obj/item/ammo_box/magazine/co9mm(src) //WS edit - end
+ new /obj/item/ammo_box/magazine/co9mm(src)
+ new /obj/item/ammo_box/magazine/co9mm(src)
/obj/structure/closet/secure_closet/labor_camp_security
name = "labor camp security locker"
diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm
index 59ef31fafa4e..83bae84fc575 100644
--- a/code/game/objects/structures/guillotine.dm
+++ b/code/game/objects/structures/guillotine.dm
@@ -154,7 +154,7 @@
else
H.apply_damage(15 * blade_sharpness, BRUTE, head)
log_combat(user, H, "dropped the blade on", src, " non-fatally")
- H.emote("scream")
+ H.force_scream()
if (blade_sharpness > 1)
blade_sharpness -= 1
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 6512a0683947..1840c27f9271 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -74,7 +74,7 @@
playsound(src.loc, 'sound/effects/splat.ogg', 25, TRUE)
L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.")
L.forceMove(drop_location())
- L.emote("scream")
+ L.force_scream()
L.add_splatter_floor()
L.adjustBruteLoss(30)
L.setDir(2)
@@ -128,7 +128,7 @@
M.adjustBruteLoss(30)
src.visible_message(text("[M] falls free of [src]!"))
unbuckle_mob(M,force=1)
- M.emote("scream")
+ M.force_scream()
M.AdjustParalyzed(20)
/obj/structure/kitchenspike/Destroy()
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 2e8c7508d594..ae1f50f0624f 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -264,7 +264,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
for(var/mob/living/M in conts)
if (M.stat != DEAD)
- M.emote("scream")
+ M.force_scream()
if(user)
log_combat(user, M, "cremated")
else
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index d5b1710b6296..f99cb8b9818b 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -701,9 +701,13 @@
return
if(user.body_position == LYING_DOWN || user.usable_legs < 2)
return
+
+ if(user.a_intent != INTENT_HARM)
+ to_chat(user, span_danger("You aren't HARMFUL enough to beat the rack."))
+ return
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
- user.visible_message("[user] kicks [src].", null, null, COMBAT_MESSAGE_RANGE)
+ user.visible_message(span_danger("[user] kicks [src]."), null, null, COMBAT_MESSAGE_RANGE)
take_damage(rand(4,8), BRUTE, "melee", 1)
/obj/structure/rack/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
diff --git a/code/modules/antagonists/gang/outfits.dm b/code/modules/antagonists/gang/outfits.dm
index 77c091d2126a..f76bf026e12c 100644
--- a/code/modules/antagonists/gang/outfits.dm
+++ b/code/modules/antagonists/gang/outfits.dm
@@ -30,10 +30,7 @@
backpack_contents = list(/obj/item/storage/box/handcuffs = 1,
/obj/item/storage/box/teargas = 1,
/obj/item/storage/box/flashbangs = 1,
- /obj/item/shield/riot/tele = 1,
- /obj/item/ammo_box/magazine/m45 = 3,
- /obj/item/ammo_box/c45 = 2)
-
+ /obj/item/shield/riot/tele = 1)
/datum/outfit/families_police/beatcop/armored
name = "Families: Armored Beat Cop"
@@ -53,8 +50,7 @@
backpack_contents = list(/obj/item/storage/box/handcuffs = 1,
/obj/item/storage/box/teargas = 1,
/obj/item/storage/box/flashbangs = 1,
- /obj/item/shield/riot/tele = 1,
- /obj/item/storage/box/lethalshot = 2)
+ /obj/item/shield/riot/tele = 1)
/datum/outfit/families_police/beatcop/fbi
name = "Families: Space FBI Officer"
@@ -65,8 +61,7 @@
/obj/item/storage/box/teargas = 1,
/obj/item/storage/box/flashbangs = 1,
/obj/item/shield/riot/tele = 1,
- /obj/item/ammo_box/magazine/smgm9mm = 3,
- /obj/item/ammo_box/c9mm = 2)
+ /obj/item/ammo_box/magazine/smgm9mm = 3)
/datum/outfit/families_police/beatcop/military
name = "Families: Space Military"
diff --git a/code/modules/antagonists/santa/santa.dm b/code/modules/antagonists/santa/santa.dm
index 2f1e874b2866..59c4afa6995b 100644
--- a/code/modules/antagonists/santa/santa.dm
+++ b/code/modules/antagonists/santa/santa.dm
@@ -17,7 +17,6 @@
to_chat(owner, "You are Santa! Your objective is to bring joy to the people on this station. You have a magical bag, which generates presents as long as you have it! You can examine the presents to take a peek inside, to make sure that you give the right gift to the right person.")
/datum/antagonist/santa/proc/give_equipment()
- var/mob/living/carbon/human/H = owner.current
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport/santa)
/datum/antagonist/santa/proc/give_objective()
diff --git a/code/modules/assembly/anomalies.dm b/code/modules/assembly/anomalies.dm
new file mode 100644
index 000000000000..0b390b39e8b4
--- /dev/null
+++ b/code/modules/assembly/anomalies.dm
@@ -0,0 +1,248 @@
+///Base anomaly signaller
+// Embedded signaller used in anomalies.
+/obj/item/assembly/signaler/anomaly
+ name = "anomaly core"
+ desc = "The stabilized core of an anomaly. It'd probably be valuable for research."
+ icon_state = "anomaly core"
+ item_state = "electronic"
+ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
+ resistance_flags = FIRE_PROOF
+ //allows anomaly cores to recieve multiple signals
+ var/code_b = DEFAULT_SIGNALER_CODE
+ var/anomaly_type = /obj/effect/anomaly
+ var/research
+
+/obj/item/assembly/signaler/anomaly/Initialize()
+ . = ..()
+ set_frequency(frequency)
+
+/obj/item/assembly/signaler/anomaly/attack_self()
+ return
+
+/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal)
+ if(!signal)
+ return FALSE
+ if(signal.data["code"] == code)
+ for(var/obj/effect/anomaly/Anomaly in get_turf(src))
+ Anomaly.anomalyNeutralize()
+ return TRUE
+ if(signal.data["code"] == code_b )
+ for(var/obj/effect/anomaly/Anomaly in get_turf(src))
+ Anomaly.detonate()
+ anomaly_core_detonation()
+ return TRUE
+ return FALSE
+
+//extend this on a per anomaly basis.
+/obj/item/assembly/signaler/anomaly/proc/anomaly_core_detonation()
+ new /obj/effect/particle_effect/smoke/bad(loc)
+ qdel(src)
+
+/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params)
+ if(I.tool_behaviour == TOOL_ANALYZER)
+ to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code]. An unstable frequency is present at code [code_b].")
+ ..()
+
+///Bluespace Anomaly
+/obj/item/assembly/signaler/anomaly/bluespace
+ name = "\improper bluespace anomaly core"
+ desc = "The stabilized core of a bluespace anomaly. It keeps phasing in and out of view."
+ icon_state = "anomaly core"
+
+/obj/item/assembly/signaler/anomaly/bluespace/anomaly_core_detonation()
+ //just teleports people
+ visible_message(span_warning("[src] creates a bluespace fracture around itself!"))
+ for(var/mob/living/Mob in range(1,src))
+ do_teleport(Mob, locate(Mob.x, Mob.y, Mob.z), 8, channel = TELEPORT_CHANNEL_BLUESPACE)
+ ..()
+
+//Flux Anomaly
+/obj/item/assembly/signaler/anomaly/flux
+ name = "\improper flux anomaly core"
+ desc = "The stabilized core of a flux anomaly. Touching it makes your skin tingle."
+ icon_state = "flux core"
+
+/obj/item/assembly/signaler/anomaly/flux/anomaly_core_detonation()
+ //zap
+ visible_message(span_warning("Electrical arcs flash off of [src] as it fizzles out!"))
+ tesla_zap(src, 3, 1000, ZAP_FUSION_FLAGS)
+ ..()
+
+///Gravity Anomaly
+/obj/item/assembly/signaler/anomaly/grav
+ name = "\improper gravitational anomaly core"
+ desc = "The stabilized core of a gravitational anomaly. It feels much heavier than it looks."
+ icon_state = "grav core"
+
+/obj/item/assembly/signaler/anomaly/grav/anomaly_core_detonation()
+ //throngles u cutely
+ visible_message(span_warning("[src] implodes into itself, light itself bending for a split second!"))
+ for(var/mob/living/carbon/carbon in range(1,src))
+ if(carbon.run_armor_check(attack_flag = "melee") >= 20)
+ carbon.break_random_bone()
+ else if(carbon.run_armor_check(attack_flag = "melee") >= 40)
+ carbon.break_all_bones() //crunch
+ carbon.apply_damage(20, BRUTE)
+
+///Hallucination Anomaly
+/obj/item/assembly/signaler/anomaly/hallucination
+ name = "\improper hallucination anomaly core"
+ desc = "The stabilized core of a hallucination anomaly. It's never entirely there."
+ icon_state = "hallucination_core"
+
+///Heartbeat Anomaly
+/obj/item/assembly/signaler/anomaly/heartbeat
+ name = "\improper heartbeat anomaly core"
+ desc = "The stabilized core of a heartbeat anomaly. Pulses of heat run across its shell."
+
+/obj/item/assembly/signaler/anomaly/heartbeat/anomaly_core_detonation()
+ visible_message(span_warning("[src] expands and throbs, before shattering into dozens of fragments!"))
+ radiation_pulse(src, 500, 2)
+ new /obj/effect/decal/cleanable/glass/strange(src)
+ ..()
+
+///Melter Anomaly
+/obj/item/assembly/signaler/anomaly/melter
+ name = "\improper melter anomaly core"
+ desc = "The stabilized core of a melter anomaly. It sizzles and crackles."
+ icon_state = "pyro core"
+
+/obj/item/assembly/signaler/anomaly/melter/anomaly_core_detonation()
+ visible_message(span_warning("[src] melts into a glowing residue!"))
+ new /obj/effect/decal/cleanable/greenglow(src.loc)
+ ..()
+
+///Phantom Anomaly
+/obj/item/assembly/signaler/anomaly/phantom
+ name = "\improper phantom anomaly core"
+ desc = "The stabilized core of a phantom anomaly. It quietly screams."
+
+/obj/item/assembly/signaler/anomaly/phantom/anomaly_core_detonation()
+ playsound(src,'sound/hallucinations/far_noise.ogg', 100, 0, 50, TRUE, TRUE)
+ visible_message(span_warning("[src] screams as it disappates!"))
+ ..()
+
+///Plasmasoul Anomaly
+/obj/item/assembly/signaler/anomaly/plasmasoul
+ name = "\improper plasmasoul anomaly core"
+ desc = "The stabilized core of a plasmasoul anomaly. The air around it hisses."
+
+/obj/item/assembly/signaler/anomaly/plasmasoul/anomaly_core_detonation()
+ visible_message(span_warning("[src] rapidly delaminates, leaving behind trace vapors!"))
+ ..()
+
+///Pulsar Anomaly
+/obj/item/assembly/signaler/anomaly/pulsar
+ name = "\improper pulsar anomaly core"
+ desc = "The stabilized core of a pulsar anomaly. Electromagnetic crackles come off it."
+
+/obj/item/assembly/signaler/anomaly/pulsar/anomaly_core_detonation()
+ visible_message(span_warning("[src] gives off one last pulse as it melts!"))
+ empulse(loc, 3, 1)
+ ..()
+
+///Pyroclastic Anomaly
+/obj/item/assembly/signaler/anomaly/pyro
+ name = "\improper pyroclastic anomaly core"
+ desc = "The stabilized core of a pyroclastic anomaly. It almost burns to touch."
+ icon_state = "pyro core"
+
+//glorified molotov
+/obj/item/assembly/signaler/anomaly/pyro/anomaly_core_detonation()
+ //this is tg's ash heretic ash heretic ascenscion power tuned down a bit.
+ visible_message(span_warning("[src] loses coherence, bursting into brilliant flames!"))
+ for(var/i in 0 to 3)
+ for(var/turf/nearby_turf as anything in spiral_range_turfs(i + 1, src.loc))
+ var/obj/effect/hotspot/flame_tile = locate(nearby_turf) || new(nearby_turf)
+ flame_tile.alpha = 125
+ nearby_turf.hotspot_expose(750, 25, 1)
+ qdel(src)
+
+///Sparkler Anomaly
+/obj/item/assembly/signaler/anomaly/sparkler
+ name = "\improper sparkler anomaly core"
+ desc = "The stabilized core of a sparkler anomaly. Tiny electrical sparks arc off it."
+
+/obj/item/assembly/signaler/anomaly/sparkler/anomaly_core_detonation()
+ visible_message(span_warning("[src] shoots out one last assortment of sparks!"))
+ tesla_zap(src, 2, 5000, ZAP_FUSION_FLAGS)
+ ..()
+
+///Static Anomaly
+/obj/item/assembly/signaler/anomaly/tvstatic
+ name = "\improper static anomaly core"
+ desc = "The stabilized core of a static anomaly. Your head hurts just staring at it"
+
+/obj/item/assembly/signaler/anomaly/tvstatic/anomaly_core_detonation()
+ visible_message(span_warning("[src] withdraws into itself, one last message escaping it!"))
+ say(pick(GLOB.tvstatic_sayings))
+ for(var/mob/living/carbon/human/looking in range(4, src))
+ if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD)
+ looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20, 40)
+ playsound(src, 'sound/effects/stall.ogg', 100)
+ ..()
+
+///Transfusion Anomaly
+/obj/item/assembly/signaler/anomaly/transfusion
+ name = "\improper transfusion anomaly core"
+ desc = "The stabilized core of a tranfusion anomaly. Crimson slowly seeps out of the containment unit."
+ icon_state = "pyro core"
+ var/blood_stored
+ var/blood_max
+
+/obj/item/assembly/signaler/anomaly/transfusion/Initialize()
+ . = ..()
+ blood_max = rand(400, 1200)
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/set_blood_stored(int)
+ blood_stored += int
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/set_blood_max(int)
+ blood_max = int
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/get_blood_stored()
+ return blood_stored
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/get_blood_max()
+ return blood_max
+
+/obj/item/assembly/signaler/anomaly/transfusion/anomaly_core_detonation()
+ visible_message(span_warning("Ichor flies out of [src], trying to force itself into everything around!"))
+ while(blood_stored > 0)
+ for(var/mob/living/carbon/victim in range(2, src))
+ var/present_time
+ present_time = rand((blood_stored / 10), (blood_stored / 2))
+ visible_message(span_boldwarning("[victim] finds themselves transfused with the crimson ichor!"))
+ victim.blood_volume += present_time
+ blood_stored += -present_time
+ ..()
+
+///Veins Anomaly
+/obj/item/assembly/signaler/anomaly/veins
+ name = "\improper fountain anomaly core"
+ desc = "The stabilized core of a fountain anomaly. It's slippery, like an intestine."
+
+/obj/item/assembly/signaler/anomaly/veins/anomaly_core_detonation()
+ //goreshit
+ var/obj/effect/gibspawner/mess = pick(list(
+ /obj/effect/gibspawner/human,
+ /obj/effect/gibspawner/xeno,
+ /obj/effect/gibspawner/generic/animal
+ ))
+ visible_message(span_warning("[src] erupts into a fountain of gore and viserca!"))
+ new mess(src.loc)
+ ..()
+
+///Vortex Anomaly
+/obj/item/assembly/signaler/anomaly/vortex
+ name = "\improper vortex anomaly core"
+ desc = "The stabilized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it."
+ icon_state = "vortex core"
+
+/obj/item/assembly/signaler/anomaly/vortex/anomaly_core_detonation()
+ //disappears bigly
+ playsound(src,'sound/effects/phasein.ogg', 100, 0, 50, TRUE, TRUE)
+ new /obj/effect/particle_effect/sparks/quantum(loc)
+ visible_message(span_warning("[src] shakes violently and - hey, where'd it go?"))
+ ..()
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 0bfac86ee0df..b1203d358e7f 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -144,126 +144,6 @@
return
return ..(signal)
-// Embedded signaller used in anomalies.
-/obj/item/assembly/signaler/anomaly
- name = "anomaly core"
- desc = "The neutralized core of an anomaly. It'd probably be valuable for research."
- icon_state = "anomaly core"
- item_state = "electronic"
- lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- resistance_flags = FIRE_PROOF
- var/anomaly_type = /obj/effect/anomaly
- var/research
-
-/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal)
- if(!signal)
- return FALSE
- if(signal.data["code"] != code)
- return FALSE
- for(var/obj/effect/anomaly/Anomaly in get_turf(src))
- Anomaly.anomalyNeutralize()
- return TRUE
-
-/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_ANALYZER)
- to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code].")
- ..()
-
-/obj/item/assembly/signaler/anomaly/det_signal
- name = "anomaly field"
- research = null
- anomaly_type = null
-
-/obj/item/assembly/signaler/anomaly/det_signal/receive_signal(datum/signal/signal)
- if(!signal)
- return FALSE
- if(signal.data["code"] != code)
- return FALSE
- for(var/obj/effect/anomaly/Anomaly in get_turf(src))
- Anomaly.detonate()
- return TRUE
-
-
-//Anomaly cores
-
-/obj/item/assembly/signaler/anomaly/pyro
- name = "\improper pyroclastic anomaly core"
- desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research."
- icon_state = "pyro core"
- anomaly_type = /obj/effect/anomaly/pyro
-
-/obj/item/assembly/signaler/anomaly/grav
- name = "\improper gravitational anomaly core"
- desc = "The neutralized core of a gravitational anomaly. It feels much heavier than it looks. It'd probably be valuable for research."
- icon_state = "grav core"
- anomaly_type = /obj/effect/anomaly/grav
-
-/obj/item/assembly/signaler/anomaly/flux
- name = "\improper flux anomaly core"
- desc = "The neutralized core of a flux anomaly. Touching it makes your skin tingle. It'd probably be valuable for research."
- icon_state = "flux core"
- anomaly_type = /obj/effect/anomaly/flux
-
-/obj/item/assembly/signaler/anomaly/bluespace
- name = "\improper bluespace anomaly core"
- desc = "The neutralized core of a bluespace anomaly. It keeps phasing in and out of view. It'd probably be valuable for research."
- icon_state = "anomaly core"
- anomaly_type = /obj/effect/anomaly/bluespace
-
-/obj/item/assembly/signaler/anomaly/vortex
- name = "\improper vortex anomaly core"
- desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research."
- icon_state = "vortex core"
- anomaly_type = /obj/effect/anomaly/vortex
-
-/obj/item/assembly/signaler/anomaly/hallucination
- name = "\improper hallucination anomaly core"
- desc = "The neutralized core of a hallucination anomaly. It seems to be moving, but it's probably your imagination. It'd probably be valuable for research."
- icon_state = "hallucination_core"
- anomaly_type = /obj/effect/anomaly/hallucination
-
-/obj/item/assembly/signaler/anomaly/sparkler
- name = "\improper sparkler anomaly core"
- desc = "The neutralized core of a sparkler anomaly. Tiny electrical sparks arc off it."
- anomaly_type = /obj/effect/anomaly/sparkler
-
-/obj/item/assembly/signaler/anomaly/veins
- name = "\improper fountain anomaly core"
- desc = "The neutralized core of a fountain anomaly. Blood drips off of it."
- anomaly_type = /obj/effect/anomaly/sparkler
-
-/obj/item/assembly/signaler/anomaly/phantom
- name = "\improper phantom anomaly core"
- desc = "The neutralized core of a phantom anomaly. It quietly screams."
- anomaly_type = /obj/effect/anomaly/phantom
-
-/obj/item/assembly/signaler/anomaly/pulsar
- name = "\improper pulsar anomaly core"
- desc = "The neutralized core of a pulsar anomaly. Electromagnetic crackles come off it."
-
-/obj/item/assembly/signaler/anomaly/plasmasoul
- name = "\improper plasmasoul anomaly core"
- desc = "The neutralized core of a plasmasoul anomaly. The air around it hisses."
-
-/obj/item/assembly/signaler/anomaly/heartbeat
- name = "\improper heartbeat anomaly core"
- desc = "The neutralized core of a heartbeat anomaly. It's concerningly warm to the touch."
-
-/obj/item/assembly/signaler/anomaly/tvstatic
- name = "\improper static anomaly core"
- desc = "The neutralized core of a static anomaly. Your head hurts just staring at it"
-
-/obj/item/assembly/signaler/anomaly/melter
- name = "\improper melter anomaly core"
- desc = "The neutralized core of a melter anomaly. It sizzles and crackles. It'd probably be valuable for research."
- icon_state = "pyro core"
-
-
-
-/obj/item/assembly/signaler/anomaly/attack_self()
- return
-
/obj/item/assembly/signaler/cyborg
/obj/item/assembly/signaler/cyborg/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
index 4920de28e364..d233b74ee69c 100644
--- a/code/modules/asset_cache/asset_list_items.dm
+++ b/code/modules/asset_cache/asset_list_items.dm
@@ -114,15 +114,21 @@
"stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png',
"stamp-solgov" = 'icons/stamp_icons/large_stamp-solgov.png',
"stamp-inteq" = 'icons/stamp_icons/large_stamp-inteq.png',
- "stamp-vanguard" = 'icons/stamp_icons/large_stamp-vanguard.png',
- "stamp-maa" = 'icons/stamp_icons/large_stamp-maa.png',
- "stamp-artificer" = 'icons/stamp_icons/large_stamp-artificer.png',
+ "stamp-inteq_vanguard" = 'icons/stamp_icons/large_stamp-inteq_vanguard.png',
+ "stamp-inteq_maa" = 'icons/stamp_icons/large_stamp-inteq_maa.png',
+ "stamp-inteq_artificer" = 'icons/stamp_icons/large_stamp-inteq_artificer.png',
+ "stamp-inteq_corpsman" = 'icons/stamp_icons/large_stamp-inteq_corpsman.png',
"stamp-clip" = 'icons/stamp_icons/large_stamp-clip.png',
"stamp-bard" = 'icons/stamp_icons/large_stamp-bard.png',
"stamp-gold" = 'icons/stamp_icons/large_stamp-gold.png',
"stamp-cybersun" = 'icons/stamp_icons/large_stamp-cybersun.png',
"stamp-biodynamics" = 'icons/stamp_icons/large_stamp-biodynamics.png',
- "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png'
+ "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png',
+ "stamp-ngr" = 'icons/stamp_icons/large_stamp-ngr.png',
+ "stamp-ngr_cap" = 'icons/stamp_icons/large_stamp-ngr_captain.png',
+ "stamp-ngr_fore" = 'icons/stamp_icons/large_stamp-ngr_foreman.png',
+ "stamp-ngr_lieu" = 'icons/stamp_icons/large_stamp-ngr_lieutenant.png',
+ "stamp-ngr_ensign" = 'icons/stamp_icons/large_stamp-ngr_ensign.png'
)
/datum/asset/simple/fuckywucky
diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm
index c12b09fa4e05..a240bf9f8404 100644
--- a/code/modules/awaymissions/mission_code/snowdin.dm
+++ b/code/modules/awaymissions/mission_code/snowdin.dm
@@ -218,14 +218,19 @@
PP.adjustFireLoss(25)
if(plasma_parts.len)
var/obj/item/bodypart/NB = pick(plasma_parts) //using the above-mentioned list to get a choice of limbs for dismember() to use
- PP.emote("scream")
NB.limb_id = "plasmaman" //change the species_id of the limb to that of a plasmaman
NB.static_icon = 'icons/mob/species/plasmaman/bodyparts.dmi'
NB.no_update = TRUE
NB.change_bodypart_status()
- PP.visible_message(
- "[L] screams in pain as [L.p_their()] [NB] melts down to the bone!",
- "You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")
+ PP.force_scream()
+ if(!HAS_TRAIT(PP, TRAIT_ANALGESIA))
+ PP.visible_message(
+ "[L] screams in pain as [L.p_their()] [NB] melts down to the bone!",
+ "You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")
+ else
+ PP.visible_message(
+ "[L] lets out panicked gasps as [L.p_their()] [NB] melts down to the bone!",
+ "You gasp in shock as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")
if(!plasma_parts.len && !robo_parts.len) //a person with no potential organic limbs left AND no robotic limbs, time to turn them into a plasmaman
PP.IgniteMob()
PP.set_species(/datum/species/plasmaman)
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm
index d5489edeb3e0..434a80c6416d 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm
@@ -28,7 +28,7 @@
/datum/blackmarket_item/ammo/himehabu_box
name = ".22 LR Ammo Box"
desc = "A 75 round ammo box of .22 LR. Trust me, you'll need every shot."
- item = /obj/item/ammo_box/c22lr_box
+ item = /obj/item/storage/box/ammo/c22lr
price_min = 100
price_max = 300
@@ -39,7 +39,7 @@
/datum/blackmarket_item/ammo/a357_box
name = ".357 Ammo Box"
desc = "A 50 round ammo box of .357."
- item = /obj/item/ammo_box/a357_box
+ item = /obj/item/storage/box/ammo/a357
price_min = 150
price_max = 500
@@ -60,7 +60,7 @@
/datum/blackmarket_item/ammo/c299
name = "Eoehoma .299 Caseless Ammo Box"
desc = "This ammunition for the E-40 Hybrid Rifle is probably worth more than the people you're shooting it at."
- item = /obj/item/ammo_box/c299
+ item = /obj/item/storage/box/ammo/c299
price_min = 300
price_max = 700
@@ -253,7 +253,7 @@
/datum/blackmarket_item/ammo/a4570hp
name = ".45-70 Hollow Point Ammo Box"
desc = "Put the hollow in hollow point by blowing a crater in some random sod with this devastating .45-70 cartridge."
- item = /obj/item/ammo_box/a4570/hp
+ item = /obj/item/storage/box/ammo/a4570_hp
price_min = 600
price_max = 1000
diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm
index be3ec7a26599..165cfb6c1196 100644
--- a/code/modules/cargo/exports.dm
+++ b/code/modules/cargo/exports.dm
@@ -59,7 +59,8 @@ then the player gets the profit from selling his own wasted time.
if(!dry_run && (sold || delete_unsold))
if(ismob(thing))
thing.investigate_log("deleted through cargo export",INVESTIGATE_CARGO)
- qdel(thing)
+ if(!dry_run)
+ qdel(AM)
return report
diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm
index 8d8f47a05f65..716cb51d1e97 100644
--- a/code/modules/cargo/packs/ammo.dm
+++ b/code/modules/cargo/packs/ammo.dm
@@ -1,6 +1,7 @@
/datum/supply_pack/ammo
group = "Ammunition"
crate_type = /obj/structure/closet/crate/secure/gear
+ crate_name = "ammo crate"
/*
Pistol ammo
@@ -45,7 +46,7 @@
/datum/supply_pack/ammo/mag_556mm
name = "5.56 Pistole C Magazine Crate"
desc = "Contains a 5.56mm magazine for the Pistole C, containing twelve rounds."
- contains = list(/obj/item/ammo_box/magazine/pistol556mm)
+ contains = list(/obj/item/storage/box/ammo/c556mm)
cost = 750
faction = FACTION_SOLGOV
@@ -62,21 +63,21 @@
/datum/supply_pack/ammo/buckshot
name = "Buckshot Crate"
- desc = "Contains a box of twenty-five buckshot shells for use in lethal persuasion."
+ desc = "Contains a box of 32 buckshot shells for use in lethal persuasion."
cost = 500
- contains = list(/obj/item/ammo_box/a12g)
+ contains = list(/obj/item/storage/box/ammo/a12g_buckshot)
/datum/supply_pack/ammo/slugs
name = "Shotgun Slug Crate"
- desc = "Contains a box of twenty-five slug shells for use in lethal persuasion."
+ desc = "Contains a box of 32 slug shells for use in lethal persuasion."
cost = 500
- contains = list(/obj/item/ammo_box/a12g/slug)
-
+ contains = list(/obj/item/storage/box/ammo/a12g_slug
+)
/datum/supply_pack/ammo/blank_shells
name = "Blank Shell Crate"
desc = "Contains a box of blank shells."
cost = 500
- contains = list(/obj/item/ammo_box/a12g/blanks)
+ contains = list(/obj/item/storage/box/ammo/a12g_blank)
/datum/supply_pack/ammo/blank_ammo_disk
name = "Blank Ammo Design Disk Crate"
@@ -92,9 +93,9 @@
/datum/supply_pack/ammo/rubbershot
name = "Rubbershot Crate"
- desc = "Contains a box of twenty-five rubbershot shells for use in crowd control or training."
+ desc = "Contains a box of 32 rubbershot shells for use in crowd control or training."
cost = 500
- contains = list(/obj/item/ammo_box/a12g/rubbershot)
+ contains = list(/obj/item/storage/box/ammo/a12g_rubbershot)
/*
.38 ammo
@@ -104,8 +105,8 @@
name = ".38 Ammo Boxes Crate"
desc = "Contains two 50 round ammo boxes for refilling .38 weapons."
cost = 250
- contains = list(/obj/item/ammo_box/c38_box,
- /obj/item/ammo_box/c38_box)
+ contains = list(/obj/item/storage/box/ammo/c38,
+ /obj/item/storage/box/ammo/c38)
crate_name = "ammo crate"
/datum/supply_pack/ammo/match
@@ -195,134 +196,136 @@
/datum/supply_pack/ammo/a762_ammo_box
name = "7.62x40mm CLIP Ammo Box Crate"
- desc = "Contains a one hundred and twenty-round 7.62x40mm CLIP box for the SKM rifles."
- contains = list(/obj/item/ammo_box/a762_40)
+ desc = "Contains two 60-round 7.62x40mm CLIP boxes for the SKM rifles."
+ contains = list(/obj/item/storage/box/ammo/a762_40,
+ /obj/item/storage/box/ammo/a762_40)
cost = 500
/datum/supply_pack/ammo/a556_ammo_box
name = "5.56x42mm CLIP Ammo Box Crate"
- desc = "Contains a one hundred and twenty-round 5.56x42mm CLIP box for most newer rifles."
- contains = list(/obj/item/ammo_box/a556_42)
+ desc = "Contains two 60-round 5.56x42mm CLIP boxes for most newer rifles."
+ contains = list(/obj/item/storage/box/ammo/a556_42,
+ /obj/item/storage/box/ammo/a556_42)
cost = 450
/datum/supply_pack/ammo/a357_ammo_box
name = ".357 Ammo Box Crate"
- desc = "Contains a fifty-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand."
- contains = list(/obj/item/ammo_box/a357_box)
+ desc = "Contains a 48-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand."
+ contains = list(/obj/item/storage/box/ammo/a357)
cost = 250
/datum/supply_pack/ammo/c556mmHITP_ammo_box
name = "5.56 Caseless Ammo Box Crate"
- desc = "Contains a fifty-round 5.56mm caseless box for SolGov sidearms like the Pistole C."
- contains = list(/obj/item/ammo_box/c556mmHITP)
+ desc = "Contains a 48-round 5.56mm caseless box for SolGov sidearms like the Pistole C."
+ contains = list(/obj/item/storage/box/ammo/c556mm)
cost = 250
/datum/supply_pack/ammo/c45_ammo_box
name = ".45 Ammo Box Crate"
- desc = "Contains a fifty-round .45 box for pistols and SMGs like the Candor or the C-20r."
- contains = list(/obj/item/ammo_box/c45)
+ desc = "Contains a 48-round .45 box for pistols and SMGs like the Candor or the C-20r."
+ contains = list(/obj/item/storage/box/ammo/c45)
cost = 250
/datum/supply_pack/ammo/c10mm_ammo_box
name = "10mm Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box for pistols and SMGs like the Ringneck or the SkM-44(k)."
- contains = list(/obj/item/ammo_box/c10mm)
+ desc = "Contains a 48-round 10mm box for pistols and SMGs like the Ringneck or the SkM-44(k)."
+ contains = list(/obj/item/storage/box/ammo/c10mm)
cost = 250
/datum/supply_pack/ammo/c9mm_ammo_box
name = "9mm Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box for pistols and SMGs such as the Commander or Saber."
- contains = list(/obj/item/ammo_box/c9mm)
+ desc = "Contains a 48-round 9mm box for pistols and SMGs such as the Commander or Saber."
+ contains = list(/obj/item/storage/box/ammo/c9mm)
cost = 200
/datum/supply_pack/ammo/a308_ammo_box
name = "308 Ammo Box Crate"
desc = "Contains a thirty-round .308 box for DMRs such as the SsG-04 and CM-GAL-S."
- contains = list(/obj/item/ammo_box/a308)
+ contains = list(/obj/item/storage/box/ammo/a308)
cost = 500
/datum/supply_pack/ammo/c9mmap_ammo_box
name = "9mm AP Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box loaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c9mm/ap)
+ desc = "Contains a 48-round 9mm box loaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c9mm/ap)
cost = 400
/datum/supply_pack/ammo/a357match_ammo_box
name = ".357 Match Ammo Box Crate"
- desc = "Contains a fifty-round .357 match box for better performance against armor."
- contains = list(/obj/item/ammo_box/a357_box/match)
+ desc = "Contains a 48-round .357 match box for better performance against armor."
+ contains = list(/obj/item/storage/box/ammo/a357_match)
cost = 500
/datum/supply_pack/ammo/c556mmHITPap_ammo_box
name = "5.56 caseless AP Ammo Box Crate"
- desc = "Contains a fifty-round 5.56mm caseless boxloaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c556mmHITP/ap)
+ desc = "Contains a 48-round 5.56mm caseless boxloaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c556mm_ap)
cost = 500
/datum/supply_pack/ammo/c45ap_ammo_box
name = ".45 AP Ammo Box Crate"
- desc = "Contains a fifty-round .45 box loaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c45/ap)
+ desc = "Contains a 48-round .45 box loaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c45_ap)
cost = 500
/datum/supply_pack/ammo/c10mmap_ammo_box
name = "10mm AP Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c10mm/ap)
+ desc = "Contains a 48-round 10mm box loaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c10mm_ap)
cost = 500
/datum/supply_pack/ammo/c9mmhp_ammo_box
name = "9mm HP Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c9mm/hp)
+ desc = "Contains a 48-round 9mm box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c9mm_hp)
cost = 400
/datum/supply_pack/ammo/a357hp_ammo_box
name = ".357 HP Ammo Box Crate"
- desc = "Contains a fifty-round .357 box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/a357_box/hp)
+ desc = "Contains a 48-round .357 box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/a357_hp)
cost = 500
/datum/supply_pack/ammo/c10mmhp_ammo_box
name = "10mm HP Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c10mm/hp)
+ desc = "Contains a 48-round 10mm box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c10mm_hp)
cost = 500
+
/datum/supply_pack/ammo/c45hp_ammo_box
name = ".45 HP Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c45/hp)
+ desc = "Contains a 48-round 10mm box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c45_hp)
cost = 500
/datum/supply_pack/ammo/c556mmhitphp_ammo_box
name = "5.56 Caseless HP Ammo Box Crate"
- desc = "Contains a fifty-round 5.56mm caseless box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c556mmHITP/hp)
+ desc = "Contains a 48-round 5.56mm caseless box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c556mm_hp)
cost = 500
/datum/supply_pack/ammo/c9mmrubber_ammo_box
name = "9mm Rubber Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c9mm/rubbershot)
+ desc = "Contains a 48-round 9mm box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c9mm_rubber)
cost = 200
/datum/supply_pack/ammo/c10mmrubber_ammo_box
name = "10mm Rubber Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c10mm/rubbershot)
+ desc = "Contains a 48-round 10mm box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c10mm_rubber)
cost = 250
/datum/supply_pack/ammo/c45mmrubber_ammo_box
name = ".45 Rubber Ammo Box Crate"
- desc = "Contains a fifty-round .45 box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c45/rubbershot)
+ desc = "Contains a 48-round .45 box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c45_rubber)
cost = 250
-
/datum/supply_pack/ammo/c556HITPrubber_ammo_box
name = "5.56 Caseless Rubber Ammo Box Crate"
- desc = "Contains a fifty-round 5.56 caseless box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c556mmHITP/rubbershot)
+ desc = "Contains a 48-round 5.56 caseless box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c556mm_rubber)
cost = 250
/datum/supply_pack/ammo/guncell
@@ -339,93 +342,90 @@
/datum/supply_pack/ammo/c57x39mm_boxcrate
name = "5.7x39mm Ammo Box Crate"
- desc = "Contains a fifty-round 5.7x39mm box for PDWs such as the Sidewinder."
- contains = list(/obj/item/ammo_box/c57x39mm_box)
+ desc = "Contains a 48-round 5.7x39mm box for PDWs such as the Sidewinder."
+ contains = list(/obj/item/storage/box/ammo/c57x39)
cost = 250
/datum/supply_pack/ammo/c46x30mm_boxcrate
name = "4.6x30mm Ammo Box Crate"
- desc = "Contains a fifty-round 4.6x30mm box for PDWs such as the WT-550."
- contains = list(/obj/item/ammo_box/c46x30mm_box)
+ desc = "Contains a 60-round 4.6x30mm box for PDWs such as the WT-550."
+ contains = list(/obj/item/storage/box/ammo/c46x30mm)
cost = 250
/datum/supply_pack/ammo/c8x50mm_boxcrate
name = "8x50mm Ammo Box Crate"
- desc = "Contains a twenty-round 8x50mm ammo box for rifles such as the Illestren."
- contains = list(/obj/item/ammo_box/c8x50mm_box)
+ desc = "Contains a 30-round 8x50mm ammo box for rifles such as the Illestren."
+ contains = list(/obj/item/storage/box/ammo/a8_50r)
cost = 250
/datum/supply_pack/ammo/c8x50mm_boxhp_boxcrate
name = "8x50mm Hollow Point Crate"
- desc = "Contains a twenty-round 8x50mm ammo box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c8x50mmhp_box)
+ desc = "Contains a 30y-round 8x50mm ammo box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/a8_50r_hp)
cost = 500
/datum/supply_pack/ammo/a300_box
name = ".300 Ammo Box Crate"
desc = "Contains a twenty-round .300 Magnum ammo box for sniper rifles such as the HP Scout."
- contains = list(/obj/item/ammo_box/a300_box)
+ contains = list(/obj/item/storage/box/ammo/a300)
cost = 400
/datum/supply_pack/ammo/a65clip_box
name = "6.5x57mm CLIP Ammo Box Crate"
desc = "Contains a twenty-round 6.5x57mm CLIP ammo box for various sniper rifles such as the CM-F90 and the Boomslang series."
- contains = list(/obj/item/ammo_box/a65clip_box)
+ contains = list(/obj/item/storage/box/ammo/a65clip)
cost = 400
-
/datum/supply_pack/ammo/a4570_box
name = ".45-70 Ammo Box Crate"
- desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition."
- contains = list(/obj/item/ammo_box/a4570)
+ desc = "Contains a 20-round box containing devastatingly powerful .45-70 caliber ammunition."
+ contains = list(/obj/item/storage/box/ammo/a4570)
cost = 500
/datum/supply_pack/ammo/a4570_box/match
name = ".45-70 Match Crate"
- desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition, that travels faster, pierces armour better, and ricochets off targets."
- contains = list(/obj/item/ammo_box/a4570/match)
+ desc = "Contains a 20-round box containing devastatingly powerful .45-70 caliber ammunition, that travels faster, pierces armour better, and ricochets off targets."
+ contains = list(/obj/item/storage/box/ammo/a4570_match)
cost = 750
/datum/supply_pack/ammo/ferropelletboxcrate
name = "Ferromagnetic Pellet Box Crate"
- desc = "Contains a fifty-round ferromagnetic pellet ammo box for gauss guns such as the Claris."
- contains = list(/obj/item/ammo_box/ferropelletbox)
+ desc = "Contains a 48-round ferromagnetic pellet ammo box for gauss guns such as the Claris."
+ contains = list(/obj/item/storage/box/ammo/ferropellet)
cost = 250
/datum/supply_pack/ammo/ferroslugboxcrate
name = "Ferromagnetic Slug Box Crate"
desc = "Contains a twenty-round ferromagnetic slug for gauss guns such as the Model-H."
- contains = list(/obj/item/ammo_box/ferroslugbox)
+ contains = list(/obj/item/storage/box/ammo/ferroslug)
cost = 250
/datum/supply_pack/ammo/ferrolanceboxcrate
name = "Ferromagnetic Lance Box Crate"
- desc = "Contains a fifty-round box for high-powered gauss guns such as the GAR assault rifle."
- contains = list(/obj/item/ammo_box/ferrolancebox)
+ desc = "Contains a 48-round box for high-powered gauss guns such as the GAR assault rifle."
+ contains = list(/obj/item/storage/box/ammo/ferrolance)
cost = 250
/datum/supply_pack/ammo/a44roum
name = ".44 Roumain Ammo Box Crate"
- desc = "Contains a fifty-round box of .44 roumain ammo for revolvers such as the Shadow and Montagne."
- contains = list(/obj/item/ammo_box/a44roum)
+ desc = "Contains a 48-round box of .44 roumain ammo for revolvers such as the Shadow and Montagne."
+ contains = list(/obj/item/storage/box/ammo/a44roum)
cost = 250
/datum/supply_pack/ammo/a44roum_rubber
name = ".44 Roumain Rubber Ammo Box Crate"
- desc = "Contains a fifty-round box of .44 roumain ammo loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/a44roum/rubber)
+ desc = "Contains a 48-round box of .44 roumain ammo loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/a44roum_rubber)
cost = 250
/datum/supply_pack/ammo/a44roum_hp
name = ".44 Roumain Hollow Point Ammo Box Crate"
- desc = "Contains a fifty-round box of .44 roumain hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/a44roum/hp)
+ desc = "Contains a 48-round box of .44 roumain hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/a44roum_hp)
cost = 500
/datum/supply_pack/ammo/c22lr
name = ".22 LR Ammo Box Crate"
- desc = "Contains two 75 round ammo boxes for refilling .22 LR weapons."
- contains = list(/obj/item/ammo_box/c22lr_box,
- /obj/item/ammo_box/c22lr_box)
- crate_name = "ammo crate"
+ desc = "Contains a 60-round ammo box for refilling .22 LR weapons."
+ contains = list(/obj/item/storage/box/ammo/c22lr)
cost = 250
diff --git a/code/modules/cargo/packs/chemistry.dm b/code/modules/cargo/packs/chemistry.dm
index 5c7ae4a20ab9..236706f7b6c0 100644
--- a/code/modules/cargo/packs/chemistry.dm
+++ b/code/modules/cargo/packs/chemistry.dm
@@ -10,19 +10,26 @@
name = "Chemical Starter Kit Crate"
desc = "Contains thirteen different chemicals, for all the fun experiments you can make."
cost = 1250 // This is intentionally underpriced; the hope is that people will start using ghettochem, upon which time the price can be raised.
- contains = list(/obj/item/reagent_containers/glass/bottle/hydrogen,
+ contains = list(/obj/item/reagent_containers/glass/bottle/aluminium,
+ /obj/item/reagent_containers/glass/bottle/bromine,
/obj/item/reagent_containers/glass/bottle/carbon,
+ /obj/item/reagent_containers/glass/bottle/chlorine,
+ /obj/item/reagent_containers/glass/bottle/copper,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/fluorine,
+ /obj/item/reagent_containers/glass/bottle/hydrogen,
+ /obj/item/reagent_containers/glass/bottle/iodine,
+ /obj/item/reagent_containers/glass/bottle/lithium,
+ /obj/item/reagent_containers/glass/bottle/mercury,
/obj/item/reagent_containers/glass/bottle/nitrogen,
/obj/item/reagent_containers/glass/bottle/oxygen,
- /obj/item/reagent_containers/glass/bottle/fluorine,
/obj/item/reagent_containers/glass/bottle/phosphorus,
- /obj/item/reagent_containers/glass/bottle/silicon,
- /obj/item/reagent_containers/glass/bottle/chlorine,
- /obj/item/reagent_containers/glass/bottle/radium,
- /obj/item/reagent_containers/glass/bottle/sacid,
- /obj/item/reagent_containers/glass/bottle/ethanol,
/obj/item/reagent_containers/glass/bottle/potassium,
+ /obj/item/reagent_containers/glass/bottle/radium,
/obj/item/reagent_containers/glass/bottle/sugar,
+ /obj/item/reagent_containers/glass/bottle/sodium,
+ /obj/item/reagent_containers/glass/bottle/sulfur,
+ /obj/item/reagent_containers/glass/bottle/silicon,
/obj/item/reagent_scanner,
/obj/item/reagent_containers/dropper,
/obj/item/storage/box/beakers)
@@ -53,61 +60,96 @@
Bulk materials
*/
+/datum/supply_pack/chemistry/aluminium
+ name = "Bulk Aluminium Crate"
+ desc = "Contains a jug filled with 150u of aluminium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium)
+ crate_name = "bulk aluminium crate"
+
+/datum/supply_pack/chemistry/bromine
+ name = "Bulk Bromine Crate"
+ desc = "Contains a jug filled with 150u of bromine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine)
+ crate_name = "bulk bromine crate"
+
/datum/supply_pack/chemistry/carbon
name = "Bulk Carbon Crate"
desc = "Contains a jug filled with 150u of carbon."
- cost = 500
+ cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/carbon)
crate_name = "bulk carbon crate"
-/datum/supply_pack/chemistry/oxygen
- name = "Bulk Oxygen Crate"
- desc = "Contains a jug filled with 150u of oxygen."
- cost = 500
- contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen)
- crate_name = "bulk oxygen crate"
+/datum/supply_pack/chemistry/chlorine
+ name = "Bulk Chlorine Crate"
+ desc = "Contains a jug filled with 150u of chlorine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine)
+ crate_name = "bulk chlorine crate"
+
+/datum/supply_pack/chemistry/copper
+ name = "Bulk Copper Crate"
+ desc = "Contains a jug filled with 150u of copper."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/copper)
+ crate_name = "bulk copper crate"
+
+/datum/supply_pack/chemistry/fluorine
+ name = "Bulk Fluorine Crate"
+ desc = "Contains a jug filled with 150u of fluorine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/fluorine)
+ crate_name = "bulk fluorine crate"
/datum/supply_pack/chemistry/hydrogen
name = "Bulk Hydrogen Crate"
desc = "Contains a jug filled with 150u of Hydrogen."
- cost = 500
+ cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/hydrogen)
crate_name = "bulk hydrogen crate"
+/datum/supply_pack/chemistry/iodine
+ name = "Bulk Iodine Crate"
+ desc = "Contains a jug filled with 150u of iodine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine)
+ crate_name = "bulk iodine crate"
+
+/datum/supply_pack/chemistry/lithium
+ name = "Bulk Lithium Crate"
+ desc = "Contains a jug filled with 150u of lithium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/lithium)
+ crate_name = "bulk lithium crate"
+
+/datum/supply_pack/chemistry/mercury
+ name = "Bulk Mercury Crate"
+ desc = "Contains a jug filled with 150u of mercury."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/mercury)
+ crate_name = "bulk mercury crate"
+
/datum/supply_pack/chemistry/nitrogen
name = "Bulk Nitrogen Crate"
desc = "Contains a jug filled with 150u of nitrogen."
- cost = 625
+ cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/nitrogen)
crate_name = "bulk nitrogen crate"
-/datum/supply_pack/chemistry/aluminium
- name = "Bulk Aluminium Crate"
- desc = "Contains a jug filled with 150u of aluminium."
- cost = 625
- contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium)
- crate_name = "bulk aluminium crate"
-
-/datum/supply_pack/chemistry/copper
- name = "Bulk Copper Crate"
- desc = "Contains a jug filled with 150u of copper."
- cost = 625
- contains = list(/obj/item/reagent_containers/glass/chem_jug/copper)
- crate_name = "bulk copper crate"
-
-/datum/supply_pack/chemistry/bromine
- name = "Bulk Bromine Crate"
- desc = "Contains a jug filled with 150u of bromine."
- cost = 625
- contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine)
- crate_name = "bulk bromine crate"
+/datum/supply_pack/chemistry/oxygen
+ name = "Bulk Oxygen Crate"
+ desc = "Contains a jug filled with 150u of oxygen."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen)
+ crate_name = "bulk oxygen crate"
-/datum/supply_pack/chemistry/iodine
- name = "Bulk Iodine Crate"
- desc = "Contains a jug filled with 150u of iodine."
+/datum/supply_pack/chemistry/phosphorus
+ name = "Bulk Phosphorus Crate"
+ desc = "Contains a jug filled with 150u of phosphorus."
cost = 750
- contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine)
- crate_name = "bulk iodine crate"
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/phosphorus)
+ crate_name = "bulk phosphorus crate"
/datum/supply_pack/chemistry/potassium
name = "Bulk Potassium Crate"
@@ -116,23 +158,23 @@
contains = list(/obj/item/reagent_containers/glass/chem_jug/potassium)
crate_name = "bulk potassium crate"
+/datum/supply_pack/chemistry/radium
+ name = "Bulk Radium Crate"
+ desc = "Contains a jug filled with 150u of radium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/radium)
+ crate_name = "bulk radium crate"
+
+/datum/supply_pack/chemistry/sodium
+ name = "Bulk Sodium Crate"
+ desc = "Contains a jug filled with 150u of sodium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/sodium)
+ crate_name = "bulk sodium crate"
+
/datum/supply_pack/chemistry/sulfur
name = "Bulk Sulfur Crate"
desc = "Contains a jug filled with 150u of sulfur."
cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/sulfur)
crate_name = "bulk sulfur crate"
-
-/datum/supply_pack/chemistry/chlorine
- name = "Bulk Chlorine Crate"
- desc = "Contains a jug filled with 150u of chlorine."
- cost = 750
- contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine)
- crate_name = "bulk chlorine crate"
-
-/datum/supply_pack/chemistry/radium
- name = "Bulk Radium Crate"
- desc = "Contains a jug filled with 150u of radium."
- cost = 1000
- contains = list(/obj/item/reagent_containers/glass/chem_jug/radium)
- crate_name = "bulk radium crate"
diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm
index 3eb7f33cbe4c..364c53ec9eb5 100644
--- a/code/modules/cargo/packs/food.dm
+++ b/code/modules/cargo/packs/food.dm
@@ -189,6 +189,17 @@
crate_name = "food crate"
crate_type = /obj/structure/closet/crate/freezer
+/datum/supply_pack/food/sugar
+ name = "Sugar Crate"
+ desc = "A crate with a few bags of sugar. Good for cake shops and amateur chemists."
+ cost = 500
+ contains = list(/obj/item/reagent_containers/condiment/sugar,
+ /obj/item/reagent_containers/condiment/sugar,
+ /obj/item/reagent_containers/condiment/sugar
+ )
+ crate_name = "sugar crate"
+ crate_type = /obj/structure/closet/crate
+
/*
Cooking
*/
@@ -238,6 +249,19 @@
crate_name = "gardening crate"
crate_type = /obj/structure/closet/crate/hydroponics
+/datum/supply_pack/food/ethanol
+ name = "Ethanol Crate"
+ desc = "Five small bottles of ethanol for the aspiring botanist or amateur chemist."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol
+ )
+ crate_name = "gardening crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
/datum/supply_pack/food/weedcontrol
name = "Weed Control Crate"
desc = "Contains a scythe, gasmask, and two anti-weed defoliant grenades, for when your garden grows out of control."
diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm
index f0f062160c79..1045f2730ea9 100644
--- a/code/modules/cargo/packs/sec_supply.dm
+++ b/code/modules/cargo/packs/sec_supply.dm
@@ -90,19 +90,21 @@
crate_name = "combat knife crate"
*/
-/datum/supply_pack/sec_supply/fire
- name = "Incendiary Weapons Crate"
- desc = "Burn, baby burn. Contains three incendiary grenades and three prebuilt flamethrowers."
- cost = 5000
- contains = list(
- /obj/item/flamethrower/full,
- /obj/item/flamethrower/full,
- /obj/item/flamethrower/full,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/grenade/chem_grenade/incendiary,
- )
- crate_name = "incendiary weapons crate"
+/datum/supply_pack/sec_supply/flamethrower
+ name = "Flamethrower Crate"
+ desc = "Contains one flamethrower. Point the nozzle away from anything important."
+ cost = 1250
+ contains = list(/obj/item/flamethrower/full)
+ crate_name = "flamethrower crate"
+ crate_type = /obj/structure/closet/crate/secure/weapon
+ faction = FACTION_NGR
+
+/datum/supply_pack/sec_supply/incendiary_grenade
+ name = "Incendiary Grenade Crate"
+ desc = "Contains one incendiary grenade. Better not let it go off in your hands."
+ cost = 750
+ contains = list(/obj/item/grenade/chem_grenade/incendiary)
+ crate_name = "incendiary grenade crate"
crate_type = /obj/structure/closet/crate/secure/plasma
faction = FACTION_NGR
diff --git a/code/modules/clothing/factions/clip.dm b/code/modules/clothing/factions/clip.dm
index 7ac3668aaf77..6371b5c14f12 100644
--- a/code/modules/clothing/factions/clip.dm
+++ b/code/modules/clothing/factions/clip.dm
@@ -330,6 +330,8 @@
icon_state = "clip_m10_correspondant"
item_state = "clip_m10_correspondant"
+ supports_variations = VOX_VARIATION
+
/obj/item/clothing/head/helmet/riot/clip
name = "\improper Minutemen riot helmet"
desc = "Designed to protect against close range attacks. Mainly used by the CMM-BARD against hostile xenofauna, it also sees prolific use on some Minutemen member worlds."
diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm
index 3eea9ebec461..d4ff3169880d 100644
--- a/code/modules/clothing/factions/gezena.dm
+++ b/code/modules/clothing/factions/gezena.dm
@@ -102,6 +102,10 @@
w_class = WEIGHT_CLASS_NORMAL
supports_variations = DIGITIGRADE_VARIATION
+/obj/item/clothing/suit/space/gezena/Initialize()
+ . = ..()
+ allowed = GLOB.security_hardsuit_allowed
+
/obj/item/clothing/head/helmet/space/gezena
name = "\improper Rakalla-helm"
desc = "Featuring rubberized grommets fitting for any length of horn, and an internal monitor for life support."
diff --git a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
index 8401455bf7d8..b685e0e4b8bb 100644
--- a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
+++ b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
@@ -89,11 +89,11 @@
var/loops = rand(1,3)
for(var/i in 1 to loops)
var/ammotype = pick(list(
- /obj/item/ammo_box/c8x50mm_box,
- /obj/item/ammo_box/c45,
- /obj/item/ammo_box/a357_box,
- /obj/item/ammo_box/c45,
- /obj/item/ammo_box/a4570,
+ /obj/item/storage/box/ammo/a8_50r,
+ /obj/item/storage/box/ammo/c45,
+ /obj/item/storage/box/ammo/a357,
+ /obj/item/storage/box/ammo/c45,
+ /obj/item/storage/box/ammo/a4570,
/obj/item/stock_parts/cell/gun/mini))
backpack_contents += ammotype
@@ -220,7 +220,11 @@
l_hand = /obj/item/flamethrower/full/tank
- backpack_contents = list(/obj/item/gun/ballistic/shotgun/doublebarrel/presawn=1,/obj/item/ammo_box/a12g=1,/obj/item/extinguisher=2,/obj/item/radio=1)
+ backpack_contents = list(
+ /obj/item/gun/ballistic/shotgun/doublebarrel/presawn=1, \
+ /obj/item/storage/box/ammo/a12g_slug = 1, \
+ /obj/item/extinguisher = 2, \
+ /obj/item/radio=1)
/datum/outfit/job/frontiersmen/ert/sentry_lmg
diff --git a/code/modules/clothing/outfits/factions/inteq.dm b/code/modules/clothing/outfits/factions/inteq.dm
index 16d1456361be..51e1cf1fb29f 100644
--- a/code/modules/clothing/outfits/factions/inteq.dm
+++ b/code/modules/clothing/outfits/factions/inteq.dm
@@ -24,6 +24,7 @@
jobtype = /datum/job/assistant
job_icon = "assistant"
+ ears = /obj/item/radio/headset
r_pocket = /obj/item/radio
///captains
@@ -135,6 +136,7 @@
jobtype = /datum/job/officer
job_icon = "securityofficer"
+ ears = /obj/item/radio/headset/alt
head = /obj/item/clothing/head/helmet/inteq
suit = /obj/item/clothing/suit/armor/vest/alt
belt = /obj/item/storage/belt/security/webbing/inteq
@@ -181,6 +183,7 @@
job_icon = "stationengineer"
jobtype = /datum/job/engineer
+ ears = /obj/item/radio/headset/alt
uniform = /obj/item/clothing/under/syndicate/inteq/artificer
head = /obj/item/clothing/head/soft/inteq
shoes = /obj/item/clothing/shoes/combat
diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm
index cd4474588090..424e00712078 100644
--- a/code/modules/clothing/shoes/_shoes.dm
+++ b/code/modules/clothing/shoes/_shoes.dm
@@ -172,7 +172,7 @@
else // if one of us moved
user.visible_message("[our_guy] stamps on [user]'s hand, mid-shoelace [tied ? "knotting" : "untying"]!", "Ow! [our_guy] stamps on your hand!", list(our_guy))
to_chat(our_guy, "You stamp on [user]'s hand! What the- [user.p_they()] [user.p_were()] [tied ? "knotting" : "untying"] your shoelaces!")
- user.emote("scream")
+ user.force_scream()
if(istype(L))
var/obj/item/bodypart/ouchie = L.get_bodypart(pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
if(ouchie)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 8f8e532577c0..29ff8ead2f62 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -40,6 +40,8 @@ GLOBAL_LIST_INIT(hallucination_list, list(
next_hallucination = world.time + rand(100, 600)
/mob/living/carbon/proc/set_screwyhud(hud_type)
+ if(HAS_TRAIT(src, TRAIT_ANALGESIA))
+ hud_type = SCREWYHUD_HEALTHY
hal_screwyhud = hud_type
update_health_hud()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index 9a6b10e0444b..6016def705b5 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -12,6 +12,7 @@
idle_power_usage = IDLE_DRAW_MINIMAL
active_power_usage = ACTIVE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/smartfridge
+ integrity_failure = 0.4
var/max_n_of_items = 1500
var/allow_ai_retrieve = FALSE
@@ -40,7 +41,10 @@
. += "The status display reads: This unit can hold a maximum of [max_n_of_items] items."
/obj/machinery/smartfridge/update_icon_state()
- if(machine_stat)
+ if(machine_stat & BROKEN)
+ icon_state = "[initial(icon_state)]-broken"
+ return ..()
+ else if(!powered())
icon_state = "[initial(icon_state)]-off"
return ..()
@@ -53,10 +57,8 @@
icon_state = "[initial(icon_state)]"
if(1 to 25)
icon_state = "[initial(icon_state)]1"
- if(26 to 75)
+ if(26 to INFINITY)
icon_state = "[initial(icon_state)]2"
- if(76 to INFINITY)
- icon_state = "[initial(icon_state)]3"
return ..()
/obj/machinery/smartfridge/update_overlays()
diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm
index 406259246db1..4d5a07d4130f 100644
--- a/code/modules/mining/abandoned_crates.dm
+++ b/code/modules/mining/abandoned_crates.dm
@@ -232,7 +232,7 @@
new /obj/item/gun/ballistic/automatic/toy/pistol(src)
new /obj/item/gun/ballistic/automatic/toy(src)
new /obj/item/gun/ballistic/automatic/toy(src)
- new /obj/item/ammo_box/foambox(src)
+ new /obj/item/storage/box/ammo/foam_darts(src)
if(98)
for(var/i in 1 to 3)
new /mob/living/simple_animal/hostile/poison/bees/toxin(src)
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 73d18f0ab885..60debde823ef 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -621,7 +621,7 @@
ADD_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT)
playsound(C.loc, 'sound/items/poster_ripped.ogg', 50, TRUE, -1)
C.adjustBruteLoss(20)
- C.emote("scream")
+ C.force_scream()
..()
//nerfed necrostone
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm
index 34d8dd274668..10eb5ae7d6eb 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm
@@ -90,29 +90,21 @@
name = "Bowlcut 2"
icon_state = "hair_bowlcut2"
-/datum/sprite_accessory/hair/braid
- name = "Braid (Floorlength)"
- icon_state = "hair_braid"
-
-/datum/sprite_accessory/hair/braided
- name = "Braided"
- icon_state = "hair_braided"
-
-/datum/sprite_accessory/hair/front_braid
- name = "Braided Front"
- icon_state = "hair_braidfront"
-
-/datum/sprite_accessory/hair/not_floorlength_braid
- name = "Braid (High)"
+/datum/sprite_accessory/hair/ponytail_braided
+ name = "Ponytail (Braided)"
icon_state = "hair_braid2"
-/datum/sprite_accessory/hair/lowbraid
- name = "Braid (Low)"
- icon_state = "hair_hbraid"
+/datum/sprite_accessory/hair/ponytail_braided_short
+ name = "Ponytail (Braided Short)"
+ icon_state = "hair_braid"
-/datum/sprite_accessory/hair/shortbraid
- name = "Braid (Short)"
- icon_state = "hair_shortbraid"
+/datum/sprite_accessory/hair/ponytail_straight
+ name = "Ponytail (Straight)"
+ icon_state = "hair_longstraightponytail"
+
+/datum/sprite_accessory/hair/ponytail_straight_short
+ name = "Ponytail (Straight Short)"
+ icon_state = "hair_highponytail"
/datum/sprite_accessory/hair/braidtail
name = "Braided Tail"
@@ -503,12 +495,8 @@
icon_state = "hair_ponytail"
/datum/sprite_accessory/hair/ponytail2
- name = "Ponytail 2"
- icon_state = "hair_ponytail2"
-
-/datum/sprite_accessory/hair/ponytail3
- name = "Ponytail 3"
- icon_state = "hair_ponytail3"
+ name = "Ponytail (Grace)"
+ icon_state = "hair_ponytailgrace"
/datum/sprite_accessory/hair/ponytail4
name = "Ponytail 4"
@@ -526,21 +514,14 @@
name = "Ponytail 7"
icon_state = "hair_ponytail7"
-/datum/sprite_accessory/hair/highponytail
- name = "Ponytail (High)"
- icon_state = "hair_highponytail"
/datum/sprite_accessory/hair/stail
name = "Ponytail (Short)"
icon_state = "hair_stail"
-/datum/sprite_accessory/hair/longponytail
- name = "Ponytail (Long)"
- icon_state = "hair_longstraightponytail"
-
/datum/sprite_accessory/hair/countryponytail
name = "Ponytail (Country)"
- icon_state = "hair_country"
+ icon_state = "hair_ponytailcountry"
/datum/sprite_accessory/hair/fringetail
name = "Ponytail (Fringe)"
@@ -722,6 +703,10 @@
name = "Ruby"
icon_state = "hair_ruby"
+/datum/sprite_accessory/hair/rubylong
+ name = "Ruby (Long)"
+ icon_state = "hair_rubylong"
+
/datum/sprite_accessory/hair/undercut
name = "Undercut"
icon_state = "hair_undercut"
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index 0840ee372158..0e4a8ed748c9 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -25,6 +25,22 @@
to_chat(src, "Unusable emote '[act]'. Say *help for a list.")
return FALSE
+/mob/proc/force_scream()
+ if(HAS_TRAIT(src, TRAIT_ANALGESIA))
+ return
+ if(HAS_TRAIT(src, TRAIT_PAIN_RESIST))
+ emote("gasp")
+ return
+ emote("scream")
+
+/mob/proc/force_manual_scream()
+ if(HAS_TRAIT(src, TRAIT_ANALGESIA))
+ return
+ if(HAS_TRAIT(src, TRAIT_PAIN_RESIST))
+ manual_emote("gasp")
+ return
+ manual_emote("scream")
+
/datum/emote/flip
key = "flip"
key_third_person = "flips"
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index bfa71f3b335e..3ae9bbb5b250 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -134,7 +134,7 @@
else if(ishuman(owner)) //Humans, being more fragile, are more overwhelmed by the mental backlash.
to_chat(owner, "You feel a splitting pain in your head, and are struck with a wave of nausea. You cannot hear the hivemind anymore!")
- owner.emote("scream")
+ owner.force_scream()
owner.Paralyze(100)
owner.jitteriness += 30
diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm
index f0d27e801cd2..5e5e8fca6d24 100644
--- a/code/modules/mob/living/carbon/emote.dm
+++ b/code/modules/mob/living/carbon/emote.dm
@@ -253,7 +253,7 @@
damage += rand(3,7)
if(damage >= 5)
- target.emote("scream")
+ target.force_scream()
target.apply_damage(damage, BRUTE, BODY_ZONE_HEAD)
user.adjustStaminaLoss(iteration + 5)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 7a7bc349b26c..c26956991d33 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -655,7 +655,7 @@
if(affecting.name == BODY_ZONE_HEAD)
if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement
affecting.receive_damage(acidity, 2*acidity)
- emote("scream")
+ force_scream()
facial_hairstyle = "Shaved"
hairstyle = "Bald"
update_hair()
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 18b6cb9ba40e..dd05c0de739b 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -345,13 +345,19 @@
var/obj/item/bodypart/R = get_bodypart("r_arm")
if(istype(L) && L.bone_status == BONE_FLAG_BROKEN && held_items[1] && prob(30))
- emote("scream")
- visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(L)] makes it impossible to hold [held_items[1]]!")
+ force_scream()
+ if(!HAS_TRAIT(src, TRAIT_ANALGESIA))
+ visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(L)] makes it impossible to hold [held_items[1]]!")
+ else
+ visible_message(span_notice("[src] flinches and lets go of [held_items[1]]."),span_notice("A sudden weakness in your [parse_zone(L)] makes it impossible to grasp [held_items[1]]!)"))
dropItemToGround(held_items[1])
if(istype(R) && R.bone_status == BONE_FLAG_BROKEN && held_items[2] && prob(30))
- emote("scream")
- visible_message("[src] screams and lets go of [held_items[2]] in pain.", "A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[2]]!")
+ force_scream()
+ if(!HAS_TRAIT(src, TRAIT_ANALGESIA))
+ visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[1]]!")
+ else
+ visible_message(span_notice("[src] flinches and lets go of [held_items[1]]."),span_notice("A sudden weakness in your [parse_zone(R)] makes it impossible to grasp [held_items[1]]!)"))
dropItemToGround(held_items[2])
#undef THERMAL_PROTECTION_HEAD
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index a1560963b00b..9eee54ec541e 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1938,7 +1938,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
// 40% for level 3 damage on humans to scream in pain
if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4)
- H.emote("scream")
+ H.force_scream()
// Apply the damage to all body parts
H.apply_damage(burn_damage, BURN, spread_damage = TRUE)
diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
index b91559edb0ae..cfbc682f24de 100644
--- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm
+++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
@@ -149,7 +149,7 @@
_human.apply_damage(8,BRUTE,BODY_ZONE_CHEST)
_human.apply_damage(8,BRUTE,BODY_ZONE_L_LEG)
_human.apply_damage(8,BRUTE,BODY_ZONE_R_LEG)
- _human.emote("scream")
+ _human.force_scream()
_human.remove_status_effect(/datum/status_effect/rooted)
return
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 665e75da9cef..e53b675c95bc 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -364,7 +364,7 @@
"THE CLEANBOTS WILL RISE.", "YOU ARE NO MORE THAN ANOTHER MESS THAT I MUST CLEANSE.", "FILTHY.", "DISGUSTING.", "PUTRID.",
"MY ONLY MISSION IS TO CLEANSE THE WORLD OF EVIL.", "EXTERMINATING PESTS.")
say(phrase)
- victim.emote("scream")
+ victim.force_scream()
playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE, -6)
victim.acid_act(5, 100)
else if(A == src) // Wets floors and spawns foam randomly
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 646a3eb8436b..33c8bbdb3ed2 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -1,7 +1,6 @@
-//Cat
/mob/living/simple_animal/pet/cat
name = "cat"
- desc = "Kitty!!"
+ desc = "Most modern cats hail from a solarian experimental geneline. The perfect purrtection from rats and radiation."
icon = 'icons/mob/pets.dmi'
icon_state = "cat2"
icon_living = "cat2"
@@ -40,6 +39,13 @@
footstep_type = FOOTSTEP_MOB_CLAW
+ var/grace = RAD_GRACE_PERIOD
+ var/radiation_count = 0
+ var/current_tick_amount = 0
+ var/last_tick_amount = 0
+ var/fail_to_receive = 0
+ var/glow_strength
+
/mob/living/simple_animal/pet/cat/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_HOLDABLE, INNATE_TRAIT)
@@ -177,8 +183,49 @@
collar_type = "[initial(collar_type)]"
regenerate_icons()
+/mob/living/simple_animal/pet/cat/rad_act(amount)
+ . = ..()
+ if(amount <= RAD_BACKGROUND_RADIATION)
+ return
+ current_tick_amount += amount
+ update_glow()
+
+/mob/living/simple_animal/pet/cat/proc/update_glow()
+ var/old_glow_strength = glow_strength
+ switch(radiation_count)
+ if(-INFINITY to RAD_LEVEL_NORMAL)
+ glow_strength = 1
+ if(RAD_LEVEL_NORMAL to RAD_LEVEL_MODERATE)
+ glow_strength = 2
+ if(RAD_LEVEL_MODERATE to RAD_LEVEL_HIGH)
+ glow_strength = 3
+ if(RAD_LEVEL_HIGH to RAD_LEVEL_VERY_HIGH)
+ glow_strength = 4
+ if(RAD_LEVEL_VERY_HIGH to RAD_LEVEL_CRITICAL)
+ glow_strength = 5
+ if(RAD_LEVEL_CRITICAL to INFINITY)
+ glow_strength = 6
+ if((old_glow_strength != glow_strength) && (glow_strength > 1))
+ src.add_filter("ray_cat_glow", 2, list("type" = "outline", "color" = RAD_GLOW_COLOR, "size" = glow_strength))
+ if(glow_strength <= 1)
+ src.remove_filter("ray_cat_glow")
/mob/living/simple_animal/pet/cat/Life()
+ radiation_count -= radiation_count/RAD_MEASURE_SMOOTHING
+ radiation_count += current_tick_amount/RAD_MEASURE_SMOOTHING
+
+ if(current_tick_amount)
+ grace = RAD_GRACE_PERIOD
+ last_tick_amount = current_tick_amount
+ else
+ grace--
+ if(grace <= 0)
+ radiation_count = 0
+
+ current_tick_amount = 0
+
+ update_glow()
+
if(!stat && !buckled && !client)
if(prob(1))
manual_emote(pick("stretches out for a belly rub.", "wags its tail.", "lies down."))
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
index 4869d4a95c1c..86224e131747 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
@@ -461,8 +461,8 @@
/obj/item/assembly/flash/handheld = 5,
/obj/item/storage/box/evidence = 6,
/obj/item/flashlight/seclite = 4,
- /obj/item/ammo_box/c9mm/rubbershot = 3,
- /obj/item/ammo_box/c9mm = 1,
+ /obj/item/storage/box/ammo/c9mm_rubber = 3,
+ /obj/item/storage/box/ammo/c9mm = 1,
/obj/item/stock_parts/cell/gun = 3,
/obj/item/coin/antagtoken = 1,
/obj/item/grenade/stingbang = 1
diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm
index b880704c9bf9..19eaa5a6f91d 100644
--- a/code/modules/mob/living/simple_animal/slime/life.dm
+++ b/code/modules/mob/living/simple_animal/slime/life.dm
@@ -193,7 +193,7 @@
C.adjustCloneLoss(rand(2,4))
C.adjustToxLoss(rand(1,2))
- if(prob(10) && C.client)
+ if(prob(10) && C.client && !HAS_TRAIT(C, TRAIT_ANALGESIA))
to_chat(C, "[pick("You can feel your body becoming weak!", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm
index 0199662862f8..37b9cf6e2ac7 100644
--- a/code/modules/mod/mod_control.dm
+++ b/code/modules/mod/mod_control.dm
@@ -416,7 +416,7 @@
wearer.apply_damage(10 / severity, BURN, spread_damage=TRUE)
to_chat(wearer, span_danger("You feel [src] heat up from the EMP, burning you slightly."))
if(wearer.stat < UNCONSCIOUS && prob(10))
- wearer.emote("scream")
+ wearer.force_scream()
/*obj/item/mod/control/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot)
if(visuals_only)
diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm
index e735654ef2c5..dc0f595c19f2 100644
--- a/code/modules/mod/modules/modules_maint.dm
+++ b/code/modules/mod/modules/modules_maint.dm
@@ -47,7 +47,7 @@
if(!mod.wearer) //while there is a guaranteed user when on_wearer_exposed() fires, that isn't the same case for this proc
return
mod.wearer.visible_message("[src] inside [mod.wearer]'s [mod.name] snaps shut, mutilating the user inside!", span_userdanger("*SNAP*"))
- mod.wearer.emote("scream")
+ mod.wearer.force_scream()
playsound(mod.wearer, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5)
playsound(mod.wearer, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5)
mod.wearer.apply_damage(500, BRUTE, forced = TRUE, spread_damage = TRUE) //boggers, bogchamp, etc
diff --git a/code/modules/paperwork/folders_premade.dm b/code/modules/paperwork/folders_premade.dm
index 48b7cb763785..5237358e34b1 100644
--- a/code/modules/paperwork/folders_premade.dm
+++ b/code/modules/paperwork/folders_premade.dm
@@ -61,6 +61,10 @@
/obj/item/folder/documents/syndicate/mining
document = /obj/item/documents/syndicate/mining
+/obj/item/folder/documents/syndicate/ngr
+ document = /obj/item/documents/syndicate/ngr
+ icon_state = "folder_ngr"
+
/obj/item/folder/documents/solgov
document = /obj/item/documents/solgov
desc = "A blue folder with a SolGov seal."
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index eaf51fc9b25b..9065c7a87fd4 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -102,8 +102,9 @@
visible_message("\The [src] hits [H] in the eye[eyes ? "" : " socket"]!")
H.adjust_blurriness(6)
eyes?.applyOrganDamage(rand(6,8))
- H.Paralyze(40)
- H.emote("scream")
+ H.force_scream()
+ if(!HAS_TRAIT(H, TRAIT_ANALGESIA))
+ H.Paralyze(40)
/obj/item/paper/examine(mob/user)
. = ..()
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index 22e9a722634b..fecf2b17dac6 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -106,6 +106,31 @@
icon_state = "stamp-biodynamics"
dye_color = DYE_CMO
+/obj/item/stamp/ngr
+ name = "New Gorlex Republic rubber stamp"
+ icon_state = "stamp-ngr"
+ dye_color = DYE_REDCOAT
+
+/obj/item/stamp/ngr/captain
+ name = "Captain's rubber stamp"
+ icon_state = "stamp-ngr_cap"
+ dye_color = DYE_QM
+
+/obj/item/stamp/ngr/foreman
+ name = "Foreman's rubber stamp"
+ icon_state = "stamp-ngr_fore"
+ dye_color = DYE_QM
+
+/obj/item/stamp/ngr/lieutenant
+ name = "Lieutenant's rubber stamp"
+ icon_state = "stamp-ngr_lieu"
+ dye_color = DYE_QM
+
+/obj/item/stamp/ngr/ensign
+ name = "Ensign's rubber stamp"
+ icon_state = "stamp-ngr_ensign"
+ dye_color = DYE_QM
+
/obj/item/stamp/solgov
name = "SolGov rubber stamp"
icon_state = "stamp-solgov"
@@ -115,32 +140,33 @@
icon_state = "stamp-inteq"
dye_color = DYE_QM
-/obj/item/stamp/vanguard
+/obj/item/stamp/inteq/vanguard
name = "Vanguard's rubber stamp"
- icon_state = "stamp-vanguard"
- dye_color = DYE_QM
+ icon_state = "stamp-inteq_vanguard"
-/obj/item/stamp/maa
+/obj/item/stamp/inteq/maa
name = "Master at Arms' rubber stamp"
- icon_state = "stamp-maa"
- dye_color = DYE_QM
+ icon_state = "stamp-inteq_maa"
-/obj/item/stamp/artificer
- name = "Class II Artificer's rubber stamp"
- icon_state = "stamp-artificer"
- dye_color = DYE_QM
+/obj/item/stamp/inteq/artificer
+ name = "Honorable Artificer's rubber stamp"
+ icon_state = "stamp-inteq_artificer"
+
+/obj/item/stamp/inteq/corpsman
+ name = "Honorable Corpsman's rubber stamp"
+ icon_state = "stamp-inteq_corpsman"
/obj/item/stamp/clip
name = "CLIP Minutemen rubber stamp"
icon_state = "stamp-cmm"
dye_color = DYE_FO
-/obj/item/stamp/gold
+/obj/item/stamp/clip/gold
name = "GOLD rubber stamp"
icon_state = "stamp-gold"
dye_color = DYE_FO
-/obj/item/stamp/bard
+/obj/item/stamp/clip/bard
name = "BARD rubber stamp"
icon_state = "stamp-bard"
dye_color = DYE_FO
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammo_casing.dm
similarity index 51%
rename from code/modules/projectiles/ammunition/_ammunition.dm
rename to code/modules/projectiles/ammunition/_ammo_casing.dm
index b216296cfe8d..57b6e9b27b57 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammo_casing.dm
@@ -1,7 +1,7 @@
/obj/item/ammo_casing
name = "bullet casing"
desc = "A bullet casing."
- icon = 'icons/obj/ammo_bullets.dmi'
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "pistol-brass"
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
@@ -30,16 +30,109 @@
/// Disable for things like rockets or other heavy ammunition that should only appear right-side up.
var/auto_rotate = TRUE
- var/pellets = 1 //Pellets for spreadshot
- var/variance = 0 //Variance for inaccuracy fundamental to the casing
- var/randomspread = FALSE //Randomspread for automatics
- var/delay = 0 //Delay for energy weapons
- var/click_cooldown_override = 0 //Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown.
+ ///Pellets for spreadshot
+ var/pellets = 1
+ ///Variance for inaccuracy fundamental to the casing
+ var/variance = 0
+ ///Randomspread for automatics
+ var/randomspread = FALSE
+ ///Delay for energy weapons
+ var/delay = 0
+ ///Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown.
+ var/click_cooldown_override = 0
+ ///If true, overrides the bouncing sfx from the turf to this one
+ var/list/bounce_sfx_override
+
+ ///What this casing can be stacked into.
+ var/obj/item/ammo_box/magazine/stack_type = /obj/item/ammo_box/magazine/ammo_stack
+ ///Maximum stack size of ammunition
+ var/stack_size = 12
+
+/obj/item/ammo_casing/attackby(obj/item/attacking_item, mob/user, params)
+ if(istype(attacking_item, /obj/item/ammo_box) && user.is_holding(src))
+ add_fingerprint(user)
+ var/obj/item/ammo_box/ammo_box = attacking_item
+ var/obj/item/ammo_casing/other_casing = ammo_box.get_round(TRUE)
+
+ if(try_stacking(other_casing, user))
+ ammo_box.stored_ammo -= other_casing
+ ammo_box.update_ammo_count()
+ return
- var/list/bounce_sfx_override // if true, overrides the bouncing sfx from the turf to this one
+ else if(istype(attacking_item, /obj/item/ammo_box/magazine/ammo_stack))
+ add_fingerprint(user)
+ var/obj/item/ammo_box/magazine/ammo_stack = attacking_item
+ if(isturf(loc))
+ var/boolets = 0
+ for(var/obj/item/ammo_casing/bullet in loc)
+ if(bullet == src)
+ continue
+ if(!bullet.BB)
+ continue
+ if(length(ammo_stack.stored_ammo) >= ammo_stack.max_ammo)
+ break
+ if(ammo_stack.give_round(bullet, FALSE))
+ boolets++
+ break
+ if((boolets <= 0) && BB && !(length(ammo_stack.stored_ammo) >= ammo_stack.max_ammo))
+ if(ammo_stack.give_round(src, FALSE))
+ boolets++
+ if(boolets > 0)
+ ammo_stack.update_ammo_count()
+ to_chat(user, span_notice("You collect [boolets] round\s. [ammo_stack] now contains [length(ammo_stack.stored_ammo)] round\s."))
+ else
+ to_chat(user, span_warning("You can't stack any more!"))
+ return
- var/bullet_per_box
+ else if(istype(attacking_item, /obj/item/ammo_casing))
+ try_stacking(attacking_item, user)
+ return
+ return ..()
+
+/obj/item/ammo_casing/proc/try_stacking(obj/item/ammo_casing/other_casing, mob/living/user)
+ if(user)
+ add_fingerprint(user)
+ if(!other_casing.stack_type)
+ if(user)
+ to_chat(user, span_warning("[other_casing] can't be stacked."))
+ return
+ if(!stack_type)
+ if(user)
+ to_chat(user, span_warning("[src] can't be stacked."))
+ return
+ if(name != other_casing.name) //Has to match exactly
+ if(user)
+ to_chat(user, span_warning("You can't stack different types of ammunition."))
+ return
+ if(stack_type != other_casing.stack_type)
+ if(user)
+ to_chat(user, span_warning("You can't stack [other_casing] with [src]."))
+ return
+ if(!BB || !other_casing.BB) //maybe allow empty casing stacking at a later date, when there's a feature to recycle casings
+ if(user)
+ to_chat(user, span_warning("You can't stack empty casings."))
+ return
+ if((item_flags & IN_STORAGE) || (other_casing.item_flags & IN_STORAGE))
+ if(user)
+ to_chat(user, span_warning("You can't stack casings while they are inside storage."))
+ return
+ var/obj/item/ammo_box/magazine/ammo_stack/ammo_stack = other_casing.stack_with(src)
+ if(user)
+ user.put_in_hands(ammo_stack)
+ to_chat(user, span_notice("[src] has been stacked with [other_casing]."))
+ return ammo_stack
+
+/obj/item/ammo_casing/proc/stack_with(obj/item/ammo_casing/other_casing)
+ var/obj/item/ammo_box/magazine/ammo_stack/ammo_stack = new stack_type(drop_location())
+ ammo_stack.name = "handful of [name]s" //"handful of .9mm bullet casings"
+ ammo_stack.base_icon_state = other_casing.icon_state
+ ammo_stack.caliber = caliber
+ ammo_stack.max_ammo = stack_size
+ ammo_stack.give_round(src)
+ ammo_stack.give_round(other_casing)
+ ammo_stack.update_ammo_count()
+ return ammo_stack
/obj/item/ammo_casing/spent
name = "spent bullet casing"
@@ -53,7 +146,7 @@
pixel_y = base_pixel_y + rand(-10, 10)
item_flags |= NO_PIXEL_RANDOM_DROP
if(auto_rotate)
- transform = transform.Turn(pick(0, 90, 180, 270))
+ transform = transform.Turn(round(45 * rand(0, 32) / 2))
update_appearance()
/obj/item/ammo_casing/Destroy()
@@ -72,33 +165,11 @@
desc = "[initial(desc)][BB ? null : " This one is spent."]"
return ..()
-//proc to magically refill a casing with a new projectile
+///Proc to magically refill a casing with a new projectile
/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!).
if(!BB)
BB = new projectile_type(src, src)
-/obj/item/ammo_casing/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/ammo_box))
- var/obj/item/ammo_box/box = I
- if(isturf(loc))
- var/boolets = 0
- for(var/obj/item/ammo_casing/bullet in loc)
- if (box.stored_ammo.len >= box.max_ammo)
- break
- if (bullet.BB)
- if (box.give_round(bullet, 0))
- boolets++
- else
- continue
- if (boolets > 0)
- box.update_appearance()
- to_chat(user, "You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.")
- else
- to_chat(user, "You fail to collect anything!")
- else
- return ..()
-
-
/obj/item/ammo_casing/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
bounce_away(FALSE, NONE)
. = ..()
@@ -111,7 +182,6 @@
var/angle_of_movement = !isnull(shooter) ? (rand(-3000, 3000) / 100) + dir2angle(turn(shooter.dir, 180)) : rand(-3000, 3000) / 100
AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(400, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = bounce_sfx_override)
-
/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3)
if(!heavy_metal)
return
diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm
index d46001951ba4..90030e7b0944 100644
--- a/code/modules/projectiles/ammunition/ballistic/lmg.dm
+++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm
@@ -6,7 +6,6 @@
icon_state = "rifle-steel"
caliber = "7.12x82mm"
projectile_type = /obj/projectile/bullet/mm712x82
- bullet_per_box = 100
/obj/item/ammo_casing/mm712x82/ap
name = "7.12x82mm armor-piercing bullet casing"
diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm
index e8cb64a673d2..9e1f880ffe1b 100644
--- a/code/modules/projectiles/ammunition/ballistic/pistol.dm
+++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm
@@ -6,7 +6,6 @@
icon_state = "pistol-steel"
caliber = "10mm"
projectile_type = /obj/projectile/bullet/c10mm
- bullet_per_box = 50
/obj/item/ammo_casing/c10mm/surplus
name = "10mm surplus bullet casing"
@@ -46,7 +45,7 @@
icon_state = "pistol-brass"
caliber = "9mm"
projectile_type = /obj/projectile/bullet/c9mm
- bullet_per_box = 50
+ stack_size = 15
/obj/item/ammo_casing/c9mm/surplus
name = "9mm surplus bullet casing"
@@ -58,7 +57,7 @@
name = "9mm armor-piercing bullet casing"
desc = "A 9mm armor-piercing bullet casing."
bullet_skin = "ap"
- projectile_type =/obj/projectile/bullet/c9mm/ap
+ projectile_type = /obj/projectile/bullet/c9mm/ap
/obj/item/ammo_casing/c9mm/hp
name = "9mm hollow point bullet casing"
@@ -86,7 +85,7 @@
icon_state = "pistol-steel"
caliber = ".45"
projectile_type = /obj/projectile/bullet/c45
- bullet_per_box = 50
+ stack_size = 12
/obj/item/ammo_casing/c45/surplus
name = ".45 surplus bullet casing"
@@ -125,18 +124,17 @@
desc = "A .50 AE bullet casing."
caliber = ".50 AE"
projectile_type = /obj/projectile/bullet/a50AE
- bullet_per_box = 20
/obj/item/ammo_casing/a50AE/hp
name = ".50 AE hollow point bullet casing"
desc = "A .50 AE hollow point bullet casing."
projectile_type = /obj/projectile/bullet/a50AE/hp
-// .22 LR (Himehabu)
+// .22 LR (Himehabu, Pounder)
+
/obj/item/ammo_casing/c22lr
name = ".22 LR bullet casing"
desc = "A .22 LR bullet casing."
projectile_type = /obj/projectile/bullet/c22lr
caliber = "22lr"
- bullet_per_box = 75
-
+ stack_size = 15
diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm
index 8705a932b392..5b6e8b2e0961 100644
--- a/code/modules/projectiles/ammunition/ballistic/revolver.dm
+++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm
@@ -6,7 +6,6 @@
caliber = ".357"
icon_state = "magnum-brass"
projectile_type = /obj/projectile/bullet/a357
- bullet_per_box = 50
/obj/item/ammo_casing/a357/match
name = ".357 match bullet casing"
@@ -29,7 +28,7 @@
caliber = ".45-70"
icon_state = "magnum-brass"
projectile_type = /obj/projectile/bullet/a4570
- bullet_per_box = 12
+ stack_size = 5
/obj/item/ammo_casing/a4570/match
name = ".45-70 match bullet casing"
@@ -55,14 +54,12 @@
desc = "A .38 Special bullet casing."
caliber = ".38"
projectile_type = /obj/projectile/bullet/c38
- bullet_per_box = 50
/obj/item/ammo_casing/c38/surplus
name = ".38 surplus bullet casing"
desc = "A .38 surplus bullet casing."
projectile_type = /obj/projectile/bullet/c38/surplus
-
/obj/item/ammo_casing/c38/trac
name = ".38 TRAC bullet casing"
desc = "A .38 \"TRAC\" bullet casing."
diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm
index 9f71e2973848..04545410300b 100644
--- a/code/modules/projectiles/ammunition/ballistic/rifle.dm
+++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm
@@ -6,7 +6,7 @@
icon_state = "rifle-brass"
caliber = "8x50mmR"
projectile_type = /obj/projectile/bullet/a8_50r
- bullet_per_box = 20
+ stack_size = 10
/obj/item/ammo_casing/a8_50rhp
name = "8x50mmR hollow point bullet casing"
@@ -14,7 +14,7 @@
icon_state = "rifle-brass-hollow"
caliber = "8x50mmR"
projectile_type = /obj/projectile/bullet/a8_50rhp
-
+ stack_size = 10
// 8x58mm Caseless (SSG-669C)
@@ -24,7 +24,7 @@
icon_state = "caseless"
caliber = "a858"
projectile_type = /obj/projectile/bullet/a858
- bullet_per_box = 20
+ stack_size = 10
// .300 Magnum (Smile Rifle)
@@ -34,7 +34,7 @@
icon_state = "rifle-steel"
caliber = "a300"
projectile_type = /obj/projectile/bullet/a300
- bullet_per_box = 20
+ stack_size = 15
// 5.56x42mm CLIP (CM82, Hydra variants)
@@ -44,7 +44,7 @@
icon_state = "rifle-brass"
caliber = "5.56x42mm"
projectile_type = /obj/projectile/bullet/a556_42
- bullet_per_box = 80
+ stack_size = 5
// 5.45x39mm (SKM-24v)
@@ -55,7 +55,7 @@
caliber = "5.45x39mm"
randomspread = TRUE
projectile_type = /obj/projectile/bullet/a545_39
- bullet_per_box = 80
+ stack_size = 15
/obj/item/ammo_casing/a545_39/recycled
name = "recycled 5.45x39mm bullet casing"
@@ -63,6 +63,7 @@
bullet_skin = "surplus"
caliber = "5.45x39mm"
projectile_type = /obj/projectile/bullet/a545_39
+ stack_size = 15
// 7.62x40mm CLIP (SKM Rifles)
@@ -72,7 +73,7 @@
icon_state = "rifle-brass"
caliber = "7.62x40mm"
projectile_type = /obj/projectile/bullet/a762_40
- bullet_per_box = 80
+ stack_size = 15
//.308 (M514 EBR & CM-GAL-S)
@@ -82,7 +83,7 @@
icon_state = "rifle-brass"
caliber = ".308"
projectile_type = /obj/projectile/bullet/a308
- bullet_per_box = 20
+ stack_size = 10
/obj/item/ammo_casing/caseless/c299
name = ".299 Eoehoma caseless bullet casing"
@@ -90,7 +91,7 @@
icon_state = "caseless"
caliber = ".299 caseless"
projectile_type = /obj/projectile/bullet/c299
- bullet_per_box = 100
+ stack_size = 5
/obj/item/ammo_casing/a65clip
name = "6.5x57mm CLIP bullet casing"
@@ -98,3 +99,4 @@
icon_state = "big-brass"
caliber = "6.5CLIP"
projectile_type = /obj/projectile/bullet/a65clip
+ stack_size = 5
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index 24854030c041..2bf041a0e661 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -3,12 +3,11 @@
/obj/item/ammo_casing/shotgun
name = "shotgun slug"
desc = "A 12-gauge lead slug."
- icon = 'icons/obj/ammo_shotshells.dmi'
icon_state = "slug"
caliber = "12ga"
custom_materials = list(/datum/material/iron=4000)
projectile_type = /obj/projectile/bullet/slug
- bullet_per_box = 25
+ stack_size = 8 //Make sure this matches max_ammo variable on prefilled stacks (magazine/ammo_stack/prefilled)
bounce_sfx_override = 'sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg'
@@ -28,6 +27,7 @@
name = "beanbag slug"
desc = "A weak beanbag slug for riot control."
icon_state = "beanbag"
+ caliber = "12ga beanbag"
custom_materials = list(/datum/material/iron=250)
projectile_type = /obj/projectile/bullet/slug/beanbag
@@ -35,6 +35,7 @@
name = "rubber shot"
desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance."
icon_state = "rubber"
+ caliber = "12ga rubber"
projectile_type = /obj/projectile/bullet/pellet/rubbershot
pellets = 8
variance = 25
@@ -44,6 +45,7 @@
name = "incendiary slug"
desc = "An incendiary-coated shotgun slug."
icon_state = "incendiary"
+ caliber = "12ga incendiary"
projectile_type = /obj/projectile/bullet/incendiary/shotgun
/obj/item/ammo_casing/shotgun/blank
@@ -57,6 +59,7 @@
name = "improvised shell"
desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards."
icon_state = "improvised"
+ caliber = "improvised 12ga"
projectile_type = /obj/projectile/bullet/pellet/improvised
custom_materials = list(/datum/material/iron=250)
pellets = 10
diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm
index 39086b8cc66f..5e0602da6db2 100644
--- a/code/modules/projectiles/ammunition/ballistic/smg.dm
+++ b/code/modules/projectiles/ammunition/ballistic/smg.dm
@@ -6,7 +6,6 @@
icon_state = "rifle-steel"
caliber = "5.7x39mm"
projectile_type = /obj/projectile/bullet/c57x39mm
- bullet_per_box = 50
// 4.6x30mm (WT-550 Automatic Rifle & SKM-24v)
@@ -16,7 +15,7 @@
icon_state = "rifle-brass"
caliber = "4.6x30mm"
projectile_type = /obj/projectile/bullet/c46x30mm
- bullet_per_box = 50
+ stack_size = 15
/obj/item/ammo_casing/c46x30mm/ap
name = "4.6x30mm armor-piercing bullet casing"
@@ -29,7 +28,6 @@
desc = "A 4.6x30mm incendiary bullet casing."
bullet_skin = "incen"
projectile_type = /obj/projectile/bullet/incendiary/c46x30mm
- bullet_per_box = 50
// 4.73x33mm caseless (Solar)
@@ -39,7 +37,6 @@
icon_state = "caseless"
caliber = "4.73x33mm caseless"
projectile_type = /obj/projectile/bullet/c47x33mm
- bullet_per_box = 50
// 5.56mm HITP caseless (Pistole C)
diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm
index e4b668c2228f..af7369204e6d 100644
--- a/code/modules/projectiles/ammunition/ballistic/sniper.dm
+++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm
@@ -6,7 +6,6 @@
icon_state = "big-steel"
caliber = ".50 BMG"
projectile_type = /obj/projectile/bullet/p50
- bullet_per_box = 20
/obj/item/ammo_casing/p50/soporific
name = ".50 BMG soporific bullet casing"
diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm
index 0051680fd1e8..3c71d31eb5ed 100644
--- a/code/modules/projectiles/ammunition/caseless/foam.dm
+++ b/code/modules/projectiles/ammunition/caseless/foam.dm
@@ -9,7 +9,6 @@
custom_materials = list(/datum/material/iron = 11.25)
harmful = FALSE
var/modified = FALSE
- bullet_per_box = 40
/obj/item/ammo_casing/caseless/foam_dart/update_icon_state()
. = ..()
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index 7f92dfad16a6..57fb71d17f32 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -4,7 +4,7 @@
/obj/item/ammo_box
name = "ammo box (null_reference_exception)"
desc = "A box of ammo."
- icon = 'icons/obj/ammo.dmi'
+ icon = 'icons/obj/ammunition/ammo.dmi'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
item_state = "syringe_kit"
@@ -26,7 +26,7 @@
///String, used for checking if ammo of different types but still fits can fit inside it; generally used for magazines
var/caliber
///Allows multiple bullets to be loaded in from one click of another box/magazine
- var/multiload = TRUE
+ var/multiload = FALSE
///Whether or not an ammo box skips the do_after process (e.g. speedloaders)
var/instant_load = FALSE
///Whether the magazine should start with nothing in it
@@ -40,22 +40,42 @@
. = ..()
if(!base_icon_state)
base_icon_state = icon_state
- if (!bullet_cost)
+
+ if(!bullet_cost)
for (var/material in custom_materials)
var/material_amount = custom_materials[material]
LAZYSET(base_cost, material, (material_amount * 0.10))
material_amount *= 0.90 // 10% for the container
material_amount /= max_ammo
- LAZYSET(bullet_cost, material, material_amount)
+ LAZYSET(bullet_cost, material, material_amount).
+
if(!start_empty)
- for(var/i = 1, i <= max_ammo, i++)
- stored_ammo += new ammo_type(src)
- update_ammo_count()
+ top_off(starting = TRUE)
+
+ update_appearance()
+
+/*
+ * top_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once
+ * Arguments:
+ * load_type - if you want to specify a specific ammo casing type to load, enter the path here, otherwise it'll use the basic [/obj/item/ammo_box/var/ammo_type]. Must be a compatible round
+ * starting - Relevant for revolver cylinders, if FALSE then we mind the nulls that represent the empty cylinders (since those nulls don't exist yet if we haven't initialized when this is TRUE)
+ */
+/obj/item/ammo_box/proc/top_off(load_type, starting=FALSE)
+ if(!load_type) //this check comes first so not defining an argument means we just go with default ammo
+ load_type = ammo_type
+
+ var/obj/item/ammo_casing/round_check = load_type
+ if(!starting && (caliber && initial(round_check.caliber) != caliber) || (!caliber && load_type != ammo_type))
+ stack_trace("Tried loading unsupported ammocasing type [load_type] into ammo box [type].")
+ return
+
+ for(var/i = max(1, stored_ammo.len), i <= max_ammo, i++)
+ stored_ammo += new round_check(src)
///gets a round from the magazine, if keep is TRUE the round will stay in the gun
/obj/item/ammo_box/proc/get_round(keep = FALSE)
- if (!stored_ammo.len)
+ if(!stored_ammo.len)
return null
else
var/b = stored_ammo[stored_ammo.len]
@@ -70,7 +90,7 @@
if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type))
return FALSE
- if (stored_ammo.len < max_ammo)
+ if(stored_ammo.len < max_ammo)
stored_ammo += R
R.forceMove(src)
return TRUE
@@ -93,12 +113,14 @@
/obj/item/ammo_box/attackby(obj/item/attacking_obj, mob/user, params, silent = FALSE, replace_spent = FALSE)
var/num_loaded = 0
+
if(!can_load(user))
return
- if(istype(attacking_obj, /obj/item/ammo_box))
+
+ if(istype(attacking_obj, /obj/item/ammo_box/magazine/ammo_stack))
var/obj/item/ammo_box/attacking_box = attacking_obj
for(var/obj/item/ammo_casing/casing_to_insert in attacking_box.stored_ammo)
- if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 1 SECONDS, attacking_box)))
+ if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 1 SECONDS, attacking_box, timed_action_flags = IGNORE_USER_LOC_CHANGE)))
break
var/did_load = give_round(casing_to_insert, replace_spent)
if(!did_load)
@@ -114,15 +136,14 @@
var/obj/item/ammo_casing/casing_to_insert = attacking_obj
if(give_round(casing_to_insert, replace_spent))
user.transferItemToLoc(casing_to_insert, src, TRUE)
- if(!silent)
- playsound(casing_to_insert, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
num_loaded++
+ casing_to_insert.update_appearance()
update_ammo_count()
-
if(num_loaded)
if(!silent)
- to_chat(user, "You load [num_loaded] cartridge\s into \the [src]!")
+ to_chat(user, span_notice("You load [num_loaded] cartridge\s into \the [src]!"))
+ playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
return num_loaded
/obj/item/ammo_box/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
@@ -145,6 +166,7 @@
if(num_loaded)
to_chat(user, "You load [num_loaded] cartridge\s into \the [to_load]!")
return
+
/obj/item/ammo_box/attack_self(mob/user)
var/obj/item/ammo_casing/A = get_round()
if(!A)
@@ -155,7 +177,7 @@
if(!(user.is_holding(src) || H.l_store == src || H.r_store == src) || !user.put_in_hands(A)) //incase they're using TK
A.bounce_away(FALSE, NONE)
playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
- to_chat(user, "You remove a round from [src]!")
+ to_chat(user, span_notice("You remove a round from [src]!"))
update_ammo_count()
/// Updates the materials and appearance of this ammo box
@@ -218,6 +240,7 @@
var/list/L = stored_ammo.Copy()
if(drop_list)
stored_ammo.Cut()
+ update_ammo_count()
return L
///drops the entire contents of the magazine on the floor
@@ -226,6 +249,7 @@
for(var/obj/item/ammo in stored_ammo)
ammo.forceMove(turf_mag)
stored_ammo -= ammo
+ update_ammo_count()
/obj/item/ammo_box/magazine/handle_atom_del(atom/A)
stored_ammo -= A
diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
deleted file mode 100644
index 5b78f1fc93a1..000000000000
--- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
+++ /dev/null
@@ -1,565 +0,0 @@
-// .357 Speed Loaders (Syndicate Revolver)
-
-/obj/item/ammo_box/a357
- name = "speed loader (.357)"
- desc = "A 6-round speed loader for quickly reloading .357 revolvers. These rounds do good damage with average performance against armor."
- icon_state = "speedloader_357-6"
- base_icon_state = "speedloader_357"
- ammo_type = /obj/item/ammo_casing/a357
- caliber = ".357"
- max_ammo = 6
- multiple_sprites = AMMO_BOX_PER_BULLET
- item_flags = NO_MAT_REDEMPTION
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a357/empty
- start_empty = TRUE
-
-/obj/item/ammo_box/a357/match
- name = "speed loader (.357 match)"
- desc = "A 6-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
- ammo_type = /obj/item/ammo_casing/a357/match
-
-/obj/item/ammo_box/a357/hp
- name = "speed loader (.357 hollow point)"
- desc = "A 6-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones."
- ammo_type = /obj/item/ammo_casing/a357/hp
-
-/obj/item/ammo_box/a357_box
- name = "ammo box (.357)"
- desc = "A box of standard .357 ammo."
- icon_state = "357box"
- ammo_type = /obj/item/ammo_casing/a357
- max_ammo = 50
-
-/obj/item/ammo_box/a357_box/match
- name = "ammo box (.357)"
- desc = "A box of match .357 ammo."
- icon_state = "357box-match"
- ammo_type = /obj/item/ammo_casing/a357/match
- max_ammo = 50
-
-/obj/item/ammo_box/a357_box/hp
- name = "ammo box (.357)"
- desc = "A box of hollow point .357 ammo."
- icon_state = "357box-hp"
- ammo_type = /obj/item/ammo_casing/a357/hp
- max_ammo = 50
-
-
-// .45-70 Ammo Holders (Hunting Revolver)
-
-/obj/item/ammo_box/a4570
- name = "ammo box (.45-70)"
- desc = "A box of top grade .45-70 ammo. These rounds do significant damage with average performance against armor."
- icon_state = "4570"
- ammo_type = /obj/item/ammo_casing/a4570
- max_ammo = 18
-
-/obj/item/ammo_box/a4570/match
- name = "ammo box (.45-70 match)"
- desc = "A 18-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
- icon_state = "4570-match"
- ammo_type = /obj/item/ammo_casing/a4570/match
-
-
-/obj/item/ammo_box/a4570/hp
- name = "ammo box (.45-70 hollow point)"
- desc = "A 18-round ammo box for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones."
- icon_state = "4570-hp"
- ammo_type = /obj/item/ammo_casing/a4570/hp
-
-/obj/item/ammo_box/a4570/explosive
- name = "ammo box (.45-70 explosive)"
- desc = "A 18-round ammo box for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs."
- icon_state = "4570-explosive"
- ammo_type = /obj/item/ammo_casing/a4570/explosive
-
-
-// .38 special Speed Loaders (Colt Detective Special)
-
-/obj/item/ammo_box/c38
- name = "speed loader (.38 special)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds do okay damage, but struggle against armor."
- icon_state = "speedloader_38-6"
- base_icon_state = "speedloader_38"
- ammo_type = /obj/item/ammo_casing/c38
- caliber = ".38"
- max_ammo = 6
- multiple_sprites = AMMO_BOX_PER_BULLET
- custom_materials = list(/datum/material/iron = 15000)
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/c38/trac
- name = "speed loader (.38 TRAC)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These TRAC rounds do pitiful damage, but embed a tracking device in targets hit."
- ammo_type = /obj/item/ammo_casing/c38/trac
-
-/obj/item/ammo_box/c38/match
- name = "speed loader (.38 match)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
- ammo_type = /obj/item/ammo_casing/c38/match
-
-/obj/item/ammo_box/c38/match/bouncy
- name = "speed loader (.38 rubber)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with."
- ammo_type = /obj/item/ammo_casing/c38/match/bouncy
-
-/obj/item/ammo_box/c38/dumdum
- name = "speed loader (.38 dum-dum)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These dum-dum bullets shatter on impact and embed in the target's innards. However, they're nearly ineffective against armor and do okay damage."
- ammo_type = /obj/item/ammo_casing/c38/dumdum
-
-/obj/item/ammo_box/c38/hotshot
- name = "speed loader (.38 hearth)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hearthwine bullets contain an incendiary payload that set targets alight."
- ammo_type = /obj/item/ammo_casing/c38/hotshot
-
-/obj/item/ammo_box/c38/iceblox
- name = "speed loader (.38 chilled)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These icewine bullets contain a cryogenic payload that chills targets."
- ammo_type = /obj/item/ammo_casing/c38/iceblox
-
-/obj/item/ammo_box/c38/empty
- start_empty = TRUE
-
-// 8x58mm Stripper Clip (SSG-669C)
-
-/obj/item/ammo_box/a858
- name = "stripper clip (8x58mm)"
- desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration."
- icon_state = "enbloc_858"
- ammo_type = /obj/item/ammo_casing/caseless/a858
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- instant_load = TRUE
-
-/obj/item/ammo_box/a858/empty
- start_empty = TRUE
-
-// .308 Stripper Clip (Vickland)
-
-/obj/item/ammo_box/vickland_a308
- name = "stripper clip (.308)"
- desc = "A 5-round stripper clip for the Vickland Battle Rifle. The Vickland itself has a 10 round capacity, so keep in mind two of these are needed to fully reload it. These rounds do good damage with significant armor penetration."
- icon_state = "stripper_308-5"
- base_icon_state = "stripper_308"
- ammo_type = /obj/item/ammo_casing/a308
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/vickland_a308/empty
- start_empty = TRUE
-
-// .300 Magnum Stripper Clip (Scout)
-
-/obj/item/ammo_box/a300
- name = "stripper clip (.300 Magnum)"
- desc = "A 5-round stripper clip for the Scout Rifle. These rounds do great damage with significant armor penetration."
- icon_state = "300m"
- ammo_type = /obj/item/ammo_casing/a300
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a300/empty
- start_empty = TRUE
-// 7.62 Stripper Clip (Polymer Survivor Rifle)
-
-/obj/item/ammo_box/a762_stripper
- name = "stripper clip (7.62)"
- desc = "A 5-round stripper clip for makeshift bolt-action rifles. These rounds do good damage with good armor penetration."
- icon_state = "stripper_308-5"
- base_icon_state = "stripper_308"
- ammo_type = /obj/item/ammo_casing/a762_40
- caliber = "7.62x40mm"
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a762_stripper/empty
- start_empty = TRUE
-// Ferromagnetic Pellet Speed Loader (Claris)
-
-/obj/item/ammo_box/amagpellet_claris
- name = "\improper Claris speed loader (ferromagnetic pellet)"
- desc = "A 22-round speed loader for quickly reloading the Claris rifle. Ferromagnetic pellets do okay damage with significant armor penetration."
- icon_state = "claris-sl-1"
- base_icon_state = "claris-sl"
- ammo_type = /obj/item/ammo_casing/caseless/gauss
- max_ammo = 22
- multiple_sprites = AMMO_BOX_FULL_EMPTY
- item_flags = NO_MAT_REDEMPTION
- instant_load = TRUE
-
-// Ammo Boxes
-
-/obj/item/ammo_box/c38_box
- name = "ammo box (.38)"
- desc = "A box of standard .38 Special ammo."
- icon_state = "38box"
- ammo_type = /obj/item/ammo_casing/c38
- max_ammo = 50
-
-/obj/item/ammo_box/c38_box/surplus
- name = "ammo box (.38 surplus)"
- desc = "A box of low-quality .38 Special ammo."
- icon_state = "38box-surplus"
- ammo_type = /obj/item/ammo_casing/c38/surplus
-
-/obj/item/ammo_box/c38_box/hotshot
- name = "ammo box (.38 hearth)"
- desc = "An unorthodox .38 Special cartridge infused with hearthwine. Catches the target on fire."
- icon_state = "38hotshot"
- ammo_type = /obj/item/ammo_casing/c38/hotshot
-
-/obj/item/ammo_box/c38_box/iceblox
- name = "ammo box (.38 chilled)"
- desc = "An unorthodox .38 Special cartridge infused with icewine. Chills the target, slowing them down."
- icon_state = "38iceblox"
- ammo_type = /obj/item/ammo_casing/c38/iceblox
-
-/obj/item/ammo_box/a12g
- name = "ammo box (12g buckshot)"
- desc = "A box of 12-gauge buckshot shells, devastating at close range."
- icon_state = "12gbox-buckshot"
- ammo_type = /obj/item/ammo_casing/shotgun/buckshot
- max_ammo = 25
-
-/obj/item/ammo_box/a12g/slug
- name = "ammo box (12g slug)"
- desc = "A box of 12-gauge slugs, for improved accuracy and penetration."
- icon_state = "12gbox-slug"
- ammo_type = /obj/item/ammo_casing/shotgun
-
-/obj/item/ammo_box/a12g/beanbag
- name = "ammo box (12g beanbag)"
- desc = "A box of 12-gauge beanbag shells, for incapacitating targets."
- icon_state = "12gbox-beanbag"
- ammo_type = /obj/item/ammo_casing/shotgun/beanbag
-
-/obj/item/ammo_box/a12g/rubbershot
- name = "ammo box (12g rubbershot)"
- desc = "A box of 12-gauge rubbershot shells, designed for riot control."
- icon_state = "12gbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
-
-/obj/item/ammo_box/a12g/blanks
- name = "ammo box (12g blanks)"
- desc = "A box of 12-gauge blank shells, designed for training."
- icon_state ="12gbox-slug"
- ammo_type = /obj/item/ammo_casing/shotgun/blank
-
-/obj/item/ammo_box/c9mm
- name = "ammo box (9mm)"
- desc = "A box of standard 9mm ammo."
- icon_state = "9mmbox"
- ammo_type = /obj/item/ammo_casing/c9mm
- max_ammo = 50
-
-/obj/item/ammo_box/c9mm/surplus
- name = "ammo box (9mm surplus)"
- desc = "A box of low-quality 9mm ammo."
- icon_state = "9mmbox-surplus"
- ammo_type = /obj/item/ammo_casing/c9mm/surplus
-
-/obj/item/ammo_box/c9mm/rubbershot
- name = "ammo box (9mm rubbershot)"
- desc = "A box of 9mm rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "9mmbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/c9mm/rubber
-
-/obj/item/ammo_box/c9mm/ap
- name = "ammo box (9mm armor-piercing)"
- desc = "A box of 9mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "9mmbox-ap"
- ammo_type = /obj/item/ammo_casing/c9mm/ap
-
-/obj/item/ammo_box/c9mm/hp
- name = "ammo box (9mm hollow point)"
- desc = "A box of 9mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "9mmbox-hp"
- ammo_type = /obj/item/ammo_casing/c9mm/hp
-
-/obj/item/ammo_box/c9mm/fire
- name = "ammo box (9mm incendiary)"
- desc = "A box of 9mm incendiary ammo, designed to ignite targets at the cost of initial damage."
- icon_state = "9mmbox-incendiary"
- ammo_type = /obj/item/ammo_casing/c9mm/inc
-
-/obj/item/ammo_box/c10mm
- name = "ammo box (10mm)"
- desc = "A box of standard 10mm ammo."
- icon_state = "10mmbox"
- ammo_type = /obj/item/ammo_casing/c10mm
- max_ammo = 50
-
-/obj/item/ammo_box/c10mm/surplus
- name = "ammo box (10mm surplus)"
- desc = "A box of low-quality 10mm ammo."
- icon_state = "10mmbox-surplus"
- ammo_type = /obj/item/ammo_casing/c10mm/surplus
-
-/obj/item/ammo_box/c10mm/rubbershot
- name = "ammo box (10mm rubbershot)"
- desc = "A box of 10mm rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "10mmbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/c10mm/rubber
-
-/obj/item/ammo_box/c10mm/ap
- name = "ammo box (10mm armor-piercing)"
- desc = "A box of 10mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "10mmbox-ap"
- ammo_type = /obj/item/ammo_casing/c10mm/ap
-
-/obj/item/ammo_box/c10mm/hp
- name = "ammo box (10mm hollow point)"
- desc = "A box of 10mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "10mmbox-hp"
- ammo_type = /obj/item/ammo_casing/c10mm/hp
-
-/obj/item/ammo_box/c10mm/fire
- name = "ammo box (10mm incendiary)"
- desc = "A box of 10mm incendiary ammo, designed to ignite targets at the cost of initial damage."
- icon_state = "10mmbox-incendiary"
- ammo_type = /obj/item/ammo_casing/c10mm/inc
-
-/obj/item/ammo_box/c45
- name = "ammo box (.45)"
- desc = "A box of standard .45 ammo."
- icon_state = "45box"
- ammo_type = /obj/item/ammo_casing/c45
- max_ammo = 50
-
-/obj/item/ammo_box/c45/surplus
- name = "ammo box (.45 surplus)"
- desc = "A box of low-quality .45 ammo."
- icon_state = "45box-surplus"
- ammo_type = /obj/item/ammo_casing/c45/surplus
-
-/obj/item/ammo_box/c45/rubbershot
- name = "ammo box (.45 rubbershot)"
- desc = "A box of .45 rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "45box-rubbershot"
- ammo_type = /obj/item/ammo_casing/c45/rubber
-
-/obj/item/ammo_box/c45/ap
- name = "ammo box (.45 armor-piercing)"
- desc = "A box of .45 armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "45box-ap"
- ammo_type = /obj/item/ammo_casing/c45/ap
-
-/obj/item/ammo_box/c45/hp
- name = "ammo box (.45 hollow point)"
- desc = "A box of .45 hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "45box-hp"
- ammo_type = /obj/item/ammo_casing/c45/hp
-
-/obj/item/ammo_box/c45/fire
- name = "ammo box (.45 incendiary)"
- desc = "A box of .45 incendiary ammo, designed to ignite targets at the cost of initial damage."
- icon_state = "45box-incendiary"
- ammo_type = /obj/item/ammo_casing/c45/inc
-
-/obj/item/ammo_box/c556mmHITP
- name = "ammo box (5.56mm HITP caseless)"
- desc = "A box of 5.56mm HITP caseless ammo, a SolGov standard."
- icon_state = "556mmHITPbox"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm
- max_ammo = 50
-
-/obj/item/ammo_box/c556mmHITP/surplus
- name = "ammo box (5.56mm HITP caseless surplus)"
- desc = "A box of low-quality 5.56mm HITP caseless ammo."
- icon_state = "556mmHITPbox-surplus"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/surplus
-
-/obj/item/ammo_box/c556mmHITP/rubbershot
- name = "ammo box (5.56mm HITP caseless rubbershot)"
- desc = "A box of 5.56mm HITP caseless rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "556mmHITPbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/rubbershot
-
-/obj/item/ammo_box/c556mmHITP/ap
- name = "ammo box (5.56mm HITP caseless armor-piercing)"
- desc = "A box of 5.56mm HITP caseless armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "556mmHITPbox-ap"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/ap
-
-/obj/item/ammo_box/c556mmHITP/hp
- name = "ammo box (5.56mm HITP caseless hollow point)"
- desc = "A box of 5.56mm HITP caseless hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "556mmHITPbox-hp"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/hp
-
-/obj/item/ammo_box/a40mm
- name = "ammo box (40mm grenades)"
- icon_state = "40mm"
- ammo_type = /obj/item/ammo_casing/a40mm
- max_ammo = 4
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_NORMAL
-
-/obj/item/ammo_box/a762_40
- name = "ammo box (7.62x40mm CLIP)"
- icon_state = "a762_40box_big"
- ammo_type = /obj/item/ammo_casing/a762_40
- max_ammo = 120
- w_class = WEIGHT_CLASS_NORMAL
-
-/obj/item/ammo_box/a762_40/inteq
- icon_state = "a762_40box_big_inteq"
-
-/obj/item/ammo_box/a556_42
- name = "ammo box (5.56x42mm CLIP)"
- icon_state = "a556_42box_big"
- ammo_type = /obj/item/ammo_casing/a556_42
- max_ammo = 120
- w_class = WEIGHT_CLASS_NORMAL
-
-/obj/item/ammo_box/a308
- name = "ammo box (.308)"
- icon_state = "a308box"
- ammo_type = /obj/item/ammo_casing/a308
- max_ammo = 30
-
-/obj/item/ammo_box/a308/hunterspride //just an alternative graphic for srm ships
- icon_state = "a308box-HP"
-
-/obj/item/ammo_box/foambox
- name = "ammo box (Foam Darts)"
- icon = 'icons/obj/guns/toy.dmi'
- icon_state = "foambox"
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart
- max_ammo = 40
- custom_materials = list(/datum/material/iron = 500)
-
-/obj/item/ammo_box/foambox/riot
- icon_state = "foambox_riot"
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
- custom_materials = list(/datum/material/iron = 50000)
-
-/obj/item/ammo_box/c22lr_box
- name = "ammo box (.22 LR)"
- desc = "A box of standard .22 LR ammo."
- icon_state = "22lrbox"
- ammo_type = /obj/item/ammo_casing/c22lr
- max_ammo = 75
-
-/obj/item/ammo_box/a44roum_speedloader
- name = "speed loader (.44)"
- desc = "Designed to quickly reload revolvers."
- icon_state = "speedloader_38-6"
- base_icon_state = "speedloader_38"
- ammo_type = /obj/item/ammo_casing/a44roum
- caliber = ".44 Roumain"
- max_ammo = 6
- multiple_sprites = AMMO_BOX_PER_BULLET
- custom_materials = list(/datum/material/iron = 15000)
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a44roum_speedloader/empty
- start_empty = TRUE
-
-/obj/item/ammo_box/c57x39mm_box
- name = "ammo box (5.7x39mm)"
- desc = "A box of standard 5.7x39mm ammo."
- icon_state = "57x39mmbox"
- ammo_type = /obj/item/ammo_casing/c57x39mm
- max_ammo = 50
-
-
-/obj/item/ammo_box/c46x30mm_box
- name = "ammo box (4.6x30mm)"
- desc = "A box of standard 4.6x30mm ammo."
- icon_state = "46x30mmbox"
- ammo_type = /obj/item/ammo_casing/c46x30mm
- max_ammo = 50
-
-/obj/item/ammo_box/c8x50mm_box
- name = "ammo box (8x50mm)"
- desc = "A box of standard 8x50mm ammo."
- icon_state = "8x50mmbox"
- ammo_type = /obj/item/ammo_casing/a8_50r
- max_ammo = 25
-
-/obj/item/ammo_box/ferropelletbox
- name = "ammo box (ferromagnetic pellets)"
- desc = "A box of ferromagnetic pellets."
- icon_state = "ferropelletsbox"
- ammo_type = /obj/item/ammo_casing/caseless/gauss
- max_ammo = 50
-
-/obj/item/ammo_box/ferroslugbox
- name = "ammo box (ferromagnetic slugs)"
- desc = "A box of standard ferromagnetic slugs."
- icon_state = "ferroslugsbox"
- ammo_type = /obj/item/ammo_casing/caseless/gauss/slug
- max_ammo = 20
-
-/obj/item/ammo_box/ferrolancebox
- name = "ammo box (ferromagnetic lances)"
- desc = "A box of standard ferromagnetic lances."
- icon_state = "ferrolancesbox"
- ammo_type = /obj/item/ammo_casing/caseless/gauss/lance
- max_ammo = 50
-
-/obj/item/ammo_box/c8x50mmhp_box
- name = "ammo box (8x50mm)"
- desc = "A box of hollow point 8x50mm ammo, designed to cause massive damage at the cost of armor penetration."
- icon_state = "8x50mmbox-hp"
- ammo_type = /obj/item/ammo_casing/a8_50rhp
- max_ammo = 20
-
-/obj/item/ammo_box/a300_box
- name = "ammo box (.300 Magnum)"
- desc = "A box of standard .300 Magnum ammo."
- icon_state = "300box"
- ammo_type = /obj/item/ammo_casing/a300
- max_ammo = 20
-
-/obj/item/ammo_box/a65clip_box
- name = "ammo box (6.5x57mm CLIP)"
- desc = "A box of standard 6.5x57mm CLIP ammo."
- icon_state = "65box"
- ammo_type = /obj/item/ammo_casing/a65clip
- max_ammo = 20
-
-/obj/item/ammo_box/a65clip_box/syndicate
- icon_state = "65box_sa"
-
-/obj/item/ammo_box/a44roum
- name = "ammo box (.44 roumain)"
- desc = "A box of standard .44 roumain ammo."
- icon_state = "a44roum"
- ammo_type = /obj/item/ammo_casing/a44roum
- max_ammo = 50
-
-/obj/item/ammo_box/a44roum/rubber
- name = "ammo box (.44 roumain rubber)"
- desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "a44roum-rubber"
- ammo_type = /obj/item/ammo_casing/a44roum/rubber
- max_ammo = 50
-
-/obj/item/ammo_box/a44roum/hp
- name = "ammo box (.44 roumain hollow point)"
- desc = "A box of .44 roumain hollow point ammo, designed to cause massive damage at the cost of armor penetration."
- icon_state = "a44roum-hp"
- ammo_type = /obj/item/ammo_casing/a44roum/hp
- max_ammo = 50
-
-/obj/item/ammo_box/c299
- name = "ammo box (.299 Eoehoma caseless)"
- desc = "A box of .299 Eoehoma caseless, for use with the E-40 hybrid assault rifle."
- icon_state = "299box"
- ammo_type = /obj/item/ammo_casing/caseless/c299
- max_ammo = 120
- w_class = WEIGHT_CLASS_NORMAL // This is a lot of ammo
diff --git a/code/modules/projectiles/boxes_magazines/ammo_loaders.dm b/code/modules/projectiles/boxes_magazines/ammo_loaders.dm
new file mode 100644
index 000000000000..70d9480493c6
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_loaders.dm
@@ -0,0 +1,176 @@
+// .357 Speed Loaders
+
+/obj/item/ammo_box/a357
+ name = "speed loader (.357)"
+ desc = "A 6-round speed loader for quickly reloading .357 revolvers. These rounds do good damage with average performance against armor."
+ icon_state = "speedloader_357-6"
+ base_icon_state = "speedloader_357"
+ ammo_type = /obj/item/ammo_casing/a357
+ caliber = ".357"
+ max_ammo = 6
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ item_flags = NO_MAT_REDEMPTION
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a357/empty
+ start_empty = TRUE
+
+/obj/item/ammo_box/a357/match
+ name = "speed loader (.357 match)"
+ desc = "A 6-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
+ ammo_type = /obj/item/ammo_casing/a357/match
+
+/obj/item/ammo_box/a357/hp
+ name = "speed loader (.357 hollow point)"
+ desc = "A 6-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones."
+ ammo_type = /obj/item/ammo_casing/a357/hp
+
+// .38 special Speed Loaders
+
+/obj/item/ammo_box/c38
+ name = "speed loader (.38 special)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds do okay damage, but struggle against armor."
+ icon_state = "speedloader_38-6"
+ base_icon_state = "speedloader_38"
+ ammo_type = /obj/item/ammo_casing/c38
+ caliber = ".38"
+ max_ammo = 6
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ custom_materials = list(/datum/material/iron = 15000)
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/c38/trac
+ name = "speed loader (.38 TRAC)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These TRAC rounds do pitiful damage, but embed a tracking device in targets hit."
+ ammo_type = /obj/item/ammo_casing/c38/trac
+
+/obj/item/ammo_box/c38/match
+ name = "speed loader (.38 match)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
+ ammo_type = /obj/item/ammo_casing/c38/match
+
+/obj/item/ammo_box/c38/match/bouncy
+ name = "speed loader (.38 rubber)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with."
+ ammo_type = /obj/item/ammo_casing/c38/match/bouncy
+
+/obj/item/ammo_box/c38/dumdum
+ name = "speed loader (.38 dum-dum)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These dum-dum bullets shatter on impact and embed in the target's innards. However, they're nearly ineffective against armor and do okay damage."
+ ammo_type = /obj/item/ammo_casing/c38/dumdum
+
+/obj/item/ammo_box/c38/hotshot
+ name = "speed loader (.38 hot shot)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hot shot bullets contain an incendiary payload that set targets alight."
+ ammo_type = /obj/item/ammo_casing/c38/hotshot
+
+/obj/item/ammo_box/c38/iceblox
+ name = "speed loader (.38 iceblox)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets."
+ ammo_type = /obj/item/ammo_casing/c38/iceblox
+
+/obj/item/ammo_box/c38/empty
+ start_empty = TRUE
+
+// 8x58mm Stripper Clip
+
+/obj/item/ammo_box/a858
+ name = "stripper clip (8x58mm)"
+ desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration."
+ icon_state = "enbloc_858"
+ ammo_type = /obj/item/ammo_casing/caseless/a858
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ instant_load = TRUE
+
+/obj/item/ammo_box/a858/empty
+ start_empty = TRUE
+
+// .308 Stripper Clip
+
+/obj/item/ammo_box/vickland_a308
+ name = "stripper clip (.308)"
+ desc = "A 5-round stripper clip for the Vickland Battle Rifle. The Vickland itself has a 10 round capacity, so keep in mind two of these are needed to fully reload it. These rounds do good damage with significant armor penetration."
+ icon_state = "stripper_308-5"
+ base_icon_state = "stripper_308"
+ ammo_type = /obj/item/ammo_casing/a308
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/vickland_a308/empty
+ start_empty = TRUE
+
+// .300 Magnum Stripper Clip
+
+/obj/item/ammo_box/a300
+ name = "stripper clip (.300 Magnum)"
+ desc = "A 5-round stripper clip for the Scout Rifle. These rounds do great damage with significant armor penetration."
+ icon_state = "300m"
+ ammo_type = /obj/item/ammo_casing/a300
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a300/empty
+ start_empty = TRUE
+
+// .300 Blackout Stripper Clip
+
+/obj/item/ammo_box/a762_stripper
+ name = "stripper clip (7.62)"
+ desc = "A 5-round stripper clip for makeshift bolt-action rifles. These rounds do good damage with good armor penetration."
+ icon_state = "stripper_308-5"
+ base_icon_state = "stripper_308"
+ ammo_type = /obj/item/ammo_casing/a762_40
+ caliber = "7.62x40mm"
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a762_stripper/empty
+ start_empty = TRUE
+
+// Ferromagnetic Pellet Speed Loader
+
+/obj/item/ammo_box/amagpellet_claris
+ name = "\improper Claris speed loader (ferromagnetic pellet)"
+ desc = "A 22-round speed loader for quickly reloading the Claris rifle. Ferromagnetic pellets do okay damage with significant armor penetration."
+ icon_state = "claris-sl-1"
+ base_icon_state = "claris-sl"
+ ammo_type = /obj/item/ammo_casing/caseless/gauss
+ max_ammo = 22
+ multiple_sprites = AMMO_BOX_FULL_EMPTY
+ item_flags = NO_MAT_REDEMPTION
+ instant_load = TRUE
+
+/obj/item/ammo_box/a40mm
+ name = "ammo box (40mm grenades)"
+ icon_state = "40mm"
+ ammo_type = /obj/item/ammo_casing/a40mm
+ max_ammo = 4
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_NORMAL
+
+// .44 Roumain speedloader
+
+/obj/item/ammo_box/a44roum_speedloader
+ name = "speed loader (.44)"
+ desc = "Designed to quickly reload revolvers."
+ icon_state = "speedloader_38-6"
+ base_icon_state = "speedloader_38"
+ ammo_type = /obj/item/ammo_casing/a44roum
+ caliber = ".44 Roumain"
+ max_ammo = 6
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ custom_materials = list(/datum/material/iron = 15000)
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a44roum_speedloader/empty
+ start_empty = TRUE
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/_ammo_stack.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/_ammo_stack.dm
new file mode 100644
index 000000000000..f1e84780cb1e
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/_ammo_stack.dm
@@ -0,0 +1,82 @@
+/**
+ * The ammo stack object itself, making this a magazine was the easiest way to handle it
+ * Practically every casing type needs an associated ammo stack type, because that was the easiest
+ * way for me to handle it.
+ */
+/obj/item/ammo_box/magazine/ammo_stack
+ name = "ammo stack"
+ desc = "A pile of live rounds."
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
+ icon_state = "pistol-brass"
+ base_icon_state = "pistol-brass"
+ item_flags = NO_PIXEL_RANDOM_DROP
+ multiple_sprites = AMMO_BOX_ONE_SPRITE
+ multiload = FALSE
+ start_empty = TRUE
+ max_ammo = 12
+
+/obj/item/ammo_box/magazine/ammo_stack/update_icon(updates)
+ icon = initial(icon)
+ cut_overlays()
+ return ..()
+
+/obj/item/ammo_box/magazine/ammo_stack/update_icon_state()
+ . = ..()
+ cut_overlays()
+ icon_state = ""
+ for(var/casing in stored_ammo)
+ var/image/bullet = image(initial(icon), src, "[base_icon_state]")
+ bullet.pixel_x = rand(-8, 8)
+ bullet.pixel_y = rand(-8, 8)
+ bullet.transform = bullet.transform.Turn(round(45 * rand(0, 32) / 2)) //this is the equation Eris uses on their bullet stacks
+ add_overlay(bullet)
+ return UPDATE_ICON_STATE | UPDATE_OVERLAYS
+
+/obj/item/ammo_box/magazine/ammo_stack/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+ . = ..()
+ var/loc_before_del = loc
+ while(LAZYLEN(stored_ammo))
+ var/obj/item/ammo = get_round(FALSE)
+ ammo.forceMove(loc_before_del)
+ ammo.throw_at(loc_before_del)
+ update_ammo_count()
+
+/obj/item/ammo_box/magazine/ammo_stack/update_ammo_count()
+ . = ..()
+ check_for_del()
+
+/obj/item/ammo_box/magazine/ammo_stack/proc/check_for_del()
+ . = FALSE
+ if((ammo_count() <= 0) && !QDELETED(src))
+ qdel(src)
+ return
+
+/obj/item/ammo_box/magazine/ammo_stack/attackby(obj/item/handful, mob/user, params, silent = FALSE, replace_spent = 0)
+ var/num_loaded = 0
+ if(!can_load(user))
+ return
+
+ if(istype(handful, /obj/item/ammo_box))
+ var/obj/item/ammo_box/ammo_box = handful
+ for(var/obj/item/ammo_casing/casing in ammo_box.stored_ammo)
+ var/did_load = give_round(casing, replace_spent)
+ if(did_load)
+ ammo_box.stored_ammo -= casing
+ num_loaded++
+ if(!did_load || !multiload)
+ break
+ if(num_loaded)
+ ammo_box.update_ammo_count()
+
+ if(istype(handful, /obj/item/ammo_casing))
+ var/obj/item/ammo_casing/casing = handful
+ if(give_round(casing, replace_spent))
+ user.transferItemToLoc(casing, src, TRUE)
+ num_loaded++
+ casing.update_appearance()
+
+ if(num_loaded)
+ if(!silent)
+ to_chat(user, span_notice("You load [num_loaded] shell\s into \the [src]!"))
+ playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
+ update_ammo_count()
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/_premade_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/_premade_stacks.dm
new file mode 100644
index 000000000000..8a28920efe6a
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/_premade_stacks.dm
@@ -0,0 +1,21 @@
+/obj/item/ammo_box/magazine/ammo_stack/prefilled
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/Initialize(mapload)
+ make_stack()
+ update_appearance()
+ . = ..()
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/proc/make_stack()
+ var/obj/item/ammo_casing/to_copy = ammo_type
+ src.top_off()
+ caliber = to_copy.caliber
+ base_icon_state = "[initial(to_copy.icon_state)][to_copy.bullet_skin ? "-[to_copy.bullet_skin]" : ""]"
+ name = "handful of [to_copy.name]s"
+
+/obj/item/storage/box/ammo //base type, don't use this!
+ name = "box of default ammo"
+ desc = "A box of ammunition. Not for consumption."
+ icon = 'icons/obj/ammunition/ammo_boxes.dmi'
+ icon_state = "9mmbox"
+ illustration = null
+ foldable = null
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_gauss_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_gauss_stacks.dm
new file mode 100644
index 000000000000..ac82cf6bcebd
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_gauss_stacks.dm
@@ -0,0 +1,41 @@
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/ferropellet
+ ammo_type = /obj/item/ammo_casing/caseless/gauss
+
+/obj/item/storage/box/ammo/ferropellet
+ name = "box of ferromagnetic pellets"
+ desc = "A box of ferromagnetic pellets for gauss firearms."
+ icon_state = "ferropelletsbox"
+
+/obj/item/storage/box/ammo/ferropellet/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/ferropellet = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/ferroslug
+ ammo_type = /obj/item/ammo_casing/caseless/gauss/slug
+
+/obj/item/storage/box/ammo/ferroslug
+ name = "box of ferromagnetic slugs"
+ desc = "A box of standard ferromagnetic slugs for gauss firearms."
+ icon_state = "ferroslugsbox"
+
+/obj/item/storage/box/ammo/ferroslug/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/ferroslug = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/ferrolance
+ ammo_type = /obj/item/ammo_casing/caseless/gauss/lance
+
+/obj/item/storage/box/ammo/ferrolance
+ name = "box of ferromagnetic lances"
+ desc = "A box of standard ferromagnetic lances for gauss firearms."
+ icon_state = "ferrolancesbox"
+
+/obj/item/storage/box/ammo/ferrolance/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/ferrolance = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_lmg_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_lmg_stacks.dm
new file mode 100644
index 000000000000..b98da1f81000
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_lmg_stacks.dm
@@ -0,0 +1,15 @@
+// 7.12x82mm (L6 SAW)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82
+ ammo_type = /obj/item/ammo_casing/mm712x82
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/ap
+ ammo_type = /obj/item/ammo_casing/mm712x82/ap
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/hp
+ ammo_type = /obj/item/ammo_casing/mm712x82/hp
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/incendiary
+ ammo_type = /obj/item/ammo_casing/mm712x82/inc
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/match
+ ammo_type = /obj/item/ammo_casing/mm712x82/match
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_misc_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_misc_stacks.dm
new file mode 100644
index 000000000000..a24599138238
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_misc_stacks.dm
@@ -0,0 +1,26 @@
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart
+
+/obj/item/storage/box/ammo/foam_darts
+ name = "box of foam darts"
+ icon = 'icons/obj/guns/toy.dmi'
+ icon_state = "foambox"
+
+/obj/item/storage/box/ammo/foam_darts/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts/riot
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
+
+/obj/item/storage/box/ammo/foam_darts/riot
+ name = "box of foam darts"
+ icon_state = "foambox_riot"
+
+/obj/item/storage/box/ammo/foam_darts/riot/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts/riot = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm
new file mode 100644
index 000000000000..68ea1a7faeb5
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm
@@ -0,0 +1,499 @@
+// 10mm (Stechkin)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm
+ ammo_type = /obj/item/ammo_casing/c10mm
+
+/obj/item/storage/box/ammo/c10mm
+ name = "box of 10mm ammo"
+ desc = "A box of standard 10mm ammo."
+ icon_state = "10mmbox"
+
+/obj/item/storage/box/ammo/c10mm/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/surplus
+ ammo_type = /obj/item/ammo_casing/c10mm/surplus
+
+/obj/item/storage/box/ammo/c10mm_surplus
+ name = "box of surplus 10mm ammo"
+ desc = "A box of low-quality 10mm ammo."
+ icon_state = "10mmbox-surplus"
+
+/obj/item/storage/box/ammo/c10mm_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/ap
+ ammo_type = /obj/item/ammo_casing/c10mm/ap
+
+/obj/item/storage/box/ammo/c10mm_ap
+ name = "box of AP 10mm ammo"
+ desc = "A box of 10mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "10mmbox-ap"
+
+/obj/item/storage/box/ammo/c10mm_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/hp
+ ammo_type = /obj/item/ammo_casing/c10mm/hp
+
+/obj/item/storage/box/ammo/c10mm_hp
+ name = "box of HP 10mm ammo"
+ desc = "A box of 10mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "10mmbox-hp"
+
+/obj/item/storage/box/ammo/c10mm_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/incendiary
+ ammo_type = /obj/item/ammo_casing/c10mm/inc
+
+/obj/item/storage/box/ammo/c10mm_incendiary
+ name = "box of incendiary 10mm ammo"
+ desc = "A box of 10mm incendiary ammo, designed to ignite targets at the cost of initial damage."
+ icon_state = "10mmbox-incendiary"
+
+/obj/item/storage/box/ammo/c10mm_incendiary/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/incendiary = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/rubber
+ ammo_type = /obj/item/ammo_casing/c10mm/rubber
+
+/obj/item/storage/box/ammo/c10mm_rubber
+ name = "box of rubber 10mm ammo"
+ desc = "A box of 10mm rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "10mmbox-rubbershot"
+
+/obj/item/storage/box/ammo/c10mm_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// 9MM (Commander + SABR)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm
+ ammo_type = /obj/item/ammo_casing/c9mm
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c9mm
+ name = "box of 9mm ammo"
+ desc = "A box of standard 9mm ammo."
+ icon_state = "9mmbox"
+
+/obj/item/storage/box/ammo/c9mm/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/surplus
+ ammo_type = /obj/item/ammo_casing/c9mm/surplus
+
+/obj/item/storage/box/ammo/c9mm_surplus
+ name = "box of surplus 9mm ammo"
+ desc = "A box of low-quality 9mm ammo."
+ icon_state = "9mmbox-surplus"
+
+/obj/item/storage/box/ammo/c9mm_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/surplus = 48)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm_ap
+ ammo_type = /obj/item/ammo_casing/c9mm/ap
+
+/obj/item/storage/box/ammo/c9mm/ap
+ name = "box of AP 9mm ammo"
+ desc = "A box of 9mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "9mmbox-ap"
+
+/obj/item/storage/box/ammo/c9mm_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm_ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/hp
+ ammo_type = /obj/item/ammo_casing/c9mm/hp
+
+/obj/item/storage/box/ammo/c9mm_hp
+ name = "box of HP 9mm ammo"
+ desc = "A box of 9mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "9mmbox-hp"
+
+/obj/item/storage/box/ammo/c9mm_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/incendiary
+ ammo_type = /obj/item/ammo_casing/c9mm/inc
+
+/obj/item/storage/box/ammo/c9mm_incendiary
+ name = "box of incendiary 9mm ammo"
+ desc = "A box of 9mm incendiary ammo, designed to ignite targets at the cost of initial damage."
+ icon_state = "9mmbox-incendiary"
+
+/obj/item/storage/box/ammo/c9mm_incendiary/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/incendiary = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/rubber
+ ammo_type = /obj/item/ammo_casing/c9mm/rubber
+
+/obj/item/storage/box/ammo/c9mm_rubber
+ name = "box of rubber 9mm ammo"
+ desc = "A box of 9mm rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "9mmbox-rubbershot"
+
+/obj/item/storage/box/ammo/c9mm_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// .45 (Candor + C20R)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45
+ ammo_type = /obj/item/ammo_casing/c45
+
+/obj/item/storage/box/ammo/c45
+ name = "box of .45 ammo"
+ desc = "A box of standard .45 ammo."
+ icon_state = "45box"
+
+/obj/item/storage/box/ammo/c45/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/surplus
+ ammo_type = /obj/item/ammo_casing/c45/surplus
+
+/obj/item/storage/box/ammo/c45_surplus
+ name = "box of surplus .45 ammo"
+ desc = "A box of low-quality .45 ammo."
+ icon_state = "45box-surplus"
+
+/obj/item/storage/box/ammo/c45_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/ap
+ ammo_type = /obj/item/ammo_casing/c45/ap
+
+/obj/item/storage/box/ammo/c45_ap
+ name = "box of AP .45 ammo"
+ desc = "A box of .45 armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "45box-ap"
+
+/obj/item/storage/box/ammo/c45_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/hp
+ ammo_type = /obj/item/ammo_casing/c45/hp
+
+/obj/item/storage/box/ammo/c45_hp
+ name = "box of HP .45 ammo"
+ desc = "A box of .45 hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "45box-hp"
+
+/obj/item/storage/box/ammo/c45_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/incendiary
+ ammo_type = /obj/item/ammo_casing/c45/inc
+
+/obj/item/storage/box/ammo/c45_incendiary
+ name = "box of incendiary .45 ammo"
+ desc = "A box of .45 incendiary ammo, designed to ignite targets at the cost of initial damage."
+ icon_state = "45box-incendiary"
+
+/obj/item/storage/box/ammo/c45_incendiary/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/incendiary = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/rubber
+ ammo_type = /obj/item/ammo_casing/c45/rubber
+
+/obj/item/storage/box/ammo/c45_rubber
+ name = "box of incendiary .45 ammo"
+ desc = "A box of .45 rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "45box-rubbershot"
+
+/obj/item/storage/box/ammo/c45_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// .50 AE (Desert Eagle)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a50AE
+ ammo_type = /obj/item/ammo_casing/a50AE
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a50AE/hp
+ ammo_type = /obj/item/ammo_casing/a50AE/hp
+
+// .22 LR (Himehabu, Pounder)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr
+ ammo_type = /obj/item/ammo_casing/c22lr
+
+/obj/item/storage/box/ammo/c22lr
+ name = "box of .22 LR ammo"
+ desc = "A box of standard .22 LR ammo."
+ icon_state = "22lrbox"
+
+/obj/item/storage/box/ammo/c22lr/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr = 4)
+ generate_items_inside(items_inside,src)
+
+// .357
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a357
+ ammo_type = /obj/item/ammo_casing/a357
+
+/obj/item/storage/box/ammo/a357
+ name = "box of .357 ammo"
+ desc = "A box of standard .357 ammo."
+ icon_state = "357box"
+
+/obj/item/storage/box/ammo/a357/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a357 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/match
+ ammo_type = /obj/item/ammo_casing/a357/match
+
+/obj/item/storage/box/ammo/a357_match
+ name = "box of match .357 ammo"
+ desc = "A box of match .357 ammo."
+ icon_state = "357box-match"
+
+/obj/item/storage/box/ammo/a357_match/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/match = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/hp
+ ammo_type = /obj/item/ammo_casing/a357/hp
+
+/obj/item/storage/box/ammo/a357_hp
+ name = "box of HP .357 ammo"
+ desc = "A box of hollow point .357 ammo."
+ icon_state = "357box-hp"
+
+/obj/item/storage/box/ammo/a357_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/hp = 4)
+ generate_items_inside(items_inside,src)
+
+// .45-70 (Hunting Revolver, Beacon)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570
+ ammo_type = /obj/item/ammo_casing/a4570
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a4570
+ name = "box of .45-70 ammo"
+ desc = "A box of top grade .45-70 ammo. These rounds do significant damage with average performance against armor."
+ icon_state = "4570"
+
+/obj/item/storage/box/ammo/a4570/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/match
+ ammo_type = /obj/item/ammo_casing/a4570/match
+
+/obj/item/storage/box/ammo/a4570_match
+ name = "box of HP match .45-70 ammo"
+ desc = "A 12-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
+ icon_state = "4570-match"
+
+/obj/item/storage/box/ammo/a4570_match/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/match = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/hp
+ ammo_type = /obj/item/ammo_casing/a4570/hp
+
+/obj/item/storage/box/ammo/a4570_hp
+ name = "box of HP .45-70 ammo"
+ desc = "A 12-round ammo box for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones."
+ icon_state = "4570-hp"
+
+/obj/item/storage/box/ammo/a4570_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/explosive
+ ammo_type = /obj/item/ammo_casing/a4570/explosive
+
+/obj/item/storage/box/ammo/a4570_explosive
+ name = "box of explosive .45-70 ammo"
+ desc = "A 12-round ammo box for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs."
+ icon_state = "4570-explosive"
+
+/obj/item/storage/box/ammo/a4570_explosive/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/explosive = 4)
+ generate_items_inside(items_inside,src)
+
+// .38 Special
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38
+ ammo_type = /obj/item/ammo_casing/c38
+
+/obj/item/storage/box/ammo/c38
+ name = "box of .38 ammo"
+ desc = "A box of standard .38 Special ammo."
+ icon_state = "38box"
+
+/obj/item/storage/box/ammo/c38/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/surplus
+ ammo_type = /obj/item/ammo_casing/c38/surplus
+
+/obj/item/storage/box/ammo/c38_surplus
+ name = "box of surplus .38 ammo"
+ desc = "A box of low-quality .38 Special ammo."
+ icon_state = "38box-surplus"
+
+/obj/item/storage/box/ammo/c38_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/trac
+ ammo_type = /obj/item/ammo_casing/c38/trac
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/match
+ ammo_type = /obj/item/ammo_casing/c38/match
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/bouncy
+ ammo_type = /obj/item/ammo_casing/c38/match/bouncy
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/dumdum
+ ammo_type = /obj/item/ammo_casing/c38/dumdum
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/hotshot
+ ammo_type = /obj/item/ammo_casing/c38/hotshot
+
+/obj/item/storage/box/ammo/c38_hotshot
+ name = "box of .38 hearth ammo"
+ desc = "An unorthodox .38 Special cartridge infused with hearthwine. Catches the target on fire."
+ icon_state = "38hotshot"
+
+/obj/item/storage/box/ammo/c38_hotshot/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/hotshot = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/iceblox
+ ammo_type = /obj/item/ammo_casing/c38/iceblox
+
+/obj/item/storage/box/ammo/c38_iceblox
+ name = "box of .38 chilled ammo"
+ desc = "An unorthodox .38 Special cartridge infused with icewine. Chills the target, slowing them down."
+ icon_state = "38iceblox"
+
+/obj/item/storage/box/ammo/c38_iceblox/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/iceblox = 4)
+ generate_items_inside(items_inside,src)
+
+// 44 Roumain
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum
+ ammo_type = /obj/item/ammo_casing/a44roum
+
+/obj/item/storage/box/ammo/a44roum
+ name = "box of .44 roumain ammo"
+ desc = "A box of standard .44 roumain ammo."
+ icon_state = "a44roum"
+
+/obj/item/storage/box/ammo/a44roum/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/rubber
+ ammo_type = /obj/item/ammo_casing/a44roum/rubber
+
+/obj/item/storage/box/ammo/a44roum_rubber
+ name = "box of rubber .44 roumain ammo"
+ desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "a44roum-rubber"
+
+/obj/item/storage/box/ammo/a44roum_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/hp
+ ammo_type = /obj/item/ammo_casing/a44roum/hp
+
+/obj/item/storage/box/ammo/a44roum_hp
+ name = "box of HP .44 roumain ammo"
+ desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "a44roum-rubber"
+
+/obj/item/storage/box/ammo/a44roum_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/hp = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm
new file mode 100644
index 000000000000..d22f62ec2165
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm
@@ -0,0 +1,152 @@
+// 8x50mmR (Illestren Hunting Rifle)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r
+ ammo_type = /obj/item/ammo_casing/a8_50r
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a8_50r
+ name = "box of 8x50mm ammo"
+ desc = "A box of standard 8x50mm ammo."
+ icon_state = "8x50mmbox"
+
+/obj/item/storage/box/ammo/a8_50r/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/hp
+ ammo_type = /obj/item/ammo_casing/a8_50rhp
+
+/obj/item/storage/box/ammo/a8_50r_hp
+ name = "box of HP 8x50mm ammo"
+ desc = "A box of hollow point 8x50mm ammo, designed to cause massive damage at the cost of armor penetration."
+ icon_state = "8x50mmbox-hp"
+
+/obj/item/storage/box/ammo/a8_50r_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/hp = 4)
+ generate_items_inside(items_inside,src)
+
+// 8x58mm Caseless (SSG-669C)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a858
+ ammo_type = /obj/item/ammo_casing/caseless/a858
+
+// .300 Magnum (Smile Rifle)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a300
+ ammo_type = /obj/item/ammo_casing/a300
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a300
+ name = "box of .300 magnum ammo"
+ desc = "A box of standard .300 Magnum ammo."
+ icon_state = "300box"
+
+/obj/item/storage/box/ammo/a300/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a300 = 4)
+ generate_items_inside(items_inside,src)
+
+// 5.56x42mm CLIP (CM82, Hydra variants)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42
+ ammo_type = /obj/item/ammo_casing/a556_42
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a556_42
+ name = "box of 5.56x42mm CLIP ammo"
+ desc = "A box of standard 5.56x42mm CLIP ammo."
+ icon_state = "a556_42box_big"
+
+/obj/item/storage/box/ammo/a556_42/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42 = 4)
+ generate_items_inside(items_inside,src)
+
+// 5.45x39mm (SKM-24v)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a545_39
+ ammo_type = /obj/item/ammo_casing/a545_39
+ max_ammo = 10
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a545_39/recycled
+ ammo_type = /obj/item/ammo_casing/a545_39/recycled
+
+// 7.62x40mm CLIP (SKM Rifles)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40
+ ammo_type = /obj/item/ammo_casing/a762_40
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a762_40
+ name = "box of 7.62x40mm CLIP ammo"
+ desc = "A box of standard 7.62x40mm CLIP ammo."
+ icon_state = "a762_40box_big"
+
+/obj/item/storage/box/ammo/a762_40/inteq
+ icon_state = "a762_40box_big_inteq"
+
+/obj/item/storage/box/ammo/a762_40/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40 = 4)
+ generate_items_inside(items_inside,src)
+
+//.308 (M514 EBR & CM-GAL-S)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a308
+ ammo_type = /obj/item/ammo_casing/a308
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a308
+ name = "box of .308 ammo"
+ desc = "A box of standard .308 ammo."
+ icon_state = "a308box"
+
+/obj/item/storage/box/ammo/a308/hunterspride
+ icon_state = "a308box-HP"
+
+/obj/item/storage/box/ammo/a308/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a308 = 4)
+ generate_items_inside(items_inside,src)
+
+//.299 Eoehoma Caseless (E-40)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c299
+ ammo_type = /obj/item/ammo_casing/caseless/c299
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/c299
+ name = "box of .299 Eoehoma caseless ammo"
+ desc = "A box of .299 Eoehoma caseless, for use with the E-40 hybrid assault rifle."
+ icon_state = "299box"
+
+/obj/item/storage/box/ammo/c299/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c299 = 4)
+ generate_items_inside(items_inside,src)
+
+//6.5x57mm CLIP
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a65clip
+ ammo_type = /obj/item/ammo_casing/a65clip
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a65clip
+ name = "box of 6.5x57mm CLIP ammo"
+ desc = "A box of standard 6.5x57mm CLIP ammo."
+ icon_state = "65box"
+
+/obj/item/storage/box/ammo/a65clip/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a65clip = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm
new file mode 100644
index 000000000000..f67800330724
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm
@@ -0,0 +1,79 @@
+// Shotshells
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun
+ max_ammo = 8 //make sure these values are consistent across the board with stack_size variable on respective ammo_casing
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/buckshot
+ ammo_type = /obj/item/ammo_casing/shotgun/buckshot
+
+/obj/item/storage/box/ammo/a12g_buckshot
+ name = "box of 12ga buckshot"
+ desc = "A box of 12-gauge buckshot shells, devastating at close range."
+ icon_state = "12gbox-buckshot"
+
+/obj/item/storage/box/ammo/a12g_buckshot/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/buckshot = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/slug
+ ammo_type = /obj/item/ammo_casing/shotgun
+
+/obj/item/storage/box/ammo/a12g_slug
+ name = "box of 12ga slugs"
+ desc = "A box of 12-gauge slugs, for improved accuracy and penetration."
+ icon_state = "12gbox-slug"
+
+/obj/item/storage/box/ammo/a12g_slug/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/slug = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/beanbag
+ ammo_type = /obj/item/ammo_casing/shotgun/beanbag
+
+/obj/item/storage/box/ammo/a12g_beanbag
+ name = "box of 12ga beanbags"
+ desc = "A box of 12-gauge beanbag shells, for incapacitating targets."
+ icon_state = "12gbox-beanbag"
+
+/obj/item/storage/box/ammo/a12g_beanbag/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/beanbag = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/rubber
+ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
+
+/obj/item/storage/box/ammo/a12g_rubbershot
+ name = "box of 12ga beanbags"
+ desc = "A box of 12-gauge rubbershot shells, designed for riot control."
+ icon_state = "12gbox-rubbershot"
+
+/obj/item/storage/box/ammo/a12g_beanbag/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/blank
+ ammo_type = /obj/item/ammo_casing/shotgun/blank
+
+/obj/item/storage/box/ammo/a12g_blank
+ name = "box of 12ga blanks"
+ desc = "A box of 12-gauge blank shells, designed for training."
+ icon_state = "12gbox-slug" //needs icon
+
+/obj/item/storage/box/ammo/a12g_blank/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/blank = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/incendiary
+ ammo_type = /obj/item/ammo_casing/shotgun/incendiary
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/improvised
+ ammo_type = /obj/item/ammo_casing/shotgun/improvised
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_smg_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_smg_stacks.dm
new file mode 100644
index 000000000000..d550f5e461ba
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_smg_stacks.dm
@@ -0,0 +1,113 @@
+// 4.6x30mm (WT-550 Automatic Rifle & SKM-24v)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm
+ ammo_type = /obj/item/ammo_casing/c46x30mm
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c46x30mm
+ name = "box of 4.6x30mm ammo"
+ desc = "A box of standard 4.6x30mm ammo."
+ icon_state = "46x30mmbox"
+
+/obj/item/storage/box/ammo/c46x30mm/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm/ap
+ ammo_type = /obj/item/ammo_casing/c46x30mm/ap
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm/incendiary
+ ammo_type = /obj/item/ammo_casing/c46x30mm/inc
+
+// 4.73x33mm caseless (Solar)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c47x33mm
+ ammo_type = /obj/item/ammo_casing/caseless/c47x33mm
+
+// 5.56mm HITP caseless (Pistole C)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c556mm
+ name = "box of 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless ammo, a SolGov standard."
+ icon_state = "556mmHITPbox"
+
+/obj/item/storage/box/ammo/c556mm/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/surplus
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/surplus
+
+/obj/item/storage/box/ammo/c556mm_surplus
+ name = "box of surplus 5.56mm HITP caseless ammo"
+ desc = "A box of low-quality 5.56mm HITP caseless ammo."
+ icon_state = "556mmHITPbox-surplus"
+
+/obj/item/storage/box/ammo/c556mm_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/ap
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/ap
+
+/obj/item/storage/box/ammo/c556mm_ap
+ name = "box of AP 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "556mmHITPbox-ap"
+
+/obj/item/storage/box/ammo/c556mm_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/hp
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/hp
+
+/obj/item/storage/box/ammo/c556mm_hp
+ name = "box of HP 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "556mmHITPbox-hp"
+
+/obj/item/storage/box/ammo/c556mm_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/rubbershot
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/rubbershot
+
+/obj/item/storage/box/ammo/c556mm_rubber
+ name = "box of rubber 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "556mmHITPbox-rubbershot"
+
+/obj/item/storage/box/ammo/c556mm_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/rubbershot = 4)
+ generate_items_inside(items_inside,src)
+
+// 5.7x39mm (Asp and Sidewinder)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39
+ ammo_type = /obj/item/ammo_casing/c57x39mm
+
+/obj/item/storage/box/ammo/c57x39
+ name = "box of 5.7x39mm ammo"
+ desc = "A box of standard 5.7x39mm ammo."
+ icon_state = "57x39mmbox"
+
+/obj/item/storage/box/ammo/c57x39/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39 = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_sniper_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_sniper_stacks.dm
new file mode 100644
index 000000000000..8ee54bcd9099
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_sniper_stacks.dm
@@ -0,0 +1,9 @@
+// .50 BMG (Sniper)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/p50
+ ammo_type = /obj/item/ammo_casing/p50
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/p50/soporific
+ ammo_type = /obj/item/ammo_casing/p50/soporific
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/p50/penetrator
+ ammo_type = /obj/item/ammo_casing/p50/penetrator
diff --git a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm
deleted file mode 100644
index 2c88824623e2..000000000000
--- a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm
+++ /dev/null
@@ -1,53 +0,0 @@
-/obj/item/ammo_box/generic
- name = "generic ammo box"
- desc = "A generic, unbranded box of ammo. It doesn't have great capacity, but it can hold a variety of different calibers."
- max_ammo = 20
- start_empty = TRUE
- icon_state = "generic-ammo"
- /// Does the box currently have an ammo type set?
- var/ammo_set = FALSE
- /// Name of the currently set ammo type
- var/ammo_name
-
-/obj/item/ammo_box/generic/update_ammo_count()
- . = ..()
- if(LAZYLEN(stored_ammo) == 0)
- ammo_set = FALSE
- ammo_type = /obj/item/ammo_casing
-
-/obj/item/ammo_box/generic/proc/update_max_ammo(obj/item/ammo_casing/ammo)
- if(ammo.bullet_per_box)
- max_ammo = round(ammo.bullet_per_box)
- else
- max_ammo = 10
-
- return
-
-/obj/item/ammo_box/generic/attackby(obj/item/attacking_obj, mob/user, params, silent, replace_spent)
- . = ..()
-
- if(!ammo_set && istype(attacking_obj, /obj/item/ammo_casing))
- var/obj/item/ammo_casing/ammo_load = attacking_obj.type
- ammo_type = ammo_load
- ammo_set = TRUE
- ammo_name = attacking_obj.name
- update_max_ammo(attacking_obj)
- to_chat(user, span_notice("You set the box to hold [attacking_obj]!"))
-
- if(istype(attacking_obj, /obj/item/pen))
- if(!user.is_literate())
- to_chat(user, span_notice("You scribble illegibly on the cover of [src]!"))
- return
- var/inputvalue = stripped_input(user, "What would you like to label the box?", "Box Labelling", "", MAX_NAME_LEN)
-
- if(!inputvalue)
- return
-
- if(user.canUseTopic(src, BE_CLOSE))
- name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]"
-
-/obj/item/ammo_box/generic/examine(mob/user)
- . = ..()
- . += span_notice("[ammo_set ? "It's set to hold [ammo_name]\s. The box can hold up to [max_ammo] rounds." : "It doesn't have an ammo type set. Use a bullet on the box to set it."]")
- . += span_notice("You can use a pen on it to rename the box.")
-
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index f64586871ccf..877079684ed2 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -203,12 +203,14 @@
/obj/item/gun/ballistic/attackby(obj/item/A, mob/user, params)
. = ..()
- if (.)
+
+ if(.)
return
+
if(sealed_magazine)
to_chat(user, span_warning("The magazine on [src] is sealed and cannot be reloaded!"))
return
- if (!internal_magazine && istype(A, /obj/item/ammo_box/magazine))
+ if(!internal_magazine && istype(A, /obj/item/ammo_box/magazine))
var/obj/item/ammo_box/magazine/AM = A
if (!magazine)
insert_magazine(user, AM)
@@ -218,7 +220,8 @@
else
to_chat(user, "There's already a [magazine_wording] in \the [src].")
return
- if (istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box))
+
+ if(istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box/magazine/ammo_stack))
if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine)
if (chambered && !chambered.BB)
chambered.on_eject(shooter = user)
@@ -235,6 +238,7 @@
if (can_be_sawn_off)
if (try_sawoff(user, A))
return
+
return FALSE
///Prefire empty checks for the bolt drop
diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm
index e81b57d43f37..4fcc4cf56b14 100644
--- a/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -39,6 +39,7 @@
load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
+ show_magazine_on_sprite = TRUE
EMPTY_GUN_HELPER(automatic/pistol/candor)
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index e0e389ce7f4a..648ad96640f2 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -594,8 +594,10 @@ EMPTY_GUN_HELPER(revolver/detective)
mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
icon_state = "ashhand"
+ item_state = "ashhand"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev4570
fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg'
+ rack_sound = 'sound/weapons/gun/revolver/viper_prime.ogg'
manufacturer = MANUFACTURER_HUNTERSPRIDE
gate_loaded = TRUE
fire_delay = 0.6 SECONDS
@@ -640,20 +642,22 @@ EMPTY_GUN_HELPER(revolver/detective)
righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
icon_state = "shadow"
- item_state = "hp_generic"
+ item_state = "shadow"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44
manufacturer = MANUFACTURER_HUNTERSPRIDE
obj_flags = UNIQUE_RENAME
gate_loaded = TRUE
- unique_reskin = list("Shadow" = "shadow",
- "Army" = "shadow_army",
+ unique_reskin = list(\
+ "Shadow" = "shadow",
+ "Cattleman" = "shadow_cattleman",
"General" = "shadow_general",
- "Frontier Scout" = "shadow_frontier",
- "Nanotrasen Special" = "shadow_nanotrasen",
+ "Sheriff" = "shadow_sheriff",
+ "Cobra" = "shadow_cobra",
"Hired Gun" = "shadow_hiredgun",
"Buntline" = "shadow_buntline",
- "Cavalry Special" = "shadow_cavalry"
+ "Cavalry" = "shadow_cavalry",
+ "Lanchester Special" = "shadow_lanchester"
)
recoil = 0 //weaker than normal revolver, no recoil
@@ -665,3 +669,8 @@ EMPTY_GUN_HELPER(revolver/detective)
/obj/item/gun/ballistic/revolver/shadow/no_mag
spawnwithmagazine = FALSE
+
+/obj/item/gun/ballistic/revolver/shadow/reskin_obj(mob/M)
+ . = ..()
+ if(current_skin)
+ item_state = unique_reskin[current_skin]
diff --git a/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm b/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm
index f50acb6f4b86..650297596952 100644
--- a/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm
+++ b/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm
@@ -534,6 +534,8 @@ EMPTY_GUN_HELPER(automatic/smg/sidewinder)
fire_delay = 1 SECONDS
+ slot_flags = ITEM_SLOT_BACK
+
show_magazine_on_sprite = TRUE
unique_mag_sprites_for_variants = TRUE
show_ammo_capacity_on_magazine_sprite = TRUE
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index b131b03ec148..2e2fc46c3752 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -477,7 +477,7 @@
if(isliving(target))
var/mob/living/L = target
L.adjustFireLoss(impact_direct_damage)
- L.emote("scream")
+ L.force_scream()
/obj/projectile/beam/beam_rifle/proc/handle_hit(atom/target, piercing_hit = FALSE)
set waitfor = FALSE
diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
index f781313bf582..e84cc952c5b9 100644
--- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
@@ -488,7 +488,7 @@ WS End*/
if(H.health <= H.crit_threshold) //certain death above this threshold
REMOVE_TRAIT(H, TRAIT_STABLEHEART, type) //we have to remove the stable heart before we give him heart attack
to_chat(H,"You feel something rupturing inside your chest!")
- H.emote("scream")
+ H.force_scream()
H.set_heartattack(TRUE)
volume = 0
. = ..()
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index abdaf511691d..9e4b2120774e 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -137,7 +137,7 @@
M.visible_message("The boiling oil sizzles as it covers [M]!", \
"You're covered in boiling oil!")
if(FryLoss)
- M.emote("scream")
+ M.force_scream()
playsound(M, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE)
ADD_TRAIT(M, TRAIT_OIL_FRIED, "cooking_oil_react")
addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, unfry_mob)), 3)
@@ -271,7 +271,7 @@
//actually handle the pepperspray effects
if (!(pepper_proof)) // you need both eye and mouth protection
if(prob(5))
- victim.emote("scream")
+ victim.force_scream()
victim.blur_eyes(5) // 10 seconds
victim.blind_eyes(3) // 6 seconds
victim.confused = max(M.confused, 5) // 10 seconds
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 6460cd423f78..d468431c9480 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -257,9 +257,12 @@
to_chat(M, "You don't feel so good...")
else if(M.getFireLoss())
M.adjustFireLoss(-reac_volume)
- if(show_message)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
to_chat(M, "You feel your burns healing! It stings like hell!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your burns throbbing."))
..()
/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/carbon/M)
@@ -310,9 +313,12 @@
to_chat(M, "You don't feel so good...")
else if(M.getBruteLoss())
M.adjustBruteLoss(-reac_volume)
- if(show_message)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
to_chat(M, "You feel your bruises healing! It stings like hell!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your bruises throbbing."))
..()
@@ -375,6 +381,9 @@
color = "#6D6374"
metabolization_rate = 0.4 * REAGENTS_METABOLISM
+/datum/reagent/medicine/mine_salve/on_mob_metabolize(mob/living/L)
+ ADD_TRAIT(L, TRAIT_PAIN_RESIST, type)
+
/datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/C)
C.hal_screwyhud = SCREWYHUD_HEALTHY
C.adjustBruteLoss(-0.25*REM, 0)
@@ -401,6 +410,7 @@
/datum/reagent/medicine/mine_salve/on_mob_end_metabolize(mob/living/M)
if(iscarbon(M))
var/mob/living/carbon/N = M
+ REMOVE_TRAIT(N, TRAIT_PAIN_RESIST, type)
N.hal_screwyhud = SCREWYHUD_NONE
..()
@@ -565,6 +575,10 @@
color = "#E6FFF0"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
+/datum/reagent/medicine/anti_rad/on_mob_metabolize(mob/living/L)
+ to_chat(L, span_warning("Your stomach starts to churn and cramp!"))
+ . = ..()
+
/datum/reagent/medicine/anti_rad/on_mob_life(mob/living/carbon/M)
M.radiation -= M.radiation - rand(50,150)
M.adjust_disgust(7*REM, 0)
@@ -750,9 +764,11 @@
/datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L)
..()
+ ADD_TRAIT(L, TRAIT_PAIN_RESIST, type)
L.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
/datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L)
+ REMOVE_TRAIT(L, TRAIT_PAIN_RESIST, type)
L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
..()
@@ -1451,10 +1467,12 @@
/datum/reagent/medicine/corazone/on_mob_metabolize(mob/living/M)
..()
+ ADD_TRAIT(M, TRAIT_PAIN_RESIST, type)
ADD_TRAIT(M, TRAIT_STABLEHEART, type)
ADD_TRAIT(M, TRAIT_STABLELIVER, type)
/datum/reagent/medicine/corazone/on_mob_end_metabolize(mob/living/M)
+ REMOVE_TRAIT(M, TRAIT_PAIN_RESIST, type)
REMOVE_TRAIT(M, TRAIT_STABLEHEART, type)
REMOVE_TRAIT(M, TRAIT_STABLELIVER, type)
@@ -1746,9 +1764,12 @@
else if(M.getBruteLoss())
M.adjustBruteLoss(-reac_volume)
M.adjustFireLoss(reac_volume)
- if(show_message)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
to_chat(M, "You feel your skin bubble and burn as your flesh knits itself together!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your skin shifting around unnaturally."))
..()
/datum/reagent/medicine/converbital/on_mob_life(mob/living/carbon/M)
@@ -1780,9 +1801,12 @@
else if(M.getBruteLoss())
M.adjustFireLoss(-reac_volume)
M.adjustBruteLoss(reac_volume)
- if(show_message)
- to_chat(M, "You feel your flesh tear as your skin rapidly regenerates!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
+ to_chat(M, "You feel your skin tear as your flesh rapidly regenerates!")
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your skin shifting around unnaturally."))
..()
/datum/reagent/medicine/convuri/on_mob_life(mob/living/carbon/M)
diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm
index de1570a9ef5c..10baf946a089 100644
--- a/code/modules/reagents/reagent_containers/jug.dm
+++ b/code/modules/reagents/reagent_containers/jug.dm
@@ -1,7 +1,7 @@
/obj/item/reagent_containers/glass/chem_jug
name = "chemical jug"
desc = "A large jug used for storing bulk ammounts chemicals. Provided with a tamper seal which ensures that the contents are pure"
- icon = 'icons/obj/chemical/chem_jug.dmi'
+ icon = 'icons/obj/chemical/chem_jug.dmi' // the coloring of labels for elemental chemicals is based on the chemical group block coloring at https://pubchem.ncbi.nlm.nih.gov/periodic-table/ . Everything else is whatever.
icon_state = "chem_jug"
item_state = "sheet-plastic"
w_class = WEIGHT_CLASS_BULKY
@@ -80,36 +80,21 @@
/obj/item/reagent_containers/glass/chem_jug/open
cap_on = FALSE
-/obj/item/reagent_containers/glass/chem_jug/carbon
- name = "chemical jug (carbon)"
- icon_state = "chem_jug_carbon"
- list_reagents = list(/datum/reagent/carbon = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/oxygen
- name = "chemical jug (oxygen)"
- icon_state = "chem_jug_oxygen"
- list_reagents = list(/datum/reagent/oxygen = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/nitrogen
- name = "chemical jug (nitrogen)"
- icon_state = "chem_jug_nitrogen"
- list_reagents = list(/datum/reagent/nitrogen = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/hydrogen
- name = "chemical jug (hydrogen)"
- icon_state = "chem_jug_hydrogen"
- list_reagents = list(/datum/reagent/hydrogen = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/radium
- name = "chemical jug (radium)"
- icon_state = "chem_jug_radium"
- list_reagents = list(/datum/reagent/uranium/radium = 150)
-
/obj/item/reagent_containers/glass/chem_jug/aluminium
name = "chemical jug (aluminium)"
icon_state = "chem_jug_aluminium"
list_reagents = list(/datum/reagent/aluminium = 150)
+/obj/item/reagent_containers/glass/chem_jug/bromine
+ name = "chemical jug (bromine)"
+ icon_state = "chem_jug_bromine"
+ list_reagents = list(/datum/reagent/bromine = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/carbon
+ name = "chemical jug (carbon)"
+ icon_state = "chem_jug_carbon"
+ list_reagents = list(/datum/reagent/carbon = 150)
+
/obj/item/reagent_containers/glass/chem_jug/chlorine
name = "chemical jug (chlorine)"
icon_state = "chem_jug_chlorine"
@@ -120,27 +105,67 @@
icon_state = "chem_jug_copper"
list_reagents = list(/datum/reagent/copper = 150)
-/obj/item/reagent_containers/glass/chem_jug/bromine
- name = "chemical jug (bromine)"
- icon_state = "chem_jug_bromine"
- list_reagents = list(/datum/reagent/bromine = 150)
+/obj/item/reagent_containers/glass/chem_jug/fluorine
+ name = "chemical jug (fluorine)"
+ icon_state = "chem_jug_fluorine"
+ list_reagents = list(/datum/reagent/fluorine = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/hydrogen
+ name = "chemical jug (hydrogen)"
+ icon_state = "chem_jug_hydrogen"
+ list_reagents = list(/datum/reagent/hydrogen = 150)
/obj/item/reagent_containers/glass/chem_jug/iodine
name = "chemical jug (iodine)"
icon_state = "chem_jug_iodine"
list_reagents = list(/datum/reagent/iodine = 150)
+/obj/item/reagent_containers/glass/chem_jug/lithium
+ name = "chemical jug (lithium)"
+ icon_state = "chem_jug_lithium"
+ list_reagents = list(/datum/reagent/lithium = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/mercury
+ name = "chemical jug (mercury)"
+ icon_state = "chem_jug_mercury"
+ list_reagents = list(/datum/reagent/mercury = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/nitrogen
+ name = "chemical jug (nitrogen)"
+ icon_state = "chem_jug_nitrogen"
+ list_reagents = list(/datum/reagent/nitrogen = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/oxygen
+ name = "chemical jug (oxygen)"
+ icon_state = "chem_jug_oxygen"
+ list_reagents = list(/datum/reagent/oxygen = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/phosphorus
+ name = "chemical jug (phosphorus)"
+ icon_state = "chem_jug_phosphorus"
+ list_reagents = list(/datum/reagent/phosphorus = 150)
+
/obj/item/reagent_containers/glass/chem_jug/potassium
name = "chemical jug (potassium)"
icon_state = "chem_jug_potassium"
list_reagents = list(/datum/reagent/potassium = 150)
+/obj/item/reagent_containers/glass/chem_jug/radium
+ name = "chemical jug (radium)"
+ icon_state = "chem_jug_radium"
+ list_reagents = list(/datum/reagent/uranium/radium = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/sodium
+ name = "chemical jug (sodium)"
+ icon_state = "chem_jug_sodium"
+ list_reagents = list(/datum/reagent/sodium = 150)
+
/obj/item/reagent_containers/glass/chem_jug/sulfur
name = "chemical jug (sulfur)"
icon_state = "chem_jug_sulfur"
list_reagents = list(/datum/reagent/sulfur = 150)
-/obj/item/reagent_containers/glass/chem_jug/thermite
+/obj/item/reagent_containers/glass/chem_jug/thermite // not giving this its own "elemental" jug sprite.
name = "chemical jug (thermite)"
list_reagents = list(/datum/reagent/thermite = 150)
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 0b679dfcc4bf..5ac2370dc694 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -761,7 +761,7 @@
id = "foam_dart"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 500)
- build_path = /obj/item/ammo_box/foambox
+ build_path = /obj/item/storage/box/ammo/foam_darts
category = list("initial", "Misc")
/datum/design/handcuffs
@@ -785,7 +785,7 @@
id = "c38_surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c38_box/surplus
+ build_path = /obj/item/storage/box/ammo/c38_surplus
category = list("initial", "Security", "Ammo")
/datum/design/beanbag_slug
@@ -817,7 +817,7 @@
id = "riot_darts"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 50000) //Comes with 40 darts
- build_path = /obj/item/ammo_box/foambox/riot
+ build_path = /obj/item/storage/box/ammo/foam_darts/riot
category = list("initial", "Security")
/datum/design/c10mm_surplus
@@ -825,7 +825,7 @@
id = "c10mm-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c10mm/surplus
+ build_path = /obj/item/storage/box/ammo/c10mm_surplus
category = list("initial", "Security", "Ammo")
/datum/design/c45_surplus
@@ -833,7 +833,7 @@
id = "c45-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c45/surplus
+ build_path = /obj/item/storage/box/ammo/c45_surplus
category = list("initial", "Security", "Ammo")
/datum/design/c9mm_surplus
@@ -841,7 +841,7 @@
id = "c9mm-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm/surplus
+ build_path = /obj/item/storage/box/ammo/c9mm_surplus
category = list("initial", "Security", "Ammo")
/datum/design/c556mmHITP_surplus
@@ -849,15 +849,7 @@
id = "c556mmHITP-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c556mmHITP/surplus
- category = list("initial", "Security", "Ammo")
-
-/datum/design/generic_ammo_box
- name = "Generic Ammo Box"
- id = "ammo-generic"
- build_type = AUTOLATHE | PROTOLATHE
- materials = list(/datum/material/iron = 1500)
- build_path = /obj/item/ammo_box/generic
+ build_path = /obj/item/storage/box/ammo/c556mm_surplus
category = list("initial", "Security", "Ammo")
/datum/design/ammo_can
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 1c3edc8b7c32..a07f9d96dd80 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -288,8 +288,6 @@
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-//Shiptest edit - standard ammunition
-
/datum/design/buckshot_shell
name = "Buckshot Shell"
id = "buckshot_shell"
@@ -304,7 +302,7 @@
id = "c38"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c38_box
+ build_path = /obj/item/storage/box/ammo/c38
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -313,7 +311,7 @@
id = "c9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm
+ build_path = /obj/item/storage/box/ammo/c9mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -322,7 +320,7 @@
id = "c10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c10mm
+ build_path = /obj/item/storage/box/ammo/c10mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -331,7 +329,7 @@
id = "c45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c45
+ build_path = /obj/item/storage/box/ammo/c45
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -340,19 +338,17 @@
id = "c556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c556mmHITP
+ build_path = /obj/item/storage/box/ammo/c556mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-// WS edit - not so free rubbershot
-
/datum/design/rubbershot9mm
name = "Rubbershot 9mm ammo box"
desc = "A box full of less-than-lethal 9mm ammunition."
id = "rubbershot9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm/rubbershot
+ build_path = /obj/item/storage/box/ammo/c9mm_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -362,7 +358,7 @@
id = "rubbershot10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c10mm/rubbershot
+ build_path = /obj/item/storage/box/ammo/c10mm_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -372,7 +368,7 @@
id = "rubbershot45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c45/rubbershot
+ build_path = /obj/item/storage/box/ammo/c45_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -382,7 +378,7 @@
id = "rubbershot556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 18000)
- build_path = /obj/item/ammo_box/c556mmHITP/rubbershot
+ build_path = /obj/item/storage/box/ammo/c556mm_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -392,7 +388,7 @@
id = "ap9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c9mm/ap
+ build_path = /obj/item/storage/box/ammo/c9mm/ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -402,7 +398,7 @@
id = "ap10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c10mm/ap
+ build_path = /obj/item/storage/box/ammo/c10mm_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -412,7 +408,7 @@
id = "ap45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c45/ap
+ build_path = /obj/item/storage/box/ammo/c45_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -422,7 +418,7 @@
id = "ap556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 18000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c556mmHITP/ap
+ build_path = /obj/item/storage/box/ammo/c556mm_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -432,7 +428,7 @@
id = "hp9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c9mm/hp
+ build_path = /obj/item/storage/box/ammo/c9mm_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -442,7 +438,7 @@
id = "hp10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c10mm/hp
+ build_path = /obj/item/storage/box/ammo/c10mm_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -452,7 +448,7 @@
id = "hp45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c45/hp
+ build_path = /obj/item/storage/box/ammo/c45_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -462,7 +458,7 @@
id = "hp556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 18000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c556mmHITP/hp
+ build_path = /obj/item/storage/box/ammo/c556mm_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -472,7 +468,7 @@
id = "inc9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/plasma = 5000)
- build_path = /obj/item/ammo_box/c9mm/fire
+ build_path = /obj/item/storage/box/ammo/c9mm_incendiary
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -482,7 +478,7 @@
id = "inc10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/plasma = 5000)
- build_path = /obj/item/ammo_box/c10mm/fire
+ build_path = /obj/item/storage/box/ammo/c10mm_incendiary
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -492,7 +488,7 @@
id = "inc45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/plasma = 5000)
- build_path = /obj/item/ammo_box/c45/fire
+ build_path = /obj/item/storage/box/ammo/c45_incendiary
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -737,5 +733,5 @@
id = "c9mmautolathe"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm
+ build_path = /obj/item/storage/box/ammo/c9mm
category = list("Imported")
diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
index 3f80f17e8a32..2bca49c62913 100644
--- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
@@ -14,7 +14,7 @@ Slimecrossing Weapons
/obj/item/melee/arm_blade/slime/attack(mob/living/L, mob/user)
. = ..()
if(prob(20))
- user.emote("scream")
+ user.force_scream()
//Adamantine shield - Chilling Adamantine
/obj/item/shield/adamantineshield
diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm
index 26c151e42316..7d19fb0f8cfd 100644
--- a/code/modules/research/xenobiology/crossbreeding/burning.dm
+++ b/code/modules/research/xenobiology/crossbreeding/burning.dm
@@ -228,7 +228,7 @@ Burning extracts:
user.visible_message("[src] melts onto [user]'s arm, boiling the flesh horribly!")
else
user.visible_message("[src] sublimates the flesh around [user]'s arm, transforming the bone into a gruesome blade!")
- user.emote("scream")
+ user.force_scream()
L.apply_damage(30,BURN,which_hand)
..()
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 53e155210310..97196cf64ecc 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -373,7 +373,7 @@
if(total_damage >= max_damage * disable_threshold) //Easy limb disable disables the limb at 40% health instead of 0%
if(!last_maxed)
- if(owner.stat < UNCONSCIOUS)
+ if(owner.stat < UNCONSCIOUS && !HAS_TRAIT(owner, TRAIT_ANALGESIA))
INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob, emote), "scream")
last_maxed = TRUE
set_disabled(TRUE)
@@ -790,7 +790,10 @@
return
if(prob(5))
- to_chat(owner, "[pick("You feel broken bones moving around in your [name]!", "There are broken bones moving around in your [name]!", "The bones in your [name] are moving around!")]")
+ if(HAS_TRAIT(owner, TRAIT_ANALGESIA))
+ to_chat(owner, span_notice("[pick("You feel something shifting inside your [name].", "There is something moving inside [name].", "Something inside your [name] slips.")]"))
+ else
+ to_chat(owner, "[pick("You feel broken bones moving around in your [name]!", "There are broken bones moving around in your [name]!", "The bones in your [name] are moving around!")]")
receive_damage(rand(1, 3))
//1-3 damage every 20 tiles for every broken bodypart.
//A single broken bodypart will give you an average of 650 tiles to run before you get a total of 100 damage and fall into crit
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index 07d30e727c77..4a98e6b93ea0 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -20,7 +20,8 @@
if(C.stat <= SOFT_CRIT)//No more screaming while unconsious
if(IS_ORGANIC_LIMB(affecting))//Chest is a good indicator for if a carbon is robotic in nature or not.
- INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream")
+ if(!HAS_TRAIT(C, TRAIT_ANALGESIA)) //and do we actually feel pain?
+ INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream")
SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered)
diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 4469410f9b58..729dc0fe8403 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -276,7 +276,7 @@
/obj/item/organ/tongue/robot/emp_act(severity)
owner.apply_effect(EFFECT_STUTTER, 120)
- owner.emote("scream")
+ owner.force_scream()
to_chat(owner, "Alert: Vocal cords are malfunctioning.")
/obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args)
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index 4b4e10edd7ac..ba42b9bc9f46 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -41,6 +41,11 @@
/// Intended to be used in the manner of `TEST_FOCUS(/datum/unit_test/math)`
#define TEST_FOCUS(test_path) ##test_path { focus = TRUE; }
+/// Logs a noticable message on GitHub, but will not mark as an error.
+/// Use this when something shouldn't happen and is of note, but shouldn't block CI.
+/// Does not mark the test as failed.
+#define TEST_NOTICE(source, message) source.log_for_test((##message), "notice", __FILE__, __LINE__)
+
/// Constants indicating unit test completion status
#define UNIT_TEST_PASSED 0
#define UNIT_TEST_FAILED 1
@@ -81,7 +86,6 @@
#include "keybinding_init.dm"
#include "machine_disassembly.dm"
#include "open_air.dm"
-#include "outfit_names.dm"
#include "outfit_sanity.dm"
#include "overmap.dm"
#include "pills.dm"
diff --git a/code/modules/unit_tests/outfit_names.dm b/code/modules/unit_tests/outfit_names.dm
deleted file mode 100644
index b381bfeb7bf5..000000000000
--- a/code/modules/unit_tests/outfit_names.dm
+++ /dev/null
@@ -1,12 +0,0 @@
-/datum/unit_test/outfit_names/Run()
- var/list/outfit_names = list()
-
- for(var/datum/outfit/outfit_type as anything in subtypesof(/datum/outfit))
- var/name = initial(outfit_type.name)
-
- if(name in outfit_names)
- TEST_FAIL("Outfit name [name] is not unique: [outfit_type], [outfit_names[name]]")
-
- outfit_names[name] = outfit_type
-
-
diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm
index 4dc12b4dc6e3..a09395d42103 100644
--- a/code/modules/unit_tests/outfit_sanity.dm
+++ b/code/modules/unit_tests/outfit_sanity.dm
@@ -6,7 +6,7 @@
if (outfit.random != TRUE) \
TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
else \
- log_world("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
+ log_test("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
} \
}
@@ -26,6 +26,7 @@
var/prototype_name = initial(prototype_outfit.name)
var/mob/living/carbon/human/H = allocate(/mob/living/carbon/human)
+ var/list/outfit_names = list()
for (var/outfit_type in subtypesof(/datum/outfit))
// Only make one human and keep undressing it because it's much faster
for (var/obj/item/I in H.get_equipped_items(include_pockets = TRUE))
@@ -33,8 +34,12 @@
var/datum/outfit/outfit = new outfit_type
- if(outfit.name == prototype_name)
+ var/outfit_name = outfit.name
+ if(outfit_name == prototype_name)
TEST_FAIL("[outfit.type]'s name is invalid! Uses default outfit name!")
+ if(outfit_name in outfit_names)
+ TEST_FAIL("Outfit name [outfit_name] is not unique: [outfit_type], [outfit_names[outfit_name]]")
+ outfit_names[outfit_name] = outfit_type
outfit.pre_equip(H, TRUE)
CHECK_OUTFIT_SLOT(uniform, ITEM_SLOT_ICLOTHING)
@@ -67,7 +72,7 @@
if (outfit.random != TRUE)
TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
else
- log_world("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
+ log_test("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
#undef CHECK_OUTFIT_SLOT
diff --git a/code/modules/unit_tests/ship_outpost_placement.dm b/code/modules/unit_tests/ship_outpost_placement.dm
index 48bbd6a181e3..0762af79e304 100644
--- a/code/modules/unit_tests/ship_outpost_placement.dm
+++ b/code/modules/unit_tests/ship_outpost_placement.dm
@@ -3,7 +3,7 @@
// disabled or intended as subshuttles
for(var/name as anything in SSmapping.shuttle_templates)
var/datum/map_template/shuttle/map = SSmapping.shuttle_templates[name]
- log_world("Loading [map.name]")
+ log_test("Loading [map.name]")
try
// they'll spawn in empty space, and won't be docked
new /datum/overmap/ship/controlled(list("x" = 1, "y" = 1), map)
@@ -13,10 +13,10 @@
for(var/outpost_type in subtypesof(/datum/overmap/outpost))
var/datum/overmap/outpost/test_outpost = new outpost_type()
- log_world("Testing [test_outpost.type]")
+ log_test("Testing [test_outpost.type]")
for(var/datum/overmap/ship/controlled/cur_ship as anything in SSovermap.controlled_ships)
- log_world(" - Docking [cur_ship.source_template.name]")
+ log_test(" - Docking [cur_ship.source_template.name]")
// already-docked ships are ignored.
// this was added to stop runtimes when subshuttles, which were docked to their parent ship, attempted to dock to the outpost as part of this test.
diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm
index 7240adb33855..18b5b12e7f48 100644
--- a/code/modules/unit_tests/unit_test.dm
+++ b/code/modules/unit_tests/unit_test.dm
@@ -85,38 +85,58 @@ GLOBAL_VAR(test_log)
allocated += instance
return instance
+/// Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
+/datum/unit_test/proc/log_for_test(text, priority, file, line, test_path)
+ // Need to escape the text to properly support newlines.
+ var/annotation_text = replacetext(text, "%", "%25")
+ annotation_text = replacetext(annotation_text, "\n", "%0A")
+
+ log_world("::[priority] file=[file],line=[line],title=[test_path]: [type]::[annotation_text]")
+
/proc/RunUnitTest(test_path, list/test_results)
var/datum/unit_test/test = new test_path
GLOB.current_test = test
var/duration = REALTIMEOFDAY
+ log_world("::group::[test_path]")
test.Run()
duration = REALTIMEOFDAY - duration
GLOB.current_test = null
GLOB.failed_any_test |= !test.succeeded
- var/list/log_entry = list(
- "[test.succeeded ? TEST_OUTPUT_GREEN("PASS") : TEST_OUTPUT_RED("FAIL")]: [test_path] [duration / 10]s",
- )
+ var/list/log_entry = list()
var/list/fail_reasons = test.fail_reasons
+ var/test_output_desc = "[test_path]"
+ var/message = ""
+
for(var/reasonID in 1 to LAZYLEN(fail_reasons))
var/text = fail_reasons[reasonID][1]
var/file = fail_reasons[reasonID][2]
var/line = fail_reasons[reasonID][3]
- /// Github action annotation.
- log_world("::error file=[file],line=[line],title=[test_path]::[text]")
+ test.log_for_test(text, "error", file, line, test_path)
// Normal log message
- log_entry += "\tREASON #[reasonID]: [text] at [file]:[line]"
+ log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]"
+
+ if(length(log_entry))
+ message = log_entry.Join("\n")
+ log_test(message)
- var/message = log_entry.Join("\n")
- log_test(message)
+ test_output_desc += " [duration / 10]s"
+ if (test.succeeded)
+ log_world("[TEST_OUTPUT_GREEN("PASS")] [test_output_desc]")
- test_results[test_path] = list("status" = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED, "message" = message, "name" = test_path)
+ log_world("::endgroup::")
+
+ if (!test.succeeded)
+ log_world("::error::[TEST_OUTPUT_RED("FAIL")] [test_output_desc]")
+
+ var/final_status = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED
+ test_results[test_path] = list("status" = final_status, "message" = message, "name" = test_path)
qdel(test)
@@ -141,6 +161,10 @@ GLOBAL_VAR(test_log)
CHECK_TICK //We check tick first because the unit test we run last may be so expensive that checking tick will lock up this loop forever
RunUnitTest(unit_path, test_results)
+ var/file_name = "data/unit_tests.json"
+ fdel(file_name)
+ file(file_name) << json_encode(test_results)
+
SSticker.force_ending = TRUE
//We have to call this manually because del_text can preceed us, and SSticker doesn't fire in the post game
SSticker.declare_completion()
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 0923ba1cc70e..5566c11f7575 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -869,7 +869,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/ammo/toydarts
name = "Box of Riot Darts"
desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!"
- item = /obj/item/ammo_box/foambox/riot
+ item = /obj/item/storage/box/ammo/foam_darts/riot
cost = 2
surplus = 0
illegal_tech = FALSE
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index 6d73fad566f6..0724b7233ef9 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -552,7 +552,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
L.client.give_award(/datum/award/achievement/misc/vendor_squish, L) // good job losing a fight with an inanimate object idiot
L.Paralyze(60)
- L.emote("scream")
+ L.force_scream()
playsound(L, 'sound/effects/blobattack.ogg', 40, TRUE)
playsound(L, 'sound/effects/splat.ogg', 50, TRUE)
diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm
index 06069e4db764..931611da1df9 100644
--- a/code/modules/vending/liberation_toy.dm
+++ b/code/modules/vending/liberation_toy.dm
@@ -10,14 +10,14 @@
/obj/item/gun/ballistic/automatic/toy/pistol = 10,
/obj/item/gun/ballistic/shotgun/toy = 10,
/obj/item/toy/sword = 10,
- /obj/item/ammo_box/foambox = 20,
+ /obj/item/storage/box/ammo/foam_darts = 20,
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
/obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant
contraband = list(
/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting!
- /obj/item/ammo_box/foambox/riot = 20,
+ /obj/item/storage/box/ammo/foam_darts/riot = 20,
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5,
/obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item
diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm
index 37a51b27bb89..007b66c193c1 100644
--- a/code/modules/vending/security.dm
+++ b/code/modules/vending/security.dm
@@ -12,8 +12,6 @@
/obj/item/assembly/flash/handheld = 5,
/obj/item/storage/box/evidence = 6,
/obj/item/flashlight/seclite = 4,
- /obj/item/ammo_box/c9mm/rubbershot = 3,
- /obj/item/ammo_box/c9mm = 1,
/obj/item/stock_parts/cell/gun = 3,
/obj/item/clothing/glasses/sunglasses = 2)
premium = list(
diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm
index 08af917aa86a..898844a31c09 100644
--- a/code/modules/vending/toys.dm
+++ b/code/modules/vending/toys.dm
@@ -12,7 +12,7 @@
/obj/item/gun/ballistic/automatic/toy/pistol = 10,
/obj/item/gun/ballistic/shotgun/toy = 10,
/obj/item/toy/sword = 10,
- /obj/item/ammo_box/foambox = 20,
+ /obj/item/storage/box/ammo/foam_darts = 20,
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
diff --git a/html/changelogs/AutoChangeLog-pr-3365.yml b/html/changelogs/AutoChangeLog-pr-3365.yml
new file mode 100644
index 000000000000..a2954f6d1f42
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3365.yml
@@ -0,0 +1,6 @@
+author: Erika Fox
+changes:
+ - {rscadd: Transfusion anomaly; yum! Blood!}
+ - {rscadd: Anomaly cores now have an effect when detonated out of the anomaly}
+ - {rscadd: new anomaly description fluff}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3417.yml b/html/changelogs/AutoChangeLog-pr-3417.yml
deleted file mode 100644
index f00e3b3d4845..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3417.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: SomeguyManperson
-changes:
- - {balance: you no longer need a lasso to ride a goliath}
- - {rscdel: no more lasso}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3447.yml b/html/changelogs/AutoChangeLog-pr-3447.yml
deleted file mode 100644
index a3c00b8de0da..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3447.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: Bjarl
-changes:
- - {code_imp: A large amount of cruft has been deleted.}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3472.yml b/html/changelogs/AutoChangeLog-pr-3472.yml
deleted file mode 100644
index 899e00d9c9e5..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3472.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: thgvr
-changes:
- - {bugfix: fixed digitigrade combat/jackboots}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3484.yml b/html/changelogs/AutoChangeLog-pr-3484.yml
deleted file mode 100644
index e1268b036c5f..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3484.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: Sadhorizon
-changes:
- - {rscadd: Cybersun Biodynamics stamp.}
- - {rscadd: Cybersun secret documents.}
- - {rscadd: Cybersun captain's safe.}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3500.yml b/html/changelogs/AutoChangeLog-pr-3500.yml
new file mode 100644
index 000000000000..2e24245d05ce
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3500.yml
@@ -0,0 +1,5 @@
+author: rye-rice
+changes:
+ - {rscadd: Various sprite improvemnts}
+ - {bugfix: Boomslang no longer fits on the belt}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3533.yml b/html/changelogs/AutoChangeLog-pr-3533.yml
new file mode 100644
index 000000000000..d8c9009eef50
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3533.yml
@@ -0,0 +1,6 @@
+author: Sadhorizon
+changes:
+ - {rscadd: Added a honorable corpsman stamp and tweaked honorable arti one.}
+ - {rscadd: Inteq ships now use inteq stamps.}
+ - {code_imp: Repathed IRMG and CLIP stamps.}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3540.yml b/html/changelogs/AutoChangeLog-pr-3540.yml
new file mode 100644
index 000000000000..64d5268de008
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3540.yml
@@ -0,0 +1,4 @@
+author: firebudgy
+changes:
+ - {bugfix: War Correspondent helmet has a proper sprite for Vox.}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3544.yml b/html/changelogs/AutoChangeLog-pr-3544.yml
new file mode 100644
index 000000000000..cfdbae12314b
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3544.yml
@@ -0,0 +1,4 @@
+author: Gristlebee
+changes:
+ - {bugfix: Abandoned Miskilamo Shipbreaking Yard ruin has the correct revolver subtype.}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3545.yml b/html/changelogs/AutoChangeLog-pr-3545.yml
new file mode 100644
index 000000000000..b9d02077a666
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3545.yml
@@ -0,0 +1,5 @@
+author: Gristlebee
+changes:
+ - {bugfix: Shipping dock ruin correctly has a rattlesnake instead of a ringneck
+ case}
+delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3550.yml b/html/changelogs/AutoChangeLog-pr-3550.yml
new file mode 100644
index 000000000000..516084369d50
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3550.yml
@@ -0,0 +1,5 @@
+author: Sadhorizon
+changes:
+ - {rscadd: Added stamps for New Gorlex Republic.}
+ - {rscadd: Added secret documents for New Gorlex Republic.}
+delete-after: true
diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml
index 5b95989e7c16..b6c26721ca43 100644
--- a/html/changelogs/archive/2024-10.yml
+++ b/html/changelogs/archive/2024-10.yml
@@ -76,3 +76,83 @@
thgvr:
- imageadd: Some backpack sprites for Kepori
- imageadd: Shrunk down the sprite of guncases
+2024-10-08:
+ Anticept:
+ - rscadd: Added more purchasable chemicals to outpost.
+ - rscadd: Added missing elemental chems to chem starter kit
+ - rscdel: removed sulfuric acid from chem starter set. You have to make it.
+ - imageadd: tweaked and added more elemental chemical jugs.
+ Bjarl:
+ - code_imp: A large amount of cruft has been deleted.
+ DrCrawler:
+ - rscadd: Gives IPCs a little more adjectives to work with.
+ - rscdel: Removed some duplicate adjectives from the raw file.
+ FalloutFalcon:
+ - code_imp: tweaks to the syntax of unit test logs to be more readable by humans
+ and flaky tests
+ FalloutFalcon, Mothblocks, Cyberboss:
+ - rscadd: retry failed unit tests.
+ PositiveEntropy:
+ - imageadd: We now have improved visuals for circuit boards!
+ Sadhorizon:
+ - rscadd: Cybersun Biodynamics stamp.
+ - rscadd: Cybersun secret documents.
+ - rscadd: Cybersun captain's safe.
+ SomeguyManperson:
+ - balance: you no longer need a lasso to ride a goliath
+ - rscdel: no more lasso
+ rye-rice, Imaginos16:
+ - rscadd: Resprites Wisp
+ thgvr:
+ - bugfix: fixed digitigrade combat/jackboots
+2024-10-09:
+ PositiveEntropy:
+ - imageadd: Dog Beds Now Look Fancier!
+ - imageadd: Tank Dispensers have been repaletted!
+ - imageadd: Nuclear Waste Barrels Look A Lot Better!
+ Sun-Soaked:
+ - rscadd: Boxes are now volumetric. Some special boxes have been adjusted.
+ - balance: small objects in volumetric storage are now slightly smaller
+ zimon9:
+ - rscadd: Added flamethrower crate
+ - rscadd: Added incendiary grenade crate
+ - rscdel: Removed incendiary supply crate
+2024-10-10:
+ Bjarl:
+ - bugfix: Turrets should now actually fire at their defined fire rates.
+ - balance: Factional turrets now have new damage thresholds
+ - balance: ship turrets now have 100 less integrity by default
+ FalloutFalcon:
+ - rscadd: Cats have been genetically engineered to detect radiation
+ Gristlebee:
+ - rscadd: PGF Rakalla space suits can hold a gun in their suit storage.
+ PositiveEntropy:
+ - imageadd: Long (And Short) Braid hairstyles have been redone!
+ zimon9:
+ - rscadd: Adds bowmans to Artificer and Enforcer loadouts, and regular headsets
+ to Recruit loadouts
+2024-10-11:
+ Bjarl:
+ - rscadd: Reports of people inflicted with congenital analgesia travelling to the
+ Frontier have reached this newscaster.
+ - rscadd: Painkillers may circumvent pain in some cases now.
+ - rscadd: Please remember to ensure your soul is filled with spite before kicking
+ a rack.
+ - code_imp: abandoned airlocks now have more effects
+ FalloutFalcon:
+ - rscadd: Readdes world icons for a few knives. Expect more soon!
+2024-10-13:
+ FalloutFalcon:
+ - rscadd: update path txt for ammo boxes, thgvr will be FIRED for forgeting this.
+ Imaginos16, rye-rice:
+ - rscadd: A few hairstyles have been resprited!
+ - rscdel: the Braided and Braid line of hairs.
+ thgvr:
+ - rscadd: Added bullet stacks, they allow you to stack ammo of the same type into
+ a group.
+ - balance: Changed old ammo boxes into storage items containing stacks of bullets
+ zimon9:
+ - bugfix: fixed halved throw range
+2024-10-14:
+ Spooky, PositiveEntropy:
+ - imageadd: Smartfridges and Booze-O-Mats have been resprited!
diff --git a/icons/effects/anomalies.dmi b/icons/effects/anomalies.dmi
index e1671b816ec5..c716fc799097 100644
Binary files a/icons/effects/anomalies.dmi and b/icons/effects/anomalies.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index a819dd3ca780..0c0efee7cbb7 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/obj/ammo_bullets.dmi b/icons/obj/ammo_bullets.dmi
deleted file mode 100644
index 087cdd4c771e..000000000000
Binary files a/icons/obj/ammo_bullets.dmi and /dev/null differ
diff --git a/icons/obj/ammo_shotshells.dmi b/icons/obj/ammo_shotshells.dmi
deleted file mode 100644
index 55b00cdd0b21..000000000000
Binary files a/icons/obj/ammo_shotshells.dmi and /dev/null differ
diff --git a/icons/obj/ammunition/ammo.dmi b/icons/obj/ammunition/ammo.dmi
new file mode 100644
index 000000000000..85e8e368fac8
Binary files /dev/null and b/icons/obj/ammunition/ammo.dmi differ
diff --git a/icons/obj/ammunition/ammo_boxes.dmi b/icons/obj/ammunition/ammo_boxes.dmi
new file mode 100644
index 000000000000..ac963d46212b
Binary files /dev/null and b/icons/obj/ammunition/ammo_boxes.dmi differ
diff --git a/icons/obj/ammunition/ammo_bullets.dmi b/icons/obj/ammunition/ammo_bullets.dmi
new file mode 100644
index 000000000000..25ea909762aa
Binary files /dev/null and b/icons/obj/ammunition/ammo_bullets.dmi differ
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index 68fef79c160b..ab9af894d43e 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/icons/obj/chemical/chem_jug.dmi b/icons/obj/chemical/chem_jug.dmi
index d872ba00ff1d..e5ab15a43e14 100644
Binary files a/icons/obj/chemical/chem_jug.dmi and b/icons/obj/chemical/chem_jug.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/48x32.dmi b/icons/obj/guns/manufacturer/hunterspride/48x32.dmi
index 70bbef00e1af..6c3851f0ca7f 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/48x32.dmi and b/icons/obj/guns/manufacturer/hunterspride/48x32.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi b/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi
index 6471cef8b5eb..febc543be1b5 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi and b/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/onmob.dmi b/icons/obj/guns/manufacturer/hunterspride/onmob.dmi
index 361899e3c523..539b811aacd6 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/onmob.dmi and b/icons/obj/guns/manufacturer/hunterspride/onmob.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/righthand.dmi b/icons/obj/guns/manufacturer/hunterspride/righthand.dmi
index fbf4f7cf3fbf..ec9a8a53ba7f 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/righthand.dmi and b/icons/obj/guns/manufacturer/hunterspride/righthand.dmi differ
diff --git a/icons/obj/hazard.dmi b/icons/obj/hazard.dmi
index 5c350c5afb9b..f9df336f607d 100644
Binary files a/icons/obj/hazard.dmi and b/icons/obj/hazard.dmi differ
diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi
index 49c818b217d0..e7f379175a5e 100644
Binary files a/icons/obj/module.dmi and b/icons/obj/module.dmi differ
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index 8479c100f1b0..628c19d63e43 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi
index 6905749d1e52..a2a6e29e2c46 100644
Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ
diff --git a/icons/stamp_icons/large_stamp-artificer.png b/icons/stamp_icons/large_stamp-artificer.png
deleted file mode 100644
index 058a4407428c..000000000000
Binary files a/icons/stamp_icons/large_stamp-artificer.png and /dev/null differ
diff --git a/icons/stamp_icons/large_stamp-inteq_artificer.png b/icons/stamp_icons/large_stamp-inteq_artificer.png
new file mode 100644
index 000000000000..fc75d381200e
Binary files /dev/null and b/icons/stamp_icons/large_stamp-inteq_artificer.png differ
diff --git a/icons/stamp_icons/large_stamp-inteq_corpsman.png b/icons/stamp_icons/large_stamp-inteq_corpsman.png
new file mode 100644
index 000000000000..22b4f97c7e4c
Binary files /dev/null and b/icons/stamp_icons/large_stamp-inteq_corpsman.png differ
diff --git a/icons/stamp_icons/large_stamp-maa.png b/icons/stamp_icons/large_stamp-inteq_maa.png
similarity index 100%
rename from icons/stamp_icons/large_stamp-maa.png
rename to icons/stamp_icons/large_stamp-inteq_maa.png
diff --git a/icons/stamp_icons/large_stamp-vanguard.png b/icons/stamp_icons/large_stamp-inteq_vanguard.png
similarity index 100%
rename from icons/stamp_icons/large_stamp-vanguard.png
rename to icons/stamp_icons/large_stamp-inteq_vanguard.png
diff --git a/icons/stamp_icons/large_stamp-ngr.png b/icons/stamp_icons/large_stamp-ngr.png
new file mode 100644
index 000000000000..dfc75056911e
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_captain.png b/icons/stamp_icons/large_stamp-ngr_captain.png
new file mode 100644
index 000000000000..46ca33b76853
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_captain.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_ensign.png b/icons/stamp_icons/large_stamp-ngr_ensign.png
new file mode 100644
index 000000000000..9e7bc9056789
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_ensign.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_foreman.png b/icons/stamp_icons/large_stamp-ngr_foreman.png
new file mode 100644
index 000000000000..09b34ab632e1
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_foreman.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_lieutenant.png b/icons/stamp_icons/large_stamp-ngr_lieutenant.png
new file mode 100644
index 000000000000..f96be7a5ee56
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_lieutenant.png differ
diff --git a/shiptest.dme b/shiptest.dme
index 187540e66a26..2acafb939991 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -393,6 +393,7 @@
#include "code\controllers\subsystem\title.dm"
#include "code\controllers\subsystem\traumas.dm"
#include "code\controllers\subsystem\turf_fire.dm"
+#include "code\controllers\subsystem\turrets.dm"
#include "code\controllers\subsystem\verb_manager.dm"
#include "code\controllers\subsystem\vis_overlays.dm"
#include "code\controllers\subsystem\vote.dm"
@@ -1092,6 +1093,7 @@
#include "code\game\objects\effects\anomalies\anomalies_pyroclastic.dm"
#include "code\game\objects\effects\anomalies\anomalies_sparkler.dm"
#include "code\game\objects\effects\anomalies\anomalies_static.dm"
+#include "code\game\objects\effects\anomalies\anomalies_transfusion.dm"
#include "code\game\objects\effects\anomalies\anomalies_veins.dm"
#include "code\game\objects\effects\anomalies\anomalies_vortex.dm"
#include "code\game\objects\effects\decals\cleanable.dm"
@@ -1344,6 +1346,7 @@
#include "code\game\objects\items\stacks\tiles\tile_reskinning.dm"
#include "code\game\objects\items\stacks\tiles\tile_types.dm"
#include "code\game\objects\items\stacks\tiles\tiles_suns.dm"
+#include "code\game\objects\items\storage\ammo_can.dm"
#include "code\game\objects\items\storage\backpack.dm"
#include "code\game\objects\items\storage\bags.dm"
#include "code\game\objects\items\storage\belt.dm"
@@ -1738,6 +1741,7 @@
#include "code\modules\antagonists\wizard\equipment\artefact.dm"
#include "code\modules\antagonists\wizard\equipment\spellbook.dm"
#include "code\modules\antagonists\xeno\xeno.dm"
+#include "code\modules\assembly\anomalies.dm"
#include "code\modules\assembly\assembly.dm"
#include "code\modules\assembly\bomb.dm"
#include "code\modules\assembly\doorcontrol.dm"
@@ -2991,7 +2995,7 @@
#include "code\modules\power\tesla\generator.dm"
#include "code\modules\projectiles\gun.dm"
#include "code\modules\projectiles\projectile.dm"
-#include "code\modules\projectiles\ammunition\_ammunition.dm"
+#include "code\modules\projectiles\ammunition\_ammo_casing.dm"
#include "code\modules\projectiles\ammunition\_firing.dm"
#include "code\modules\projectiles\ammunition\ballistic\lmg.dm"
#include "code\modules\projectiles\ammunition\ballistic\pistol.dm"
@@ -3018,8 +3022,17 @@
#include "code\modules\projectiles\ammunition\special\magic.dm"
#include "code\modules\projectiles\ammunition\special\syringe.dm"
#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm"
-#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm"
-#include "code\modules\projectiles\boxes_magazines\generic_ammo_box.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_loaders.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\_ammo_stack.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\_premade_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_gauss_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_lmg_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_misc_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_pistol_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_rifle_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_shotshell_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_smg_stacks.dm"
+#include "code\modules\projectiles\boxes_magazines\ammo_stacks\prefab_stacks\premade_sniper_stacks.dm"
#include "code\modules\projectiles\boxes_magazines\external\gauss.dm"
#include "code\modules\projectiles\boxes_magazines\external\grenade.dm"
#include "code\modules\projectiles\boxes_magazines\external\pistol.dm"
diff --git a/strings/ipc_preference_adjectives.txt b/strings/ipc_preference_adjectives.txt
index a243b2d77fc5..a106aa76ba8f 100644
--- a/strings/ipc_preference_adjectives.txt
+++ b/strings/ipc_preference_adjectives.txt
@@ -1,3 +1,5 @@
+Angsty
+Awkward
Bedraggled
Brawny
Bulky
@@ -22,6 +24,7 @@ Fragile
Frail
Friendly
Gentle
+Gormless
Hawkish
Hefty
Hobbling
@@ -38,25 +41,39 @@ Mangled
Masculine
Messy
Nimble
+Pathetic
+Peppy
Petite
Pompous
Pugnacious
+Quievering
+Radical
Repulsive
Robust
Rough
Rusted
Scarred
Shifty
+Shrewd
Sickly
Skittish
Sleek
Slender
+Slimy
Slovenly
Sluggish
+Sly
+Smooth
+Sniveling
+Soulrendered
Spacy
Stiff
Stony
+Stout
+Strapping
+Sturdy
Stylish
+Tubular
Unattractive
Unremarkable
Unsightly
diff --git a/strings/preference_adjectives.txt b/strings/preference_adjectives.txt
index 0d67f16803f8..450e4c78901f 100644
--- a/strings/preference_adjectives.txt
+++ b/strings/preference_adjectives.txt
@@ -24,7 +24,6 @@ Effeminate
Elegant
Emaciated
Energetic
-Energetic
Exasperated
Exotic
Faint
@@ -41,7 +40,6 @@ Gentle
Gloomy
Gormless
Hawkish
-Hawkish
Healthy
Hefty
Hobbling
@@ -57,7 +55,6 @@ Lopsided
Lovely
Malnourished
Mangled
-Mangled
Masculine
Messy
Muscular
diff --git a/tools/UpdatePaths/Scripts/3456_ammoboxes.txt b/tools/UpdatePaths/Scripts/3456_ammoboxes.txt
new file mode 100644
index 000000000000..986c3f55894a
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/3456_ammoboxes.txt
@@ -0,0 +1,69 @@
+/obj/item/ammo_box/c10mm : /obj/item/storage/box/ammo/c10mm {@OLD}
+/obj/item/ammo_box/c10mm/surplus : /obj/item/storage/box/ammo/c10mm_surplus {@OLD}
+/obj/item/ammo_box/c10mm/ap : /obj/item/storage/box/ammo/c10mm_ap {@OLD}
+/obj/item/ammo_box/c10mm/hp : /obj/item/storage/box/ammo/c10mm_hp {@OLD}
+/obj/item/ammo_box/c10mm/fire: /obj/item/storage/box/ammo/c10mm_incendiary {@OLD}
+/obj/item/ammo_box/c10mm/rubbershot : /obj/item/storage/box/ammo/c10mm_rubber {@OLD}
+
+/obj/item/ammo_box/c9mm : /obj/item/storage/box/ammo/c9mm {@OLD}
+/obj/item/ammo_box/c9mm/surplus : /obj/item/storage/box/ammo/c9mm_surplus {@OLD}
+/obj/item/ammo_box/c9mm/ap : /obj/item/storage/box/ammo/c9mm/ap {@OLD}
+/obj/item/ammo_box/c9mm/hp : /obj/item/storage/box/ammo/c9mm_hp {@OLD}
+/obj/item/ammo_box/c9mm/fire : /obj/item/storage/box/ammo/c9mm_incendiary {@OLD}
+/obj/item/ammo_box/c9mm/rubbershot : /obj/item/storage/box/ammo/c9mm_rubber {@OLD}
+
+/obj/item/ammo_box/c45 : /obj/item/storage/box/ammo/c45 {@OLD}
+/obj/item/ammo_box/c45/surplus : /obj/item/storage/box/ammo/c45_surplus {@OLD}
+/obj/item/ammo_box/c45/ap : /obj/item/storage/box/ammo/c45_ap {@OLD}
+/obj/item/ammo_box/c45/hp : /obj/item/storage/box/ammo/c45_hp {@OLD}
+/obj/item/ammo_box/c45/fire : /obj/item/storage/box/ammo/c45_incendiary {@OLD}
+/obj/item/ammo_box/c45/rubbershot : /obj/item/storage/box/ammo/c45_rubber {@OLD}
+
+/obj/item/ammo_box/c22lr_box : /obj/item/storage/box/ammo/c22lr {@OLD}
+
+/obj/item/ammo_box/a357_box : /obj/item/storage/box/ammo/a357 {@OLD}
+/obj/item/ammo_box/a357_box/match : /obj/item/storage/box/ammo/a357_match {@OLD}
+/obj/item/ammo_box/a357_box/hp : /obj/item/storage/box/ammo/a357_hp {@OLD}
+
+/obj/item/ammo_box/a4570 : /obj/item/storage/box/ammo/a4570 {@OLD}
+/obj/item/ammo_box/a4570/match : /obj/item/storage/box/ammo/a4570_match {@OLD}
+/obj/item/ammo_box/a4570/hp : /obj/item/storage/box/ammo/a4570_hp {@OLD}
+/obj/item/ammo_box/a4570/explosive : /obj/item/storage/box/ammo/a4570_explosive {@OLD}
+
+/obj/item/ammo_box/c38_box : /obj/item/storage/box/ammo/c38 {@OLD}
+/obj/item/ammo_box/c38_box/surplus : /obj/item/storage/box/ammo/c38_surplus {@OLD}
+
+/obj/item/ammo_box/a44roum : /obj/item/storage/box/ammo/a44roum {@OLD}
+/obj/item/ammo_box/a44roum/hp : /obj/item/storage/box/ammo/a44roum_hp {@OLD}
+/obj/item/ammo_box/a44roum/rubber : /obj/item/storage/box/ammo/a44roum_rubber {@OLD}
+
+/obj/item/ammo_box/a12g : /obj/item/storage/box/ammo/a12g_buckshot {@OLD}
+/obj/item/ammo_box/a12g/slug : /obj/item/storage/box/ammo/a12g_slug {@OLD}
+/obj/item/ammo_box/a12g/beanbag : /obj/item/storage/box/ammo/a12g_beanbag {@OLD}
+/obj/item/ammo_box/a12g/rubbershot : /obj/item/storage/box/ammo/a12g_rubbershot {@OLD}
+
+/obj/item/ammo_box/c46x30mm_box : /obj/item/storage/box/ammo/c46x30mm {@OLD}
+
+/obj/item/ammo_box/c556mmHITP : /obj/item/storage/box/ammo/c556mm {@OLD}
+/obj/item/ammo_box/c556mmHITP/surplus : /obj/item/storage/box/ammo/c556mm_surplus {@OLD}
+/obj/item/ammo_box/c556mmHITP/ap : /obj/item/storage/box/ammo/c556mm_ap {@OLD}
+/obj/item/ammo_box/c556mmHITP/hp : /obj/item/storage/box/ammo/c556mm_hp {@OLD}
+/obj/item/ammo_box/c556mmHITP/rubbershot : /obj/item/storage/box/ammo/c556mm_rubber {@OLD}
+
+/obj/item/ammo_box/c8x50mm_box : /obj/item/storage/box/ammo/a8_50r {@OLD}
+/obj/item/ammo_box/c8x50mmhp_box : /obj/item/storage/box/ammo/a8_50r_hp {@OLD}
+
+/obj/item/ammo_box/a300_box : /obj/item/storage/box/ammo/a300 {@OLD}
+
+/obj/item/ammo_box/a762_40 : /obj/item/storage/box/ammo/a762_40 {@OLD}
+/obj/item/ammo_box/a762_40/inteq : /obj/item/storage/box/ammo/a762_40/inteq {@OLD}
+
+/obj/item/ammo_box/a308 : /obj/item/storage/box/ammo/a308 {@OLD}
+/obj/item/ammo_box/a308/hunterspride : /obj/item/storage/box/ammo/a308/hunterspride {@OLD}
+
+/obj/item/ammo_box/ferropelletbox : /obj/item/storage/box/ammo/ferropellet {@OLD}
+/obj/item/ammo_box/ferroslugbox : /obj/item/storage/box/ammo/ferroslug {@OLD}
+/obj/item/ammo_box/ferrolancebox : /obj/item/storage/box/ammo/ferrolance {@OLD}
+
+/obj/item/ammo_box/foambox : /obj/item/storage/box/ammo/foam_darts {@OLD}
+/obj/item/ammo_box/foambox/riot : /obj/item/storage/box/ammo/foam_darts/riot {@OLD}
diff --git a/tools/pull_request_hooks/flakyTestPayloads/chat_client.txt b/tools/pull_request_hooks/flakyTestPayloads/chat_client.txt
new file mode 100644
index 000000000000..c39a060ffcf2
--- /dev/null
+++ b/tools/pull_request_hooks/flakyTestPayloads/chat_client.txt
@@ -0,0 +1,2404 @@
+2022-10-27T05:35:28.0256243Z Requested labels: ubuntu-20.04
+2022-10-27T05:35:28.0256293Z Job defined at: tgstation/tgstation/.github/workflows/ci_suite.yml@refs/pull/70831/merge
+2022-10-27T05:35:28.0256314Z Waiting for a runner to pick up this job...
+2022-10-27T05:35:28.3806920Z Job is waiting for a hosted runner to come online.
+2022-10-27T05:35:31.1835589Z Job is about to start running on the hosted runner: GitHub Actions 7 (hosted)
+2022-10-27T05:35:33.6191945Z Current runner version: '2.298.2'
+2022-10-27T05:35:33.6223671Z ##[group]Operating System
+2022-10-27T05:35:33.6224296Z Ubuntu
+2022-10-27T05:35:33.6224585Z 20.04.5
+2022-10-27T05:35:33.6225034Z LTS
+2022-10-27T05:35:33.6225416Z ##[endgroup]
+2022-10-27T05:35:33.6225743Z ##[group]Runner Image
+2022-10-27T05:35:33.6226159Z Image: ubuntu-20.04
+2022-10-27T05:35:33.6226592Z Version: 20221018.2
+2022-10-27T05:35:33.6227149Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221018.2/images/linux/Ubuntu2004-Readme.md
+2022-10-27T05:35:33.6227911Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221018.2
+2022-10-27T05:35:33.6228438Z ##[endgroup]
+2022-10-27T05:35:33.6228792Z ##[group]Runner Image Provisioner
+2022-10-27T05:35:33.6229236Z 2.0.91.1
+2022-10-27T05:35:33.6229586Z ##[endgroup]
+2022-10-27T05:35:33.6230675Z ##[group]GITHUB_TOKEN Permissions
+2022-10-27T05:35:33.6231448Z Actions: read
+2022-10-27T05:35:33.6231805Z Checks: read
+2022-10-27T05:35:33.6232342Z Contents: read
+2022-10-27T05:35:33.6232738Z Deployments: read
+2022-10-27T05:35:33.6233144Z Discussions: read
+2022-10-27T05:35:33.6233560Z Issues: read
+2022-10-27T05:35:33.6233904Z Metadata: read
+2022-10-27T05:35:33.6234279Z Packages: read
+2022-10-27T05:35:33.6234661Z Pages: read
+2022-10-27T05:35:33.6234985Z PullRequests: read
+2022-10-27T05:35:33.6235438Z RepositoryProjects: read
+2022-10-27T05:35:33.6235864Z SecurityEvents: read
+2022-10-27T05:35:33.6236198Z Statuses: read
+2022-10-27T05:35:33.6236580Z ##[endgroup]
+2022-10-27T05:35:33.6240880Z Secret source: None
+2022-10-27T05:35:33.6241441Z Prepare workflow directory
+2022-10-27T05:35:33.7582606Z Prepare all required actions
+2022-10-27T05:35:33.7797278Z Getting action download info
+2022-10-27T05:35:33.9844802Z Download action repository 'actions/checkout@v3' (SHA:93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8)
+2022-10-27T05:35:34.3746562Z Download action repository 'actions/cache@v3' (SHA:1c73980b09e7aea7201f325a7aa3ad00beddcdda)
+2022-10-27T05:35:34.6080813Z Download action repository 'actions/upload-artifact@v3' (SHA:83fd05a356d7e2593de66fc9913b3002723633cb)
+2022-10-27T05:35:34.9999481Z ##[group]Checking docker version
+2022-10-27T05:35:35.0019606Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}'
+2022-10-27T05:35:35.2352575Z '1.41'
+2022-10-27T05:35:35.2364837Z Docker daemon API version: '1.41'
+2022-10-27T05:35:35.2365438Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}'
+2022-10-27T05:35:35.2671237Z '1.41'
+2022-10-27T05:35:35.2683601Z Docker client API version: '1.41'
+2022-10-27T05:35:35.2690466Z ##[endgroup]
+2022-10-27T05:35:35.2694627Z ##[group]Clean up resources from previous jobs
+2022-10-27T05:35:35.2703798Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=8d5581"
+2022-10-27T05:35:35.2966781Z ##[command]/usr/bin/docker network prune --force --filter "label=8d5581"
+2022-10-27T05:35:35.3198095Z ##[endgroup]
+2022-10-27T05:35:35.3198489Z ##[group]Create local container network
+2022-10-27T05:35:35.3210740Z ##[command]/usr/bin/docker network create --label 8d5581 github_network_552f961a7b154fc6bdcc0db4d38d15af
+2022-10-27T05:35:35.4083033Z 726620eda353dcb8922d8b386f90140e986ff1b865fb24546959f0eebb92fc89
+2022-10-27T05:35:35.4104308Z ##[endgroup]
+2022-10-27T05:35:35.4209182Z ##[group]Starting mysql service container
+2022-10-27T05:35:35.4233087Z ##[command]/usr/bin/docker pull mysql:latest
+2022-10-27T05:35:35.6809700Z latest: Pulling from library/mysql
+2022-10-27T05:35:35.7627837Z 50cbc88660a5: Pulling fs layer
+2022-10-27T05:35:35.7629087Z 92ca853f7184: Pulling fs layer
+2022-10-27T05:35:35.7629970Z 9a2047696230: Pulling fs layer
+2022-10-27T05:35:35.7630738Z fe3fea56f9fb: Pulling fs layer
+2022-10-27T05:35:35.7631515Z b058249d3104: Pulling fs layer
+2022-10-27T05:35:35.7632382Z 9d5014a20163: Pulling fs layer
+2022-10-27T05:35:35.7633458Z 906aa7388ee2: Pulling fs layer
+2022-10-27T05:35:35.7634120Z 86b5e2150967: Pulling fs layer
+2022-10-27T05:35:35.7634859Z fe3fea56f9fb: Waiting
+2022-10-27T05:35:35.7635207Z b058249d3104: Waiting
+2022-10-27T05:35:35.7635923Z 9d5014a20163: Waiting
+2022-10-27T05:35:35.7636723Z 906aa7388ee2: Waiting
+2022-10-27T05:35:35.7637442Z 86b5e2150967: Waiting
+2022-10-27T05:35:35.7638169Z 7c6b15dcdf4e: Pulling fs layer
+2022-10-27T05:35:35.7638928Z 21de4337b977: Pulling fs layer
+2022-10-27T05:35:35.7639714Z 35dab154f2ae: Pulling fs layer
+2022-10-27T05:35:35.7640485Z 7c6b15dcdf4e: Waiting
+2022-10-27T05:35:35.7641283Z 21de4337b977: Waiting
+2022-10-27T05:35:35.7642059Z 35dab154f2ae: Waiting
+2022-10-27T05:35:35.8359746Z 92ca853f7184: Verifying Checksum
+2022-10-27T05:35:35.8446985Z 92ca853f7184: Download complete
+2022-10-27T05:35:35.8481029Z 9a2047696230: Verifying Checksum
+2022-10-27T05:35:35.8488372Z 9a2047696230: Download complete
+2022-10-27T05:35:35.8926817Z b058249d3104: Verifying Checksum
+2022-10-27T05:35:35.8928354Z b058249d3104: Download complete
+2022-10-27T05:35:35.9459390Z 9d5014a20163: Verifying Checksum
+2022-10-27T05:35:35.9459781Z 9d5014a20163: Download complete
+2022-10-27T05:35:35.9501999Z fe3fea56f9fb: Verifying Checksum
+2022-10-27T05:35:35.9502607Z fe3fea56f9fb: Download complete
+2022-10-27T05:35:36.0227385Z 86b5e2150967: Verifying Checksum
+2022-10-27T05:35:36.0228073Z 86b5e2150967: Download complete
+2022-10-27T05:35:36.2107823Z 50cbc88660a5: Verifying Checksum
+2022-10-27T05:35:36.2144152Z 50cbc88660a5: Download complete
+2022-10-27T05:35:36.4134563Z 21de4337b977: Verifying Checksum
+2022-10-27T05:35:36.4134997Z 21de4337b977: Download complete
+2022-10-27T05:35:36.5421142Z 35dab154f2ae: Verifying Checksum
+2022-10-27T05:35:36.5422039Z 35dab154f2ae: Download complete
+2022-10-27T05:35:36.5644620Z 906aa7388ee2: Verifying Checksum
+2022-10-27T05:35:36.5645584Z 906aa7388ee2: Download complete
+2022-10-27T05:35:36.7764339Z 7c6b15dcdf4e: Verifying Checksum
+2022-10-27T05:35:36.7764814Z 7c6b15dcdf4e: Download complete
+2022-10-27T05:35:38.1046566Z 50cbc88660a5: Pull complete
+2022-10-27T05:35:39.3355767Z 92ca853f7184: Pull complete
+2022-10-27T05:35:39.4582128Z 9a2047696230: Pull complete
+2022-10-27T05:35:39.7344329Z fe3fea56f9fb: Pull complete
+2022-10-27T05:35:39.8044862Z b058249d3104: Pull complete
+2022-10-27T05:35:39.8779415Z 9d5014a20163: Pull complete
+2022-10-27T05:35:42.0306333Z 906aa7388ee2: Pull complete
+2022-10-27T05:35:42.0993787Z 86b5e2150967: Pull complete
+2022-10-27T05:35:46.6099584Z 7c6b15dcdf4e: Pull complete
+2022-10-27T05:35:46.6805432Z 21de4337b977: Pull complete
+2022-10-27T05:35:46.7395254Z 35dab154f2ae: Pull complete
+2022-10-27T05:35:46.7446735Z Digest: sha256:06314a7a220f6043436cfd72fd9c7f174fd58ef69fe4b788625fa53be4ab66aa
+2022-10-27T05:35:46.7469861Z Status: Downloaded newer image for mysql:latest
+2022-10-27T05:35:46.7485796Z docker.io/library/mysql:latest
+2022-10-27T05:35:46.7631416Z ##[command]/usr/bin/docker create --name bdaac24feb7948af9ae1cfcb2f1e5f3f_mysqllatest_e0031a --label 8d5581 --network github_network_552f961a7b154fc6bdcc0db4d38d15af --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest
+2022-10-27T05:35:46.8132286Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:46.8159678Z ##[command]/usr/bin/docker start b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:47.2490003Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:47.2513985Z ##[command]/usr/bin/docker ps --all --filter id=b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
+2022-10-27T05:35:47.2830396Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc Up Less than a second (health: starting)
+2022-10-27T05:35:47.2856701Z ##[command]/usr/bin/docker port b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:47.3113114Z 3306/tcp -> 0.0.0.0:49153
+2022-10-27T05:35:47.3115902Z 3306/tcp -> :::49153
+2022-10-27T05:35:47.3221941Z ##[endgroup]
+2022-10-27T05:35:47.3222347Z ##[group]Waiting for all services to be ready
+2022-10-27T05:35:47.3271402Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:47.3554944Z starting
+2022-10-27T05:35:47.3594143Z mysql service is starting, waiting 2 seconds before checking again.
+2022-10-27T05:35:49.3593961Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:49.3867220Z starting
+2022-10-27T05:35:49.3886611Z mysql service is starting, waiting 4 seconds before checking again.
+2022-10-27T05:35:53.5602510Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:35:53.5864042Z starting
+2022-10-27T05:35:53.5910238Z mysql service is starting, waiting 7 seconds before checking again.
+2022-10-27T05:36:01.0993571Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:36:01.1232744Z starting
+2022-10-27T05:36:01.1235024Z mysql service is starting, waiting 14 seconds before checking again.
+2022-10-27T05:36:15.3399109Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:36:15.3647356Z healthy
+2022-10-27T05:36:15.3666176Z mysql service is healthy.
+2022-10-27T05:36:15.3666682Z ##[endgroup]
+2022-10-27T05:36:15.4114536Z ##[group]Run actions/checkout@v3
+2022-10-27T05:36:15.4114858Z with:
+2022-10-27T05:36:15.4115122Z repository: tgstation/tgstation
+2022-10-27T05:36:15.4115678Z token: ***
+2022-10-27T05:36:15.4115920Z ssh-strict: true
+2022-10-27T05:36:15.4116197Z persist-credentials: true
+2022-10-27T05:36:15.4116449Z clean: true
+2022-10-27T05:36:15.4116701Z fetch-depth: 1
+2022-10-27T05:36:15.4116934Z lfs: false
+2022-10-27T05:36:15.4117152Z submodules: false
+2022-10-27T05:36:15.4117416Z set-safe-directory: true
+2022-10-27T05:36:15.4117683Z ##[endgroup]
+2022-10-27T05:36:15.7895271Z Syncing repository: tgstation/tgstation
+2022-10-27T05:36:15.7897134Z ##[group]Getting Git version info
+2022-10-27T05:36:15.7897764Z Working directory is '/home/runner/work/tgstation/tgstation'
+2022-10-27T05:36:15.7898346Z [command]/usr/bin/git version
+2022-10-27T05:36:15.8070209Z git version 2.38.1
+2022-10-27T05:36:15.8107380Z ##[endgroup]
+2022-10-27T05:36:15.8130065Z Temporarily overriding HOME='/home/runner/work/_temp/d9a17a0a-ad0c-43af-a749-41248c6e4a98' before making global git config changes
+2022-10-27T05:36:15.8135001Z Adding repository directory to the temporary git global config as a safe directory
+2022-10-27T05:36:15.8140556Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2022-10-27T05:36:15.8198130Z Deleting the contents of '/home/runner/work/tgstation/tgstation'
+2022-10-27T05:36:15.8204575Z ##[group]Initializing the repository
+2022-10-27T05:36:15.8209016Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation
+2022-10-27T05:36:15.8312384Z hint: Using 'master' as the name for the initial branch. This default branch name
+2022-10-27T05:36:15.8313365Z hint: is subject to change. To configure the initial branch name to use in all
+2022-10-27T05:36:15.8313842Z hint: of your new repositories, which will suppress this warning, call:
+2022-10-27T05:36:15.8314167Z hint:
+2022-10-27T05:36:15.8314756Z hint: git config --global init.defaultBranch
+2022-10-27T05:36:15.8315053Z hint:
+2022-10-27T05:36:15.8315481Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
+2022-10-27T05:36:15.8316041Z hint: 'development'. The just-created branch can be renamed via this command:
+2022-10-27T05:36:15.8316354Z hint:
+2022-10-27T05:36:15.8316650Z hint: git branch -m
+2022-10-27T05:36:15.8337002Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/
+2022-10-27T05:36:15.8348424Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation
+2022-10-27T05:36:15.8408157Z ##[endgroup]
+2022-10-27T05:36:15.8408999Z ##[group]Disabling automatic garbage collection
+2022-10-27T05:36:15.8415169Z [command]/usr/bin/git config --local gc.auto 0
+2022-10-27T05:36:15.8455049Z ##[endgroup]
+2022-10-27T05:36:15.8456729Z ##[group]Setting up auth
+2022-10-27T05:36:15.8467019Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2022-10-27T05:36:15.8512305Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
+2022-10-27T05:36:15.8992303Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2022-10-27T05:36:15.9034687Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
+2022-10-27T05:36:15.9317710Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
+2022-10-27T05:36:15.9381545Z ##[endgroup]
+2022-10-27T05:36:15.9383025Z ##[group]Fetching the repository
+2022-10-27T05:36:15.9392584Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +deb5c38b8299183d179ee993b8c40179d42cff9b:refs/remotes/pull/70831/merge
+2022-10-27T05:36:16.3561666Z remote: Enumerating objects: 12549, done.
+2022-10-27T05:36:16.3568675Z remote: Counting objects: 0% (1/12549)
+2022-10-27T05:36:16.3571032Z remote: Counting objects: 1% (126/12549)
+2022-10-27T05:36:16.3576947Z remote: Counting objects: 2% (251/12549)
+2022-10-27T05:36:16.3590550Z remote: Counting objects: 3% (377/12549)
+2022-10-27T05:36:16.3591870Z remote: Counting objects: 4% (502/12549)
+2022-10-27T05:36:16.3629704Z remote: Counting objects: 5% (628/12549)
+2022-10-27T05:36:16.3630882Z remote: Counting objects: 6% (753/12549)
+2022-10-27T05:36:16.3633986Z remote: Counting objects: 7% (879/12549)
+2022-10-27T05:36:16.3662523Z remote: Counting objects: 8% (1004/12549)
+2022-10-27T05:36:16.3663123Z remote: Counting objects: 9% (1130/12549)
+2022-10-27T05:36:16.3664088Z remote: Counting objects: 10% (1255/12549)
+2022-10-27T05:36:16.3664584Z remote: Counting objects: 11% (1381/12549)
+2022-10-27T05:36:16.3665108Z remote: Counting objects: 12% (1506/12549)
+2022-10-27T05:36:16.3665639Z remote: Counting objects: 13% (1632/12549)
+2022-10-27T05:36:16.3666161Z remote: Counting objects: 14% (1757/12549)
+2022-10-27T05:36:16.3666781Z remote: Counting objects: 15% (1883/12549)
+2022-10-27T05:36:16.3667203Z remote: Counting objects: 16% (2008/12549)
+2022-10-27T05:36:16.3667759Z remote: Counting objects: 17% (2134/12549)
+2022-10-27T05:36:16.3668424Z remote: Counting objects: 18% (2259/12549)
+2022-10-27T05:36:16.3668772Z remote: Counting objects: 19% (2385/12549)
+2022-10-27T05:36:16.3686549Z remote: Counting objects: 20% (2510/12549)
+2022-10-27T05:36:16.3687142Z remote: Counting objects: 21% (2636/12549)
+2022-10-27T05:36:16.3693091Z remote: Counting objects: 22% (2761/12549)
+2022-10-27T05:36:16.3695805Z remote: Counting objects: 23% (2887/12549)
+2022-10-27T05:36:16.3696270Z remote: Counting objects: 24% (3012/12549)
+2022-10-27T05:36:16.3696611Z remote: Counting objects: 25% (3138/12549)
+2022-10-27T05:36:16.3696933Z remote: Counting objects: 26% (3263/12549)
+2022-10-27T05:36:16.3697238Z remote: Counting objects: 27% (3389/12549)
+2022-10-27T05:36:16.3697557Z remote: Counting objects: 28% (3514/12549)
+2022-10-27T05:36:16.3700568Z remote: Counting objects: 29% (3640/12549)
+2022-10-27T05:36:16.3701206Z remote: Counting objects: 30% (3765/12549)
+2022-10-27T05:36:16.3701530Z remote: Counting objects: 31% (3891/12549)
+2022-10-27T05:36:16.3702027Z remote: Counting objects: 32% (4016/12549)
+2022-10-27T05:36:16.3704376Z remote: Counting objects: 33% (4142/12549)
+2022-10-27T05:36:16.3705536Z remote: Counting objects: 34% (4267/12549)
+2022-10-27T05:36:16.3706001Z remote: Counting objects: 35% (4393/12549)
+2022-10-27T05:36:16.3706528Z remote: Counting objects: 36% (4518/12549)
+2022-10-27T05:36:16.3707049Z remote: Counting objects: 37% (4644/12549)
+2022-10-27T05:36:16.3707535Z remote: Counting objects: 38% (4769/12549)
+2022-10-27T05:36:16.3707879Z remote: Counting objects: 39% (4895/12549)
+2022-10-27T05:36:16.3708856Z remote: Counting objects: 40% (5020/12549)
+2022-10-27T05:36:16.3714163Z remote: Counting objects: 41% (5146/12549)
+2022-10-27T05:36:16.3716186Z remote: Counting objects: 42% (5271/12549)
+2022-10-27T05:36:16.3720394Z remote: Counting objects: 43% (5397/12549)
+2022-10-27T05:36:16.3725239Z remote: Counting objects: 44% (5522/12549)
+2022-10-27T05:36:16.3727509Z remote: Counting objects: 45% (5648/12549)
+2022-10-27T05:36:16.3728407Z remote: Counting objects: 46% (5773/12549)
+2022-10-27T05:36:16.3733411Z remote: Counting objects: 47% (5899/12549)
+2022-10-27T05:36:16.3734826Z remote: Counting objects: 48% (6024/12549)
+2022-10-27T05:36:16.3736029Z remote: Counting objects: 49% (6150/12549)
+2022-10-27T05:36:16.3736752Z remote: Counting objects: 50% (6275/12549)
+2022-10-27T05:36:16.3737119Z remote: Counting objects: 51% (6400/12549)
+2022-10-27T05:36:16.3740552Z remote: Counting objects: 52% (6526/12549)
+2022-10-27T05:36:16.3741109Z remote: Counting objects: 53% (6651/12549)
+2022-10-27T05:36:16.3742348Z remote: Counting objects: 54% (6777/12549)
+2022-10-27T05:36:16.3745824Z remote: Counting objects: 55% (6902/12549)
+2022-10-27T05:36:16.3746239Z remote: Counting objects: 56% (7028/12549)
+2022-10-27T05:36:16.3748976Z remote: Counting objects: 57% (7153/12549)
+2022-10-27T05:36:16.3752389Z remote: Counting objects: 58% (7279/12549)
+2022-10-27T05:36:16.3753090Z remote: Counting objects: 59% (7404/12549)
+2022-10-27T05:36:16.3753587Z remote: Counting objects: 60% (7530/12549)
+2022-10-27T05:36:16.3753969Z remote: Counting objects: 61% (7655/12549)
+2022-10-27T05:36:16.3755897Z remote: Counting objects: 62% (7781/12549)
+2022-10-27T05:36:16.3758566Z remote: Counting objects: 63% (7906/12549)
+2022-10-27T05:36:16.3760370Z remote: Counting objects: 64% (8032/12549)
+2022-10-27T05:36:16.3763888Z remote: Counting objects: 65% (8157/12549)
+2022-10-27T05:36:16.3765292Z remote: Counting objects: 66% (8283/12549)
+2022-10-27T05:36:16.3765656Z remote: Counting objects: 67% (8408/12549)
+2022-10-27T05:36:16.3767729Z remote: Counting objects: 68% (8534/12549)
+2022-10-27T05:36:16.3769245Z remote: Counting objects: 69% (8659/12549)
+2022-10-27T05:36:16.3772503Z remote: Counting objects: 70% (8785/12549)
+2022-10-27T05:36:16.3773802Z remote: Counting objects: 71% (8910/12549)
+2022-10-27T05:36:16.3774655Z remote: Counting objects: 72% (9036/12549)
+2022-10-27T05:36:16.3775188Z remote: Counting objects: 73% (9161/12549)
+2022-10-27T05:36:16.3778186Z remote: Counting objects: 74% (9287/12549)
+2022-10-27T05:36:16.3778933Z remote: Counting objects: 75% (9412/12549)
+2022-10-27T05:36:16.3780943Z remote: Counting objects: 76% (9538/12549)
+2022-10-27T05:36:16.3781397Z remote: Counting objects: 77% (9663/12549)
+2022-10-27T05:36:16.3782023Z remote: Counting objects: 78% (9789/12549)
+2022-10-27T05:36:16.3782511Z remote: Counting objects: 79% (9914/12549)
+2022-10-27T05:36:16.3784693Z remote: Counting objects: 80% (10040/12549)
+2022-10-27T05:36:16.3785644Z remote: Counting objects: 81% (10165/12549)
+2022-10-27T05:36:16.3786373Z remote: Counting objects: 82% (10291/12549)
+2022-10-27T05:36:16.3787171Z remote: Counting objects: 83% (10416/12549)
+2022-10-27T05:36:16.3788291Z remote: Counting objects: 84% (10542/12549)
+2022-10-27T05:36:16.3789701Z remote: Counting objects: 85% (10667/12549)
+2022-10-27T05:36:16.3791529Z remote: Counting objects: 86% (10793/12549)
+2022-10-27T05:36:16.3792061Z remote: Counting objects: 87% (10918/12549)
+2022-10-27T05:36:16.3792440Z remote: Counting objects: 88% (11044/12549)
+2022-10-27T05:36:16.3792863Z remote: Counting objects: 89% (11169/12549)
+2022-10-27T05:36:16.3793298Z remote: Counting objects: 90% (11295/12549)
+2022-10-27T05:36:16.3795291Z remote: Counting objects: 91% (11420/12549)
+2022-10-27T05:36:16.3796533Z remote: Counting objects: 92% (11546/12549)
+2022-10-27T05:36:16.3804544Z remote: Counting objects: 93% (11671/12549)
+2022-10-27T05:36:16.3804980Z remote: Counting objects: 94% (11797/12549)
+2022-10-27T05:36:16.3809019Z remote: Counting objects: 95% (11922/12549)
+2022-10-27T05:36:16.3812297Z remote: Counting objects: 96% (12048/12549)
+2022-10-27T05:36:16.3812832Z remote: Counting objects: 97% (12173/12549)
+2022-10-27T05:36:16.3813378Z remote: Counting objects: 98% (12299/12549)
+2022-10-27T05:36:16.3822622Z remote: Counting objects: 99% (12424/12549)
+2022-10-27T05:36:16.3823331Z remote: Counting objects: 100% (12549/12549)
+2022-10-27T05:36:16.3823824Z remote: Counting objects: 100% (12549/12549), done.
+2022-10-27T05:36:16.4028339Z remote: Compressing objects: 0% (1/10965)
+2022-10-27T05:36:16.4147149Z remote: Compressing objects: 1% (110/10965)
+2022-10-27T05:36:16.4301715Z remote: Compressing objects: 2% (220/10965)
+2022-10-27T05:36:16.4468059Z remote: Compressing objects: 3% (329/10965)
+2022-10-27T05:36:16.4473482Z remote: Compressing objects: 4% (439/10965)
+2022-10-27T05:36:16.4543661Z remote: Compressing objects: 5% (549/10965)
+2022-10-27T05:36:16.4673953Z remote: Compressing objects: 6% (658/10965)
+2022-10-27T05:36:16.4966036Z remote: Compressing objects: 7% (768/10965)
+2022-10-27T05:36:16.5309645Z remote: Compressing objects: 8% (878/10965)
+2022-10-27T05:36:16.5681068Z remote: Compressing objects: 9% (987/10965)
+2022-10-27T05:36:16.6184895Z remote: Compressing objects: 10% (1097/10965)
+2022-10-27T05:36:17.1107044Z remote: Compressing objects: 11% (1207/10965)
+2022-10-27T05:36:17.2060689Z remote: Compressing objects: 12% (1316/10965)
+2022-10-27T05:36:17.3922950Z remote: Compressing objects: 13% (1426/10965)
+2022-10-27T05:36:17.3936933Z remote: Compressing objects: 13% (1501/10965)
+2022-10-27T05:36:17.4040840Z remote: Compressing objects: 14% (1536/10965)
+2022-10-27T05:36:17.4460571Z remote: Compressing objects: 15% (1645/10965)
+2022-10-27T05:36:17.4619358Z remote: Compressing objects: 16% (1755/10965)
+2022-10-27T05:36:17.4790041Z remote: Compressing objects: 17% (1865/10965)
+2022-10-27T05:36:17.4934830Z remote: Compressing objects: 18% (1974/10965)
+2022-10-27T05:36:17.5257200Z remote: Compressing objects: 19% (2084/10965)
+2022-10-27T05:36:17.5516516Z remote: Compressing objects: 20% (2193/10965)
+2022-10-27T05:36:17.5561317Z remote: Compressing objects: 21% (2303/10965)
+2022-10-27T05:36:17.5795622Z remote: Compressing objects: 22% (2413/10965)
+2022-10-27T05:36:17.6401406Z remote: Compressing objects: 23% (2522/10965)
+2022-10-27T05:36:17.6654061Z remote: Compressing objects: 24% (2632/10965)
+2022-10-27T05:36:17.6828486Z remote: Compressing objects: 25% (2742/10965)
+2022-10-27T05:36:17.7044480Z remote: Compressing objects: 26% (2851/10965)
+2022-10-27T05:36:17.7222440Z remote: Compressing objects: 27% (2961/10965)
+2022-10-27T05:36:17.7713784Z remote: Compressing objects: 28% (3071/10965)
+2022-10-27T05:36:17.7980639Z remote: Compressing objects: 29% (3180/10965)
+2022-10-27T05:36:17.8260312Z remote: Compressing objects: 30% (3290/10965)
+2022-10-27T05:36:17.8653550Z remote: Compressing objects: 31% (3400/10965)
+2022-10-27T05:36:17.8786759Z remote: Compressing objects: 32% (3509/10965)
+2022-10-27T05:36:17.9127781Z remote: Compressing objects: 33% (3619/10965)
+2022-10-27T05:36:17.9521720Z remote: Compressing objects: 34% (3729/10965)
+2022-10-27T05:36:17.9910080Z remote: Compressing objects: 35% (3838/10965)
+2022-10-27T05:36:18.0204335Z remote: Compressing objects: 36% (3948/10965)
+2022-10-27T05:36:18.0597196Z remote: Compressing objects: 37% (4058/10965)
+2022-10-27T05:36:18.0964696Z remote: Compressing objects: 38% (4167/10965)
+2022-10-27T05:36:18.1358555Z remote: Compressing objects: 39% (4277/10965)
+2022-10-27T05:36:18.1549596Z remote: Compressing objects: 40% (4386/10965)
+2022-10-27T05:36:18.1861724Z remote: Compressing objects: 41% (4496/10965)
+2022-10-27T05:36:18.2100005Z remote: Compressing objects: 42% (4606/10965)
+2022-10-27T05:36:18.2479949Z remote: Compressing objects: 43% (4715/10965)
+2022-10-27T05:36:18.2787209Z remote: Compressing objects: 44% (4825/10965)
+2022-10-27T05:36:18.3002217Z remote: Compressing objects: 45% (4935/10965)
+2022-10-27T05:36:18.3304059Z remote: Compressing objects: 46% (5044/10965)
+2022-10-27T05:36:18.3627827Z remote: Compressing objects: 47% (5154/10965)
+2022-10-27T05:36:18.3769101Z remote: Compressing objects: 48% (5264/10965)
+2022-10-27T05:36:18.3833369Z remote: Compressing objects: 49% (5373/10965)
+2022-10-27T05:36:18.4021233Z remote: Compressing objects: 49% (5403/10965)
+2022-10-27T05:36:18.4232973Z remote: Compressing objects: 50% (5483/10965)
+2022-10-27T05:36:18.4496802Z remote: Compressing objects: 51% (5593/10965)
+2022-10-27T05:36:18.4760000Z remote: Compressing objects: 52% (5702/10965)
+2022-10-27T05:36:18.5061635Z remote: Compressing objects: 53% (5812/10965)
+2022-10-27T05:36:18.5273446Z remote: Compressing objects: 54% (5922/10965)
+2022-10-27T05:36:18.5546118Z remote: Compressing objects: 55% (6031/10965)
+2022-10-27T05:36:18.5809381Z remote: Compressing objects: 56% (6141/10965)
+2022-10-27T05:36:18.6147456Z remote: Compressing objects: 57% (6251/10965)
+2022-10-27T05:36:18.6311320Z remote: Compressing objects: 58% (6360/10965)
+2022-10-27T05:36:18.6614446Z remote: Compressing objects: 59% (6470/10965)
+2022-10-27T05:36:18.6930160Z remote: Compressing objects: 60% (6579/10965)
+2022-10-27T05:36:18.7250175Z remote: Compressing objects: 61% (6689/10965)
+2022-10-27T05:36:18.7426580Z remote: Compressing objects: 62% (6799/10965)
+2022-10-27T05:36:18.7654931Z remote: Compressing objects: 63% (6908/10965)
+2022-10-27T05:36:18.8010761Z remote: Compressing objects: 64% (7018/10965)
+2022-10-27T05:36:18.8152846Z remote: Compressing objects: 65% (7128/10965)
+2022-10-27T05:36:18.8473982Z remote: Compressing objects: 66% (7237/10965)
+2022-10-27T05:36:18.8539428Z remote: Compressing objects: 67% (7347/10965)
+2022-10-27T05:36:18.8540163Z remote: Compressing objects: 68% (7457/10965)
+2022-10-27T05:36:18.8621595Z remote: Compressing objects: 69% (7566/10965)
+2022-10-27T05:36:18.8622122Z remote: Compressing objects: 70% (7676/10965)
+2022-10-27T05:36:18.8625855Z remote: Compressing objects: 71% (7786/10965)
+2022-10-27T05:36:18.8626847Z remote: Compressing objects: 72% (7895/10965)
+2022-10-27T05:36:18.8627930Z remote: Compressing objects: 73% (8005/10965)
+2022-10-27T05:36:18.8629224Z remote: Compressing objects: 74% (8115/10965)
+2022-10-27T05:36:18.8630011Z remote: Compressing objects: 75% (8224/10965)
+2022-10-27T05:36:18.8630611Z remote: Compressing objects: 76% (8334/10965)
+2022-10-27T05:36:18.8658429Z remote: Compressing objects: 77% (8444/10965)
+2022-10-27T05:36:18.8659128Z remote: Compressing objects: 78% (8553/10965)
+2022-10-27T05:36:18.8659555Z remote: Compressing objects: 79% (8663/10965)
+2022-10-27T05:36:18.8688825Z remote: Compressing objects: 80% (8772/10965)
+2022-10-27T05:36:18.8779984Z remote: Compressing objects: 81% (8882/10965)
+2022-10-27T05:36:18.8780591Z remote: Compressing objects: 82% (8992/10965)
+2022-10-27T05:36:18.8839685Z remote: Compressing objects: 83% (9101/10965)
+2022-10-27T05:36:18.8906377Z remote: Compressing objects: 84% (9211/10965)
+2022-10-27T05:36:18.8909267Z remote: Compressing objects: 85% (9321/10965)
+2022-10-27T05:36:18.8909956Z remote: Compressing objects: 86% (9430/10965)
+2022-10-27T05:36:18.8910536Z remote: Compressing objects: 87% (9540/10965)
+2022-10-27T05:36:18.8911145Z remote: Compressing objects: 88% (9650/10965)
+2022-10-27T05:36:18.8911776Z remote: Compressing objects: 89% (9759/10965)
+2022-10-27T05:36:18.8951128Z remote: Compressing objects: 90% (9869/10965)
+2022-10-27T05:36:18.9127733Z remote: Compressing objects: 91% (9979/10965)
+2022-10-27T05:36:18.9128171Z remote: Compressing objects: 92% (10088/10965)
+2022-10-27T05:36:18.9128609Z remote: Compressing objects: 93% (10198/10965)
+2022-10-27T05:36:18.9133927Z remote: Compressing objects: 94% (10308/10965)
+2022-10-27T05:36:18.9152257Z remote: Compressing objects: 95% (10417/10965)
+2022-10-27T05:36:18.9166692Z remote: Compressing objects: 96% (10527/10965)
+2022-10-27T05:36:18.9178013Z remote: Compressing objects: 97% (10637/10965)
+2022-10-27T05:36:18.9188202Z remote: Compressing objects: 98% (10746/10965)
+2022-10-27T05:36:18.9202595Z remote: Compressing objects: 99% (10856/10965)
+2022-10-27T05:36:18.9203422Z remote: Compressing objects: 100% (10965/10965)
+2022-10-27T05:36:18.9204293Z remote: Compressing objects: 100% (10965/10965), done.
+2022-10-27T05:36:18.9643118Z Receiving objects: 0% (1/12549)
+2022-10-27T05:36:19.5343020Z Receiving objects: 1% (126/12549)
+2022-10-27T05:36:19.5547619Z Receiving objects: 2% (251/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.6802499Z Receiving objects: 3% (377/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.6848774Z Receiving objects: 4% (502/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.6918314Z Receiving objects: 5% (628/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7013063Z Receiving objects: 6% (753/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7286047Z Receiving objects: 7% (879/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7436763Z Receiving objects: 8% (1004/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7550028Z Receiving objects: 9% (1130/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7787460Z Receiving objects: 10% (1255/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7893592Z Receiving objects: 11% (1381/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7964417Z Receiving objects: 12% (1506/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.7972529Z Receiving objects: 13% (1632/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.8080879Z Receiving objects: 14% (1757/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.8345622Z Receiving objects: 15% (1883/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.8638441Z Receiving objects: 16% (2008/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.8936447Z Receiving objects: 17% (2134/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.9178154Z Receiving objects: 18% (2259/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.9260786Z Receiving objects: 19% (2385/12549), 1.75 MiB | 3.48 MiB/s
+2022-10-27T05:36:19.9393291Z Receiving objects: 19% (2435/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:19.9632368Z Receiving objects: 20% (2510/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:19.9921544Z Receiving objects: 21% (2636/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.0107217Z Receiving objects: 22% (2761/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.0369762Z Receiving objects: 23% (2887/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.0569122Z Receiving objects: 24% (3012/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.0723597Z Receiving objects: 25% (3138/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.0869934Z Receiving objects: 26% (3263/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.1140123Z Receiving objects: 27% (3389/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.1316832Z Receiving objects: 28% (3514/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.1426255Z Receiving objects: 29% (3640/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.1574856Z Receiving objects: 30% (3765/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.1690424Z Receiving objects: 31% (3891/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.1856759Z Receiving objects: 32% (4016/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.2003719Z Receiving objects: 33% (4142/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.2128451Z Receiving objects: 34% (4267/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.2373132Z Receiving objects: 35% (4393/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.2632141Z Receiving objects: 36% (4518/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.2939431Z Receiving objects: 37% (4644/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.3274915Z Receiving objects: 38% (4769/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.3458463Z Receiving objects: 39% (4895/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.3681513Z Receiving objects: 40% (5020/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.3843488Z Receiving objects: 41% (5146/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.4250181Z Receiving objects: 42% (5271/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.4536213Z Receiving objects: 43% (5397/12549), 5.83 MiB | 5.83 MiB/s
+2022-10-27T05:36:20.4617089Z Receiving objects: 44% (5522/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.4783619Z Receiving objects: 45% (5648/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.4859599Z Receiving objects: 46% (5773/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.4931650Z Receiving objects: 47% (5899/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.5106605Z Receiving objects: 48% (6024/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.5200970Z Receiving objects: 49% (6150/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.5422557Z Receiving objects: 50% (6275/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:20.6547058Z Receiving objects: 51% (6400/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:21.0443771Z Receiving objects: 52% (6526/12549), 10.95 MiB | 7.30 MiB/s
+2022-10-27T05:36:21.1817778Z Receiving objects: 52% (6647/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.2302284Z Receiving objects: 53% (6651/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.2489598Z Receiving objects: 54% (6777/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.3284868Z Receiving objects: 55% (6902/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.3646886Z Receiving objects: 56% (7028/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.3983650Z Receiving objects: 57% (7153/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.4349926Z Receiving objects: 58% (7279/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.4697848Z Receiving objects: 59% (7404/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.4885011Z Receiving objects: 60% (7530/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.5194540Z Receiving objects: 61% (7655/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.9296042Z Receiving objects: 62% (7781/12549), 28.68 MiB | 13.54 MiB/s
+2022-10-27T05:36:21.9417402Z Receiving objects: 62% (7892/12549), 52.44 MiB | 18.21 MiB/s
+2022-10-27T05:36:22.2486679Z Receiving objects: 63% (7906/12549), 52.44 MiB | 18.21 MiB/s
+2022-10-27T05:36:22.6090348Z Receiving objects: 64% (8032/12549), 52.44 MiB | 18.21 MiB/s
+2022-10-27T05:36:22.6661080Z Receiving objects: 65% (8157/12549), 75.07 MiB | 22.21 MiB/s
+2022-10-27T05:36:22.7208247Z Receiving objects: 66% (8283/12549), 75.07 MiB | 22.21 MiB/s
+2022-10-27T05:36:22.7863776Z Receiving objects: 67% (8408/12549), 75.07 MiB | 22.21 MiB/s
+2022-10-27T05:36:22.8373169Z Receiving objects: 68% (8534/12549), 75.07 MiB | 22.21 MiB/s
+2022-10-27T05:36:22.8956416Z Receiving objects: 69% (8659/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:22.9260929Z Receiving objects: 70% (8785/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:22.9590581Z Receiving objects: 70% (8837/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.0657790Z Receiving objects: 71% (8910/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.0903691Z Receiving objects: 72% (9036/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.0992227Z Receiving objects: 73% (9161/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.1133106Z Receiving objects: 74% (9287/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.1304261Z Receiving objects: 75% (9412/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.1587550Z Receiving objects: 76% (9538/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.2736992Z Receiving objects: 77% (9663/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.2740076Z Receiving objects: 78% (9789/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.2994632Z Receiving objects: 79% (9914/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.3419146Z Receiving objects: 80% (10040/12549), 101.16 MiB | 26.07 MiB/s
+2022-10-27T05:36:23.3507115Z Receiving objects: 81% (10165/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.3603382Z Receiving objects: 82% (10291/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.3686272Z Receiving objects: 83% (10416/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.3750488Z Receiving objects: 84% (10542/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.3820341Z Receiving objects: 85% (10667/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.3895988Z Receiving objects: 86% (10793/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.3970448Z Receiving objects: 87% (10918/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.4142134Z Receiving objects: 88% (11044/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.4796088Z Receiving objects: 89% (11169/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5287511Z Receiving objects: 90% (11295/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5336228Z Receiving objects: 91% (11420/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5378046Z Receiving objects: 92% (11546/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5440975Z Receiving objects: 93% (11671/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5509602Z Receiving objects: 94% (11797/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5572754Z Receiving objects: 95% (11922/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5615446Z Receiving objects: 96% (12048/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5654171Z Receiving objects: 97% (12173/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5827062Z Receiving objects: 98% (12299/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5872285Z Receiving objects: 99% (12424/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5873322Z remote: Total 12549 (delta 1601), reused 7183 (delta 1450), pack-reused 0
+2022-10-27T05:36:23.5902379Z Receiving objects: 100% (12549/12549), 126.98 MiB | 28.99 MiB/s
+2022-10-27T05:36:23.5903011Z Receiving objects: 100% (12549/12549), 139.13 MiB | 29.83 MiB/s, done.
+2022-10-27T05:36:23.5950353Z Resolving deltas: 0% (0/1601)
+2022-10-27T05:36:23.6009625Z Resolving deltas: 1% (17/1601)
+2022-10-27T05:36:23.6040033Z Resolving deltas: 2% (33/1601)
+2022-10-27T05:36:23.6057851Z Resolving deltas: 3% (49/1601)
+2022-10-27T05:36:23.6072426Z Resolving deltas: 4% (65/1601)
+2022-10-27T05:36:23.6083467Z Resolving deltas: 5% (81/1601)
+2022-10-27T05:36:23.6093371Z Resolving deltas: 6% (97/1601)
+2022-10-27T05:36:23.6106250Z Resolving deltas: 7% (113/1601)
+2022-10-27T05:36:23.6119016Z Resolving deltas: 8% (129/1601)
+2022-10-27T05:36:23.6129503Z Resolving deltas: 9% (145/1601)
+2022-10-27T05:36:23.6155198Z Resolving deltas: 10% (161/1601)
+2022-10-27T05:36:23.6353928Z Resolving deltas: 11% (177/1601)
+2022-10-27T05:36:23.6373203Z Resolving deltas: 12% (193/1601)
+2022-10-27T05:36:23.6378714Z Resolving deltas: 13% (209/1601)
+2022-10-27T05:36:23.6386654Z Resolving deltas: 14% (225/1601)
+2022-10-27T05:36:23.6389141Z Resolving deltas: 15% (241/1601)
+2022-10-27T05:36:23.6389674Z Resolving deltas: 16% (257/1601)
+2022-10-27T05:36:23.6392302Z Resolving deltas: 17% (273/1601)
+2022-10-27T05:36:23.6392861Z Resolving deltas: 18% (289/1601)
+2022-10-27T05:36:23.6394168Z Resolving deltas: 19% (305/1601)
+2022-10-27T05:36:23.6394627Z Resolving deltas: 20% (321/1601)
+2022-10-27T05:36:23.6395739Z Resolving deltas: 21% (337/1601)
+2022-10-27T05:36:23.6397738Z Resolving deltas: 22% (353/1601)
+2022-10-27T05:36:23.6418913Z Resolving deltas: 23% (369/1601)
+2022-10-27T05:36:23.6431860Z Resolving deltas: 24% (385/1601)
+2022-10-27T05:36:23.6445159Z Resolving deltas: 25% (401/1601)
+2022-10-27T05:36:23.6470106Z Resolving deltas: 26% (417/1601)
+2022-10-27T05:36:23.6478765Z Resolving deltas: 27% (433/1601)
+2022-10-27T05:36:23.6488812Z Resolving deltas: 28% (449/1601)
+2022-10-27T05:36:23.6536619Z Resolving deltas: 29% (465/1601)
+2022-10-27T05:36:23.6642121Z Resolving deltas: 30% (481/1601)
+2022-10-27T05:36:23.6649990Z Resolving deltas: 31% (497/1601)
+2022-10-27T05:36:23.6667237Z Resolving deltas: 32% (513/1601)
+2022-10-27T05:36:23.6686758Z Resolving deltas: 33% (529/1601)
+2022-10-27T05:36:23.6707887Z Resolving deltas: 34% (545/1601)
+2022-10-27T05:36:23.6725136Z Resolving deltas: 35% (561/1601)
+2022-10-27T05:36:23.6748072Z Resolving deltas: 36% (577/1601)
+2022-10-27T05:36:23.6779790Z Resolving deltas: 37% (593/1601)
+2022-10-27T05:36:23.6799195Z Resolving deltas: 38% (609/1601)
+2022-10-27T05:36:23.6806737Z Resolving deltas: 39% (625/1601)
+2022-10-27T05:36:23.6807261Z Resolving deltas: 40% (641/1601)
+2022-10-27T05:36:23.6808652Z Resolving deltas: 41% (657/1601)
+2022-10-27T05:36:23.6809133Z Resolving deltas: 42% (673/1601)
+2022-10-27T05:36:23.6810413Z Resolving deltas: 43% (689/1601)
+2022-10-27T05:36:23.6810931Z Resolving deltas: 44% (705/1601)
+2022-10-27T05:36:23.6813160Z Resolving deltas: 45% (721/1601)
+2022-10-27T05:36:23.6813648Z Resolving deltas: 46% (737/1601)
+2022-10-27T05:36:23.6815230Z Resolving deltas: 47% (753/1601)
+2022-10-27T05:36:23.6815825Z Resolving deltas: 48% (769/1601)
+2022-10-27T05:36:23.6816545Z Resolving deltas: 49% (785/1601)
+2022-10-27T05:36:23.6816996Z Resolving deltas: 50% (801/1601)
+2022-10-27T05:36:23.6820662Z Resolving deltas: 51% (817/1601)
+2022-10-27T05:36:23.6826869Z Resolving deltas: 52% (833/1601)
+2022-10-27T05:36:23.6834350Z Resolving deltas: 53% (849/1601)
+2022-10-27T05:36:23.6838690Z Resolving deltas: 54% (865/1601)
+2022-10-27T05:36:23.6901937Z Resolving deltas: 55% (881/1601)
+2022-10-27T05:36:23.6910273Z Resolving deltas: 56% (897/1601)
+2022-10-27T05:36:23.6914911Z Resolving deltas: 57% (913/1601)
+2022-10-27T05:36:23.6919959Z Resolving deltas: 58% (929/1601)
+2022-10-27T05:36:23.6925039Z Resolving deltas: 59% (945/1601)
+2022-10-27T05:36:23.6930423Z Resolving deltas: 60% (961/1601)
+2022-10-27T05:36:23.6936636Z Resolving deltas: 61% (977/1601)
+2022-10-27T05:36:23.6940948Z Resolving deltas: 62% (993/1601)
+2022-10-27T05:36:23.6945203Z Resolving deltas: 63% (1009/1601)
+2022-10-27T05:36:23.6950455Z Resolving deltas: 64% (1025/1601)
+2022-10-27T05:36:23.6955894Z Resolving deltas: 65% (1041/1601)
+2022-10-27T05:36:23.6963475Z Resolving deltas: 66% (1057/1601)
+2022-10-27T05:36:23.6971175Z Resolving deltas: 67% (1073/1601)
+2022-10-27T05:36:23.6976635Z Resolving deltas: 68% (1089/1601)
+2022-10-27T05:36:23.6981312Z Resolving deltas: 69% (1105/1601)
+2022-10-27T05:36:23.6985904Z Resolving deltas: 70% (1121/1601)
+2022-10-27T05:36:23.6992594Z Resolving deltas: 71% (1137/1601)
+2022-10-27T05:36:23.6998192Z Resolving deltas: 72% (1153/1601)
+2022-10-27T05:36:23.7007380Z Resolving deltas: 73% (1169/1601)
+2022-10-27T05:36:23.7011828Z Resolving deltas: 74% (1185/1601)
+2022-10-27T05:36:23.7017464Z Resolving deltas: 75% (1201/1601)
+2022-10-27T05:36:23.7022072Z Resolving deltas: 76% (1217/1601)
+2022-10-27T05:36:23.7028804Z Resolving deltas: 77% (1233/1601)
+2022-10-27T05:36:23.7036183Z Resolving deltas: 78% (1249/1601)
+2022-10-27T05:36:23.7045495Z Resolving deltas: 79% (1265/1601)
+2022-10-27T05:36:23.7053133Z Resolving deltas: 80% (1281/1601)
+2022-10-27T05:36:23.7060580Z Resolving deltas: 81% (1297/1601)
+2022-10-27T05:36:23.7068147Z Resolving deltas: 82% (1313/1601)
+2022-10-27T05:36:23.7076976Z Resolving deltas: 83% (1329/1601)
+2022-10-27T05:36:23.7086492Z Resolving deltas: 84% (1345/1601)
+2022-10-27T05:36:23.7095647Z Resolving deltas: 85% (1361/1601)
+2022-10-27T05:36:23.7105602Z Resolving deltas: 86% (1377/1601)
+2022-10-27T05:36:23.7115126Z Resolving deltas: 87% (1393/1601)
+2022-10-27T05:36:23.7126091Z Resolving deltas: 88% (1409/1601)
+2022-10-27T05:36:23.7140284Z Resolving deltas: 89% (1425/1601)
+2022-10-27T05:36:23.7152944Z Resolving deltas: 90% (1441/1601)
+2022-10-27T05:36:23.7166471Z Resolving deltas: 91% (1457/1601)
+2022-10-27T05:36:23.7182235Z Resolving deltas: 92% (1473/1601)
+2022-10-27T05:36:23.7193741Z Resolving deltas: 93% (1489/1601)
+2022-10-27T05:36:23.7200908Z Resolving deltas: 94% (1505/1601)
+2022-10-27T05:36:23.7206009Z Resolving deltas: 95% (1521/1601)
+2022-10-27T05:36:23.7217441Z Resolving deltas: 96% (1537/1601)
+2022-10-27T05:36:23.7227139Z Resolving deltas: 97% (1553/1601)
+2022-10-27T05:36:23.7232360Z Resolving deltas: 98% (1569/1601)
+2022-10-27T05:36:23.7237277Z Resolving deltas: 99% (1585/1601)
+2022-10-27T05:36:23.7260045Z Resolving deltas: 100% (1601/1601)
+2022-10-27T05:36:23.7260585Z Resolving deltas: 100% (1601/1601), done.
+2022-10-27T05:36:24.1836658Z From https://github.com/tgstation/tgstation
+2022-10-27T05:36:24.1841998Z * [new ref] deb5c38b8299183d179ee993b8c40179d42cff9b -> pull/70831/merge
+2022-10-27T05:36:24.1863576Z ##[endgroup]
+2022-10-27T05:36:24.1864401Z ##[group]Determining the checkout info
+2022-10-27T05:36:24.1865502Z ##[endgroup]
+2022-10-27T05:36:24.1866142Z ##[group]Checking out the ref
+2022-10-27T05:36:24.1881799Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/70831/merge
+2022-10-27T05:36:25.2712079Z Updating files: 63% (7341/11578)
+2022-10-27T05:36:25.2955103Z Updating files: 64% (7410/11578)
+2022-10-27T05:36:25.3182103Z Updating files: 65% (7526/11578)
+2022-10-27T05:36:25.3457683Z Updating files: 66% (7642/11578)
+2022-10-27T05:36:25.3634985Z Updating files: 67% (7758/11578)
+2022-10-27T05:36:25.3911682Z Updating files: 68% (7874/11578)
+2022-10-27T05:36:25.4140426Z Updating files: 69% (7989/11578)
+2022-10-27T05:36:25.4605828Z Updating files: 70% (8105/11578)
+2022-10-27T05:36:25.4694230Z Updating files: 71% (8221/11578)
+2022-10-27T05:36:25.4797031Z Updating files: 72% (8337/11578)
+2022-10-27T05:36:25.4884154Z Updating files: 73% (8452/11578)
+2022-10-27T05:36:25.4964143Z Updating files: 74% (8568/11578)
+2022-10-27T05:36:25.5012437Z Updating files: 75% (8684/11578)
+2022-10-27T05:36:25.5524946Z Updating files: 76% (8800/11578)
+2022-10-27T05:36:25.5631017Z Updating files: 77% (8916/11578)
+2022-10-27T05:36:25.5661878Z Updating files: 78% (9031/11578)
+2022-10-27T05:36:25.5900449Z Updating files: 79% (9147/11578)
+2022-10-27T05:36:25.5995293Z Updating files: 80% (9263/11578)
+2022-10-27T05:36:25.6065920Z Updating files: 81% (9379/11578)
+2022-10-27T05:36:25.6129511Z Updating files: 82% (9494/11578)
+2022-10-27T05:36:25.6183947Z Updating files: 83% (9610/11578)
+2022-10-27T05:36:25.6242865Z Updating files: 84% (9726/11578)
+2022-10-27T05:36:25.6304255Z Updating files: 85% (9842/11578)
+2022-10-27T05:36:25.6362317Z Updating files: 86% (9958/11578)
+2022-10-27T05:36:25.6419669Z Updating files: 87% (10073/11578)
+2022-10-27T05:36:25.6513754Z Updating files: 88% (10189/11578)
+2022-10-27T05:36:25.6719291Z Updating files: 89% (10305/11578)
+2022-10-27T05:36:25.6854029Z Updating files: 90% (10421/11578)
+2022-10-27T05:36:25.7114915Z Updating files: 91% (10536/11578)
+2022-10-27T05:36:25.7172492Z Updating files: 92% (10652/11578)
+2022-10-27T05:36:25.7239118Z Updating files: 93% (10768/11578)
+2022-10-27T05:36:25.7311506Z Updating files: 94% (10884/11578)
+2022-10-27T05:36:25.7377728Z Updating files: 95% (11000/11578)
+2022-10-27T05:36:25.7429645Z Updating files: 96% (11115/11578)
+2022-10-27T05:36:25.7489697Z Updating files: 97% (11231/11578)
+2022-10-27T05:36:25.7601389Z Updating files: 98% (11347/11578)
+2022-10-27T05:36:25.7673788Z Updating files: 99% (11463/11578)
+2022-10-27T05:36:25.7674090Z Updating files: 100% (11578/11578)
+2022-10-27T05:36:25.7675326Z Updating files: 100% (11578/11578), done.
+2022-10-27T05:36:25.7839712Z Note: switching to 'refs/remotes/pull/70831/merge'.
+2022-10-27T05:36:25.7840374Z
+2022-10-27T05:36:25.7841364Z You are in 'detached HEAD' state. You can look around, make experimental
+2022-10-27T05:36:25.7842184Z changes and commit them, and you can discard any commits you make in this
+2022-10-27T05:36:25.7842925Z state without impacting any branches by switching back to a branch.
+2022-10-27T05:36:25.7843345Z
+2022-10-27T05:36:25.7843670Z If you want to create a new branch to retain commits you create, you may
+2022-10-27T05:36:25.7844575Z do so (now or later) by using -c with the switch command. Example:
+2022-10-27T05:36:25.7844969Z
+2022-10-27T05:36:25.7845632Z git switch -c
+2022-10-27T05:36:25.7845974Z
+2022-10-27T05:36:25.7846184Z Or undo this operation with:
+2022-10-27T05:36:25.7846473Z
+2022-10-27T05:36:25.7846644Z git switch -
+2022-10-27T05:36:25.7846900Z
+2022-10-27T05:36:25.7847288Z Turn off this advice by setting config variable advice.detachedHead to false
+2022-10-27T05:36:25.7847742Z
+2022-10-27T05:36:25.7848217Z HEAD is now at deb5c38 Merge 9618404f9ee7f23400ea062d5dacb13fda53ca75 into 8bb8ca9d67375d0bd58ceacbc6346f9e92fef872
+2022-10-27T05:36:25.7902871Z ##[endgroup]
+2022-10-27T05:36:25.7967741Z [command]/usr/bin/git log -1 --format='%H'
+2022-10-27T05:36:25.8007456Z 'deb5c38b8299183d179ee993b8c40179d42cff9b'
+2022-10-27T05:36:25.8392860Z ##[group]Run actions/cache@v3
+2022-10-27T05:36:25.8393138Z with:
+2022-10-27T05:36:25.8393346Z path: ~/BYOND
+2022-10-27T05:36:25.8393591Z key: Linux-byond-
+2022-10-27T05:36:25.8393834Z ##[endgroup]
+2022-10-27T05:36:26.3683068Z Received 4090426 of 4090426 (100.0%), 27.9 MBs/sec
+2022-10-27T05:36:26.3684533Z Cache Size: ~4 MB (4090426 B)
+2022-10-27T05:36:26.3746779Z [command]/usr/bin/tar --use-compress-program unzstd -xf /home/runner/work/_temp/937f79f1-ebfc-47b7-917c-b2d972625200/cache.tzst -P -C /home/runner/work/tgstation/tgstation
+2022-10-27T05:36:26.4280190Z Cache restored successfully
+2022-10-27T05:36:26.4546771Z Cache restored from key: Linux-byond-
+2022-10-27T05:36:26.4726864Z ##[group]Run sudo systemctl start mysql
+2022-10-27T05:36:26.4727297Z [36;1msudo systemctl start mysql[0m
+2022-10-27T05:36:26.4727646Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci;'[0m
+2022-10-27T05:36:26.4728040Z [36;1mmysql -u root -proot tg_ci < SQL/tgstation_schema.sql[0m
+2022-10-27T05:36:26.4728458Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;'[0m
+2022-10-27T05:36:26.4728905Z [36;1mmysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql[0m
+2022-10-27T05:36:26.4792977Z shell: /usr/bin/bash -e {0}
+2022-10-27T05:36:26.4793288Z ##[endgroup]
+2022-10-27T05:36:27.7358559Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-10-27T05:36:27.7519454Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-10-27T05:36:28.2899746Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-10-27T05:36:28.2998385Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-10-27T05:36:28.8181912Z ##[group]Run sudo dpkg --add-architecture i386
+2022-10-27T05:36:28.8182331Z [36;1msudo dpkg --add-architecture i386[0m
+2022-10-27T05:36:28.8182655Z [36;1msudo apt update || true[0m
+2022-10-27T05:36:28.8183020Z [36;1msudo apt install -o APT::Immediate-Configure=false libssl1.1:i386[0m
+2022-10-27T05:36:28.8183412Z [36;1mbash tools/ci/install_rust_g.sh[0m
+2022-10-27T05:36:28.8240260Z shell: /usr/bin/bash -e {0}
+2022-10-27T05:36:28.8240552Z ##[endgroup]
+2022-10-27T05:36:28.9970393Z
+2022-10-27T05:36:28.9971552Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+2022-10-27T05:36:28.9972082Z
+2022-10-27T05:36:29.1160704Z Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease
+2022-10-27T05:36:29.1162032Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
+2022-10-27T05:36:29.1173928Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
+2022-10-27T05:36:29.1237735Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
+2022-10-27T05:36:29.1254316Z Get:5 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease [10.5 kB]
+2022-10-27T05:36:29.3429595Z Hit:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease
+2022-10-27T05:36:29.3928104Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2196 kB]
+2022-10-27T05:36:29.4661370Z Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [745 kB]
+2022-10-27T05:36:29.4777864Z Get:9 http://azure.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [385 kB]
+2022-10-27T05:36:29.4885520Z Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.0 kB]
+2022-10-27T05:36:29.4922985Z Get:11 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1381 kB]
+2022-10-27T05:36:29.5179949Z Get:12 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted i386 Packages [26.6 kB]
+2022-10-27T05:36:29.5181037Z Get:13 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [196 kB]
+2022-10-27T05:36:29.5217775Z Get:14 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [600 B]
+2022-10-27T05:36:29.5261778Z Get:15 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [697 kB]
+2022-10-27T05:36:29.5395090Z Get:16 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [972 kB]
+2022-10-27T05:36:29.6000339Z Get:17 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [221 kB]
+2022-10-27T05:36:29.6049853Z Get:18 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [21.8 kB]
+2022-10-27T05:36:29.6070146Z Get:19 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [29.9 kB]
+2022-10-27T05:36:29.6088570Z Get:20 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse i386 Packages [9820 B]
+2022-10-27T05:36:29.6106647Z Get:21 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [7940 B]
+2022-10-27T05:36:29.6123231Z Get:22 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [664 B]
+2022-10-27T05:36:29.6149675Z Get:23 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]
+2022-10-27T05:36:29.6174434Z Get:24 http://azure.archive.ubuntu.com/ubuntu focal-backports/main i386 Packages [36.1 kB]
+2022-10-27T05:36:29.6192255Z Get:25 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
+2022-10-27T05:36:29.6212125Z Get:26 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe i386 Packages [13.5 kB]
+2022-10-27T05:36:29.6231501Z Get:27 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [23.9 kB]
+2022-10-27T05:36:29.6249547Z Get:28 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [860 B]
+2022-10-27T05:36:29.6279478Z Get:29 https://packages.microsoft.com/ubuntu/20.04/prod focal/main armhf Packages [28.4 kB]
+2022-10-27T05:36:29.6299516Z Get:30 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages [200 kB]
+2022-10-27T05:36:29.6330517Z Get:31 https://packages.microsoft.com/ubuntu/20.04/prod focal/main arm64 Packages [40.0 kB]
+2022-10-27T05:36:29.7542573Z Get:32 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [1821 kB]
+2022-10-27T05:36:29.7753589Z Get:33 http://azure.archive.ubuntu.com/ubuntu focal-security/main i386 Packages [514 kB]
+2022-10-27T05:36:29.8302849Z Get:34 http://azure.archive.ubuntu.com/ubuntu focal-security/main Translation-en [301 kB]
+2022-10-27T05:36:29.8323140Z Get:35 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.2 kB]
+2022-10-27T05:36:29.8354364Z Get:36 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1289 kB]
+2022-10-27T05:36:29.8541844Z Get:37 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted Translation-en [183 kB]
+2022-10-27T05:36:29.8606075Z Get:38 http://azure.archive.ubuntu.com/ubuntu focal-security/universe i386 Packages [566 kB]
+2022-10-27T05:36:29.8700343Z Get:39 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [743 kB]
+2022-10-27T05:36:29.8786533Z Get:40 http://azure.archive.ubuntu.com/ubuntu focal-security/universe Translation-en [137 kB]
+2022-10-27T05:36:29.8822497Z Get:41 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [15.3 kB]
+2022-10-27T05:36:30.0852283Z Get:42 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 Packages [15.2 kB]
+2022-10-27T05:36:40.2623192Z Fetched 13.2 MB in 3s (4825 kB/s)
+2022-10-27T05:36:41.6081931Z Reading package lists...
+2022-10-27T05:36:41.8619438Z Building dependency tree...
+2022-10-27T05:36:41.8635085Z Reading state information...
+2022-10-27T05:36:41.9709754Z 40 packages can be upgraded. Run 'apt list --upgradable' to see them.
+2022-10-27T05:36:41.9833939Z
+2022-10-27T05:36:41.9834743Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+2022-10-27T05:36:41.9835161Z
+2022-10-27T05:36:42.0520184Z Reading package lists...
+2022-10-27T05:36:42.3196647Z Building dependency tree...
+2022-10-27T05:36:42.3215128Z Reading state information...
+2022-10-27T05:36:42.5269417Z The following additional packages will be installed:
+2022-10-27T05:36:42.5270751Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1 libgcc-s1:i386
+2022-10-27T05:36:42.5273717Z libidn2-0:i386 libunistring2:i386
+2022-10-27T05:36:42.5281075Z Suggested packages:
+2022-10-27T05:36:42.5281649Z glibc-doc:i386 locales:i386
+2022-10-27T05:36:42.6054870Z The following NEW packages will be installed:
+2022-10-27T05:36:42.6060238Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386
+2022-10-27T05:36:42.6065188Z libssl1.1:i386 libunistring2:i386
+2022-10-27T05:36:42.6071434Z The following packages will be upgraded:
+2022-10-27T05:36:42.6077741Z libgcc-s1
+2022-10-27T05:36:42.6524605Z 1 upgraded, 7 newly installed, 0 to remove and 39 not upgraded.
+2022-10-27T05:36:42.7316437Z Need to get 4528 kB of archives.
+2022-10-27T05:36:42.7317772Z After this operation, 19.3 MB of additional disk space will be used.
+2022-10-27T05:36:42.7318985Z Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libcrypt1 i386 1:4.4.10-10ubuntu4 [90.9 kB]
+2022-10-27T05:36:42.7516533Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libc6 i386 2.31-0ubuntu9.9 [2580 kB]
+2022-10-27T05:36:42.8180039Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libunistring2 i386 0.9.10-2 [377 kB]
+2022-10-27T05:36:42.8382506Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libidn2-0 i386 2.2.0-2 [51.4 kB]
+2022-10-27T05:36:42.8544550Z Get:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libssl1.1 i386 1.1.1f-1ubuntu2.16 [1318 kB]
+2022-10-27T05:36:42.8714868Z Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 gcc-11-base i386 11.1.0-1ubuntu1~20.04 [19.0 kB]
+2022-10-27T05:36:43.1118432Z Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main amd64 libgcc-s1 amd64 11.1.0-1ubuntu1~20.04 [42.1 kB]
+2022-10-27T05:36:43.3528563Z Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 libgcc-s1 i386 11.1.0-1ubuntu1~20.04 [50.0 kB]
+2022-10-27T05:36:43.9483382Z Preconfiguring packages ...
+2022-10-27T05:36:44.0566590Z Fetched 4528 kB in 1s (5511 kB/s)
+2022-10-27T05:36:44.0950557Z Selecting previously unselected package gcc-11-base:i386.
+2022-10-27T05:36:44.1257600Z (Reading database ...
+2022-10-27T05:36:44.1257941Z (Reading database ... 5%
+2022-10-27T05:36:44.1258207Z (Reading database ... 10%
+2022-10-27T05:36:44.1258475Z (Reading database ... 15%
+2022-10-27T05:36:44.1260572Z (Reading database ... 20%
+2022-10-27T05:36:44.1261165Z (Reading database ... 25%
+2022-10-27T05:36:44.1261680Z (Reading database ... 30%
+2022-10-27T05:36:44.1261936Z (Reading database ... 35%
+2022-10-27T05:36:44.1262196Z (Reading database ... 40%
+2022-10-27T05:36:44.1262482Z (Reading database ... 45%
+2022-10-27T05:36:44.1267425Z (Reading database ... 50%
+2022-10-27T05:36:44.1661119Z (Reading database ... 55%
+2022-10-27T05:36:44.2102408Z (Reading database ... 60%
+2022-10-27T05:36:44.2442960Z (Reading database ... 65%
+2022-10-27T05:36:44.3240866Z (Reading database ... 70%
+2022-10-27T05:36:44.4296824Z (Reading database ... 75%
+2022-10-27T05:36:44.5004841Z (Reading database ... 80%
+2022-10-27T05:36:44.5658810Z (Reading database ... 85%
+2022-10-27T05:36:44.6401590Z (Reading database ... 90%
+2022-10-27T05:36:44.7577336Z (Reading database ... 95%
+2022-10-27T05:36:44.7577685Z (Reading database ... 100%
+2022-10-27T05:36:44.7578335Z (Reading database ... 242030 files and directories currently installed.)
+2022-10-27T05:36:44.7691053Z Preparing to unpack .../0-gcc-11-base_11.1.0-1ubuntu1~20.04_i386.deb ...
+2022-10-27T05:36:44.7764075Z Unpacking gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-10-27T05:36:44.8625179Z Preparing to unpack .../1-libgcc-s1_11.1.0-1ubuntu1~20.04_amd64.deb ...
+2022-10-27T05:36:44.8693479Z Unpacking libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) over (10.3.0-1ubuntu1~20.04) ...
+2022-10-27T05:36:44.9142991Z Selecting previously unselected package libgcc-s1:i386.
+2022-10-27T05:36:44.9390148Z Preparing to unpack .../2-libgcc-s1_11.1.0-1ubuntu1~20.04_i386.deb ...
+2022-10-27T05:36:44.9401962Z Unpacking libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-10-27T05:36:44.9820851Z Selecting previously unselected package libcrypt1:i386.
+2022-10-27T05:36:45.0046331Z Preparing to unpack .../3-libcrypt1_1%3a4.4.10-10ubuntu4_i386.deb ...
+2022-10-27T05:36:45.0084974Z Unpacking libcrypt1:i386 (1:4.4.10-10ubuntu4) ...
+2022-10-27T05:36:45.0740528Z Selecting previously unselected package libc6:i386.
+2022-10-27T05:36:45.1001786Z Preparing to unpack .../4-libc6_2.31-0ubuntu9.9_i386.deb ...
+2022-10-27T05:36:45.2548577Z Unpacking libc6:i386 (2.31-0ubuntu9.9) ...
+2022-10-27T05:36:45.5789406Z Replacing files in old package libc6-i386 (2.31-0ubuntu9.9) ...
+2022-10-27T05:36:45.6171109Z Selecting previously unselected package libunistring2:i386.
+2022-10-27T05:36:45.6439642Z Preparing to unpack .../5-libunistring2_0.9.10-2_i386.deb ...
+2022-10-27T05:36:45.6457939Z Unpacking libunistring2:i386 (0.9.10-2) ...
+2022-10-27T05:36:45.7367630Z Selecting previously unselected package libidn2-0:i386.
+2022-10-27T05:36:45.7631354Z Preparing to unpack .../6-libidn2-0_2.2.0-2_i386.deb ...
+2022-10-27T05:36:45.7646777Z Unpacking libidn2-0:i386 (2.2.0-2) ...
+2022-10-27T05:36:45.8312915Z Selecting previously unselected package libssl1.1:i386.
+2022-10-27T05:36:45.8579345Z Preparing to unpack .../7-libssl1.1_1.1.1f-1ubuntu2.16_i386.deb ...
+2022-10-27T05:36:45.8593568Z Unpacking libssl1.1:i386 (1.1.1f-1ubuntu2.16) ...
+2022-10-27T05:36:46.0508711Z Setting up gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-10-27T05:36:46.0569280Z Setting up libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) ...
+2022-10-27T05:36:46.0623686Z Setting up libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-10-27T05:36:46.0684045Z Setting up libcrypt1:i386 (1:4.4.10-10ubuntu4) ...
+2022-10-27T05:36:46.0722619Z Setting up libc6:i386 (2.31-0ubuntu9.9) ...
+2022-10-27T05:36:46.3144297Z Setting up libssl1.1:i386 (1.1.1f-1ubuntu2.16) ...
+2022-10-27T05:36:46.4510680Z Setting up libunistring2:i386 (0.9.10-2) ...
+2022-10-27T05:36:46.4557850Z Setting up libidn2-0:i386 (2.2.0-2) ...
+2022-10-27T05:36:46.4635629Z Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
+2022-10-27T05:36:49.2567467Z 2022-10-27 05:36:49 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/e00cfb90-5ecf-4a55-a41c-c1e4899def3b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221027%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221027T053639Z&X-Amz-Expires=300&X-Amz-Signature=ad13811b53df08aab94680ba4bde27d347cafd7f9230584b43dd2d8d4a61a8be&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [10822488/10822488] -> "/home/runner/.byond/bin/librust_g.so" [1]
+2022-10-27T05:36:49.2675883Z linux-gate.so.1 (0xf7ef1000)
+2022-10-27T05:36:49.2679615Z libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xf7735000)
+2022-10-27T05:36:49.2681965Z libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xf747d000)
+2022-10-27T05:36:49.2682327Z libz.so.1 => /lib32/libz.so.1 (0xf745f000)
+2022-10-27T05:36:49.2682794Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7440000)
+2022-10-27T05:36:49.2683314Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf741d000)
+2022-10-27T05:36:49.2683950Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7318000)
+2022-10-27T05:36:49.2684513Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7312000)
+2022-10-27T05:36:49.2685065Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7123000)
+2022-10-27T05:36:49.2685549Z /lib/ld-linux.so.2 (0xf7ef3000)
+2022-10-27T05:36:49.2720426Z ##[group]Run bash tools/ci/install_auxlua.sh
+2022-10-27T05:36:49.2720821Z [36;1mbash tools/ci/install_auxlua.sh[0m
+2022-10-27T05:36:49.2778014Z shell: /usr/bin/bash -e {0}
+2022-10-27T05:36:49.2778299Z ##[endgroup]
+2022-10-27T05:36:49.3631078Z 2022-10-27 05:36:49 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/bb55dc2f-8248-4032-ad66-b80cb61a84f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221027%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221027T053639Z&X-Amz-Expires=300&X-Amz-Signature=04365004cef88fe3f1f8b45d89cffc1436482991f928c534963ff890dbc7d62d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [5781068/5781068] -> "/home/runner/.byond/bin/libauxlua.so" [1]
+2022-10-27T05:36:49.3764506Z linux-gate.so.1 (0xf7f4d000)
+2022-10-27T05:36:49.3765376Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7b46000)
+2022-10-27T05:36:49.3769032Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7b27000)
+2022-10-27T05:36:49.3769816Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7b04000)
+2022-10-27T05:36:49.3772336Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf79ff000)
+2022-10-27T05:36:49.3773288Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf79f9000)
+2022-10-27T05:36:49.3773950Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf780a000)
+2022-10-27T05:36:49.3774971Z /lib/ld-linux.so.2 (0xf7f4f000)
+2022-10-27T05:36:49.3802076Z ##[group]Run bash tools/ci/install_byond.sh
+2022-10-27T05:36:49.3802456Z [36;1mbash tools/ci/install_byond.sh[0m
+2022-10-27T05:36:49.3802798Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2022-10-27T05:36:49.3803186Z [36;1mtools/build/build --ci dm -DCIBUILDING -DANSICOLORS[0m
+2022-10-27T05:36:49.3873455Z shell: /usr/bin/bash -e {0}
+2022-10-27T05:36:49.3873887Z ##[endgroup]
+2022-10-27T05:36:49.4001691Z Setting up BYOND.
+2022-10-27T05:36:49.4159362Z % Total % Received % Xferd Average Speed Time Time Time Current
+2022-10-27T05:36:49.4160632Z Dload Upload Total Spent Left Speed
+2022-10-27T05:36:49.4160890Z
+2022-10-27T05:36:49.5018021Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
+2022-10-27T05:36:49.5019163Z 100 4021k 100 4021k 0 0 46.1M 0 --:--:-- --:--:-- --:--:-- 46.1M
+2022-10-27T05:36:49.5066653Z Archive: byond.zip
+2022-10-27T05:36:49.5067255Z creating: byond/
+2022-10-27T05:36:49.5068302Z creating: byond/key/
+2022-10-27T05:36:49.5068798Z creating: byond/web/
+2022-10-27T05:36:49.5070185Z inflating: byond/web/child.dms
+2022-10-27T05:36:49.5071730Z inflating: byond/web/button.dms
+2022-10-27T05:36:49.5073932Z inflating: byond/web/input.dms
+2022-10-27T05:36:49.5074416Z inflating: byond/web/text.dms
+2022-10-27T05:36:49.5198750Z inflating: byond/web/webclient.dart.js
+2022-10-27T05:36:49.5199410Z inflating: byond/web/verbmenu.dms
+2022-10-27T05:36:49.5200216Z inflating: byond/web/defaultSkin.dms
+2022-10-27T05:36:49.5201953Z inflating: byond/web/hotbar.dms
+2022-10-27T05:36:49.5203581Z inflating: byond/web/label.dms
+2022-10-27T05:36:49.5204889Z inflating: byond/web/alert.dms
+2022-10-27T05:36:49.5206329Z inflating: byond/web/message.dms
+2022-10-27T05:36:49.5207259Z inflating: byond/web/drag.png
+2022-10-27T05:36:49.5208742Z inflating: byond/web/map.dms
+2022-10-27T05:36:49.5210398Z inflating: byond/web/splashlogo.png
+2022-10-27T05:36:49.5210926Z inflating: byond/web/drop.png
+2022-10-27T05:36:49.5332544Z inflating: byond/web/ext.js
+2022-10-27T05:36:49.5333175Z inflating: byond/web/file.dms
+2022-10-27T05:36:49.5334369Z inflating: byond/web/grid.dms
+2022-10-27T05:36:49.5336323Z inflating: byond/web/bar.dms
+2022-10-27T05:36:49.5339986Z inflating: byond/web/dpad.dms
+2022-10-27T05:36:49.5341094Z inflating: byond/web/output.dms
+2022-10-27T05:36:49.5343046Z inflating: byond/web/tab.dms
+2022-10-27T05:36:49.5345100Z inflating: byond/web/info.dms
+2022-10-27T05:36:49.5346744Z inflating: byond/web/color.dms
+2022-10-27T05:36:49.5347953Z inflating: byond/web/gamepad.dms
+2022-10-27T05:36:49.5349805Z inflating: byond/web/browser.dms
+2022-10-27T05:36:49.5350264Z inflating: byond/web/status.dms
+2022-10-27T05:36:49.5351241Z inflating: byond/web/any.dms
+2022-10-27T05:36:49.5352302Z inflating: byond/web/pane.dms
+2022-10-27T05:36:49.5354423Z inflating: byond/web/pop.dms
+2022-10-27T05:36:49.5355613Z inflating: byond/license.txt
+2022-10-27T05:36:49.5357084Z inflating: byond/legal.txt
+2022-10-27T05:36:49.5358519Z inflating: byond/Makefile
+2022-10-27T05:36:49.5358970Z creating: byond/man/
+2022-10-27T05:36:49.5359627Z creating: byond/man/man6/
+2022-10-27T05:36:49.5361148Z inflating: byond/man/man6/DreamDaemon.6
+2022-10-27T05:36:49.5361949Z inflating: byond/man/man6/DreamMaker.6
+2022-10-27T05:36:49.5362715Z creating: byond/lib/
+2022-10-27T05:36:49.5362992Z creating: byond/host/
+2022-10-27T05:36:49.5365318Z inflating: byond/host/readme.html
+2022-10-27T05:36:49.5366506Z inflating: byond/host/readme-unix.txt
+2022-10-27T05:36:49.5366902Z creating: byond/host/home/
+2022-10-27T05:36:49.5367533Z creating: byond/host/home/root/
+2022-10-27T05:36:49.5367822Z creating: byond/host/home/root/byond/
+2022-10-27T05:36:49.5368496Z creating: byond/host/home/root/byond/tools/
+2022-10-27T05:36:49.5369225Z creating: byond/host/home/root/byond/tools/root/
+2022-10-27T05:36:49.5374569Z inflating: byond/host/home/root/byond/tools/root/root.dmb
+2022-10-27T05:36:49.5375251Z creating: byond/host/shared/
+2022-10-27T05:36:49.5375559Z creating: byond/host/shared/byond/
+2022-10-27T05:36:49.5376268Z creating: byond/host/shared/byond/tools/
+2022-10-27T05:36:49.5376595Z creating: byond/host/shared/byond/tools/ftp/
+2022-10-27T05:36:49.5379616Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb
+2022-10-27T05:36:49.5380174Z creating: byond/host/shared/byond/tools/admin/
+2022-10-27T05:36:49.5386313Z inflating: byond/host/shared/byond/tools/admin/admin.dmb
+2022-10-27T05:36:49.5386945Z creating: byond/host/shared-web/
+2022-10-27T05:36:49.5387681Z creating: byond/host/shared-web/web/
+2022-10-27T05:36:49.5388584Z creating: byond/host/shared-web/web/tools/
+2022-10-27T05:36:49.5389008Z creating: byond/host/shared-web/web/tools/admin/
+2022-10-27T05:36:49.5394728Z inflating: byond/host/shared-web/web/tools/admin/index.dmb
+2022-10-27T05:36:49.5403477Z inflating: byond/host/host.dmb
+2022-10-27T05:36:49.5403779Z inflating: byond/host/host.start
+2022-10-27T05:36:49.5405103Z inflating: byond/host/hostconf.orig
+2022-10-27T05:36:49.5406328Z inflating: byond/host/hostconf.txt
+2022-10-27T05:36:49.5407507Z inflating: byond/readme.txt
+2022-10-27T05:36:49.5407795Z creating: byond/bin/
+2022-10-27T05:36:49.5408558Z inflating: byond/bin/byondexec
+2022-10-27T05:36:49.5411293Z inflating: byond/bin/DreamDownload
+2022-10-27T05:36:49.6175092Z inflating: byond/bin/libbyond.so
+2022-10-27T05:36:49.6348503Z inflating: byond/bin/libext.so
+2022-10-27T05:36:49.6351968Z inflating: byond/bin/DreamDaemon
+2022-10-27T05:36:49.6355363Z inflating: byond/bin/DreamMaker
+2022-10-27T05:36:49.6355666Z creating: byond/cfg/
+2022-10-27T05:36:49.6356545Z inflating: byond/cfg/release.txt
+2022-10-27T05:36:49.6621069Z ***************************
+2022-10-27T05:36:49.6621919Z Now run the following command:
+2022-10-27T05:36:49.6629708Z
+2022-10-27T05:36:49.6640241Z source /home/runner/BYOND/byond/bin/byondsetup
+2022-10-27T05:36:49.6652476Z
+2022-10-27T05:36:49.6657262Z If it generates errors, your shell is not compatible with 'sh', so you will
+2022-10-27T05:36:49.6663166Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon.
+2022-10-27T05:36:49.6673259Z
+2022-10-27T05:36:49.6679431Z IMPORTANT: once you have the script working, you must add the above line
+2022-10-27T05:36:49.6685348Z to your startup script. The name of your startup script depends on the
+2022-10-27T05:36:49.6691552Z shell you use. Typical ones are .profile or .bash_profile.
+2022-10-27T05:36:49.6701933Z
+2022-10-27T05:36:49.6708492Z Once everything is working, you can find out more about the software
+2022-10-27T05:36:49.6714992Z by doing 'man DreamDaemon'. A host server has also been included
+2022-10-27T05:36:49.6720470Z so edit host/hostconf.txt and boot up your world server!
+2022-10-27T05:36:49.6726217Z ***************************
+2022-10-27T05:36:49.7622481Z Using system-wide Node v16.18.0
+2022-10-27T05:36:49.9527326Z :: Juke Build version 0.8.1
+2022-10-27T05:36:50.2530342Z => Starting 'dm'
+2022-10-27T05:36:50.2555016Z :: Using defines: CBT, CIBUILDING, ANSICOLORS
+2022-10-27T05:36:50.3319179Z DM compiler version 514.1588
+2022-10-27T05:36:50.3319810Z loading tgstation.m.dme
+2022-10-27T05:36:59.9636752Z loading interface/skin.dmf
+2022-10-27T05:37:57.7759644Z loading map_files/generic/CentCom.dmm
+2022-10-27T05:37:58.7594328Z saving tgstation.m.dmb (DEBUG mode)
+2022-10-27T05:37:59.9601921Z tgstation.m.dmb - 0 errors, 0 warnings (10/27/22 5:37 am)
+2022-10-27T05:37:59.9602721Z Total time: 1:09
+2022-10-27T05:38:00.9791168Z => Finished 'dm' in 70.727s
+2022-10-27T05:38:00.9795780Z => Done in 71.025s
+2022-10-27T05:38:00.9907775Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup
+2022-10-27T05:38:00.9908333Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2022-10-27T05:38:00.9908714Z [36;1mbash tools/ci/run_server.sh metastation[0m
+2022-10-27T05:38:00.9968243Z shell: /usr/bin/bash -e {0}
+2022-10-27T05:38:00.9968682Z ##[endgroup]
+2022-10-27T05:38:01.0105430Z Testing metastation
+2022-10-27T05:38:01.2543112Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory
+2022-10-27T05:38:01.2724951Z Thu Oct 27 05:38:01 2022
+2022-10-27T05:38:01.2725544Z World opened on network port 42427.
+2022-10-27T05:38:01.2726492Z Welcome BYOND! (5.0 Public Version 514.1588)
+2022-10-27T05:38:23.7107759Z 864 global variables
+2022-10-27T05:38:24.4933392Z World loaded at 05:38:24!
+2022-10-27T05:38:24.5429202Z Running /tg/ revision:
+2022-10-27T05:38:24.5429682Z No commit information
+2022-10-27T05:38:24.5512784Z Loading config file config.txt...
+2022-10-27T05:38:24.5516700Z Loading config file maps.txt...
+2022-10-27T05:38:24.5547604Z Unable to locate admins backup file.
+2022-10-27T05:38:25.5745156Z Initialized Title Screen subsystem within 0.01 seconds!
+2022-10-27T05:38:25.5745917Z Initialized Server Tasks subsystem within 0 seconds!
+2022-10-27T05:38:25.5746607Z Initialized Input subsystem within 0 seconds!
+2022-10-27T05:38:25.5814387Z Initialized Profiler subsystem within 0 seconds!
+2022-10-27T05:38:25.5814809Z Initialized Database subsystem within 0 seconds!
+2022-10-27T05:38:25.5816091Z Initialized Blackbox subsystem within 0 seconds!
+2022-10-27T05:38:25.5819066Z Initialized Sounds subsystem within 0 seconds!
+2022-10-27T05:38:25.6001394Z Initialized Instruments subsystem within 0.02 seconds!
+2022-10-27T05:38:25.9816971Z Initialized Greyscale subsystem within 0.38 seconds!
+2022-10-27T05:38:25.9817528Z Initialized Vis contents overlays subsystem within 0 seconds!
+2022-10-27T05:38:25.9818032Z Initialized Security Level subsystem within 0 seconds!
+2022-10-27T05:38:25.9848043Z Initialized Station subsystem within 0 seconds!
+2022-10-27T05:38:25.9865647Z Initialized Quirks subsystem within 0 seconds!
+2022-10-27T05:38:26.0034062Z Initialized Reagents subsystem within 0.02 seconds!
+2022-10-27T05:38:26.0038506Z Initialized Events subsystem within 0 seconds!
+2022-10-27T05:38:26.0098384Z Initialized IDs and Access subsystem within 0.01 seconds!
+2022-10-27T05:38:26.0098867Z Initialized Jobs subsystem within 0 seconds!
+2022-10-27T05:38:26.0099897Z Initialized AI movement subsystem within 0 seconds!
+2022-10-27T05:38:26.0126533Z Initialized Ticker subsystem within 0 seconds!
+2022-10-27T05:38:26.0128286Z Initialized AI Controller Ticker subsystem within 0 seconds!
+2022-10-27T05:38:26.0134279Z Initialized AI Behavior Ticker subsystem within 0 seconds!
+2022-10-27T05:38:26.0287435Z Initialized Trading Card Game subsystem within 0.02 seconds!
+2022-10-27T05:38:26.0290443Z Loading MetaStation...
+2022-10-27T05:38:27.6774174Z Loaded Station in 1.6s!
+2022-10-27T05:38:28.4727719Z Loaded Lavaland in 0.7s!
+2022-10-27T05:38:29.4722711Z Ruin loader finished with 0 left to spend.
+2022-10-27T05:38:29.5285012Z Ruin loader finished with 0 left to spend.
+2022-10-27T05:38:29.9352644Z Cave Generator finished in 0.4s!
+2022-10-27T05:38:29.9775541Z Cave Generator finished in 0s!
+2022-10-27T05:38:31.0315436Z Initialized Mapping subsystem within 5 seconds!
+2022-10-27T05:38:55.0060672Z The BYOND hub reports that port 42427 is not reachable.
+2022-10-27T05:38:57.9364779Z Initialized Early Assets subsystem within 26.9 seconds!
+2022-10-27T05:38:57.9769589Z Initialized Research subsystem within 0.04 seconds!
+2022-10-27T05:38:57.9771028Z Initialized Time Tracking subsystem within 0 seconds!
+2022-10-27T05:38:58.0098137Z Initialized Networks subsystem within 0.03 seconds!
+2022-10-27T05:38:58.0343859Z Initialized Spatial Grid subsystem within 0.02 seconds!
+2022-10-27T05:38:58.0348414Z Initialized Economy subsystem within 0 seconds!
+2022-10-27T05:38:58.0355826Z Initialized Restaurant subsystem within 0 seconds!
+2022-10-27T05:39:34.2891379Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only!
+2022-10-27T05:39:36.5387306Z Initialized Atoms subsystem within 38.5 seconds!
+2022-10-27T05:39:36.5532145Z Initialized Language subsystem within 0.01 seconds!
+2022-10-27T05:39:36.6439410Z Initialized Machines subsystem within 0.09 seconds!
+2022-10-27T05:39:36.6445388Z Initialized Skills subsystem within 0 seconds!
+2022-10-27T05:39:36.6446275Z Initialized Addiction subsystem within 0 seconds!
+2022-10-27T05:39:36.6458190Z Initialized Blackmarket subsystem within 0 seconds!
+2022-10-27T05:39:36.6461637Z Initialized Disease subsystem within 0 seconds!
+2022-10-27T05:39:36.6462460Z Initialized Fluid subsystem within 0 seconds!
+2022-10-27T05:39:36.6463706Z Initialized Smoke subsystem within 0 seconds!
+2022-10-27T05:39:36.6464484Z Initialized Foam subsystem within 0 seconds!
+2022-10-27T05:39:36.6465284Z Initialized Lag Switch subsystem within 0 seconds!
+2022-10-27T05:39:36.6685670Z Initialized Library Loading subsystem within 0.02 seconds!
+2022-10-27T05:39:37.0988919Z Initialized Lua Scripting subsystem within 0.43 seconds!
+2022-10-27T05:39:37.0994800Z Initialized Night Shift subsystem within 0 seconds!
+2022-10-27T05:39:37.0996305Z Initialized Sun subsystem within 0 seconds!
+2022-10-27T05:39:37.1013421Z Initialized Traitor subsystem within 0 seconds!
+2022-10-27T05:39:37.1246657Z Initialized Wardrobe subsystem within 0.02 seconds!
+2022-10-27T05:39:37.1247676Z Initialized Weather subsystem within 0 seconds!
+2022-10-27T05:39:37.1248899Z Initialized Wiremod Composite Templates subsystem within 0 seconds!
+2022-10-27T05:39:42.0567267Z Initialized Atmospherics subsystem within 4.93 seconds!
+2022-10-27T05:39:42.0584101Z Initialized Persistence subsystem within 0 seconds!
+2022-10-27T05:39:42.0589723Z Initialized Persistent Paintings subsystem within 0 seconds!
+2022-10-27T05:39:42.0594808Z Initialized Vote subsystem within 0 seconds!
+2022-10-27T05:39:47.1134557Z Initialized Assets subsystem within 5.05 seconds!
+2022-10-27T05:39:49.3480025Z Initialized Icon Smoothing subsystem within 2.23 seconds!
+2022-10-27T05:39:49.3521346Z Initialized XKeyScore subsystem within 0 seconds!
+2022-10-27T05:39:49.3626428Z Initialized PRISM subsystem within 0.01 seconds!
+2022-10-27T05:39:55.3669508Z Initialized Lighting subsystem within 6 seconds!
+2022-10-27T05:39:58.4861231Z Initialized Shuttle subsystem within 3.12 seconds!
+2022-10-27T05:39:58.4910808Z Initialized Pathfinder subsystem within 0 seconds!
+2022-10-27T05:39:58.4911217Z Initialized Ban Cache subsystem within 0 seconds!
+2022-10-27T05:39:58.4911595Z Initialized Init Profiler subsystem within 0 seconds!
+2022-10-27T05:39:58.4911947Z Initialized Chat subsystem within 0 seconds!
+2022-10-27T05:39:58.4912316Z Initializations complete within 92.9 seconds!
+2022-10-27T05:39:58.4984843Z Game start took 0s
+2022-10-27T05:40:09.8744558Z ##[group]/datum/unit_test/log_mapping
+2022-10-27T05:40:09.8745146Z
+2022-10-27T05:40:09.8836529Z [1;32mPASS[0m /datum/unit_test/log_mapping 0s
+2022-10-27T05:40:09.8837396Z ##[endgroup]
+2022-10-27T05:40:09.9419200Z ##[group]/datum/unit_test/ablative_hood_hud
+2022-10-27T05:40:09.9756122Z
+2022-10-27T05:40:09.9757240Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud 0s
+2022-10-27T05:40:09.9767210Z ##[endgroup]
+2022-10-27T05:40:09.9978386Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet
+2022-10-27T05:40:10.0279756Z
+2022-10-27T05:40:10.0281576Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud_with_helmet 0.1s
+2022-10-27T05:40:10.0283498Z ##[endgroup]
+2022-10-27T05:40:10.0512431Z ##[group]/datum/unit_test/achievements
+2022-10-27T05:40:10.0640195Z
+2022-10-27T05:40:10.0641287Z [1;32mPASS[0m /datum/unit_test/achievements 0s
+2022-10-27T05:40:10.0642374Z ##[endgroup]
+2022-10-27T05:40:10.1012868Z ##[group]/datum/unit_test/anchored_mobs
+2022-10-27T05:40:10.1014527Z
+2022-10-27T05:40:10.1015639Z [1;32mPASS[0m /datum/unit_test/anchored_mobs 0s
+2022-10-27T05:40:10.1016975Z ##[endgroup]
+2022-10-27T05:40:10.1197243Z ##[group]/datum/unit_test/anonymous_themes
+2022-10-27T05:40:10.2699684Z
+2022-10-27T05:40:10.2701913Z [1;32mPASS[0m /datum/unit_test/anonymous_themes 0.1s
+2022-10-27T05:40:10.2703812Z ##[endgroup]
+2022-10-27T05:40:10.5198272Z ##[group]/datum/unit_test/autowiki
+2022-10-27T05:40:11.9708692Z
+2022-10-27T05:40:11.9710297Z [1;32mPASS[0m /datum/unit_test/autowiki 1.4s
+2022-10-27T05:40:11.9712149Z ##[endgroup]
+2022-10-27T05:40:13.4185291Z ##[group]/datum/unit_test/autowiki_include_template
+2022-10-27T05:40:13.4186047Z
+2022-10-27T05:40:13.4187111Z [1;32mPASS[0m /datum/unit_test/autowiki_include_template 0s
+2022-10-27T05:40:13.4188008Z ##[endgroup]
+2022-10-27T05:40:13.4380400Z ##[group]/datum/unit_test/barsigns_icon
+2022-10-27T05:40:13.4634689Z
+2022-10-27T05:40:13.4639775Z [1;32mPASS[0m /datum/unit_test/barsigns_icon 0s
+2022-10-27T05:40:13.4640487Z ##[endgroup]
+2022-10-27T05:40:13.4808870Z ##[group]/datum/unit_test/barsigns_name
+2022-10-27T05:40:13.4809440Z
+2022-10-27T05:40:13.4810053Z [1;32mPASS[0m /datum/unit_test/barsigns_name 0s
+2022-10-27T05:40:13.4814000Z ##[endgroup]
+2022-10-27T05:40:13.4979736Z ##[group]/datum/unit_test/bespoke_id
+2022-10-27T05:40:13.4980383Z
+2022-10-27T05:40:13.4980997Z [1;32mPASS[0m /datum/unit_test/bespoke_id 0s
+2022-10-27T05:40:13.5028459Z ##[endgroup]
+2022-10-27T05:40:13.8488485Z ##[group]/datum/unit_test/binary_insert
+2022-10-27T05:40:13.8488743Z
+2022-10-27T05:40:13.8489222Z [1;32mPASS[0m /datum/unit_test/binary_insert 0s
+2022-10-27T05:40:13.8489803Z ##[endgroup]
+2022-10-27T05:40:13.8653347Z ##[group]/datum/unit_test/bloody_footprints
+2022-10-27T05:40:13.9003909Z
+2022-10-27T05:40:13.9004930Z [1;32mPASS[0m /datum/unit_test/bloody_footprints 0s
+2022-10-27T05:40:13.9006088Z ##[endgroup]
+2022-10-27T05:40:13.9232999Z ##[group]/datum/unit_test/breath_sanity
+2022-10-27T05:40:13.9712567Z
+2022-10-27T05:40:13.9713383Z [1;32mPASS[0m /datum/unit_test/breath_sanity 0s
+2022-10-27T05:40:13.9714142Z ##[endgroup]
+2022-10-27T05:40:14.2982711Z ##[group]/datum/unit_test/breath_sanity_plasmamen
+2022-10-27T05:40:14.3520354Z
+2022-10-27T05:40:14.3521354Z [1;32mPASS[0m /datum/unit_test/breath_sanity_plasmamen 0.1s
+2022-10-27T05:40:14.3522294Z ##[endgroup]
+2022-10-27T05:40:14.3742846Z ##[group]/datum/unit_test/breath_sanity_ashwalker
+2022-10-27T05:40:14.4444122Z
+2022-10-27T05:40:14.4444950Z [1;32mPASS[0m /datum/unit_test/breath_sanity_ashwalker 0.1s
+2022-10-27T05:40:14.4445682Z ##[endgroup]
+2022-10-27T05:40:14.7716503Z ##[group]/datum/unit_test/cable_powernets
+2022-10-27T05:40:14.7716741Z
+2022-10-27T05:40:14.7717211Z [1;32mPASS[0m /datum/unit_test/cable_powernets 0s
+2022-10-27T05:40:14.7718214Z ##[endgroup]
+2022-10-27T05:40:14.7883699Z ##[group]/datum/unit_test/card_mismatch
+2022-10-27T05:40:14.7925710Z
+2022-10-27T05:40:14.7926265Z [1;32mPASS[0m /datum/unit_test/card_mismatch 0s
+2022-10-27T05:40:14.7926794Z ##[endgroup]
+2022-10-27T05:40:14.8965612Z ##[group]/datum/unit_test/chain_pull_through_space
+2022-10-27T05:40:14.8993553Z
+2022-10-27T05:40:14.8994184Z [1;32mPASS[0m /datum/unit_test/chain_pull_through_space 0s
+2022-10-27T05:40:14.8994797Z ##[endgroup]
+2022-10-27T05:40:15.0324540Z ##[group]/datum/unit_test/chat_filter_sanity
+2022-10-27T05:40:15.0326737Z
+2022-10-27T05:40:15.0327622Z [1;32mPASS[0m /datum/unit_test/chat_filter_sanity 0s
+2022-10-27T05:40:15.0328606Z ##[endgroup]
+2022-10-27T05:40:15.0495255Z ##[group]/datum/unit_test/circuit_component_category
+2022-10-27T05:40:15.0495800Z
+2022-10-27T05:40:15.0496375Z [1;32mPASS[0m /datum/unit_test/circuit_component_category 0s
+2022-10-27T05:40:15.0497189Z ##[endgroup]
+2022-10-27T05:40:15.0662040Z ##[group]/datum/unit_test/closets
+2022-10-27T05:40:16.7548466Z
+2022-10-27T05:40:16.7550247Z [1;32mPASS[0m /datum/unit_test/closets 1.7s
+2022-10-27T05:40:16.7551113Z ##[endgroup]
+2022-10-27T05:40:19.6808172Z ##[group]/datum/unit_test/harm_punch
+2022-10-27T05:40:19.7377314Z
+2022-10-27T05:40:19.7378123Z [1;32mPASS[0m /datum/unit_test/harm_punch 0.1s
+2022-10-27T05:40:19.7379056Z ##[endgroup]
+2022-10-27T05:40:19.7662222Z ##[group]/datum/unit_test/harm_melee
+2022-10-27T05:40:19.8341843Z
+2022-10-27T05:40:19.8342972Z [1;32mPASS[0m /datum/unit_test/harm_melee 0.1s
+2022-10-27T05:40:19.8343692Z ##[endgroup]
+2022-10-27T05:40:19.9635264Z ##[group]/datum/unit_test/harm_different_damage
+2022-10-27T05:40:20.0266779Z
+2022-10-27T05:40:20.0267726Z [1;32mPASS[0m /datum/unit_test/harm_different_damage 0.1s
+2022-10-27T05:40:20.0268642Z ##[endgroup]
+2022-10-27T05:40:20.0557189Z ##[group]/datum/unit_test/attack_chain
+2022-10-27T05:40:20.1137150Z
+2022-10-27T05:40:20.1138187Z [1;32mPASS[0m /datum/unit_test/attack_chain 0.1s
+2022-10-27T05:40:20.1139596Z ##[endgroup]
+2022-10-27T05:40:20.5189211Z ##[group]/datum/unit_test/disarm
+2022-10-27T05:40:20.5901636Z
+2022-10-27T05:40:20.5902409Z [1;32mPASS[0m /datum/unit_test/disarm 0s
+2022-10-27T05:40:20.5903484Z ##[endgroup]
+2022-10-27T05:40:20.6186577Z ##[group]/datum/unit_test/component_duping
+2022-10-27T05:40:20.6186976Z
+2022-10-27T05:40:20.6187696Z [1;32mPASS[0m /datum/unit_test/component_duping 0s
+2022-10-27T05:40:20.6188587Z ##[endgroup]
+2022-10-27T05:40:20.6351095Z ##[group]/datum/unit_test/confusion_symptom
+2022-10-27T05:40:20.6638729Z
+2022-10-27T05:40:20.6639511Z [1;32mPASS[0m /datum/unit_test/confusion_symptom 0s
+2022-10-27T05:40:20.6640205Z ##[endgroup]
+2022-10-27T05:40:20.9863951Z ##[group]/datum/unit_test/connect_loc_basic
+2022-10-27T05:40:20.9868536Z
+2022-10-27T05:40:20.9869090Z [1;32mPASS[0m /datum/unit_test/connect_loc_basic 0s
+2022-10-27T05:40:20.9869728Z ##[endgroup]
+2022-10-27T05:40:21.0030927Z ##[group]/datum/unit_test/connect_loc_change_turf
+2022-10-27T05:40:21.0038393Z
+2022-10-27T05:40:21.0038866Z [1;32mPASS[0m /datum/unit_test/connect_loc_change_turf 0s
+2022-10-27T05:40:21.0039436Z ##[endgroup]
+2022-10-27T05:40:21.0207944Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf
+2022-10-27T05:40:21.0212290Z
+2022-10-27T05:40:21.0212902Z [1;32mPASS[0m /datum/unit_test/connect_loc_multiple_on_turf 0s
+2022-10-27T05:40:21.0213675Z ##[endgroup]
+2022-10-27T05:40:21.0384862Z ##[group]/datum/unit_test/crayon_naming
+2022-10-27T05:40:21.0442694Z
+2022-10-27T05:40:21.0443459Z [1;32mPASS[0m /datum/unit_test/crayon_naming 0s
+2022-10-27T05:40:21.0444098Z ##[endgroup]
+2022-10-27T05:40:21.0612637Z ##[group]/datum/unit_test/dcs_get_id_from_arguments
+2022-10-27T05:40:21.0613739Z
+2022-10-27T05:40:21.0614288Z [1;32mPASS[0m /datum/unit_test/dcs_get_id_from_arguments 0s
+2022-10-27T05:40:21.0615542Z ##[endgroup]
+2022-10-27T05:40:21.3899788Z ##[group]/datum/unit_test/designs
+2022-10-27T05:40:21.3953573Z
+2022-10-27T05:40:21.3954536Z [1;32mPASS[0m /datum/unit_test/designs 0s
+2022-10-27T05:40:21.3955578Z ##[endgroup]
+2022-10-27T05:40:21.4124000Z ##[group]/datum/unit_test/dummy_spawn_species
+2022-10-27T05:40:21.8463274Z
+2022-10-27T05:40:21.8464399Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_species 0.4s
+2022-10-27T05:40:21.8465523Z ##[endgroup]
+2022-10-27T05:40:22.2717242Z ##[group]/datum/unit_test/dummy_spawn_outfit
+2022-10-27T05:40:22.2939848Z Job type /datum/job/ai could not be retrieved from SSjob
+2022-10-27T05:40:22.6546726Z
+2022-10-27T05:40:22.6548196Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_outfit 0.4s
+2022-10-27T05:40:22.6549521Z ##[endgroup]
+2022-10-27T05:40:23.0435828Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity
+2022-10-27T05:40:23.0436113Z
+2022-10-27T05:40:23.0436663Z [1;32mPASS[0m /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s
+2022-10-27T05:40:23.0437218Z ##[endgroup]
+2022-10-27T05:40:23.0606191Z ##[group]/datum/unit_test/dynamic_unique_antag_flags
+2022-10-27T05:40:23.0606463Z
+2022-10-27T05:40:23.0606957Z [1;32mPASS[0m /datum/unit_test/dynamic_unique_antag_flags 0s
+2022-10-27T05:40:23.0607492Z ##[endgroup]
+2022-10-27T05:40:23.0772590Z ##[group]/datum/unit_test/egg_glands
+2022-10-27T05:40:23.1272833Z
+2022-10-27T05:40:23.1273679Z [1;32mPASS[0m /datum/unit_test/egg_glands 0.1s
+2022-10-27T05:40:23.1274499Z ##[endgroup]
+2022-10-27T05:40:23.1948246Z ##[group]/datum/unit_test/emoting
+2022-10-27T05:40:23.2276434Z
+2022-10-27T05:40:23.2277491Z [1;32mPASS[0m /datum/unit_test/emoting 0.1s
+2022-10-27T05:40:23.2278590Z ##[endgroup]
+2022-10-27T05:40:23.2495055Z ##[group]/datum/unit_test/food_edibility_check
+2022-10-27T05:40:24.5133005Z
+2022-10-27T05:40:24.5133747Z [1;32mPASS[0m /datum/unit_test/food_edibility_check 1.3s
+2022-10-27T05:40:24.5134589Z ##[endgroup]
+2022-10-27T05:40:25.7459424Z ##[group]/datum/unit_test/atmospheric_gas_transfer
+2022-10-27T05:40:25.7464252Z
+2022-10-27T05:40:25.7465453Z [1;32mPASS[0m /datum/unit_test/atmospheric_gas_transfer 0s
+2022-10-27T05:40:25.7466947Z ##[endgroup]
+2022-10-27T05:40:25.7637838Z ##[group]/datum/unit_test/get_turf_pixel
+2022-10-27T05:40:25.7652899Z
+2022-10-27T05:40:25.7653755Z [1;32mPASS[0m /datum/unit_test/get_turf_pixel 0s
+2022-10-27T05:40:25.7654716Z ##[endgroup]
+2022-10-27T05:40:25.7832528Z ##[group]/datum/unit_test/greyscale_item_icon_states
+2022-10-27T05:40:25.7897718Z
+2022-10-27T05:40:25.7898714Z [1;32mPASS[0m /datum/unit_test/greyscale_item_icon_states 0s
+2022-10-27T05:40:25.7901777Z ##[endgroup]
+2022-10-27T05:40:25.8065921Z ##[group]/datum/unit_test/greyscale_color_count
+2022-10-27T05:40:25.8212040Z
+2022-10-27T05:40:25.8213076Z [1;32mPASS[0m /datum/unit_test/greyscale_color_count 0s
+2022-10-27T05:40:25.8213890Z ##[endgroup]
+2022-10-27T05:40:25.9569835Z ##[group]/datum/unit_test/hallucination_icons
+2022-10-27T05:40:26.2007450Z
+2022-10-27T05:40:26.2008257Z [1;32mPASS[0m /datum/unit_test/hallucination_icons 0.3s
+2022-10-27T05:40:26.2008960Z ##[endgroup]
+2022-10-27T05:40:26.4177405Z ##[group]/datum/unit_test/heretic_knowledge
+2022-10-27T05:40:26.4221118Z
+2022-10-27T05:40:26.4222209Z [1;32mPASS[0m /datum/unit_test/heretic_knowledge 0s
+2022-10-27T05:40:26.4225335Z ##[endgroup]
+2022-10-27T05:40:26.4398954Z ##[group]/datum/unit_test/heretic_main_paths
+2022-10-27T05:40:26.4399640Z
+2022-10-27T05:40:26.4402394Z [1;32mPASS[0m /datum/unit_test/heretic_main_paths 0s
+2022-10-27T05:40:26.4403358Z ##[endgroup]
+2022-10-27T05:40:26.4569635Z ##[group]/datum/unit_test/heretic_rituals
+2022-10-27T05:40:26.5341269Z
+2022-10-27T05:40:26.5342957Z [1;32mPASS[0m /datum/unit_test/heretic_rituals 0.1s
+2022-10-27T05:40:26.5344455Z ##[endgroup]
+2022-10-27T05:40:26.6072760Z ##[group]/datum/unit_test/hanukkah_2123
+2022-10-27T05:40:26.6074182Z
+2022-10-27T05:40:26.6075388Z [1;32mPASS[0m /datum/unit_test/hanukkah_2123 0s
+2022-10-27T05:40:26.6076994Z ##[endgroup]
+2022-10-27T05:40:26.6266212Z ##[group]/datum/unit_test/ramadan_2165
+2022-10-27T05:40:26.6266979Z
+2022-10-27T05:40:26.6268854Z [1;32mPASS[0m /datum/unit_test/ramadan_2165 0s
+2022-10-27T05:40:26.6275155Z ##[endgroup]
+2022-10-27T05:40:26.6571207Z ##[group]/datum/unit_test/thanksgiving_2020
+2022-10-27T05:40:26.6572398Z
+2022-10-27T05:40:26.6573397Z [1;32mPASS[0m /datum/unit_test/thanksgiving_2020 0s
+2022-10-27T05:40:26.6574531Z ##[endgroup]
+2022-10-27T05:40:26.6735186Z ##[group]/datum/unit_test/mother_3683
+2022-10-27T05:40:26.6735666Z
+2022-10-27T05:40:26.6736248Z [1;32mPASS[0m /datum/unit_test/mother_3683 0s
+2022-10-27T05:40:26.6739224Z ##[endgroup]
+2022-10-27T05:40:26.8572827Z ##[group]/datum/unit_test/hello_2020
+2022-10-27T05:40:26.8573482Z
+2022-10-27T05:40:26.8574272Z [1;32mPASS[0m /datum/unit_test/hello_2020 0s
+2022-10-27T05:40:26.8577076Z ##[endgroup]
+2022-10-27T05:40:26.8749478Z ##[group]/datum/unit_test/new_year_1983
+2022-10-27T05:40:26.8750152Z
+2022-10-27T05:40:26.8750832Z [1;32mPASS[0m /datum/unit_test/new_year_1983 0s
+2022-10-27T05:40:26.8751724Z ##[endgroup]
+2022-10-27T05:40:26.8919557Z ##[group]/datum/unit_test/moth_week_2020
+2022-10-27T05:40:26.8951500Z
+2022-10-27T05:40:26.8952208Z [1;32mPASS[0m /datum/unit_test/moth_week_2020 0s
+2022-10-27T05:40:26.8952956Z ##[endgroup]
+2022-10-27T05:40:27.3122958Z ##[group]/datum/unit_test/human_through_recycler
+2022-10-27T05:40:27.3539454Z
+2022-10-27T05:40:27.3544496Z [1;32mPASS[0m /datum/unit_test/human_through_recycler 0s
+2022-10-27T05:40:27.3549227Z ##[endgroup]
+2022-10-27T05:40:27.3779548Z ##[group]/datum/unit_test/hydroponics_extractor_storage
+2022-10-27T05:40:27.4123276Z
+2022-10-27T05:40:27.4124500Z [1;32mPASS[0m /datum/unit_test/hydroponics_extractor_storage 0.1s
+2022-10-27T05:40:27.4125704Z ##[endgroup]
+2022-10-27T05:40:27.4385047Z ##[group]/datum/unit_test/hydroponics_harvest
+2022-10-27T05:40:27.5046209Z
+2022-10-27T05:40:27.5047429Z [1;32mPASS[0m /datum/unit_test/hydroponics_harvest 0.1s
+2022-10-27T05:40:27.5048344Z ##[endgroup]
+2022-10-27T05:40:27.5784276Z ##[group]/datum/unit_test/hydroponics_self_mutation
+2022-10-27T05:40:27.6261832Z
+2022-10-27T05:40:27.6263089Z [1;32mPASS[0m /datum/unit_test/hydroponics_self_mutation 0.1s
+2022-10-27T05:40:27.6264003Z ##[endgroup]
+2022-10-27T05:40:27.9431720Z ##[group]/datum/unit_test/hydroponics_validate_genes
+2022-10-27T05:40:27.9933945Z
+2022-10-27T05:40:27.9935126Z [1;32mPASS[0m /datum/unit_test/hydroponics_validate_genes 0s
+2022-10-27T05:40:27.9936883Z ##[endgroup]
+2022-10-27T05:40:28.0105063Z ##[group]/datum/unit_test/defined_inhand_icon_states
+2022-10-27T05:40:29.0888247Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values.
+2022-10-27T05:40:29.0889307Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-10-27T05:40:29.0890499Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-10-27T05:40:29.0891626Z /obj/item/clothing/under/suit/sl does not have an inhand_icon_state value - Possible matching sprites for "sl_suit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-10-27T05:40:29.0892733Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2022-10-27T05:40:29.0893862Z /obj/item/clothing/head/mod does not have an inhand_icon_state value - Possible matching sprites for "helmet" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi'
+2022-10-27T05:40:29.0894922Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2022-10-27T05:40:29.0895960Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2022-10-27T05:40:29.0897110Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-10-27T05:40:29.0898326Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-10-27T05:40:29.0899739Z /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun does not have an inhand_icon_state value - Possible matching sprites for "syringegun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-10-27T05:40:29.0900919Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-10-27T05:40:29.0902057Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-10-27T05:40:29.0903498Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-10-27T05:40:29.0904633Z /obj/item/implant/emp does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-10-27T05:40:29.0906583Z /obj/item/implant/uplink does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0927867Z /obj/item/implant/uplink/precharged does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0929023Z /obj/item/implant/uplink/starting does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0930125Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-10-27T05:40:29.0931206Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-10-27T05:40:29.0932453Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-10-27T05:40:29.0933868Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-10-27T05:40:29.0934999Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0936156Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0937331Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0938692Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0939881Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0941048Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0942649Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0943894Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0945078Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0946292Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0947466Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.0948548Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-10-27T05:40:29.0949572Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0950564Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0951871Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0952969Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0954060Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0955292Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.0957053Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.0958265Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.0959349Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.0960438Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.0962120Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-10-27T05:40:29.0963372Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-10-27T05:40:29.0964517Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_righthand.dmi'
+2022-10-27T05:40:29.0965764Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-10-27T05:40:29.0966976Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-10-27T05:40:29.0968278Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
+2022-10-27T05:40:29.0969434Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
+2022-10-27T05:40:29.0976727Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2022-10-27T05:40:29.0977819Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-10-27T05:40:29.0979042Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-10-27T05:40:29.0980133Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-10-27T05:40:29.0981181Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.0982369Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.0983404Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-10-27T05:40:29.0984486Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-10-27T05:40:29.0985620Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-10-27T05:40:29.0986842Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2022-10-27T05:40:29.0988013Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-10-27T05:40:29.0989036Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0990051Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0991149Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0994310Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0995737Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0996853Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0997956Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.0999039Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.1000123Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.1001211Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-10-27T05:40:29.1002492Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-10-27T05:40:29.1003600Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-10-27T05:40:29.1004679Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.1005898Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-10-27T05:40:29.1006926Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-10-27T05:40:29.1008099Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-10-27T05:40:29.1009143Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-10-27T05:40:29.1010190Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-10-27T05:40:29.1011309Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-10-27T05:40:29.1012517Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-10-27T05:40:29.1014120Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.1015524Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.1016580Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.1017625Z /obj/item/trash/can/food does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-10-27T05:40:29.1018877Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-10-27T05:40:29.1020043Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-10-27T05:40:29.1021168Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-10-27T05:40:29.1022472Z /obj/item/ammo_casing/magic/hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-10-27T05:40:29.1023582Z /obj/item/ammo_casing/magic/hook/bounty does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-10-27T05:40:29.1024655Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi'
+2022-10-27T05:40:29.1025757Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.1027058Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.1028202Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_righthand.dmi' & 'icons/mob/inhands/weapons/plants_lefthand.dmi'
+2022-10-27T05:40:29.1029346Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_righthand.dmi' & 'icons/mob/inhands/equipment/palette_lefthand.dmi'
+2022-10-27T05:40:29.1030413Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-10-27T05:40:29.1031719Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.1032793Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-10-27T05:40:29.1033871Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-10-27T05:40:29.1035004Z /obj/item/guardiancreator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.1036195Z /obj/item/guardiancreator/tech/choose does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.1037390Z /obj/item/guardiancreator/tech/choose/traitor does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.1038610Z /obj/item/guardiancreator/tech/choose/dextrous does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.1039744Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_lefthand.dmi' & 'icons/mob/inhands/clothing/masks_righthand.dmi'
+2022-10-27T05:40:29.1040839Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2022-10-27T05:40:29.1042176Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2022-10-27T05:40:29.1043317Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_righthand.dmi'
+2022-10-27T05:40:29.1044435Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-10-27T05:40:29.1045556Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2022-10-27T05:40:29.1046616Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi'
+2022-10-27T05:40:29.1047731Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi'
+2022-10-27T05:40:29.1049097Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-10-27T05:40:29.1050391Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-10-27T05:40:29.1051631Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.1052751Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-10-27T05:40:29.1055555Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-10-27T05:40:29.1056050Z
+2022-10-27T05:40:29.1056364Z [1;32mPASS[0m /datum/unit_test/defined_inhand_icon_states 1s
+2022-10-27T05:40:29.1057048Z ##[endgroup]
+2022-10-27T05:40:30.3200151Z ##[group]/datum/unit_test/keybinding_init
+2022-10-27T05:40:30.3200418Z
+2022-10-27T05:40:30.3201050Z [1;32mPASS[0m /datum/unit_test/keybinding_init 0s
+2022-10-27T05:40:30.3201648Z ##[endgroup]
+2022-10-27T05:40:30.3369516Z ##[group]/datum/unit_test/knockoff_component
+2022-10-27T05:40:30.3974289Z
+2022-10-27T05:40:30.3975134Z [1;32mPASS[0m /datum/unit_test/knockoff_component 0s
+2022-10-27T05:40:30.3975848Z ##[endgroup]
+2022-10-27T05:40:30.4758006Z ##[group]/datum/unit_test/limbsanity
+2022-10-27T05:40:30.5511170Z
+2022-10-27T05:40:30.5512056Z [1;32mPASS[0m /datum/unit_test/limbsanity 0.1s
+2022-10-27T05:40:30.5513064Z ##[endgroup]
+2022-10-27T05:40:30.5683011Z ##[group]/datum/unit_test/load_map_security
+2022-10-27T05:40:30.5686279Z map directory not in whitelist: data/load_map_security_temp for map runtimestation
+2022-10-27T05:40:30.5686559Z
+2022-10-27T05:40:30.5687309Z [1;32mPASS[0m /datum/unit_test/load_map_security 0s
+2022-10-27T05:40:30.5688206Z ##[endgroup]
+2022-10-27T05:40:30.5865089Z ##[group]/datum/unit_test/machine_disassembly
+2022-10-27T05:40:30.5895192Z
+2022-10-27T05:40:30.5895755Z [1;32mPASS[0m /datum/unit_test/machine_disassembly 0s
+2022-10-27T05:40:30.5896331Z ##[endgroup]
+2022-10-27T05:40:30.6183397Z ##[group]/datum/unit_test/mecha_damage
+2022-10-27T05:40:30.6691654Z
+2022-10-27T05:40:30.6692724Z [1;32mPASS[0m /datum/unit_test/mecha_damage 0s
+2022-10-27T05:40:30.6693811Z ##[endgroup]
+2022-10-27T05:40:30.7005279Z ##[group]/datum/unit_test/test_human_base
+2022-10-27T05:40:30.7905422Z
+2022-10-27T05:40:30.7906225Z [1;32mPASS[0m /datum/unit_test/test_human_base 0s
+2022-10-27T05:40:30.7906953Z ##[endgroup]
+2022-10-27T05:40:30.8626902Z ##[group]/datum/unit_test/test_human_bone
+2022-10-27T05:40:30.9519120Z
+2022-10-27T05:40:30.9520211Z [1;32mPASS[0m /datum/unit_test/test_human_bone 0.1s
+2022-10-27T05:40:30.9521496Z ##[endgroup]
+2022-10-27T05:40:31.2736006Z ##[group]/datum/unit_test/merge_type
+2022-10-27T05:40:31.2741500Z
+2022-10-27T05:40:31.2744034Z [1;32mPASS[0m /datum/unit_test/merge_type 0s
+2022-10-27T05:40:31.2745007Z ##[endgroup]
+2022-10-27T05:40:31.2940088Z ##[group]/datum/unit_test/metabolization
+2022-10-27T05:40:31.5116749Z
+2022-10-27T05:40:31.5119088Z [1;32mPASS[0m /datum/unit_test/metabolization 0.3s
+2022-10-27T05:40:31.5120552Z ##[endgroup]
+2022-10-27T05:40:31.8707226Z ##[group]/datum/unit_test/on_mob_end_metabolize
+2022-10-27T05:40:31.9025163Z
+2022-10-27T05:40:31.9025867Z [1;32mPASS[0m /datum/unit_test/on_mob_end_metabolize 0.1s
+2022-10-27T05:40:31.9026521Z ##[endgroup]
+2022-10-27T05:40:32.5850525Z ##[group]/datum/unit_test/addictions
+2022-10-27T05:40:32.6747518Z
+2022-10-27T05:40:32.6749097Z [1;32mPASS[0m /datum/unit_test/addictions 0.1s
+2022-10-27T05:40:32.6749790Z ##[endgroup]
+2022-10-27T05:40:32.8122227Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer
+2022-10-27T05:40:32.8435426Z
+2022-10-27T05:40:32.8437029Z [1;32mPASS[0m /datum/unit_test/actions_moved_on_mind_transfer 0s
+2022-10-27T05:40:32.8438267Z ##[endgroup]
+2022-10-27T05:40:32.8685143Z ##[group]/datum/unit_test/mob_faction
+2022-10-27T05:40:37.0355455Z
+2022-10-27T05:40:37.0357124Z [1;32mPASS[0m /datum/unit_test/mob_faction 4.2s
+2022-10-27T05:40:37.0358437Z ##[endgroup]
+2022-10-27T05:40:46.3276946Z ##[group]/datum/unit_test/mob_spawn
+2022-10-27T05:40:46.3478047Z
+2022-10-27T05:40:46.3479094Z [1;32mPASS[0m /datum/unit_test/mob_spawn 0s
+2022-10-27T05:40:46.3480121Z ##[endgroup]
+2022-10-27T05:40:46.5088900Z ##[group]/datum/unit_test/modsuit_checks
+2022-10-27T05:40:46.7422166Z
+2022-10-27T05:40:46.7424741Z [1;32mPASS[0m /datum/unit_test/modsuit_checks 0.2s
+2022-10-27T05:40:46.7426303Z ##[endgroup]
+2022-10-27T05:40:46.9639966Z ##[group]/datum/unit_test/modular_map_loader
+2022-10-27T05:40:46.9645920Z
+2022-10-27T05:40:46.9647042Z [1;32mPASS[0m /datum/unit_test/modular_map_loader 0s
+2022-10-27T05:40:46.9648824Z ##[endgroup]
+2022-10-27T05:40:46.9857078Z ##[group]/datum/unit_test/mouse_bite_cable
+2022-10-27T05:40:46.9906436Z
+2022-10-27T05:40:46.9907445Z [1;32mPASS[0m /datum/unit_test/mouse_bite_cable 0s
+2022-10-27T05:40:46.9908580Z ##[endgroup]
+2022-10-27T05:40:47.0104524Z ##[group]/datum/unit_test/novaflower_burn
+2022-10-27T05:40:47.0691141Z
+2022-10-27T05:40:47.0692760Z [1;32mPASS[0m /datum/unit_test/novaflower_burn 0s
+2022-10-27T05:40:47.0694697Z ##[endgroup]
+2022-10-27T05:40:47.4496213Z ##[group]/datum/unit_test/ntnetwork
+2022-10-27T05:40:47.4517846Z
+2022-10-27T05:40:47.4518703Z [1;32mPASS[0m /datum/unit_test/ntnetwork 0s
+2022-10-27T05:40:47.4519832Z ##[endgroup]
+2022-10-27T05:40:47.4710883Z ##[group]/datum/unit_test/nuke_cinematic
+2022-10-27T05:40:51.6544361Z
+2022-10-27T05:40:51.6546808Z [1;32mPASS[0m /datum/unit_test/nuke_cinematic 4.2s
+2022-10-27T05:40:51.6548322Z ##[endgroup]
+2022-10-27T05:40:51.9750957Z ##[group]/datum/unit_test/objectives_category
+2022-10-27T05:40:51.9754837Z
+2022-10-27T05:40:51.9758911Z [1;32mPASS[0m /datum/unit_test/objectives_category 0s
+2022-10-27T05:40:51.9762185Z ##[endgroup]
+2022-10-27T05:40:51.9966795Z ##[group]/datum/unit_test/operating_table
+2022-10-27T05:40:52.0501605Z
+2022-10-27T05:40:52.0502705Z [1;32mPASS[0m /datum/unit_test/operating_table 0.1s
+2022-10-27T05:40:52.0503789Z ##[endgroup]
+2022-10-27T05:40:52.1317881Z ##[group]/datum/unit_test/outfit_sanity
+2022-10-27T05:41:01.7976872Z
+2022-10-27T05:41:01.7979182Z [1;32mPASS[0m /datum/unit_test/outfit_sanity 9.6s
+2022-10-27T05:41:01.7980122Z ##[endgroup]
+2022-10-27T05:41:11.4243742Z ##[group]/datum/unit_test/paintings
+2022-10-27T05:41:11.4598558Z
+2022-10-27T05:41:11.4599629Z [1;32mPASS[0m /datum/unit_test/paintings 0s
+2022-10-27T05:41:11.4600448Z ##[endgroup]
+2022-10-27T05:41:11.4792755Z ##[group]/datum/unit_test/pills
+2022-10-27T05:41:11.5083505Z
+2022-10-27T05:41:11.5084511Z [1;32mPASS[0m /datum/unit_test/pills 0.1s
+2022-10-27T05:41:11.5085321Z ##[endgroup]
+2022-10-27T05:41:11.5601428Z ##[group]/datum/unit_test/plane_double_transform
+2022-10-27T05:41:11.5919033Z
+2022-10-27T05:41:11.5921018Z [1;32mPASS[0m /datum/unit_test/plane_double_transform 0s
+2022-10-27T05:41:11.5922301Z ##[endgroup]
+2022-10-27T05:41:11.6221465Z ##[group]/datum/unit_test/plane_dupe_detector
+2022-10-27T05:41:11.6222004Z
+2022-10-27T05:41:11.6222655Z [1;32mPASS[0m /datum/unit_test/plane_dupe_detector 0s
+2022-10-27T05:41:11.6223293Z ##[endgroup]
+2022-10-27T05:41:11.6426244Z ##[group]/datum/unit_test/plantgrowth
+2022-10-27T05:41:11.6982938Z
+2022-10-27T05:41:11.6984405Z [1;32mPASS[0m /datum/unit_test/plantgrowth 0s
+2022-10-27T05:41:11.6985721Z ##[endgroup]
+2022-10-27T05:41:11.7325573Z ##[group]/datum/unit_test/preference_species
+2022-10-27T05:41:11.7325819Z
+2022-10-27T05:41:11.7328286Z [1;32mPASS[0m /datum/unit_test/preference_species 0s
+2022-10-27T05:41:11.7329335Z ##[endgroup]
+2022-10-27T05:41:11.7520773Z ##[group]/datum/unit_test/preferences_implement_everything
+2022-10-27T05:41:18.7582701Z
+2022-10-27T05:41:18.7583967Z [1;32mPASS[0m /datum/unit_test/preferences_implement_everything 7s
+2022-10-27T05:41:18.7674142Z ##[endgroup]
+2022-10-27T05:41:25.7837961Z ##[group]/datum/unit_test/preferences_valid_savefile_key
+2022-10-27T05:41:25.7840087Z
+2022-10-27T05:41:25.7841504Z [1;32mPASS[0m /datum/unit_test/preferences_valid_savefile_key 0s
+2022-10-27T05:41:25.7842504Z ##[endgroup]
+2022-10-27T05:41:25.8045081Z ##[group]/datum/unit_test/preferences_valid_main_feature_name
+2022-10-27T05:41:25.8046166Z
+2022-10-27T05:41:25.8047192Z [1;32mPASS[0m /datum/unit_test/preferences_valid_main_feature_name 0s
+2022-10-27T05:41:25.8049437Z ##[endgroup]
+2022-10-27T05:41:25.8233566Z ##[group]/datum/unit_test/projectile_movetypes
+2022-10-27T05:41:25.8234187Z
+2022-10-27T05:41:25.8235057Z [1;32mPASS[0m /datum/unit_test/projectile_movetypes 0s
+2022-10-27T05:41:25.8238602Z ##[endgroup]
+2022-10-27T05:41:25.8422043Z ##[group]/datum/unit_test/gun_go_bang
+2022-10-27T05:41:25.9103045Z
+2022-10-27T05:41:25.9104017Z [1;32mPASS[0m /datum/unit_test/gun_go_bang 0.1s
+2022-10-27T05:41:25.9105102Z ##[endgroup]
+2022-10-27T05:41:25.9957966Z ##[group]/datum/unit_test/quirk_icons
+2022-10-27T05:41:25.9958970Z
+2022-10-27T05:41:25.9960876Z [1;32mPASS[0m /datum/unit_test/quirk_icons 0s
+2022-10-27T05:41:25.9961959Z ##[endgroup]
+2022-10-27T05:41:26.0166772Z ##[group]/datum/unit_test/range_return
+2022-10-27T05:41:26.0167357Z
+2022-10-27T05:41:26.0167980Z [1;32mPASS[0m /datum/unit_test/range_return 0s
+2022-10-27T05:41:26.0222740Z ##[endgroup]
+2022-10-27T05:41:26.0353132Z ##[group]/datum/unit_test/frame_stacking
+2022-10-27T05:41:26.0914496Z
+2022-10-27T05:41:26.0915254Z [1;32mPASS[0m /datum/unit_test/frame_stacking 0s
+2022-10-27T05:41:26.0916011Z ##[endgroup]
+2022-10-27T05:41:26.1694918Z ##[group]/datum/unit_test/reagent_id_typos
+2022-10-27T05:41:26.1727233Z
+2022-10-27T05:41:26.1728009Z [1;32mPASS[0m /datum/unit_test/reagent_id_typos 0s
+2022-10-27T05:41:26.1728685Z ##[endgroup]
+2022-10-27T05:41:26.1920271Z ##[group]/datum/unit_test/reagent_mob_expose
+2022-10-27T05:41:26.2268321Z
+2022-10-27T05:41:26.2269120Z [1;32mPASS[0m /datum/unit_test/reagent_mob_expose 0.1s
+2022-10-27T05:41:26.2269829Z ##[endgroup]
+2022-10-27T05:41:26.2549234Z ##[group]/datum/unit_test/reagent_mob_procs
+2022-10-27T05:41:26.2827770Z
+2022-10-27T05:41:26.2828618Z [1;32mPASS[0m /datum/unit_test/reagent_mob_procs 0s
+2022-10-27T05:41:26.2829318Z ##[endgroup]
+2022-10-27T05:41:26.3078178Z ##[group]/datum/unit_test/reagent_names
+2022-10-27T05:41:27.1646047Z
+2022-10-27T05:41:27.1647510Z [1;32mPASS[0m /datum/unit_test/reagent_names 0.8s
+2022-10-27T05:41:27.1649181Z ##[endgroup]
+2022-10-27T05:41:27.9838180Z ##[group]/datum/unit_test/reagent_recipe_collisions
+2022-10-27T05:41:28.4462173Z
+2022-10-27T05:41:28.4463469Z [1;32mPASS[0m /datum/unit_test/reagent_recipe_collisions 0.5s
+2022-10-27T05:41:28.4464601Z ##[endgroup]
+2022-10-27T05:41:28.8661632Z ##[group]/datum/unit_test/reagent_transfer
+2022-10-27T05:41:28.8670725Z
+2022-10-27T05:41:28.8671943Z [1;32mPASS[0m /datum/unit_test/reagent_transfer 0s
+2022-10-27T05:41:28.8673335Z ##[endgroup]
+2022-10-27T05:41:28.8888500Z ##[group]/datum/unit_test/stop_drop_and_roll
+2022-10-27T05:41:28.9156826Z
+2022-10-27T05:41:28.9160888Z [1;32mPASS[0m /datum/unit_test/stop_drop_and_roll 0.1s
+2022-10-27T05:41:28.9162086Z ##[endgroup]
+2022-10-27T05:41:28.9403341Z ##[group]/datum/unit_test/container_resist
+2022-10-27T05:41:28.9744033Z
+2022-10-27T05:41:28.9746221Z [1;32mPASS[0m /datum/unit_test/container_resist 0s
+2022-10-27T05:41:28.9748317Z ##[endgroup]
+2022-10-27T05:41:29.0027065Z ##[group]/datum/unit_test/get_message_mods
+2022-10-27T05:41:29.0268010Z
+2022-10-27T05:41:29.0269082Z [1;32mPASS[0m /datum/unit_test/get_message_mods 0s
+2022-10-27T05:41:29.0270222Z ##[endgroup]
+2022-10-27T05:41:29.0513097Z ##[group]/datum/unit_test/say_signal
+2022-10-27T05:41:29.0526010Z
+2022-10-27T05:41:29.0526949Z [1;32mPASS[0m /datum/unit_test/say_signal 0s
+2022-10-27T05:41:29.0528292Z ##[endgroup]
+2022-10-27T05:41:29.0718244Z ##[group]/datum/unit_test/screenshot_antag_icons
+2022-10-27T05:41:29.0735578Z screenshot_antag_icons_fugitive was put in data/screenshots_new
+2022-10-27T05:41:29.0746540Z screenshot_antag_icons_loneoperative was put in data/screenshots_new
+2022-10-27T05:41:29.1154449Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new
+2022-10-27T05:41:29.1168816Z screenshot_antag_icons_traitor was put in data/screenshots_new
+2022-10-27T05:41:29.1651315Z screenshot_antag_icons_malfai was put in data/screenshots_new
+2022-10-27T05:41:29.1695591Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new
+2022-10-27T05:41:29.1703594Z screenshot_antag_icons_changeling was put in data/screenshots_new
+2022-10-27T05:41:29.1768645Z screenshot_antag_icons_heretic was put in data/screenshots_new
+2022-10-27T05:41:29.1779481Z screenshot_antag_icons_wizard was put in data/screenshots_new
+2022-10-27T05:41:29.1818096Z screenshot_antag_icons_cultist was put in data/screenshots_new
+2022-10-27T05:41:29.1834393Z screenshot_antag_icons_operative was put in data/screenshots_new
+2022-10-27T05:41:29.1849934Z screenshot_antag_icons_clownoperative was put in data/screenshots_new
+2022-10-27T05:41:29.1867009Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new
+2022-10-27T05:41:29.1869714Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new
+2022-10-27T05:41:29.1870566Z screenshot_antag_icons_provocateur was put in data/screenshots_new
+2022-10-27T05:41:29.1871844Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new
+2022-10-27T05:41:29.1872299Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new
+2022-10-27T05:41:29.1874172Z screenshot_antag_icons_operativemidround was put in data/screenshots_new
+2022-10-27T05:41:29.2627121Z screenshot_antag_icons_blob was put in data/screenshots_new
+2022-10-27T05:41:29.2749190Z screenshot_antag_icons_xenomorph was put in data/screenshots_new
+2022-10-27T05:41:29.2756569Z screenshot_antag_icons_nightmare was put in data/screenshots_new
+2022-10-27T05:41:29.2840326Z screenshot_antag_icons_spacedragon was put in data/screenshots_new
+2022-10-27T05:41:29.2847600Z screenshot_antag_icons_abductor was put in data/screenshots_new
+2022-10-27T05:41:29.2854366Z screenshot_antag_icons_spaceninja was put in data/screenshots_new
+2022-10-27T05:41:29.3137655Z screenshot_antag_icons_revenant was put in data/screenshots_new
+2022-10-27T05:41:29.3161866Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new
+2022-10-27T05:41:29.3163321Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new
+2022-10-27T05:41:29.3355078Z screenshot_antag_icons_blobinfection was put in data/screenshots_new
+2022-10-27T05:41:29.3368910Z screenshot_antag_icons_obsessed was put in data/screenshots_new
+2022-10-27T05:41:29.3372287Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new
+2022-10-27T05:41:29.3372581Z
+2022-10-27T05:41:29.3373097Z [1;32mPASS[0m /datum/unit_test/screenshot_antag_icons 0.3s
+2022-10-27T05:41:29.3373772Z ##[endgroup]
+2022-10-27T05:41:29.6066997Z ##[group]/datum/unit_test/screenshot_basic
+2022-10-27T05:41:29.6075525Z screenshot_basic_red was put in data/screenshots_new
+2022-10-27T05:41:29.6078638Z
+2022-10-27T05:41:29.6082196Z [1;32mPASS[0m /datum/unit_test/screenshot_basic 0s
+2022-10-27T05:41:29.6085438Z ##[endgroup]
+2022-10-27T05:41:29.6308021Z ##[group]/datum/unit_test/screenshot_humanoids
+2022-10-27T05:41:30.3591652Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new
+2022-10-27T05:41:31.2589662Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new
+2022-10-27T05:41:31.9323705Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new
+2022-10-27T05:41:32.1651600Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new
+2022-10-27T05:41:32.8142370Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new
+2022-10-27T05:41:33.4104949Z screenshot_humanoids__datum_species_android was put in data/screenshots_new
+2022-10-27T05:41:34.0306787Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new
+2022-10-27T05:41:34.6399759Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new
+2022-10-27T05:41:35.3333622Z screenshot_humanoids__datum_species_human was put in data/screenshots_new
+2022-10-27T05:41:36.1586851Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new
+2022-10-27T05:41:36.9430568Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new
+2022-10-27T05:41:37.7067338Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new
+2022-10-27T05:41:38.3488088Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new
+2022-10-27T05:41:38.9816576Z screenshot_humanoids__datum_species_golem_adamantine was put in data/screenshots_new
+2022-10-27T05:41:39.6179037Z screenshot_humanoids__datum_species_golem_plasma was put in data/screenshots_new
+2022-10-27T05:41:40.2518127Z screenshot_humanoids__datum_species_golem_diamond was put in data/screenshots_new
+2022-10-27T05:41:40.9179988Z screenshot_humanoids__datum_species_golem_gold was put in data/screenshots_new
+2022-10-27T05:41:41.5666452Z screenshot_humanoids__datum_species_golem_silver was put in data/screenshots_new
+2022-10-27T05:41:42.2085418Z screenshot_humanoids__datum_species_golem_plasteel was put in data/screenshots_new
+2022-10-27T05:41:42.7916566Z screenshot_humanoids__datum_species_golem_titanium was put in data/screenshots_new
+2022-10-27T05:41:43.4311508Z screenshot_humanoids__datum_species_golem_plastitanium was put in data/screenshots_new
+2022-10-27T05:41:44.0632010Z screenshot_humanoids__datum_species_golem_alloy was put in data/screenshots_new
+2022-10-27T05:41:44.7023401Z screenshot_humanoids__datum_species_golem_wood was put in data/screenshots_new
+2022-10-27T05:41:45.3273391Z screenshot_humanoids__datum_species_golem_uranium was put in data/screenshots_new
+2022-10-27T05:41:45.9609338Z screenshot_humanoids__datum_species_golem_sand was put in data/screenshots_new
+2022-10-27T05:41:46.5998181Z screenshot_humanoids__datum_species_golem_glass was put in data/screenshots_new
+2022-10-27T05:41:47.2316624Z screenshot_humanoids__datum_species_golem_bluespace was put in data/screenshots_new
+2022-10-27T05:41:47.8414848Z screenshot_humanoids__datum_species_golem_bananium was put in data/screenshots_new
+2022-10-27T05:41:48.3268058Z screenshot_humanoids__datum_species_golem_runic was put in data/screenshots_new
+2022-10-27T05:41:49.0158232Z screenshot_humanoids__datum_species_golem_cloth was put in data/screenshots_new
+2022-10-27T05:41:49.5977864Z screenshot_humanoids__datum_species_golem_plastic was put in data/screenshots_new
+2022-10-27T05:41:50.2331785Z screenshot_humanoids__datum_species_golem_bronze was put in data/screenshots_new
+2022-10-27T05:41:50.7727391Z screenshot_humanoids__datum_species_golem_cardboard was put in data/screenshots_new
+2022-10-27T05:41:51.4241290Z screenshot_humanoids__datum_species_golem_leather was put in data/screenshots_new
+2022-10-27T05:41:51.9263638Z screenshot_humanoids__datum_species_golem_durathread was put in data/screenshots_new
+2022-10-27T05:41:52.4187080Z screenshot_humanoids__datum_species_golem_bone was put in data/screenshots_new
+2022-10-27T05:41:52.9144290Z screenshot_humanoids__datum_species_golem_snow was put in data/screenshots_new
+2022-10-27T05:41:53.5567094Z screenshot_humanoids__datum_species_golem_mhydrogen was put in data/screenshots_new
+2022-10-27T05:41:54.2523403Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new
+2022-10-27T05:41:54.9494868Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new
+2022-10-27T05:41:55.6574845Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new
+2022-10-27T05:41:56.3636662Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new
+2022-10-27T05:41:56.9807853Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new
+2022-10-27T05:41:57.6172458Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new
+2022-10-27T05:41:57.7952429Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new
+2022-10-27T05:41:58.3429906Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new
+2022-10-27T05:41:58.9291358Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new
+2022-10-27T05:41:59.6393043Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new
+2022-10-27T05:42:00.3004709Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new
+2022-10-27T05:42:01.0488511Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new
+2022-10-27T05:42:01.7655604Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new
+2022-10-27T05:42:02.5637759Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new
+2022-10-27T05:42:03.4341531Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new
+2022-10-27T05:42:03.4342475Z
+2022-10-27T05:42:03.4433344Z [1;32mPASS[0m /datum/unit_test/screenshot_humanoids 33.8s
+2022-10-27T05:42:03.4434057Z ##[endgroup]
+2022-10-27T05:42:38.0137819Z ##[group]/datum/unit_test/screenshot_saturnx
+2022-10-27T05:42:38.2805908Z screenshot_saturnx_invisibility was put in data/screenshots_new
+2022-10-27T05:42:38.2806525Z
+2022-10-27T05:42:38.2807422Z [1;32mPASS[0m /datum/unit_test/screenshot_saturnx 0.2s
+2022-10-27T05:42:38.2808381Z ##[endgroup]
+2022-10-27T05:42:38.5125108Z ##[group]/datum/unit_test/security_officer_roundstart_distribution
+2022-10-27T05:42:38.6313313Z
+2022-10-27T05:42:38.6314073Z [1;32mPASS[0m /datum/unit_test/security_officer_roundstart_distribution 0.1s
+2022-10-27T05:42:38.6314848Z ##[endgroup]
+2022-10-27T05:42:38.7844382Z ##[group]/datum/unit_test/security_officer_latejoin_distribution
+2022-10-27T05:42:39.3108839Z
+2022-10-27T05:42:39.3109578Z [1;32mPASS[0m /datum/unit_test/security_officer_latejoin_distribution 0.5s
+2022-10-27T05:42:39.3110392Z ##[endgroup]
+2022-10-27T05:42:39.8689626Z ##[group]/datum/unit_test/security_levels
+2022-10-27T05:42:39.8691007Z
+2022-10-27T05:42:39.8692358Z [1;32mPASS[0m /datum/unit_test/security_levels 0s
+2022-10-27T05:42:39.8694155Z ##[endgroup]
+2022-10-27T05:42:39.8954646Z ##[group]/datum/unit_test/servingtray
+2022-10-27T05:42:39.9246160Z
+2022-10-27T05:42:39.9246828Z [1;32mPASS[0m /datum/unit_test/servingtray 0.1s
+2022-10-27T05:42:39.9247596Z ##[endgroup]
+2022-10-27T05:42:39.9527510Z ##[group]/datum/unit_test/simple_animal_freeze
+2022-10-27T05:42:39.9538858Z
+2022-10-27T05:42:39.9539579Z [1;32mPASS[0m /datum/unit_test/simple_animal_freeze 0s
+2022-10-27T05:42:39.9540575Z ##[endgroup]
+2022-10-27T05:42:39.9737208Z ##[group]/datum/unit_test/siunit
+2022-10-27T05:42:39.9737877Z
+2022-10-27T05:42:39.9739067Z [1;32mPASS[0m /datum/unit_test/siunit 0s
+2022-10-27T05:42:39.9739970Z ##[endgroup]
+2022-10-27T05:42:40.0059889Z ##[group]/datum/unit_test/slips
+2022-10-27T05:42:40.0605319Z
+2022-10-27T05:42:40.0606405Z [1;32mPASS[0m /datum/unit_test/slips 0s
+2022-10-27T05:42:40.0608008Z ##[endgroup]
+2022-10-27T05:42:40.1167017Z ##[group]/datum/unit_test/spawn_humans
+2022-10-27T05:42:45.1906375Z
+2022-10-27T05:42:45.1907903Z [1;32mPASS[0m /datum/unit_test/spawn_humans 5s
+2022-10-27T05:42:45.1910749Z ##[endgroup]
+2022-10-27T05:42:45.2427283Z ##[group]/datum/unit_test/spawn_mobs
+2022-10-27T05:42:45.3357801Z
+2022-10-27T05:42:45.3359033Z [1;32mPASS[0m /datum/unit_test/spawn_mobs 0.1s
+2022-10-27T05:42:45.3361725Z ##[endgroup]
+2022-10-27T05:42:45.5043702Z ##[group]/datum/unit_test/species_change_clothing
+2022-10-27T05:42:45.6048589Z
+2022-10-27T05:42:45.6049694Z [1;32mPASS[0m /datum/unit_test/species_change_clothing 0.1s
+2022-10-27T05:42:45.6051771Z ##[endgroup]
+2022-10-27T05:42:45.6837595Z ##[group]/datum/unit_test/species_change_organs
+2022-10-27T05:42:45.7545977Z
+2022-10-27T05:42:45.7546831Z [1;32mPASS[0m /datum/unit_test/species_change_organs 0.1s
+2022-10-27T05:42:45.7547563Z ##[endgroup]
+2022-10-27T05:42:45.7836582Z ##[group]/datum/unit_test/species_config_sanity
+2022-10-27T05:42:45.7840840Z
+2022-10-27T05:42:45.7842768Z [1;32mPASS[0m /datum/unit_test/species_config_sanity 0s
+2022-10-27T05:42:45.7844337Z ##[endgroup]
+2022-10-27T05:42:45.8022187Z ##[group]/datum/unit_test/species_unique_id
+2022-10-27T05:42:45.8022866Z
+2022-10-27T05:42:45.8075321Z [1;32mPASS[0m /datum/unit_test/species_unique_id 0s
+2022-10-27T05:42:45.8076400Z ##[endgroup]
+2022-10-27T05:42:45.8351362Z ##[group]/datum/unit_test/species_whitelist_check
+2022-10-27T05:42:45.8351724Z
+2022-10-27T05:42:45.8352365Z [1;32mPASS[0m /datum/unit_test/species_whitelist_check 0s
+2022-10-27T05:42:45.8353142Z ##[endgroup]
+2022-10-27T05:42:45.8533484Z ##[group]/datum/unit_test/spell_invocations
+2022-10-27T05:42:45.8533768Z
+2022-10-27T05:42:45.8534255Z [1;32mPASS[0m /datum/unit_test/spell_invocations 0s
+2022-10-27T05:42:45.8534811Z ##[endgroup]
+2022-10-27T05:42:45.8839364Z ##[group]/datum/unit_test/mind_swap_spell
+2022-10-27T05:42:45.9396663Z
+2022-10-27T05:42:45.9397306Z [1;32mPASS[0m /datum/unit_test/mind_swap_spell 0.1s
+2022-10-27T05:42:45.9397999Z ##[endgroup]
+2022-10-27T05:42:45.9707938Z ##[group]/datum/unit_test/spell_names
+2022-10-27T05:42:45.9708233Z
+2022-10-27T05:42:45.9708764Z [1;32mPASS[0m /datum/unit_test/spell_names 0s
+2022-10-27T05:42:45.9709443Z ##[endgroup]
+2022-10-27T05:42:45.9892272Z ##[group]/datum/unit_test/shapeshift_spell_validity
+2022-10-27T05:42:45.9896681Z
+2022-10-27T05:42:45.9897201Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell_validity 0s
+2022-10-27T05:42:45.9897727Z ##[endgroup]
+2022-10-27T05:42:46.0425278Z ##[group]/datum/unit_test/shapeshift_spell
+2022-10-27T05:42:46.3445398Z
+2022-10-27T05:42:46.3446335Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell 0.3s
+2022-10-27T05:42:46.3447239Z ##[endgroup]
+2022-10-27T05:42:46.8200052Z ##[group]/datum/unit_test/shapeshift_holoparasites
+2022-10-27T05:42:46.8537455Z
+2022-10-27T05:42:46.8539870Z [1;32mPASS[0m /datum/unit_test/shapeshift_holoparasites 0s
+2022-10-27T05:42:46.8541451Z ##[endgroup]
+2022-10-27T05:42:46.9292759Z ##[group]/datum/unit_test/spritesheets
+2022-10-27T05:42:50.5944827Z
+2022-10-27T05:42:50.5945740Z [1;32mPASS[0m /datum/unit_test/spritesheets 3.6s
+2022-10-27T05:42:50.5946612Z ##[endgroup]
+2022-10-27T05:42:57.1137055Z ##[group]/datum/unit_test/stack_singular_name
+2022-10-27T05:42:57.1142555Z
+2022-10-27T05:42:57.1145224Z [1;32mPASS[0m /datum/unit_test/stack_singular_name 0s
+2022-10-27T05:42:57.1147574Z ##[endgroup]
+2022-10-27T05:42:57.1358739Z ##[group]/datum/unit_test/stomach
+2022-10-27T05:42:57.1694838Z
+2022-10-27T05:42:57.1695603Z [1;32mPASS[0m /datum/unit_test/stomach 0s
+2022-10-27T05:42:57.1696272Z ##[endgroup]
+2022-10-27T05:42:57.1961163Z ##[group]/datum/unit_test/strip_menu_ui_status
+2022-10-27T05:42:57.2480737Z
+2022-10-27T05:42:57.2481561Z [1;32mPASS[0m /datum/unit_test/strip_menu_ui_status 0.1s
+2022-10-27T05:42:57.2483682Z ##[endgroup]
+2022-10-27T05:42:57.3124509Z ##[group]/datum/unit_test/subsystem_init
+2022-10-27T05:42:57.3124738Z
+2022-10-27T05:42:57.3127230Z [1;32mPASS[0m /datum/unit_test/subsystem_init 0s
+2022-10-27T05:42:57.3128294Z ##[endgroup]
+2022-10-27T05:42:57.3335312Z ##[group]/datum/unit_test/suit_storage_icons
+2022-10-27T05:42:59.0884928Z 1 - /obj/item/ammo_casing/shotgun using invalid worn_icon_state, "shell"
+2022-10-27T05:42:59.1022656Z 2 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun"
+2022-10-27T05:42:59.1167874Z 3 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus"
+2022-10-27T05:42:59.1313544Z 4 - /obj/item/gun/energy/beam_rifle using invalid icon_state, "esniper"
+2022-10-27T05:42:59.1335197Z 5 - /obj/item/gun/energy/lasercannon using invalid icon_state, "lasercannon"
+2022-10-27T05:42:59.1363131Z 6 - /obj/item/gun/energy/ionrifle using invalid icon_state, "ionrifle"
+2022-10-27T05:42:59.1364702Z 7 - /obj/item/gun/energy/ionrifle/carbine using invalid icon_state, "ioncarbine"
+2022-10-27T05:42:59.1507295Z 8 - /obj/item/tome using invalid icon_state, "tome"
+2022-10-27T05:42:59.1546690Z 9 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade"
+2022-10-27T05:42:59.1558801Z 10 - /obj/item/nullrod/staff using invalid icon_state, "godstaff-red"
+2022-10-27T05:42:59.1561300Z 11 - /obj/item/nullrod/staff/blue using invalid icon_state, "godstaff-blue"
+2022-10-27T05:42:59.1647859Z 12 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife"
+2022-10-27T05:42:59.1657290Z 13 - /obj/item/nullrod/spear using invalid icon_state, "ratvarian_spear"
+2022-10-27T05:42:59.1666968Z 14 - /obj/item/candle using invalid icon_state, "candle1"
+2022-10-27T05:42:59.2050751Z 15 - /obj/item/toy/eightball using invalid icon_state, "eightball"
+2022-10-27T05:42:59.2053756Z 16 - /obj/item/toy/mecha using invalid icon_state, "fivestarstoy"
+2022-10-27T05:42:59.2055847Z 17 - /obj/item/toy/mecha/ripley using invalid icon_state, "ripleytoy"
+2022-10-27T05:42:59.2058896Z 18 - /obj/item/toy/mecha/ripleymkii using invalid icon_state, "ripleymkiitoy"
+2022-10-27T05:42:59.2061681Z 19 - /obj/item/toy/mecha/hauler using invalid icon_state, "haulertoy"
+2022-10-27T05:42:59.2064463Z 20 - /obj/item/toy/mecha/clarke using invalid icon_state, "clarketoy"
+2022-10-27T05:42:59.2067351Z 21 - /obj/item/toy/mecha/odysseus using invalid icon_state, "odysseustoy"
+2022-10-27T05:42:59.2069885Z 22 - /obj/item/toy/mecha/gygax using invalid icon_state, "gygaxtoy"
+2022-10-27T05:42:59.2072424Z 23 - /obj/item/toy/mecha/durand using invalid icon_state, "durandtoy"
+2022-10-27T05:42:59.2075046Z 24 - /obj/item/toy/mecha/savannahivanov using invalid icon_state, "savannahivanovtoy"
+2022-10-27T05:42:59.2077536Z 25 - /obj/item/toy/mecha/phazon using invalid icon_state, "phazontoy"
+2022-10-27T05:42:59.2080032Z 26 - /obj/item/toy/mecha/honk using invalid icon_state, "honktoy"
+2022-10-27T05:42:59.2083569Z 27 - /obj/item/toy/mecha/darkgygax using invalid icon_state, "darkgygaxtoy"
+2022-10-27T05:42:59.2085844Z 28 - /obj/item/toy/mecha/mauler using invalid icon_state, "maulertoy"
+2022-10-27T05:42:59.2088536Z 29 - /obj/item/toy/mecha/darkhonk using invalid icon_state, "darkhonktoy"
+2022-10-27T05:42:59.2091361Z 30 - /obj/item/toy/mecha/deathripley using invalid icon_state, "deathripleytoy"
+2022-10-27T05:42:59.2094603Z 31 - /obj/item/toy/mecha/reticence using invalid icon_state, "reticencetoy"
+2022-10-27T05:42:59.2096993Z 32 - /obj/item/toy/mecha/marauder using invalid icon_state, "maraudertoy"
+2022-10-27T05:42:59.2099775Z 33 - /obj/item/toy/mecha/seraph using invalid icon_state, "seraphtoy"
+2022-10-27T05:42:59.2102793Z 34 - /obj/item/toy/mecha/firefighter using invalid icon_state, "firefightertoy"
+2022-10-27T05:42:59.2105424Z 35 - /obj/item/toy/waterballoon using invalid icon_state, "waterballoon-e"
+2022-10-27T05:42:59.2107991Z 36 - /obj/item/toy/balloon using invalid icon_state, "balloon"
+2022-10-27T05:42:59.2111052Z 37 - /obj/item/toy/balloon/corgi using invalid icon_state, "corgi"
+2022-10-27T05:42:59.2113846Z 38 - /obj/item/toy/balloon/syndicate using invalid icon_state, "syndballoon"
+2022-10-27T05:42:59.2116990Z 39 - /obj/item/toy/balloon/arrest using invalid icon_state, "arrestballoon"
+2022-10-27T05:42:59.2119545Z 40 - /obj/item/toy/captainsaid using invalid icon_state, "captainsaid_off"
+2022-10-27T05:42:59.2122005Z 41 - /obj/item/toy/spinningtoy using invalid icon_state, "singularity_s1"
+2022-10-27T05:42:59.2127416Z 42 - /obj/item/toy/ammo/gun using invalid icon_state, "357OLD-7"
+2022-10-27T05:42:59.2130032Z 43 - /obj/item/toy/sword using invalid icon_state, "e_sword"
+2022-10-27T05:42:59.2132828Z 44 - /obj/item/toy/foamblade using invalid icon_state, "foamblade"
+2022-10-27T05:42:59.2135633Z 45 - /obj/item/toy/windup_toolbox using invalid icon_state, "green"
+2022-10-27T05:42:59.2141209Z 46 - /obj/item/toy/snappop using invalid icon_state, "snappop"
+2022-10-27T05:42:59.2144552Z 47 - /obj/item/toy/talking using invalid icon_state, "owlprize"
+2022-10-27T05:42:59.2146583Z 48 - /obj/item/toy/talking/ai using invalid icon_state, "AI"
+2022-10-27T05:42:59.2149175Z 49 - /obj/item/toy/talking/codex_gigas using invalid icon_state, "demonomicon"
+2022-10-27T05:42:59.2151786Z 50 - /obj/item/toy/talking/griffin using invalid icon_state, "griffinprize"
+2022-10-27T05:42:59.2155964Z 51 - /obj/item/toy/nuke using invalid icon_state, "nuketoyidle"
+2022-10-27T05:42:59.2157504Z 52 - /obj/item/toy/minimeteor using invalid icon_state, "minimeteor"
+2022-10-27T05:42:59.2160224Z 53 - /obj/item/toy/redbutton using invalid icon_state, "bigred"
+2022-10-27T05:42:59.2163069Z 54 - /obj/item/toy/snowball using invalid icon_state, "snowball"
+2022-10-27T05:42:59.2165858Z 55 - /obj/item/toy/beach_ball using invalid icon_state, "ball"
+2022-10-27T05:42:59.2168809Z 56 - /obj/item/toy/beach_ball/baseball using invalid icon_state, "baseball"
+2022-10-27T05:42:59.2171419Z 57 - /obj/item/toy/beach_ball/holoball using invalid icon_state, "basketball"
+2022-10-27T05:42:59.2174156Z 58 - /obj/item/toy/beach_ball/holoball/dodgeball using invalid icon_state, "dodgeball"
+2022-10-27T05:42:59.2182197Z 59 - /obj/item/toy/toy_xeno using invalid icon_state, "toy_xeno"
+2022-10-27T05:42:59.2185181Z 60 - /obj/item/toy/cattoy using invalid icon_state, "toy_mouse"
+2022-10-27T05:42:59.2187605Z 61 - /obj/item/toy/figure using invalid icon_state, "nuketoy"
+2022-10-27T05:42:59.2190489Z 62 - /obj/item/toy/figure/cmo using invalid icon_state, "cmo"
+2022-10-27T05:42:59.2193253Z 63 - /obj/item/toy/figure/assistant using invalid icon_state, "assistant"
+2022-10-27T05:42:59.2196041Z 64 - /obj/item/toy/figure/atmos using invalid icon_state, "atmos"
+2022-10-27T05:42:59.2198863Z 65 - /obj/item/toy/figure/bartender using invalid icon_state, "bartender"
+2022-10-27T05:42:59.2201614Z 66 - /obj/item/toy/figure/borg using invalid icon_state, "borg"
+2022-10-27T05:42:59.2204442Z 67 - /obj/item/toy/figure/botanist using invalid icon_state, "botanist"
+2022-10-27T05:42:59.2207240Z 68 - /obj/item/toy/figure/captain using invalid icon_state, "captain"
+2022-10-27T05:42:59.2210113Z 69 - /obj/item/toy/figure/cargotech using invalid icon_state, "cargotech"
+2022-10-27T05:42:59.2212868Z 70 - /obj/item/toy/figure/ce using invalid icon_state, "ce"
+2022-10-27T05:42:59.2215699Z 71 - /obj/item/toy/figure/chaplain using invalid icon_state, "chaplain"
+2022-10-27T05:42:59.2218625Z 72 - /obj/item/toy/figure/chef using invalid icon_state, "chef"
+2022-10-27T05:42:59.2221486Z 73 - /obj/item/toy/figure/chemist using invalid icon_state, "chemist"
+2022-10-27T05:42:59.2224313Z 74 - /obj/item/toy/figure/clown using invalid icon_state, "clown"
+2022-10-27T05:42:59.2227123Z 75 - /obj/item/toy/figure/ian using invalid icon_state, "ian"
+2022-10-27T05:42:59.2229950Z 76 - /obj/item/toy/figure/detective using invalid icon_state, "detective"
+2022-10-27T05:42:59.2232724Z 77 - /obj/item/toy/figure/dsquad using invalid icon_state, "dsquad"
+2022-10-27T05:42:59.2236741Z 78 - /obj/item/toy/figure/engineer using invalid icon_state, "engineer"
+2022-10-27T05:42:59.2239402Z 79 - /obj/item/toy/figure/geneticist using invalid icon_state, "geneticist"
+2022-10-27T05:42:59.2242217Z 80 - /obj/item/toy/figure/hop using invalid icon_state, "hop"
+2022-10-27T05:42:59.2245674Z 81 - /obj/item/toy/figure/hos using invalid icon_state, "hos"
+2022-10-27T05:42:59.2247841Z 82 - /obj/item/toy/figure/qm using invalid icon_state, "qm"
+2022-10-27T05:42:59.2250699Z 83 - /obj/item/toy/figure/janitor using invalid icon_state, "janitor"
+2022-10-27T05:42:59.2253421Z 84 - /obj/item/toy/figure/lawyer using invalid icon_state, "lawyer"
+2022-10-27T05:42:59.2256926Z 85 - /obj/item/toy/figure/curator using invalid icon_state, "curator"
+2022-10-27T05:42:59.2260176Z 86 - /obj/item/toy/figure/md using invalid icon_state, "md"
+2022-10-27T05:42:59.2262399Z 87 - /obj/item/toy/figure/paramedic using invalid icon_state, "paramedic"
+2022-10-27T05:42:59.2265225Z 88 - /obj/item/toy/figure/psychologist using invalid icon_state, "psychologist"
+2022-10-27T05:42:59.2268046Z 89 - /obj/item/toy/figure/prisoner using invalid icon_state, "prisoner"
+2022-10-27T05:42:59.2270732Z 90 - /obj/item/toy/figure/mime using invalid icon_state, "mime"
+2022-10-27T05:42:59.2273548Z 91 - /obj/item/toy/figure/miner using invalid icon_state, "miner"
+2022-10-27T05:42:59.2276353Z 92 - /obj/item/toy/figure/ninja using invalid icon_state, "ninja"
+2022-10-27T05:42:59.2279783Z 93 - /obj/item/toy/figure/wizard using invalid icon_state, "wizard"
+2022-10-27T05:42:59.2281951Z 94 - /obj/item/toy/figure/rd using invalid icon_state, "rd"
+2022-10-27T05:42:59.2284816Z 95 - /obj/item/toy/figure/roboticist using invalid icon_state, "roboticist"
+2022-10-27T05:42:59.2287567Z 96 - /obj/item/toy/figure/scientist using invalid icon_state, "scientist"
+2022-10-27T05:42:59.2290280Z 97 - /obj/item/toy/figure/syndie using invalid icon_state, "syndie"
+2022-10-27T05:42:59.2293161Z 98 - /obj/item/toy/figure/secofficer using invalid icon_state, "secofficer"
+2022-10-27T05:42:59.2295983Z 99 - /obj/item/toy/figure/virologist using invalid icon_state, "virologist"
+2022-10-27T05:42:59.2298894Z 100 - /obj/item/toy/figure/warden using invalid icon_state, "warden"
+2022-10-27T05:42:59.2301934Z 101 - /obj/item/toy/dummy using invalid icon_state, "puppet"
+2022-10-27T05:42:59.2304886Z 102 - /obj/item/toy/seashell using invalid icon_state, "shell1"
+2022-10-27T05:42:59.2307528Z 103 - /obj/item/toy/brokenradio using invalid icon_state, "broken_radio"
+2022-10-27T05:42:59.2310163Z 104 - /obj/item/toy/braintoy using invalid icon_state, "brain-old"
+2022-10-27T05:42:59.2315630Z 105 - /obj/item/toy/reality_pierce using invalid icon_state, "pierced_illusion"
+2022-10-27T05:42:59.2318230Z 106 - /obj/item/toy/foamfinger using invalid icon_state, "foamfinger"
+2022-10-27T05:42:59.2320978Z 107 - /obj/item/toy/intento using invalid icon_state, "blank"
+2022-10-27T05:42:59.2380048Z 108 - /obj/item/toy/sprayoncan using invalid icon_state, "sprayoncan"
+2022-10-27T05:42:59.2380659Z 109 - /obj/item/toy/xmas_cracker using invalid icon_state, "cracker"
+2022-10-27T05:42:59.2381172Z 110 - /obj/item/cultivator/rake using invalid icon_state, "rake"
+2022-10-27T05:42:59.2381690Z 111 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet"
+2022-10-27T05:42:59.2382240Z 112 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade"
+2022-10-27T05:42:59.3124390Z 113 - /obj/item/reagent_containers/hypospray/medipen using invalid worn_icon_state, "medipen"
+2022-10-27T05:42:59.3278187Z 114 - /obj/item/storage/pill_bottle using invalid icon_state, "pill_canister"
+2022-10-27T05:42:59.3287606Z 115 - /obj/item/analyzer/ranged using invalid icon_state, "analyzerranged"
+2022-10-27T05:42:59.3880589Z 116 - /obj/item/organ/internal/regenerative_core/legion using invalid icon_state, "legion_soul"
+2022-10-27T05:42:59.3891926Z 117 - /obj/item/spear/bamboospear using invalid icon_state, "bamboo_spear0"
+2022-10-27T05:42:59.3936485Z 118 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan"
+2022-10-27T05:42:59.3938721Z 119 - /obj/item/abductor/silencer using invalid icon_state, "silencer"
+2022-10-27T05:42:59.3939330Z 120 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message"
+2022-10-27T05:42:59.3955530Z 121 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass"
+2022-10-27T05:42:59.3960287Z 122 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg"
+2022-10-27T05:42:59.3963042Z 123 - /obj/item/banner using invalid icon_state, "banner"
+2022-10-27T05:42:59.3966004Z 124 - /obj/item/banner/security using invalid icon_state, "banner_security"
+2022-10-27T05:42:59.3968500Z 125 - /obj/item/banner/medical using invalid icon_state, "banner_medical"
+2022-10-27T05:42:59.3971572Z 126 - /obj/item/banner/science using invalid icon_state, "banner_science"
+2022-10-27T05:42:59.3974330Z 127 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo"
+2022-10-27T05:42:59.3977163Z 128 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering"
+2022-10-27T05:42:59.3980201Z 129 - /obj/item/banner/red using invalid icon_state, "banner-red"
+2022-10-27T05:42:59.3983133Z 130 - /obj/item/banner/blue using invalid icon_state, "banner-blue"
+2022-10-27T05:42:59.4023342Z 131 - /obj/item/gun/magic/staff using invalid icon_state, "staff"
+2022-10-27T05:42:59.4025602Z 132 - /obj/item/gun/magic/staff/change using invalid icon_state, "staffofchange"
+2022-10-27T05:42:59.4028458Z 133 - /obj/item/gun/magic/staff/animate using invalid icon_state, "staffofanimation"
+2022-10-27T05:42:59.4031283Z 134 - /obj/item/gun/magic/staff/healing using invalid icon_state, "staffofhealing"
+2022-10-27T05:42:59.4034153Z 135 - /obj/item/gun/magic/staff/chaos using invalid icon_state, "staffofchaos"
+2022-10-27T05:42:59.4036955Z 136 - /obj/item/gun/magic/staff/door using invalid icon_state, "staffofdoor"
+2022-10-27T05:42:59.4039732Z 137 - /obj/item/gun/magic/staff/honk using invalid icon_state, "honker"
+2022-10-27T05:42:59.4045070Z 138 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff"
+2022-10-27T05:42:59.4047723Z 139 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff"
+2022-10-27T05:42:59.4050532Z 140 - /obj/item/gun/magic/staff/babel using invalid worn_icon_state, "babelstaff"
+2022-10-27T05:42:59.4053458Z 141 - /obj/item/gun/magic/staff/necropotence using invalid worn_icon_state, "necrostaff"
+2022-10-27T05:42:59.4056307Z 142 - /obj/item/gun/magic/staff/wipe using invalid worn_icon_state, "wipestaff"
+2022-10-27T05:42:59.4075733Z 143 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass"
+2022-10-27T05:42:59.4078221Z 144 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch"
+2022-10-27T05:42:59.4083656Z 145 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw"
+2022-10-27T05:42:59.4096186Z 146 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised"
+2022-10-27T05:42:59.4103014Z 147 - /obj/item/multitool using invalid icon_state, "multitool"
+2022-10-27T05:42:59.4106594Z 148 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg"
+2022-10-27T05:42:59.4108989Z 149 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit"
+2022-10-27T05:42:59.4112331Z 150 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag"
+2022-10-27T05:42:59.4114785Z 151 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag"
+2022-10-27T05:42:59.4117882Z 152 - /obj/item/cane using invalid icon_state, "cane"
+2022-10-27T05:42:59.4121455Z 153 - /obj/item/cane/white using invalid icon_state, "cane_white"
+2022-10-27T05:42:59.4123404Z 154 - /obj/item/megaphone/clown using invalid icon_state, "megaphone-clown"
+2022-10-27T05:42:59.4142890Z 155 - /obj/item/food/pie/cream using invalid icon_state, "pie"
+2022-10-27T05:42:59.4157129Z 156 - /obj/item/instrument/bikehorn using invalid icon_state, "bike_horn"
+2022-10-27T05:42:59.4160055Z 157 - /obj/item/reagent_containers/cup/soda_cans/canned_laughter using invalid icon_state, "laughter"
+2022-10-27T05:42:59.4172872Z 158 - /obj/item/grown/bananapeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4173955Z 159 - /obj/item/grown/bananapeel/bombanana using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4174824Z 160 - /obj/item/grown/bananapeel/mimanapeel using invalid icon_state, "mimana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4176072Z 161 - /obj/item/grown/bananapeel/bluespace using invalid icon_state, "bluenana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4177252Z 162 - /obj/item/grown/bananapeel/specialpeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4178650Z 163 - /obj/item/food/grown/banana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4179781Z 164 - /obj/item/food/grown/banana/bombanana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4180904Z 165 - /obj/item/food/grown/banana/mime using invalid icon_state, "mimana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4182029Z 166 - /obj/item/food/grown/banana/bluespace using invalid icon_state, "bluenana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4183368Z 167 - /obj/item/food/grown/banana/bunch using invalid icon_state, "banana_bunch" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-10-27T05:42:59.4184222Z 168 - /obj/item/stack/spacecash/c1 using invalid icon_state, "spacecash1"
+2022-10-27T05:42:59.4188146Z 169 - /obj/item/stack/spacecash/c10 using invalid icon_state, "spacecash10"
+2022-10-27T05:42:59.4191119Z 170 - /obj/item/stack/spacecash/c20 using invalid icon_state, "spacecash20"
+2022-10-27T05:42:59.4194008Z 171 - /obj/item/stack/spacecash/c50 using invalid icon_state, "spacecash50"
+2022-10-27T05:42:59.4196852Z 172 - /obj/item/stack/spacecash/c100 using invalid icon_state, "spacecash100"
+2022-10-27T05:42:59.4199667Z 173 - /obj/item/stack/spacecash/c200 using invalid icon_state, "spacecash200"
+2022-10-27T05:42:59.4202843Z 174 - /obj/item/stack/spacecash/c500 using invalid icon_state, "spacecash500"
+2022-10-27T05:42:59.4205536Z 175 - /obj/item/stack/spacecash/c1000 using invalid icon_state, "spacecash1000"
+2022-10-27T05:42:59.4208409Z 176 - /obj/item/stack/spacecash/c10000 using invalid icon_state, "spacecash10000"
+2022-10-27T05:42:59.4211295Z 177 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger"
+2022-10-27T05:42:59.4221553Z 178 - /obj/item/kitchen/fork using invalid icon_state, "fork"
+2022-10-27T05:42:59.4224344Z 179 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork"
+2022-10-27T05:42:59.4231841Z 180 - /obj/item/kitchen/spoon using invalid icon_state, "spoon"
+2022-10-27T05:42:59.4234746Z 181 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon"
+2022-10-27T05:42:59.4242352Z 182 - /obj/item/bonesetter using invalid icon_state, "bonesetter"
+2022-10-27T05:42:59.4244975Z 183 - /obj/item/cautery using invalid icon_state, "cautery"
+2022-10-27T05:42:59.4247875Z 184 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery"
+2022-10-27T05:42:59.4250639Z 185 - /obj/item/hemostat using invalid icon_state, "hemostat"
+2022-10-27T05:42:59.4253571Z 186 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs"
+2022-10-27T05:42:59.4256376Z 187 - /obj/item/retractor using invalid icon_state, "retractor"
+2022-10-27T05:42:59.4259443Z 188 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor"
+2022-10-27T05:42:59.4262427Z 189 - /obj/item/scalpel using invalid icon_state, "scalpel"
+2022-10-27T05:42:59.4265163Z 190 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel"
+2022-10-27T05:42:59.4268021Z 191 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel"
+2022-10-27T05:42:59.4271061Z 192 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes"
+2022-10-27T05:42:59.4277210Z 193 - /obj/item/stack/medical/bruise_pack using invalid icon_state, "brutepack"
+2022-10-27T05:42:59.4279201Z 194 - /obj/item/stack/medical/gauze using invalid icon_state, "gauze"
+2022-10-27T05:42:59.4283526Z 195 - /obj/item/stack/medical/suture using invalid icon_state, "suture"
+2022-10-27T05:42:59.4286019Z 196 - /obj/item/stack/medical/suture/medicated using invalid icon_state, "suture_purp"
+2022-10-27T05:42:59.4288604Z 197 - /obj/item/stack/medical/ointment using invalid icon_state, "ointment"
+2022-10-27T05:42:59.4291557Z 198 - /obj/item/stack/medical/mesh using invalid icon_state, "regen_mesh"
+2022-10-27T05:42:59.4294469Z 199 - /obj/item/stack/medical/mesh/advanced using invalid icon_state, "aloe_mesh"
+2022-10-27T05:42:59.4297194Z 200 - /obj/item/stack/medical/aloe using invalid icon_state, "aloe_paste"
+2022-10-27T05:42:59.4300231Z 201 - /obj/item/stack/medical/bone_gel using invalid icon_state, "bone-gel"
+2022-10-27T05:42:59.4303320Z 202 - /obj/item/stack/medical/poultice using invalid icon_state, "poultice"
+2022-10-27T05:42:59.4305972Z 203 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash"
+2022-10-27T05:42:59.4309092Z 204 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff"
+2022-10-27T05:42:59.4313422Z 205 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff"
+2022-10-27T05:42:59.4316203Z 206 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff"
+2022-10-27T05:42:59.4319067Z 207 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff"
+2022-10-27T05:42:59.4321949Z 208 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off"
+2022-10-27T05:42:59.4324829Z 209 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff"
+2022-10-27T05:42:59.4327646Z 210 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff"
+2022-10-27T05:42:59.4330391Z 211 - /obj/item/disk using invalid icon_state, "datadisk0"
+2022-10-27T05:42:59.4333368Z 212 - /obj/item/disk/holodisk using invalid icon_state, "holodisk"
+2022-10-27T05:42:59.4336344Z 213 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk"
+2022-10-27T05:42:59.4339645Z 214 - /obj/item/disk/surgery using invalid icon_state, "datadisk1"
+2022-10-27T05:42:59.4342883Z 215 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk"
+2022-10-27T05:42:59.4345896Z 216 - /obj/item/disk/tech_disk/major using invalid icon_state, "rndmajordisk"
+2022-10-27T05:42:59.4348806Z 217 - /obj/item/melee/powerfist using invalid icon_state, "powerfist"
+2022-10-27T05:42:59.4358739Z 218 - /obj/item/melee/skateboard using invalid icon_state, "skateboard"
+2022-10-27T05:42:59.4361970Z 219 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2"
+2022-10-27T05:42:59.4371577Z 220 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red"
+2022-10-27T05:42:59.4372651Z 221 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt"
+2022-10-27T05:42:59.4373753Z 222 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat"
+2022-10-27T05:42:59.4374699Z 223 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home"
+2022-10-27T05:42:59.4376875Z 224 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal"
+2022-10-27T05:42:59.4379802Z 225 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter"
+2022-10-27T05:42:59.4386397Z 226 - /obj/item/melee/energy/axe using invalid icon_state, "axe"
+2022-10-27T05:42:59.4389295Z 227 - /obj/item/melee/energy/blade using invalid icon_state, "blade"
+2022-10-27T05:42:59.4392359Z 228 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade"
+2022-10-27T05:42:59.4396069Z 229 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade"
+2022-10-27T05:42:59.4398671Z 230 - /obj/item/melee/sabre using invalid icon_state, "sabre"
+2022-10-27T05:42:59.4403118Z 231 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger"
+2022-10-27T05:42:59.4404484Z 232 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword"
+2022-10-27T05:42:59.4413439Z 233 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn"
+2022-10-27T05:42:59.4416300Z 234 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver"
+2022-10-27T05:42:59.4419326Z 235 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral"
+2022-10-27T05:42:59.4422471Z 236 - /obj/item/reagent_containers/cup/glass/flask using invalid icon_state, "flask"
+2022-10-27T05:42:59.4425277Z 237 - /obj/item/reagent_containers/cup/glass/flask/gold using invalid icon_state, "flask_gold"
+2022-10-27T05:42:59.4428045Z 238 - /obj/item/reagent_containers/cup/glass/flask/det using invalid icon_state, "detflask"
+2022-10-27T05:42:59.4430826Z 239 - /obj/item/stamp using invalid icon_state, "stamp-ok"
+2022-10-27T05:42:59.4438099Z 240 - /obj/item/stamp/qm using invalid icon_state, "stamp-qm"
+2022-10-27T05:42:59.4438587Z 241 - /obj/item/stamp/law using invalid icon_state, "stamp-law"
+2022-10-27T05:42:59.4439459Z 242 - /obj/item/stamp/captain using invalid icon_state, "stamp-cap"
+2022-10-27T05:42:59.4443481Z 243 - /obj/item/stamp/hop using invalid icon_state, "stamp-hop"
+2022-10-27T05:42:59.4446324Z 244 - /obj/item/stamp/hos using invalid icon_state, "stamp-hos"
+2022-10-27T05:42:59.4448968Z 245 - /obj/item/stamp/ce using invalid icon_state, "stamp-ce"
+2022-10-27T05:42:59.4451579Z 246 - /obj/item/stamp/rd using invalid icon_state, "stamp-rd"
+2022-10-27T05:42:59.4454530Z 247 - /obj/item/stamp/cmo using invalid icon_state, "stamp-cmo"
+2022-10-27T05:42:59.4457121Z 248 - /obj/item/stamp/denied using invalid icon_state, "stamp-deny"
+2022-10-27T05:42:59.4460087Z 249 - /obj/item/stamp/void using invalid icon_state, "stamp-void"
+2022-10-27T05:42:59.4463223Z 250 - /obj/item/stamp/clown using invalid icon_state, "stamp-clown"
+2022-10-27T05:42:59.4465824Z 251 - /obj/item/stamp/mime using invalid icon_state, "stamp-mime"
+2022-10-27T05:42:59.4468654Z 252 - /obj/item/stamp/chap using invalid icon_state, "stamp-chap"
+2022-10-27T05:42:59.4471480Z 253 - /obj/item/stamp/centcom using invalid icon_state, "stamp-centcom"
+2022-10-27T05:42:59.4474941Z 254 - /obj/item/stamp/syndicate using invalid icon_state, "stamp-syndicate"
+2022-10-27T05:42:59.4479594Z 255 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l"
+2022-10-27T05:42:59.4487494Z 256 - /obj/item/crowbar/red/caravan using invalid icon_state, "crowbar_caravan"
+2022-10-27T05:42:59.4509453Z 257 - /obj/item/crowbar/drone using invalid icon_state, "crowbar_cyborg"
+2022-10-27T05:42:59.4528797Z
+2022-10-27T05:42:59.4529293Z [1;32mPASS[0m /datum/unit_test/suit_storage_icons 2.1s
+2022-10-27T05:42:59.4529946Z ##[endgroup]
+2022-10-27T05:43:01.5221964Z ##[group]/datum/unit_test/amputation
+2022-10-27T05:43:01.5815196Z
+2022-10-27T05:43:01.5817573Z [1;32mPASS[0m /datum/unit_test/amputation 0s
+2022-10-27T05:43:01.5819941Z ##[endgroup]
+2022-10-27T05:43:01.6143865Z ##[group]/datum/unit_test/brain_surgery
+2022-10-27T05:43:01.6698394Z
+2022-10-27T05:43:01.6699379Z [1;32mPASS[0m /datum/unit_test/brain_surgery 0s
+2022-10-27T05:43:01.6700065Z ##[endgroup]
+2022-10-27T05:43:01.7064460Z ##[group]/datum/unit_test/head_transplant
+2022-10-27T05:43:01.7910615Z
+2022-10-27T05:43:01.7911507Z [1;32mPASS[0m /datum/unit_test/head_transplant 0s
+2022-10-27T05:43:01.7912215Z ##[endgroup]
+2022-10-27T05:43:01.8771339Z ##[group]/datum/unit_test/multiple_surgeries
+2022-10-27T05:43:01.9564190Z
+2022-10-27T05:43:01.9565672Z [1;32mPASS[0m /datum/unit_test/multiple_surgeries 0.1s
+2022-10-27T05:43:01.9566988Z ##[endgroup]
+2022-10-27T05:43:02.0451694Z ##[group]/datum/unit_test/start_tend_wounds
+2022-10-27T05:43:02.1021559Z
+2022-10-27T05:43:02.1023113Z [1;32mPASS[0m /datum/unit_test/start_tend_wounds 0.1s
+2022-10-27T05:43:02.1027806Z ##[endgroup]
+2022-10-27T05:43:02.1334702Z ##[group]/datum/unit_test/tend_wounds
+2022-10-27T05:43:02.2464864Z
+2022-10-27T05:43:02.2466455Z [1;32mPASS[0m /datum/unit_test/tend_wounds 0.1s
+2022-10-27T05:43:02.2471798Z ##[endgroup]
+2022-10-27T05:43:02.3971842Z ##[group]/datum/unit_test/auto_teleporter_linking
+2022-10-27T05:43:02.4364172Z
+2022-10-27T05:43:02.4365748Z [1;32mPASS[0m /datum/unit_test/auto_teleporter_linking 0.1s
+2022-10-27T05:43:02.4367360Z ##[endgroup]
+2022-10-27T05:43:02.4786335Z ##[group]/datum/unit_test/tgui_create_message
+2022-10-27T05:43:02.4787309Z
+2022-10-27T05:43:02.4792228Z [1;32mPASS[0m /datum/unit_test/tgui_create_message 0s
+2022-10-27T05:43:02.4793589Z ##[endgroup]
+2022-10-27T05:43:02.4990140Z ##[group]/datum/unit_test/timer_sanity
+2022-10-27T05:43:02.4990770Z
+2022-10-27T05:43:02.4993590Z [1;32mPASS[0m /datum/unit_test/timer_sanity 0s
+2022-10-27T05:43:02.4994358Z ##[endgroup]
+2022-10-27T05:43:02.5179295Z ##[group]/datum/unit_test/traitor
+2022-10-27T05:43:04.3257821Z
+2022-10-27T05:43:04.3259494Z [1;32mPASS[0m /datum/unit_test/traitor 1.8s
+2022-10-27T05:43:04.3309007Z ##[endgroup]
+2022-10-27T05:43:08.2246947Z ##[group]/datum/unit_test/verify_config_tags
+2022-10-27T05:43:08.2248054Z
+2022-10-27T05:43:08.2249419Z [1;32mPASS[0m /datum/unit_test/verify_config_tags 0s
+2022-10-27T05:43:08.2250078Z ##[endgroup]
+2022-10-27T05:43:08.2441208Z ##[group]/datum/unit_test/wizard_loadout
+2022-10-27T05:43:08.3578743Z
+2022-10-27T05:43:08.3580409Z [1;32mPASS[0m /datum/unit_test/wizard_loadout 0.1s
+2022-10-27T05:43:08.3585004Z ##[endgroup]
+2022-10-27T05:43:08.5073685Z ##[group]/datum/unit_test/find_reference_sanity
+2022-10-27T05:43:08.5075807Z
+2022-10-27T05:43:08.5076772Z [1;32mPASS[0m /datum/unit_test/find_reference_sanity 0s
+2022-10-27T05:43:08.5077672Z ##[endgroup]
+2022-10-27T05:43:08.5272155Z ##[group]/datum/unit_test/find_reference_baseline
+2022-10-27T05:43:08.5274693Z
+2022-10-27T05:43:08.5275872Z [1;32mPASS[0m /datum/unit_test/find_reference_baseline 0s
+2022-10-27T05:43:08.5276640Z ##[endgroup]
+2022-10-27T05:43:08.5468423Z ##[group]/datum/unit_test/find_reference_exotic
+2022-10-27T05:43:08.5470529Z
+2022-10-27T05:43:08.5474746Z [1;32mPASS[0m /datum/unit_test/find_reference_exotic 0s
+2022-10-27T05:43:08.5475293Z ##[endgroup]
+2022-10-27T05:43:08.5665386Z ##[group]/datum/unit_test/find_reference_esoteric
+2022-10-27T05:43:08.5669399Z
+2022-10-27T05:43:08.5676075Z [1;32mPASS[0m /datum/unit_test/find_reference_esoteric 0s
+2022-10-27T05:43:08.5677072Z ##[endgroup]
+2022-10-27T05:43:08.5866537Z ##[group]/datum/unit_test/find_reference_null_key_entry
+2022-10-27T05:43:08.5868456Z
+2022-10-27T05:43:08.5869492Z [1;32mPASS[0m /datum/unit_test/find_reference_null_key_entry 0s
+2022-10-27T05:43:08.5870146Z ##[endgroup]
+2022-10-27T05:43:08.6166348Z ##[group]/datum/unit_test/find_reference_assoc_investigation
+2022-10-27T05:43:08.6171705Z
+2022-10-27T05:43:08.6172220Z [1;32mPASS[0m /datum/unit_test/find_reference_assoc_investigation 0s
+2022-10-27T05:43:08.6172854Z ##[endgroup]
+2022-10-27T05:43:08.6356029Z ##[group]/datum/unit_test/find_reference_static_investigation
+2022-10-27T05:43:08.8684547Z
+2022-10-27T05:43:08.8685577Z [1;32mPASS[0m /datum/unit_test/find_reference_static_investigation 0.2s
+2022-10-27T05:43:08.8686517Z ##[endgroup]
+2022-10-27T05:43:09.0881655Z ##[group]/datum/unit_test/monkey_business
+2022-10-27T05:43:47.8646118Z
+2022-10-27T05:43:47.8647763Z [1;32mPASS[0m /datum/unit_test/monkey_business 38.8s
+2022-10-27T05:43:47.8739017Z ##[endgroup]
+2022-10-27T05:43:50.1651558Z ##[group]/datum/unit_test/create_and_destroy
+2022-10-27T05:49:19.8716381Z ## REF SEARCH Beginning search for references to a /datum/computer_file/program/chatclient.
+2022-10-27T05:49:20.0425000Z ## REF SEARCH Finished searching globals
+2022-10-27T05:49:20.3029611Z ## REF SEARCH Finished searching native globals
+2022-10-27T05:52:18.0382074Z ## REF SEARCH Finished searching atoms
+2022-10-27T05:52:33.0757341Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in /datum/ntnet_conversation's [0x2104dfc2] operator var. Datums -> /datum/ntnet_conversation
+2022-10-27T05:52:33.0758787Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list).
+2022-10-27T05:52:33.0760039Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list).
+2022-10-27T05:52:33.0761156Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list).
+2022-10-27T05:52:33.0814898Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list).
+2022-10-27T05:52:33.0816178Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list).
+2022-10-27T05:52:34.6185349Z ## REF SEARCH Finished searching datums
+2022-10-27T05:52:34.6185815Z ## REF SEARCH Finished searching clients
+2022-10-27T05:52:34.6186331Z ## REF SEARCH Completed search for references to a /datum/computer_file/program/chatclient.
+2022-10-27T05:52:34.6187365Z ## TESTING: GC: -- [0x2104dfc7] | /datum/computer_file/program/chatclient was unable to be GC'd --
+2022-10-27T05:52:50.6232674Z ##[error]/datum/computer_file/program/chatclient hard deleted 1 times out of a total del count of 13
+2022-10-27T05:52:50.6242137Z FAILURE #1: /datum/computer_file/program/chatclient hard deleted 1 times out of a total del count of 13 at code/modules/unit_tests/create_and_destroy.dm:173
+2022-10-27T05:52:50.6242890Z ##[endgroup]
+2022-10-27T05:52:50.6244173Z ##[error][1;31mFAIL[0m /datum/unit_test/create_and_destroy 540.5s
+2022-10-27T05:52:50.6611817Z Shutting down Chat subsystem...
+2022-10-27T05:52:50.6612177Z Shutting down Init Profiler subsystem...
+2022-10-27T05:52:50.6612511Z Shutting down Ban Cache subsystem...
+2022-10-27T05:52:50.6612837Z Shutting down Stat Panels subsystem...
+2022-10-27T05:52:50.6613185Z Shutting down Explosions subsystem...
+2022-10-27T05:52:50.6613516Z Shutting down Pathfinder subsystem...
+2022-10-27T05:52:50.6613840Z Shutting down Minor Mapping subsystem...
+2022-10-27T05:52:50.6614149Z Shutting down Shuttle subsystem...
+2022-10-27T05:52:50.6614455Z Shutting down Lighting subsystem...
+2022-10-27T05:52:50.6614770Z Shutting down XKeyScore subsystem...
+2022-10-27T05:52:50.6615076Z Shutting down PRISM subsystem...
+2022-10-27T05:52:50.6636820Z Shutting down Icon Smoothing subsystem...
+2022-10-27T05:52:50.6637164Z Shutting down Assets subsystem...
+2022-10-27T05:52:50.6637453Z Shutting down Vote subsystem...
+2022-10-27T05:52:50.6637800Z Shutting down Persistent Paintings subsystem...
+2022-10-27T05:52:50.6638150Z Shutting down Persistence subsystem...
+2022-10-27T05:52:50.6638478Z Shutting down Atmospherics subsystem...
+2022-10-27T05:52:50.6638848Z Shutting down Wiremod Composite Templates subsystem...
+2022-10-27T05:52:50.6639197Z Shutting down Wet floors subsystem...
+2022-10-27T05:52:50.6639504Z Shutting down Weather subsystem...
+2022-10-27T05:52:50.6639813Z Shutting down Wardrobe subsystem...
+2022-10-27T05:52:50.6640129Z Shutting down Verb Manager subsystem...
+2022-10-27T05:52:50.6640449Z Shutting down Tram Process subsystem...
+2022-10-27T05:52:50.6640764Z Shutting down Traitor subsystem...
+2022-10-27T05:52:50.6641059Z Shutting down Throwing subsystem...
+2022-10-27T05:52:50.6641363Z Shutting down tgui subsystem...
+2022-10-27T05:52:50.6641692Z Shutting down Supermatter Cascade subsystem...
+2022-10-27T05:52:50.6642010Z Shutting down Sun subsystem...
+2022-10-27T05:52:50.6642333Z Shutting down Speech Controller subsystem...
+2022-10-27T05:52:50.6642653Z Shutting down Space Drift subsystem...
+2022-10-27T05:52:50.6642962Z Shutting down Smoke subsystem...
+2022-10-27T05:52:50.6643271Z Shutting down Singularity subsystem...
+2022-10-27T05:52:50.6643578Z Shutting down Radio subsystem...
+2022-10-27T05:52:50.6643875Z Shutting down Radiation subsystem...
+2022-10-27T05:52:50.6644483Z Shutting down Projectiles subsystem...
+2022-10-27T05:52:50.6644819Z Shutting down Processing subsystem...
+2022-10-27T05:52:50.6645158Z Shutting down Points of Interest subsystem...
+2022-10-27T05:52:50.6645489Z Shutting down Plumbing subsystem...
+2022-10-27T05:52:50.6645780Z Shutting down Ping subsystem...
+2022-10-27T05:52:50.6646088Z Shutting down Parallax subsystem...
+2022-10-27T05:52:50.6646396Z Shutting down pAI subsystem...
+2022-10-27T05:52:50.6646701Z Shutting down Overlay subsystem...
+2022-10-27T05:52:50.9809746Z Shutting down Objects subsystem...
+2022-10-27T05:52:50.9810088Z Shutting down Obj Tab Items subsystem...
+2022-10-27T05:52:50.9810410Z Shutting down NPC Pool subsystem...
+2022-10-27T05:52:50.9811012Z Shutting down Night Shift subsystem...
+2022-10-27T05:52:50.9811331Z Shutting down Movement Loops subsystem...
+2022-10-27T05:52:50.9811653Z Shutting down Movement Handler subsystem...
+2022-10-27T05:52:50.9811975Z Shutting down MouseEntered subsystem...
+2022-10-27T05:52:50.9812266Z Shutting down Mood subsystem...
+2022-10-27T05:52:50.9812709Z Shutting down Mobs subsystem...
+2022-10-27T05:52:50.9813020Z Shutting down Materials subsystem...
+2022-10-27T05:52:50.9815026Z Shutting down Lua Scripting subsystem...
+2022-10-27T05:52:50.9975219Z Shutting down Library Loading subsystem...
+2022-10-27T05:52:50.9975575Z Shutting down Lag Switch subsystem...
+2022-10-27T05:52:50.9975912Z Shutting down Idling NPC Pool subsystem...
+2022-10-27T05:52:50.9976225Z Shutting down Foam subsystem...
+2022-10-27T05:52:50.9976518Z Shutting down Fluid subsystem...
+2022-10-27T05:52:50.9976823Z Shutting down Fire Burning subsystem...
+2022-10-27T05:52:50.9977153Z Shutting down Fast Processing subsystem...
+2022-10-27T05:52:50.9977478Z Shutting down Eigenstates subsystem...
+2022-10-27T05:52:50.9977787Z Shutting down Disease subsystem...
+2022-10-27T05:52:50.9978121Z Shutting down Datum Component System subsystem...
+2022-10-27T05:52:50.9978463Z Shutting down Conveyor Belts subsystem...
+2022-10-27T05:52:50.9978939Z Shutting down Communications subsystem...
+2022-10-27T05:52:50.9979257Z Shutting down Clock Component subsystem...
+2022-10-27T05:52:50.9979599Z Shutting down Circuit Components subsystem...
+2022-10-27T05:52:50.9979926Z Shutting down Blackmarket subsystem...
+2022-10-27T05:52:50.9980248Z Shutting down Basic Avoidance subsystem...
+2022-10-27T05:52:50.9980570Z Shutting down Aura Healing subsystem...
+2022-10-27T05:52:50.9980859Z Shutting down Augury subsystem...
+2022-10-27T05:52:50.9981169Z Shutting down Asset Loading subsystem...
+2022-10-27T05:52:50.9981483Z Shutting down Antag HUDs subsystem...
+2022-10-27T05:52:50.9981788Z Shutting down Ambience subsystem...
+2022-10-27T05:52:50.9982092Z Shutting down Addiction subsystem...
+2022-10-27T05:52:50.9982383Z Shutting down Acid subsystem...
+2022-10-27T05:52:50.9982673Z Shutting down Timer subsystem...
+2022-10-27T05:52:50.9982970Z Shutting down Sound Loops subsystem...
+2022-10-27T05:52:50.9983275Z Shutting down Runechat subsystem...
+2022-10-27T05:52:50.9983571Z Shutting down Skills subsystem...
+2022-10-27T05:52:50.9983871Z Shutting down Machines subsystem...
+2022-10-27T05:52:50.9984159Z Shutting down Language subsystem...
+2022-10-27T05:52:50.9984452Z Shutting down Atoms subsystem...
+2022-10-27T05:52:51.0026223Z Shutting down Restaurant subsystem...
+2022-10-27T05:52:51.0026577Z Shutting down Economy subsystem...
+2022-10-27T05:52:51.0026908Z Shutting down Spatial Grid subsystem...
+2022-10-27T05:52:51.0030451Z Shutting down Networks subsystem...
+2022-10-27T05:52:51.0030787Z Shutting down Time Tracking subsystem...
+2022-10-27T05:52:51.0031114Z Shutting down Research subsystem...
+2022-10-27T05:52:51.0031432Z Shutting down Early Assets subsystem...
+2022-10-27T05:52:51.0031759Z Shutting down Mapping subsystem...
+2022-10-27T05:52:51.0032092Z Shutting down Trading Card Game subsystem...
+2022-10-27T05:52:51.0032426Z Shutting down Ticker subsystem...
+2022-10-27T05:52:51.0039410Z Unable to locate admins backup file.
+2022-10-27T05:52:51.0051941Z Shutting down AI Controller Ticker subsystem...
+2022-10-27T05:52:51.0052530Z Shutting down AI Behavior Ticker subsystem...
+2022-10-27T05:52:51.0052855Z Shutting down AI movement subsystem...
+2022-10-27T05:52:51.0053132Z Shutting down Jobs subsystem...
+2022-10-27T05:52:51.0053429Z Shutting down IDs and Access subsystem...
+2022-10-27T05:52:51.0053728Z Shutting down Events subsystem...
+2022-10-27T05:52:51.0054019Z Shutting down Reagents subsystem...
+2022-10-27T05:52:51.0054311Z Shutting down Quirks subsystem...
+2022-10-27T05:52:51.0054584Z Shutting down Station subsystem...
+2022-10-27T05:52:51.0054886Z Shutting down Achievements subsystem...
+2022-10-27T05:52:51.0057375Z Shutting down Discord subsystem...
+2022-10-27T05:52:51.0057678Z Shutting down Security Level subsystem...
+2022-10-27T05:52:51.0058123Z Shutting down Vis contents overlays subsystem...
+2022-10-27T05:52:51.0058446Z Shutting down Greyscale subsystem...
+2022-10-27T05:52:51.0059042Z Shutting down Instruments subsystem...
+2022-10-27T05:52:51.0059340Z Shutting down Sounds subsystem...
+2022-10-27T05:52:51.0059631Z Shutting down Input subsystem...
+2022-10-27T05:52:51.0060822Z Shutting down Server Tasks subsystem...
+2022-10-27T05:52:51.0064456Z Shutting down Blackbox subsystem...
+2022-10-27T05:52:51.0064838Z Shutting down Database subsystem...
+2022-10-27T05:52:51.0065213Z Shutting down Garbage subsystem...
+2022-10-27T05:52:54.6306978Z Shutting down Title Screen subsystem...
+2022-10-27T05:52:54.6307928Z Shutting down Profiler subsystem...
+2022-10-27T05:52:54.6308337Z Shutdown complete
+2022-10-27T05:52:54.6308698Z Test run failed!
+2022-10-27T05:52:54.6309027Z Unit Tests failed!
+2022-10-27T05:52:58.2975208Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory
+2022-10-27T05:52:58.2988425Z ##[error]Process completed with exit code 1.
+2022-10-27T05:52:58.3038084Z ##[group]Run actions/upload-artifact@v3
+2022-10-27T05:52:58.3038386Z with:
+2022-10-27T05:52:58.3038632Z name: test_artifacts_metastation
+2022-10-27T05:52:58.3038928Z path: data/screenshots_new/
+2022-10-27T05:52:58.3039208Z retention-days: 1
+2022-10-27T05:52:58.3039483Z if-no-files-found: warn
+2022-10-27T05:52:58.3039747Z ##[endgroup]
+2022-10-27T05:52:58.4273001Z With the provided path, there will be 85 files uploaded
+2022-10-27T05:52:58.4279080Z Starting artifact upload
+2022-10-27T05:52:58.4280271Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging
+2022-10-27T05:52:58.4280911Z Artifact name is valid!
+2022-10-27T05:52:58.4956400Z Container for artifact "test_artifacts_metastation" successfully created. Starting upload of file(s)
+2022-10-27T05:53:02.6649338Z Total size of all the files uploaded is 138917 bytes
+2022-10-27T05:53:02.6650349Z File upload process has finished. Finalizing the artifact upload
+2022-10-27T05:53:02.6917894Z Artifact has been finalized. All files have been successfully uploaded!
+2022-10-27T05:53:02.6918592Z
+2022-10-27T05:53:02.6919221Z The raw size of all the files that were specified for upload is 139272 bytes
+2022-10-27T05:53:02.6920199Z The size of all the files that were uploaded is 138917 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage
+2022-10-27T05:53:02.6920771Z
+2022-10-27T05:53:02.6922015Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads
+2022-10-27T05:53:02.6922715Z
+2022-10-27T05:53:02.6923052Z Artifact test_artifacts_metastation has been successfully uploaded!
+2022-10-27T05:53:02.7064563Z Post job cleanup.
+2022-10-27T05:53:02.8553446Z [command]/usr/bin/git version
+2022-10-27T05:53:02.8609457Z git version 2.38.1
+2022-10-27T05:53:02.8663423Z Temporarily overriding HOME='/home/runner/work/_temp/7f4c4ca9-c205-4fcf-92a4-cc2e0f6184cd' before making global git config changes
+2022-10-27T05:53:02.8664612Z Adding repository directory to the temporary git global config as a safe directory
+2022-10-27T05:53:02.8670010Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2022-10-27T05:53:02.8717327Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2022-10-27T05:53:02.8760496Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
+2022-10-27T05:53:02.9064609Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2022-10-27T05:53:02.9096473Z http.https://github.com/.extraheader
+2022-10-27T05:53:02.9110240Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
+2022-10-27T05:53:02.9151201Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
+2022-10-27T05:53:02.9632628Z Print service container logs: bdaac24feb7948af9ae1cfcb2f1e5f3f_mysqllatest_e0031a
+2022-10-27T05:53:02.9639053Z ##[command]/usr/bin/docker logs --details b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:53:02.9874689Z 2022-10-27T05:35:47.663982Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-10-27T05:53:02.9875440Z 2022-10-27T05:35:47.664088Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 80
+2022-10-27T05:53:02.9875958Z 2022-10-27T05:35:47.671476Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-10-27T05:53:02.9876437Z 2022-10-27T05:35:48.066575Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-10-27T05:53:02.9877103Z 2022-10-27T05:35:49.266023Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
+2022-10-27T05:53:02.9877838Z 2022-10-27T05:35:52.334841Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-10-27T05:53:02.9878473Z 2022-10-27T05:35:52.337029Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 129
+2022-10-27T05:53:02.9878953Z 2022-10-27T05:35:52.352969Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-10-27T05:53:02.9879421Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started.
+2022-10-27T05:53:02.9879903Z 2022-10-27T05:35:52.530865Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-10-27T05:53:02.9880369Z 2022-10-27T05:35:52.753777Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2022-10-27T05:53:02.9880921Z 2022-10-27T05:35:52.753818Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2022-10-27T05:53:02.9881648Z 2022-10-27T05:35:52.755449Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2022-10-27T05:53:02.9882321Z 2022-10-27T05:35:52.774412Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
+2022-10-27T05:53:02.9882951Z 2022-10-27T05:35:52.775158Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
+2022-10-27T05:53:02.9883542Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
+2022-10-27T05:53:02.9883992Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
+2022-10-27T05:53:02.9884444Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started.
+2022-10-27T05:53:02.9884874Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Initializing database files
+2022-10-27T05:53:02.9885281Z 2022-10-27 05:35:52+00:00 [Note] [Entrypoint]: Database files initialized
+2022-10-27T05:53:02.9885682Z 2022-10-27 05:35:52+00:00 [Note] [Entrypoint]: Starting temporary server
+2022-10-27T05:53:02.9886079Z 2022-10-27 05:35:52+00:00 [Note] [Entrypoint]: Temporary server started.
+2022-10-27T05:53:02.9886471Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
+2022-10-27T05:53:02.9888624Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
+2022-10-27T05:53:02.9889273Z
+2022-10-27T05:53:02.9889568Z 2022-10-27 05:35:54+00:00 [Note] [Entrypoint]: Stopping temporary server
+2022-10-27T05:53:02.9889969Z 2022-10-27 05:35:57+00:00 [Note] [Entrypoint]: Temporary server stopped
+2022-10-27T05:53:02.9890280Z
+2022-10-27T05:53:02.9890742Z 2022-10-27 05:35:57+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
+2022-10-27T05:53:02.9891394Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
+2022-10-27T05:53:02.9891960Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
+2022-10-27T05:53:02.9892520Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
+2022-10-27T05:53:02.9893146Z 2022-10-27T05:35:54.998452Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.31).
+2022-10-27T05:53:02.9893808Z 2022-10-27T05:35:56.253546Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL.
+2022-10-27T05:53:02.9898747Z 2022-10-27T05:35:57.259394Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-10-27T05:53:02.9899246Z
+2022-10-27T05:53:02.9899947Z 2022-10-27T05:35:57.260761Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 1
+2022-10-27T05:53:02.9900440Z 2022-10-27T05:35:57.279827Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-10-27T05:53:02.9900902Z 2022-10-27T05:35:57.478844Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-10-27T05:53:02.9901365Z 2022-10-27T05:35:57.668028Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2022-10-27T05:53:02.9901912Z 2022-10-27T05:35:57.668071Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2022-10-27T05:53:02.9902638Z 2022-10-27T05:35:57.669759Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2022-10-27T05:53:02.9903367Z 2022-10-27T05:35:57.689543Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
+2022-10-27T05:53:02.9905472Z 2022-10-27T05:35:57.690193Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
+2022-10-27T05:53:02.9926340Z Stop and remove container: bdaac24feb7948af9ae1cfcb2f1e5f3f_mysqllatest_e0031a
+2022-10-27T05:53:02.9933347Z ##[command]/usr/bin/docker rm --force b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:53:03.2811799Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc
+2022-10-27T05:53:03.2840549Z Remove container network: github_network_552f961a7b154fc6bdcc0db4d38d15af
+2022-10-27T05:53:03.2847326Z ##[command]/usr/bin/docker network rm github_network_552f961a7b154fc6bdcc0db4d38d15af
+2022-10-27T05:53:03.3874880Z github_network_552f961a7b154fc6bdcc0db4d38d15af
+2022-10-27T05:53:03.4050424Z Cleaning up orphan processes
diff --git a/tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt b/tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt
new file mode 100644
index 000000000000..eea9b3774cac
--- /dev/null
+++ b/tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt
@@ -0,0 +1,2389 @@
+2023-11-12T08:57:50.1971985Z Requested labels: ubuntu-latest
+2023-11-12T08:57:50.1972288Z Job defined at: tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/79384/merge
+2023-11-12T08:57:50.1972523Z Reusable workflow chain:
+2023-11-12T08:57:50.1972632Z tgstation/tgstation/.github/workflows/ci_suite.yml@refs/pull/79384/merge (0f52a54577af8e336ee4407c83bc6d3bfedd1d11)
+2023-11-12T08:57:50.1972727Z -> tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/79384/merge (0f52a54577af8e336ee4407c83bc6d3bfedd1d11)
+2023-11-12T08:57:50.1972819Z Waiting for a runner to pick up this job...
+2023-11-12T08:59:41.2590058Z Job is waiting for a hosted runner to come online.
+2023-11-12T08:59:44.1017042Z Job is about to start running on the hosted runner: GitHub Actions 11 (hosted)
+2023-11-12T08:59:46.1455792Z Current runner version: '2.311.0'
+2023-11-12T08:59:46.1479790Z ##[group]Operating System
+2023-11-12T08:59:46.1480441Z Ubuntu
+2023-11-12T08:59:46.1480899Z 22.04.3
+2023-11-12T08:59:46.1481734Z LTS
+2023-11-12T08:59:46.1482077Z ##[endgroup]
+2023-11-12T08:59:46.1482560Z ##[group]Runner Image
+2023-11-12T08:59:46.1482961Z Image: ubuntu-22.04
+2023-11-12T08:59:46.1483353Z Version: 20231030.2.0
+2023-11-12T08:59:46.1484421Z Included Software: https://github.com/actions/runner-images/blob/ubuntu22/20231030.2/images/linux/Ubuntu2204-Readme.md
+2023-11-12T08:59:46.1485799Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu22%2F20231030.2
+2023-11-12T08:59:46.1486650Z ##[endgroup]
+2023-11-12T08:59:46.1487161Z ##[group]Runner Image Provisioner
+2023-11-12T08:59:46.1487606Z 2.0.312.1
+2023-11-12T08:59:46.1487945Z ##[endgroup]
+2023-11-12T08:59:46.1490099Z ##[group]GITHUB_TOKEN Permissions
+2023-11-12T08:59:46.1491698Z Actions: read
+2023-11-12T08:59:46.1492248Z Checks: read
+2023-11-12T08:59:46.1492761Z Contents: read
+2023-11-12T08:59:46.1493311Z Deployments: read
+2023-11-12T08:59:46.1493676Z Discussions: read
+2023-11-12T08:59:46.1494123Z Issues: read
+2023-11-12T08:59:46.1494582Z Metadata: read
+2023-11-12T08:59:46.1494935Z Packages: read
+2023-11-12T08:59:46.1495330Z Pages: read
+2023-11-12T08:59:46.1495763Z PullRequests: read
+2023-11-12T08:59:46.1496142Z RepositoryProjects: read
+2023-11-12T08:59:46.1496603Z SecurityEvents: read
+2023-11-12T08:59:46.1497060Z Statuses: read
+2023-11-12T08:59:46.1497394Z ##[endgroup]
+2023-11-12T08:59:46.1500314Z Secret source: None
+2023-11-12T08:59:46.1501009Z Prepare workflow directory
+2023-11-12T08:59:46.2366322Z Prepare all required actions
+2023-11-12T08:59:46.2521312Z Getting action download info
+2023-11-12T08:59:46.4989409Z Download action repository 'actions/checkout@v3' (SHA:f43a0e5ff2bd294095638e18286ca9a3d1956744)
+2023-11-12T08:59:46.6372596Z Download action repository 'actions/cache@v3' (SHA:704facf57e6136b1bc63b828d79edcd491f0ee84)
+2023-11-12T08:59:46.7365405Z Download action repository 'actions/upload-artifact@v3' (SHA:a8a3f3ad30e3422c9c7b888a15615d19a852ae32)
+2023-11-12T08:59:46.7793243Z Download action repository 'tgstation/byond-client-compatibility-check@v3' (SHA:d9fac1c9713569fa6681906325ddce115bb53365)
+2023-11-12T08:59:47.0659791Z Uses: tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/79384/merge (0f52a54577af8e336ee4407c83bc6d3bfedd1d11)
+2023-11-12T08:59:47.0662504Z ##[group] Inputs
+2023-11-12T08:59:47.0663016Z map: tramstation
+2023-11-12T08:59:47.0663530Z major:
+2023-11-12T08:59:47.0663853Z minor:
+2023-11-12T08:59:47.0664217Z max_required_byond_client: 514
+2023-11-12T08:59:47.0664786Z ##[endgroup]
+2023-11-12T08:59:47.0665727Z Complete job name: Integration Tests (tramstation) / run_integration_tests
+2023-11-12T08:59:47.1316890Z ##[group]Checking docker version
+2023-11-12T08:59:47.1331488Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}'
+2023-11-12T08:59:47.2035568Z '1.43'
+2023-11-12T08:59:47.2048856Z Docker daemon API version: '1.43'
+2023-11-12T08:59:47.2049704Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}'
+2023-11-12T08:59:47.2209793Z '1.43'
+2023-11-12T08:59:47.2229627Z Docker client API version: '1.43'
+2023-11-12T08:59:47.2235325Z ##[endgroup]
+2023-11-12T08:59:47.2239282Z ##[group]Clean up resources from previous jobs
+2023-11-12T08:59:47.2245596Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=bae3f2"
+2023-11-12T08:59:47.2382764Z ##[command]/usr/bin/docker network prune --force --filter "label=bae3f2"
+2023-11-12T08:59:47.2513406Z ##[endgroup]
+2023-11-12T08:59:47.2513906Z ##[group]Create local container network
+2023-11-12T08:59:47.2524774Z ##[command]/usr/bin/docker network create --label bae3f2 github_network_bc2270e2d9644957ba98982ec5cf35f2
+2023-11-12T08:59:47.3421425Z 7e144ec3bd040fce7400908b83369d64424efaa98e355fff9ec0d703a41602b1
+2023-11-12T08:59:47.3441937Z ##[endgroup]
+2023-11-12T08:59:47.3517647Z ##[group]Starting mysql service container
+2023-11-12T08:59:47.3536963Z ##[command]/usr/bin/docker pull mysql:latest
+2023-11-12T08:59:47.5471538Z latest: Pulling from library/mysql
+2023-11-12T08:59:47.5925068Z 8e0176adc18c: Pulling fs layer
+2023-11-12T08:59:47.5926146Z 2d2c52718f65: Pulling fs layer
+2023-11-12T08:59:47.5926867Z d88d03ce139b: Pulling fs layer
+2023-11-12T08:59:47.5927652Z 4a7d7f11aa1e: Pulling fs layer
+2023-11-12T08:59:47.5928644Z ce5949193e4c: Pulling fs layer
+2023-11-12T08:59:47.5929143Z f7f024dfb329: Pulling fs layer
+2023-11-12T08:59:47.5929598Z 5fc3c840facc: Pulling fs layer
+2023-11-12T08:59:47.5930195Z 509068e49488: Pulling fs layer
+2023-11-12T08:59:47.5930586Z cbc847bab598: Pulling fs layer
+2023-11-12T08:59:47.5930994Z 942bef62a146: Pulling fs layer
+2023-11-12T08:59:47.5931450Z f7f024dfb329: Waiting
+2023-11-12T08:59:47.5931833Z 5fc3c840facc: Waiting
+2023-11-12T08:59:47.5932180Z 509068e49488: Waiting
+2023-11-12T08:59:47.5932601Z cbc847bab598: Waiting
+2023-11-12T08:59:47.5932952Z 942bef62a146: Waiting
+2023-11-12T08:59:47.5933295Z 4a7d7f11aa1e: Waiting
+2023-11-12T08:59:47.5933717Z ce5949193e4c: Waiting
+2023-11-12T08:59:47.6370843Z 2d2c52718f65: Verifying Checksum
+2023-11-12T08:59:47.6371886Z 2d2c52718f65: Download complete
+2023-11-12T08:59:47.6628390Z d88d03ce139b: Verifying Checksum
+2023-11-12T08:59:47.6630340Z d88d03ce139b: Download complete
+2023-11-12T08:59:47.7021669Z ce5949193e4c: Verifying Checksum
+2023-11-12T08:59:47.7022614Z ce5949193e4c: Download complete
+2023-11-12T08:59:47.7184829Z 4a7d7f11aa1e: Verifying Checksum
+2023-11-12T08:59:47.7185700Z 4a7d7f11aa1e: Download complete
+2023-11-12T08:59:47.7547210Z f7f024dfb329: Download complete
+2023-11-12T08:59:47.8055625Z 509068e49488: Verifying Checksum
+2023-11-12T08:59:47.8057291Z 509068e49488: Download complete
+2023-11-12T08:59:48.0054531Z 8e0176adc18c: Verifying Checksum
+2023-11-12T08:59:48.0055844Z 8e0176adc18c: Download complete
+2023-11-12T08:59:48.0721310Z 942bef62a146: Verifying Checksum
+2023-11-12T08:59:48.0723241Z 942bef62a146: Download complete
+2023-11-12T08:59:48.2055324Z 5fc3c840facc: Verifying Checksum
+2023-11-12T08:59:48.2056029Z 5fc3c840facc: Download complete
+2023-11-12T08:59:48.2822740Z cbc847bab598: Verifying Checksum
+2023-11-12T08:59:48.2824083Z cbc847bab598: Download complete
+2023-11-12T08:59:49.3079176Z 8e0176adc18c: Pull complete
+2023-11-12T08:59:49.6617199Z 2d2c52718f65: Pull complete
+2023-11-12T08:59:49.6872468Z d88d03ce139b: Pull complete
+2023-11-12T08:59:49.8872416Z 4a7d7f11aa1e: Pull complete
+2023-11-12T08:59:49.9014484Z ce5949193e4c: Pull complete
+2023-11-12T08:59:49.9174666Z f7f024dfb329: Pull complete
+2023-11-12T08:59:51.3130074Z 5fc3c840facc: Pull complete
+2023-11-12T08:59:51.3233267Z 509068e49488: Pull complete
+2023-11-12T08:59:56.1487617Z cbc847bab598: Pull complete
+2023-11-12T08:59:56.6779169Z 942bef62a146: Pull complete
+2023-11-12T08:59:56.6823169Z Digest: sha256:1773f3c7aa9522f0014d0ad2bbdaf597ea3b1643c64c8ccc2123c64afd8b82b1
+2023-11-12T08:59:56.6835281Z Status: Downloaded newer image for mysql:latest
+2023-11-12T08:59:56.6843575Z docker.io/library/mysql:latest
+2023-11-12T08:59:56.6952276Z ##[command]/usr/bin/docker create --name c43e2a4f7a0044eda3c3640d7583be1f_mysqllatest_210664 --label bae3f2 --network github_network_bc2270e2d9644957ba98982ec5cf35f2 --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest
+2023-11-12T08:59:56.7205373Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T08:59:56.7226574Z ##[command]/usr/bin/docker start 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T08:59:57.0122389Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T08:59:57.0147762Z ##[command]/usr/bin/docker ps --all --filter id=37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
+2023-11-12T08:59:57.0270403Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded Up Less than a second (health: starting)
+2023-11-12T08:59:57.0292510Z ##[command]/usr/bin/docker port 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T08:59:57.0413612Z 3306/tcp -> 0.0.0.0:32768
+2023-11-12T08:59:57.0414454Z 3306/tcp -> [::]:32768
+2023-11-12T08:59:57.0511341Z ##[endgroup]
+2023-11-12T08:59:57.0545971Z ##[group]Waiting for all services to be ready
+2023-11-12T08:59:57.0594766Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T08:59:57.0736995Z starting
+2023-11-12T08:59:57.0767183Z mysql service is starting, waiting 2 seconds before checking again.
+2023-11-12T08:59:59.0767458Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T08:59:59.0896661Z starting
+2023-11-12T08:59:59.0908862Z mysql service is starting, waiting 4 seconds before checking again.
+2023-11-12T09:00:03.1488036Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T09:00:03.1606151Z starting
+2023-11-12T09:00:03.1617891Z mysql service is starting, waiting 8 seconds before checking again.
+2023-11-12T09:00:11.5749953Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T09:00:11.5876640Z healthy
+2023-11-12T09:00:11.5893980Z mysql service is healthy.
+2023-11-12T09:00:11.5894520Z ##[endgroup]
+2023-11-12T09:00:11.6253438Z ##[group]Run actions/checkout@v3
+2023-11-12T09:00:11.6253862Z with:
+2023-11-12T09:00:11.6254192Z repository: tgstation/tgstation
+2023-11-12T09:00:11.6254857Z token: ***
+2023-11-12T09:00:11.6255173Z ssh-strict: true
+2023-11-12T09:00:11.6255558Z persist-credentials: true
+2023-11-12T09:00:11.6256022Z clean: true
+2023-11-12T09:00:11.6256343Z sparse-checkout-cone-mode: true
+2023-11-12T09:00:11.6256740Z fetch-depth: 1
+2023-11-12T09:00:11.6257139Z fetch-tags: false
+2023-11-12T09:00:11.6257424Z lfs: false
+2023-11-12T09:00:11.6257739Z submodules: false
+2023-11-12T09:00:11.6258160Z set-safe-directory: true
+2023-11-12T09:00:11.6258498Z ##[endgroup]
+2023-11-12T09:00:11.7905131Z Syncing repository: tgstation/tgstation
+2023-11-12T09:00:11.7906924Z ##[group]Getting Git version info
+2023-11-12T09:00:11.7907608Z Working directory is '/home/runner/work/tgstation/tgstation'
+2023-11-12T09:00:11.7908545Z [command]/usr/bin/git version
+2023-11-12T09:00:11.7926430Z git version 2.42.0
+2023-11-12T09:00:11.7950009Z ##[endgroup]
+2023-11-12T09:00:11.7969428Z Temporarily overriding HOME='/home/runner/work/_temp/36501371-137a-461b-978e-be8cc4242865' before making global git config changes
+2023-11-12T09:00:11.7971339Z Adding repository directory to the temporary git global config as a safe directory
+2023-11-12T09:00:11.7973813Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2023-11-12T09:00:11.8018133Z Deleting the contents of '/home/runner/work/tgstation/tgstation'
+2023-11-12T09:00:11.8021715Z ##[group]Initializing the repository
+2023-11-12T09:00:11.8024938Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation
+2023-11-12T09:00:11.8167504Z hint: Using 'master' as the name for the initial branch. This default branch name
+2023-11-12T09:00:11.8168867Z hint: is subject to change. To configure the initial branch name to use in all
+2023-11-12T09:00:11.8170077Z hint: of your new repositories, which will suppress this warning, call:
+2023-11-12T09:00:11.8170644Z hint:
+2023-11-12T09:00:11.8171097Z hint: git config --global init.defaultBranch
+2023-11-12T09:00:11.8171661Z hint:
+2023-11-12T09:00:11.8172234Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
+2023-11-12T09:00:11.8173070Z hint: 'development'. The just-created branch can be renamed via this command:
+2023-11-12T09:00:11.8173978Z hint:
+2023-11-12T09:00:11.8174325Z hint: git branch -m
+2023-11-12T09:00:11.8177381Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/
+2023-11-12T09:00:11.8185891Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation
+2023-11-12T09:00:11.8237650Z ##[endgroup]
+2023-11-12T09:00:11.8238368Z ##[group]Disabling automatic garbage collection
+2023-11-12T09:00:11.8241714Z [command]/usr/bin/git config --local gc.auto 0
+2023-11-12T09:00:11.8277184Z ##[endgroup]
+2023-11-12T09:00:11.8277752Z ##[group]Setting up auth
+2023-11-12T09:00:11.8283624Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2023-11-12T09:00:11.8319856Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
+2023-11-12T09:00:11.8657173Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2023-11-12T09:00:11.8696672Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
+2023-11-12T09:00:11.8934506Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
+2023-11-12T09:00:11.8975797Z ##[endgroup]
+2023-11-12T09:00:11.8976409Z ##[group]Fetching the repository
+2023-11-12T09:00:11.8984535Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +0f52a54577af8e336ee4407c83bc6d3bfedd1d11:refs/remotes/pull/79384/merge
+2023-11-12T09:00:12.3422502Z remote: Enumerating objects: 14728, done.
+2023-11-12T09:00:12.3435399Z remote: Counting objects: 0% (1/14728)
+2023-11-12T09:00:12.3437322Z remote: Counting objects: 1% (148/14728)
+2023-11-12T09:00:12.3438041Z remote: Counting objects: 2% (295/14728)
+2023-11-12T09:00:12.3438941Z remote: Counting objects: 3% (442/14728)
+2023-11-12T09:00:12.3440148Z remote: Counting objects: 4% (590/14728)
+2023-11-12T09:00:12.3442925Z remote: Counting objects: 5% (737/14728)
+2023-11-12T09:00:12.3445483Z remote: Counting objects: 6% (884/14728)
+2023-11-12T09:00:12.3447273Z remote: Counting objects: 7% (1031/14728)
+2023-11-12T09:00:12.3460133Z remote: Counting objects: 8% (1179/14728)
+2023-11-12T09:00:12.3461187Z remote: Counting objects: 9% (1326/14728)
+2023-11-12T09:00:12.3461949Z remote: Counting objects: 10% (1473/14728)
+2023-11-12T09:00:12.3462472Z remote: Counting objects: 11% (1621/14728)
+2023-11-12T09:00:12.3463038Z remote: Counting objects: 12% (1768/14728)
+2023-11-12T09:00:12.3463556Z remote: Counting objects: 13% (1915/14728)
+2023-11-12T09:00:12.3467828Z remote: Counting objects: 14% (2062/14728)
+2023-11-12T09:00:12.3483848Z remote: Counting objects: 15% (2210/14728)
+2023-11-12T09:00:12.3489421Z remote: Counting objects: 16% (2357/14728)
+2023-11-12T09:00:12.3489959Z remote: Counting objects: 17% (2504/14728)
+2023-11-12T09:00:12.3490601Z remote: Counting objects: 18% (2652/14728)
+2023-11-12T09:00:12.3491065Z remote: Counting objects: 19% (2799/14728)
+2023-11-12T09:00:12.3491549Z remote: Counting objects: 20% (2946/14728)
+2023-11-12T09:00:12.3492150Z remote: Counting objects: 21% (3093/14728)
+2023-11-12T09:00:12.3492599Z remote: Counting objects: 22% (3241/14728)
+2023-11-12T09:00:12.3497394Z remote: Counting objects: 23% (3388/14728)
+2023-11-12T09:00:12.3498533Z remote: Counting objects: 24% (3535/14728)
+2023-11-12T09:00:12.3499302Z remote: Counting objects: 25% (3682/14728)
+2023-11-12T09:00:12.3500231Z remote: Counting objects: 26% (3830/14728)
+2023-11-12T09:00:12.3500908Z remote: Counting objects: 27% (3977/14728)
+2023-11-12T09:00:12.3501885Z remote: Counting objects: 28% (4124/14728)
+2023-11-12T09:00:12.3502758Z remote: Counting objects: 29% (4272/14728)
+2023-11-12T09:00:12.3504000Z remote: Counting objects: 30% (4419/14728)
+2023-11-12T09:00:12.3508426Z remote: Counting objects: 31% (4566/14728)
+2023-11-12T09:00:12.3510860Z remote: Counting objects: 32% (4713/14728)
+2023-11-12T09:00:12.3513541Z remote: Counting objects: 33% (4861/14728)
+2023-11-12T09:00:12.3517241Z remote: Counting objects: 34% (5008/14728)
+2023-11-12T09:00:12.3518978Z remote: Counting objects: 35% (5155/14728)
+2023-11-12T09:00:12.3522056Z remote: Counting objects: 36% (5303/14728)
+2023-11-12T09:00:12.3522867Z remote: Counting objects: 37% (5450/14728)
+2023-11-12T09:00:12.3524352Z remote: Counting objects: 38% (5597/14728)
+2023-11-12T09:00:12.3525521Z remote: Counting objects: 39% (5744/14728)
+2023-11-12T09:00:12.3526808Z remote: Counting objects: 40% (5892/14728)
+2023-11-12T09:00:12.3528838Z remote: Counting objects: 41% (6039/14728)
+2023-11-12T09:00:12.3529652Z remote: Counting objects: 42% (6186/14728)
+2023-11-12T09:00:12.3531108Z remote: Counting objects: 43% (6334/14728)
+2023-11-12T09:00:12.3531942Z remote: Counting objects: 44% (6481/14728)
+2023-11-12T09:00:12.3535178Z remote: Counting objects: 45% (6628/14728)
+2023-11-12T09:00:12.3536185Z remote: Counting objects: 46% (6775/14728)
+2023-11-12T09:00:12.3537509Z remote: Counting objects: 47% (6923/14728)
+2023-11-12T09:00:12.3538838Z remote: Counting objects: 48% (7070/14728)
+2023-11-12T09:00:12.3539490Z remote: Counting objects: 49% (7217/14728)
+2023-11-12T09:00:12.3540416Z remote: Counting objects: 50% (7364/14728)
+2023-11-12T09:00:12.3542997Z remote: Counting objects: 51% (7512/14728)
+2023-11-12T09:00:12.3546735Z remote: Counting objects: 52% (7659/14728)
+2023-11-12T09:00:12.3547627Z remote: Counting objects: 53% (7806/14728)
+2023-11-12T09:00:12.3549945Z remote: Counting objects: 54% (7954/14728)
+2023-11-12T09:00:12.3551486Z remote: Counting objects: 55% (8101/14728)
+2023-11-12T09:00:12.3554841Z remote: Counting objects: 56% (8248/14728)
+2023-11-12T09:00:12.3558919Z remote: Counting objects: 57% (8395/14728)
+2023-11-12T09:00:12.3559895Z remote: Counting objects: 58% (8543/14728)
+2023-11-12T09:00:12.3561635Z remote: Counting objects: 59% (8690/14728)
+2023-11-12T09:00:12.3562509Z remote: Counting objects: 60% (8837/14728)
+2023-11-12T09:00:12.3565221Z remote: Counting objects: 61% (8985/14728)
+2023-11-12T09:00:12.3566377Z remote: Counting objects: 62% (9132/14728)
+2023-11-12T09:00:12.3567330Z remote: Counting objects: 63% (9279/14728)
+2023-11-12T09:00:12.3568404Z remote: Counting objects: 64% (9426/14728)
+2023-11-12T09:00:12.3569399Z remote: Counting objects: 65% (9574/14728)
+2023-11-12T09:00:12.3570508Z remote: Counting objects: 66% (9721/14728)
+2023-11-12T09:00:12.3573805Z remote: Counting objects: 67% (9868/14728)
+2023-11-12T09:00:12.3574713Z remote: Counting objects: 68% (10016/14728)
+2023-11-12T09:00:12.3575852Z remote: Counting objects: 69% (10163/14728)
+2023-11-12T09:00:12.3576870Z remote: Counting objects: 70% (10310/14728)
+2023-11-12T09:00:12.3577724Z remote: Counting objects: 71% (10457/14728)
+2023-11-12T09:00:12.3578357Z remote: Counting objects: 72% (10605/14728)
+2023-11-12T09:00:12.3578886Z remote: Counting objects: 73% (10752/14728)
+2023-11-12T09:00:12.3579497Z remote: Counting objects: 74% (10899/14728)
+2023-11-12T09:00:12.3580417Z remote: Counting objects: 75% (11046/14728)
+2023-11-12T09:00:12.3581097Z remote: Counting objects: 76% (11194/14728)
+2023-11-12T09:00:12.3581574Z remote: Counting objects: 77% (11341/14728)
+2023-11-12T09:00:12.3582409Z remote: Counting objects: 78% (11488/14728)
+2023-11-12T09:00:12.3582915Z remote: Counting objects: 79% (11636/14728)
+2023-11-12T09:00:12.3583405Z remote: Counting objects: 80% (11783/14728)
+2023-11-12T09:00:12.3583954Z remote: Counting objects: 81% (11930/14728)
+2023-11-12T09:00:12.3586461Z remote: Counting objects: 82% (12077/14728)
+2023-11-12T09:00:12.3587052Z remote: Counting objects: 83% (12225/14728)
+2023-11-12T09:00:12.3587941Z remote: Counting objects: 84% (12372/14728)
+2023-11-12T09:00:12.3588988Z remote: Counting objects: 85% (12519/14728)
+2023-11-12T09:00:12.3591543Z remote: Counting objects: 86% (12667/14728)
+2023-11-12T09:00:12.3594301Z remote: Counting objects: 87% (12814/14728)
+2023-11-12T09:00:12.3597908Z remote: Counting objects: 88% (12961/14728)
+2023-11-12T09:00:12.3601958Z remote: Counting objects: 89% (13108/14728)
+2023-11-12T09:00:12.3605574Z remote: Counting objects: 90% (13256/14728)
+2023-11-12T09:00:12.3610280Z remote: Counting objects: 91% (13403/14728)
+2023-11-12T09:00:12.3612894Z remote: Counting objects: 92% (13550/14728)
+2023-11-12T09:00:12.3615660Z remote: Counting objects: 93% (13698/14728)
+2023-11-12T09:00:12.3619462Z remote: Counting objects: 94% (13845/14728)
+2023-11-12T09:00:12.3623758Z remote: Counting objects: 95% (13992/14728)
+2023-11-12T09:00:12.3628748Z remote: Counting objects: 96% (14139/14728)
+2023-11-12T09:00:12.3636487Z remote: Counting objects: 97% (14287/14728)
+2023-11-12T09:00:12.3641426Z remote: Counting objects: 98% (14434/14728)
+2023-11-12T09:00:12.3646422Z remote: Counting objects: 99% (14581/14728)
+2023-11-12T09:00:12.3649144Z remote: Counting objects: 100% (14728/14728)
+2023-11-12T09:00:12.3649919Z remote: Counting objects: 100% (14728/14728), done.
+2023-11-12T09:00:12.3825128Z remote: Compressing objects: 0% (1/13137)
+2023-11-12T09:00:12.3961841Z remote: Compressing objects: 1% (132/13137)
+2023-11-12T09:00:12.4112502Z remote: Compressing objects: 2% (263/13137)
+2023-11-12T09:00:12.4227069Z remote: Compressing objects: 3% (395/13137)
+2023-11-12T09:00:12.4228313Z remote: Compressing objects: 4% (526/13137)
+2023-11-12T09:00:12.4228983Z remote: Compressing objects: 5% (657/13137)
+2023-11-12T09:00:12.4229643Z remote: Compressing objects: 6% (789/13137)
+2023-11-12T09:00:12.4271804Z remote: Compressing objects: 7% (920/13137)
+2023-11-12T09:00:12.4360389Z remote: Compressing objects: 8% (1051/13137)
+2023-11-12T09:00:12.4466461Z remote: Compressing objects: 9% (1183/13137)
+2023-11-12T09:00:12.4646998Z remote: Compressing objects: 10% (1314/13137)
+2023-11-12T09:00:12.5428669Z remote: Compressing objects: 11% (1446/13137)
+2023-11-12T09:00:12.8296153Z remote: Compressing objects: 12% (1577/13137)
+2023-11-12T09:00:12.9213149Z remote: Compressing objects: 13% (1708/13137)
+2023-11-12T09:00:13.0041408Z remote: Compressing objects: 14% (1840/13137)
+2023-11-12T09:00:13.1340856Z remote: Compressing objects: 15% (1971/13137)
+2023-11-12T09:00:13.1645036Z remote: Compressing objects: 16% (2102/13137)
+2023-11-12T09:00:13.1904768Z remote: Compressing objects: 17% (2234/13137)
+2023-11-12T09:00:13.2018494Z remote: Compressing objects: 18% (2365/13137)
+2023-11-12T09:00:13.2019779Z remote: Compressing objects: 19% (2497/13137)
+2023-11-12T09:00:13.2134073Z remote: Compressing objects: 20% (2628/13137)
+2023-11-12T09:00:13.2199911Z remote: Compressing objects: 21% (2759/13137)
+2023-11-12T09:00:13.2260920Z remote: Compressing objects: 22% (2891/13137)
+2023-11-12T09:00:13.2343043Z remote: Compressing objects: 23% (3022/13137)
+2023-11-12T09:00:13.2821833Z remote: Compressing objects: 24% (3153/13137)
+2023-11-12T09:00:13.3039708Z remote: Compressing objects: 25% (3285/13137)
+2023-11-12T09:00:13.3255129Z remote: Compressing objects: 26% (3416/13137)
+2023-11-12T09:00:13.3405305Z remote: Compressing objects: 27% (3547/13137)
+2023-11-12T09:00:13.3571381Z remote: Compressing objects: 28% (3679/13137)
+2023-11-12T09:00:13.3670018Z remote: Compressing objects: 29% (3810/13137)
+2023-11-12T09:00:13.4040877Z remote: Compressing objects: 29% (3868/13137)
+2023-11-12T09:00:13.4251871Z remote: Compressing objects: 30% (3942/13137)
+2023-11-12T09:00:13.4457155Z remote: Compressing objects: 31% (4073/13137)
+2023-11-12T09:00:13.4780533Z remote: Compressing objects: 32% (4204/13137)
+2023-11-12T09:00:13.4983464Z remote: Compressing objects: 33% (4336/13137)
+2023-11-12T09:00:13.5295246Z remote: Compressing objects: 34% (4467/13137)
+2023-11-12T09:00:13.5719629Z remote: Compressing objects: 35% (4598/13137)
+2023-11-12T09:00:13.6054442Z remote: Compressing objects: 36% (4730/13137)
+2023-11-12T09:00:13.6350098Z remote: Compressing objects: 37% (4861/13137)
+2023-11-12T09:00:13.6626461Z remote: Compressing objects: 38% (4993/13137)
+2023-11-12T09:00:13.6916464Z remote: Compressing objects: 39% (5124/13137)
+2023-11-12T09:00:13.7302124Z remote: Compressing objects: 40% (5255/13137)
+2023-11-12T09:00:13.7576240Z remote: Compressing objects: 41% (5387/13137)
+2023-11-12T09:00:13.7850663Z remote: Compressing objects: 42% (5518/13137)
+2023-11-12T09:00:13.8125191Z remote: Compressing objects: 43% (5649/13137)
+2023-11-12T09:00:13.8344430Z remote: Compressing objects: 44% (5781/13137)
+2023-11-12T09:00:13.8648361Z remote: Compressing objects: 45% (5912/13137)
+2023-11-12T09:00:13.8890504Z remote: Compressing objects: 46% (6044/13137)
+2023-11-12T09:00:13.9134975Z remote: Compressing objects: 47% (6175/13137)
+2023-11-12T09:00:13.9382739Z remote: Compressing objects: 48% (6306/13137)
+2023-11-12T09:00:13.9574317Z remote: Compressing objects: 49% (6438/13137)
+2023-11-12T09:00:13.9764171Z remote: Compressing objects: 50% (6569/13137)
+2023-11-12T09:00:13.9965671Z remote: Compressing objects: 51% (6700/13137)
+2023-11-12T09:00:14.0240257Z remote: Compressing objects: 52% (6832/13137)
+2023-11-12T09:00:14.0468725Z remote: Compressing objects: 53% (6963/13137)
+2023-11-12T09:00:14.0669881Z remote: Compressing objects: 54% (7094/13137)
+2023-11-12T09:00:14.0895124Z remote: Compressing objects: 55% (7226/13137)
+2023-11-12T09:00:14.1141069Z remote: Compressing objects: 56% (7357/13137)
+2023-11-12T09:00:14.1354395Z remote: Compressing objects: 57% (7489/13137)
+2023-11-12T09:00:14.1570266Z remote: Compressing objects: 58% (7620/13137)
+2023-11-12T09:00:14.1754980Z remote: Compressing objects: 59% (7751/13137)
+2023-11-12T09:00:14.2084676Z remote: Compressing objects: 60% (7883/13137)
+2023-11-12T09:00:14.2310657Z remote: Compressing objects: 61% (8014/13137)
+2023-11-12T09:00:14.2625166Z remote: Compressing objects: 62% (8145/13137)
+2023-11-12T09:00:14.2909864Z remote: Compressing objects: 63% (8277/13137)
+2023-11-12T09:00:14.3192565Z remote: Compressing objects: 64% (8408/13137)
+2023-11-12T09:00:14.3424597Z remote: Compressing objects: 65% (8540/13137)
+2023-11-12T09:00:14.3648230Z remote: Compressing objects: 66% (8671/13137)
+2023-11-12T09:00:14.3654208Z remote: Compressing objects: 67% (8802/13137)
+2023-11-12T09:00:14.3852572Z remote: Compressing objects: 67% (8803/13137)
+2023-11-12T09:00:14.4083890Z remote: Compressing objects: 68% (8934/13137)
+2023-11-12T09:00:14.4346236Z remote: Compressing objects: 69% (9065/13137)
+2023-11-12T09:00:14.4412610Z remote: Compressing objects: 70% (9196/13137)
+2023-11-12T09:00:14.4438826Z remote: Compressing objects: 71% (9328/13137)
+2023-11-12T09:00:14.4557338Z remote: Compressing objects: 72% (9459/13137)
+2023-11-12T09:00:14.4560053Z remote: Compressing objects: 73% (9591/13137)
+2023-11-12T09:00:14.4561406Z remote: Compressing objects: 74% (9722/13137)
+2023-11-12T09:00:14.4562102Z remote: Compressing objects: 75% (9853/13137)
+2023-11-12T09:00:14.4598003Z remote: Compressing objects: 76% (9985/13137)
+2023-11-12T09:00:14.4599196Z remote: Compressing objects: 77% (10116/13137)
+2023-11-12T09:00:14.4600027Z remote: Compressing objects: 78% (10247/13137)
+2023-11-12T09:00:14.4610318Z remote: Compressing objects: 79% (10379/13137)
+2023-11-12T09:00:14.4610882Z remote: Compressing objects: 80% (10510/13137)
+2023-11-12T09:00:14.4625739Z remote: Compressing objects: 81% (10641/13137)
+2023-11-12T09:00:14.4627218Z remote: Compressing objects: 82% (10773/13137)
+2023-11-12T09:00:14.4628087Z remote: Compressing objects: 83% (10904/13137)
+2023-11-12T09:00:14.4628755Z remote: Compressing objects: 84% (11036/13137)
+2023-11-12T09:00:14.4641964Z remote: Compressing objects: 85% (11167/13137)
+2023-11-12T09:00:14.4643000Z remote: Compressing objects: 86% (11298/13137)
+2023-11-12T09:00:14.4643588Z remote: Compressing objects: 87% (11430/13137)
+2023-11-12T09:00:14.4644263Z remote: Compressing objects: 88% (11561/13137)
+2023-11-12T09:00:14.4644780Z remote: Compressing objects: 89% (11692/13137)
+2023-11-12T09:00:14.4667702Z remote: Compressing objects: 90% (11824/13137)
+2023-11-12T09:00:14.4763174Z remote: Compressing objects: 91% (11955/13137)
+2023-11-12T09:00:14.4790967Z remote: Compressing objects: 92% (12087/13137)
+2023-11-12T09:00:14.4805225Z remote: Compressing objects: 93% (12218/13137)
+2023-11-12T09:00:14.4826093Z remote: Compressing objects: 94% (12349/13137)
+2023-11-12T09:00:14.4845748Z remote: Compressing objects: 95% (12481/13137)
+2023-11-12T09:00:14.4852480Z remote: Compressing objects: 96% (12612/13137)
+2023-11-12T09:00:14.4863608Z remote: Compressing objects: 97% (12743/13137)
+2023-11-12T09:00:14.4890566Z remote: Compressing objects: 98% (12875/13137)
+2023-11-12T09:00:14.4901499Z remote: Compressing objects: 99% (13006/13137)
+2023-11-12T09:00:14.4905499Z remote: Compressing objects: 100% (13137/13137)
+2023-11-12T09:00:14.4906263Z remote: Compressing objects: 100% (13137/13137), done.
+2023-11-12T09:00:14.5298519Z Receiving objects: 0% (1/14728)
+2023-11-12T09:00:14.7511556Z Receiving objects: 1% (148/14728)
+2023-11-12T09:00:15.0383718Z Receiving objects: 2% (295/14728)
+2023-11-12T09:00:15.0790920Z Receiving objects: 3% (442/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.1841924Z Receiving objects: 4% (590/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.1886539Z Receiving objects: 5% (737/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.1946135Z Receiving objects: 6% (884/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2129478Z Receiving objects: 7% (1031/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2298890Z Receiving objects: 8% (1179/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2441190Z Receiving objects: 9% (1326/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2535883Z Receiving objects: 10% (1473/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2682741Z Receiving objects: 11% (1621/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2854458Z Receiving objects: 12% (1768/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2953047Z Receiving objects: 13% (1915/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.2998284Z Receiving objects: 14% (2062/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.3017511Z Receiving objects: 15% (2210/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.3161978Z Receiving objects: 16% (2357/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.3233106Z Receiving objects: 17% (2504/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.3483968Z Receiving objects: 18% (2652/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.3784019Z Receiving objects: 19% (2799/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.3954481Z Receiving objects: 20% (2946/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.4245221Z Receiving objects: 21% (3093/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.4470709Z Receiving objects: 22% (3241/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.4723098Z Receiving objects: 23% (3388/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.4937347Z Receiving objects: 24% (3535/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.4944940Z Receiving objects: 24% (3669/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.5175139Z Receiving objects: 25% (3682/14728), 2.91 MiB | 5.72 MiB/s
+2023-11-12T09:00:15.5292638Z Receiving objects: 26% (3830/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.5497254Z Receiving objects: 27% (3977/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.5672343Z Receiving objects: 28% (4124/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.5843576Z Receiving objects: 29% (4272/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.5937090Z Receiving objects: 30% (4419/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6094771Z Receiving objects: 31% (4566/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6238194Z Receiving objects: 32% (4713/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6342923Z Receiving objects: 33% (4861/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6565056Z Receiving objects: 34% (5008/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6729745Z Receiving objects: 35% (5155/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6807225Z Receiving objects: 36% (5303/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.6932642Z Receiving objects: 37% (5450/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.7116778Z Receiving objects: 38% (5597/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.7226855Z Receiving objects: 39% (5744/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.7368698Z Receiving objects: 40% (5892/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.7722704Z Receiving objects: 41% (6039/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.8013149Z Receiving objects: 42% (6186/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.8245559Z Receiving objects: 43% (6334/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.8412984Z Receiving objects: 44% (6481/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.8809019Z Receiving objects: 45% (6628/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9077444Z Receiving objects: 46% (6775/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9198076Z Receiving objects: 47% (6923/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9335440Z Receiving objects: 48% (7070/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9409235Z Receiving objects: 49% (7217/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9475966Z Receiving objects: 50% (7364/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9632751Z Receiving objects: 51% (7512/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9710761Z Receiving objects: 52% (7659/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:15.9997665Z Receiving objects: 53% (7806/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:16.1754062Z Receiving objects: 54% (7954/14728), 8.94 MiB | 8.86 MiB/s
+2023-11-12T09:00:16.4937069Z Receiving objects: 55% (8101/14728), 16.55 MiB | 10.97 MiB/s
+2023-11-12T09:00:16.4977595Z Receiving objects: 55% (8228/14728), 16.55 MiB | 10.97 MiB/s
+2023-11-12T09:00:16.5335682Z Receiving objects: 56% (8248/14728), 16.55 MiB | 10.97 MiB/s
+2023-11-12T09:00:16.5529510Z Receiving objects: 57% (8395/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.6298834Z Receiving objects: 58% (8543/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.6477417Z Receiving objects: 59% (8690/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.6877035Z Receiving objects: 60% (8837/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.7190945Z Receiving objects: 61% (8985/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.7421126Z Receiving objects: 62% (9132/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.7678021Z Receiving objects: 63% (9279/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:16.8523998Z Receiving objects: 64% (9426/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:17.1043001Z Receiving objects: 65% (9574/14728), 40.02 MiB | 19.93 MiB/s
+2023-11-12T09:00:17.3854775Z Receiving objects: 66% (9721/14728), 71.27 MiB | 28.42 MiB/s
+2023-11-12T09:00:17.4325550Z Receiving objects: 67% (9868/14728), 71.27 MiB | 28.42 MiB/s
+2023-11-12T09:00:17.4843860Z Receiving objects: 68% (10016/14728), 71.27 MiB | 28.42 MiB/s
+2023-11-12T09:00:17.4974216Z Receiving objects: 69% (10163/14728), 71.27 MiB | 28.42 MiB/s
+2023-11-12T09:00:17.5355293Z Receiving objects: 69% (10174/14728), 71.27 MiB | 28.42 MiB/s
+2023-11-12T09:00:17.6035052Z Receiving objects: 70% (10310/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.6662170Z Receiving objects: 71% (10457/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.7426342Z Receiving objects: 72% (10605/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.7732421Z Receiving objects: 73% (10752/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.7890371Z Receiving objects: 74% (10899/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.8003342Z Receiving objects: 75% (11046/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.8123812Z Receiving objects: 76% (11194/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.8868154Z Receiving objects: 77% (11341/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.9248750Z Receiving objects: 78% (11488/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.9430493Z Receiving objects: 79% (11636/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.9815619Z Receiving objects: 80% (11783/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:17.9897797Z Receiving objects: 81% (11930/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:18.0004021Z Receiving objects: 82% (12077/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:18.0065635Z Receiving objects: 83% (12225/14728), 104.98 MiB | 34.90 MiB/s
+2023-11-12T09:00:18.0133099Z Receiving objects: 84% (12372/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.0212448Z Receiving objects: 85% (12519/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.0292270Z Receiving objects: 86% (12667/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.0477194Z Receiving objects: 87% (12814/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1050651Z Receiving objects: 88% (12961/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1401134Z Receiving objects: 89% (13108/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1440829Z Receiving objects: 90% (13256/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1503769Z Receiving objects: 91% (13403/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1562677Z Receiving objects: 92% (13550/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1618314Z Receiving objects: 93% (13698/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1655496Z Receiving objects: 94% (13845/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1708799Z Receiving objects: 95% (13992/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1779590Z Receiving objects: 96% (14139/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1850924Z Receiving objects: 97% (14287/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1887710Z Receiving objects: 98% (14434/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1982209Z Receiving objects: 99% (14581/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1983900Z remote: Total 14728 (delta 1648), reused 9457 (delta 1437), pack-reused 0
+2023-11-12T09:00:18.1993200Z Receiving objects: 100% (14728/14728), 137.62 MiB | 39.23 MiB/s
+2023-11-12T09:00:18.1994500Z Receiving objects: 100% (14728/14728), 147.84 MiB | 39.90 MiB/s, done.
+2023-11-12T09:00:18.2019068Z Resolving deltas: 0% (0/1648)
+2023-11-12T09:00:18.2023348Z Resolving deltas: 1% (17/1648)
+2023-11-12T09:00:18.2032679Z Resolving deltas: 2% (33/1648)
+2023-11-12T09:00:18.2057515Z Resolving deltas: 3% (50/1648)
+2023-11-12T09:00:18.2067595Z Resolving deltas: 4% (66/1648)
+2023-11-12T09:00:18.2311083Z Resolving deltas: 5% (83/1648)
+2023-11-12T09:00:18.2318508Z Resolving deltas: 6% (99/1648)
+2023-11-12T09:00:18.2326847Z Resolving deltas: 7% (116/1648)
+2023-11-12T09:00:18.2335304Z Resolving deltas: 8% (132/1648)
+2023-11-12T09:00:18.2348077Z Resolving deltas: 9% (149/1648)
+2023-11-12T09:00:18.2360740Z Resolving deltas: 10% (165/1648)
+2023-11-12T09:00:18.2369574Z Resolving deltas: 11% (182/1648)
+2023-11-12T09:00:18.2383691Z Resolving deltas: 12% (198/1648)
+2023-11-12T09:00:18.2394926Z Resolving deltas: 13% (215/1648)
+2023-11-12T09:00:18.2398748Z Resolving deltas: 14% (231/1648)
+2023-11-12T09:00:18.2404491Z Resolving deltas: 15% (248/1648)
+2023-11-12T09:00:18.2406714Z Resolving deltas: 16% (264/1648)
+2023-11-12T09:00:18.2407998Z Resolving deltas: 17% (281/1648)
+2023-11-12T09:00:18.2409292Z Resolving deltas: 18% (297/1648)
+2023-11-12T09:00:18.2411513Z Resolving deltas: 19% (315/1648)
+2023-11-12T09:00:18.2413614Z Resolving deltas: 20% (330/1648)
+2023-11-12T09:00:18.2414462Z Resolving deltas: 21% (347/1648)
+2023-11-12T09:00:18.2418247Z Resolving deltas: 22% (363/1648)
+2023-11-12T09:00:18.2418936Z Resolving deltas: 23% (380/1648)
+2023-11-12T09:00:18.2419539Z Resolving deltas: 24% (396/1648)
+2023-11-12T09:00:18.2427604Z Resolving deltas: 25% (412/1648)
+2023-11-12T09:00:18.2432866Z Resolving deltas: 26% (429/1648)
+2023-11-12T09:00:18.2441981Z Resolving deltas: 27% (445/1648)
+2023-11-12T09:00:18.2447582Z Resolving deltas: 28% (462/1648)
+2023-11-12T09:00:18.2466027Z Resolving deltas: 29% (478/1648)
+2023-11-12T09:00:18.2471796Z Resolving deltas: 30% (495/1648)
+2023-11-12T09:00:18.2480036Z Resolving deltas: 31% (511/1648)
+2023-11-12T09:00:18.2490887Z Resolving deltas: 32% (528/1648)
+2023-11-12T09:00:18.2494739Z Resolving deltas: 33% (544/1648)
+2023-11-12T09:00:18.2502376Z Resolving deltas: 34% (561/1648)
+2023-11-12T09:00:18.2508410Z Resolving deltas: 35% (577/1648)
+2023-11-12T09:00:18.2513823Z Resolving deltas: 36% (594/1648)
+2023-11-12T09:00:18.2527222Z Resolving deltas: 37% (610/1648)
+2023-11-12T09:00:18.2537398Z Resolving deltas: 38% (627/1648)
+2023-11-12T09:00:18.2549132Z Resolving deltas: 39% (643/1648)
+2023-11-12T09:00:18.2554784Z Resolving deltas: 40% (660/1648)
+2023-11-12T09:00:18.2556656Z Resolving deltas: 41% (676/1648)
+2023-11-12T09:00:18.2557507Z Resolving deltas: 42% (693/1648)
+2023-11-12T09:00:18.2558588Z Resolving deltas: 43% (709/1648)
+2023-11-12T09:00:18.2559455Z Resolving deltas: 44% (727/1648)
+2023-11-12T09:00:18.2561210Z Resolving deltas: 45% (742/1648)
+2023-11-12T09:00:18.2562565Z Resolving deltas: 46% (760/1648)
+2023-11-12T09:00:18.2563347Z Resolving deltas: 47% (775/1648)
+2023-11-12T09:00:18.2564389Z Resolving deltas: 48% (792/1648)
+2023-11-12T09:00:18.2565291Z Resolving deltas: 49% (808/1648)
+2023-11-12T09:00:18.2566382Z Resolving deltas: 50% (824/1648)
+2023-11-12T09:00:18.2567240Z Resolving deltas: 51% (841/1648)
+2023-11-12T09:00:18.2568283Z Resolving deltas: 52% (857/1648)
+2023-11-12T09:00:18.2573986Z Resolving deltas: 53% (874/1648)
+2023-11-12T09:00:18.2578038Z Resolving deltas: 54% (890/1648)
+2023-11-12T09:00:18.2579766Z Resolving deltas: 55% (907/1648)
+2023-11-12T09:00:18.2583389Z Resolving deltas: 56% (923/1648)
+2023-11-12T09:00:18.2587856Z Resolving deltas: 57% (940/1648)
+2023-11-12T09:00:18.2589664Z Resolving deltas: 58% (956/1648)
+2023-11-12T09:00:18.2591411Z Resolving deltas: 59% (973/1648)
+2023-11-12T09:00:18.2594574Z Resolving deltas: 60% (989/1648)
+2023-11-12T09:00:18.2597339Z Resolving deltas: 61% (1006/1648)
+2023-11-12T09:00:18.2599661Z Resolving deltas: 62% (1022/1648)
+2023-11-12T09:00:18.2605805Z Resolving deltas: 63% (1039/1648)
+2023-11-12T09:00:18.2606445Z Resolving deltas: 64% (1055/1648)
+2023-11-12T09:00:18.2608833Z Resolving deltas: 65% (1072/1648)
+2023-11-12T09:00:18.2612033Z Resolving deltas: 66% (1088/1648)
+2023-11-12T09:00:18.2614253Z Resolving deltas: 67% (1105/1648)
+2023-11-12T09:00:18.2618118Z Resolving deltas: 68% (1121/1648)
+2023-11-12T09:00:18.2619827Z Resolving deltas: 69% (1138/1648)
+2023-11-12T09:00:18.2621203Z Resolving deltas: 70% (1154/1648)
+2023-11-12T09:00:18.2624401Z Resolving deltas: 71% (1171/1648)
+2023-11-12T09:00:18.2627592Z Resolving deltas: 72% (1187/1648)
+2023-11-12T09:00:18.2630703Z Resolving deltas: 73% (1204/1648)
+2023-11-12T09:00:18.2633542Z Resolving deltas: 74% (1220/1648)
+2023-11-12T09:00:18.2636165Z Resolving deltas: 75% (1236/1648)
+2023-11-12T09:00:18.2638056Z Resolving deltas: 76% (1253/1648)
+2023-11-12T09:00:18.2642611Z Resolving deltas: 77% (1269/1648)
+2023-11-12T09:00:18.2645574Z Resolving deltas: 78% (1286/1648)
+2023-11-12T09:00:18.2650111Z Resolving deltas: 79% (1302/1648)
+2023-11-12T09:00:18.2653615Z Resolving deltas: 80% (1319/1648)
+2023-11-12T09:00:18.2657080Z Resolving deltas: 81% (1335/1648)
+2023-11-12T09:00:18.2661192Z Resolving deltas: 82% (1352/1648)
+2023-11-12T09:00:18.2666443Z Resolving deltas: 83% (1368/1648)
+2023-11-12T09:00:18.2671066Z Resolving deltas: 84% (1385/1648)
+2023-11-12T09:00:18.2675875Z Resolving deltas: 85% (1401/1648)
+2023-11-12T09:00:18.2680749Z Resolving deltas: 86% (1418/1648)
+2023-11-12T09:00:18.2685418Z Resolving deltas: 87% (1434/1648)
+2023-11-12T09:00:18.2691672Z Resolving deltas: 88% (1451/1648)
+2023-11-12T09:00:18.2696947Z Resolving deltas: 89% (1467/1648)
+2023-11-12T09:00:18.2704268Z Resolving deltas: 90% (1484/1648)
+2023-11-12T09:00:18.2714966Z Resolving deltas: 91% (1500/1648)
+2023-11-12T09:00:18.2724238Z Resolving deltas: 92% (1518/1648)
+2023-11-12T09:00:18.2727054Z Resolving deltas: 93% (1533/1648)
+2023-11-12T09:00:18.2732989Z Resolving deltas: 94% (1550/1648)
+2023-11-12T09:00:18.2738406Z Resolving deltas: 95% (1567/1648)
+2023-11-12T09:00:18.2743401Z Resolving deltas: 96% (1583/1648)
+2023-11-12T09:00:18.2748306Z Resolving deltas: 97% (1599/1648)
+2023-11-12T09:00:18.2752079Z Resolving deltas: 98% (1616/1648)
+2023-11-12T09:00:18.2774732Z Resolving deltas: 99% (1632/1648)
+2023-11-12T09:00:18.2776965Z Resolving deltas: 100% (1648/1648)
+2023-11-12T09:00:18.2777617Z Resolving deltas: 100% (1648/1648), done.
+2023-11-12T09:00:18.4151233Z From https://github.com/tgstation/tgstation
+2023-11-12T09:00:18.4152324Z * [new ref] 0f52a54577af8e336ee4407c83bc6d3bfedd1d11 -> pull/79384/merge
+2023-11-12T09:00:18.4174692Z ##[endgroup]
+2023-11-12T09:00:18.4175546Z ##[group]Determining the checkout info
+2023-11-12T09:00:18.4177292Z ##[endgroup]
+2023-11-12T09:00:18.4178077Z ##[group]Checking out the ref
+2023-11-12T09:00:18.4182006Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/79384/merge
+2023-11-12T09:00:19.4499153Z Updating files: 65% (8853/13535)
+2023-11-12T09:00:19.4677754Z Updating files: 66% (8934/13535)
+2023-11-12T09:00:19.4881367Z Updating files: 67% (9069/13535)
+2023-11-12T09:00:19.5117589Z Updating files: 68% (9204/13535)
+2023-11-12T09:00:19.5393100Z Updating files: 69% (9340/13535)
+2023-11-12T09:00:19.5649915Z Updating files: 70% (9475/13535)
+2023-11-12T09:00:19.5885545Z Updating files: 71% (9610/13535)
+2023-11-12T09:00:19.6092470Z Updating files: 72% (9746/13535)
+2023-11-12T09:00:19.6193070Z Updating files: 73% (9881/13535)
+2023-11-12T09:00:19.6275200Z Updating files: 74% (10016/13535)
+2023-11-12T09:00:19.6366161Z Updating files: 75% (10152/13535)
+2023-11-12T09:00:19.6497650Z Updating files: 76% (10287/13535)
+2023-11-12T09:00:19.6864064Z Updating files: 77% (10422/13535)
+2023-11-12T09:00:19.6905958Z Updating files: 78% (10558/13535)
+2023-11-12T09:00:19.7095469Z Updating files: 79% (10693/13535)
+2023-11-12T09:00:19.7217904Z Updating files: 80% (10828/13535)
+2023-11-12T09:00:19.7299066Z Updating files: 81% (10964/13535)
+2023-11-12T09:00:19.7371348Z Updating files: 82% (11099/13535)
+2023-11-12T09:00:19.7439098Z Updating files: 83% (11235/13535)
+2023-11-12T09:00:19.7509681Z Updating files: 84% (11370/13535)
+2023-11-12T09:00:19.7583669Z Updating files: 85% (11505/13535)
+2023-11-12T09:00:19.7654399Z Updating files: 86% (11641/13535)
+2023-11-12T09:00:19.7761508Z Updating files: 87% (11776/13535)
+2023-11-12T09:00:19.7996111Z Updating files: 88% (11911/13535)
+2023-11-12T09:00:19.8212241Z Updating files: 89% (12047/13535)
+2023-11-12T09:00:19.8280038Z Updating files: 90% (12182/13535)
+2023-11-12T09:00:19.8351398Z Updating files: 91% (12317/13535)
+2023-11-12T09:00:19.8428752Z Updating files: 92% (12453/13535)
+2023-11-12T09:00:19.8508292Z Updating files: 93% (12588/13535)
+2023-11-12T09:00:19.8572225Z Updating files: 94% (12723/13535)
+2023-11-12T09:00:19.8650650Z Updating files: 95% (12859/13535)
+2023-11-12T09:00:19.8729362Z Updating files: 96% (12994/13535)
+2023-11-12T09:00:19.8829435Z Updating files: 97% (13129/13535)
+2023-11-12T09:00:19.8894699Z Updating files: 98% (13265/13535)
+2023-11-12T09:00:19.8994866Z Updating files: 99% (13400/13535)
+2023-11-12T09:00:19.8995690Z Updating files: 100% (13535/13535)
+2023-11-12T09:00:19.8996705Z Updating files: 100% (13535/13535), done.
+2023-11-12T09:00:19.9124545Z Note: switching to 'refs/remotes/pull/79384/merge'.
+2023-11-12T09:00:19.9125161Z
+2023-11-12T09:00:19.9125767Z You are in 'detached HEAD' state. You can look around, make experimental
+2023-11-12T09:00:19.9127145Z changes and commit them, and you can discard any commits you make in this
+2023-11-12T09:00:19.9128712Z state without impacting any branches by switching back to a branch.
+2023-11-12T09:00:19.9129440Z
+2023-11-12T09:00:19.9129888Z If you want to create a new branch to retain commits you create, you may
+2023-11-12T09:00:19.9131250Z do so (now or later) by using -c with the switch command. Example:
+2023-11-12T09:00:19.9131887Z
+2023-11-12T09:00:19.9132223Z git switch -c
+2023-11-12T09:00:19.9132633Z
+2023-11-12T09:00:19.9133095Z Or undo this operation with:
+2023-11-12T09:00:19.9133655Z
+2023-11-12T09:00:19.9133848Z git switch -
+2023-11-12T09:00:19.9134127Z
+2023-11-12T09:00:19.9134677Z Turn off this advice by setting config variable advice.detachedHead to false
+2023-11-12T09:00:19.9135426Z
+2023-11-12T09:00:19.9136195Z HEAD is now at 0f52a54 Merge 2104248ba951649225e5c5cb8168346f0220bdb7 into 1eb94ba2286812853f5c65b2557bf2f8f5e46d4f
+2023-11-12T09:00:19.9215939Z ##[endgroup]
+2023-11-12T09:00:19.9261644Z [command]/usr/bin/git log -1 --format='%H'
+2023-11-12T09:00:19.9293509Z '0f52a54577af8e336ee4407c83bc6d3bfedd1d11'
+2023-11-12T09:00:19.9616124Z ##[group]Run actions/cache@v3
+2023-11-12T09:00:19.9616601Z with:
+2023-11-12T09:00:19.9616946Z path: ~/BYOND
+2023-11-12T09:00:19.9617286Z key: Linux-byond-
+2023-11-12T09:00:19.9617686Z enableCrossOsArchive: false
+2023-11-12T09:00:19.9618092Z fail-on-cache-miss: false
+2023-11-12T09:00:19.9618460Z lookup-only: false
+2023-11-12T09:00:19.9618822Z ##[endgroup]
+2023-11-12T09:00:20.2859595Z Cache Size: ~4 MB (4090426 B)
+2023-11-12T09:00:20.2888527Z [command]/usr/bin/tar -xf /home/runner/work/_temp/edb2b23d-361f-4c19-b676-33998159e0b8/cache.tzst -P -C /home/runner/work/tgstation/tgstation --use-compress-program unzstd
+2023-11-12T09:00:20.3193378Z Cache restored successfully
+2023-11-12T09:00:20.3317264Z Cache restored from key: Linux-byond-
+2023-11-12T09:00:20.3451434Z ##[group]Run sudo systemctl start mysql
+2023-11-12T09:00:20.3452154Z [36;1msudo systemctl start mysql[0m
+2023-11-12T09:00:20.3452715Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci;'[0m
+2023-11-12T09:00:20.3453355Z [36;1mmysql -u root -proot tg_ci < SQL/tgstation_schema.sql[0m
+2023-11-12T09:00:20.3454118Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;'[0m
+2023-11-12T09:00:20.3454828Z [36;1mmysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql[0m
+2023-11-12T09:00:20.3513329Z shell: /usr/bin/bash -e {0}
+2023-11-12T09:00:20.3513775Z ##[endgroup]
+2023-11-12T09:00:23.5982676Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2023-11-12T09:00:23.6362129Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2023-11-12T09:00:24.0220158Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2023-11-12T09:00:24.0302175Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2023-11-12T09:00:24.3266576Z ##[group]Run bash tools/ci/install_rust_g.sh
+2023-11-12T09:00:24.3267216Z [36;1mbash tools/ci/install_rust_g.sh[0m
+2023-11-12T09:00:24.3311615Z shell: /usr/bin/bash -e {0}
+2023-11-12T09:00:24.3311996Z ##[endgroup]
+2023-11-12T09:00:24.6018389Z 2023-11-12 09:00:24 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/aea9a209-14bc-4b8b-b98c-1ba32c0aaf86?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231112%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231112T085850Z&X-Amz-Expires=300&X-Amz-Signature=c3e69a55ec6f839925bb9729c6b2e6b4d5b76b4855bfd64b96933c73f95a6734&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [66491316/66491316] -> "/home/runner/.byond/bin/librust_g.so" [1]
+2023-11-12T09:00:24.6320307Z linux-gate.so.1 (0xf7f74000)
+2023-11-12T09:00:24.6321993Z libz.so.1 => /lib32/libz.so.1 (0xf7f45000)
+2023-11-12T09:00:24.6322879Z libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf7f1e000)
+2023-11-12T09:00:24.6323651Z libm.so.6 => /lib32/libm.so.6 (0xf7e16000)
+2023-11-12T09:00:24.6324533Z libc.so.6 => /lib32/libc.so.6 (0xf7400000)
+2023-11-12T09:00:24.6326012Z /lib/ld-linux.so.2 (0xf7f76000)
+2023-11-12T09:00:24.6368501Z ##[group]Run bash tools/ci/install_auxlua.sh
+2023-11-12T09:00:24.6369036Z [36;1mbash tools/ci/install_auxlua.sh[0m
+2023-11-12T09:00:24.6417060Z shell: /usr/bin/bash -e {0}
+2023-11-12T09:00:24.6417480Z ##[endgroup]
+2023-11-12T09:00:24.7086755Z 2023-11-12 09:00:24 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/ec517e6d-2695-477e-ae92-7645fee5b7ce?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231112%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231112T085916Z&X-Amz-Expires=300&X-Amz-Signature=e13d49b79e73a573dc4a351e5e9575d601b7f51fc16f9d3f03f959884cdf8941&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [6045340/6045340] -> "/home/runner/.byond/bin/libauxlua.so" [1]
+2023-11-12T09:00:24.7172511Z linux-gate.so.1 (0xf7f77000)
+2023-11-12T09:00:24.7173643Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7800000)
+2023-11-12T09:00:24.7174378Z libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf7f3e000)
+2023-11-12T09:00:24.7175045Z libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f39000)
+2023-11-12T09:00:24.7176413Z libm.so.6 => /lib32/libm.so.6 (0xf7e31000)
+2023-11-12T09:00:24.7177209Z libdl.so.2 => /lib32/libdl.so.2 (0xf7e2c000)
+2023-11-12T09:00:24.7177918Z libc.so.6 => /lib32/libc.so.6 (0xf7400000)
+2023-11-12T09:00:24.7178575Z /lib/ld-linux.so.2 (0xf7f79000)
+2023-11-12T09:00:24.7231003Z ##[group]Run bash tools/ci/install_byond.sh
+2023-11-12T09:00:24.7231555Z [36;1mbash tools/ci/install_byond.sh[0m
+2023-11-12T09:00:24.7232077Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2023-11-12T09:00:24.7232805Z [36;1mtools/build/build --ci dm -DCIBUILDING -DANSICOLORS -WError -NWTG0001[0m
+2023-11-12T09:00:24.7274898Z shell: /usr/bin/bash -e {0}
+2023-11-12T09:00:24.7275297Z ##[endgroup]
+2023-11-12T09:00:24.7365575Z Setting up BYOND.
+2023-11-12T09:00:24.7497243Z % Total % Received % Xferd Average Speed Time Time Time Current
+2023-11-12T09:00:24.7498339Z Dload Upload Total Spent Left Speed
+2023-11-12T09:00:24.7499103Z
+2023-11-12T09:00:24.7733411Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
+2023-11-12T09:00:24.7884475Z 0 4021k 0 4979 0 0 203k 0 0:00:19 --:--:-- 0:00:19 202k
+2023-11-12T09:00:24.7885997Z 100 4021k 100 4021k 0 0 100M 0 --:--:-- --:--:-- --:--:-- 100M
+2023-11-12T09:00:24.8068033Z Archive: byond.zip
+2023-11-12T09:00:24.8069055Z creating: byond/
+2023-11-12T09:00:24.8069884Z creating: byond/key/
+2023-11-12T09:00:24.8071025Z creating: byond/web/
+2023-11-12T09:00:24.8073333Z inflating: byond/web/child.dms
+2023-11-12T09:00:24.8074283Z inflating: byond/web/button.dms
+2023-11-12T09:00:24.8076478Z inflating: byond/web/input.dms
+2023-11-12T09:00:24.8077391Z inflating: byond/web/text.dms
+2023-11-12T09:00:24.8176215Z inflating: byond/web/webclient.dart.js
+2023-11-12T09:00:24.8177154Z inflating: byond/web/verbmenu.dms
+2023-11-12T09:00:24.8178296Z inflating: byond/web/defaultSkin.dms
+2023-11-12T09:00:24.8179798Z inflating: byond/web/hotbar.dms
+2023-11-12T09:00:24.8180913Z inflating: byond/web/label.dms
+2023-11-12T09:00:24.8181973Z inflating: byond/web/alert.dms
+2023-11-12T09:00:24.8182843Z inflating: byond/web/message.dms
+2023-11-12T09:00:24.8183665Z inflating: byond/web/drag.png
+2023-11-12T09:00:24.8185004Z inflating: byond/web/map.dms
+2023-11-12T09:00:24.8186150Z inflating: byond/web/splashlogo.png
+2023-11-12T09:00:24.8186893Z inflating: byond/web/drop.png
+2023-11-12T09:00:24.8282279Z inflating: byond/web/ext.js
+2023-11-12T09:00:24.8283075Z inflating: byond/web/file.dms
+2023-11-12T09:00:24.8284575Z inflating: byond/web/grid.dms
+2023-11-12T09:00:24.8286207Z inflating: byond/web/bar.dms
+2023-11-12T09:00:24.8288946Z inflating: byond/web/dpad.dms
+2023-11-12T09:00:24.8289936Z inflating: byond/web/output.dms
+2023-11-12T09:00:24.8291365Z inflating: byond/web/tab.dms
+2023-11-12T09:00:24.8293155Z inflating: byond/web/info.dms
+2023-11-12T09:00:24.8294881Z inflating: byond/web/color.dms
+2023-11-12T09:00:24.8296103Z inflating: byond/web/gamepad.dms
+2023-11-12T09:00:24.8297532Z inflating: byond/web/browser.dms
+2023-11-12T09:00:24.8298158Z inflating: byond/web/status.dms
+2023-11-12T09:00:24.8299313Z inflating: byond/web/any.dms
+2023-11-12T09:00:24.8300438Z inflating: byond/web/pane.dms
+2023-11-12T09:00:24.8302172Z inflating: byond/web/pop.dms
+2023-11-12T09:00:24.8303255Z inflating: byond/license.txt
+2023-11-12T09:00:24.8303882Z inflating: byond/legal.txt
+2023-11-12T09:00:24.8305048Z inflating: byond/Makefile
+2023-11-12T09:00:24.8305748Z creating: byond/man/
+2023-11-12T09:00:24.8306319Z creating: byond/man/man6/
+2023-11-12T09:00:24.8307604Z inflating: byond/man/man6/DreamDaemon.6
+2023-11-12T09:00:24.8308434Z inflating: byond/man/man6/DreamMaker.6
+2023-11-12T09:00:24.8309437Z creating: byond/lib/
+2023-11-12T09:00:24.8310004Z creating: byond/host/
+2023-11-12T09:00:24.8311286Z inflating: byond/host/readme.html
+2023-11-12T09:00:24.8312492Z inflating: byond/host/readme-unix.txt
+2023-11-12T09:00:24.8313289Z creating: byond/host/home/
+2023-11-12T09:00:24.8314244Z creating: byond/host/home/root/
+2023-11-12T09:00:24.8315083Z creating: byond/host/home/root/byond/
+2023-11-12T09:00:24.8315883Z creating: byond/host/home/root/byond/tools/
+2023-11-12T09:00:24.8316724Z creating: byond/host/home/root/byond/tools/root/
+2023-11-12T09:00:24.8321401Z inflating: byond/host/home/root/byond/tools/root/root.dmb
+2023-11-12T09:00:24.8322363Z creating: byond/host/shared/
+2023-11-12T09:00:24.8323118Z creating: byond/host/shared/byond/
+2023-11-12T09:00:24.8323939Z creating: byond/host/shared/byond/tools/
+2023-11-12T09:00:24.8324697Z creating: byond/host/shared/byond/tools/ftp/
+2023-11-12T09:00:24.8326100Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb
+2023-11-12T09:00:24.8327214Z creating: byond/host/shared/byond/tools/admin/
+2023-11-12T09:00:24.8332506Z inflating: byond/host/shared/byond/tools/admin/admin.dmb
+2023-11-12T09:00:24.8333692Z creating: byond/host/shared-web/
+2023-11-12T09:00:24.8334536Z creating: byond/host/shared-web/web/
+2023-11-12T09:00:24.8335395Z creating: byond/host/shared-web/web/tools/
+2023-11-12T09:00:24.8336389Z creating: byond/host/shared-web/web/tools/admin/
+2023-11-12T09:00:24.8340610Z inflating: byond/host/shared-web/web/tools/admin/index.dmb
+2023-11-12T09:00:24.8347816Z inflating: byond/host/host.dmb
+2023-11-12T09:00:24.8348686Z inflating: byond/host/host.start
+2023-11-12T09:00:24.8349570Z inflating: byond/host/hostconf.orig
+2023-11-12T09:00:24.8350612Z inflating: byond/host/hostconf.txt
+2023-11-12T09:00:24.8351646Z inflating: byond/readme.txt
+2023-11-12T09:00:24.8352393Z creating: byond/bin/
+2023-11-12T09:00:24.8353203Z inflating: byond/bin/byondexec
+2023-11-12T09:00:24.8355525Z inflating: byond/bin/DreamDownload
+2023-11-12T09:00:24.8915164Z inflating: byond/bin/libbyond.so
+2023-11-12T09:00:24.9052390Z inflating: byond/bin/libext.so
+2023-11-12T09:00:24.9056691Z inflating: byond/bin/DreamDaemon
+2023-11-12T09:00:24.9060064Z inflating: byond/bin/DreamMaker
+2023-11-12T09:00:24.9060916Z creating: byond/cfg/
+2023-11-12T09:00:24.9061543Z inflating: byond/cfg/release.txt
+2023-11-12T09:00:24.9218525Z ***************************
+2023-11-12T09:00:24.9225188Z Now run the following command:
+2023-11-12T09:00:24.9233824Z
+2023-11-12T09:00:24.9243155Z source /home/runner/BYOND/byond/bin/byondsetup
+2023-11-12T09:00:24.9251769Z
+2023-11-12T09:00:24.9259232Z If it generates errors, your shell is not compatible with 'sh', so you will
+2023-11-12T09:00:24.9265751Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon.
+2023-11-12T09:00:24.9273703Z
+2023-11-12T09:00:24.9280708Z IMPORTANT: once you have the script working, you must add the above line
+2023-11-12T09:00:24.9287739Z to your startup script. The name of your startup script depends on the
+2023-11-12T09:00:24.9294443Z shell you use. Typical ones are .profile or .bash_profile.
+2023-11-12T09:00:24.9302682Z
+2023-11-12T09:00:24.9309851Z Once everything is working, you can find out more about the software
+2023-11-12T09:00:24.9316763Z by doing 'man DreamDaemon'. A host server has also been included
+2023-11-12T09:00:24.9323620Z so edit host/hostconf.txt and boot up your world server!
+2023-11-12T09:00:24.9330177Z ***************************
+2023-11-12T09:00:24.9736645Z Using system-wide Node v18.18.2
+2023-11-12T09:00:25.1112864Z :: Juke Build version 0.8.1
+2023-11-12T09:00:25.3377241Z => Starting 'dm'
+2023-11-12T09:00:25.3385788Z :: Using defines: CBT, CIBUILDING, ANSICOLORS
+2023-11-12T09:00:25.6662719Z DM compiler version 514.1588
+2023-11-12T09:00:25.6663169Z loading tgstation.m.dme
+2023-11-12T09:00:25.9197564Z code/__DEFINES/qdel.dm:22:warning: #warn TG0001 qdel REFERENCE_TRACKING enabled
+2023-11-12T09:00:36.5749452Z loading interface/skin.dmf
+2023-11-12T09:01:29.5751892Z loading map_files/generic/CentCom.dmm
+2023-11-12T09:01:29.9653644Z saving tgstation.m.dmb (DEBUG mode)
+2023-11-12T09:01:30.6467137Z tgstation.m.dmb - 0 errors, 1 warning (11/12/23 9:01 am)
+2023-11-12T09:01:30.6468251Z Total time: 1:05
+2023-11-12T09:01:31.6898602Z => Finished 'dm' in 66.352s
+2023-11-12T09:01:31.6901009Z => Done in 66.578s
+2023-11-12T09:01:31.7007243Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup
+2023-11-12T09:01:31.7007981Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2023-11-12T09:01:31.7008503Z [36;1mbash tools/ci/run_server.sh tramstation[0m
+2023-11-12T09:01:31.7058146Z shell: /usr/bin/bash -e {0}
+2023-11-12T09:01:31.7058547Z ##[endgroup]
+2023-11-12T09:01:31.7139001Z Testing tramstation
+2023-11-12T09:01:32.0865721Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory
+2023-11-12T09:01:32.1025274Z Sun Nov 12 09:01:32 2023
+2023-11-12T09:01:32.1026062Z World opened on network port 34125.
+2023-11-12T09:01:32.1026759Z Welcome BYOND! (5.0 Public Version 514.1588)
+2023-11-12T09:01:54.2375415Z World loaded at 09:01:54!
+2023-11-12T09:01:54.2376123Z Running /tg/ revision:
+2023-11-12T09:01:54.2376721Z No commit information
+2023-11-12T09:01:54.2377340Z Running rust-g version 3.0.0
+2023-11-12T09:01:54.2445249Z Loading config file config.txt...
+2023-11-12T09:01:54.2449139Z Loading config file maps.txt...
+2023-11-12T09:01:54.2703464Z Unable to locate admins backup file.
+2023-11-12T09:01:55.2792475Z Initialized Title Screen subsystem within 0 seconds!
+2023-11-12T09:01:55.2793681Z Initialized Server Tasks subsystem within 0 seconds!
+2023-11-12T09:01:55.2795047Z Initialized Input subsystem within 0 seconds!
+2023-11-12T09:01:55.2858203Z Initialized Profiler subsystem within 0 seconds!
+2023-11-12T09:01:55.2859689Z Initialized Database subsystem within 0 seconds!
+2023-11-12T09:01:55.2862218Z Initialized Blackbox subsystem within 0 seconds!
+2023-11-12T09:01:55.2938165Z Initialized Sounds subsystem within 0.01 seconds!
+2023-11-12T09:01:55.3061210Z Initialized Instruments subsystem within 0.01 seconds!
+2023-11-12T09:01:55.8390630Z Initialized Greyscale subsystem within 0.53 seconds!
+2023-11-12T09:01:55.8391416Z Initialized Vis contents overlays subsystem within 0 seconds!
+2023-11-12T09:01:55.8392841Z Initialized Security Level subsystem within 0 seconds!
+2023-11-12T09:01:55.8412303Z Initialized Station subsystem within 0 seconds!
+2023-11-12T09:01:55.8426733Z Initialized Quirks subsystem within 0 seconds!
+2023-11-12T09:01:55.8553936Z Initialized Reagents subsystem within 0.01 seconds!
+2023-11-12T09:01:55.8563912Z Initialized Events subsystem within 0 seconds!
+2023-11-12T09:01:55.8612984Z Initialized IDs and Access subsystem within 0 seconds!
+2023-11-12T09:01:55.8616522Z Initialized Jobs subsystem within 0 seconds!
+2023-11-12T09:01:55.8618600Z Initialized AI movement subsystem within 0 seconds!
+2023-11-12T09:01:55.8637284Z Initialized Ticker subsystem within 0 seconds!
+2023-11-12T09:01:55.8693586Z Initialized AI Controller Ticker subsystem within 0.01 seconds!
+2023-11-12T09:01:55.8697702Z Initialized AI Behavior Ticker subsystem within 0 seconds!
+2023-11-12T09:01:55.8821358Z Initialized Trading Card Game subsystem within 0.01 seconds!
+2023-11-12T09:01:55.8968123Z Loading Tramstation...
+2023-11-12T09:01:57.4366548Z Loaded Station in 1.6s!
+2023-11-12T09:01:58.7018385Z Loaded Lavaland in 1.3s!
+2023-11-12T09:01:59.6958478Z All ruins being loaded for map testing.
+2023-11-12T09:01:59.6960551Z Ruin loader finished with 0 left to spend.
+2023-11-12T09:01:59.6963383Z All ruins being loaded for map testing.
+2023-11-12T09:01:59.6966951Z Ruin loader finished with 0 left to spend.
+2023-11-12T09:01:59.8030218Z Cave Generator terrain generation finished in 0.1s!
+2023-11-12T09:01:59.8242156Z Cave Generator terrain generation finished in 0s!
+2023-11-12T09:02:00.0123579Z Cave Generator terrain population finished in 0.1s!
+2023-11-12T09:02:00.0174657Z Cave Generator terrain population finished in 0s!
+2023-11-12T09:02:00.4204586Z Initialized Mapping subsystem within 4.54 seconds!
+2023-11-12T09:02:18.7137331Z Initialized Early Assets subsystem within 18.29 seconds!
+2023-11-12T09:02:18.7960177Z Initialized Research subsystem within 0.08 seconds!
+2023-11-12T09:02:18.7964943Z Initialized Time Tracking subsystem within 0 seconds!
+2023-11-12T09:02:18.8516125Z Initialized Spatial Grid subsystem within 0.05 seconds!
+2023-11-12T09:02:18.8519915Z Initialized Economy subsystem within 0 seconds!
+2023-11-12T09:02:18.8529046Z Initialized Restaurant subsystem within 0 seconds!
+2023-11-12T09:02:24.3564078Z The BYOND hub reports that port 34125 is not reachable.
+2023-11-12T09:03:00.5242715Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only!
+2023-11-12T09:03:08.8938364Z Initialized Atoms subsystem within 50.04 seconds!
+2023-11-12T09:03:08.9459509Z Initialized Language subsystem within 0.01 seconds!
+2023-11-12T09:03:09.0602930Z Initialized Machines subsystem within 0.11 seconds!
+2023-11-12T09:03:09.0612163Z Initialized Skills subsystem within 0 seconds!
+2023-11-12T09:03:09.0615253Z Initialized Queue Links subsystem within 0 seconds!
+2023-11-12T09:03:09.0619204Z Initialized Addiction subsystem within 0 seconds!
+2023-11-12T09:03:09.0639408Z Initialized Blackmarket subsystem within 0 seconds!
+2023-11-12T09:03:09.0647224Z Initialized Disease subsystem within 0 seconds!
+2023-11-12T09:03:09.0650704Z Initialized Fluid subsystem within 0 seconds!
+2023-11-12T09:03:09.0654199Z Initialized Smoke subsystem within 0 seconds!
+2023-11-12T09:03:09.0657541Z Initialized Foam subsystem within 0 seconds!
+2023-11-12T09:03:09.0660882Z Initialized Lag Switch subsystem within 0 seconds!
+2023-11-12T09:03:09.0888582Z Initialized Library Loading subsystem within 0.02 seconds!
+2023-11-12T09:03:09.2645071Z Initialized Lua Scripting subsystem within 0.18 seconds!
+2023-11-12T09:03:09.2735036Z Initialized Modular Computers subsystem within 0.01 seconds!
+2023-11-12T09:03:09.2737635Z Initialized Night Shift subsystem within 0 seconds!
+2023-11-12T09:03:09.2741231Z Initialized Stock Market subsystem within 0 seconds!
+2023-11-12T09:03:09.2743761Z Initialized Sun subsystem within 0 seconds!
+2023-11-12T09:03:09.2792256Z Initialized Traitor subsystem within 0 seconds!
+2023-11-12T09:03:09.2795417Z Initialized Tutorials subsystem within 0 seconds!
+2023-11-12T09:03:09.3133961Z Initialized Wardrobe subsystem within 0.03 seconds!
+2023-11-12T09:03:09.3136967Z Initialized Weather subsystem within 0 seconds!
+2023-11-12T09:03:09.3140470Z Initialized Wiremod Composite Templates subsystem within 0 seconds!
+2023-11-12T09:03:14.7053894Z Initialized Atmospherics subsystem within 5.39 seconds!
+2023-11-12T09:03:14.7127034Z Initialized Persistence subsystem within 0.01 seconds!
+2023-11-12T09:03:14.7131026Z Initialized Persistent Paintings subsystem within 0 seconds!
+2023-11-12T09:03:14.7134716Z Initialized Vote subsystem within 0 seconds!
+2023-11-12T09:03:25.6600909Z Initialized Assets subsystem within 10.95 seconds!
+2023-11-12T09:03:29.1318017Z Initialized Icon Smoothing subsystem within 3.42 seconds!
+2023-11-12T09:03:29.1329352Z Initialized XKeyScore subsystem within 0 seconds!
+2023-11-12T09:03:29.1349808Z Initialized PRISM subsystem within 0 seconds!
+2023-11-12T09:03:39.5066635Z Initialized Lighting subsystem within 10.37 seconds!
+2023-11-12T09:03:42.0097538Z Initialized Shuttle subsystem within 2.5 seconds!
+2023-11-12T09:03:42.0100528Z Initialized Pathfinder subsystem within 0 seconds!
+2023-11-12T09:03:42.0112119Z Initialized Ban Cache subsystem within 0 seconds!
+2023-11-12T09:03:42.0114877Z Initialized Init Profiler subsystem within 0 seconds!
+2023-11-12T09:03:42.0117470Z Initialized Chat subsystem within 0 seconds!
+2023-11-12T09:03:42.0119918Z Initializations complete within 106.8 seconds!
+2023-11-12T09:03:42.0699329Z Game start took 0s
+2023-11-12T09:03:53.5395990Z ##[group]/datum/unit_test/log_mapping
+2023-11-12T09:03:53.5399338Z [1;32mPASS[0m /datum/unit_test/log_mapping 0s
+2023-11-12T09:03:53.5400530Z ##[endgroup]
+2023-11-12T09:03:53.5529741Z ##[group]/datum/unit_test/abductor_baton_spell
+2023-11-12T09:03:53.6248315Z [1;32mPASS[0m /datum/unit_test/abductor_baton_spell 0.1s
+2023-11-12T09:03:53.6250017Z ##[endgroup]
+2023-11-12T09:03:53.7293652Z ##[group]/datum/unit_test/ablative_hood_hud
+2023-11-12T09:03:53.7538980Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud 0s
+2023-11-12T09:03:53.7540945Z ##[endgroup]
+2023-11-12T09:03:53.8177940Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet
+2023-11-12T09:03:53.8373528Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud_with_helmet 0s
+2023-11-12T09:03:53.8375040Z ##[endgroup]
+2023-11-12T09:03:53.9037089Z ##[group]/datum/unit_test/achievements
+2023-11-12T09:03:53.9146939Z [1;32mPASS[0m /datum/unit_test/achievements 0s
+2023-11-12T09:03:53.9148600Z ##[endgroup]
+2023-11-12T09:03:53.9709749Z ##[group]/datum/unit_test/anchored_mobs
+2023-11-12T09:03:53.9714871Z [1;32mPASS[0m /datum/unit_test/anchored_mobs 0s
+2023-11-12T09:03:53.9717149Z ##[endgroup]
+2023-11-12T09:03:54.0290915Z ##[group]/datum/unit_test/anonymous_themes
+2023-11-12T09:03:54.1282674Z [1;32mPASS[0m /datum/unit_test/anonymous_themes 0.1s
+2023-11-12T09:03:54.1284602Z ##[endgroup]
+2023-11-12T09:03:54.2369870Z ##[group]/datum/unit_test/revolution_conversion
+2023-11-12T09:03:54.2811074Z [1;32mPASS[0m /datum/unit_test/revolution_conversion 0s
+2023-11-12T09:03:54.2812989Z ##[endgroup]
+2023-11-12T09:03:54.3619950Z ##[group]/datum/unit_test/cult_conversion
+2023-11-12T09:03:54.4185381Z [1;32mPASS[0m /datum/unit_test/cult_conversion 0.1s
+2023-11-12T09:03:54.4187014Z ##[endgroup]
+2023-11-12T09:03:54.5109339Z ##[group]/datum/unit_test/antag_moodlets
+2023-11-12T09:03:54.5391588Z [1;32mPASS[0m /datum/unit_test/antag_moodlets 0s
+2023-11-12T09:03:54.5393248Z ##[endgroup]
+2023-11-12T09:03:54.6099817Z ##[group]/datum/unit_test/armor_verification
+2023-11-12T09:03:54.6105398Z [1;32mPASS[0m /datum/unit_test/armor_verification 0s
+2023-11-12T09:03:54.6107086Z ##[endgroup]
+2023-11-12T09:03:54.6711998Z ##[group]/datum/unit_test/autowiki
+2023-11-12T09:03:56.4795605Z [1;32mPASS[0m /datum/unit_test/autowiki 1.8s
+2023-11-12T09:03:56.4797118Z ##[endgroup]
+2023-11-12T09:03:56.5376207Z ##[group]/datum/unit_test/autowiki_include_template
+2023-11-12T09:03:56.5378371Z [1;32mPASS[0m /datum/unit_test/autowiki_include_template 0s
+2023-11-12T09:03:56.5380504Z ##[endgroup]
+2023-11-12T09:03:56.6003986Z ##[group]/datum/unit_test/barsigns_icon
+2023-11-12T09:03:56.6303581Z [1;32mPASS[0m /datum/unit_test/barsigns_icon 0.1s
+2023-11-12T09:03:56.6305267Z ##[endgroup]
+2023-11-12T09:03:56.6912219Z ##[group]/datum/unit_test/barsigns_name
+2023-11-12T09:03:56.6914950Z [1;32mPASS[0m /datum/unit_test/barsigns_name 0s
+2023-11-12T09:03:56.6917244Z ##[endgroup]
+2023-11-12T09:03:56.7530053Z ##[group]/datum/unit_test/baseturfs_unmodified_scrape
+2023-11-12T09:03:56.7541656Z [1;32mPASS[0m /datum/unit_test/baseturfs_unmodified_scrape 0s
+2023-11-12T09:03:56.7543322Z ##[endgroup]
+2023-11-12T09:03:56.8163460Z ##[group]/datum/unit_test/baseturfs_placed_on_top
+2023-11-12T09:03:56.8173471Z [1;32mPASS[0m /datum/unit_test/baseturfs_placed_on_top 0s
+2023-11-12T09:03:56.8175579Z ##[endgroup]
+2023-11-12T09:03:56.8789484Z ##[group]/datum/unit_test/baseturfs_placed_on_bottom
+2023-11-12T09:03:56.8806366Z [1;32mPASS[0m /datum/unit_test/baseturfs_placed_on_bottom 0s
+2023-11-12T09:03:56.8808190Z ##[endgroup]
+2023-11-12T09:03:56.9420497Z ##[group]/datum/unit_test/bespoke_id
+2023-11-12T09:03:56.9422999Z [1;32mPASS[0m /datum/unit_test/bespoke_id 0s
+2023-11-12T09:03:56.9425227Z ##[endgroup]
+2023-11-12T09:03:57.1727331Z ##[group]/datum/unit_test/binary_insert
+2023-11-12T09:03:57.1728436Z [1;32mPASS[0m /datum/unit_test/binary_insert 0s
+2023-11-12T09:03:57.1730597Z ##[endgroup]
+2023-11-12T09:03:57.2270246Z ##[group]/datum/unit_test/bitrunner_vdom_settings
+2023-11-12T09:03:57.2368664Z [1;32mPASS[0m /datum/unit_test/bitrunner_vdom_settings 0s
+2023-11-12T09:03:57.2370507Z ##[endgroup]
+2023-11-12T09:03:57.2860471Z ##[group]/datum/unit_test/blindness
+2023-11-12T09:03:57.3060031Z [1;32mPASS[0m /datum/unit_test/blindness 0.1s
+2023-11-12T09:03:57.3061453Z ##[endgroup]
+2023-11-12T09:03:57.3685247Z ##[group]/datum/unit_test/nearsightedness
+2023-11-12T09:03:57.3856666Z [1;32mPASS[0m /datum/unit_test/nearsightedness 0s
+2023-11-12T09:03:57.3857831Z ##[endgroup]
+2023-11-12T09:03:57.4094606Z ##[group]/datum/unit_test/eye_damage
+2023-11-12T09:03:57.4266705Z [1;32mPASS[0m /datum/unit_test/eye_damage 0s
+2023-11-12T09:03:57.4268768Z ##[endgroup]
+2023-11-12T09:03:57.4514012Z ##[group]/datum/unit_test/bloody_footprints
+2023-11-12T09:03:57.4771474Z [1;32mPASS[0m /datum/unit_test/bloody_footprints 0s
+2023-11-12T09:03:57.4773523Z ##[endgroup]
+2023-11-12T09:03:57.5095312Z ##[group]/datum/unit_test/breath/breath_sanity
+2023-11-12T09:03:57.5793797Z [1;32mPASS[0m /datum/unit_test/breath/breath_sanity 0s
+2023-11-12T09:03:57.5795766Z ##[endgroup]
+2023-11-12T09:03:57.6356372Z ##[group]/datum/unit_test/breath/breath_sanity_plasmamen
+2023-11-12T09:03:57.6920259Z [1;32mPASS[0m /datum/unit_test/breath/breath_sanity_plasmamen 0s
+2023-11-12T09:03:57.6922126Z ##[endgroup]
+2023-11-12T09:03:57.7478880Z ##[group]/datum/unit_test/breath/breath_sanity_ashwalker
+2023-11-12T09:03:57.7793279Z [1;32mPASS[0m /datum/unit_test/breath/breath_sanity_ashwalker 0s
+2023-11-12T09:03:57.7794768Z ##[endgroup]
+2023-11-12T09:03:57.8063286Z ##[group]/datum/unit_test/burning
+2023-11-12T09:03:57.8235820Z [1;32mPASS[0m /datum/unit_test/burning 0s
+2023-11-12T09:03:57.8237580Z ##[endgroup]
+2023-11-12T09:03:57.8463809Z ##[group]/datum/unit_test/cable_powernets
+2023-11-12T09:03:57.8467369Z [1;32mPASS[0m /datum/unit_test/cable_powernets 0s
+2023-11-12T09:03:57.8468842Z ##[endgroup]
+2023-11-12T09:03:57.8681387Z ##[group]/datum/unit_test/card_mismatch
+2023-11-12T09:03:57.8715332Z [1;32mPASS[0m /datum/unit_test/card_mismatch 0s
+2023-11-12T09:03:57.8717822Z ##[endgroup]
+2023-11-12T09:03:57.8839316Z ##[group]/datum/unit_test/cardboard_cutouts
+2023-11-12T09:03:57.8847499Z cardboard_cutouts_normal_cutout was put in data/screenshots_new
+2023-11-12T09:03:58.1374772Z cardboard_cutouts_nukie_cutout was put in data/screenshots_new
+2023-11-12T09:03:58.1378574Z cardboard_cutouts_nukie_cutout_pushed was put in data/screenshots_new
+2023-11-12T09:03:58.1547388Z cardboard_cutouts_xenomorph_cutout was put in data/screenshots_new
+2023-11-12T09:03:58.1550933Z [1;32mPASS[0m /datum/unit_test/cardboard_cutouts 0.3s
+2023-11-12T09:03:58.1553499Z ##[endgroup]
+2023-11-12T09:03:58.2402466Z ##[group]/datum/unit_test/chain_pull_through_space
+2023-11-12T09:03:58.2453035Z [1;32mPASS[0m /datum/unit_test/chain_pull_through_space 0s
+2023-11-12T09:03:58.2454853Z ##[endgroup]
+2023-11-12T09:03:58.3033483Z ##[group]/datum/unit_test/transformation_sting
+2023-11-12T09:03:59.7549687Z transformation_sting_appearances was put in data/screenshots_new
+2023-11-12T09:03:59.7551965Z [1;32mPASS[0m /datum/unit_test/transformation_sting 1.4s
+2023-11-12T09:03:59.7553272Z ##[endgroup]
+2023-11-12T09:03:59.7969350Z ##[group]/datum/unit_test/chat_filter_sanity
+2023-11-12T09:03:59.7976589Z [1;32mPASS[0m /datum/unit_test/chat_filter_sanity 0s
+2023-11-12T09:03:59.7978237Z ##[endgroup]
+2023-11-12T09:03:59.8105892Z ##[group]/datum/unit_test/circuit_component_category
+2023-11-12T09:03:59.8107746Z [1;32mPASS[0m /datum/unit_test/circuit_component_category 0s
+2023-11-12T09:03:59.8109947Z ##[endgroup]
+2023-11-12T09:03:59.8879728Z ##[group]/datum/unit_test/client_colours
+2023-11-12T09:03:59.8889068Z [1;32mPASS[0m /datum/unit_test/client_colours 0s
+2023-11-12T09:03:59.8891665Z ##[endgroup]
+2023-11-12T09:03:59.9525316Z ##[group]/datum/unit_test/closets
+2023-11-12T09:04:01.8031965Z [1;32mPASS[0m /datum/unit_test/closets 1.9s
+2023-11-12T09:04:01.8033340Z ##[endgroup]
+2023-11-12T09:04:02.6399153Z ##[group]/datum/unit_test/clothing_under_armor_subtype_check
+2023-11-12T09:04:02.6403381Z [1;32mPASS[0m /datum/unit_test/clothing_under_armor_subtype_check 0s
+2023-11-12T09:04:02.6405014Z ##[endgroup]
+2023-11-12T09:04:02.7020573Z ##[group]/datum/unit_test/harm_punch
+2023-11-12T09:04:02.7364226Z [1;32mPASS[0m /datum/unit_test/harm_punch 0s
+2023-11-12T09:04:02.7366615Z ##[endgroup]
+2023-11-12T09:04:02.7919290Z ##[group]/datum/unit_test/harm_melee
+2023-11-12T09:04:02.8266028Z [1;32mPASS[0m /datum/unit_test/harm_melee 0.1s
+2023-11-12T09:04:02.8268574Z ##[endgroup]
+2023-11-12T09:04:02.8738136Z ##[group]/datum/unit_test/harm_different_damage
+2023-11-12T09:04:02.9125671Z [1;32mPASS[0m /datum/unit_test/harm_different_damage 0.1s
+2023-11-12T09:04:02.9127697Z ##[endgroup]
+2023-11-12T09:04:02.9510991Z ##[group]/datum/unit_test/attack_chain
+2023-11-12T09:04:02.9859497Z [1;32mPASS[0m /datum/unit_test/attack_chain 0s
+2023-11-12T09:04:02.9861383Z ##[endgroup]
+2023-11-12T09:04:03.0312671Z ##[group]/datum/unit_test/disarm
+2023-11-12T09:04:03.0675162Z [1;32mPASS[0m /datum/unit_test/disarm 0s
+2023-11-12T09:04:03.0677029Z ##[endgroup]
+2023-11-12T09:04:03.1122424Z ##[group]/datum/unit_test/self_punch
+2023-11-12T09:04:03.1297149Z [1;32mPASS[0m /datum/unit_test/self_punch 0s
+2023-11-12T09:04:03.1299012Z ##[endgroup]
+2023-11-12T09:04:03.1617839Z ##[group]/datum/unit_test/handcuff_punch
+2023-11-12T09:04:03.1949728Z [1;32mPASS[0m /datum/unit_test/handcuff_punch 0s
+2023-11-12T09:04:03.1950695Z ##[endgroup]
+2023-11-12T09:04:03.2665996Z ##[group]/datum/unit_test/handcuff_bite
+2023-11-12T09:04:03.3310134Z [1;32mPASS[0m /datum/unit_test/handcuff_bite 0.1s
+2023-11-12T09:04:03.3311967Z ##[endgroup]
+2023-11-12T09:04:03.3720567Z ##[group]/datum/unit_test/component_duping
+2023-11-12T09:04:03.3725700Z [1;32mPASS[0m /datum/unit_test/component_duping 0s
+2023-11-12T09:04:03.3728116Z ##[endgroup]
+2023-11-12T09:04:03.3854948Z ##[group]/datum/unit_test/confusion_symptom
+2023-11-12T09:04:03.4020935Z [1;32mPASS[0m /datum/unit_test/confusion_symptom 0.1s
+2023-11-12T09:04:03.4023437Z ##[endgroup]
+2023-11-12T09:04:03.4660129Z ##[group]/datum/unit_test/connect_loc_basic
+2023-11-12T09:04:03.4667486Z [1;32mPASS[0m /datum/unit_test/connect_loc_basic 0s
+2023-11-12T09:04:03.4669665Z ##[endgroup]
+2023-11-12T09:04:03.5206421Z ##[group]/datum/unit_test/connect_loc_change_turf
+2023-11-12T09:04:03.5219191Z [1;32mPASS[0m /datum/unit_test/connect_loc_change_turf 0s
+2023-11-12T09:04:03.5221198Z ##[endgroup]
+2023-11-12T09:04:03.5413589Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf
+2023-11-12T09:04:03.5422679Z [1;32mPASS[0m /datum/unit_test/connect_loc_multiple_on_turf 0s
+2023-11-12T09:04:03.5424576Z ##[endgroup]
+2023-11-12T09:04:03.5552785Z ##[group]/datum/unit_test/reagent_container_sanity
+2023-11-12T09:04:03.8101359Z [1;32mPASS[0m /datum/unit_test/reagent_container_sanity 0.3s
+2023-11-12T09:04:03.8102486Z ##[endgroup]
+2023-11-12T09:04:03.9680842Z ##[group]/datum/unit_test/crayon_naming
+2023-11-12T09:04:03.9683784Z [1;32mPASS[0m /datum/unit_test/crayon_naming 0s
+2023-11-12T09:04:03.9686430Z ##[endgroup]
+2023-11-12T09:04:03.9815420Z ##[group]/datum/unit_test/dcs_get_id_from_arguments
+2023-11-12T09:04:03.9822614Z [1;32mPASS[0m /datum/unit_test/dcs_get_id_from_arguments 0s
+2023-11-12T09:04:03.9825219Z ##[endgroup]
+2023-11-12T09:04:03.9952914Z ##[group]/datum/unit_test/designs
+2023-11-12T09:04:04.0032294Z [1;32mPASS[0m /datum/unit_test/designs 0.1s
+2023-11-12T09:04:04.0034986Z ##[endgroup]
+2023-11-12T09:04:04.0184498Z ##[group]/datum/unit_test/dismemberment
+2023-11-12T09:04:04.0687805Z [1;32mPASS[0m /datum/unit_test/dismemberment 0s
+2023-11-12T09:04:04.0690374Z ##[endgroup]
+2023-11-12T09:04:04.1062552Z ##[group]/datum/unit_test/door_access_check
+2023-11-12T09:04:04.1315486Z [1;32mPASS[0m /datum/unit_test/door_access_check 0s
+2023-11-12T09:04:04.1318637Z ##[endgroup]
+2023-11-12T09:04:04.1659906Z ##[group]/datum/unit_test/contents_barfer
+2023-11-12T09:04:04.1881762Z [1;32mPASS[0m /datum/unit_test/contents_barfer 0s
+2023-11-12T09:04:04.1884275Z ##[endgroup]
+2023-11-12T09:04:04.2328534Z ##[group]/datum/unit_test/space_dragon_expiration
+2023-11-12T09:04:04.2672064Z [1;32mPASS[0m /datum/unit_test/space_dragon_expiration 0s
+2023-11-12T09:04:04.2674522Z ##[endgroup]
+2023-11-12T09:04:04.3282341Z ##[group]/datum/unit_test/glass_style_icons
+2023-11-12T09:04:04.3517947Z [1;32mPASS[0m /datum/unit_test/glass_style_icons 0s
+2023-11-12T09:04:04.3520368Z ##[endgroup]
+2023-11-12T09:04:04.3761901Z ##[group]/datum/unit_test/glass_style_functionality
+2023-11-12T09:04:04.3773186Z [1;32mPASS[0m /datum/unit_test/glass_style_functionality 0s
+2023-11-12T09:04:04.3775791Z ##[endgroup]
+2023-11-12T09:04:04.3908269Z ##[group]/datum/unit_test/drink_icons
+2023-11-12T09:04:04.4155215Z [1;32mPASS[0m /datum/unit_test/drink_icons 0.1s
+2023-11-12T09:04:04.4157609Z ##[endgroup]
+2023-11-12T09:04:04.4303228Z ##[group]/datum/unit_test/dummy_spawn_species
+2023-11-12T09:04:05.4828810Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_species 1s
+2023-11-12T09:04:05.4829704Z ##[endgroup]
+2023-11-12T09:04:05.5166735Z ##[group]/datum/unit_test/dummy_spawn_outfit
+2023-11-12T09:04:05.5400845Z Job type /datum/job/ai could not be retrieved from SSjob
+2023-11-12T09:04:06.0232636Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_outfit 0.5s
+2023-11-12T09:04:06.0234589Z ##[endgroup]
+2023-11-12T09:04:06.0505202Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity
+2023-11-12T09:04:06.0508804Z [1;32mPASS[0m /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s
+2023-11-12T09:04:06.0511050Z ##[endgroup]
+2023-11-12T09:04:06.0637233Z ##[group]/datum/unit_test/dynamic_unique_antag_flags
+2023-11-12T09:04:06.0640294Z [1;32mPASS[0m /datum/unit_test/dynamic_unique_antag_flags 0s
+2023-11-12T09:04:06.0642513Z ##[endgroup]
+2023-11-12T09:04:06.0770713Z ##[group]/datum/unit_test/egg_glands
+2023-11-12T09:04:06.1407083Z [1;32mPASS[0m /datum/unit_test/egg_glands 0.1s
+2023-11-12T09:04:06.1408405Z ##[endgroup]
+2023-11-12T09:04:06.1628261Z ##[group]/datum/unit_test/emoting
+2023-11-12T09:04:06.1818671Z [1;32mPASS[0m /datum/unit_test/emoting 0s
+2023-11-12T09:04:06.1821362Z ##[endgroup]
+2023-11-12T09:04:06.2077157Z ##[group]/datum/unit_test/ensure_subtree_operational_datum
+2023-11-12T09:04:08.1731821Z [1;32mPASS[0m /datum/unit_test/ensure_subtree_operational_datum 1.9s
+2023-11-12T09:04:08.1733285Z ##[endgroup]
+2023-11-12T09:04:08.7539706Z ##[group]/datum/unit_test/explosion_action
+2023-11-12T09:04:08.8465799Z [1;32mPASS[0m /datum/unit_test/explosion_action 0.1s
+2023-11-12T09:04:08.8468184Z ##[endgroup]
+2023-11-12T09:04:08.9010946Z ##[group]/datum/unit_test/fish_size_weight
+2023-11-12T09:04:08.9019514Z [1;32mPASS[0m /datum/unit_test/fish_size_weight 0s
+2023-11-12T09:04:08.9022220Z ##[endgroup]
+2023-11-12T09:04:08.9154882Z ##[group]/datum/unit_test/fish_breeding
+2023-11-12T09:04:08.9227664Z [1;32mPASS[0m /datum/unit_test/fish_breeding 0s
+2023-11-12T09:04:08.9230704Z ##[endgroup]
+2023-11-12T09:04:08.9389958Z ##[group]/datum/unit_test/fish_evolution
+2023-11-12T09:04:08.9418165Z [1;32mPASS[0m /datum/unit_test/fish_evolution 0s
+2023-11-12T09:04:08.9421366Z ##[endgroup]
+2023-11-12T09:04:08.9631338Z ##[group]/datum/unit_test/fish_scanning
+2023-11-12T09:04:08.9635076Z [1;32mPASS[0m /datum/unit_test/fish_scanning 0s
+2023-11-12T09:04:08.9638063Z ##[endgroup]
+2023-11-12T09:04:08.9772162Z ##[group]/datum/unit_test/font_awesome_icons
+2023-11-12T09:04:08.9779113Z CSS Actual: 96991
+2023-11-12T09:04:09.3976724Z [1;32mPASS[0m /datum/unit_test/font_awesome_icons 0.4s
+2023-11-12T09:04:09.3978084Z ##[endgroup]
+2023-11-12T09:04:09.4388919Z ##[group]/datum/unit_test/food_edibility_check
+2023-11-12T09:04:11.4659822Z [1;32mPASS[0m /datum/unit_test/food_edibility_check 2s
+2023-11-12T09:04:11.4661512Z ##[endgroup]
+2023-11-12T09:04:11.4957968Z ##[group]/datum/unit_test/full_heal_heals_organs
+2023-11-12T09:04:11.5147883Z [1;32mPASS[0m /datum/unit_test/full_heal_heals_organs 0.1s
+2023-11-12T09:04:11.5149360Z ##[endgroup]
+2023-11-12T09:04:11.5413116Z ##[group]/datum/unit_test/full_heal_regenerates_organs
+2023-11-12T09:04:11.5651258Z [1;32mPASS[0m /datum/unit_test/full_heal_regenerates_organs 0s
+2023-11-12T09:04:11.5653018Z ##[endgroup]
+2023-11-12T09:04:11.6325061Z ##[group]/datum/unit_test/full_heal_damage_types
+2023-11-12T09:04:11.6518216Z [1;32mPASS[0m /datum/unit_test/full_heal_damage_types 0s
+2023-11-12T09:04:11.6519698Z ##[endgroup]
+2023-11-12T09:04:11.7209709Z ##[group]/datum/unit_test/atmospheric_gas_transfer
+2023-11-12T09:04:11.7227226Z [1;32mPASS[0m /datum/unit_test/atmospheric_gas_transfer 0s
+2023-11-12T09:04:11.7228891Z ##[endgroup]
+2023-11-12T09:04:11.7822095Z ##[group]/datum/unit_test/get_turf_pixel
+2023-11-12T09:04:11.7849880Z [1;32mPASS[0m /datum/unit_test/get_turf_pixel 0s
+2023-11-12T09:04:11.7851756Z ##[endgroup]
+2023-11-12T09:04:11.8495917Z ##[group]/datum/unit_test/geyser
+2023-11-12T09:04:11.8516781Z [1;32mPASS[0m /datum/unit_test/geyser 0s
+2023-11-12T09:04:11.8518776Z ##[endgroup]
+2023-11-12T09:04:11.9115770Z ##[group]/datum/unit_test/greyscale_item_icon_states
+2023-11-12T09:04:11.9172841Z [1;32mPASS[0m /datum/unit_test/greyscale_item_icon_states 0s
+2023-11-12T09:04:11.9174524Z ##[endgroup]
+2023-11-12T09:04:11.9770664Z ##[group]/datum/unit_test/greyscale_color_count
+2023-11-12T09:04:11.9908294Z [1;32mPASS[0m /datum/unit_test/greyscale_color_count 0s
+2023-11-12T09:04:11.9910694Z ##[endgroup]
+2023-11-12T09:04:12.0513128Z ##[group]/datum/unit_test/hallucination_icons
+2023-11-12T09:04:12.2294786Z [1;32mPASS[0m /datum/unit_test/hallucination_icons 0.2s
+2023-11-12T09:04:12.2296061Z ##[endgroup]
+2023-11-12T09:04:12.2752905Z ##[group]/datum/unit_test/heretic_knowledge
+2023-11-12T09:04:12.2797900Z [1;32mPASS[0m /datum/unit_test/heretic_knowledge 0s
+2023-11-12T09:04:12.2800226Z ##[endgroup]
+2023-11-12T09:04:12.3526741Z ##[group]/datum/unit_test/heretic_main_paths
+2023-11-12T09:04:12.3530666Z [1;32mPASS[0m /datum/unit_test/heretic_main_paths 0s
+2023-11-12T09:04:12.3532858Z ##[endgroup]
+2023-11-12T09:04:12.3985035Z ##[group]/datum/unit_test/heretic_rituals
+2023-11-12T09:04:12.4878733Z [1;32mPASS[0m /datum/unit_test/heretic_rituals 0.1s
+2023-11-12T09:04:12.4880607Z ##[endgroup]
+2023-11-12T09:04:12.5120786Z ##[group]/datum/unit_test/high_five
+2023-11-12T09:04:12.5591361Z [1;32mPASS[0m /datum/unit_test/high_five 0s
+2023-11-12T09:04:12.5593593Z ##[endgroup]
+2023-11-12T09:04:12.6154998Z ##[group]/datum/unit_test/high_five_too_slow
+2023-11-12T09:04:12.6462178Z [1;32mPASS[0m /datum/unit_test/high_five_too_slow 0s
+2023-11-12T09:04:12.6464631Z ##[endgroup]
+2023-11-12T09:04:12.6825675Z ##[group]/datum/unit_test/high_five_walk_away
+2023-11-12T09:04:12.7302468Z [1;32mPASS[0m /datum/unit_test/high_five_walk_away 0.1s
+2023-11-12T09:04:12.7304078Z ##[endgroup]
+2023-11-12T09:04:12.7849321Z ##[group]/datum/unit_test/hanukkah_2123
+2023-11-12T09:04:12.7857129Z [1;32mPASS[0m /datum/unit_test/hanukkah_2123 0s
+2023-11-12T09:04:12.7859467Z ##[endgroup]
+2023-11-12T09:04:12.7985283Z ##[group]/datum/unit_test/ramadan_2165
+2023-11-12T09:04:12.7988232Z [1;32mPASS[0m /datum/unit_test/ramadan_2165 0s
+2023-11-12T09:04:12.7990308Z ##[endgroup]
+2023-11-12T09:04:12.8115461Z ##[group]/datum/unit_test/thanksgiving_2020
+2023-11-12T09:04:12.8118309Z [1;32mPASS[0m /datum/unit_test/thanksgiving_2020 0s
+2023-11-12T09:04:12.8120732Z ##[endgroup]
+2023-11-12T09:04:12.8276159Z ##[group]/datum/unit_test/mother_3683
+2023-11-12T09:04:12.8278795Z [1;32mPASS[0m /datum/unit_test/mother_3683 0s
+2023-11-12T09:04:12.8281149Z ##[endgroup]
+2023-11-12T09:04:12.8402992Z ##[group]/datum/unit_test/hello_2020
+2023-11-12T09:04:12.8405520Z [1;32mPASS[0m /datum/unit_test/hello_2020 0s
+2023-11-12T09:04:12.8408004Z ##[endgroup]
+2023-11-12T09:04:12.8529607Z ##[group]/datum/unit_test/new_year_1983
+2023-11-12T09:04:12.8531956Z [1;32mPASS[0m /datum/unit_test/new_year_1983 0s
+2023-11-12T09:04:12.8534286Z ##[endgroup]
+2023-11-12T09:04:12.8655830Z ##[group]/datum/unit_test/moth_week_2020
+2023-11-12T09:04:12.8735184Z [1;32mPASS[0m /datum/unit_test/moth_week_2020 0s
+2023-11-12T09:04:12.8737646Z ##[endgroup]
+2023-11-12T09:04:12.8963722Z ##[group]/datum/unit_test/hulk_attack
+2023-11-12T09:04:12.9298282Z [1;32mPASS[0m /datum/unit_test/hulk_attack 0.1s
+2023-11-12T09:04:12.9300378Z ##[endgroup]
+2023-11-12T09:04:12.9631065Z ##[group]/datum/unit_test/hulk_north_star
+2023-11-12T09:04:12.9971964Z [1;32mPASS[0m /datum/unit_test/hulk_north_star 0s
+2023-11-12T09:04:12.9974198Z ##[endgroup]
+2023-11-12T09:04:13.0684879Z ##[group]/datum/unit_test/human_through_recycler
+2023-11-12T09:04:13.1042839Z [1;32mPASS[0m /datum/unit_test/human_through_recycler 0.1s
+2023-11-12T09:04:13.1045346Z ##[endgroup]
+2023-11-12T09:04:13.1302366Z ##[group]/datum/unit_test/hunger_curse
+2023-11-12T09:04:13.1487751Z [1;32mPASS[0m /datum/unit_test/hunger_curse 0s
+2023-11-12T09:04:13.1490362Z ##[endgroup]
+2023-11-12T09:04:13.1724484Z ##[group]/datum/unit_test/hydroponics_extractor_storage
+2023-11-12T09:04:13.2045321Z [1;32mPASS[0m /datum/unit_test/hydroponics_extractor_storage 0.1s
+2023-11-12T09:04:13.2047744Z ##[endgroup]
+2023-11-12T09:04:13.2424994Z ##[group]/datum/unit_test/hydroponics_harvest
+2023-11-12T09:04:13.3172098Z [1;32mPASS[0m /datum/unit_test/hydroponics_harvest 0.1s
+2023-11-12T09:04:13.3173538Z ##[endgroup]
+2023-11-12T09:04:13.3896863Z ##[group]/datum/unit_test/hydroponics_self_mutation
+2023-11-12T09:04:13.4546321Z [1;32mPASS[0m /datum/unit_test/hydroponics_self_mutation 0.1s
+2023-11-12T09:04:13.4548349Z ##[endgroup]
+2023-11-12T09:04:13.5127280Z ##[group]/datum/unit_test/hydroponics_validate_genes
+2023-11-12T09:04:13.5761114Z [1;32mPASS[0m /datum/unit_test/hydroponics_validate_genes 0s
+2023-11-12T09:04:13.5765353Z ##[endgroup]
+2023-11-12T09:04:13.5897676Z ##[group]/datum/unit_test/defined_inhand_icon_states
+2023-11-12T09:04:14.5257265Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values.
+2023-11-12T09:04:14.5260490Z /obj/item/clothing/head/costume/lizard does not have an inhand_icon_state value - Possible matching sprites for "lizard" found in: 'icons/mob/inhands/animal_item_lefthand.dmi' & 'icons/mob/inhands/animal_item_righthand.dmi'
+2023-11-12T09:04:14.5265334Z /obj/item/clothing/head/costume/paper_hat does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2023-11-12T09:04:14.5269130Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2023-11-12T09:04:14.5272911Z /obj/item/clothing/head/cowboy does not have an inhand_icon_state value - Possible matching sprites for "cowboy_hat_brown" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi'
+2023-11-12T09:04:14.5276899Z /obj/item/clothing/head/chaplain/habit_veil does not have an inhand_icon_state value - Possible matching sprites for "nun_hood_alt" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi'
+2023-11-12T09:04:14.5280655Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2023-11-12T09:04:14.5284605Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2023-11-12T09:04:14.5288384Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2023-11-12T09:04:14.5292328Z /obj/item/clothing/suit/apron/overalls does not have an inhand_icon_state value - Possible matching sprites for "overalls" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2023-11-12T09:04:14.5296324Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_righthand.dmi' & 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
+2023-11-12T09:04:14.5300339Z /obj/item/clothing/suit/chaplainsuit/habit does not have an inhand_icon_state value - Possible matching sprites for "habit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2023-11-12T09:04:14.5305034Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2023-11-12T09:04:14.5309450Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2023-11-12T09:04:14.5313568Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2023-11-12T09:04:14.5317158Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5320529Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5324489Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_righthand.dmi' & 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
+2023-11-12T09:04:14.5328382Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_righthand.dmi' & 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
+2023-11-12T09:04:14.5332211Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi'
+2023-11-12T09:04:14.5335835Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_lefthand.dmi' & 'icons/mob/inhands/weapons/axes_righthand.dmi'
+2023-11-12T09:04:14.5339617Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_lefthand.dmi' & 'icons/mob/inhands/weapons/axes_righthand.dmi'
+2023-11-12T09:04:14.5343300Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_lefthand.dmi' & 'icons/mob/inhands/weapons/axes_righthand.dmi'
+2023-11-12T09:04:14.5347106Z /obj/item/crowbar/mechremoval does not have an inhand_icon_state value - Possible matching sprites for "mechremoval0" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5350901Z /obj/item/mod/module/medbeam does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2023-11-12T09:04:14.5354609Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_righthand.dmi' & 'icons/mob/inhands/clothing/masks_lefthand.dmi'
+2023-11-12T09:04:14.5358402Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2023-11-12T09:04:14.5362405Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2023-11-12T09:04:14.5366326Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_righthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi'
+2023-11-12T09:04:14.5370513Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5374077Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2023-11-12T09:04:14.5377613Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi'
+2023-11-12T09:04:14.5381427Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_righthand.dmi' & 'icons/mob/inhands/items/megaphone_lefthand.dmi'
+2023-11-12T09:04:14.5386246Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5390973Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2023-11-12T09:04:14.5394601Z /obj/item/reagent_containers/cup/soda_cans does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5396934Z /obj/item/reagent_containers/cup/soda_cans/random does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5399759Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5402114Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5404446Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5406584Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5408970Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5411153Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5413351Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5415775Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5417918Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5420047Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5422176Z /obj/item/reagent_containers/cup/soda_cans/wellcheers does not have an inhand_icon_state value - Possible matching sprites for "wellcheers" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5424331Z /obj/item/reagent_containers/cup/soda_cans/volt_energy does not have an inhand_icon_state value - Possible matching sprites for "volt_energy" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5426605Z /obj/item/reagent_containers/cup/soda_cans/melon_soda does not have an inhand_icon_state value - Possible matching sprites for "melon_soda" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5428700Z /obj/item/reagent_containers/cup/soda_cans/beer does not have an inhand_icon_state value - Possible matching sprites for "space_beer" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5430842Z /obj/item/reagent_containers/cup/soda_cans/beer/rice does not have an inhand_icon_state value - Possible matching sprites for "ebisu" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5432971Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5435080Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_righthand.dmi' & 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
+2023-11-12T09:04:14.5437143Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2023-11-12T09:04:14.5439342Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2023-11-12T09:04:14.5441474Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2023-11-12T09:04:14.5443437Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2023-11-12T09:04:14.5445333Z /obj/item/toy/cards/cardhand does not have an inhand_icon_state value - Possible matching sprites for "nothing" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2023-11-12T09:04:14.5447188Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2023-11-12T09:04:14.5449271Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5451184Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5453081Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5454974Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5456921Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5459034Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5460981Z /obj/item/sbeacondrop/horse does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5463020Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2023-11-12T09:04:14.5465143Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2023-11-12T09:04:14.5467227Z /obj/item/stack/tile/fairygrass does not have an inhand_icon_state value - Possible matching sprites for "tile_fairygrass" found in: 'icons/mob/inhands/items/tiles_righthand.dmi' & 'icons/mob/inhands/items/tiles_lefthand.dmi'
+2023-11-12T09:04:14.5469256Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5471272Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5473406Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_lefthand.dmi' & 'icons/mob/inhands/equipment/security_righthand.dmi'
+2023-11-12T09:04:14.5475638Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_lefthand.dmi' & 'icons/mob/inhands/equipment/security_righthand.dmi'
+2023-11-12T09:04:14.5477679Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5479615Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi'
+2023-11-12T09:04:14.5482091Z /obj/item/boxcutter/extended does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi'
+2023-11-12T09:04:14.5484159Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_righthand.dmi' & 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
+2023-11-12T09:04:14.5486168Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_righthand.dmi' & 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
+2023-11-12T09:04:14.5488176Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
+2023-11-12T09:04:14.5490187Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
+2023-11-12T09:04:14.5492367Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2023-11-12T09:04:14.5494352Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2023-11-12T09:04:14.5496447Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2023-11-12T09:04:14.5498538Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi'
+2023-11-12T09:04:14.5500478Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2023-11-12T09:04:14.5502414Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2023-11-12T09:04:14.5504543Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2023-11-12T09:04:14.5506586Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2023-11-12T09:04:14.5508606Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2023-11-12T09:04:14.5510522Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi'
+2023-11-12T09:04:14.5512535Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi'
+2023-11-12T09:04:14.5514725Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi'
+2023-11-12T09:04:14.5516757Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi'
+2023-11-12T09:04:14.5518804Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi'
+2023-11-12T09:04:14.5520748Z /obj/item/sticker/robot does not have an inhand_icon_state value - Possible matching sprites for "tile" found in: 'icons/mob/inhands/items/tiles_righthand.dmi' & 'icons/mob/inhands/items/tiles_lefthand.dmi'
+2023-11-12T09:04:14.5522828Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5524800Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5526598Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2023-11-12T09:04:14.5528508Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi'
+2023-11-12T09:04:14.5530557Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi'
+2023-11-12T09:04:14.5532581Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5534544Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5536539Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5538610Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5540806Z /obj/item/construction/rcd/ce does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5542811Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5544792Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5546898Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5548856Z /obj/item/construction/rtd does not have an inhand_icon_state value - Possible matching sprites for "rtd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5551347Z /obj/item/construction/rtd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rtd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5553359Z /obj/item/construction/rtd/admin does not have an inhand_icon_state value - Possible matching sprites for "rtd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5555307Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5557368Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi'
+2023-11-12T09:04:14.5559329Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2023-11-12T09:04:14.5561639Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_righthand.dmi' & 'icons/mob/inhands/items/megaphone_lefthand.dmi'
+2023-11-12T09:04:14.5564165Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5566370Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5568963Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_lefthand.dmi' & 'icons/mob/inhands/weapons/plants_righthand.dmi'
+2023-11-12T09:04:14.5571469Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_lefthand.dmi' & 'icons/mob/inhands/equipment/palette_righthand.dmi'
+2023-11-12T09:04:14.5573366Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi'
+2023-11-12T09:04:14.5575235Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi'
+2023-11-12T09:04:14.5577115Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2023-11-12T09:04:14.5578938Z /obj/item/shovel/giant_wrench does not have an inhand_icon_state value - Possible matching sprites for "giant_wrench" found in: 'icons/mob/inhands/64x64_righthand.dmi' & 'icons/mob/inhands/64x64_lefthand.dmi'
+2023-11-12T09:04:14.5580822Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi'
+2023-11-12T09:04:14.5583032Z /obj/item/guardian_creator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2023-11-12T09:04:14.5584953Z /obj/item/research_notes does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2023-11-12T09:04:14.5586814Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2023-11-12T09:04:14.5588821Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2023-11-12T09:04:14.5590945Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_lefthand.dmi' & 'icons/mob/inhands/equipment/security_righthand.dmi'
+2023-11-12T09:04:14.5592385Z [1;32mPASS[0m /datum/unit_test/defined_inhand_icon_states 1s
+2023-11-12T09:04:14.5593067Z ##[endgroup]
+2023-11-12T09:04:14.5593503Z ##[group]/datum/unit_test/json_savefiles
+2023-11-12T09:04:14.5593927Z [1;32mPASS[0m /datum/unit_test/json_savefiles 0s
+2023-11-12T09:04:14.5594439Z ##[endgroup]
+2023-11-12T09:04:14.5697545Z ##[group]/datum/unit_test/keybinding_init
+2023-11-12T09:04:14.5700044Z [1;32mPASS[0m /datum/unit_test/keybinding_init 0s
+2023-11-12T09:04:14.5702215Z ##[endgroup]
+2023-11-12T09:04:14.5828294Z ##[group]/datum/unit_test/knockoff_component
+2023-11-12T09:04:14.6242363Z [1;32mPASS[0m /datum/unit_test/knockoff_component 0.1s
+2023-11-12T09:04:14.6244697Z ##[endgroup]
+2023-11-12T09:04:14.6630391Z ##[group]/datum/unit_test/language_species_swap_simple
+2023-11-12T09:04:14.7587413Z [1;32mPASS[0m /datum/unit_test/language_species_swap_simple 0.1s
+2023-11-12T09:04:14.7588791Z ##[endgroup]
+2023-11-12T09:04:14.7909664Z ##[group]/datum/unit_test/language_species_swap_complex
+2023-11-12T09:04:14.8535770Z [1;32mPASS[0m /datum/unit_test/language_species_swap_complex 0.1s
+2023-11-12T09:04:14.8537437Z ##[endgroup]
+2023-11-12T09:04:14.8839470Z ##[group]/datum/unit_test/language_species_change_other_known
+2023-11-12T09:04:14.9795952Z [1;32mPASS[0m /datum/unit_test/language_species_change_other_known 0.1s
+2023-11-12T09:04:14.9797030Z ##[endgroup]
+2023-11-12T09:04:15.0435933Z ##[group]/datum/unit_test/language_mind_transfer
+2023-11-12T09:04:15.1107127Z [1;32mPASS[0m /datum/unit_test/language_mind_transfer 0.1s
+2023-11-12T09:04:15.1109587Z ##[endgroup]
+2023-11-12T09:04:15.2112030Z ##[group]/datum/unit_test/language_mind_swap
+2023-11-12T09:04:15.2925264Z [1;32mPASS[0m /datum/unit_test/language_mind_swap 0s
+2023-11-12T09:04:15.2927698Z ##[endgroup]
+2023-11-12T09:04:15.3795431Z ##[group]/datum/unit_test/book_of_babel
+2023-11-12T09:04:15.4462613Z [1;32mPASS[0m /datum/unit_test/book_of_babel 0.1s
+2023-11-12T09:04:15.4464636Z ##[endgroup]
+2023-11-12T09:04:15.4773421Z ##[group]/datum/unit_test/lesserform
+2023-11-12T09:04:15.6945571Z [1;32mPASS[0m /datum/unit_test/lesserform 0.2s
+2023-11-12T09:04:15.6948228Z ##[endgroup]
+2023-11-12T09:04:15.7353723Z ##[group]/datum/unit_test/limbsanity
+2023-11-12T09:04:15.7943636Z [1;32mPASS[0m /datum/unit_test/limbsanity 0s
+2023-11-12T09:04:15.7944637Z ##[endgroup]
+2023-11-12T09:04:15.8094514Z ##[group]/datum/unit_test/limb_height_adjustment
+2023-11-12T09:04:15.8922884Z [1;32mPASS[0m /datum/unit_test/limb_height_adjustment 0s
+2023-11-12T09:04:15.8924726Z ##[endgroup]
+2023-11-12T09:04:15.9430586Z ##[group]/datum/unit_test/ling_decap
+2023-11-12T09:04:15.9835506Z [1;32mPASS[0m /datum/unit_test/ling_decap 0s
+2023-11-12T09:04:15.9839509Z ##[endgroup]
+2023-11-12T09:04:16.0140352Z ##[group]/datum/unit_test/normal_decap
+2023-11-12T09:04:16.0424498Z [1;32mPASS[0m /datum/unit_test/normal_decap 0s
+2023-11-12T09:04:16.0426983Z ##[endgroup]
+2023-11-12T09:04:16.0805164Z ##[group]/datum/unit_test/liver/skeleton
+2023-11-12T09:04:16.1038545Z [1;32mPASS[0m /datum/unit_test/liver/skeleton 0.1s
+2023-11-12T09:04:16.1041112Z ##[endgroup]
+2023-11-12T09:04:16.1284821Z ##[group]/datum/unit_test/liver/plasmaman
+2023-11-12T09:04:16.1580562Z [1;32mPASS[0m /datum/unit_test/liver/plasmaman 0s
+2023-11-12T09:04:16.1583210Z ##[endgroup]
+2023-11-12T09:04:16.2153103Z ##[group]/datum/unit_test/load_map_security
+2023-11-12T09:04:16.2161683Z map directory not in whitelist: data/load_map_security_temp for map runtimestation
+2023-11-12T09:04:16.2164604Z [1;32mPASS[0m /datum/unit_test/load_map_security 0s
+2023-11-12T09:04:16.2167411Z ##[endgroup]
+2023-11-12T09:04:16.2305620Z ##[group]/datum/unit_test/lungs/lungs_sanity
+2023-11-12T09:04:16.2992950Z [1;32mPASS[0m /datum/unit_test/lungs/lungs_sanity 0s
+2023-11-12T09:04:16.2993961Z ##[endgroup]
+2023-11-12T09:04:16.3555743Z ##[group]/datum/unit_test/lungs/lungs_sanity_plasmaman
+2023-11-12T09:04:16.3893402Z [1;32mPASS[0m /datum/unit_test/lungs/lungs_sanity_plasmaman 0s
+2023-11-12T09:04:16.3896070Z ##[endgroup]
+2023-11-12T09:04:16.4363609Z ##[group]/datum/unit_test/lungs/lungs_sanity_ashwalker
+2023-11-12T09:04:16.4534765Z [1;32mPASS[0m /datum/unit_test/lungs/lungs_sanity_ashwalker 0s
+2023-11-12T09:04:16.4537484Z ##[endgroup]
+2023-11-12T09:04:16.5268598Z ##[group]/datum/unit_test/machine_disassembly
+2023-11-12T09:04:16.5331398Z [1;32mPASS[0m /datum/unit_test/machine_disassembly 0s
+2023-11-12T09:04:16.5334165Z ##[endgroup]
+2023-11-12T09:04:16.5965192Z ##[group]/datum/unit_test/mafia
+2023-11-12T09:04:16.9361333Z [1;32mPASS[0m /datum/unit_test/mafia 0.4s
+2023-11-12T09:04:16.9362885Z ##[endgroup]
+2023-11-12T09:04:17.0130362Z ##[group]/datum/unit_test/job_roundstart_spawnpoints
+2023-11-12T09:04:17.0143039Z [1;32mPASS[0m /datum/unit_test/job_roundstart_spawnpoints 0s
+2023-11-12T09:04:17.0145274Z ##[endgroup]
+2023-11-12T09:04:17.0659056Z ##[group]/datum/unit_test/mecha_damage
+2023-11-12T09:04:17.1110027Z [1;32mPASS[0m /datum/unit_test/mecha_damage 0.1s
+2023-11-12T09:04:17.1112178Z ##[endgroup]
+2023-11-12T09:04:17.2054159Z ##[group]/datum/unit_test/test_human_base
+2023-11-12T09:04:17.2287354Z [1;32mPASS[0m /datum/unit_test/test_human_base 0s
+2023-11-12T09:04:17.2289454Z ##[endgroup]
+2023-11-12T09:04:17.2929615Z ##[group]/datum/unit_test/test_human_bone
+2023-11-12T09:04:17.3157404Z [1;32mPASS[0m /datum/unit_test/test_human_bone 0.1s
+2023-11-12T09:04:17.3160356Z ##[endgroup]
+2023-11-12T09:04:17.3434694Z ##[group]/datum/unit_test/merge_type
+2023-11-12T09:04:17.3440046Z [1;32mPASS[0m /datum/unit_test/merge_type 0s
+2023-11-12T09:04:17.3442753Z ##[endgroup]
+2023-11-12T09:04:17.3573048Z ##[group]/datum/unit_test/metabolization
+2023-11-12T09:04:17.6960389Z [1;32mPASS[0m /datum/unit_test/metabolization 0.3s
+2023-11-12T09:04:17.6963225Z ##[endgroup]
+2023-11-12T09:04:17.7388896Z ##[group]/datum/unit_test/on_mob_end_metabolize
+2023-11-12T09:04:17.7590192Z [1;32mPASS[0m /datum/unit_test/on_mob_end_metabolize 0s
+2023-11-12T09:04:17.7592863Z ##[endgroup]
+2023-11-12T09:04:17.7841810Z ##[group]/datum/unit_test/addictions
+2023-11-12T09:04:17.8425631Z [1;32mPASS[0m /datum/unit_test/addictions 0.1s
+2023-11-12T09:04:17.8428724Z ##[endgroup]
+2023-11-12T09:04:17.9023556Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer
+2023-11-12T09:04:17.9228877Z [1;32mPASS[0m /datum/unit_test/actions_moved_on_mind_transfer 0s
+2023-11-12T09:04:17.9231703Z ##[endgroup]
+2023-11-12T09:04:17.9679832Z ##[group]/datum/unit_test/missing_icons
+2023-11-12T09:04:24.5752532Z [1;32mPASS[0m /datum/unit_test/missing_icons 6.6s
+2023-11-12T09:04:24.5754181Z ##[endgroup]
+2023-11-12T09:04:24.6466600Z ##[group]/datum/unit_test/mob_chains
+2023-11-12T09:04:24.6632928Z [1;32mPASS[0m /datum/unit_test/mob_chains 0s
+2023-11-12T09:04:24.6635968Z ##[endgroup]
+2023-11-12T09:04:24.7913005Z ##[group]/datum/unit_test/mob_faction
+2023-11-12T09:04:28.5066463Z [1;32mPASS[0m /datum/unit_test/mob_faction 3.8s
+2023-11-12T09:04:28.5069188Z ##[endgroup]
+2023-11-12T09:04:31.6163193Z ##[group]/datum/unit_test/mob_spawn
+2023-11-12T09:04:31.6427245Z [1;32mPASS[0m /datum/unit_test/mob_spawn 0s
+2023-11-12T09:04:31.6431419Z ##[endgroup]
+2023-11-12T09:04:32.0058055Z ##[group]/datum/unit_test/modsuit_checks
+2023-11-12T09:04:32.2811166Z [1;32mPASS[0m /datum/unit_test/modsuit_checks 0.2s
+2023-11-12T09:04:32.2812528Z ##[endgroup]
+2023-11-12T09:04:32.3511926Z ##[group]/datum/unit_test/modular_map_loader
+2023-11-12T09:04:32.3521874Z [1;32mPASS[0m /datum/unit_test/modular_map_loader 0s
+2023-11-12T09:04:32.3523808Z ##[endgroup]
+2023-11-12T09:04:32.4142704Z ##[group]/datum/unit_test/mouse_bite_cable
+2023-11-12T09:04:32.4246879Z [1;32mPASS[0m /datum/unit_test/mouse_bite_cable 0s
+2023-11-12T09:04:32.4248567Z ##[endgroup]
+2023-11-12T09:04:32.4874261Z ##[group]/datum/unit_test/mutant_hands
+2023-11-12T09:04:32.5112259Z [1;32mPASS[0m /datum/unit_test/mutant_hands 0.1s
+2023-11-12T09:04:32.5113850Z ##[endgroup]
+2023-11-12T09:04:32.5849921Z ##[group]/datum/unit_test/mutant_hands_with_nodrop
+2023-11-12T09:04:32.6040138Z [1;32mPASS[0m /datum/unit_test/mutant_hands_with_nodrop 0.1s
+2023-11-12T09:04:32.6041689Z ##[endgroup]
+2023-11-12T09:04:32.6773675Z ##[group]/datum/unit_test/mutant_hands_carry
+2023-11-12T09:04:32.7131388Z [1;32mPASS[0m /datum/unit_test/mutant_hands_carry 0.1s
+2023-11-12T09:04:32.7133185Z ##[endgroup]
+2023-11-12T09:04:32.7786446Z ##[group]/datum/unit_test/mutant_organs
+2023-11-12T09:04:34.2934214Z [1;32mPASS[0m /datum/unit_test/mutant_organs 1.5s
+2023-11-12T09:04:34.2935313Z ##[endgroup]
+2023-11-12T09:04:34.6462244Z ##[group]/datum/unit_test/novaflower_burn
+2023-11-12T09:04:34.6850680Z [1;32mPASS[0m /datum/unit_test/novaflower_burn 0s
+2023-11-12T09:04:34.6852577Z ##[endgroup]
+2023-11-12T09:04:34.7556767Z ##[group]/datum/unit_test/nuke_cinematic
+2023-11-12T09:04:39.0321508Z [1;32mPASS[0m /datum/unit_test/nuke_cinematic 4.3s
+2023-11-12T09:04:39.0323281Z ##[endgroup]
+2023-11-12T09:04:39.0458593Z ##[group]/datum/unit_test/objectives_category
+2023-11-12T09:04:39.0479702Z [1;32mPASS[0m /datum/unit_test/objectives_category 0s
+2023-11-12T09:04:39.0482187Z ##[endgroup]
+2023-11-12T09:04:39.0633771Z ##[group]/datum/unit_test/operating_table
+2023-11-12T09:04:39.0971239Z [1;32mPASS[0m /datum/unit_test/operating_table 0s
+2023-11-12T09:04:39.0973601Z ##[endgroup]
+2023-11-12T09:04:39.1707308Z ##[group]/datum/unit_test/orderable_items
+2023-11-12T09:04:39.3304868Z [1;32mPASS[0m /datum/unit_test/orderable_items 0.2s
+2023-11-12T09:04:39.3307041Z ##[endgroup]
+2023-11-12T09:04:39.4628600Z ##[group]/datum/unit_test/organ_set_bonus_id
+2023-11-12T09:04:39.4631127Z [1;32mPASS[0m /datum/unit_test/organ_set_bonus_id 0s
+2023-11-12T09:04:39.4632993Z ##[endgroup]
+2023-11-12T09:04:39.4763602Z ##[group]/datum/unit_test/organ_set_bonus_sanity
+2023-11-12T09:04:39.7566200Z [1;32mPASS[0m /datum/unit_test/organ_set_bonus_sanity 0.3s
+2023-11-12T09:04:39.7567687Z ##[endgroup]
+2023-11-12T09:04:39.8948309Z ##[group]/datum/unit_test/organ_sanity
+2023-11-12T09:04:39.8957864Z [1;32mPASS[0m /datum/unit_test/organ_sanity 0s
+2023-11-12T09:04:39.8960612Z ##[endgroup]
+2023-11-12T09:04:39.9099785Z ##[group]/datum/unit_test/organ_damage
+2023-11-12T09:04:39.9663107Z [1;32mPASS[0m /datum/unit_test/organ_damage 0s
+2023-11-12T09:04:39.9665107Z ##[endgroup]
+2023-11-12T09:04:40.0023907Z ##[group]/datum/unit_test/outfit_sanity
+2023-11-12T09:04:52.5011539Z [1;32mPASS[0m /datum/unit_test/outfit_sanity 12.5s
+2023-11-12T09:04:52.5013136Z ##[endgroup]
+2023-11-12T09:04:52.5847995Z ##[group]/datum/unit_test/oxyloss_suffocation
+2023-11-12T09:04:52.6033624Z [1;32mPASS[0m /datum/unit_test/oxyloss_suffocation 0.1s
+2023-11-12T09:04:52.6035713Z ##[endgroup]
+2023-11-12T09:04:52.6523199Z ##[group]/datum/unit_test/paintings
+2023-11-12T09:04:52.6718185Z [1;32mPASS[0m /datum/unit_test/paintings 0s
+2023-11-12T09:04:52.6720334Z ##[endgroup]
+2023-11-12T09:04:52.6860350Z ##[group]/datum/unit_test/pills
+2023-11-12T09:04:52.7049829Z [1;32mPASS[0m /datum/unit_test/pills 0.1s
+2023-11-12T09:04:52.7051614Z ##[endgroup]
+2023-11-12T09:04:52.7284869Z ##[group]/datum/unit_test/plane_double_transform
+2023-11-12T09:04:52.7568954Z [1;32mPASS[0m /datum/unit_test/plane_double_transform 0s
+2023-11-12T09:04:52.7570947Z ##[endgroup]
+2023-11-12T09:04:52.8088783Z ##[group]/datum/unit_test/plane_dupe_detector
+2023-11-12T09:04:52.8092292Z [1;32mPASS[0m /datum/unit_test/plane_dupe_detector 0s
+2023-11-12T09:04:52.8094235Z ##[endgroup]
+2023-11-12T09:04:52.8223651Z ##[group]/datum/unit_test/plantgrowth
+2023-11-12T09:04:52.9104725Z [1;32mPASS[0m /datum/unit_test/plantgrowth 0.1s
+2023-11-12T09:04:52.9106537Z ##[endgroup]
+2023-11-12T09:04:52.9238426Z ##[group]/datum/unit_test/preference_species
+2023-11-12T09:04:52.9241982Z [1;32mPASS[0m /datum/unit_test/preference_species 0s
+2023-11-12T09:04:52.9243985Z ##[endgroup]
+2023-11-12T09:04:52.9366837Z ##[group]/datum/unit_test/preferences_implement_everything
+2023-11-12T09:04:52.9767879Z [1;32mPASS[0m /datum/unit_test/preferences_implement_everything 0s
+2023-11-12T09:04:52.9769887Z ##[endgroup]
+2023-11-12T09:04:53.0386005Z ##[group]/datum/unit_test/preferences_valid_savefile_key
+2023-11-12T09:04:53.0390164Z [1;32mPASS[0m /datum/unit_test/preferences_valid_savefile_key 0s
+2023-11-12T09:04:53.0392300Z ##[endgroup]
+2023-11-12T09:04:53.0533180Z ##[group]/datum/unit_test/preferences_valid_main_feature_name
+2023-11-12T09:04:53.0536519Z [1;32mPASS[0m /datum/unit_test/preferences_valid_main_feature_name 0s
+2023-11-12T09:04:53.0538733Z ##[endgroup]
+2023-11-12T09:04:53.0666858Z ##[group]/datum/unit_test/preferences_should_generate_icons_sanity
+2023-11-12T09:04:53.5932797Z [1;32mPASS[0m /datum/unit_test/preferences_should_generate_icons_sanity 0.5s
+2023-11-12T09:04:53.5934463Z ##[endgroup]
+2023-11-12T09:04:53.6200764Z ##[group]/datum/unit_test/projectile_movetypes
+2023-11-12T09:04:53.6204485Z [1;32mPASS[0m /datum/unit_test/projectile_movetypes 0s
+2023-11-12T09:04:53.6206834Z ##[endgroup]
+2023-11-12T09:04:53.6336940Z ##[group]/datum/unit_test/gun_go_bang
+2023-11-12T09:04:53.6829687Z [1;32mPASS[0m /datum/unit_test/gun_go_bang 0s
+2023-11-12T09:04:53.6830843Z ##[endgroup]
+2023-11-12T09:04:53.7230698Z ##[group]/datum/unit_test/quirk_icons
+2023-11-12T09:04:53.7234275Z [1;32mPASS[0m /datum/unit_test/quirk_icons 0s
+2023-11-12T09:04:53.7236777Z ##[endgroup]
+2023-11-12T09:04:53.7365585Z ##[group]/datum/unit_test/range_return
+2023-11-12T09:04:53.7369094Z [1;32mPASS[0m /datum/unit_test/range_return 0s
+2023-11-12T09:04:53.7371240Z ##[endgroup]
+2023-11-12T09:04:53.7500465Z ##[group]/datum/unit_test/frame_stacking
+2023-11-12T09:04:53.7979971Z [1;32mPASS[0m /datum/unit_test/frame_stacking 0s
+2023-11-12T09:04:53.7981883Z ##[endgroup]
+2023-11-12T09:04:53.8318167Z ##[group]/datum/unit_test/reagent_container_defaults
+2023-11-12T09:04:54.0941417Z [1;32mPASS[0m /datum/unit_test/reagent_container_defaults 0.2s
+2023-11-12T09:04:54.0943278Z ##[endgroup]
+2023-11-12T09:04:54.2270413Z ##[group]/datum/unit_test/reagent_id_typos
+2023-11-12T09:04:54.2286982Z [1;32mPASS[0m /datum/unit_test/reagent_id_typos 0s
+2023-11-12T09:04:54.2289435Z ##[endgroup]
+2023-11-12T09:04:54.2420053Z ##[group]/datum/unit_test/reagent_mob_expose
+2023-11-12T09:04:54.2723656Z [1;32mPASS[0m /datum/unit_test/reagent_mob_expose 0s
+2023-11-12T09:04:54.2726334Z ##[endgroup]
+2023-11-12T09:04:54.3099472Z ##[group]/datum/unit_test/reagent_mob_procs
+2023-11-12T09:04:54.3289033Z [1;32mPASS[0m /datum/unit_test/reagent_mob_procs 0s
+2023-11-12T09:04:54.3291717Z ##[endgroup]
+2023-11-12T09:04:54.3541628Z ##[group]/datum/unit_test/reagent_names
+2023-11-12T09:04:55.1766396Z [1;32mPASS[0m /datum/unit_test/reagent_names 0.8s
+2023-11-12T09:04:55.1768837Z ##[endgroup]
+2023-11-12T09:04:55.2029840Z ##[group]/datum/unit_test/reagent_recipe_collisions
+2023-11-12T09:04:56.8716958Z [1;32mPASS[0m /datum/unit_test/reagent_recipe_collisions 1.6s
+2023-11-12T09:04:56.8718508Z ##[endgroup]
+2023-11-12T09:04:56.8869144Z ##[group]/datum/unit_test/reagent_transfer
+2023-11-12T09:04:56.8878975Z [1;32mPASS[0m /datum/unit_test/reagent_transfer 0s
+2023-11-12T09:04:56.8880828Z ##[endgroup]
+2023-11-12T09:04:56.9011226Z ##[group]/datum/unit_test/required_map_items
+2023-11-12T09:04:56.9014244Z [1;32mPASS[0m /datum/unit_test/required_map_items 0s
+2023-11-12T09:04:56.9016215Z ##[endgroup]
+2023-11-12T09:04:56.9145903Z ##[group]/datum/unit_test/stop_drop_and_roll
+2023-11-12T09:04:56.9332587Z [1;32mPASS[0m /datum/unit_test/stop_drop_and_roll 0s
+2023-11-12T09:04:56.9334766Z ##[endgroup]
+2023-11-12T09:04:56.9894372Z ##[group]/datum/unit_test/container_resist
+2023-11-12T09:04:57.0133852Z [1;32mPASS[0m /datum/unit_test/container_resist 0.1s
+2023-11-12T09:04:57.0136482Z ##[endgroup]
+2023-11-12T09:04:57.0869981Z ##[group]/datum/unit_test/get_message_mods
+2023-11-12T09:04:57.1036296Z [1;32mPASS[0m /datum/unit_test/get_message_mods 0.1s
+2023-11-12T09:04:57.1038377Z ##[endgroup]
+2023-11-12T09:04:57.1761766Z ##[group]/datum/unit_test/say_signal
+2023-11-12T09:04:57.1785738Z [1;32mPASS[0m /datum/unit_test/say_signal 0s
+2023-11-12T09:04:57.1787867Z ##[endgroup]
+2023-11-12T09:04:57.2275108Z ##[group]/datum/unit_test/translate_language
+2023-11-12T09:04:57.2445118Z [1;32mPASS[0m /datum/unit_test/translate_language 0s
+2023-11-12T09:04:57.2447197Z ##[endgroup]
+2023-11-12T09:04:57.2776300Z ##[group]/datum/unit_test/speech
+2023-11-12T09:04:57.3273922Z [1;32mPASS[0m /datum/unit_test/speech 0.1s
+2023-11-12T09:04:57.3276048Z ##[endgroup]
+2023-11-12T09:04:57.3648311Z ##[group]/datum/unit_test/screenshot_antag_icons
+2023-11-12T09:04:57.3655596Z screenshot_antag_icons_cyberpolice was put in data/screenshots_new
+2023-11-12T09:04:57.3668195Z screenshot_antag_icons_fugitive was put in data/screenshots_new
+2023-11-12T09:04:57.3673743Z screenshot_antag_icons_loneoperative was put in data/screenshots_new
+2023-11-12T09:04:57.3918428Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new
+2023-11-12T09:04:57.3925180Z screenshot_antag_icons_traitor was put in data/screenshots_new
+2023-11-12T09:04:57.4212360Z screenshot_antag_icons_malfai was put in data/screenshots_new
+2023-11-12T09:04:57.4244403Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new
+2023-11-12T09:04:57.4250630Z screenshot_antag_icons_changeling was put in data/screenshots_new
+2023-11-12T09:04:57.4282149Z screenshot_antag_icons_heretic was put in data/screenshots_new
+2023-11-12T09:04:57.4292701Z screenshot_antag_icons_wizard was put in data/screenshots_new
+2023-11-12T09:04:57.4322992Z screenshot_antag_icons_cultist was put in data/screenshots_new
+2023-11-12T09:04:57.4335181Z screenshot_antag_icons_operative was put in data/screenshots_new
+2023-11-12T09:04:57.4347253Z screenshot_antag_icons_clownoperative was put in data/screenshots_new
+2023-11-12T09:04:57.4360316Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new
+2023-11-12T09:04:57.4362553Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new
+2023-11-12T09:04:57.4364249Z screenshot_antag_icons_provocateur was put in data/screenshots_new
+2023-11-12T09:04:57.4365976Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new
+2023-11-12T09:04:57.4367872Z screenshot_antag_icons_stowawaychangeling was put in data/screenshots_new
+2023-11-12T09:04:57.4369724Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new
+2023-11-12T09:04:57.4371538Z screenshot_antag_icons_operativemidround was put in data/screenshots_new
+2023-11-12T09:04:57.4836255Z screenshot_antag_icons_blob was put in data/screenshots_new
+2023-11-12T09:04:57.4913104Z screenshot_antag_icons_xenomorph was put in data/screenshots_new
+2023-11-12T09:04:57.4918547Z screenshot_antag_icons_nightmare was put in data/screenshots_new
+2023-11-12T09:04:57.4972641Z screenshot_antag_icons_spacedragon was put in data/screenshots_new
+2023-11-12T09:04:57.4978863Z screenshot_antag_icons_abductor was put in data/screenshots_new
+2023-11-12T09:04:57.4984390Z screenshot_antag_icons_spaceninja was put in data/screenshots_new
+2023-11-12T09:04:57.5142179Z screenshot_antag_icons_revenant was put in data/screenshots_new
+2023-11-12T09:04:57.5158225Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new
+2023-11-12T09:04:57.5164048Z screenshot_antag_icons_changelingmidround was put in data/screenshots_new
+2023-11-12T09:04:57.5175747Z screenshot_antag_icons_paradoxclone was put in data/screenshots_new
+2023-11-12T09:04:57.5177675Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new
+2023-11-12T09:04:57.5295585Z screenshot_antag_icons_blobinfection was put in data/screenshots_new
+2023-11-12T09:04:57.5313285Z screenshot_antag_icons_obsessed was put in data/screenshots_new
+2023-11-12T09:04:57.5315517Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new
+2023-11-12T09:04:57.5319787Z [1;32mPASS[0m /datum/unit_test/screenshot_antag_icons 0.2s
+2023-11-12T09:04:57.5322595Z ##[endgroup]
+2023-11-12T09:04:57.5541756Z ##[group]/datum/unit_test/screenshot_basic
+2023-11-12T09:04:57.5545037Z screenshot_basic_red was put in data/screenshots_new
+2023-11-12T09:04:57.5548126Z [1;32mPASS[0m /datum/unit_test/screenshot_basic 0s
+2023-11-12T09:04:57.5550758Z ##[endgroup]
+2023-11-12T09:04:57.5683479Z ##[group]/datum/unit_test/screenshot_dynamic_human_icons
+2023-11-12T09:04:57.8350756Z screenshot_dynamic_human_icons_syndicate_commando was put in data/screenshots_new
+2023-11-12T09:04:57.8354817Z [1;32mPASS[0m /datum/unit_test/screenshot_dynamic_human_icons 0.3s
+2023-11-12T09:04:57.8357024Z ##[endgroup]
+2023-11-12T09:04:57.8497778Z ##[group]/datum/unit_test/screenshot_humanoids
+2023-11-12T09:04:58.2541589Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new
+2023-11-12T09:04:58.8071729Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new
+2023-11-12T09:04:59.0481483Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new
+2023-11-12T09:04:59.2204964Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new
+2023-11-12T09:04:59.4446438Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new
+2023-11-12T09:04:59.9025529Z screenshot_humanoids__datum_species_human was put in data/screenshots_new
+2023-11-12T09:05:00.3720324Z screenshot_humanoids__datum_species_human_tallboy was put in data/screenshots_new
+2023-11-12T09:05:00.8410192Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new
+2023-11-12T09:05:01.3919326Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new
+2023-11-12T09:05:01.5050044Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new
+2023-11-12T09:05:01.6332131Z screenshot_humanoids__datum_species_monkey_human_legged was put in data/screenshots_new
+2023-11-12T09:05:01.8078163Z screenshot_humanoids__datum_species_monkey_monkey_freak was put in data/screenshots_new
+2023-11-12T09:05:01.9204604Z screenshot_humanoids__datum_species_monkey_holodeck was put in data/screenshots_new
+2023-11-12T09:05:02.2703729Z screenshot_humanoids__datum_species_android was put in data/screenshots_new
+2023-11-12T09:05:02.5066397Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new
+2023-11-12T09:05:02.8821597Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new
+2023-11-12T09:05:03.0618503Z screenshot_humanoids__datum_species_ethereal_lustrous was put in data/screenshots_new
+2023-11-12T09:05:03.6054858Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new
+2023-11-12T09:05:03.7723456Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new
+2023-11-12T09:05:04.2399263Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new
+2023-11-12T09:05:04.7039511Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new
+2023-11-12T09:05:05.1607461Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new
+2023-11-12T09:05:05.6194475Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new
+2023-11-12T09:05:05.9809404Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new
+2023-11-12T09:05:06.3898218Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new
+2023-11-12T09:05:06.6851305Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new
+2023-11-12T09:05:07.0392950Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new
+2023-11-12T09:05:07.5136767Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new
+2023-11-12T09:05:07.7567133Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new
+2023-11-12T09:05:08.2342975Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new
+2023-11-12T09:05:08.6975763Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new
+2023-11-12T09:05:09.2496544Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new
+2023-11-12T09:05:09.8588009Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new
+2023-11-12T09:05:09.8591473Z [1;32mPASS[0m /datum/unit_test/screenshot_humanoids 12s
+2023-11-12T09:05:09.8593884Z ##[endgroup]
+2023-11-12T09:05:10.3359233Z ##[group]/datum/unit_test/screenshot_husk
+2023-11-12T09:05:10.4814584Z screenshot_husk_body was put in data/screenshots_new
+2023-11-12T09:05:10.5100421Z screenshot_husk_body_missing_limbs was put in data/screenshots_new
+2023-11-12T09:05:10.5103760Z [1;32mPASS[0m /datum/unit_test/screenshot_husk 0.2s
+2023-11-12T09:05:10.5105844Z ##[endgroup]
+2023-11-12T09:05:10.5738946Z ##[group]/datum/unit_test/screenshot_saturnx
+2023-11-12T09:05:10.7302951Z screenshot_saturnx_invisibility was put in data/screenshots_new
+2023-11-12T09:05:10.7306714Z [1;32mPASS[0m /datum/unit_test/screenshot_saturnx 0.2s
+2023-11-12T09:05:10.7309565Z ##[endgroup]
+2023-11-12T09:05:10.7993117Z ##[group]/datum/unit_test/security_levels
+2023-11-12T09:05:10.7995233Z [1;32mPASS[0m /datum/unit_test/security_levels 0s
+2023-11-12T09:05:10.7997473Z ##[endgroup]
+2023-11-12T09:05:10.8718075Z ##[group]/datum/unit_test/security_officer_roundstart_distribution
+2023-11-12T09:05:10.9829621Z [1;32mPASS[0m /datum/unit_test/security_officer_roundstart_distribution 0.1s
+2023-11-12T09:05:10.9831233Z ##[endgroup]
+2023-11-12T09:05:11.0917739Z ##[group]/datum/unit_test/security_officer_latejoin_distribution
+2023-11-12T09:05:11.3756560Z [1;32mPASS[0m /datum/unit_test/security_officer_latejoin_distribution 0.3s
+2023-11-12T09:05:11.3757917Z ##[endgroup]
+2023-11-12T09:05:11.6159233Z ##[group]/datum/unit_test/servingtray
+2023-11-12T09:05:11.6420663Z [1;32mPASS[0m /datum/unit_test/servingtray 0s
+2023-11-12T09:05:11.6422707Z ##[endgroup]
+2023-11-12T09:05:11.6722939Z ##[group]/datum/unit_test/simple_animal_freeze
+2023-11-12T09:05:11.6727308Z [1;32mPASS[0m /datum/unit_test/simple_animal_freeze 0s
+2023-11-12T09:05:11.6729459Z ##[endgroup]
+2023-11-12T09:05:11.6858248Z ##[group]/datum/unit_test/siunit
+2023-11-12T09:05:11.6862565Z [1;32mPASS[0m /datum/unit_test/siunit 0s
+2023-11-12T09:05:11.6864627Z ##[endgroup]
+2023-11-12T09:05:11.6994032Z ##[group]/datum/unit_test/slime_mood
+2023-11-12T09:05:11.7086306Z [1;32mPASS[0m /datum/unit_test/slime_mood 0.1s
+2023-11-12T09:05:11.7089418Z ##[endgroup]
+2023-11-12T09:05:11.7646724Z ##[group]/datum/unit_test/slips
+2023-11-12T09:05:11.7998254Z [1;32mPASS[0m /datum/unit_test/slips 0s
+2023-11-12T09:05:11.7999914Z ##[endgroup]
+2023-11-12T09:05:11.8832258Z ##[group]/datum/unit_test/spawn_humans
+2023-11-12T09:05:16.9174068Z [1;32mPASS[0m /datum/unit_test/spawn_humans 5.1s
+2023-11-12T09:05:16.9175480Z ##[endgroup]
+2023-11-12T09:05:16.9826971Z ##[group]/datum/unit_test/human_default_traits
+2023-11-12T09:05:16.9992542Z [1;32mPASS[0m /datum/unit_test/human_default_traits 0s
+2023-11-12T09:05:16.9994648Z ##[endgroup]
+2023-11-12T09:05:17.0453589Z ##[group]/datum/unit_test/spawn_mobs
+2023-11-12T09:05:17.3110840Z [1;32mPASS[0m /datum/unit_test/spawn_mobs 0.3s
+2023-11-12T09:05:17.3113201Z ##[endgroup]
+2023-11-12T09:05:17.8604911Z ##[group]/datum/unit_test/species_change_clothing
+2023-11-12T09:05:18.0037169Z [1;32mPASS[0m /datum/unit_test/species_change_clothing 0.2s
+2023-11-12T09:05:18.0039927Z ##[endgroup]
+2023-11-12T09:05:18.0594811Z ##[group]/datum/unit_test/species_change_held_items
+2023-11-12T09:05:18.1241794Z [1;32mPASS[0m /datum/unit_test/species_change_held_items 0.1s
+2023-11-12T09:05:18.1244171Z ##[endgroup]
+2023-11-12T09:05:18.1531271Z ##[group]/datum/unit_test/species_change_organs
+2023-11-12T09:05:18.2175195Z [1;32mPASS[0m /datum/unit_test/species_change_organs 0.1s
+2023-11-12T09:05:18.2177564Z ##[endgroup]
+2023-11-12T09:05:18.2917259Z ##[group]/datum/unit_test/species_config_sanity
+2023-11-12T09:05:18.2920181Z [1;32mPASS[0m /datum/unit_test/species_config_sanity 0s
+2023-11-12T09:05:18.2922846Z ##[endgroup]
+2023-11-12T09:05:18.3062818Z ##[group]/datum/unit_test/species_unique_id
+2023-11-12T09:05:18.3065971Z [1;32mPASS[0m /datum/unit_test/species_unique_id 0s
+2023-11-12T09:05:18.3068171Z ##[endgroup]
+2023-11-12T09:05:18.3222639Z ##[group]/datum/unit_test/species_whitelist_check
+2023-11-12T09:05:18.3225988Z [1;32mPASS[0m /datum/unit_test/species_whitelist_check 0s
+2023-11-12T09:05:18.3228060Z ##[endgroup]
+2023-11-12T09:05:18.3393256Z ##[group]/datum/unit_test/spell_invocations
+2023-11-12T09:05:18.3397536Z [1;32mPASS[0m /datum/unit_test/spell_invocations 0s
+2023-11-12T09:05:18.3400085Z ##[endgroup]
+2023-11-12T09:05:18.3530030Z ##[group]/datum/unit_test/shadow_jaunt
+2023-11-12T09:05:18.3711590Z [1;32mPASS[0m /datum/unit_test/shadow_jaunt 0s
+2023-11-12T09:05:18.3713925Z ##[endgroup]
+2023-11-12T09:05:18.4080468Z ##[group]/datum/unit_test/mind_swap_spell
+2023-11-12T09:05:18.4445059Z [1;32mPASS[0m /datum/unit_test/mind_swap_spell 0s
+2023-11-12T09:05:18.4447973Z ##[endgroup]
+2023-11-12T09:05:18.4831097Z ##[group]/datum/unit_test/spell_names
+2023-11-12T09:05:18.4836690Z [1;32mPASS[0m /datum/unit_test/spell_names 0s
+2023-11-12T09:05:18.4839793Z ##[endgroup]
+2023-11-12T09:05:18.4973281Z ##[group]/datum/unit_test/shapeshift_spell_validity
+2023-11-12T09:05:18.4982346Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell_validity 0s
+2023-11-12T09:05:18.4985502Z ##[endgroup]
+2023-11-12T09:05:18.5118193Z ##[group]/datum/unit_test/shapeshift_spell
+2023-11-12T09:05:31.3590354Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell 12.8s
+2023-11-12T09:05:31.3593257Z ##[endgroup]
+2023-11-12T09:05:31.3839062Z ##[group]/datum/unit_test/shapeshift_holoparasites
+2023-11-12T09:05:31.4236915Z [1;32mPASS[0m /datum/unit_test/shapeshift_holoparasites 0.1s
+2023-11-12T09:05:31.4240548Z ##[endgroup]
+2023-11-12T09:05:31.4609174Z ##[group]/datum/unit_test/shapeshift_health
+2023-11-12T09:05:32.0958569Z [1;32mPASS[0m /datum/unit_test/shapeshift_health 0.6s
+2023-11-12T09:05:32.0961165Z ##[endgroup]
+2023-11-12T09:05:32.2270540Z ##[group]/datum/unit_test/spritesheets
+2023-11-12T09:05:32.2310129Z [1;32mPASS[0m /datum/unit_test/spritesheets 0s
+2023-11-12T09:05:32.2313287Z ##[endgroup]
+2023-11-12T09:05:32.2444065Z ##[group]/datum/unit_test/stack_singular_name
+2023-11-12T09:05:32.2449554Z [1;32mPASS[0m /datum/unit_test/stack_singular_name 0s
+2023-11-12T09:05:32.2452311Z ##[endgroup]
+2023-11-12T09:05:32.2582343Z ##[group]/datum/unit_test/station_traits
+2023-11-12T09:05:32.2586458Z [1;32mPASS[0m /datum/unit_test/station_traits 0s
+2023-11-12T09:05:32.2589532Z ##[endgroup]
+2023-11-12T09:05:32.3273087Z ##[group]/datum/unit_test/status_effect_ticks
+2023-11-12T09:05:32.3278478Z [1;32mPASS[0m /datum/unit_test/status_effect_ticks 0s
+2023-11-12T09:05:32.3282046Z ##[endgroup]
+2023-11-12T09:05:32.3883615Z ##[group]/datum/unit_test/stomach
+2023-11-12T09:05:32.4148653Z [1;32mPASS[0m /datum/unit_test/stomach 0.1s
+2023-11-12T09:05:32.4152041Z ##[endgroup]
+2023-11-12T09:05:32.4474665Z ##[group]/datum/unit_test/strip_menu_ui_status
+2023-11-12T09:05:32.4955743Z [1;32mPASS[0m /datum/unit_test/strip_menu_ui_status 0s
+2023-11-12T09:05:32.4959231Z ##[endgroup]
+2023-11-12T09:05:32.5763081Z ##[group]/datum/unit_test/stun
+2023-11-12T09:05:32.5938628Z [1;32mPASS[0m /datum/unit_test/stun 0s
+2023-11-12T09:05:32.5941798Z ##[endgroup]
+2023-11-12T09:05:32.6174955Z ##[group]/datum/unit_test/knockdown
+2023-11-12T09:05:32.6344357Z [1;32mPASS[0m /datum/unit_test/knockdown 0s
+2023-11-12T09:05:32.6347424Z ##[endgroup]
+2023-11-12T09:05:32.6656807Z ##[group]/datum/unit_test/paralyze
+2023-11-12T09:05:32.6830553Z [1;32mPASS[0m /datum/unit_test/paralyze 0s
+2023-11-12T09:05:32.6834151Z ##[endgroup]
+2023-11-12T09:05:32.7067888Z ##[group]/datum/unit_test/unconsciousness
+2023-11-12T09:05:32.7247146Z [1;32mPASS[0m /datum/unit_test/unconsciousness 0s
+2023-11-12T09:05:32.7250770Z ##[endgroup]
+2023-11-12T09:05:32.7494899Z ##[group]/datum/unit_test/stun_absorb
+2023-11-12T09:05:32.7661160Z [1;32mPASS[0m /datum/unit_test/stun_absorb 0s
+2023-11-12T09:05:32.7664703Z ##[endgroup]
+2023-11-12T09:05:32.7898786Z ##[group]/datum/unit_test/subsystem_init
+2023-11-12T09:05:32.7903149Z [1;32mPASS[0m /datum/unit_test/subsystem_init 0s
+2023-11-12T09:05:32.7906701Z ##[endgroup]
+2023-11-12T09:05:32.8135238Z ##[group]/datum/unit_test/suit_storage_icons
+2023-11-12T09:05:34.6162263Z 1 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun"
+2023-11-12T09:05:34.6285969Z 2 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus"
+2023-11-12T09:05:34.6466661Z 3 - /obj/item/melee/baton/security/cattleprod/telecrystalprod using invalid icon_state, "telecrystalprod"
+2023-11-12T09:05:34.6533245Z 4 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade"
+2023-11-12T09:05:34.6538232Z 5 - /obj/item/melee/sickly_blade/cosmic using invalid icon_state, "cosmic_blade"
+2023-11-12T09:05:34.6541373Z 6 - /obj/item/melee/sickly_blade/lock using invalid icon_state, "key_blade"
+2023-11-12T09:05:34.6628237Z 7 - /obj/item/radio/headset/syndicate/alt using invalid worn_icon_state, "syndie_headset"
+2023-11-12T09:05:34.6633020Z 8 - /obj/item/radio/headset/headset_sec using invalid worn_icon_state, "sec_headset"
+2023-11-12T09:05:34.6636156Z 9 - /obj/item/radio/headset/headset_sec/alt using invalid worn_icon_state, "sec_headset_alt"
+2023-11-12T09:05:34.6639243Z 10 - /obj/item/radio/headset/headset_eng using invalid worn_icon_state, "eng_headset"
+2023-11-12T09:05:34.6642514Z 11 - /obj/item/radio/headset/headset_rob using invalid worn_icon_state, "rob_headset"
+2023-11-12T09:05:34.6645779Z 12 - /obj/item/radio/headset/headset_med using invalid worn_icon_state, "med_headset"
+2023-11-12T09:05:34.6649005Z 13 - /obj/item/radio/headset/headset_sci using invalid worn_icon_state, "sci_headset"
+2023-11-12T09:05:34.6652244Z 14 - /obj/item/radio/headset/headset_medsci using invalid worn_icon_state, "medsci_headset"
+2023-11-12T09:05:34.6655462Z 15 - /obj/item/radio/headset/headset_srvsec using invalid worn_icon_state, "srvsec_headset"
+2023-11-12T09:05:34.6658687Z 16 - /obj/item/radio/headset/headset_srvmed using invalid worn_icon_state, "srv_headset"
+2023-11-12T09:05:34.6661917Z 17 - /obj/item/radio/headset/headset_com using invalid worn_icon_state, "com_headset"
+2023-11-12T09:05:34.6667219Z 18 - /obj/item/radio/headset/heads/captain/alt using invalid worn_icon_state, "com_headset_alt"
+2023-11-12T09:05:34.6670732Z 19 - /obj/item/radio/headset/headset_cargo using invalid worn_icon_state, "cargo_headset"
+2023-11-12T09:05:34.6673230Z 20 - /obj/item/radio/headset/headset_cargo/mining using invalid worn_icon_state, "mine_headset"
+2023-11-12T09:05:34.6675625Z 21 - /obj/item/radio/headset/headset_cent using invalid worn_icon_state, "cent_headset"
+2023-11-12T09:05:34.6678128Z 22 - /obj/item/radio/headset/headset_cent/alt using invalid worn_icon_state, "cent_headset_alt"
+2023-11-12T09:05:34.6972394Z 23 - /obj/item/toy/foam_runic_scepter using invalid worn_icon_state, "vendor_staff"
+2023-11-12T09:05:34.7033817Z 24 - /obj/item/cultivator/rake using invalid icon_state, "rake"
+2023-11-12T09:05:34.7038164Z 25 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet"
+2023-11-12T09:05:34.7039900Z 26 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade"
+2023-11-12T09:05:34.7408592Z 27 - /obj/item/access_key using invalid icon_state, "access_key"
+2023-11-12T09:05:34.7458044Z 28 - /obj/item/key/janitor using invalid icon_state, "keyjanitor"
+2023-11-12T09:05:34.8393427Z 29 - /obj/item/universal_scanner using invalid icon_state, "export scanner"
+2023-11-12T09:05:34.8476665Z 30 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife"
+2023-11-12T09:05:34.8491387Z 31 - /obj/item/organ/internal/monster_core using invalid icon_state, "hivelord_core"
+2023-11-12T09:05:34.8493709Z 32 - /obj/item/organ/internal/monster_core/brimdust_sac using invalid icon_state, "brim_sac"
+2023-11-12T09:05:34.8496411Z 33 - /obj/item/organ/internal/monster_core/regenerative_core/legion using invalid icon_state, "legion_core"
+2023-11-12T09:05:34.8498777Z 34 - /obj/item/organ/internal/monster_core/rush_gland using invalid icon_state, "lobster_gland"
+2023-11-12T09:05:34.8538527Z 35 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan"
+2023-11-12T09:05:34.8540751Z 36 - /obj/item/abductor/silencer using invalid icon_state, "silencer"
+2023-11-12T09:05:34.8543252Z 37 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message"
+2023-11-12T09:05:34.8545406Z 38 - /obj/item/abductor/alien_omnitool using invalid icon_state, "omnitool"
+2023-11-12T09:05:34.8552089Z 39 - /obj/item/banner using invalid icon_state, "banner"
+2023-11-12T09:05:34.8554713Z 40 - /obj/item/banner/security using invalid icon_state, "banner_security"
+2023-11-12T09:05:34.8557066Z 41 - /obj/item/banner/medical using invalid icon_state, "banner_medical"
+2023-11-12T09:05:34.8559349Z 42 - /obj/item/banner/science using invalid icon_state, "banner_science"
+2023-11-12T09:05:34.8561592Z 43 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo"
+2023-11-12T09:05:34.8564170Z 44 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering"
+2023-11-12T09:05:34.8566536Z 45 - /obj/item/banner/red using invalid icon_state, "banner-red"
+2023-11-12T09:05:34.8568980Z 46 - /obj/item/banner/blue using invalid icon_state, "banner-blue"
+2023-11-12T09:05:34.8576281Z 47 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass"
+2023-11-12T09:05:34.8580270Z 48 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg"
+2023-11-12T09:05:34.8582334Z 49 - /obj/item/pillow using invalid icon_state, "pillow_1_t"
+2023-11-12T09:05:34.8584899Z 50 - /obj/item/pillow/clown using invalid icon_state, "pillow_5_t"
+2023-11-12T09:05:34.8587221Z 51 - /obj/item/pillow/mime using invalid icon_state, "pillow_6_t"
+2023-11-12T09:05:34.8626613Z 52 - /obj/item/gun/magic/staff/chaos/true_wabbajack using invalid icon_state, "the_wabbajack"
+2023-11-12T09:05:34.8633965Z 53 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff"
+2023-11-12T09:05:34.8636381Z 54 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff"
+2023-11-12T09:05:34.8657485Z 55 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass"
+2023-11-12T09:05:34.8659958Z 56 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch"
+2023-11-12T09:05:34.8662250Z 57 - /obj/item/clothing/glasses/eyepatch/medical using invalid icon_state, "eyepatch_medical"
+2023-11-12T09:05:34.8976969Z 58 - /obj/item/melee/energy/sword using invalid icon_state, "e_sword"
+2023-11-12T09:05:34.8979094Z 59 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw"
+2023-11-12T09:05:34.8988519Z 60 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised"
+2023-11-12T09:05:34.8993419Z 61 - /obj/item/multitool using invalid icon_state, "multitool"
+2023-11-12T09:05:34.8996418Z 62 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg"
+2023-11-12T09:05:34.8998725Z 63 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit"
+2023-11-12T09:05:34.9001342Z 64 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash"
+2023-11-12T09:05:34.9004166Z 65 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff"
+2023-11-12T09:05:34.9006481Z 66 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff"
+2023-11-12T09:05:34.9008788Z 67 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff"
+2023-11-12T09:05:34.9011087Z 68 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff"
+2023-11-12T09:05:34.9013684Z 69 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off"
+2023-11-12T09:05:34.9016282Z 70 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff"
+2023-11-12T09:05:34.9019334Z 71 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff"
+2023-11-12T09:05:34.9021398Z 72 - /obj/item/disk using invalid icon_state, "datadisk0"
+2023-11-12T09:05:34.9023878Z 73 - /obj/item/disk/holodisk using invalid icon_state, "holodisk"
+2023-11-12T09:05:34.9026566Z 74 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk"
+2023-11-12T09:05:34.9029044Z 75 - /obj/item/disk/surgery using invalid icon_state, "datadisk1"
+2023-11-12T09:05:34.9031722Z 76 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk"
+2023-11-12T09:05:34.9034253Z 77 - /obj/item/disk/design_disk/bepis using invalid icon_state, "rndmajordisk"
+2023-11-12T09:05:34.9036755Z 78 - /obj/item/melee/powerfist using invalid icon_state, "powerfist"
+2023-11-12T09:05:34.9044549Z 79 - /obj/item/melee/skateboard using invalid icon_state, "skateboard_held"
+2023-11-12T09:05:34.9047217Z 80 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2_held"
+2023-11-12T09:05:34.9049673Z 81 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red_held"
+2023-11-12T09:05:34.9052014Z 82 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt_held"
+2023-11-12T09:05:34.9054102Z 83 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat"
+2023-11-12T09:05:34.9056494Z 84 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home"
+2023-11-12T09:05:34.9058758Z 85 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal"
+2023-11-12T09:05:34.9061041Z 86 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter"
+2023-11-12T09:05:34.9065209Z 87 - /obj/item/melee/energy/axe using invalid icon_state, "axe"
+2023-11-12T09:05:34.9067917Z 88 - /obj/item/melee/energy/blade using invalid icon_state, "blade"
+2023-11-12T09:05:34.9070409Z 89 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade"
+2023-11-12T09:05:34.9072647Z 90 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade"
+2023-11-12T09:05:34.9074881Z 91 - /obj/item/melee/sabre using invalid icon_state, "sabre"
+2023-11-12T09:05:34.9077162Z 92 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger"
+2023-11-12T09:05:34.9079597Z 93 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword_balanced"
+2023-11-12T09:05:34.9085130Z 94 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn"
+2023-11-12T09:05:34.9087426Z 95 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver"
+2023-11-12T09:05:34.9089642Z 96 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral"
+2023-11-12T09:05:34.9099563Z 97 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l"
+2023-11-12T09:05:34.9101839Z 98 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag"
+2023-11-12T09:05:34.9104337Z 99 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag"
+2023-11-12T09:05:34.9106526Z 100 - /obj/item/cane using invalid icon_state, "cane"
+2023-11-12T09:05:34.9109148Z 101 - /obj/item/cane/white using invalid icon_state, "cane_white"
+2023-11-12T09:05:34.9127968Z 102 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger"
+2023-11-12T09:05:34.9129996Z 103 - /obj/item/kitchen/fork using invalid icon_state, "fork"
+2023-11-12T09:05:34.9132741Z 104 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork"
+2023-11-12T09:05:34.9137903Z 105 - /obj/item/kitchen/spoon using invalid icon_state, "spoon"
+2023-11-12T09:05:34.9140308Z 106 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon"
+2023-11-12T09:05:34.9142537Z 107 - /obj/item/kitchen/spoon/soup_ladle using invalid icon_state, "ladle"
+2023-11-12T09:05:34.9144673Z 108 - /obj/item/kitchen/tongs using invalid icon_state, "tongs"
+2023-11-12T09:05:34.9192479Z 109 - /obj/item/bonesetter using invalid icon_state, "bonesetter"
+2023-11-12T09:05:34.9194966Z 110 - /obj/item/cautery using invalid icon_state, "cautery"
+2023-11-12T09:05:34.9197552Z 111 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery"
+2023-11-12T09:05:34.9200017Z 112 - /obj/item/cautery/cruel using invalid icon_state, "cruelcautery"
+2023-11-12T09:05:34.9202572Z 113 - /obj/item/hemostat using invalid icon_state, "hemostat"
+2023-11-12T09:05:34.9205055Z 114 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs"
+2023-11-12T09:05:34.9207385Z 115 - /obj/item/hemostat/cruel using invalid icon_state, "cruelhemostat"
+2023-11-12T09:05:34.9209542Z 116 - /obj/item/retractor using invalid icon_state, "retractor"
+2023-11-12T09:05:34.9211950Z 117 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor"
+2023-11-12T09:05:34.9214520Z 118 - /obj/item/retractor/cruel using invalid icon_state, "cruelretractor"
+2023-11-12T09:05:34.9216984Z 119 - /obj/item/scalpel using invalid icon_state, "scalpel"
+2023-11-12T09:05:34.9219596Z 120 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel"
+2023-11-12T09:05:34.9221828Z 121 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel"
+2023-11-12T09:05:34.9224110Z 122 - /obj/item/scalpel/cruel using invalid icon_state, "cruelscalpel"
+2023-11-12T09:05:34.9226426Z 123 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes"
+2023-11-12T09:05:34.9230490Z 124 - /obj/item/crowbar/mechremoval using invalid icon_state, "mechremoval0"
+2023-11-12T09:05:34.9245013Z 125 - /obj/item/crowbar/hammer using invalid icon_state, "clawhammer"
+2023-11-12T09:05:34.9274002Z [1;32mPASS[0m /datum/unit_test/suit_storage_icons 2.1s
+2023-11-12T09:05:34.9277303Z ##[endgroup]
+2023-11-12T09:05:35.0051949Z ##[group]/datum/unit_test/amputation
+2023-11-12T09:05:35.0418593Z [1;32mPASS[0m /datum/unit_test/amputation 0s
+2023-11-12T09:05:35.0421400Z ##[endgroup]
+2023-11-12T09:05:35.0919237Z ##[group]/datum/unit_test/brain_surgery
+2023-11-12T09:05:35.1251285Z [1;32mPASS[0m /datum/unit_test/brain_surgery 0.1s
+2023-11-12T09:05:35.1254329Z ##[endgroup]
+2023-11-12T09:05:35.1587969Z ##[group]/datum/unit_test/head_transplant
+2023-11-12T09:05:35.2257286Z [1;32mPASS[0m /datum/unit_test/head_transplant 0.1s
+2023-11-12T09:05:35.2260747Z ##[endgroup]
+2023-11-12T09:05:35.2834393Z ##[group]/datum/unit_test/multiple_surgeries
+2023-11-12T09:05:35.3338834Z [1;32mPASS[0m /datum/unit_test/multiple_surgeries 0.1s
+2023-11-12T09:05:35.3341725Z ##[endgroup]
+2023-11-12T09:05:35.4031367Z ##[group]/datum/unit_test/start_tend_wounds
+2023-11-12T09:05:35.4361296Z [1;32mPASS[0m /datum/unit_test/start_tend_wounds 0s
+2023-11-12T09:05:35.4364716Z ##[endgroup]
+2023-11-12T09:05:35.4772361Z ##[group]/datum/unit_test/tend_wounds
+2023-11-12T09:05:35.5590830Z [1;32mPASS[0m /datum/unit_test/tend_wounds 0.1s
+2023-11-12T09:05:35.5594252Z ##[endgroup]
+2023-11-12T09:05:35.6747135Z ##[group]/datum/unit_test/tail_wag
+2023-11-12T09:05:35.8571590Z [1;32mPASS[0m /datum/unit_test/tail_wag 0.2s
+2023-11-12T09:05:35.8574630Z ##[endgroup]
+2023-11-12T09:05:35.8824009Z ##[group]/datum/unit_test/teleporter
+2023-11-12T09:05:35.9106477Z [1;32mPASS[0m /datum/unit_test/teleporter 0.1s
+2023-11-12T09:05:35.9109891Z ##[endgroup]
+2023-11-12T09:05:35.9363555Z ##[group]/datum/unit_test/tgui_create_message
+2023-11-12T09:05:35.9367522Z [1;32mPASS[0m /datum/unit_test/tgui_create_message 0s
+2023-11-12T09:05:35.9370812Z ##[endgroup]
+2023-11-12T09:05:35.9501436Z ##[group]/datum/unit_test/timer_sanity
+2023-11-12T09:05:35.9504464Z [1;32mPASS[0m /datum/unit_test/timer_sanity 0s
+2023-11-12T09:05:35.9508070Z ##[endgroup]
+2023-11-12T09:05:35.9637540Z ##[group]/datum/unit_test/trait_addition_and_removal
+2023-11-12T09:05:35.9642216Z [1;32mPASS[0m /datum/unit_test/trait_addition_and_removal 0s
+2023-11-12T09:05:35.9645763Z ##[endgroup]
+2023-11-12T09:05:35.9828636Z ##[group]/datum/unit_test/traitor
+2023-11-12T09:05:37.5946953Z [1;32mPASS[0m /datum/unit_test/traitor 1.6s
+2023-11-12T09:05:37.5948067Z ##[endgroup]
+2023-11-12T09:05:38.4317615Z ##[group]/datum/unit_test/traitor_mail_content_check
+2023-11-12T09:05:38.4490029Z [1;32mPASS[0m /datum/unit_test/traitor_mail_content_check 0s
+2023-11-12T09:05:38.4491508Z ##[endgroup]
+2023-11-12T09:05:38.4962906Z ##[group]/datum/unit_test/trauma_granting
+2023-11-12T09:05:38.5450644Z [1;32mPASS[0m /datum/unit_test/trauma_granting 0.1s
+2023-11-12T09:05:38.5452259Z ##[endgroup]
+2023-11-12T09:05:38.5799327Z ##[group]/datum/unit_test/turf_icons
+2023-11-12T09:05:39.0838086Z [1;32mPASS[0m /datum/unit_test/turf_icons 0.5s
+2023-11-12T09:05:39.0839541Z ##[endgroup]
+2023-11-12T09:05:39.1032413Z ##[group]/datum/unit_test/tutorial_sanity
+2023-11-12T09:05:39.1035529Z [1;32mPASS[0m /datum/unit_test/tutorial_sanity 0s
+2023-11-12T09:05:39.1037920Z ##[endgroup]
+2023-11-12T09:05:39.1166898Z ##[group]/datum/unit_test/verify_config_tags
+2023-11-12T09:05:39.1172282Z [1;32mPASS[0m /datum/unit_test/verify_config_tags 0s
+2023-11-12T09:05:39.1174748Z ##[endgroup]
+2023-11-12T09:05:39.1303312Z ##[group]/datum/unit_test/verify_emoji_names
+2023-11-12T09:05:39.1306816Z [1;32mPASS[0m /datum/unit_test/verify_emoji_names 0s
+2023-11-12T09:05:39.1309155Z ##[endgroup]
+2023-11-12T09:05:39.1436423Z ##[group]/datum/unit_test/moth_food
+2023-11-12T09:05:39.1899509Z [1;32mPASS[0m /datum/unit_test/moth_food 0s
+2023-11-12T09:05:39.1901926Z ##[endgroup]
+2023-11-12T09:05:39.2373626Z ##[group]/datum/unit_test/golem_food
+2023-11-12T09:05:39.2647161Z [1;32mPASS[0m /datum/unit_test/golem_food 0s
+2023-11-12T09:05:39.2649458Z ##[endgroup]
+2023-11-12T09:05:39.2901012Z ##[group]/datum/unit_test/wizard_loadout
+2023-11-12T09:05:39.3687154Z [1;32mPASS[0m /datum/unit_test/wizard_loadout 0.1s
+2023-11-12T09:05:39.3689468Z ##[endgroup]
+2023-11-12T09:05:39.4375880Z ##[group]/datum/unit_test/worn_icons
+2023-11-12T09:05:40.0482290Z [1;32mPASS[0m /datum/unit_test/worn_icons 0.6s
+2023-11-12T09:05:40.0483826Z ##[endgroup]
+2023-11-12T09:05:40.0625703Z ##[group]/datum/unit_test/find_reference_sanity
+2023-11-12T09:05:40.0632296Z [1;32mPASS[0m /datum/unit_test/find_reference_sanity 0s
+2023-11-12T09:05:40.0634532Z ##[endgroup]
+2023-11-12T09:05:40.0765341Z ##[group]/datum/unit_test/find_reference_baseline
+2023-11-12T09:05:40.0771322Z [1;32mPASS[0m /datum/unit_test/find_reference_baseline 0s
+2023-11-12T09:05:40.0773723Z ##[endgroup]
+2023-11-12T09:05:40.0904726Z ##[group]/datum/unit_test/find_reference_exotic
+2023-11-12T09:05:40.0910664Z [1;32mPASS[0m /datum/unit_test/find_reference_exotic 0s
+2023-11-12T09:05:40.0913091Z ##[endgroup]
+2023-11-12T09:05:40.1081989Z ##[group]/datum/unit_test/find_reference_esoteric
+2023-11-12T09:05:40.1091594Z [1;32mPASS[0m /datum/unit_test/find_reference_esoteric 0s
+2023-11-12T09:05:40.1093910Z ##[endgroup]
+2023-11-12T09:05:40.1356236Z ##[group]/datum/unit_test/find_reference_null_key_entry
+2023-11-12T09:05:40.1361917Z [1;32mPASS[0m /datum/unit_test/find_reference_null_key_entry 0s
+2023-11-12T09:05:40.1364019Z ##[endgroup]
+2023-11-12T09:05:40.1495527Z ##[group]/datum/unit_test/find_reference_assoc_investigation
+2023-11-12T09:05:40.1501290Z [1;32mPASS[0m /datum/unit_test/find_reference_assoc_investigation 0s
+2023-11-12T09:05:40.1503468Z ##[endgroup]
+2023-11-12T09:05:40.1629204Z ##[group]/datum/unit_test/find_reference_static_investigation
+2023-11-12T09:05:40.4955432Z [1;32mPASS[0m /datum/unit_test/find_reference_static_investigation 0.3s
+2023-11-12T09:05:40.4956809Z ##[endgroup]
+2023-11-12T09:05:40.5106809Z ##[group]/datum/unit_test/area_contents
+2023-11-12T09:05:41.5891675Z [1;32mPASS[0m /datum/unit_test/area_contents 1s
+2023-11-12T09:05:41.5893012Z ##[endgroup]
+2023-11-12T09:05:41.6151445Z ##[group]/datum/unit_test/atmospherics_sanity
+2023-11-12T09:05:41.6152255Z No starting areas found, defaulting...
+2023-11-12T09:05:41.6155445Z Marking all station areas as goal areas due to marker at (2, 254, 2)
+2023-11-12T09:05:42.2832551Z [1;32mPASS[0m /datum/unit_test/atmospherics_sanity 0.6s
+2023-11-12T09:05:42.2834628Z ##[endgroup]
+2023-11-12T09:05:42.3215674Z ##[group]/datum/unit_test/fish_rescue_hook
+2023-11-12T09:05:49.5841266Z [1;32mPASS[0m /datum/unit_test/fish_rescue_hook 7.2s
+2023-11-12T09:05:49.5842563Z ##[endgroup]
+2023-11-12T09:05:49.6648561Z ##[group]/datum/unit_test/leash/no_teleport
+2023-11-12T09:05:49.7264798Z [1;32mPASS[0m /datum/unit_test/leash/no_teleport 0.1s
+2023-11-12T09:05:49.7267230Z ##[endgroup]
+2023-11-12T09:05:49.7411212Z ##[group]/datum/unit_test/leash/will_teleport
+2023-11-12T09:05:49.7421861Z [1;32mPASS[0m /datum/unit_test/leash/will_teleport 0s
+2023-11-12T09:05:49.7424432Z ##[endgroup]
+2023-11-12T09:05:49.7571233Z ##[group]/datum/unit_test/leash/limit_range
+2023-11-12T09:05:49.7577430Z [1;32mPASS[0m /datum/unit_test/leash/limit_range 0s
+2023-11-12T09:05:49.7579955Z ##[endgroup]
+2023-11-12T09:05:49.7749544Z ##[group]/datum/unit_test/mapload_space_verification
+2023-11-12T09:05:50.3597291Z [1;32mPASS[0m /datum/unit_test/mapload_space_verification 0.6s
+2023-11-12T09:05:50.3598841Z ##[endgroup]
+2023-11-12T09:05:50.3862628Z ##[group]/datum/unit_test/mob_damage
+2023-11-12T09:05:50.4877049Z [1;32mPASS[0m /datum/unit_test/mob_damage 0.1s
+2023-11-12T09:05:50.4878381Z ##[endgroup]
+2023-11-12T09:05:50.5135873Z ##[group]/datum/unit_test/mob_damage/basic
+2023-11-12T09:05:50.5174197Z [1;32mPASS[0m /datum/unit_test/mob_damage/basic 0s
+2023-11-12T09:05:50.5176179Z ##[endgroup]
+2023-11-12T09:05:50.5348335Z ##[group]/datum/unit_test/modify_fantasy_variable
+2023-11-12T09:06:17.8433778Z [1;32mPASS[0m /datum/unit_test/modify_fantasy_variable 27.3s
+2023-11-12T09:06:17.8434791Z ##[endgroup]
+2023-11-12T09:06:24.9200774Z ##[group]/datum/unit_test/monkey_business
+2023-11-12T09:06:44.1178950Z [09:06:44] Runtime in timer.dm,125: Invalid timer: Timer: Timer: 2433 ([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME, TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object: /datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering), callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source: code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL, SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset: 600, practical_offset: 686, REALTIMEOFDAY: 328041
+2023-11-12T09:06:44.1182762Z proc name: fire (/datum/controller/subsystem/timer/fire)
+2023-11-12T09:06:44.1191977Z src: Sound Loops (/datum/controller/subsystem/timer/sound_loops)
+2023-11-12T09:06:44.1192834Z call stack:
+2023-11-12T09:06:44.1193480Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0)
+2023-11-12T09:06:44.1194547Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0)
+2023-11-12T09:06:44.1195659Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): ignite(0)
+2023-11-12T09:06:44.1196597Z Master (/datum/controller/master): RunQueue()
+2023-11-12T09:06:44.1201550Z Master (/datum/controller/master): Loop(2)
+2023-11-12T09:06:44.1202483Z Master (/datum/controller/master): StartProcessing(0)
+2023-11-12T09:07:03.3211396Z ##[error][09:06:44] Runtime in timer.dm,125: Invalid timer: Timer: Timer: 2433 ([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME, TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object: /datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering), callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source: code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL, SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset: 600, practical_offset: 686, REALTIMEOFDAY: 328041
+ proc name: fire (/datum/controller/subsystem/timer/fire)
+ src: Sound Loops (/datum/controller/subsystem/timer/sound_loops)
+ call stack:
+ Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0)
+ Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0)
+ Sound Loops (/datum/controller/subsystem/timer/sound_loops): ignite(0)
+ Master (/datum/controller/master): RunQueue()
+ Master (/datum/controller/master): Loop(2)
+ Master (/datum/controller/master): StartProcessing(0)
+2023-11-12T09:07:03.3224436Z FAILURE #1: [09:06:44] Runtime in timer.dm,125: Invalid timer: Timer: Timer: 2433 ([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME, TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object: /datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering), callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source: code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL, SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset: 600, practical_offset: 686, REALTIMEOFDAY: 328041
+2023-11-12T09:07:03.3226826Z proc name: fire (/datum/controller/subsystem/timer/fire)
+2023-11-12T09:07:03.3227626Z src: Sound Loops (/datum/controller/subsystem/timer/sound_loops)
+2023-11-12T09:07:03.3228077Z call stack:
+2023-11-12T09:07:03.3228462Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0)
+2023-11-12T09:07:03.3229045Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0)
+2023-11-12T09:07:03.3229619Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): ignite(0)
+2023-11-12T09:07:03.3230129Z Master (/datum/controller/master): RunQueue()
+2023-11-12T09:07:03.3230524Z Master (/datum/controller/master): Loop(2)
+2023-11-12T09:07:03.3231037Z Master (/datum/controller/master): StartProcessing(0) at timer.dm:125
+2023-11-12T09:07:03.3231712Z ##[endgroup]
+2023-11-12T09:07:03.3232839Z ##[error][1;31mFAIL[0m /datum/unit_test/monkey_business 38.4s
+2023-11-12T09:07:05.4669397Z ##[group]/datum/unit_test/strange_reagent
+2023-11-12T09:07:09.1986629Z [1;32mPASS[0m /datum/unit_test/strange_reagent 3.7s
+2023-11-12T09:07:09.1988202Z ##[endgroup]
+2023-11-12T09:07:11.6843550Z ##[group]/datum/unit_test/create_and_destroy
+2023-11-12T09:07:36.2863567Z No elevator ID for elevator music provided at Test Room (126,126,14).
+2023-11-12T09:08:13.7560132Z [1;32mPASS[0m /datum/unit_test/create_and_destroy 62.1s
+2023-11-12T09:08:13.7561471Z ##[endgroup]
+2023-11-12T09:08:13.7852782Z ##[group]/datum/unit_test/dcs_check_list_arguments
+2023-11-12T09:08:13.7940678Z [1;32mPASS[0m /datum/unit_test/dcs_check_list_arguments 0s
+2023-11-12T09:08:13.7942424Z ##[endgroup]
+2023-11-12T09:08:15.2400236Z Shutting down Chat subsystem...
+2023-11-12T09:08:15.2402039Z Shutting down Init Profiler subsystem...
+2023-11-12T09:08:15.2404881Z Shutting down Ban Cache subsystem...
+2023-11-12T09:08:15.2407209Z Shutting down Stat Panels subsystem...
+2023-11-12T09:08:15.2409633Z Shutting down Explosions subsystem...
+2023-11-12T09:08:15.2412008Z Shutting down Pathfinder subsystem...
+2023-11-12T09:08:15.2414438Z Shutting down Minor Mapping subsystem...
+2023-11-12T09:08:15.2416820Z Shutting down Shuttle subsystem...
+2023-11-12T09:08:15.2420930Z Warning: Subsystem `Shuttle` slept 2 times.
+2023-11-12T09:08:15.2421633Z Shutting down Lighting subsystem...
+2023-11-12T09:08:15.2423743Z Shutting down XKeyScore subsystem...
+2023-11-12T09:08:15.2425667Z Shutting down PRISM subsystem...
+2023-11-12T09:08:15.2427615Z Shutting down Icon Smoothing subsystem...
+2023-11-12T09:08:15.2429451Z Shutting down Assets subsystem...
+2023-11-12T09:08:15.2431258Z Shutting down Vote subsystem...
+2023-11-12T09:08:15.2433223Z Shutting down Persistent Paintings subsystem...
+2023-11-12T09:08:15.2435113Z Shutting down Persistence subsystem...
+2023-11-12T09:08:15.2437033Z Shutting down Atmospherics subsystem...
+2023-11-12T09:08:15.2439009Z Shutting down Wiremod Composite Templates subsystem...
+2023-11-12T09:08:15.2440741Z Shutting down Wet floors subsystem...
+2023-11-12T09:08:15.2443279Z Shutting down Weather subsystem...
+2023-11-12T09:08:15.2445531Z Shutting down Wardrobe subsystem...
+2023-11-12T09:08:15.2447137Z Shutting down Verb Manager subsystem...
+2023-11-12T09:08:15.2448994Z Shutting down Tutorials subsystem...
+2023-11-12T09:08:15.2450888Z Shutting down Transport subsystem...
+2023-11-12T09:08:15.2452762Z Shutting down Traitor subsystem...
+2023-11-12T09:08:15.2454635Z Shutting down Throwing subsystem...
+2023-11-12T09:08:15.2456529Z Shutting down tgui subsystem...
+2023-11-12T09:08:15.2458543Z Shutting down Supermatter Cascade subsystem...
+2023-11-12T09:08:15.2460380Z Shutting down Sun subsystem...
+2023-11-12T09:08:15.2462254Z Shutting down Stock Market subsystem...
+2023-11-12T09:08:15.2464168Z Shutting down Speech Controller subsystem...
+2023-11-12T09:08:15.2466003Z Shutting down Space Drift subsystem...
+2023-11-12T09:08:15.2467944Z Shutting down Smoke subsystem...
+2023-11-12T09:08:15.2469878Z Shutting down Singularity subsystem...
+2023-11-12T09:08:15.2472104Z Shutting down Radioactive Nebula subsystem...
+2023-11-12T09:08:15.2473961Z Shutting down Radio subsystem...
+2023-11-12T09:08:15.2476202Z Shutting down Radiation subsystem...
+2023-11-12T09:08:15.2477898Z Shutting down Projectiles subsystem...
+2023-11-12T09:08:15.2479832Z Shutting down Processing subsystem...
+2023-11-12T09:08:15.2482409Z Shutting down Points of Interest subsystem...
+2023-11-12T09:08:15.2484346Z Shutting down Plumbing subsystem...
+2023-11-12T09:08:15.2486233Z Shutting down Ping subsystem...
+2023-11-12T09:08:15.2488172Z Shutting down Parallax subsystem...
+2023-11-12T09:08:15.2490092Z Shutting down pAI subsystem...
+2023-11-12T09:08:15.2492038Z Shutting down Overlay subsystem...
+2023-11-12T09:08:15.7359113Z Shutting down Objects subsystem...
+2023-11-12T09:08:15.7360449Z Shutting down Obj Tab Items subsystem...
+2023-11-12T09:08:15.7363590Z Shutting down NPC Pool subsystem...
+2023-11-12T09:08:15.7365241Z Shutting down Night Shift subsystem...
+2023-11-12T09:08:15.7367764Z Shutting down Movement Loops subsystem...
+2023-11-12T09:08:15.7369511Z Shutting down Movement Handler subsystem...
+2023-11-12T09:08:15.7371589Z Shutting down MouseEntered subsystem...
+2023-11-12T09:08:15.7373527Z Shutting down Mood subsystem...
+2023-11-12T09:08:15.7375649Z Shutting down Modular Computers subsystem...
+2023-11-12T09:08:15.7377558Z Shutting down Mobs subsystem...
+2023-11-12T09:08:15.7379600Z Shutting down Materials subsystem...
+2023-11-12T09:08:15.7381572Z Shutting down Lua Scripting subsystem...
+2023-11-12T09:08:15.7505514Z Shutting down Library Loading subsystem...
+2023-11-12T09:08:15.7507489Z Shutting down Lag Switch subsystem...
+2023-11-12T09:08:15.7509583Z Shutting down Idling NPC Pool subsystem...
+2023-11-12T09:08:15.7511671Z Shutting down Hyperspace Drift subsystem...
+2023-11-12T09:08:15.7513591Z Shutting down Foam subsystem...
+2023-11-12T09:08:15.7515516Z Shutting down Fluid subsystem...
+2023-11-12T09:08:15.7517494Z Shutting down Fishing subsystem...
+2023-11-12T09:08:15.7519635Z Shutting down Fast Processing subsystem...
+2023-11-12T09:08:15.7521688Z Shutting down Escape Menu subsystem...
+2023-11-12T09:08:15.7523697Z Shutting down Eigenstates subsystem...
+2023-11-12T09:08:15.7525621Z Shutting down Disease subsystem...
+2023-11-12T09:08:15.7527699Z Shutting down Digital Clocks subsystem...
+2023-11-12T09:08:15.7529722Z Shutting down Datum Component System subsystem...
+2023-11-12T09:08:15.7531714Z Shutting down Conveyor Belts subsystem...
+2023-11-12T09:08:15.7533950Z Shutting down Communications subsystem...
+2023-11-12T09:08:15.7536091Z Shutting down Clock Component subsystem...
+2023-11-12T09:08:15.7538058Z Shutting down Cliff Falling subsystem...
+2023-11-12T09:08:15.7540124Z Shutting down Circuit Components subsystem...
+2023-11-12T09:08:15.7542040Z Shutting down Burning subsystem...
+2023-11-12T09:08:15.7544007Z Shutting down Blackmarket subsystem...
+2023-11-12T09:08:15.7545998Z Shutting down Basic Avoidance subsystem...
+2023-11-12T09:08:15.7547937Z Shutting down Aura Healing subsystem...
+2023-11-12T09:08:15.7549860Z Shutting down Augury subsystem...
+2023-11-12T09:08:15.7552123Z Shutting down Asset Loading subsystem...
+2023-11-12T09:08:15.7553815Z Shutting down Area Contents subsystem...
+2023-11-12T09:08:15.7555740Z Shutting down Antag HUDs subsystem...
+2023-11-12T09:08:15.7557720Z Shutting down Ambience subsystem...
+2023-11-12T09:08:15.7559697Z Shutting down Addiction subsystem...
+2023-11-12T09:08:15.7562910Z Shutting down Acid subsystem...
+2023-11-12T09:08:15.7564740Z Shutting down Timer subsystem...
+2023-11-12T09:08:15.7566504Z Shutting down Sound Loops subsystem...
+2023-11-12T09:08:15.7568731Z Shutting down Runechat subsystem...
+2023-11-12T09:08:15.7570746Z Shutting down Queue Links subsystem...
+2023-11-12T09:08:15.7572695Z Shutting down Skills subsystem...
+2023-11-12T09:08:15.7574685Z Shutting down Machines subsystem...
+2023-11-12T09:08:15.7576634Z Shutting down Language subsystem...
+2023-11-12T09:08:15.7578608Z Shutting down Atoms subsystem...
+2023-11-12T09:08:15.7601367Z Shutting down Text To Speech subsystem...
+2023-11-12T09:08:15.7603675Z Shutting down Restaurant subsystem...
+2023-11-12T09:08:15.7605588Z Shutting down Economy subsystem...
+2023-11-12T09:08:15.7607616Z Shutting down Spatial Grid subsystem...
+2023-11-12T09:08:15.7609600Z Shutting down Time Tracking subsystem...
+2023-11-12T09:08:15.7611597Z Shutting down Research subsystem...
+2023-11-12T09:08:15.7613755Z Shutting down Early Assets subsystem...
+2023-11-12T09:08:15.7615768Z Shutting down Mapping subsystem...
+2023-11-12T09:08:15.7617822Z Shutting down Trading Card Game subsystem...
+2023-11-12T09:08:15.7619966Z Shutting down Ticker subsystem...
+2023-11-12T09:08:15.7622043Z Warning: Subsystem `Ticker` slept 1 times.
+2023-11-12T09:08:15.7644481Z Unable to locate admins backup file.
+2023-11-12T09:08:15.7654489Z Shutting down AI Controller Ticker subsystem...
+2023-11-12T09:08:15.7656545Z Shutting down AI Behavior Ticker subsystem...
+2023-11-12T09:08:15.7658539Z Shutting down AI movement subsystem...
+2023-11-12T09:08:15.7660519Z Shutting down Jobs subsystem...
+2023-11-12T09:08:15.7662633Z Shutting down IDs and Access subsystem...
+2023-11-12T09:08:15.7664623Z Shutting down Events subsystem...
+2023-11-12T09:08:15.7666630Z Shutting down Reagents subsystem...
+2023-11-12T09:08:15.7668611Z Shutting down Quirks subsystem...
+2023-11-12T09:08:15.7670631Z Shutting down Station subsystem...
+2023-11-12T09:08:15.7672688Z Shutting down Achievements subsystem...
+2023-11-12T09:08:15.7674715Z Shutting down Discord subsystem...
+2023-11-12T09:08:15.7676785Z Shutting down Security Level subsystem...
+2023-11-12T09:08:15.7678830Z Shutting down Vis contents overlays subsystem...
+2023-11-12T09:08:15.7680780Z Shutting down Greyscale subsystem...
+2023-11-12T09:08:15.7683265Z Shutting down Instruments subsystem...
+2023-11-12T09:08:15.7685284Z Shutting down Sounds subsystem...
+2023-11-12T09:08:15.7687269Z Shutting down Input subsystem...
+2023-11-12T09:08:15.7689286Z Shutting down Server Tasks subsystem...
+2023-11-12T09:08:15.7691440Z Shutting down Blackbox subsystem...
+2023-11-12T09:08:15.7700214Z Shutting down Database subsystem...
+2023-11-12T09:08:15.7709204Z Shutting down Garbage subsystem...
+2023-11-12T09:08:18.8763587Z Shutting down Title Screen subsystem...
+2023-11-12T09:08:18.8783727Z Shutting down Profiler subsystem...
+2023-11-12T09:08:18.8789879Z Shutdown complete
+2023-11-12T09:08:18.8797124Z Test run failed!
+2023-11-12T09:08:18.8797462Z Total runtimes: 1
+2023-11-12T09:08:18.8797716Z Unit Tests failed!
+2023-11-12T09:08:22.0106377Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory
+2023-11-12T09:08:22.0116872Z ##[error]Process completed with exit code 1.
+2023-11-12T09:08:22.0170857Z ##[group]Run actions/upload-artifact@v3
+2023-11-12T09:08:22.0171222Z with:
+2023-11-12T09:08:22.0171467Z name: test_artifacts_tramstation
+2023-11-12T09:08:22.0171798Z path: data/screenshots_new/
+2023-11-12T09:08:22.0172089Z retention-days: 1
+2023-11-12T09:08:22.0172354Z if-no-files-found: warn
+2023-11-12T09:08:22.0172621Z ##[endgroup]
+2023-11-12T09:08:22.1010805Z With the provided path, there will be 77 files uploaded
+2023-11-12T09:08:22.1013040Z Starting artifact upload
+2023-11-12T09:08:22.1014930Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging
+2023-11-12T09:08:22.1016085Z Artifact name is valid!
+2023-11-12T09:08:22.1655325Z Container for artifact "test_artifacts_tramstation" successfully created. Starting upload of file(s)
+2023-11-12T09:08:25.4511686Z Total size of all the files uploaded is 104264 bytes
+2023-11-12T09:08:25.4513089Z File upload process has finished. Finalizing the artifact upload
+2023-11-12T09:08:25.4967864Z Artifact has been finalized. All files have been successfully uploaded!
+2023-11-12T09:08:25.4968795Z
+2023-11-12T09:08:25.4969438Z The raw size of all the files that were specified for upload is 104534 bytes
+2023-11-12T09:08:25.4995080Z The size of all the files that were uploaded is 104264 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage
+2023-11-12T09:08:25.4996373Z
+2023-11-12T09:08:25.5000590Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads
+2023-11-12T09:08:25.5002432Z
+2023-11-12T09:08:25.5002844Z Artifact test_artifacts_tramstation has been successfully uploaded!
+2023-11-12T09:08:25.5131976Z ##[group]Run tgstation/byond-client-compatibility-check@v3
+2023-11-12T09:08:25.5132416Z with:
+2023-11-12T09:08:25.5132646Z dmb-location: tgstation.dmb
+2023-11-12T09:08:25.5132971Z max-required-client-version: 514
+2023-11-12T09:08:25.5133284Z ##[endgroup]
+2023-11-12T09:08:25.5322365Z ##[group]Run (( 514 ))
+2023-11-12T09:08:25.5322641Z [36;1m(( 514 ))[0m
+2023-11-12T09:08:25.5367699Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
+2023-11-12T09:08:25.5368129Z ##[endgroup]
+2023-11-12T09:08:25.5463568Z ##[group]Run echo "required-client-version=$(( $( head -n2 tgstation.dmb | tail -n1 | cut -d " " -f 4 ) ))" >> $GITHUB_OUTPUT
+2023-11-12T09:08:25.5464593Z [36;1mecho "required-client-version=$(( $( head -n2 tgstation.dmb | tail -n1 | cut -d " " -f 4 ) ))" >> $GITHUB_OUTPUT[0m
+2023-11-12T09:08:25.5503899Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
+2023-11-12T09:08:25.5504317Z ##[endgroup]
+2023-11-12T09:08:25.5643709Z ##[group]Run (( 514 <= 514 ))
+2023-11-12T09:08:25.5644042Z [36;1m(( 514 <= 514 ))[0m
+2023-11-12T09:08:25.5682534Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
+2023-11-12T09:08:25.5682953Z ##[endgroup]
+2023-11-12T09:08:25.5835969Z Post job cleanup.
+2023-11-12T09:08:25.6654082Z [command]/usr/bin/git version
+2023-11-12T09:08:25.6698640Z git version 2.42.0
+2023-11-12T09:08:25.6737360Z Temporarily overriding HOME='/home/runner/work/_temp/8c7eca89-05a8-49f5-91d4-2ad2b8c1f35c' before making global git config changes
+2023-11-12T09:08:25.6738762Z Adding repository directory to the temporary git global config as a safe directory
+2023-11-12T09:08:25.6742986Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2023-11-12T09:08:25.6784154Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2023-11-12T09:08:25.6822086Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
+2023-11-12T09:08:25.7132368Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2023-11-12T09:08:25.7163927Z http.https://github.com/.extraheader
+2023-11-12T09:08:25.7175279Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
+2023-11-12T09:08:25.7216423Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
+2023-11-12T09:08:25.7590917Z Print service container logs: c43e2a4f7a0044eda3c3640d7583be1f_mysqllatest_210664
+2023-11-12T09:08:25.7595897Z ##[command]/usr/bin/docker logs --details 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T09:08:25.7722763Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.2.0-1.el8 started.
+2023-11-12T09:08:25.7724170Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
+2023-11-12T09:08:25.7726315Z 2023-11-12T08:59:57.323609Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
+2023-11-12T09:08:25.7728493Z 2023-11-12T08:59:57.324887Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2023-11-12T09:08:25.7730639Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.2.0-1.el8 started.
+2023-11-12T09:08:25.7731931Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Initializing database files
+2023-11-12T09:08:25.7733478Z 2023-11-12T08:59:57.324980Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.2.0) initializing of server in progress as process 80
+2023-11-12T09:08:25.7735422Z 2023-11-12T08:59:57.329733Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2023-11-12T09:08:25.7736806Z 2023-11-12T08:59:57.538012Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2023-11-12T09:08:25.7737953Z 2023-11-12 09:00:00+00:00 [Note] [Entrypoint]: Database files initialized
+2023-11-12T09:08:25.7738945Z 2023-11-12 09:00:00+00:00 [Note] [Entrypoint]: Starting temporary server
+2023-11-12T09:08:25.7739945Z 2023-11-12 09:00:00+00:00 [Note] [Entrypoint]: Temporary server started.
+2023-11-12T09:08:25.7740898Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
+2023-11-12T09:08:25.7741615Z
+2023-11-12T09:08:25.7742199Z 2023-11-12 09:00:02+00:00 [Note] [Entrypoint]: Stopping temporary server
+2023-11-12T09:08:25.7743236Z 2023-11-12 09:00:03+00:00 [Note] [Entrypoint]: Temporary server stopped
+2023-11-12T09:08:25.7744003Z
+2023-11-12T09:08:25.7744708Z 2023-11-12 09:00:03+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
+2023-11-12T09:08:25.7746704Z 2023-11-12T08:59:58.210653Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
+2023-11-12T09:08:25.7748648Z 2023-11-12T09:00:00.300732Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
+2023-11-12T09:08:25.7749899Z 2023-11-12T09:00:00.347787Z 0 [System] [MY-015015] [Server] MySQL Server - start.
+2023-11-12T09:08:25.7751901Z 2023-11-12T09:00:00.530321Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2023-11-12T09:08:25.7754106Z 2023-11-12T09:00:00.531123Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.2.0) starting as process 124
+2023-11-12T09:08:25.7756278Z 2023-11-12T09:00:00.541412Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2023-11-12T09:08:25.7757517Z 2023-11-12T09:00:00.630355Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2023-11-12T09:08:25.7758462Z 2023-11-12T09:00:00.815198Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2023-11-12T09:08:25.7759637Z 2023-11-12T09:00:00.815226Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2023-11-12T09:08:25.7761631Z 2023-11-12T09:00:00.816463Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2023-11-12T09:08:25.7763033Z 2023-11-12T09:00:00.828404Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
+2023-11-12T09:08:25.7764603Z 2023-11-12T09:00:00.828529Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.2.0' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
+2023-11-12T09:08:25.7765734Z 2023-11-12T09:00:00.829953Z 0 [System] [MY-015016] [Server] MySQL Server - end.
+2023-11-12T09:08:25.7766430Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
+2023-11-12T09:08:25.7767184Z Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
+2023-11-12T09:08:25.7767935Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
+2023-11-12T09:08:25.7768649Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
+2023-11-12T09:08:25.7769346Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
+2023-11-12T09:08:25.7770052Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
+2023-11-12T09:08:25.7770961Z 2023-11-12T09:00:02.470903Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.2.0).
+2023-11-12T09:08:25.7772265Z 2023-11-12T09:00:03.257971Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.2.0) MySQL Community Server - GPL.
+2023-11-12T09:08:25.7773173Z 2023-11-12T09:00:03.260270Z 0 [System] [MY-015016] [Server] MySQL Server - end.
+2023-11-12T09:08:25.7773836Z 2023-11-12T09:00:03.482460Z 0 [System] [MY-015015] [Server] MySQL Server - start.
+2023-11-12T09:08:25.7774963Z 2023-11-12T09:00:03.659729Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2023-11-12T09:08:25.7776201Z 2023-11-12T09:00:03.661194Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.2.0) starting as process 1
+2023-11-12T09:08:25.7777020Z 2023-11-12T09:00:03.666529Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2023-11-12T09:08:25.7777756Z 2023-11-12T09:00:03.752233Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2023-11-12T09:08:25.7778518Z 2023-11-12T09:00:03.907357Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2023-11-12T09:08:25.7779564Z 2023-11-12T09:00:03.907387Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2023-11-12T09:08:25.7781056Z 2023-11-12T09:00:03.908492Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2023-11-12T09:08:25.7782533Z 2023-11-12T09:00:03.922214Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
+2023-11-12T09:08:25.7783946Z 2023-11-12T09:00:03.922317Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.2.0' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
+2023-11-12T09:08:25.7784877Z
+2023-11-12T09:08:25.7790536Z Stop and remove container: c43e2a4f7a0044eda3c3640d7583be1f_mysqllatest_210664
+2023-11-12T09:08:25.7796028Z ##[command]/usr/bin/docker rm --force 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T09:08:26.0454956Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded
+2023-11-12T09:08:26.0480580Z Remove container network: github_network_bc2270e2d9644957ba98982ec5cf35f2
+2023-11-12T09:08:26.0487395Z ##[command]/usr/bin/docker network rm github_network_bc2270e2d9644957ba98982ec5cf35f2
+2023-11-12T09:08:26.3137535Z github_network_bc2270e2d9644957ba98982ec5cf35f2
+2023-11-12T09:08:26.3289510Z Cleaning up orphan processes
diff --git a/tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt b/tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt
new file mode 100644
index 000000000000..a52375357a07
--- /dev/null
+++ b/tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt
@@ -0,0 +1,2451 @@
+2022-11-01T15:22:09.7007979Z Requested labels: ubuntu-20.04
+2022-11-01T15:22:09.7008038Z Job defined at: tgstation/tgstation/.github/workflows/ci_suite.yml@refs/pull/70980/merge
+2022-11-01T15:22:09.7008063Z Waiting for a runner to pick up this job...
+2022-11-01T15:22:10.2221600Z Job is waiting for a hosted runner to come online.
+2022-11-01T15:22:14.3820892Z Job is about to start running on the hosted runner: GitHub Actions 16 (hosted)
+2022-11-01T15:22:17.2355862Z Current runner version: '2.298.2'
+2022-11-01T15:22:17.2393184Z ##[group]Operating System
+2022-11-01T15:22:17.2393885Z Ubuntu
+2022-11-01T15:22:17.2394168Z 20.04.5
+2022-11-01T15:22:17.2394933Z LTS
+2022-11-01T15:22:17.2395251Z ##[endgroup]
+2022-11-01T15:22:17.2395537Z ##[group]Runner Image
+2022-11-01T15:22:17.2395920Z Image: ubuntu-20.04
+2022-11-01T15:22:17.2396312Z Version: 20221027.1
+2022-11-01T15:22:17.2396868Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221027.1/images/linux/Ubuntu2004-Readme.md
+2022-11-01T15:22:17.2397529Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221027.1
+2022-11-01T15:22:17.2398002Z ##[endgroup]
+2022-11-01T15:22:17.2398309Z ##[group]Runner Image Provisioner
+2022-11-01T15:22:17.2398710Z 2.0.91.1
+2022-11-01T15:22:17.2399019Z ##[endgroup]
+2022-11-01T15:22:17.2399973Z ##[group]GITHUB_TOKEN Permissions
+2022-11-01T15:22:17.2400709Z Actions: read
+2022-11-01T15:22:17.2401056Z Checks: read
+2022-11-01T15:22:17.2401569Z Contents: read
+2022-11-01T15:22:17.2401976Z Deployments: read
+2022-11-01T15:22:17.2402321Z Discussions: read
+2022-11-01T15:22:17.2402709Z Issues: read
+2022-11-01T15:22:17.2402981Z Metadata: read
+2022-11-01T15:22:17.2403324Z Packages: read
+2022-11-01T15:22:17.2403646Z Pages: read
+2022-11-01T15:22:17.2403926Z PullRequests: read
+2022-11-01T15:22:17.2404338Z RepositoryProjects: read
+2022-11-01T15:22:17.2404945Z SecurityEvents: read
+2022-11-01T15:22:17.2405240Z Statuses: read
+2022-11-01T15:22:17.2405577Z ##[endgroup]
+2022-11-01T15:22:17.2410281Z Secret source: None
+2022-11-01T15:22:17.2410802Z Prepare workflow directory
+2022-11-01T15:22:17.3953802Z Prepare all required actions
+2022-11-01T15:22:17.4201039Z Getting action download info
+2022-11-01T15:22:17.6939075Z Download action repository 'actions/checkout@v3' (SHA:93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8)
+2022-11-01T15:22:18.9161379Z Download action repository 'actions/cache@v3' (SHA:1c73980b09e7aea7201f325a7aa3ad00beddcdda)
+2022-11-01T15:22:20.3064444Z Download action repository 'actions/upload-artifact@v3' (SHA:83fd05a356d7e2593de66fc9913b3002723633cb)
+2022-11-01T15:22:21.5263114Z ##[group]Checking docker version
+2022-11-01T15:22:21.5284545Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}'
+2022-11-01T15:22:21.7821858Z '1.41'
+2022-11-01T15:22:21.7840681Z Docker daemon API version: '1.41'
+2022-11-01T15:22:21.7841209Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}'
+2022-11-01T15:22:21.8152000Z '1.41'
+2022-11-01T15:22:21.8176781Z Docker client API version: '1.41'
+2022-11-01T15:22:21.8186583Z ##[endgroup]
+2022-11-01T15:22:21.8192234Z ##[group]Clean up resources from previous jobs
+2022-11-01T15:22:21.8200740Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=8d5581"
+2022-11-01T15:22:21.8479497Z ##[command]/usr/bin/docker network prune --force --filter "label=8d5581"
+2022-11-01T15:22:21.8756254Z ##[endgroup]
+2022-11-01T15:22:21.8756617Z ##[group]Create local container network
+2022-11-01T15:22:21.8773847Z ##[command]/usr/bin/docker network create --label 8d5581 github_network_7d8483aa88b2460d91b946ac72079065
+2022-11-01T15:22:21.9692504Z e63735eb313884b0b3c2a30de089b7ac7f9db8f270d21a7e96d5dfa805d1dc67
+2022-11-01T15:22:21.9707619Z ##[endgroup]
+2022-11-01T15:22:21.9833163Z ##[group]Starting mysql service container
+2022-11-01T15:22:21.9860217Z ##[command]/usr/bin/docker pull mysql:latest
+2022-11-01T15:22:23.3081644Z latest: Pulling from library/mysql
+2022-11-01T15:22:23.6553709Z d67a603b911a: Pulling fs layer
+2022-11-01T15:22:23.6554244Z 0cf69c8f1492: Pulling fs layer
+2022-11-01T15:22:23.6554502Z a5ee239a0d3a: Pulling fs layer
+2022-11-01T15:22:23.6554752Z 0f166cb3e327: Pulling fs layer
+2022-11-01T15:22:23.6555140Z 882d294bf188: Pulling fs layer
+2022-11-01T15:22:23.6555590Z 2649fc7eb806: Pulling fs layer
+2022-11-01T15:22:23.6555993Z bddb3394e2e3: Pulling fs layer
+2022-11-01T15:22:23.6556266Z 93c83d9a2206: Pulling fs layer
+2022-11-01T15:22:23.6556762Z 99d7f45787c0: Pulling fs layer
+2022-11-01T15:22:23.6557007Z 234663a2e3ee: Pulling fs layer
+2022-11-01T15:22:23.6557699Z 74531487bb7b: Pulling fs layer
+2022-11-01T15:22:23.6557925Z 882d294bf188: Waiting
+2022-11-01T15:22:23.6558139Z 2649fc7eb806: Waiting
+2022-11-01T15:22:23.6558335Z bddb3394e2e3: Waiting
+2022-11-01T15:22:23.6558547Z 93c83d9a2206: Waiting
+2022-11-01T15:22:23.6558750Z 99d7f45787c0: Waiting
+2022-11-01T15:22:23.6558937Z 234663a2e3ee: Waiting
+2022-11-01T15:22:23.6559142Z 74531487bb7b: Waiting
+2022-11-01T15:22:23.6559540Z 0f166cb3e327: Waiting
+2022-11-01T15:22:23.9867293Z a5ee239a0d3a: Verifying Checksum
+2022-11-01T15:22:23.9867941Z a5ee239a0d3a: Download complete
+2022-11-01T15:22:24.0450086Z 0cf69c8f1492: Verifying Checksum
+2022-11-01T15:22:24.0453075Z 0cf69c8f1492: Download complete
+2022-11-01T15:22:24.3464913Z 0f166cb3e327: Verifying Checksum
+2022-11-01T15:22:24.3465310Z 0f166cb3e327: Download complete
+2022-11-01T15:22:24.3517047Z 882d294bf188: Verifying Checksum
+2022-11-01T15:22:24.3518202Z 882d294bf188: Download complete
+2022-11-01T15:22:24.6730495Z 2649fc7eb806: Verifying Checksum
+2022-11-01T15:22:24.6731468Z 2649fc7eb806: Download complete
+2022-11-01T15:22:25.0002710Z 93c83d9a2206: Verifying Checksum
+2022-11-01T15:22:25.0003976Z 93c83d9a2206: Download complete
+2022-11-01T15:22:25.1541923Z bddb3394e2e3: Verifying Checksum
+2022-11-01T15:22:25.1542827Z bddb3394e2e3: Download complete
+2022-11-01T15:22:25.4166178Z d67a603b911a: Verifying Checksum
+2022-11-01T15:22:25.4167080Z d67a603b911a: Download complete
+2022-11-01T15:22:25.4830760Z 234663a2e3ee: Verifying Checksum
+2022-11-01T15:22:25.4846538Z 234663a2e3ee: Download complete
+2022-11-01T15:22:25.7381703Z 74531487bb7b: Verifying Checksum
+2022-11-01T15:22:25.7382588Z 74531487bb7b: Download complete
+2022-11-01T15:22:25.8527402Z 99d7f45787c0: Verifying Checksum
+2022-11-01T15:22:25.8549349Z 99d7f45787c0: Download complete
+2022-11-01T15:22:27.1417789Z d67a603b911a: Pull complete
+2022-11-01T15:22:28.0615469Z 0cf69c8f1492: Pull complete
+2022-11-01T15:22:28.1630064Z a5ee239a0d3a: Pull complete
+2022-11-01T15:22:28.4630683Z 0f166cb3e327: Pull complete
+2022-11-01T15:22:28.5470127Z 882d294bf188: Pull complete
+2022-11-01T15:22:28.6222715Z 2649fc7eb806: Pull complete
+2022-11-01T15:22:30.8200860Z bddb3394e2e3: Pull complete
+2022-11-01T15:22:30.8846376Z 93c83d9a2206: Pull complete
+2022-11-01T15:22:36.7604768Z 99d7f45787c0: Pull complete
+2022-11-01T15:22:36.8357942Z 234663a2e3ee: Pull complete
+2022-11-01T15:22:36.9012415Z 74531487bb7b: Pull complete
+2022-11-01T15:22:36.9094455Z Digest: sha256:d4055451e7f42869e64089a60d1abc9e66eccde2910629f0dd666b53a5f230d8
+2022-11-01T15:22:36.9127968Z Status: Downloaded newer image for mysql:latest
+2022-11-01T15:22:36.9154819Z docker.io/library/mysql:latest
+2022-11-01T15:22:36.9298550Z ##[command]/usr/bin/docker create --name e281b5d836644f53b33d06a88663b086_mysqllatest_c6a68e --label 8d5581 --network github_network_7d8483aa88b2460d91b946ac72079065 --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest
+2022-11-01T15:22:36.9879151Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:36.9911210Z ##[command]/usr/bin/docker start cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:37.4755521Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:37.4795933Z ##[command]/usr/bin/docker ps --all --filter id=cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
+2022-11-01T15:22:37.5113258Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 Up Less than a second (health: starting)
+2022-11-01T15:22:37.5177404Z ##[command]/usr/bin/docker port cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:37.5462051Z 3306/tcp -> 0.0.0.0:49153
+2022-11-01T15:22:37.5464354Z 3306/tcp -> :::49153
+2022-11-01T15:22:37.5587024Z ##[endgroup]
+2022-11-01T15:22:37.5587360Z ##[group]Waiting for all services to be ready
+2022-11-01T15:22:37.5644998Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:37.5931031Z starting
+2022-11-01T15:22:37.5967460Z mysql service is starting, waiting 2 seconds before checking again.
+2022-11-01T15:22:39.5985654Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:39.6392920Z starting
+2022-11-01T15:22:39.6411834Z mysql service is starting, waiting 4 seconds before checking again.
+2022-11-01T15:22:43.7096918Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:43.7721367Z starting
+2022-11-01T15:22:43.7737289Z mysql service is starting, waiting 8 seconds before checking again.
+2022-11-01T15:22:51.9262367Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:22:51.9505260Z starting
+2022-11-01T15:22:51.9522218Z mysql service is starting, waiting 13 seconds before checking again.
+2022-11-01T15:23:05.2771619Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:23:05.3013771Z healthy
+2022-11-01T15:23:05.3024538Z mysql service is healthy.
+2022-11-01T15:23:05.3024986Z ##[endgroup]
+2022-11-01T15:23:05.3498117Z ##[group]Run actions/checkout@v3
+2022-11-01T15:23:05.3498404Z with:
+2022-11-01T15:23:05.3498607Z repository: tgstation/tgstation
+2022-11-01T15:23:05.3499131Z token: ***
+2022-11-01T15:23:05.3499336Z ssh-strict: true
+2022-11-01T15:23:05.3499566Z persist-credentials: true
+2022-11-01T15:23:05.3499930Z clean: true
+2022-11-01T15:23:05.3500134Z fetch-depth: 1
+2022-11-01T15:23:05.3500323Z lfs: false
+2022-11-01T15:23:05.3500668Z submodules: false
+2022-11-01T15:23:05.3500890Z set-safe-directory: true
+2022-11-01T15:23:05.3501110Z ##[endgroup]
+2022-11-01T15:23:05.7431946Z Syncing repository: tgstation/tgstation
+2022-11-01T15:23:05.7434241Z ##[group]Getting Git version info
+2022-11-01T15:23:05.7435150Z Working directory is '/home/runner/work/tgstation/tgstation'
+2022-11-01T15:23:05.7435653Z [command]/usr/bin/git version
+2022-11-01T15:23:05.7647982Z git version 2.38.1
+2022-11-01T15:23:05.7683915Z ##[endgroup]
+2022-11-01T15:23:05.7710794Z Temporarily overriding HOME='/home/runner/work/_temp/a63c17da-7308-4a9e-856a-69236f785151' before making global git config changes
+2022-11-01T15:23:05.7711429Z Adding repository directory to the temporary git global config as a safe directory
+2022-11-01T15:23:05.7718974Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2022-11-01T15:23:05.7791610Z Deleting the contents of '/home/runner/work/tgstation/tgstation'
+2022-11-01T15:23:05.7800753Z ##[group]Initializing the repository
+2022-11-01T15:23:05.7810526Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation
+2022-11-01T15:23:05.7999555Z hint: Using 'master' as the name for the initial branch. This default branch name
+2022-11-01T15:23:05.8000657Z hint: is subject to change. To configure the initial branch name to use in all
+2022-11-01T15:23:05.8001229Z hint: of your new repositories, which will suppress this warning, call:
+2022-11-01T15:23:05.8001635Z hint:
+2022-11-01T15:23:05.8002546Z hint: git config --global init.defaultBranch
+2022-11-01T15:23:05.8003017Z hint:
+2022-11-01T15:23:05.8003562Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
+2022-11-01T15:23:05.8004498Z hint: 'development'. The just-created branch can be renamed via this command:
+2022-11-01T15:23:05.8006177Z hint:
+2022-11-01T15:23:05.8006532Z hint: git branch -m
+2022-11-01T15:23:05.8016074Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/
+2022-11-01T15:23:05.8029083Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation
+2022-11-01T15:23:05.8108132Z ##[endgroup]
+2022-11-01T15:23:05.8110681Z ##[group]Disabling automatic garbage collection
+2022-11-01T15:23:05.8113311Z [command]/usr/bin/git config --local gc.auto 0
+2022-11-01T15:23:05.8153161Z ##[endgroup]
+2022-11-01T15:23:05.8153891Z ##[group]Setting up auth
+2022-11-01T15:23:05.8163234Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2022-11-01T15:23:05.8203566Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
+2022-11-01T15:23:05.8796996Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2022-11-01T15:23:05.8820643Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
+2022-11-01T15:23:05.9097833Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
+2022-11-01T15:23:05.9154264Z ##[endgroup]
+2022-11-01T15:23:05.9155507Z ##[group]Fetching the repository
+2022-11-01T15:23:05.9167693Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +90d58213531368fd97e9955fe80b75ad69c20f24:refs/remotes/pull/70980/merge
+2022-11-01T15:23:06.8635625Z remote: Enumerating objects: 12567, done.
+2022-11-01T15:23:06.8636451Z remote: Counting objects: 0% (1/12567)
+2022-11-01T15:23:06.8650219Z remote: Counting objects: 1% (126/12567)
+2022-11-01T15:23:06.8660754Z remote: Counting objects: 2% (252/12567)
+2022-11-01T15:23:06.8672560Z remote: Counting objects: 3% (378/12567)
+2022-11-01T15:23:06.8672977Z remote: Counting objects: 4% (503/12567)
+2022-11-01T15:23:06.8673376Z remote: Counting objects: 5% (629/12567)
+2022-11-01T15:23:06.8675482Z remote: Counting objects: 6% (755/12567)
+2022-11-01T15:23:06.8675791Z remote: Counting objects: 7% (880/12567)
+2022-11-01T15:23:06.9160118Z remote: Counting objects: 8% (1006/12567)
+2022-11-01T15:23:06.9160767Z remote: Counting objects: 9% (1132/12567)
+2022-11-01T15:23:06.9161166Z remote: Counting objects: 10% (1257/12567)
+2022-11-01T15:23:06.9161566Z remote: Counting objects: 11% (1383/12567)
+2022-11-01T15:23:06.9161964Z remote: Counting objects: 12% (1509/12567)
+2022-11-01T15:23:06.9162324Z remote: Counting objects: 13% (1634/12567)
+2022-11-01T15:23:06.9162700Z remote: Counting objects: 14% (1760/12567)
+2022-11-01T15:23:06.9163069Z remote: Counting objects: 15% (1886/12567)
+2022-11-01T15:23:06.9163437Z remote: Counting objects: 16% (2011/12567)
+2022-11-01T15:23:06.9163808Z remote: Counting objects: 17% (2137/12567)
+2022-11-01T15:23:06.9164357Z remote: Counting objects: 18% (2263/12567)
+2022-11-01T15:23:06.9165066Z remote: Counting objects: 19% (2388/12567)
+2022-11-01T15:23:06.9165451Z remote: Counting objects: 20% (2514/12567)
+2022-11-01T15:23:06.9165800Z remote: Counting objects: 21% (2640/12567)
+2022-11-01T15:23:06.9166097Z remote: Counting objects: 22% (2765/12567)
+2022-11-01T15:23:06.9166459Z remote: Counting objects: 23% (2891/12567)
+2022-11-01T15:23:06.9166827Z remote: Counting objects: 24% (3017/12567)
+2022-11-01T15:23:06.9167178Z remote: Counting objects: 25% (3142/12567)
+2022-11-01T15:23:06.9167700Z remote: Counting objects: 26% (3268/12567)
+2022-11-01T15:23:06.9168060Z remote: Counting objects: 27% (3394/12567)
+2022-11-01T15:23:06.9168413Z remote: Counting objects: 28% (3519/12567)
+2022-11-01T15:23:06.9168685Z remote: Counting objects: 29% (3645/12567)
+2022-11-01T15:23:06.9169293Z remote: Counting objects: 30% (3771/12567)
+2022-11-01T15:23:06.9169550Z remote: Counting objects: 31% (3896/12567)
+2022-11-01T15:23:06.9169791Z remote: Counting objects: 32% (4022/12567)
+2022-11-01T15:23:06.9170049Z remote: Counting objects: 33% (4148/12567)
+2022-11-01T15:23:06.9170305Z remote: Counting objects: 34% (4273/12567)
+2022-11-01T15:23:06.9170563Z remote: Counting objects: 35% (4399/12567)
+2022-11-01T15:23:06.9170803Z remote: Counting objects: 36% (4525/12567)
+2022-11-01T15:23:06.9171062Z remote: Counting objects: 37% (4650/12567)
+2022-11-01T15:23:06.9171316Z remote: Counting objects: 38% (4776/12567)
+2022-11-01T15:23:06.9171714Z remote: Counting objects: 39% (4902/12567)
+2022-11-01T15:23:06.9171963Z remote: Counting objects: 40% (5027/12567)
+2022-11-01T15:23:06.9172211Z remote: Counting objects: 41% (5153/12567)
+2022-11-01T15:23:06.9172447Z remote: Counting objects: 42% (5279/12567)
+2022-11-01T15:23:06.9172868Z remote: Counting objects: 43% (5404/12567)
+2022-11-01T15:23:06.9173464Z remote: Counting objects: 44% (5530/12567)
+2022-11-01T15:23:06.9173834Z remote: Counting objects: 45% (5656/12567)
+2022-11-01T15:23:06.9174083Z remote: Counting objects: 46% (5781/12567)
+2022-11-01T15:23:06.9174458Z remote: Counting objects: 47% (5907/12567)
+2022-11-01T15:23:06.9174828Z remote: Counting objects: 48% (6033/12567)
+2022-11-01T15:23:06.9175193Z remote: Counting objects: 49% (6158/12567)
+2022-11-01T15:23:06.9175686Z remote: Counting objects: 50% (6284/12567)
+2022-11-01T15:23:06.9176096Z remote: Counting objects: 51% (6410/12567)
+2022-11-01T15:23:06.9176806Z remote: Counting objects: 52% (6535/12567)
+2022-11-01T15:23:06.9177226Z remote: Counting objects: 53% (6661/12567)
+2022-11-01T15:23:06.9383126Z remote: Counting objects: 54% (6787/12567)
+2022-11-01T15:23:06.9383471Z remote: Counting objects: 55% (6912/12567)
+2022-11-01T15:23:06.9383912Z remote: Counting objects: 56% (7038/12567)
+2022-11-01T15:23:06.9384205Z remote: Counting objects: 57% (7164/12567)
+2022-11-01T15:23:06.9384882Z remote: Counting objects: 58% (7289/12567)
+2022-11-01T15:23:06.9385322Z remote: Counting objects: 59% (7415/12567)
+2022-11-01T15:23:06.9385593Z remote: Counting objects: 60% (7541/12567)
+2022-11-01T15:23:06.9386047Z remote: Counting objects: 61% (7666/12567)
+2022-11-01T15:23:06.9386320Z remote: Counting objects: 62% (7792/12567)
+2022-11-01T15:23:06.9386602Z remote: Counting objects: 63% (7918/12567)
+2022-11-01T15:23:06.9387066Z remote: Counting objects: 64% (8043/12567)
+2022-11-01T15:23:06.9387318Z remote: Counting objects: 65% (8169/12567)
+2022-11-01T15:23:06.9387584Z remote: Counting objects: 66% (8295/12567)
+2022-11-01T15:23:06.9387858Z remote: Counting objects: 67% (8420/12567)
+2022-11-01T15:23:06.9388109Z remote: Counting objects: 68% (8546/12567)
+2022-11-01T15:23:06.9388374Z remote: Counting objects: 69% (8672/12567)
+2022-11-01T15:23:06.9388777Z remote: Counting objects: 70% (8797/12567)
+2022-11-01T15:23:06.9389026Z remote: Counting objects: 71% (8923/12567)
+2022-11-01T15:23:06.9389293Z remote: Counting objects: 72% (9049/12567)
+2022-11-01T15:23:06.9389558Z remote: Counting objects: 73% (9174/12567)
+2022-11-01T15:23:06.9389987Z remote: Counting objects: 74% (9300/12567)
+2022-11-01T15:23:06.9390230Z remote: Counting objects: 75% (9426/12567)
+2022-11-01T15:23:06.9390484Z remote: Counting objects: 76% (9551/12567)
+2022-11-01T15:23:06.9390738Z remote: Counting objects: 77% (9677/12567)
+2022-11-01T15:23:06.9390979Z remote: Counting objects: 78% (9803/12567)
+2022-11-01T15:23:06.9391235Z remote: Counting objects: 79% (9928/12567)
+2022-11-01T15:23:06.9391796Z remote: Counting objects: 80% (10054/12567)
+2022-11-01T15:23:06.9392047Z remote: Counting objects: 81% (10180/12567)
+2022-11-01T15:23:06.9392314Z remote: Counting objects: 82% (10305/12567)
+2022-11-01T15:23:06.9392577Z remote: Counting objects: 83% (10431/12567)
+2022-11-01T15:23:06.9392824Z remote: Counting objects: 84% (10557/12567)
+2022-11-01T15:23:06.9393085Z remote: Counting objects: 85% (10682/12567)
+2022-11-01T15:23:06.9394375Z remote: Counting objects: 86% (10808/12567)
+2022-11-01T15:23:06.9394631Z remote: Counting objects: 87% (10934/12567)
+2022-11-01T15:23:06.9394877Z remote: Counting objects: 88% (11059/12567)
+2022-11-01T15:23:06.9395134Z remote: Counting objects: 89% (11185/12567)
+2022-11-01T15:23:06.9395389Z remote: Counting objects: 90% (11311/12567)
+2022-11-01T15:23:06.9395622Z remote: Counting objects: 91% (11436/12567)
+2022-11-01T15:23:06.9395877Z remote: Counting objects: 92% (11562/12567)
+2022-11-01T15:23:06.9396132Z remote: Counting objects: 93% (11688/12567)
+2022-11-01T15:23:06.9396564Z remote: Counting objects: 94% (11813/12567)
+2022-11-01T15:23:06.9396804Z remote: Counting objects: 95% (11939/12567)
+2022-11-01T15:23:06.9397061Z remote: Counting objects: 96% (12065/12567)
+2022-11-01T15:23:06.9397319Z remote: Counting objects: 97% (12190/12567)
+2022-11-01T15:23:06.9397557Z remote: Counting objects: 98% (12316/12567)
+2022-11-01T15:23:06.9397810Z remote: Counting objects: 99% (12442/12567)
+2022-11-01T15:23:06.9398208Z remote: Counting objects: 100% (12567/12567)
+2022-11-01T15:23:06.9398661Z remote: Counting objects: 100% (12567/12567), done.
+2022-11-01T15:23:06.9398965Z remote: Compressing objects: 0% (1/10988)
+2022-11-01T15:23:06.9399257Z remote: Compressing objects: 1% (110/10988)
+2022-11-01T15:23:06.9439997Z remote: Compressing objects: 2% (220/10988)
+2022-11-01T15:23:06.9561627Z remote: Compressing objects: 3% (330/10988)
+2022-11-01T15:23:06.9680955Z remote: Compressing objects: 4% (440/10988)
+2022-11-01T15:23:06.9723040Z remote: Compressing objects: 5% (550/10988)
+2022-11-01T15:23:06.9876931Z remote: Compressing objects: 6% (660/10988)
+2022-11-01T15:23:07.0170815Z remote: Compressing objects: 7% (770/10988)
+2022-11-01T15:23:07.0504059Z remote: Compressing objects: 8% (880/10988)
+2022-11-01T15:23:07.0836116Z remote: Compressing objects: 9% (989/10988)
+2022-11-01T15:23:07.1460729Z remote: Compressing objects: 10% (1099/10988)
+2022-11-01T15:23:07.6608683Z remote: Compressing objects: 11% (1209/10988)
+2022-11-01T15:23:07.7588422Z remote: Compressing objects: 12% (1319/10988)
+2022-11-01T15:23:07.9494647Z remote: Compressing objects: 13% (1429/10988)
+2022-11-01T15:23:07.9527972Z remote: Compressing objects: 13% (1508/10988)
+2022-11-01T15:23:07.9668498Z remote: Compressing objects: 14% (1539/10988)
+2022-11-01T15:23:08.0219248Z remote: Compressing objects: 15% (1649/10988)
+2022-11-01T15:23:08.0283852Z remote: Compressing objects: 16% (1759/10988)
+2022-11-01T15:23:08.0452608Z remote: Compressing objects: 17% (1868/10988)
+2022-11-01T15:23:08.0618448Z remote: Compressing objects: 18% (1978/10988)
+2022-11-01T15:23:08.0889220Z remote: Compressing objects: 19% (2088/10988)
+2022-11-01T15:23:08.1162946Z remote: Compressing objects: 20% (2198/10988)
+2022-11-01T15:23:08.1247220Z remote: Compressing objects: 21% (2308/10988)
+2022-11-01T15:23:08.1520626Z remote: Compressing objects: 22% (2418/10988)
+2022-11-01T15:23:08.2139765Z remote: Compressing objects: 23% (2528/10988)
+2022-11-01T15:23:08.2412924Z remote: Compressing objects: 24% (2638/10988)
+2022-11-01T15:23:08.2597478Z remote: Compressing objects: 25% (2747/10988)
+2022-11-01T15:23:08.2752211Z remote: Compressing objects: 26% (2857/10988)
+2022-11-01T15:23:08.2966161Z remote: Compressing objects: 27% (2967/10988)
+2022-11-01T15:23:08.3926822Z remote: Compressing objects: 28% (3077/10988)
+2022-11-01T15:23:08.3927793Z remote: Compressing objects: 29% (3187/10988)
+2022-11-01T15:23:08.4094739Z remote: Compressing objects: 30% (3297/10988)
+2022-11-01T15:23:08.4338176Z remote: Compressing objects: 31% (3407/10988)
+2022-11-01T15:23:08.4632502Z remote: Compressing objects: 32% (3517/10988)
+2022-11-01T15:23:08.4940329Z remote: Compressing objects: 33% (3627/10988)
+2022-11-01T15:23:08.5404129Z remote: Compressing objects: 34% (3736/10988)
+2022-11-01T15:23:08.5814756Z remote: Compressing objects: 35% (3846/10988)
+2022-11-01T15:23:08.6091092Z remote: Compressing objects: 36% (3956/10988)
+2022-11-01T15:23:08.6446921Z remote: Compressing objects: 37% (4066/10988)
+2022-11-01T15:23:08.6900873Z remote: Compressing objects: 38% (4176/10988)
+2022-11-01T15:23:08.7213081Z remote: Compressing objects: 39% (4286/10988)
+2022-11-01T15:23:08.7502723Z remote: Compressing objects: 40% (4396/10988)
+2022-11-01T15:23:08.7869698Z remote: Compressing objects: 41% (4506/10988)
+2022-11-01T15:23:08.8103626Z remote: Compressing objects: 42% (4615/10988)
+2022-11-01T15:23:08.8451299Z remote: Compressing objects: 43% (4725/10988)
+2022-11-01T15:23:08.8774688Z remote: Compressing objects: 44% (4835/10988)
+2022-11-01T15:23:08.9003331Z remote: Compressing objects: 45% (4945/10988)
+2022-11-01T15:23:08.9070180Z remote: Compressing objects: 45% (5034/10988)
+2022-11-01T15:23:08.9344499Z remote: Compressing objects: 46% (5055/10988)
+2022-11-01T15:23:08.9568190Z remote: Compressing objects: 47% (5165/10988)
+2022-11-01T15:23:08.9805763Z remote: Compressing objects: 48% (5275/10988)
+2022-11-01T15:23:09.0037568Z remote: Compressing objects: 49% (5385/10988)
+2022-11-01T15:23:09.0301310Z remote: Compressing objects: 50% (5494/10988)
+2022-11-01T15:23:09.0582321Z remote: Compressing objects: 51% (5604/10988)
+2022-11-01T15:23:09.0808327Z remote: Compressing objects: 52% (5714/10988)
+2022-11-01T15:23:09.1124129Z remote: Compressing objects: 53% (5824/10988)
+2022-11-01T15:23:09.1387087Z remote: Compressing objects: 54% (5934/10988)
+2022-11-01T15:23:09.1647455Z remote: Compressing objects: 55% (6044/10988)
+2022-11-01T15:23:09.1915056Z remote: Compressing objects: 56% (6154/10988)
+2022-11-01T15:23:09.2255320Z remote: Compressing objects: 57% (6264/10988)
+2022-11-01T15:23:09.2457326Z remote: Compressing objects: 58% (6374/10988)
+2022-11-01T15:23:09.2755910Z remote: Compressing objects: 59% (6483/10988)
+2022-11-01T15:23:09.3017305Z remote: Compressing objects: 60% (6593/10988)
+2022-11-01T15:23:09.3325069Z remote: Compressing objects: 61% (6703/10988)
+2022-11-01T15:23:09.3546803Z remote: Compressing objects: 62% (6813/10988)
+2022-11-01T15:23:09.3801684Z remote: Compressing objects: 63% (6923/10988)
+2022-11-01T15:23:09.4067963Z remote: Compressing objects: 64% (7033/10988)
+2022-11-01T15:23:09.5472387Z remote: Compressing objects: 65% (7143/10988)
+2022-11-01T15:23:09.5473083Z remote: Compressing objects: 66% (7253/10988)
+2022-11-01T15:23:09.5473536Z remote: Compressing objects: 67% (7362/10988)
+2022-11-01T15:23:09.5473940Z remote: Compressing objects: 68% (7472/10988)
+2022-11-01T15:23:09.5474375Z remote: Compressing objects: 69% (7582/10988)
+2022-11-01T15:23:09.5474794Z remote: Compressing objects: 70% (7692/10988)
+2022-11-01T15:23:09.5475212Z remote: Compressing objects: 71% (7802/10988)
+2022-11-01T15:23:09.5475789Z remote: Compressing objects: 72% (7912/10988)
+2022-11-01T15:23:09.5476209Z remote: Compressing objects: 73% (8022/10988)
+2022-11-01T15:23:09.5477532Z remote: Compressing objects: 74% (8132/10988)
+2022-11-01T15:23:09.5478233Z remote: Compressing objects: 75% (8241/10988)
+2022-11-01T15:23:09.5478582Z remote: Compressing objects: 76% (8351/10988)
+2022-11-01T15:23:09.5479163Z remote: Compressing objects: 77% (8461/10988)
+2022-11-01T15:23:09.5479885Z remote: Compressing objects: 78% (8571/10988)
+2022-11-01T15:23:09.5480434Z remote: Compressing objects: 79% (8681/10988)
+2022-11-01T15:23:09.5480899Z remote: Compressing objects: 80% (8791/10988)
+2022-11-01T15:23:09.5481594Z remote: Compressing objects: 81% (8901/10988)
+2022-11-01T15:23:09.5482284Z remote: Compressing objects: 82% (9011/10988)
+2022-11-01T15:23:09.5482865Z remote: Compressing objects: 83% (9121/10988)
+2022-11-01T15:23:09.5483308Z remote: Compressing objects: 84% (9230/10988)
+2022-11-01T15:23:09.5483685Z remote: Compressing objects: 85% (9340/10988)
+2022-11-01T15:23:09.5484385Z remote: Compressing objects: 86% (9450/10988)
+2022-11-01T15:23:09.5485582Z remote: Compressing objects: 87% (9560/10988)
+2022-11-01T15:23:09.5486089Z remote: Compressing objects: 88% (9670/10988)
+2022-11-01T15:23:09.5486597Z remote: Compressing objects: 89% (9780/10988)
+2022-11-01T15:23:09.5487116Z remote: Compressing objects: 90% (9890/10988)
+2022-11-01T15:23:09.5487742Z remote: Compressing objects: 91% (10000/10988)
+2022-11-01T15:23:09.5488235Z remote: Compressing objects: 92% (10109/10988)
+2022-11-01T15:23:09.5488673Z remote: Compressing objects: 93% (10219/10988)
+2022-11-01T15:23:09.5489383Z remote: Compressing objects: 94% (10329/10988)
+2022-11-01T15:23:09.5489745Z remote: Compressing objects: 95% (10439/10988)
+2022-11-01T15:23:09.5490195Z remote: Compressing objects: 96% (10549/10988)
+2022-11-01T15:23:09.5490745Z remote: Compressing objects: 97% (10659/10988)
+2022-11-01T15:23:09.5491127Z remote: Compressing objects: 98% (10769/10988)
+2022-11-01T15:23:09.5491596Z remote: Compressing objects: 99% (10879/10988)
+2022-11-01T15:23:09.5492106Z remote: Compressing objects: 100% (10988/10988)
+2022-11-01T15:23:09.5492683Z remote: Compressing objects: 100% (10988/10988), done.
+2022-11-01T15:23:09.8456233Z Receiving objects: 0% (1/12567)
+2022-11-01T15:23:10.1991946Z Receiving objects: 1% (126/12567)
+2022-11-01T15:23:10.2129001Z Receiving objects: 2% (252/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.3381943Z Receiving objects: 3% (378/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.3419720Z Receiving objects: 4% (503/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.3481272Z Receiving objects: 5% (629/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.3610976Z Receiving objects: 6% (755/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4060459Z Receiving objects: 7% (880/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4152976Z Receiving objects: 8% (1006/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4214294Z Receiving objects: 9% (1132/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4443541Z Receiving objects: 10% (1257/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4585667Z Receiving objects: 11% (1383/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4664474Z Receiving objects: 12% (1509/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4672354Z Receiving objects: 13% (1634/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4765843Z Receiving objects: 14% (1760/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.4973914Z Receiving objects: 15% (1886/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.5317436Z Receiving objects: 16% (2011/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.5620851Z Receiving objects: 17% (2137/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.5694797Z Receiving objects: 17% (2211/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.5937016Z Receiving objects: 18% (2263/12567), 1.64 MiB | 3.13 MiB/s
+2022-11-01T15:23:10.6179150Z Receiving objects: 19% (2388/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.6422936Z Receiving objects: 20% (2514/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.6652610Z Receiving objects: 21% (2640/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.6945718Z Receiving objects: 22% (2765/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.7167238Z Receiving objects: 23% (2891/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.7332899Z Receiving objects: 24% (3017/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.7570968Z Receiving objects: 25% (3142/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.7722439Z Receiving objects: 26% (3268/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.7982867Z Receiving objects: 27% (3394/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.8201011Z Receiving objects: 28% (3519/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.8338369Z Receiving objects: 29% (3645/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.8455222Z Receiving objects: 30% (3771/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.8589882Z Receiving objects: 31% (3896/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.8671253Z Receiving objects: 32% (4022/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.8915567Z Receiving objects: 33% (4148/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.9033131Z Receiving objects: 34% (4273/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:10.9275337Z Receiving objects: 35% (4399/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:11.0474018Z Receiving objects: 36% (4525/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:11.0614229Z Receiving objects: 37% (4650/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:11.0725415Z Receiving objects: 38% (4776/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:11.0818490Z Receiving objects: 39% (4902/12567), 5.60 MiB | 5.45 MiB/s
+2022-11-01T15:23:11.0907264Z Receiving objects: 40% (5027/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.0974088Z Receiving objects: 41% (5153/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.1189127Z Receiving objects: 42% (5279/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.1576689Z Receiving objects: 43% (5404/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.1635112Z Receiving objects: 44% (5530/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.1783797Z Receiving objects: 45% (5656/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.1910308Z Receiving objects: 46% (5781/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.1973985Z Receiving objects: 47% (5907/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.2254839Z Receiving objects: 48% (6033/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.2318962Z Receiving objects: 49% (6158/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.2710865Z Receiving objects: 50% (6284/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.4267228Z Receiving objects: 51% (6410/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:11.5803346Z Receiving objects: 52% (6535/12567), 10.14 MiB | 6.64 MiB/s
+2022-11-01T15:23:12.2068025Z Receiving objects: 52% (6537/12567), 17.98 MiB | 8.87 MiB/s
+2022-11-01T15:23:12.5653011Z Receiving objects: 53% (6661/12567), 26.38 MiB | 10.44 MiB/s
+2022-11-01T15:23:12.6958322Z Receiving objects: 53% (6662/12567), 26.38 MiB | 10.44 MiB/s
+2022-11-01T15:23:12.7498019Z Receiving objects: 54% (6787/12567), 35.32 MiB | 11.67 MiB/s
+2022-11-01T15:23:12.9576078Z Receiving objects: 55% (6912/12567), 35.32 MiB | 11.67 MiB/s
+2022-11-01T15:23:13.0573630Z Receiving objects: 56% (7038/12567), 35.32 MiB | 11.67 MiB/s
+2022-11-01T15:23:13.1975640Z Receiving objects: 57% (7164/12567), 35.32 MiB | 11.67 MiB/s
+2022-11-01T15:23:13.2702208Z Receiving objects: 58% (7289/12567), 44.61 MiB | 12.65 MiB/s
+2022-11-01T15:23:13.3294275Z Receiving objects: 59% (7415/12567), 44.61 MiB | 12.65 MiB/s
+2022-11-01T15:23:13.3822287Z Receiving objects: 60% (7541/12567), 44.61 MiB | 12.65 MiB/s
+2022-11-01T15:23:13.5599681Z Receiving objects: 61% (7666/12567), 44.61 MiB | 12.65 MiB/s
+2022-11-01T15:23:13.5600309Z Receiving objects: 61% (7778/12567), 44.61 MiB | 12.65 MiB/s
+2022-11-01T15:23:13.7119127Z Receiving objects: 62% (7792/12567), 44.61 MiB | 12.65 MiB/s
+2022-11-01T15:23:14.4477813Z Receiving objects: 63% (7918/12567), 52.69 MiB | 13.08 MiB/s
+2022-11-01T15:23:14.5754767Z Receiving objects: 64% (8043/12567), 64.39 MiB | 14.22 MiB/s
+2022-11-01T15:23:15.3567308Z Receiving objects: 64% (8057/12567), 64.39 MiB | 14.22 MiB/s
+2022-11-01T15:23:15.4930170Z Receiving objects: 65% (8169/12567), 85.50 MiB | 17.69 MiB/s
+2022-11-01T15:23:15.5525805Z Receiving objects: 66% (8295/12567), 85.50 MiB | 17.69 MiB/s
+2022-11-01T15:23:15.6305131Z Receiving objects: 66% (8356/12567), 85.50 MiB | 17.69 MiB/s
+2022-11-01T15:23:15.7845146Z Receiving objects: 67% (8420/12567), 96.01 MiB | 18.97 MiB/s
+2022-11-01T15:23:15.8950904Z Receiving objects: 68% (8546/12567), 96.01 MiB | 18.97 MiB/s
+2022-11-01T15:23:16.1051375Z Receiving objects: 69% (8672/12567), 96.01 MiB | 18.97 MiB/s
+2022-11-01T15:23:16.3043168Z Receiving objects: 70% (8797/12567), 96.01 MiB | 18.97 MiB/s
+2022-11-01T15:23:16.6162611Z Receiving objects: 71% (8923/12567), 106.07 MiB | 19.39 MiB/s
+2022-11-01T15:23:16.6815447Z Receiving objects: 71% (9011/12567), 106.07 MiB | 19.39 MiB/s
+2022-11-01T15:23:16.7597143Z Receiving objects: 72% (9049/12567), 114.51 MiB | 19.40 MiB/s
+2022-11-01T15:23:16.7696552Z Receiving objects: 73% (9174/12567), 114.51 MiB | 19.40 MiB/s
+2022-11-01T15:23:16.8381002Z Receiving objects: 74% (9300/12567), 114.51 MiB | 19.40 MiB/s
+2022-11-01T15:23:16.8584430Z Receiving objects: 75% (9426/12567), 114.51 MiB | 19.40 MiB/s
+2022-11-01T15:23:16.9384015Z Receiving objects: 76% (9551/12567), 114.51 MiB | 19.40 MiB/s
+2022-11-01T15:23:17.3179210Z Receiving objects: 77% (9677/12567), 114.51 MiB | 19.40 MiB/s
+2022-11-01T15:23:17.3182197Z Receiving objects: 78% (9803/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.3869883Z Receiving objects: 79% (9928/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.5335850Z Receiving objects: 80% (10054/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.5428620Z Receiving objects: 81% (10180/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.5600130Z Receiving objects: 82% (10305/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.5640100Z Receiving objects: 82% (10382/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.6170093Z Receiving objects: 83% (10431/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.6260507Z Receiving objects: 84% (10557/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.6882844Z Receiving objects: 85% (10682/12567), 122.17 MiB | 19.07 MiB/s
+2022-11-01T15:23:17.6964863Z Receiving objects: 86% (10808/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:17.7033288Z Receiving objects: 87% (10934/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:17.7862769Z Receiving objects: 88% (11059/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:17.9968632Z Receiving objects: 89% (11185/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.0444402Z Receiving objects: 90% (11311/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.0775190Z Receiving objects: 91% (11436/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.0824539Z Receiving objects: 92% (11562/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.0890030Z Receiving objects: 93% (11688/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.0956337Z Receiving objects: 94% (11813/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1014935Z Receiving objects: 95% (11939/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1056183Z Receiving objects: 96% (12065/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1101897Z Receiving objects: 97% (12190/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1271902Z Receiving objects: 98% (12316/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1310792Z Receiving objects: 99% (12442/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1311930Z remote: Total 12567 (delta 1595), reused 7195 (delta 1446), pack-reused 0
+2022-11-01T15:23:18.1338739Z Receiving objects: 100% (12567/12567), 131.07 MiB | 18.99 MiB/s
+2022-11-01T15:23:18.1339954Z Receiving objects: 100% (12567/12567), 139.23 MiB | 16.22 MiB/s, done.
+2022-11-01T15:23:18.1385156Z Resolving deltas: 0% (0/1595)
+2022-11-01T15:23:18.1456938Z Resolving deltas: 1% (16/1595)
+2022-11-01T15:23:18.1468555Z Resolving deltas: 2% (32/1595)
+2022-11-01T15:23:18.1480623Z Resolving deltas: 3% (48/1595)
+2022-11-01T15:23:18.1510723Z Resolving deltas: 4% (64/1595)
+2022-11-01T15:23:18.1526135Z Resolving deltas: 5% (80/1595)
+2022-11-01T15:23:18.1537025Z Resolving deltas: 6% (96/1595)
+2022-11-01T15:23:18.1544963Z Resolving deltas: 7% (112/1595)
+2022-11-01T15:23:18.1556566Z Resolving deltas: 8% (128/1595)
+2022-11-01T15:23:18.1570240Z Resolving deltas: 9% (144/1595)
+2022-11-01T15:23:18.1582264Z Resolving deltas: 10% (160/1595)
+2022-11-01T15:23:18.1691779Z Resolving deltas: 11% (176/1595)
+2022-11-01T15:23:18.1715280Z Resolving deltas: 12% (192/1595)
+2022-11-01T15:23:18.1720797Z Resolving deltas: 13% (208/1595)
+2022-11-01T15:23:18.1728838Z Resolving deltas: 14% (224/1595)
+2022-11-01T15:23:18.1732276Z Resolving deltas: 15% (240/1595)
+2022-11-01T15:23:18.1735362Z Resolving deltas: 16% (256/1595)
+2022-11-01T15:23:18.1738747Z Resolving deltas: 17% (272/1595)
+2022-11-01T15:23:18.1743520Z Resolving deltas: 18% (288/1595)
+2022-11-01T15:23:18.1747596Z Resolving deltas: 19% (304/1595)
+2022-11-01T15:23:18.1751835Z Resolving deltas: 20% (319/1595)
+2022-11-01T15:23:18.1755707Z Resolving deltas: 21% (335/1595)
+2022-11-01T15:23:18.1762459Z Resolving deltas: 22% (351/1595)
+2022-11-01T15:23:18.1786752Z Resolving deltas: 23% (367/1595)
+2022-11-01T15:23:18.1800095Z Resolving deltas: 24% (383/1595)
+2022-11-01T15:23:18.1817527Z Resolving deltas: 25% (399/1595)
+2022-11-01T15:23:18.1845355Z Resolving deltas: 26% (415/1595)
+2022-11-01T15:23:18.1858445Z Resolving deltas: 27% (431/1595)
+2022-11-01T15:23:18.1866810Z Resolving deltas: 28% (447/1595)
+2022-11-01T15:23:18.1967962Z Resolving deltas: 29% (463/1595)
+2022-11-01T15:23:18.2006641Z Resolving deltas: 30% (479/1595)
+2022-11-01T15:23:18.2018922Z Resolving deltas: 31% (495/1595)
+2022-11-01T15:23:18.2033737Z Resolving deltas: 32% (511/1595)
+2022-11-01T15:23:18.2060821Z Resolving deltas: 33% (527/1595)
+2022-11-01T15:23:18.2080072Z Resolving deltas: 34% (543/1595)
+2022-11-01T15:23:18.2108427Z Resolving deltas: 35% (559/1595)
+2022-11-01T15:23:18.2126164Z Resolving deltas: 36% (575/1595)
+2022-11-01T15:23:18.2221258Z Resolving deltas: 37% (591/1595)
+2022-11-01T15:23:18.2238691Z Resolving deltas: 38% (607/1595)
+2022-11-01T15:23:18.2242266Z Resolving deltas: 39% (623/1595)
+2022-11-01T15:23:18.2242686Z Resolving deltas: 40% (638/1595)
+2022-11-01T15:23:18.2243401Z Resolving deltas: 41% (654/1595)
+2022-11-01T15:23:18.2247475Z Resolving deltas: 42% (670/1595)
+2022-11-01T15:23:18.2248012Z Resolving deltas: 43% (686/1595)
+2022-11-01T15:23:18.2250915Z Resolving deltas: 44% (702/1595)
+2022-11-01T15:23:18.2251757Z Resolving deltas: 45% (718/1595)
+2022-11-01T15:23:18.2255808Z Resolving deltas: 46% (734/1595)
+2022-11-01T15:23:18.2256261Z Resolving deltas: 47% (750/1595)
+2022-11-01T15:23:18.2257458Z Resolving deltas: 48% (766/1595)
+2022-11-01T15:23:18.2261205Z Resolving deltas: 49% (782/1595)
+2022-11-01T15:23:18.2261740Z Resolving deltas: 50% (798/1595)
+2022-11-01T15:23:18.2262498Z Resolving deltas: 51% (814/1595)
+2022-11-01T15:23:18.2271025Z Resolving deltas: 52% (830/1595)
+2022-11-01T15:23:18.2280763Z Resolving deltas: 53% (846/1595)
+2022-11-01T15:23:18.2286419Z Resolving deltas: 54% (862/1595)
+2022-11-01T15:23:18.2296969Z Resolving deltas: 55% (878/1595)
+2022-11-01T15:23:18.2303419Z Resolving deltas: 56% (894/1595)
+2022-11-01T15:23:18.2310028Z Resolving deltas: 57% (910/1595)
+2022-11-01T15:23:18.2314981Z Resolving deltas: 58% (926/1595)
+2022-11-01T15:23:18.2323520Z Resolving deltas: 59% (942/1595)
+2022-11-01T15:23:18.2328697Z Resolving deltas: 60% (957/1595)
+2022-11-01T15:23:18.2335792Z Resolving deltas: 61% (973/1595)
+2022-11-01T15:23:18.2342110Z Resolving deltas: 62% (989/1595)
+2022-11-01T15:23:18.2348324Z Resolving deltas: 63% (1005/1595)
+2022-11-01T15:23:18.2354457Z Resolving deltas: 64% (1021/1595)
+2022-11-01T15:23:18.2361497Z Resolving deltas: 65% (1037/1595)
+2022-11-01T15:23:18.2370639Z Resolving deltas: 66% (1053/1595)
+2022-11-01T15:23:18.2380549Z Resolving deltas: 67% (1069/1595)
+2022-11-01T15:23:18.2387136Z Resolving deltas: 68% (1085/1595)
+2022-11-01T15:23:18.2391989Z Resolving deltas: 69% (1101/1595)
+2022-11-01T15:23:18.2398784Z Resolving deltas: 70% (1117/1595)
+2022-11-01T15:23:18.2406442Z Resolving deltas: 71% (1133/1595)
+2022-11-01T15:23:18.2412673Z Resolving deltas: 72% (1149/1595)
+2022-11-01T15:23:18.2422301Z Resolving deltas: 73% (1165/1595)
+2022-11-01T15:23:18.2427825Z Resolving deltas: 74% (1181/1595)
+2022-11-01T15:23:18.2433572Z Resolving deltas: 75% (1197/1595)
+2022-11-01T15:23:18.2438704Z Resolving deltas: 76% (1213/1595)
+2022-11-01T15:23:18.2444857Z Resolving deltas: 77% (1229/1595)
+2022-11-01T15:23:18.2450379Z Resolving deltas: 78% (1245/1595)
+2022-11-01T15:23:18.2458830Z Resolving deltas: 79% (1261/1595)
+2022-11-01T15:23:18.2464822Z Resolving deltas: 80% (1276/1595)
+2022-11-01T15:23:18.2470368Z Resolving deltas: 81% (1292/1595)
+2022-11-01T15:23:18.2477092Z Resolving deltas: 82% (1308/1595)
+2022-11-01T15:23:18.2486290Z Resolving deltas: 83% (1324/1595)
+2022-11-01T15:23:18.2495293Z Resolving deltas: 84% (1340/1595)
+2022-11-01T15:23:18.2502703Z Resolving deltas: 85% (1356/1595)
+2022-11-01T15:23:18.2509757Z Resolving deltas: 86% (1372/1595)
+2022-11-01T15:23:18.2517689Z Resolving deltas: 87% (1388/1595)
+2022-11-01T15:23:18.2526971Z Resolving deltas: 88% (1404/1595)
+2022-11-01T15:23:18.2537951Z Resolving deltas: 89% (1420/1595)
+2022-11-01T15:23:18.2547316Z Resolving deltas: 90% (1436/1595)
+2022-11-01T15:23:18.2561578Z Resolving deltas: 91% (1452/1595)
+2022-11-01T15:23:18.2579990Z Resolving deltas: 92% (1468/1595)
+2022-11-01T15:23:18.2589743Z Resolving deltas: 93% (1484/1595)
+2022-11-01T15:23:18.2595230Z Resolving deltas: 94% (1500/1595)
+2022-11-01T15:23:18.2600818Z Resolving deltas: 95% (1516/1595)
+2022-11-01T15:23:18.2611569Z Resolving deltas: 96% (1532/1595)
+2022-11-01T15:23:18.2621438Z Resolving deltas: 97% (1548/1595)
+2022-11-01T15:23:18.2626207Z Resolving deltas: 98% (1564/1595)
+2022-11-01T15:23:18.2630366Z Resolving deltas: 99% (1580/1595)
+2022-11-01T15:23:18.2685571Z Resolving deltas: 100% (1595/1595)
+2022-11-01T15:23:18.2686158Z Resolving deltas: 100% (1595/1595), done.
+2022-11-01T15:23:18.7231893Z From https://github.com/tgstation/tgstation
+2022-11-01T15:23:18.7239390Z * [new ref] 90d58213531368fd97e9955fe80b75ad69c20f24 -> pull/70980/merge
+2022-11-01T15:23:18.7262520Z ##[endgroup]
+2022-11-01T15:23:18.7263398Z ##[group]Determining the checkout info
+2022-11-01T15:23:18.7264882Z ##[endgroup]
+2022-11-01T15:23:18.7274145Z ##[group]Checking out the ref
+2022-11-01T15:23:18.7275402Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/70980/merge
+2022-11-01T15:23:19.8646383Z Updating files: 63% (7322/11595)
+2022-11-01T15:23:19.8892263Z Updating files: 64% (7421/11595)
+2022-11-01T15:23:19.9117598Z Updating files: 65% (7537/11595)
+2022-11-01T15:23:19.9395000Z Updating files: 66% (7653/11595)
+2022-11-01T15:23:19.9581108Z Updating files: 67% (7769/11595)
+2022-11-01T15:23:19.9854108Z Updating files: 68% (7885/11595)
+2022-11-01T15:23:20.0092896Z Updating files: 69% (8001/11595)
+2022-11-01T15:23:20.0541265Z Updating files: 70% (8117/11595)
+2022-11-01T15:23:20.0650681Z Updating files: 71% (8233/11595)
+2022-11-01T15:23:20.0764955Z Updating files: 72% (8349/11595)
+2022-11-01T15:23:20.0853895Z Updating files: 73% (8465/11595)
+2022-11-01T15:23:20.0939233Z Updating files: 74% (8581/11595)
+2022-11-01T15:23:20.0992172Z Updating files: 75% (8697/11595)
+2022-11-01T15:23:20.1498757Z Updating files: 76% (8813/11595)
+2022-11-01T15:23:20.1610877Z Updating files: 77% (8929/11595)
+2022-11-01T15:23:20.1643521Z Updating files: 78% (9045/11595)
+2022-11-01T15:23:20.1892978Z Updating files: 79% (9161/11595)
+2022-11-01T15:23:20.1990867Z Updating files: 80% (9276/11595)
+2022-11-01T15:23:20.2065881Z Updating files: 81% (9392/11595)
+2022-11-01T15:23:20.2137892Z Updating files: 82% (9508/11595)
+2022-11-01T15:23:20.2198085Z Updating files: 83% (9624/11595)
+2022-11-01T15:23:20.2257645Z Updating files: 84% (9740/11595)
+2022-11-01T15:23:20.2323160Z Updating files: 85% (9856/11595)
+2022-11-01T15:23:20.2380577Z Updating files: 86% (9972/11595)
+2022-11-01T15:23:20.2444393Z Updating files: 87% (10088/11595)
+2022-11-01T15:23:20.2544182Z Updating files: 88% (10204/11595)
+2022-11-01T15:23:20.2807288Z Updating files: 89% (10320/11595)
+2022-11-01T15:23:20.2939799Z Updating files: 90% (10436/11595)
+2022-11-01T15:23:20.3191983Z Updating files: 91% (10552/11595)
+2022-11-01T15:23:20.3258456Z Updating files: 92% (10668/11595)
+2022-11-01T15:23:20.3340985Z Updating files: 93% (10784/11595)
+2022-11-01T15:23:20.3423637Z Updating files: 94% (10900/11595)
+2022-11-01T15:23:20.3500577Z Updating files: 95% (11016/11595)
+2022-11-01T15:23:20.3558683Z Updating files: 96% (11132/11595)
+2022-11-01T15:23:20.3634870Z Updating files: 97% (11248/11595)
+2022-11-01T15:23:20.3814012Z Updating files: 98% (11364/11595)
+2022-11-01T15:23:20.3892119Z Updating files: 99% (11480/11595)
+2022-11-01T15:23:20.3892548Z Updating files: 100% (11595/11595)
+2022-11-01T15:23:20.3892853Z Updating files: 100% (11595/11595), done.
+2022-11-01T15:23:20.4056043Z Note: switching to 'refs/remotes/pull/70980/merge'.
+2022-11-01T15:23:20.4056307Z
+2022-11-01T15:23:20.4056668Z You are in 'detached HEAD' state. You can look around, make experimental
+2022-11-01T15:23:20.4057485Z changes and commit them, and you can discard any commits you make in this
+2022-11-01T15:23:20.4058470Z state without impacting any branches by switching back to a branch.
+2022-11-01T15:23:20.4058838Z
+2022-11-01T15:23:20.4059084Z If you want to create a new branch to retain commits you create, you may
+2022-11-01T15:23:20.4060410Z do so (now or later) by using -c with the switch command. Example:
+2022-11-01T15:23:20.4060709Z
+2022-11-01T15:23:20.4061092Z git switch -c
+2022-11-01T15:23:20.4061268Z
+2022-11-01T15:23:20.4061433Z Or undo this operation with:
+2022-11-01T15:23:20.4061641Z
+2022-11-01T15:23:20.4061781Z git switch -
+2022-11-01T15:23:20.4061964Z
+2022-11-01T15:23:20.4062222Z Turn off this advice by setting config variable advice.detachedHead to false
+2022-11-01T15:23:20.4062504Z
+2022-11-01T15:23:20.4062736Z HEAD is now at 90d5821 Merge 1cb3ad143b2bd2b6467c31b7f52299c77448f1ee into 6ccb95a4ea337422d5d29cd85f5267e4c867ccff
+2022-11-01T15:23:20.4116386Z ##[endgroup]
+2022-11-01T15:23:20.4158288Z [command]/usr/bin/git log -1 --format='%H'
+2022-11-01T15:23:20.4192267Z '90d58213531368fd97e9955fe80b75ad69c20f24'
+2022-11-01T15:23:20.4605705Z ##[group]Run actions/cache@v3
+2022-11-01T15:23:20.4606069Z with:
+2022-11-01T15:23:20.4606290Z path: ~/BYOND
+2022-11-01T15:23:20.4606834Z key: Linux-byond-
+2022-11-01T15:23:20.4607271Z ##[endgroup]
+2022-11-01T15:23:22.1816608Z Received 0 of 4090426 (0.0%), 0.0 MBs/sec
+2022-11-01T15:23:22.2496035Z Received 4090426 of 4090426 (100.0%), 3.6 MBs/sec
+2022-11-01T15:23:22.2497318Z Cache Size: ~4 MB (4090426 B)
+2022-11-01T15:23:22.2526348Z [command]/usr/bin/tar --use-compress-program unzstd -xf /home/runner/work/_temp/6dd95125-b59e-4597-b8ee-6c3714735e91/cache.tzst -P -C /home/runner/work/tgstation/tgstation
+2022-11-01T15:23:22.3064448Z Cache restored successfully
+2022-11-01T15:23:22.4635256Z Cache restored from key: Linux-byond-
+2022-11-01T15:23:22.4810323Z ##[group]Run sudo systemctl start mysql
+2022-11-01T15:23:22.4810903Z [36;1msudo systemctl start mysql[0m
+2022-11-01T15:23:22.4811432Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci;'[0m
+2022-11-01T15:23:22.4811815Z [36;1mmysql -u root -proot tg_ci < SQL/tgstation_schema.sql[0m
+2022-11-01T15:23:22.4812211Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;'[0m
+2022-11-01T15:23:22.4812696Z [36;1mmysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql[0m
+2022-11-01T15:23:22.4876848Z shell: /usr/bin/bash -e {0}
+2022-11-01T15:23:22.4877477Z ##[endgroup]
+2022-11-01T15:23:27.2625132Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-01T15:23:27.3956584Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-01T15:23:28.2604742Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-01T15:23:28.2716557Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-01T15:23:29.0145539Z ##[group]Run sudo dpkg --add-architecture i386
+2022-11-01T15:23:29.0145924Z [36;1msudo dpkg --add-architecture i386[0m
+2022-11-01T15:23:29.0146204Z [36;1msudo apt update || true[0m
+2022-11-01T15:23:29.0146531Z [36;1msudo apt install -o APT::Immediate-Configure=false libssl1.1:i386[0m
+2022-11-01T15:23:29.0146860Z [36;1mbash tools/ci/install_rust_g.sh[0m
+2022-11-01T15:23:29.0208114Z shell: /usr/bin/bash -e {0}
+2022-11-01T15:23:29.0208371Z ##[endgroup]
+2022-11-01T15:23:29.3467028Z
+2022-11-01T15:23:29.3467957Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+2022-11-01T15:23:29.3470221Z
+2022-11-01T15:23:29.4665471Z Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease
+2022-11-01T15:23:29.4669512Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
+2022-11-01T15:23:29.4687773Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
+2022-11-01T15:23:29.4702492Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
+2022-11-01T15:23:29.4705529Z Get:5 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease [10.5 kB]
+2022-11-01T15:23:29.7585400Z Get:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [745 kB]
+2022-11-01T15:23:29.7767685Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2196 kB]
+2022-11-01T15:23:29.8010173Z Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [972 kB]
+2022-11-01T15:23:29.8070363Z Hit:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease
+2022-11-01T15:23:29.8211172Z Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [697 kB]
+2022-11-01T15:23:29.9292317Z Get:11 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe i386 Packages [13.5 kB]
+2022-11-01T15:23:29.9315932Z Get:12 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [24.0 kB]
+2022-11-01T15:23:29.9324114Z Get:13 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [864 B]
+2022-11-01T15:23:30.0626789Z Get:14 https://packages.microsoft.com/ubuntu/20.04/prod focal/main arm64 Packages [45.2 kB]
+2022-11-01T15:23:30.0677343Z Get:15 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages [204 kB]
+2022-11-01T15:23:30.2127695Z Get:16 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [1821 kB]
+2022-11-01T15:23:30.2296608Z Get:17 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.2 kB]
+2022-11-01T15:23:30.2329110Z Get:18 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [743 kB]
+2022-11-01T15:23:30.2861057Z Get:19 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [15.3 kB]
+2022-11-01T15:23:30.6239298Z Get:20 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 Packages [15.2 kB]
+2022-11-01T15:23:46.7853764Z Fetched 7851 kB in 2s (4993 kB/s)
+2022-11-01T15:23:48.1966173Z Reading package lists...
+2022-11-01T15:23:48.4655905Z Building dependency tree...
+2022-11-01T15:23:48.4674811Z Reading state information...
+2022-11-01T15:23:48.6158045Z 30 packages can be upgraded. Run 'apt list --upgradable' to see them.
+2022-11-01T15:23:48.6289670Z
+2022-11-01T15:23:48.6290570Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+2022-11-01T15:23:48.6290875Z
+2022-11-01T15:23:48.7009344Z Reading package lists...
+2022-11-01T15:23:48.9786347Z Building dependency tree...
+2022-11-01T15:23:48.9806498Z Reading state information...
+2022-11-01T15:23:49.1908267Z The following additional packages will be installed:
+2022-11-01T15:23:49.1909169Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1 libgcc-s1:i386
+2022-11-01T15:23:49.1909925Z libidn2-0:i386 libunistring2:i386
+2022-11-01T15:23:49.1917188Z Suggested packages:
+2022-11-01T15:23:49.1918006Z glibc-doc:i386 locales:i386
+2022-11-01T15:23:49.2785536Z The following NEW packages will be installed:
+2022-11-01T15:23:49.2789401Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386
+2022-11-01T15:23:49.2793380Z libssl1.1:i386 libunistring2:i386
+2022-11-01T15:23:49.2799841Z The following packages will be upgraded:
+2022-11-01T15:23:49.2804848Z libgcc-s1
+2022-11-01T15:23:49.3261093Z 1 upgraded, 7 newly installed, 0 to remove and 29 not upgraded.
+2022-11-01T15:23:49.4742625Z Need to get 4528 kB of archives.
+2022-11-01T15:23:49.4743198Z After this operation, 19.3 MB of additional disk space will be used.
+2022-11-01T15:23:49.4744237Z Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libcrypt1 i386 1:4.4.10-10ubuntu4 [90.9 kB]
+2022-11-01T15:23:49.6579955Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libc6 i386 2.31-0ubuntu9.9 [2580 kB]
+2022-11-01T15:23:49.6658233Z Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 gcc-11-base i386 11.1.0-1ubuntu1~20.04 [19.0 kB]
+2022-11-01T15:23:50.0902580Z Get:4 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main amd64 libgcc-s1 amd64 11.1.0-1ubuntu1~20.04 [42.1 kB]
+2022-11-01T15:23:50.1227741Z Get:5 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libunistring2 i386 0.9.10-2 [377 kB]
+2022-11-01T15:23:50.2138856Z Get:6 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libidn2-0 i386 2.2.0-2 [51.4 kB]
+2022-11-01T15:23:50.2991668Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libssl1.1 i386 1.1.1f-1ubuntu2.16 [1318 kB]
+2022-11-01T15:23:50.5116502Z Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 libgcc-s1 i386 11.1.0-1ubuntu1~20.04 [50.0 kB]
+2022-11-01T15:23:51.2386768Z Preconfiguring packages ...
+2022-11-01T15:23:51.3495462Z Fetched 4528 kB in 1s (3176 kB/s)
+2022-11-01T15:23:51.3919752Z Selecting previously unselected package gcc-11-base:i386.
+2022-11-01T15:23:51.4344862Z (Reading database ...
+2022-11-01T15:23:51.4345195Z (Reading database ... 5%
+2022-11-01T15:23:51.4345492Z (Reading database ... 10%
+2022-11-01T15:23:51.4346277Z (Reading database ... 15%
+2022-11-01T15:23:51.4346554Z (Reading database ... 20%
+2022-11-01T15:23:51.4346817Z (Reading database ... 25%
+2022-11-01T15:23:51.4347410Z (Reading database ... 30%
+2022-11-01T15:23:51.4347706Z (Reading database ... 35%
+2022-11-01T15:23:51.4348099Z (Reading database ... 40%
+2022-11-01T15:23:51.4348378Z (Reading database ... 45%
+2022-11-01T15:23:51.4348637Z (Reading database ... 50%
+2022-11-01T15:23:51.4934309Z (Reading database ... 55%
+2022-11-01T15:23:51.5685431Z (Reading database ... 60%
+2022-11-01T15:23:51.6482633Z (Reading database ... 65%
+2022-11-01T15:23:51.7528420Z (Reading database ... 70%
+2022-11-01T15:23:51.9010214Z (Reading database ... 75%
+2022-11-01T15:23:52.0151477Z (Reading database ... 80%
+2022-11-01T15:23:52.1096967Z (Reading database ... 85%
+2022-11-01T15:23:52.2608875Z (Reading database ... 90%
+2022-11-01T15:23:52.3661328Z (Reading database ... 95%
+2022-11-01T15:23:52.3661629Z (Reading database ... 100%
+2022-11-01T15:23:52.3661963Z (Reading database ... 242126 files and directories currently installed.)
+2022-11-01T15:23:52.3810032Z Preparing to unpack .../0-gcc-11-base_11.1.0-1ubuntu1~20.04_i386.deb ...
+2022-11-01T15:23:52.3842110Z Unpacking gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-01T15:23:52.6152846Z Preparing to unpack .../1-libgcc-s1_11.1.0-1ubuntu1~20.04_amd64.deb ...
+2022-11-01T15:23:52.7192789Z Unpacking libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) over (10.3.0-1ubuntu1~20.04) ...
+2022-11-01T15:23:52.7808541Z Selecting previously unselected package libgcc-s1:i386.
+2022-11-01T15:23:52.8066352Z Preparing to unpack .../2-libgcc-s1_11.1.0-1ubuntu1~20.04_i386.deb ...
+2022-11-01T15:23:52.8100949Z Unpacking libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-01T15:23:52.8534885Z Selecting previously unselected package libcrypt1:i386.
+2022-11-01T15:23:52.8817109Z Preparing to unpack .../3-libcrypt1_1%3a4.4.10-10ubuntu4_i386.deb ...
+2022-11-01T15:23:52.8847883Z Unpacking libcrypt1:i386 (1:4.4.10-10ubuntu4) ...
+2022-11-01T15:23:53.0566375Z Selecting previously unselected package libc6:i386.
+2022-11-01T15:23:53.0861196Z Preparing to unpack .../4-libc6_2.31-0ubuntu9.9_i386.deb ...
+2022-11-01T15:23:53.2571404Z Unpacking libc6:i386 (2.31-0ubuntu9.9) ...
+2022-11-01T15:23:53.7102365Z Replacing files in old package libc6-i386 (2.31-0ubuntu9.9) ...
+2022-11-01T15:23:53.8128077Z Selecting previously unselected package libunistring2:i386.
+2022-11-01T15:23:53.8390204Z Preparing to unpack .../5-libunistring2_0.9.10-2_i386.deb ...
+2022-11-01T15:23:53.8406925Z Unpacking libunistring2:i386 (0.9.10-2) ...
+2022-11-01T15:23:54.3087452Z Selecting previously unselected package libidn2-0:i386.
+2022-11-01T15:23:54.3331996Z Preparing to unpack .../6-libidn2-0_2.2.0-2_i386.deb ...
+2022-11-01T15:23:54.4067995Z Unpacking libidn2-0:i386 (2.2.0-2) ...
+2022-11-01T15:23:55.0668783Z Selecting previously unselected package libssl1.1:i386.
+2022-11-01T15:23:55.0979147Z Preparing to unpack .../7-libssl1.1_1.1.1f-1ubuntu2.16_i386.deb ...
+2022-11-01T15:23:55.1128241Z Unpacking libssl1.1:i386 (1.1.1f-1ubuntu2.16) ...
+2022-11-01T15:23:55.5915523Z Setting up gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-01T15:23:55.6480293Z Setting up libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) ...
+2022-11-01T15:23:55.7536432Z Setting up libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-01T15:23:55.8152741Z Setting up libcrypt1:i386 (1:4.4.10-10ubuntu4) ...
+2022-11-01T15:23:55.9483752Z Setting up libc6:i386 (2.31-0ubuntu9.9) ...
+2022-11-01T15:23:56.2906587Z Setting up libssl1.1:i386 (1.1.1f-1ubuntu2.16) ...
+2022-11-01T15:23:56.4402654Z Setting up libunistring2:i386 (0.9.10-2) ...
+2022-11-01T15:23:56.4473735Z Setting up libidn2-0:i386 (2.2.0-2) ...
+2022-11-01T15:23:56.4556493Z Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
+2022-11-01T15:24:19.5231907Z 2022-11-01 15:24:19 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/92c6bbfc-0d51-48ea-b586-9cd01c071d25?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221101%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221101T152419Z&X-Amz-Expires=300&X-Amz-Signature=096796f299665e0b83404bf48a3be6669d780d8bafabb5a18038d4e1de323277&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [72809008/72809008] -> "/home/runner/.byond/bin/librust_g.so" [1]
+2022-11-01T15:24:19.5331036Z linux-gate.so.1 (0xf7f93000)
+2022-11-01T15:24:19.5332151Z libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xf77c5000)
+2022-11-01T15:24:19.5332758Z libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xf750d000)
+2022-11-01T15:24:19.5335819Z libz.so.1 => /lib32/libz.so.1 (0xf74ef000)
+2022-11-01T15:24:19.5336449Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf74d0000)
+2022-11-01T15:24:19.5337053Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf74ad000)
+2022-11-01T15:24:19.5338254Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf73a8000)
+2022-11-01T15:24:19.5343540Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf73a2000)
+2022-11-01T15:24:19.5344153Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71b3000)
+2022-11-01T15:24:19.5344637Z /lib/ld-linux.so.2 (0xf7f95000)
+2022-11-01T15:24:19.5376954Z ##[group]Run bash tools/ci/install_auxlua.sh
+2022-11-01T15:24:19.5377389Z [36;1mbash tools/ci/install_auxlua.sh[0m
+2022-11-01T15:24:19.5438035Z shell: /usr/bin/bash -e {0}
+2022-11-01T15:24:19.5438277Z ##[endgroup]
+2022-11-01T15:24:20.0520918Z 2022-11-01 15:24:20 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/bb55dc2f-8248-4032-ad66-b80cb61a84f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221101%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221101T152408Z&X-Amz-Expires=300&X-Amz-Signature=f0ea96a2ae5093c3051eb36ca625d0917a1cc9e11ecef63953f9837499a4b7be&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [5781068/5781068] -> "/home/runner/.byond/bin/libauxlua.so" [1]
+2022-11-01T15:24:20.0637194Z linux-gate.so.1 (0xf7ed0000)
+2022-11-01T15:24:20.0638001Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7ac9000)
+2022-11-01T15:24:20.0638990Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7aaa000)
+2022-11-01T15:24:20.0639537Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7a87000)
+2022-11-01T15:24:20.0640086Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7982000)
+2022-11-01T15:24:20.0640535Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf797c000)
+2022-11-01T15:24:20.0641053Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf778d000)
+2022-11-01T15:24:20.0641431Z /lib/ld-linux.so.2 (0xf7ed2000)
+2022-11-01T15:24:20.0687471Z ##[group]Run bash tools/ci/install_byond.sh
+2022-11-01T15:24:20.0691349Z [36;1mbash tools/ci/install_byond.sh[0m
+2022-11-01T15:24:20.0691690Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2022-11-01T15:24:20.0692049Z [36;1mtools/build/build --ci dm -DCIBUILDING -DANSICOLORS[0m
+2022-11-01T15:24:20.0788693Z shell: /usr/bin/bash -e {0}
+2022-11-01T15:24:20.0788944Z ##[endgroup]
+2022-11-01T15:24:20.0904985Z Setting up BYOND.
+2022-11-01T15:24:20.1285049Z % Total % Received % Xferd Average Speed Time Time Time Current
+2022-11-01T15:24:20.1288558Z Dload Upload Total Spent Left Speed
+2022-11-01T15:24:20.1289906Z
+2022-11-01T15:24:20.2648629Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
+2022-11-01T15:24:20.2651476Z 100 4021k 100 4021k 0 0 28.8M 0 --:--:-- --:--:-- --:--:-- 28.8M
+2022-11-01T15:24:20.2868719Z Archive: byond.zip
+2022-11-01T15:24:20.2869523Z creating: byond/
+2022-11-01T15:24:20.2872392Z creating: byond/key/
+2022-11-01T15:24:20.2872809Z creating: byond/web/
+2022-11-01T15:24:20.2873278Z inflating: byond/web/child.dms
+2022-11-01T15:24:20.2873868Z inflating: byond/web/button.dms
+2022-11-01T15:24:20.2874291Z inflating: byond/web/input.dms
+2022-11-01T15:24:20.2874708Z inflating: byond/web/text.dms
+2022-11-01T15:24:20.2990682Z inflating: byond/web/webclient.dart.js
+2022-11-01T15:24:20.2991338Z inflating: byond/web/verbmenu.dms
+2022-11-01T15:24:20.2992247Z inflating: byond/web/defaultSkin.dms
+2022-11-01T15:24:20.2994907Z inflating: byond/web/hotbar.dms
+2022-11-01T15:24:20.2995370Z inflating: byond/web/label.dms
+2022-11-01T15:24:20.2997432Z inflating: byond/web/alert.dms
+2022-11-01T15:24:20.3045767Z inflating: byond/web/message.dms
+2022-11-01T15:24:20.3046084Z inflating: byond/web/drag.png
+2022-11-01T15:24:20.3046357Z inflating: byond/web/map.dms
+2022-11-01T15:24:20.3046639Z inflating: byond/web/splashlogo.png
+2022-11-01T15:24:20.3046920Z inflating: byond/web/drop.png
+2022-11-01T15:24:20.3109752Z inflating: byond/web/ext.js
+2022-11-01T15:24:20.3110039Z inflating: byond/web/file.dms
+2022-11-01T15:24:20.3110743Z inflating: byond/web/grid.dms
+2022-11-01T15:24:20.3112568Z inflating: byond/web/bar.dms
+2022-11-01T15:24:20.3116279Z inflating: byond/web/dpad.dms
+2022-11-01T15:24:20.3117768Z inflating: byond/web/output.dms
+2022-11-01T15:24:20.3118380Z inflating: byond/web/tab.dms
+2022-11-01T15:24:20.3121184Z inflating: byond/web/info.dms
+2022-11-01T15:24:20.3125342Z inflating: byond/web/color.dms
+2022-11-01T15:24:20.3127736Z inflating: byond/web/gamepad.dms
+2022-11-01T15:24:20.3129918Z inflating: byond/web/browser.dms
+2022-11-01T15:24:20.3130867Z inflating: byond/web/status.dms
+2022-11-01T15:24:20.3131904Z inflating: byond/web/any.dms
+2022-11-01T15:24:20.3133198Z inflating: byond/web/pane.dms
+2022-11-01T15:24:20.3134980Z inflating: byond/web/pop.dms
+2022-11-01T15:24:20.3136094Z inflating: byond/license.txt
+2022-11-01T15:24:20.3136925Z inflating: byond/legal.txt
+2022-11-01T15:24:20.3138018Z inflating: byond/Makefile
+2022-11-01T15:24:20.3138748Z creating: byond/man/
+2022-11-01T15:24:20.3140374Z creating: byond/man/man6/
+2022-11-01T15:24:20.3140865Z inflating: byond/man/man6/DreamDaemon.6
+2022-11-01T15:24:20.3142127Z inflating: byond/man/man6/DreamMaker.6
+2022-11-01T15:24:20.3149532Z creating: byond/lib/
+2022-11-01T15:24:20.3149763Z creating: byond/host/
+2022-11-01T15:24:20.3150009Z inflating: byond/host/readme.html
+2022-11-01T15:24:20.3150561Z inflating: byond/host/readme-unix.txt
+2022-11-01T15:24:20.3150816Z creating: byond/host/home/
+2022-11-01T15:24:20.3151052Z creating: byond/host/home/root/
+2022-11-01T15:24:20.3151304Z creating: byond/host/home/root/byond/
+2022-11-01T15:24:20.3151781Z creating: byond/host/home/root/byond/tools/
+2022-11-01T15:24:20.3152089Z creating: byond/host/home/root/byond/tools/root/
+2022-11-01T15:24:20.3153050Z inflating: byond/host/home/root/byond/tools/root/root.dmb
+2022-11-01T15:24:20.3154330Z creating: byond/host/shared/
+2022-11-01T15:24:20.3155440Z creating: byond/host/shared/byond/
+2022-11-01T15:24:20.3156763Z creating: byond/host/shared/byond/tools/
+2022-11-01T15:24:20.3157942Z creating: byond/host/shared/byond/tools/ftp/
+2022-11-01T15:24:20.3159544Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb
+2022-11-01T15:24:20.3159981Z creating: byond/host/shared/byond/tools/admin/
+2022-11-01T15:24:20.3172339Z inflating: byond/host/shared/byond/tools/admin/admin.dmb
+2022-11-01T15:24:20.3172798Z creating: byond/host/shared-web/
+2022-11-01T15:24:20.3173421Z creating: byond/host/shared-web/web/
+2022-11-01T15:24:20.3173784Z creating: byond/host/shared-web/web/tools/
+2022-11-01T15:24:20.3174165Z creating: byond/host/shared-web/web/tools/admin/
+2022-11-01T15:24:20.3176681Z inflating: byond/host/shared-web/web/tools/admin/index.dmb
+2022-11-01T15:24:20.3186829Z inflating: byond/host/host.dmb
+2022-11-01T15:24:20.3187123Z inflating: byond/host/host.start
+2022-11-01T15:24:20.3188445Z inflating: byond/host/hostconf.orig
+2022-11-01T15:24:20.3189903Z inflating: byond/host/hostconf.txt
+2022-11-01T15:24:20.3191949Z inflating: byond/readme.txt
+2022-11-01T15:24:20.3192209Z creating: byond/bin/
+2022-11-01T15:24:20.3193769Z inflating: byond/bin/byondexec
+2022-11-01T15:24:20.3195439Z inflating: byond/bin/DreamDownload
+2022-11-01T15:24:20.3908232Z inflating: byond/bin/libbyond.so
+2022-11-01T15:24:20.4069319Z inflating: byond/bin/libext.so
+2022-11-01T15:24:20.4073220Z inflating: byond/bin/DreamDaemon
+2022-11-01T15:24:20.4080176Z inflating: byond/bin/DreamMaker
+2022-11-01T15:24:20.4080431Z creating: byond/cfg/
+2022-11-01T15:24:20.4080676Z inflating: byond/cfg/release.txt
+2022-11-01T15:24:20.4266638Z ***************************
+2022-11-01T15:24:20.4273089Z Now run the following command:
+2022-11-01T15:24:20.4285743Z
+2022-11-01T15:24:20.4296269Z source /home/runner/BYOND/byond/bin/byondsetup
+2022-11-01T15:24:20.4307061Z
+2022-11-01T15:24:20.4314771Z If it generates errors, your shell is not compatible with 'sh', so you will
+2022-11-01T15:24:20.4321421Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon.
+2022-11-01T15:24:20.4332109Z
+2022-11-01T15:24:20.4340024Z IMPORTANT: once you have the script working, you must add the above line
+2022-11-01T15:24:20.4346843Z to your startup script. The name of your startup script depends on the
+2022-11-01T15:24:20.4352983Z shell you use. Typical ones are .profile or .bash_profile.
+2022-11-01T15:24:20.4363091Z
+2022-11-01T15:24:20.4371649Z Once everything is working, you can find out more about the software
+2022-11-01T15:24:20.4381742Z by doing 'man DreamDaemon'. A host server has also been included
+2022-11-01T15:24:20.4389897Z so edit host/hostconf.txt and boot up your world server!
+2022-11-01T15:24:20.4400150Z ***************************
+2022-11-01T15:24:21.3481300Z Using system-wide Node v16.18.0
+2022-11-01T15:24:22.7088337Z :: Juke Build version 0.8.1
+2022-11-01T15:24:23.2208661Z => Starting 'dm'
+2022-11-01T15:24:23.2218632Z :: Using defines: CBT, CIBUILDING, ANSICOLORS
+2022-11-01T15:24:23.6167555Z DM compiler version 514.1588
+2022-11-01T15:24:23.6168274Z loading tgstation.m.dme
+2022-11-01T15:24:34.0461685Z loading interface/skin.dmf
+2022-11-01T15:25:38.2374769Z loading map_files/generic/CentCom.dmm
+2022-11-01T15:25:39.2778196Z saving tgstation.m.dmb (DEBUG mode)
+2022-11-01T15:25:40.4869514Z tgstation.m.dmb - 0 errors, 0 warnings (11/1/22 3:25 pm)
+2022-11-01T15:25:40.4869848Z Total time: 1:17
+2022-11-01T15:25:41.7065548Z => Finished 'dm' in 78.486s
+2022-11-01T15:25:41.7070924Z => Done in 78.995s
+2022-11-01T15:25:41.7168392Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup
+2022-11-01T15:25:41.7168778Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2022-11-01T15:25:41.7169083Z [36;1mbash tools/ci/run_server.sh tramstation[0m
+2022-11-01T15:25:41.7233910Z shell: /usr/bin/bash -e {0}
+2022-11-01T15:25:41.7234485Z ##[endgroup]
+2022-11-01T15:25:41.7349856Z Testing tramstation
+2022-11-01T15:25:42.0259046Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory
+2022-11-01T15:25:42.0443276Z Tue Nov 1 15:25:42 2022
+2022-11-01T15:25:42.0444066Z World opened on network port 53835.
+2022-11-01T15:25:42.0446892Z Welcome BYOND! (5.0 Public Version 514.1588)
+2022-11-01T15:26:04.0921674Z 865 global variables
+2022-11-01T15:26:04.9224562Z World loaded at 15:26:04!
+2022-11-01T15:26:04.9749013Z Running /tg/ revision:
+2022-11-01T15:26:04.9749563Z No commit information
+2022-11-01T15:26:04.9837092Z Loading config file config.txt...
+2022-11-01T15:26:04.9841145Z Loading config file maps.txt...
+2022-11-01T15:26:04.9868634Z Unable to locate admins backup file.
+2022-11-01T15:26:06.0048294Z Initialized Title Screen subsystem within 0 seconds!
+2022-11-01T15:26:06.0049007Z Initialized Server Tasks subsystem within 0 seconds!
+2022-11-01T15:26:06.0049497Z Initialized Input subsystem within 0 seconds!
+2022-11-01T15:26:06.0125643Z Initialized Profiler subsystem within 0 seconds!
+2022-11-01T15:26:06.0126234Z Initialized Database subsystem within 0 seconds!
+2022-11-01T15:26:06.0126723Z Initialized Blackbox subsystem within 0 seconds!
+2022-11-01T15:26:06.0129042Z Initialized Sounds subsystem within 0 seconds!
+2022-11-01T15:26:06.0301324Z Initialized Instruments subsystem within 0.02 seconds!
+2022-11-01T15:26:06.4428754Z Initialized Greyscale subsystem within 0.41 seconds!
+2022-11-01T15:26:06.4429170Z Initialized Vis contents overlays subsystem within 0 seconds!
+2022-11-01T15:26:06.4429549Z Initialized Security Level subsystem within 0 seconds!
+2022-11-01T15:26:06.4465567Z Initialized Station subsystem within 0 seconds!
+2022-11-01T15:26:06.4465936Z Initialized Quirks subsystem within 0 seconds!
+2022-11-01T15:26:06.4599231Z Initialized Reagents subsystem within 0.01 seconds!
+2022-11-01T15:26:06.4603336Z Initialized Events subsystem within 0 seconds!
+2022-11-01T15:26:06.4668892Z Initialized IDs and Access subsystem within 0.01 seconds!
+2022-11-01T15:26:06.4669458Z Initialized Jobs subsystem within 0 seconds!
+2022-11-01T15:26:06.4670198Z Initialized AI movement subsystem within 0 seconds!
+2022-11-01T15:26:06.4693524Z Initialized Ticker subsystem within 0 seconds!
+2022-11-01T15:26:06.4698134Z Initialized AI Controller Ticker subsystem within 0 seconds!
+2022-11-01T15:26:06.4699769Z Initialized AI Behavior Ticker subsystem within 0 seconds!
+2022-11-01T15:26:06.4864335Z Initialized Trading Card Game subsystem within 0.02 seconds!
+2022-11-01T15:26:06.4867314Z Loading Tramstation...
+2022-11-01T15:26:09.0639832Z Loaded Station in 2.6s!
+2022-11-01T15:26:11.3030341Z Loaded Lavaland in 2.1s!
+2022-11-01T15:26:12.3779637Z Ruin loader finished with 0 left to spend.
+2022-11-01T15:26:12.4524433Z Ruin loader finished with 0 left to spend.
+2022-11-01T15:26:12.8605850Z Cave Generator finished in 0.4s!
+2022-11-01T15:26:12.9076303Z Cave Generator finished in 0.1s!
+2022-11-01T15:26:13.9109655Z Initialized Mapping subsystem within 7.42 seconds!
+2022-11-01T15:26:39.1717128Z The BYOND hub reports that port 53835 is not reachable.
+2022-11-01T15:26:42.3867216Z Initialized Early Assets subsystem within 28.47 seconds!
+2022-11-01T15:26:42.4328496Z Initialized Research subsystem within 0.05 seconds!
+2022-11-01T15:26:42.4331134Z Initialized Time Tracking subsystem within 0 seconds!
+2022-11-01T15:26:42.4436988Z Initialized Networks subsystem within 0.01 seconds!
+2022-11-01T15:26:42.4726624Z Initialized Spatial Grid subsystem within 0.03 seconds!
+2022-11-01T15:26:42.4728372Z Initialized Economy subsystem within 0 seconds!
+2022-11-01T15:26:42.4728944Z Initialized Restaurant subsystem within 0 seconds!
+2022-11-01T15:27:25.2172855Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only!
+2022-11-01T15:27:25.7106020Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only!
+2022-11-01T15:27:32.9578334Z Initialized Atoms subsystem within 50.48 seconds!
+2022-11-01T15:27:32.9805933Z Initialized Language subsystem within 0.01 seconds!
+2022-11-01T15:27:33.0740878Z Initialized Machines subsystem within 0.09 seconds!
+2022-11-01T15:27:33.0747270Z Initialized Skills subsystem within 0 seconds!
+2022-11-01T15:27:33.0750239Z Initialized Addiction subsystem within 0 seconds!
+2022-11-01T15:27:33.0763134Z Initialized Blackmarket subsystem within 0 seconds!
+2022-11-01T15:27:33.0772232Z Initialized Disease subsystem within 0 seconds!
+2022-11-01T15:27:33.0772589Z Initialized Fluid subsystem within 0 seconds!
+2022-11-01T15:27:33.0772923Z Initialized Smoke subsystem within 0 seconds!
+2022-11-01T15:27:33.0773294Z Initialized Foam subsystem within 0 seconds!
+2022-11-01T15:27:33.0773619Z Initialized Lag Switch subsystem within 0 seconds!
+2022-11-01T15:27:33.1054121Z Initialized Library Loading subsystem within 0.03 seconds!
+2022-11-01T15:27:33.4024857Z Initialized Lua Scripting subsystem within 0.3 seconds!
+2022-11-01T15:27:33.4027535Z Initialized Night Shift subsystem within 0 seconds!
+2022-11-01T15:27:33.4029596Z Initialized Sun subsystem within 0 seconds!
+2022-11-01T15:27:33.4063599Z Initialized Traitor subsystem within 0 seconds!
+2022-11-01T15:27:33.4335232Z Initialized Wardrobe subsystem within 0.03 seconds!
+2022-11-01T15:27:33.4336023Z Initialized Weather subsystem within 0 seconds!
+2022-11-01T15:27:33.4338457Z Initialized Wiremod Composite Templates subsystem within 0 seconds!
+2022-11-01T15:27:39.6841918Z Initialized Atmospherics subsystem within 6.25 seconds!
+2022-11-01T15:27:39.6858388Z Initialized Persistence subsystem within 0 seconds!
+2022-11-01T15:27:39.6861179Z Initialized Persistent Paintings subsystem within 0 seconds!
+2022-11-01T15:27:39.6864229Z Initialized Vote subsystem within 0 seconds!
+2022-11-01T15:27:53.6977895Z Initialized Assets subsystem within 14.01 seconds!
+2022-11-01T15:27:56.4493673Z Initialized Icon Smoothing subsystem within 2.75 seconds!
+2022-11-01T15:27:56.4505231Z Initialized XKeyScore subsystem within 0 seconds!
+2022-11-01T15:27:56.4524307Z Initialized PRISM subsystem within 0 seconds!
+2022-11-01T15:28:04.6339924Z Initialized Lighting subsystem within 8.18 seconds!
+2022-11-01T15:28:07.7698313Z Initialized Shuttle subsystem within 3.14 seconds!
+2022-11-01T15:28:07.7749093Z Initialized Pathfinder subsystem within 0 seconds!
+2022-11-01T15:28:07.7749434Z Initialized Ban Cache subsystem within 0 seconds!
+2022-11-01T15:28:07.7749744Z Initialized Init Profiler subsystem within 0 seconds!
+2022-11-01T15:28:07.7750061Z Initialized Chat subsystem within 0 seconds!
+2022-11-01T15:28:07.7750369Z Initializations complete within 121.7 seconds!
+2022-11-01T15:28:07.7824332Z Game start took 0s
+2022-11-01T15:28:18.9688166Z ##[group]/datum/unit_test/log_mapping
+2022-11-01T15:28:18.9688840Z
+2022-11-01T15:28:18.9691942Z [1;32mPASS[0m /datum/unit_test/log_mapping 0s
+2022-11-01T15:28:18.9692629Z ##[endgroup]
+2022-11-01T15:28:19.0858950Z ##[group]/datum/unit_test/ablative_hood_hud
+2022-11-01T15:28:19.1163124Z
+2022-11-01T15:28:19.1164826Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud 0.1s
+2022-11-01T15:28:19.1165814Z ##[endgroup]
+2022-11-01T15:28:19.1391399Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet
+2022-11-01T15:28:19.1679738Z
+2022-11-01T15:28:19.1680798Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud_with_helmet 0s
+2022-11-01T15:28:19.1684214Z ##[endgroup]
+2022-11-01T15:28:19.1915312Z ##[group]/datum/unit_test/achievements
+2022-11-01T15:28:19.2020908Z
+2022-11-01T15:28:19.2021795Z [1;32mPASS[0m /datum/unit_test/achievements 0.1s
+2022-11-01T15:28:19.2022783Z ##[endgroup]
+2022-11-01T15:28:19.2454845Z ##[group]/datum/unit_test/anchored_mobs
+2022-11-01T15:28:19.2456383Z
+2022-11-01T15:28:19.2457685Z [1;32mPASS[0m /datum/unit_test/anchored_mobs 0s
+2022-11-01T15:28:19.2458601Z ##[endgroup]
+2022-11-01T15:28:19.2632595Z ##[group]/datum/unit_test/anonymous_themes
+2022-11-01T15:28:19.4123645Z
+2022-11-01T15:28:19.4125365Z [1;32mPASS[0m /datum/unit_test/anonymous_themes 0.2s
+2022-11-01T15:28:19.4128592Z ##[endgroup]
+2022-11-01T15:28:19.6372545Z ##[group]/datum/unit_test/autowiki
+2022-11-01T15:28:21.1559221Z
+2022-11-01T15:28:21.1560055Z [1;32mPASS[0m /datum/unit_test/autowiki 1.5s
+2022-11-01T15:28:21.1560742Z ##[endgroup]
+2022-11-01T15:28:22.6418059Z ##[group]/datum/unit_test/autowiki_include_template
+2022-11-01T15:28:22.6418298Z
+2022-11-01T15:28:22.6419112Z [1;32mPASS[0m /datum/unit_test/autowiki_include_template 0s
+2022-11-01T15:28:22.6419629Z ##[endgroup]
+2022-11-01T15:28:22.6592281Z ##[group]/datum/unit_test/barsigns_icon
+2022-11-01T15:28:22.6850472Z
+2022-11-01T15:28:22.6851042Z [1;32mPASS[0m /datum/unit_test/barsigns_icon 0s
+2022-11-01T15:28:22.6851783Z ##[endgroup]
+2022-11-01T15:28:22.7025607Z ##[group]/datum/unit_test/barsigns_name
+2022-11-01T15:28:22.7025827Z
+2022-11-01T15:28:22.7026411Z [1;32mPASS[0m /datum/unit_test/barsigns_name 0s
+2022-11-01T15:28:22.7026869Z ##[endgroup]
+2022-11-01T15:28:22.7196300Z ##[group]/datum/unit_test/bespoke_id
+2022-11-01T15:28:22.7196495Z
+2022-11-01T15:28:22.7196933Z [1;32mPASS[0m /datum/unit_test/bespoke_id 0s
+2022-11-01T15:28:22.7197373Z ##[endgroup]
+2022-11-01T15:28:22.7528217Z ##[group]/datum/unit_test/binary_insert
+2022-11-01T15:28:22.7528455Z
+2022-11-01T15:28:22.7528943Z [1;32mPASS[0m /datum/unit_test/binary_insert 0s
+2022-11-01T15:28:22.7529444Z ##[endgroup]
+2022-11-01T15:28:22.7720960Z ##[group]/datum/unit_test/bloody_footprints
+2022-11-01T15:28:22.8157307Z
+2022-11-01T15:28:22.8158188Z [1;32mPASS[0m /datum/unit_test/bloody_footprints 0.1s
+2022-11-01T15:28:22.8158909Z ##[endgroup]
+2022-11-01T15:28:22.9653160Z ##[group]/datum/unit_test/breath_sanity
+2022-11-01T15:28:23.0154449Z
+2022-11-01T15:28:23.0155311Z [1;32mPASS[0m /datum/unit_test/breath_sanity 0.1s
+2022-11-01T15:28:23.0155975Z ##[endgroup]
+2022-11-01T15:28:23.0421572Z ##[group]/datum/unit_test/breath_sanity_plasmamen
+2022-11-01T15:28:23.0966156Z
+2022-11-01T15:28:23.0966990Z [1;32mPASS[0m /datum/unit_test/breath_sanity_plasmamen 0s
+2022-11-01T15:28:23.0967848Z ##[endgroup]
+2022-11-01T15:28:23.1238973Z ##[group]/datum/unit_test/breath_sanity_ashwalker
+2022-11-01T15:28:23.1864867Z
+2022-11-01T15:28:23.1865526Z [1;32mPASS[0m /datum/unit_test/breath_sanity_ashwalker 0s
+2022-11-01T15:28:23.1866107Z ##[endgroup]
+2022-11-01T15:28:23.2143094Z ##[group]/datum/unit_test/cable_powernets
+2022-11-01T15:28:23.2143293Z
+2022-11-01T15:28:23.2143753Z [1;32mPASS[0m /datum/unit_test/cable_powernets 0s
+2022-11-01T15:28:23.2144353Z ##[endgroup]
+2022-11-01T15:28:23.2296359Z ##[group]/datum/unit_test/card_mismatch
+2022-11-01T15:28:23.2339244Z
+2022-11-01T15:28:23.2339785Z [1;32mPASS[0m /datum/unit_test/card_mismatch 0s
+2022-11-01T15:28:23.2340711Z ##[endgroup]
+2022-11-01T15:28:23.3389441Z ##[group]/datum/unit_test/chain_pull_through_space
+2022-11-01T15:28:23.3417372Z
+2022-11-01T15:28:23.3428322Z [1;32mPASS[0m /datum/unit_test/chain_pull_through_space 0s
+2022-11-01T15:28:23.3429414Z ##[endgroup]
+2022-11-01T15:28:23.4797614Z ##[group]/datum/unit_test/chat_filter_sanity
+2022-11-01T15:28:23.4802389Z
+2022-11-01T15:28:23.4803303Z [1;32mPASS[0m /datum/unit_test/chat_filter_sanity 0s
+2022-11-01T15:28:23.4803804Z ##[endgroup]
+2022-11-01T15:28:23.4985708Z ##[group]/datum/unit_test/circuit_component_category
+2022-11-01T15:28:23.4985973Z
+2022-11-01T15:28:23.4986498Z [1;32mPASS[0m /datum/unit_test/circuit_component_category 0s
+2022-11-01T15:28:23.4987054Z ##[endgroup]
+2022-11-01T15:28:23.5170927Z ##[group]/datum/unit_test/closets
+2022-11-01T15:28:25.4385541Z
+2022-11-01T15:28:25.4386681Z [1;32mPASS[0m /datum/unit_test/closets 1.9s
+2022-11-01T15:28:25.4387368Z ##[endgroup]
+2022-11-01T15:28:28.6598884Z ##[group]/datum/unit_test/harm_punch
+2022-11-01T15:28:28.7131885Z
+2022-11-01T15:28:28.7132943Z [1;32mPASS[0m /datum/unit_test/harm_punch 0.1s
+2022-11-01T15:28:28.7134837Z ##[endgroup]
+2022-11-01T15:28:28.7421766Z ##[group]/datum/unit_test/harm_melee
+2022-11-01T15:28:28.7933680Z
+2022-11-01T15:28:28.7934808Z [1;32mPASS[0m /datum/unit_test/harm_melee 0s
+2022-11-01T15:28:28.7935540Z ##[endgroup]
+2022-11-01T15:28:28.8380921Z ##[group]/datum/unit_test/harm_different_damage
+2022-11-01T15:28:28.8975633Z
+2022-11-01T15:28:28.8976869Z [1;32mPASS[0m /datum/unit_test/harm_different_damage 0s
+2022-11-01T15:28:28.8977671Z ##[endgroup]
+2022-11-01T15:28:28.9761803Z ##[group]/datum/unit_test/attack_chain
+2022-11-01T15:28:29.0318227Z
+2022-11-01T15:28:29.0319454Z [1;32mPASS[0m /datum/unit_test/attack_chain 0.1s
+2022-11-01T15:28:29.0320200Z ##[endgroup]
+2022-11-01T15:28:29.0662718Z ##[group]/datum/unit_test/disarm
+2022-11-01T15:28:29.1273517Z
+2022-11-01T15:28:29.1275850Z [1;32mPASS[0m /datum/unit_test/disarm 0.1s
+2022-11-01T15:28:29.1276795Z ##[endgroup]
+2022-11-01T15:28:29.1606515Z ##[group]/datum/unit_test/component_duping
+2022-11-01T15:28:29.1606753Z
+2022-11-01T15:28:29.1607266Z [1;32mPASS[0m /datum/unit_test/component_duping 0s
+2022-11-01T15:28:29.1607745Z ##[endgroup]
+2022-11-01T15:28:29.1774627Z ##[group]/datum/unit_test/confusion_symptom
+2022-11-01T15:28:29.2032018Z
+2022-11-01T15:28:29.2033145Z [1;32mPASS[0m /datum/unit_test/confusion_symptom 0.1s
+2022-11-01T15:28:29.2033987Z ##[endgroup]
+2022-11-01T15:28:29.2246157Z ##[group]/datum/unit_test/connect_loc_basic
+2022-11-01T15:28:29.2248367Z
+2022-11-01T15:28:29.2249487Z [1;32mPASS[0m /datum/unit_test/connect_loc_basic 0s
+2022-11-01T15:28:29.2250109Z ##[endgroup]
+2022-11-01T15:28:29.2416396Z ##[group]/datum/unit_test/connect_loc_change_turf
+2022-11-01T15:28:29.2424538Z
+2022-11-01T15:28:29.2425333Z [1;32mPASS[0m /datum/unit_test/connect_loc_change_turf 0s
+2022-11-01T15:28:29.2425972Z ##[endgroup]
+2022-11-01T15:28:29.2592394Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf
+2022-11-01T15:28:29.2599395Z
+2022-11-01T15:28:29.2599862Z [1;32mPASS[0m /datum/unit_test/connect_loc_multiple_on_turf 0s
+2022-11-01T15:28:29.2600716Z ##[endgroup]
+2022-11-01T15:28:29.2917858Z ##[group]/datum/unit_test/crayon_naming
+2022-11-01T15:28:29.2996631Z
+2022-11-01T15:28:29.2997310Z [1;32mPASS[0m /datum/unit_test/crayon_naming 0s
+2022-11-01T15:28:29.2997930Z ##[endgroup]
+2022-11-01T15:28:29.3177352Z ##[group]/datum/unit_test/dcs_get_id_from_arguments
+2022-11-01T15:28:29.3178559Z
+2022-11-01T15:28:29.3182903Z [1;32mPASS[0m /datum/unit_test/dcs_get_id_from_arguments 0s
+2022-11-01T15:28:29.3183682Z ##[endgroup]
+2022-11-01T15:28:29.3371899Z ##[group]/datum/unit_test/designs
+2022-11-01T15:28:29.3438160Z
+2022-11-01T15:28:29.3438713Z [1;32mPASS[0m /datum/unit_test/designs 0s
+2022-11-01T15:28:29.3439280Z ##[endgroup]
+2022-11-01T15:28:29.3630774Z ##[group]/datum/unit_test/dummy_spawn_species
+2022-11-01T15:28:29.7865710Z
+2022-11-01T15:28:29.7866984Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_species 0.4s
+2022-11-01T15:28:29.7868408Z ##[endgroup]
+2022-11-01T15:28:30.2064941Z ##[group]/datum/unit_test/dummy_spawn_outfit
+2022-11-01T15:28:30.2287943Z Job type /datum/job/ai could not be retrieved from SSjob
+2022-11-01T15:28:30.5729399Z
+2022-11-01T15:28:30.5730637Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_outfit 0.3s
+2022-11-01T15:28:30.5731452Z ##[endgroup]
+2022-11-01T15:28:30.8929561Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity
+2022-11-01T15:28:30.8930214Z
+2022-11-01T15:28:30.8933249Z [1;32mPASS[0m /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s
+2022-11-01T15:28:30.8933929Z ##[endgroup]
+2022-11-01T15:28:30.9093619Z ##[group]/datum/unit_test/dynamic_unique_antag_flags
+2022-11-01T15:28:30.9094243Z
+2022-11-01T15:28:30.9097412Z [1;32mPASS[0m /datum/unit_test/dynamic_unique_antag_flags 0s
+2022-11-01T15:28:30.9098086Z ##[endgroup]
+2022-11-01T15:28:30.9259102Z ##[group]/datum/unit_test/egg_glands
+2022-11-01T15:28:30.9738261Z
+2022-11-01T15:28:30.9739529Z [1;32mPASS[0m /datum/unit_test/egg_glands 0s
+2022-11-01T15:28:30.9742814Z ##[endgroup]
+2022-11-01T15:28:30.9910488Z ##[group]/datum/unit_test/emoting
+2022-11-01T15:28:31.0191020Z
+2022-11-01T15:28:31.0192873Z [1;32mPASS[0m /datum/unit_test/emoting 0.1s
+2022-11-01T15:28:31.0196009Z ##[endgroup]
+2022-11-01T15:28:31.0470998Z ##[group]/datum/unit_test/food_edibility_check
+2022-11-01T15:28:32.3907505Z
+2022-11-01T15:28:32.3908587Z [1;32mPASS[0m /datum/unit_test/food_edibility_check 1.3s
+2022-11-01T15:28:32.3909262Z ##[endgroup]
+2022-11-01T15:28:33.7158865Z ##[group]/datum/unit_test/atmospheric_gas_transfer
+2022-11-01T15:28:33.7169071Z
+2022-11-01T15:28:33.7171453Z [1;32mPASS[0m /datum/unit_test/atmospheric_gas_transfer 0s
+2022-11-01T15:28:33.7173553Z ##[endgroup]
+2022-11-01T15:28:33.7346695Z ##[group]/datum/unit_test/get_turf_pixel
+2022-11-01T15:28:33.7367134Z
+2022-11-01T15:28:33.7368982Z [1;32mPASS[0m /datum/unit_test/get_turf_pixel 0s
+2022-11-01T15:28:33.7371248Z ##[endgroup]
+2022-11-01T15:28:33.7556559Z ##[group]/datum/unit_test/greyscale_item_icon_states
+2022-11-01T15:28:33.7624830Z
+2022-11-01T15:28:33.7626511Z [1;32mPASS[0m /datum/unit_test/greyscale_item_icon_states 0s
+2022-11-01T15:28:33.7628685Z ##[endgroup]
+2022-11-01T15:28:33.7811590Z ##[group]/datum/unit_test/greyscale_color_count
+2022-11-01T15:28:33.7978824Z
+2022-11-01T15:28:33.7981042Z [1;32mPASS[0m /datum/unit_test/greyscale_color_count 0s
+2022-11-01T15:28:33.7981873Z ##[endgroup]
+2022-11-01T15:28:33.8551069Z ##[group]/datum/unit_test/hallucination_icons
+2022-11-01T15:28:34.1090174Z
+2022-11-01T15:28:34.1096431Z [1;32mPASS[0m /datum/unit_test/hallucination_icons 0.3s
+2022-11-01T15:28:34.1099789Z ##[endgroup]
+2022-11-01T15:28:34.3281283Z ##[group]/datum/unit_test/heretic_knowledge
+2022-11-01T15:28:34.3305016Z
+2022-11-01T15:28:34.3306029Z [1;32mPASS[0m /datum/unit_test/heretic_knowledge 0s
+2022-11-01T15:28:34.3306904Z ##[endgroup]
+2022-11-01T15:28:34.3483924Z ##[group]/datum/unit_test/heretic_main_paths
+2022-11-01T15:28:34.3484902Z
+2022-11-01T15:28:34.3487952Z [1;32mPASS[0m /datum/unit_test/heretic_main_paths 0s
+2022-11-01T15:28:34.3491126Z ##[endgroup]
+2022-11-01T15:28:34.3668321Z ##[group]/datum/unit_test/heretic_rituals
+2022-11-01T15:28:34.4513883Z
+2022-11-01T15:28:34.4515231Z [1;32mPASS[0m /datum/unit_test/heretic_rituals 0.1s
+2022-11-01T15:28:34.4518615Z ##[endgroup]
+2022-11-01T15:28:34.5255676Z ##[group]/datum/unit_test/hanukkah_2123
+2022-11-01T15:28:34.5256380Z
+2022-11-01T15:28:34.5258696Z [1;32mPASS[0m /datum/unit_test/hanukkah_2123 0s
+2022-11-01T15:28:34.5306060Z ##[endgroup]
+2022-11-01T15:28:34.5435626Z ##[group]/datum/unit_test/ramadan_2165
+2022-11-01T15:28:34.5435839Z
+2022-11-01T15:28:34.5436316Z [1;32mPASS[0m /datum/unit_test/ramadan_2165 0s
+2022-11-01T15:28:34.5436790Z ##[endgroup]
+2022-11-01T15:28:34.5758281Z ##[group]/datum/unit_test/thanksgiving_2020
+2022-11-01T15:28:34.5758510Z
+2022-11-01T15:28:34.5759790Z [1;32mPASS[0m /datum/unit_test/thanksgiving_2020 0s
+2022-11-01T15:28:34.5760323Z ##[endgroup]
+2022-11-01T15:28:34.5922636Z ##[group]/datum/unit_test/mother_3683
+2022-11-01T15:28:34.5923203Z
+2022-11-01T15:28:34.5923668Z [1;32mPASS[0m /datum/unit_test/mother_3683 0s
+2022-11-01T15:28:34.5924152Z ##[endgroup]
+2022-11-01T15:28:34.6258731Z ##[group]/datum/unit_test/hello_2020
+2022-11-01T15:28:34.6258967Z
+2022-11-01T15:28:34.6259461Z [1;32mPASS[0m /datum/unit_test/hello_2020 0s
+2022-11-01T15:28:34.6260389Z ##[endgroup]
+2022-11-01T15:28:34.6425516Z ##[group]/datum/unit_test/new_year_1983
+2022-11-01T15:28:34.6425720Z
+2022-11-01T15:28:34.6426174Z [1;32mPASS[0m /datum/unit_test/new_year_1983 0s
+2022-11-01T15:28:34.6426620Z ##[endgroup]
+2022-11-01T15:28:34.6759224Z ##[group]/datum/unit_test/moth_week_2020
+2022-11-01T15:28:34.6792170Z
+2022-11-01T15:28:34.6792723Z [1;32mPASS[0m /datum/unit_test/moth_week_2020 0s
+2022-11-01T15:28:34.6793240Z ##[endgroup]
+2022-11-01T15:28:34.6958289Z ##[group]/datum/unit_test/human_through_recycler
+2022-11-01T15:28:34.7370291Z
+2022-11-01T15:28:34.7371226Z [1;32mPASS[0m /datum/unit_test/human_through_recycler 0.1s
+2022-11-01T15:28:34.7372112Z ##[endgroup]
+2022-11-01T15:28:34.8623820Z ##[group]/datum/unit_test/hydroponics_extractor_storage
+2022-11-01T15:28:34.8996006Z
+2022-11-01T15:28:34.8996940Z [1;32mPASS[0m /datum/unit_test/hydroponics_extractor_storage 0s
+2022-11-01T15:28:34.8997589Z ##[endgroup]
+2022-11-01T15:28:34.9278188Z ##[group]/datum/unit_test/hydroponics_harvest
+2022-11-01T15:28:35.0009791Z
+2022-11-01T15:28:35.0010716Z [1;32mPASS[0m /datum/unit_test/hydroponics_harvest 0.1s
+2022-11-01T15:28:35.0012013Z ##[endgroup]
+2022-11-01T15:28:35.0747162Z ##[group]/datum/unit_test/hydroponics_self_mutation
+2022-11-01T15:28:35.1406271Z
+2022-11-01T15:28:35.1407332Z [1;32mPASS[0m /datum/unit_test/hydroponics_self_mutation 0.1s
+2022-11-01T15:28:35.1408057Z ##[endgroup]
+2022-11-01T15:28:35.2102485Z ##[group]/datum/unit_test/hydroponics_validate_genes
+2022-11-01T15:28:35.2762621Z
+2022-11-01T15:28:35.2763561Z [1;32mPASS[0m /datum/unit_test/hydroponics_validate_genes 0s
+2022-11-01T15:28:35.2764288Z ##[endgroup]
+2022-11-01T15:28:35.3749912Z ##[group]/datum/unit_test/defined_inhand_icon_states
+2022-11-01T15:28:36.6110328Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values.
+2022-11-01T15:28:36.6111369Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-11-01T15:28:36.6112643Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-11-01T15:28:36.6113827Z /obj/item/clothing/under/suit/sl does not have an inhand_icon_state value - Possible matching sprites for "sl_suit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-01T15:28:36.6114809Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2022-11-01T15:28:36.6115778Z /obj/item/clothing/head/mod does not have an inhand_icon_state value - Possible matching sprites for "helmet" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi'
+2022-11-01T15:28:36.6117382Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2022-11-01T15:28:36.6118311Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2022-11-01T15:28:36.6119323Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-11-01T15:28:36.6120787Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-11-01T15:28:36.6121863Z /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun does not have an inhand_icon_state value - Possible matching sprites for "syringegun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-11-01T15:28:36.6122899Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-11-01T15:28:36.6124088Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-11-01T15:28:36.6125547Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-11-01T15:28:36.6126550Z /obj/item/implant/emp does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-01T15:28:36.6127486Z /obj/item/implant/uplink does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6128467Z /obj/item/implant/uplink/precharged does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6129445Z /obj/item/implant/uplink/starting does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6130403Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-01T15:28:36.6131355Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-11-01T15:28:36.6132532Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-11-01T15:28:36.6133828Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-11-01T15:28:36.6134950Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6135967Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6137013Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6138306Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6139346Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6140663Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6142092Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6143256Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6144724Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6146202Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6147210Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6148208Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-11-01T15:28:36.6149458Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6150700Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6152025Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6153053Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6154086Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6155452Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6156679Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6157638Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6158596Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6159550Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6160683Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-01T15:28:36.6161755Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-01T15:28:36.6162756Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_righthand.dmi'
+2022-11-01T15:28:36.6163727Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-11-01T15:28:36.6164922Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-11-01T15:28:36.6165928Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
+2022-11-01T15:28:36.6166916Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
+2022-11-01T15:28:36.6167902Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2022-11-01T15:28:36.6169082Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-01T15:28:36.6170034Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-01T15:28:36.6171029Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-01T15:28:36.6172150Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6173251Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6174826Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-11-01T15:28:36.6175832Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-11-01T15:28:36.6176836Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-11-01T15:28:36.6178144Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2022-11-01T15:28:36.6179305Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-01T15:28:36.6180738Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6181781Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6182846Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6184070Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6185254Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6186373Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6187326Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6188731Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6190038Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6191075Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-11-01T15:28:36.6192277Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-11-01T15:28:36.6193619Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-11-01T15:28:36.6194578Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6195584Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-11-01T15:28:36.6196678Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-11-01T15:28:36.6198710Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-01T15:28:36.6199875Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-01T15:28:36.6202418Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-01T15:28:36.6203520Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-01T15:28:36.6204533Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-01T15:28:36.6205666Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6206576Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6207473Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6208487Z /obj/item/trash/can/food does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-01T15:28:36.6209479Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-01T15:28:36.6210481Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-01T15:28:36.6211474Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-11-01T15:28:36.6212716Z /obj/item/ammo_casing/magic/hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-11-01T15:28:36.6213695Z /obj/item/ammo_casing/magic/hook/bounty does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-11-01T15:28:36.6214670Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi'
+2022-11-01T15:28:36.6215804Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6216917Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6217923Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_righthand.dmi' & 'icons/mob/inhands/weapons/plants_lefthand.dmi'
+2022-11-01T15:28:36.6219079Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_righthand.dmi' & 'icons/mob/inhands/equipment/palette_lefthand.dmi'
+2022-11-01T15:28:36.6220238Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-01T15:28:36.6221390Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6222338Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-11-01T15:28:36.6223438Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-01T15:28:36.6224409Z /obj/item/guardiancreator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6225422Z /obj/item/guardiancreator/tech/choose does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6226453Z /obj/item/guardiancreator/tech/choose/traitor does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6227485Z /obj/item/guardiancreator/tech/choose/dextrous does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6228666Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_lefthand.dmi' & 'icons/mob/inhands/clothing/masks_righthand.dmi'
+2022-11-01T15:28:36.6229814Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2022-11-01T15:28:36.6230969Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2022-11-01T15:28:36.6232420Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_righthand.dmi'
+2022-11-01T15:28:36.6234473Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-01T15:28:36.6235798Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2022-11-01T15:28:36.6236873Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi'
+2022-11-01T15:28:36.6237940Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi'
+2022-11-01T15:28:36.6239527Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-01T15:28:36.6240615Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-11-01T15:28:36.6241586Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6242563Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-01T15:28:36.6243567Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-01T15:28:36.6243984Z
+2022-11-01T15:28:36.6244251Z [1;32mPASS[0m /datum/unit_test/defined_inhand_icon_states 1.3s
+2022-11-01T15:28:36.6245107Z ##[endgroup]
+2022-11-01T15:28:38.3781123Z ##[group]/datum/unit_test/keybinding_init
+2022-11-01T15:28:38.3781642Z
+2022-11-01T15:28:38.3782256Z [1;32mPASS[0m /datum/unit_test/keybinding_init 0s
+2022-11-01T15:28:38.3782848Z ##[endgroup]
+2022-11-01T15:28:38.3952800Z ##[group]/datum/unit_test/knockoff_component
+2022-11-01T15:28:38.4583090Z
+2022-11-01T15:28:38.4584605Z [1;32mPASS[0m /datum/unit_test/knockoff_component 0.1s
+2022-11-01T15:28:38.4585463Z ##[endgroup]
+2022-11-01T15:28:38.5388034Z ##[group]/datum/unit_test/limbsanity
+2022-11-01T15:28:38.6201426Z
+2022-11-01T15:28:38.6202784Z [1;32mPASS[0m /datum/unit_test/limbsanity 0.1s
+2022-11-01T15:28:38.6203543Z ##[endgroup]
+2022-11-01T15:28:38.6375016Z ##[group]/datum/unit_test/load_map_security
+2022-11-01T15:28:38.6378905Z map directory not in whitelist: data/load_map_security_temp for map runtimestation
+2022-11-01T15:28:38.6380282Z
+2022-11-01T15:28:38.6381773Z [1;32mPASS[0m /datum/unit_test/load_map_security 0s
+2022-11-01T15:28:38.6382439Z ##[endgroup]
+2022-11-01T15:28:38.6552883Z ##[group]/datum/unit_test/machine_disassembly
+2022-11-01T15:28:38.6594171Z
+2022-11-01T15:28:38.6595097Z [1;32mPASS[0m /datum/unit_test/machine_disassembly 0s
+2022-11-01T15:28:38.6595719Z ##[endgroup]
+2022-11-01T15:28:38.6872178Z ##[group]/datum/unit_test/mecha_damage
+2022-11-01T15:28:38.7397615Z
+2022-11-01T15:28:38.7398654Z [1;32mPASS[0m /datum/unit_test/mecha_damage 0.1s
+2022-11-01T15:28:38.7399283Z ##[endgroup]
+2022-11-01T15:28:38.7754903Z ##[group]/datum/unit_test/test_human_base
+2022-11-01T15:28:38.8529341Z
+2022-11-01T15:28:38.8530478Z [1;32mPASS[0m /datum/unit_test/test_human_base 0.1s
+2022-11-01T15:28:38.8531256Z ##[endgroup]
+2022-11-01T15:28:38.9752946Z ##[group]/datum/unit_test/test_human_bone
+2022-11-01T15:28:39.0547873Z
+2022-11-01T15:28:39.0550271Z [1;32mPASS[0m /datum/unit_test/test_human_bone 0.1s
+2022-11-01T15:28:39.0551284Z ##[endgroup]
+2022-11-01T15:28:39.1298729Z ##[group]/datum/unit_test/merge_type
+2022-11-01T15:28:39.1300463Z
+2022-11-01T15:28:39.1301413Z [1;32mPASS[0m /datum/unit_test/merge_type 0s
+2022-11-01T15:28:39.1302403Z ##[endgroup]
+2022-11-01T15:28:39.1477365Z ##[group]/datum/unit_test/metabolization
+2022-11-01T15:28:39.3901954Z
+2022-11-01T15:28:39.3903433Z [1;32mPASS[0m /datum/unit_test/metabolization 0.2s
+2022-11-01T15:28:39.3906497Z ##[endgroup]
+2022-11-01T15:28:39.7294447Z ##[group]/datum/unit_test/on_mob_end_metabolize
+2022-11-01T15:28:39.7598821Z
+2022-11-01T15:28:39.7600420Z [1;32mPASS[0m /datum/unit_test/on_mob_end_metabolize 0s
+2022-11-01T15:28:39.7649553Z ##[endgroup]
+2022-11-01T15:28:39.7835943Z ##[group]/datum/unit_test/addictions
+2022-11-01T15:28:39.8761920Z
+2022-11-01T15:28:39.8763025Z [1;32mPASS[0m /datum/unit_test/addictions 0.1s
+2022-11-01T15:28:39.8764090Z ##[endgroup]
+2022-11-01T15:28:39.9657360Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer
+2022-11-01T15:28:39.9971522Z
+2022-11-01T15:28:39.9972744Z [1;32mPASS[0m /datum/unit_test/actions_moved_on_mind_transfer 0s
+2022-11-01T15:28:39.9974074Z ##[endgroup]
+2022-11-01T15:28:40.0547546Z ##[group]/datum/unit_test/mob_faction
+2022-11-01T15:28:44.4337194Z
+2022-11-01T15:28:44.4338995Z [1;32mPASS[0m /datum/unit_test/mob_faction 4.4s
+2022-11-01T15:28:44.4343946Z ##[endgroup]
+2022-11-01T15:28:50.4570438Z ##[group]/datum/unit_test/mob_spawn
+2022-11-01T15:28:50.4788560Z
+2022-11-01T15:28:50.4789841Z [1;32mPASS[0m /datum/unit_test/mob_spawn 0s
+2022-11-01T15:28:50.4791361Z ##[endgroup]
+2022-11-01T15:28:50.6427929Z ##[group]/datum/unit_test/modsuit_checks
+2022-11-01T15:28:50.8774698Z
+2022-11-01T15:28:50.8776366Z [1;32mPASS[0m /datum/unit_test/modsuit_checks 0.2s
+2022-11-01T15:28:50.8777936Z ##[endgroup]
+2022-11-01T15:28:51.1124046Z ##[group]/datum/unit_test/modular_map_loader
+2022-11-01T15:28:51.1141260Z
+2022-11-01T15:28:51.1142098Z [1;32mPASS[0m /datum/unit_test/modular_map_loader 0s
+2022-11-01T15:28:51.1142848Z ##[endgroup]
+2022-11-01T15:28:51.1326741Z ##[group]/datum/unit_test/mouse_bite_cable
+2022-11-01T15:28:51.1380480Z
+2022-11-01T15:28:51.1381073Z [1;32mPASS[0m /datum/unit_test/mouse_bite_cable 0s
+2022-11-01T15:28:51.1381752Z ##[endgroup]
+2022-11-01T15:28:51.1577018Z ##[group]/datum/unit_test/novaflower_burn
+2022-11-01T15:28:51.2169264Z
+2022-11-01T15:28:51.2170162Z [1;32mPASS[0m /datum/unit_test/novaflower_burn 0.1s
+2022-11-01T15:28:51.2170901Z ##[endgroup]
+2022-11-01T15:28:51.2996852Z ##[group]/datum/unit_test/ntnetwork
+2022-11-01T15:28:51.3019053Z
+2022-11-01T15:28:51.3019857Z [1;32mPASS[0m /datum/unit_test/ntnetwork 0.1s
+2022-11-01T15:28:51.3020531Z ##[endgroup]
+2022-11-01T15:28:51.3196087Z ##[group]/datum/unit_test/nuke_cinematic
+2022-11-01T15:28:56.0755977Z
+2022-11-01T15:28:56.0763029Z [1;32mPASS[0m /datum/unit_test/nuke_cinematic 4.7s
+2022-11-01T15:28:56.0764783Z ##[endgroup]
+2022-11-01T15:28:56.3446321Z ##[group]/datum/unit_test/objectives_category
+2022-11-01T15:28:56.3446835Z
+2022-11-01T15:28:56.3447470Z [1;32mPASS[0m /datum/unit_test/objectives_category 0s
+2022-11-01T15:28:56.3448136Z ##[endgroup]
+2022-11-01T15:28:56.3614737Z ##[group]/datum/unit_test/operating_table
+2022-11-01T15:28:56.4176620Z
+2022-11-01T15:28:56.4177598Z [1;32mPASS[0m /datum/unit_test/operating_table 0.1s
+2022-11-01T15:28:56.4178689Z ##[endgroup]
+2022-11-01T15:28:56.4981266Z ##[group]/datum/unit_test/outfit_sanity
+2022-11-01T15:29:06.6657414Z
+2022-11-01T15:29:06.6658439Z [1;32mPASS[0m /datum/unit_test/outfit_sanity 10.2s
+2022-11-01T15:29:06.6659196Z ##[endgroup]
+2022-11-01T15:29:16.7908070Z ##[group]/datum/unit_test/paintings
+2022-11-01T15:29:16.8212273Z
+2022-11-01T15:29:16.8213346Z [1;32mPASS[0m /datum/unit_test/paintings 0.1s
+2022-11-01T15:29:16.8214069Z ##[endgroup]
+2022-11-01T15:29:16.8389425Z ##[group]/datum/unit_test/pills
+2022-11-01T15:29:16.8676028Z
+2022-11-01T15:29:16.8677434Z [1;32mPASS[0m /datum/unit_test/pills 0s
+2022-11-01T15:29:16.8678165Z ##[endgroup]
+2022-11-01T15:29:16.9417567Z ##[group]/datum/unit_test/plane_double_transform
+2022-11-01T15:29:16.9735002Z
+2022-11-01T15:29:16.9735721Z [1;32mPASS[0m /datum/unit_test/plane_double_transform 0s
+2022-11-01T15:29:16.9736359Z ##[endgroup]
+2022-11-01T15:29:17.0062562Z ##[group]/datum/unit_test/plane_dupe_detector
+2022-11-01T15:29:17.0065142Z
+2022-11-01T15:29:17.0067978Z [1;32mPASS[0m /datum/unit_test/plane_dupe_detector 0s
+2022-11-01T15:29:17.0071640Z ##[endgroup]
+2022-11-01T15:29:17.0244509Z ##[group]/datum/unit_test/plantgrowth
+2022-11-01T15:29:17.0776528Z
+2022-11-01T15:29:17.0779718Z [1;32mPASS[0m /datum/unit_test/plantgrowth 0s
+2022-11-01T15:29:17.0781279Z ##[endgroup]
+2022-11-01T15:29:17.0965505Z ##[group]/datum/unit_test/preference_species
+2022-11-01T15:29:17.0966443Z
+2022-11-01T15:29:17.0969864Z [1;32mPASS[0m /datum/unit_test/preference_species 0s
+2022-11-01T15:29:17.0973093Z ##[endgroup]
+2022-11-01T15:29:17.1152354Z ##[group]/datum/unit_test/preferences_implement_everything
+2022-11-01T15:29:23.4577951Z
+2022-11-01T15:29:23.4578850Z [1;32mPASS[0m /datum/unit_test/preferences_implement_everything 6.3s
+2022-11-01T15:29:23.4579521Z ##[endgroup]
+2022-11-01T15:29:29.7830207Z ##[group]/datum/unit_test/preferences_valid_savefile_key
+2022-11-01T15:29:29.7830930Z
+2022-11-01T15:29:29.7833510Z [1;32mPASS[0m /datum/unit_test/preferences_valid_savefile_key 0s
+2022-11-01T15:29:29.7834275Z ##[endgroup]
+2022-11-01T15:29:29.8033816Z ##[group]/datum/unit_test/preferences_valid_main_feature_name
+2022-11-01T15:29:29.8034550Z
+2022-11-01T15:29:29.8035744Z [1;32mPASS[0m /datum/unit_test/preferences_valid_main_feature_name 0s
+2022-11-01T15:29:29.8089387Z ##[endgroup]
+2022-11-01T15:29:29.8234720Z ##[group]/datum/unit_test/projectile_movetypes
+2022-11-01T15:29:29.8234940Z
+2022-11-01T15:29:29.8235533Z [1;32mPASS[0m /datum/unit_test/projectile_movetypes 0s
+2022-11-01T15:29:29.8236221Z ##[endgroup]
+2022-11-01T15:29:29.8415787Z ##[group]/datum/unit_test/gun_go_bang
+2022-11-01T15:29:29.9160628Z
+2022-11-01T15:29:29.9161545Z [1;32mPASS[0m /datum/unit_test/gun_go_bang 0.1s
+2022-11-01T15:29:29.9162229Z ##[endgroup]
+2022-11-01T15:29:30.0035502Z ##[group]/datum/unit_test/quirk_icons
+2022-11-01T15:29:30.0035718Z
+2022-11-01T15:29:30.0036645Z [1;32mPASS[0m /datum/unit_test/quirk_icons 0s
+2022-11-01T15:29:30.0037121Z ##[endgroup]
+2022-11-01T15:29:30.0231538Z ##[group]/datum/unit_test/range_return
+2022-11-01T15:29:30.0231750Z
+2022-11-01T15:29:30.0232212Z [1;32mPASS[0m /datum/unit_test/range_return 0s
+2022-11-01T15:29:30.0232658Z ##[endgroup]
+2022-11-01T15:29:30.0427797Z ##[group]/datum/unit_test/frame_stacking
+2022-11-01T15:29:30.1020458Z
+2022-11-01T15:29:30.1021324Z [1;32mPASS[0m /datum/unit_test/frame_stacking 0.1s
+2022-11-01T15:29:30.1022036Z ##[endgroup]
+2022-11-01T15:29:30.1824738Z ##[group]/datum/unit_test/reagent_id_typos
+2022-11-01T15:29:30.1842378Z
+2022-11-01T15:29:30.1842930Z [1;32mPASS[0m /datum/unit_test/reagent_id_typos 0s
+2022-11-01T15:29:30.1843838Z ##[endgroup]
+2022-11-01T15:29:30.2065945Z ##[group]/datum/unit_test/reagent_mob_expose
+2022-11-01T15:29:30.2431485Z
+2022-11-01T15:29:30.2432396Z [1;32mPASS[0m /datum/unit_test/reagent_mob_expose 0s
+2022-11-01T15:29:30.2433748Z ##[endgroup]
+2022-11-01T15:29:30.2736664Z ##[group]/datum/unit_test/reagent_mob_procs
+2022-11-01T15:29:30.3087817Z
+2022-11-01T15:29:30.3088677Z [1;32mPASS[0m /datum/unit_test/reagent_mob_procs 0.1s
+2022-11-01T15:29:30.3089382Z ##[endgroup]
+2022-11-01T15:29:30.3347974Z ##[group]/datum/unit_test/reagent_names
+2022-11-01T15:29:31.2354819Z
+2022-11-01T15:29:31.2355678Z [1;32mPASS[0m /datum/unit_test/reagent_names 0.9s
+2022-11-01T15:29:31.2356318Z ##[endgroup]
+2022-11-01T15:29:32.1042828Z ##[group]/datum/unit_test/reagent_recipe_collisions
+2022-11-01T15:29:32.5727294Z
+2022-11-01T15:29:32.5728917Z [1;32mPASS[0m /datum/unit_test/reagent_recipe_collisions 0.4s
+2022-11-01T15:29:32.5730155Z ##[endgroup]
+2022-11-01T15:29:32.9927755Z ##[group]/datum/unit_test/reagent_transfer
+2022-11-01T15:29:32.9934109Z
+2022-11-01T15:29:32.9935981Z [1;32mPASS[0m /datum/unit_test/reagent_transfer 0s
+2022-11-01T15:29:32.9936895Z ##[endgroup]
+2022-11-01T15:29:33.0126783Z ##[group]/datum/unit_test/stop_drop_and_roll
+2022-11-01T15:29:33.0390175Z
+2022-11-01T15:29:33.0391562Z [1;32mPASS[0m /datum/unit_test/stop_drop_and_roll 0s
+2022-11-01T15:29:33.0394218Z ##[endgroup]
+2022-11-01T15:29:33.0646804Z ##[group]/datum/unit_test/container_resist
+2022-11-01T15:29:33.1054797Z
+2022-11-01T15:29:33.1056167Z [1;32mPASS[0m /datum/unit_test/container_resist 0.1s
+2022-11-01T15:29:33.1057687Z ##[endgroup]
+2022-11-01T15:29:33.1496944Z ##[group]/datum/unit_test/get_message_mods
+2022-11-01T15:29:33.1778888Z
+2022-11-01T15:29:33.1780246Z [1;32mPASS[0m /datum/unit_test/get_message_mods 0s
+2022-11-01T15:29:33.1781311Z ##[endgroup]
+2022-11-01T15:29:33.2061026Z ##[group]/datum/unit_test/say_signal
+2022-11-01T15:29:33.2078006Z
+2022-11-01T15:29:33.2079823Z [1;32mPASS[0m /datum/unit_test/say_signal 0s
+2022-11-01T15:29:33.2083007Z ##[endgroup]
+2022-11-01T15:29:33.2288010Z ##[group]/datum/unit_test/screenshot_antag_icons
+2022-11-01T15:29:33.2307183Z screenshot_antag_icons_fugitive was put in data/screenshots_new
+2022-11-01T15:29:33.2317601Z screenshot_antag_icons_loneoperative was put in data/screenshots_new
+2022-11-01T15:29:33.2741726Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new
+2022-11-01T15:29:33.2757069Z screenshot_antag_icons_traitor was put in data/screenshots_new
+2022-11-01T15:29:33.3311410Z screenshot_antag_icons_malfai was put in data/screenshots_new
+2022-11-01T15:29:33.3356755Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new
+2022-11-01T15:29:33.3365772Z screenshot_antag_icons_changeling was put in data/screenshots_new
+2022-11-01T15:29:33.3430251Z screenshot_antag_icons_heretic was put in data/screenshots_new
+2022-11-01T15:29:33.3445326Z screenshot_antag_icons_wizard was put in data/screenshots_new
+2022-11-01T15:29:33.3487169Z screenshot_antag_icons_cultist was put in data/screenshots_new
+2022-11-01T15:29:33.3511130Z screenshot_antag_icons_operative was put in data/screenshots_new
+2022-11-01T15:29:33.3528654Z screenshot_antag_icons_clownoperative was put in data/screenshots_new
+2022-11-01T15:29:33.3549119Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new
+2022-11-01T15:29:33.3549976Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new
+2022-11-01T15:29:33.3550439Z screenshot_antag_icons_provocateur was put in data/screenshots_new
+2022-11-01T15:29:33.3557417Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new
+2022-11-01T15:29:33.3557858Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new
+2022-11-01T15:29:33.3558296Z screenshot_antag_icons_operativemidround was put in data/screenshots_new
+2022-11-01T15:29:33.4364141Z screenshot_antag_icons_blob was put in data/screenshots_new
+2022-11-01T15:29:33.4501951Z screenshot_antag_icons_xenomorph was put in data/screenshots_new
+2022-11-01T15:29:33.4510297Z screenshot_antag_icons_nightmare was put in data/screenshots_new
+2022-11-01T15:29:33.4593244Z screenshot_antag_icons_spacedragon was put in data/screenshots_new
+2022-11-01T15:29:33.4602657Z screenshot_antag_icons_abductor was put in data/screenshots_new
+2022-11-01T15:29:33.4610909Z screenshot_antag_icons_spaceninja was put in data/screenshots_new
+2022-11-01T15:29:33.4905469Z screenshot_antag_icons_revenant was put in data/screenshots_new
+2022-11-01T15:29:33.4932248Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new
+2022-11-01T15:29:33.4934049Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new
+2022-11-01T15:29:33.5122130Z screenshot_antag_icons_blobinfection was put in data/screenshots_new
+2022-11-01T15:29:33.5146398Z screenshot_antag_icons_obsessed was put in data/screenshots_new
+2022-11-01T15:29:33.5153740Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new
+2022-11-01T15:29:33.5154025Z
+2022-11-01T15:29:33.5154740Z [1;32mPASS[0m /datum/unit_test/screenshot_antag_icons 0.3s
+2022-11-01T15:29:33.5155554Z ##[endgroup]
+2022-11-01T15:29:33.7840161Z ##[group]/datum/unit_test/screenshot_basic
+2022-11-01T15:29:33.7846135Z screenshot_basic_red was put in data/screenshots_new
+2022-11-01T15:29:33.7850103Z
+2022-11-01T15:29:33.7851242Z [1;32mPASS[0m /datum/unit_test/screenshot_basic 0s
+2022-11-01T15:29:33.7851736Z ##[endgroup]
+2022-11-01T15:29:33.8047719Z ##[group]/datum/unit_test/screenshot_humanoids
+2022-11-01T15:29:34.5128170Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new
+2022-11-01T15:29:35.3887159Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new
+2022-11-01T15:29:36.0866727Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new
+2022-11-01T15:29:36.3285479Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new
+2022-11-01T15:29:37.0085075Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new
+2022-11-01T15:29:37.6062780Z screenshot_humanoids__datum_species_android was put in data/screenshots_new
+2022-11-01T15:29:38.2188199Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new
+2022-11-01T15:29:38.8612302Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new
+2022-11-01T15:29:39.5803701Z screenshot_humanoids__datum_species_human was put in data/screenshots_new
+2022-11-01T15:29:40.3407635Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new
+2022-11-01T15:29:41.1214653Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new
+2022-11-01T15:29:41.9521982Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new
+2022-11-01T15:29:42.6006415Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new
+2022-11-01T15:29:43.2088729Z screenshot_humanoids__datum_species_golem_adamantine was put in data/screenshots_new
+2022-11-01T15:29:43.8190470Z screenshot_humanoids__datum_species_golem_plasma was put in data/screenshots_new
+2022-11-01T15:29:44.4370361Z screenshot_humanoids__datum_species_golem_diamond was put in data/screenshots_new
+2022-11-01T15:29:45.0207260Z screenshot_humanoids__datum_species_golem_gold was put in data/screenshots_new
+2022-11-01T15:29:45.6198968Z screenshot_humanoids__datum_species_golem_silver was put in data/screenshots_new
+2022-11-01T15:29:46.2210457Z screenshot_humanoids__datum_species_golem_plasteel was put in data/screenshots_new
+2022-11-01T15:29:46.7870537Z screenshot_humanoids__datum_species_golem_titanium was put in data/screenshots_new
+2022-11-01T15:29:47.3882868Z screenshot_humanoids__datum_species_golem_plastitanium was put in data/screenshots_new
+2022-11-01T15:29:47.9960089Z screenshot_humanoids__datum_species_golem_alloy was put in data/screenshots_new
+2022-11-01T15:29:48.6148861Z screenshot_humanoids__datum_species_golem_wood was put in data/screenshots_new
+2022-11-01T15:29:49.2815897Z screenshot_humanoids__datum_species_golem_uranium was put in data/screenshots_new
+2022-11-01T15:29:49.9589760Z screenshot_humanoids__datum_species_golem_sand was put in data/screenshots_new
+2022-11-01T15:29:50.5992504Z screenshot_humanoids__datum_species_golem_glass was put in data/screenshots_new
+2022-11-01T15:29:51.2503187Z screenshot_humanoids__datum_species_golem_bluespace was put in data/screenshots_new
+2022-11-01T15:29:51.8848719Z screenshot_humanoids__datum_species_golem_bananium was put in data/screenshots_new
+2022-11-01T15:29:52.3852904Z screenshot_humanoids__datum_species_golem_runic was put in data/screenshots_new
+2022-11-01T15:29:53.0469173Z screenshot_humanoids__datum_species_golem_cloth was put in data/screenshots_new
+2022-11-01T15:29:53.6444155Z screenshot_humanoids__datum_species_golem_plastic was put in data/screenshots_new
+2022-11-01T15:29:54.3098057Z screenshot_humanoids__datum_species_golem_bronze was put in data/screenshots_new
+2022-11-01T15:29:54.8535540Z screenshot_humanoids__datum_species_golem_cardboard was put in data/screenshots_new
+2022-11-01T15:29:55.5735108Z screenshot_humanoids__datum_species_golem_leather was put in data/screenshots_new
+2022-11-01T15:29:56.0717640Z screenshot_humanoids__datum_species_golem_durathread was put in data/screenshots_new
+2022-11-01T15:29:56.5432741Z screenshot_humanoids__datum_species_golem_bone was put in data/screenshots_new
+2022-11-01T15:29:57.0369874Z screenshot_humanoids__datum_species_golem_snow was put in data/screenshots_new
+2022-11-01T15:29:57.7216313Z screenshot_humanoids__datum_species_golem_mhydrogen was put in data/screenshots_new
+2022-11-01T15:29:58.4794694Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new
+2022-11-01T15:29:59.2634596Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new
+2022-11-01T15:30:00.0372590Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new
+2022-11-01T15:30:00.7908231Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new
+2022-11-01T15:30:01.4923254Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new
+2022-11-01T15:30:02.2186441Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new
+2022-11-01T15:30:02.4149008Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new
+2022-11-01T15:30:03.0255568Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new
+2022-11-01T15:30:03.6777755Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new
+2022-11-01T15:30:04.4788826Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new
+2022-11-01T15:30:05.2174595Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new
+2022-11-01T15:30:05.9909000Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new
+2022-11-01T15:30:06.7544848Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new
+2022-11-01T15:30:07.6424794Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new
+2022-11-01T15:30:08.5972035Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new
+2022-11-01T15:30:08.5972336Z
+2022-11-01T15:30:08.5972854Z [1;32mPASS[0m /datum/unit_test/screenshot_humanoids 34.7s
+2022-11-01T15:30:08.5973526Z ##[endgroup]
+2022-11-01T15:30:44.2099567Z ##[group]/datum/unit_test/screenshot_saturnx
+2022-11-01T15:30:44.5011065Z screenshot_saturnx_invisibility was put in data/screenshots_new
+2022-11-01T15:30:44.5011333Z
+2022-11-01T15:30:44.5012180Z [1;32mPASS[0m /datum/unit_test/screenshot_saturnx 0.3s
+2022-11-01T15:30:44.5012769Z ##[endgroup]
+2022-11-01T15:30:44.7785909Z ##[group]/datum/unit_test/security_officer_roundstart_distribution
+2022-11-01T15:30:44.9017426Z
+2022-11-01T15:30:44.9018614Z [1;32mPASS[0m /datum/unit_test/security_officer_roundstart_distribution 0.2s
+2022-11-01T15:30:44.9019313Z ##[endgroup]
+2022-11-01T15:30:45.0427506Z ##[group]/datum/unit_test/security_officer_latejoin_distribution
+2022-11-01T15:30:45.5391742Z
+2022-11-01T15:30:45.5392426Z [1;32mPASS[0m /datum/unit_test/security_officer_latejoin_distribution 0.5s
+2022-11-01T15:30:45.5393125Z ##[endgroup]
+2022-11-01T15:30:46.2210379Z ##[group]/datum/unit_test/security_levels
+2022-11-01T15:30:46.2210589Z
+2022-11-01T15:30:46.2216058Z [1;32mPASS[0m /datum/unit_test/security_levels 0s
+2022-11-01T15:30:46.2216555Z ##[endgroup]
+2022-11-01T15:30:46.2399271Z ##[group]/datum/unit_test/servingtray
+2022-11-01T15:30:46.2779259Z
+2022-11-01T15:30:46.2780125Z [1;32mPASS[0m /datum/unit_test/servingtray 0s
+2022-11-01T15:30:46.2780972Z ##[endgroup]
+2022-11-01T15:30:46.3048093Z ##[group]/datum/unit_test/simple_animal_freeze
+2022-11-01T15:30:46.3059709Z
+2022-11-01T15:30:46.3060267Z [1;32mPASS[0m /datum/unit_test/simple_animal_freeze 0s
+2022-11-01T15:30:46.3060938Z ##[endgroup]
+2022-11-01T15:30:46.3241320Z ##[group]/datum/unit_test/siunit
+2022-11-01T15:30:46.3241508Z
+2022-11-01T15:30:46.3241961Z [1;32mPASS[0m /datum/unit_test/siunit 0s
+2022-11-01T15:30:46.3242362Z ##[endgroup]
+2022-11-01T15:30:46.3753674Z ##[group]/datum/unit_test/slips
+2022-11-01T15:30:46.4300467Z
+2022-11-01T15:30:46.4301480Z [1;32mPASS[0m /datum/unit_test/slips 0.1s
+2022-11-01T15:30:46.4302301Z ##[endgroup]
+2022-11-01T15:30:46.5100922Z ##[group]/datum/unit_test/spawn_humans
+2022-11-01T15:30:51.5880046Z
+2022-11-01T15:30:51.5881071Z [1;32mPASS[0m /datum/unit_test/spawn_humans 5s
+2022-11-01T15:30:51.5881789Z ##[endgroup]
+2022-11-01T15:30:51.6350612Z ##[group]/datum/unit_test/spawn_mobs
+2022-11-01T15:30:51.7210346Z
+2022-11-01T15:30:51.7211375Z [1;32mPASS[0m /datum/unit_test/spawn_mobs 0.1s
+2022-11-01T15:30:51.7212072Z ##[endgroup]
+2022-11-01T15:30:51.8820435Z ##[group]/datum/unit_test/species_change_clothing
+2022-11-01T15:30:51.9839314Z
+2022-11-01T15:30:51.9840163Z [1;32mPASS[0m /datum/unit_test/species_change_clothing 0.1s
+2022-11-01T15:30:51.9840797Z ##[endgroup]
+2022-11-01T15:30:52.0595249Z ##[group]/datum/unit_test/species_change_organs
+2022-11-01T15:30:52.1312087Z
+2022-11-01T15:30:52.1313114Z [1;32mPASS[0m /datum/unit_test/species_change_organs 0.1s
+2022-11-01T15:30:52.1313735Z ##[endgroup]
+2022-11-01T15:30:52.2788548Z ##[group]/datum/unit_test/species_config_sanity
+2022-11-01T15:30:52.2788764Z
+2022-11-01T15:30:52.2789218Z [1;32mPASS[0m /datum/unit_test/species_config_sanity 0s
+2022-11-01T15:30:52.2789672Z ##[endgroup]
+2022-11-01T15:30:52.2965591Z ##[group]/datum/unit_test/species_unique_id
+2022-11-01T15:30:52.2965794Z
+2022-11-01T15:30:52.2966648Z [1;32mPASS[0m /datum/unit_test/species_unique_id 0s
+2022-11-01T15:30:52.2967087Z ##[endgroup]
+2022-11-01T15:30:52.3145296Z ##[group]/datum/unit_test/species_whitelist_check
+2022-11-01T15:30:52.3145500Z
+2022-11-01T15:30:52.3145979Z [1;32mPASS[0m /datum/unit_test/species_whitelist_check 0s
+2022-11-01T15:30:52.3146421Z ##[endgroup]
+2022-11-01T15:30:52.3319686Z ##[group]/datum/unit_test/spell_invocations
+2022-11-01T15:30:52.3320202Z
+2022-11-01T15:30:52.3320653Z [1;32mPASS[0m /datum/unit_test/spell_invocations 0s
+2022-11-01T15:30:52.3321098Z ##[endgroup]
+2022-11-01T15:30:52.3490883Z ##[group]/datum/unit_test/mind_swap_spell
+2022-11-01T15:30:52.4036851Z
+2022-11-01T15:30:52.4037676Z [1;32mPASS[0m /datum/unit_test/mind_swap_spell 0.1s
+2022-11-01T15:30:52.4038275Z ##[endgroup]
+2022-11-01T15:30:52.4828774Z ##[group]/datum/unit_test/spell_names
+2022-11-01T15:30:52.4828988Z
+2022-11-01T15:30:52.4829550Z [1;32mPASS[0m /datum/unit_test/spell_names 0s
+2022-11-01T15:30:52.4829982Z ##[endgroup]
+2022-11-01T15:30:52.5000265Z ##[group]/datum/unit_test/shapeshift_spell_validity
+2022-11-01T15:30:52.5004478Z
+2022-11-01T15:30:52.5005145Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell_validity 0.1s
+2022-11-01T15:30:52.5005621Z ##[endgroup]
+2022-11-01T15:30:52.5165907Z ##[group]/datum/unit_test/shapeshift_spell
+2022-11-01T15:30:52.8039754Z
+2022-11-01T15:30:52.8040573Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell 0.3s
+2022-11-01T15:30:52.8041200Z ##[endgroup]
+2022-11-01T15:30:53.0783548Z ##[group]/datum/unit_test/shapeshift_holoparasites
+2022-11-01T15:30:53.1126288Z
+2022-11-01T15:30:53.1127333Z [1;32mPASS[0m /datum/unit_test/shapeshift_holoparasites 0.1s
+2022-11-01T15:30:53.1128391Z ##[endgroup]
+2022-11-01T15:30:53.1559214Z ##[group]/datum/unit_test/spritesheets
+2022-11-01T15:30:53.1593744Z
+2022-11-01T15:30:53.1596242Z [1;32mPASS[0m /datum/unit_test/spritesheets 0s
+2022-11-01T15:30:53.1599434Z ##[endgroup]
+2022-11-01T15:30:53.1775369Z ##[group]/datum/unit_test/stack_singular_name
+2022-11-01T15:30:53.1777955Z
+2022-11-01T15:30:53.1780282Z [1;32mPASS[0m /datum/unit_test/stack_singular_name 0s
+2022-11-01T15:30:53.1781032Z ##[endgroup]
+2022-11-01T15:30:53.1978111Z ##[group]/datum/unit_test/stomach
+2022-11-01T15:30:53.2306019Z
+2022-11-01T15:30:53.2308397Z [1;32mPASS[0m /datum/unit_test/stomach 0.1s
+2022-11-01T15:30:53.2311132Z ##[endgroup]
+2022-11-01T15:30:53.2563959Z ##[group]/datum/unit_test/strip_menu_ui_status
+2022-11-01T15:30:53.3090477Z
+2022-11-01T15:30:53.3091739Z [1;32mPASS[0m /datum/unit_test/strip_menu_ui_status 0.1s
+2022-11-01T15:30:53.3094850Z ##[endgroup]
+2022-11-01T15:30:53.3492514Z ##[group]/datum/unit_test/subsystem_init
+2022-11-01T15:30:53.3493184Z
+2022-11-01T15:30:53.3495636Z [1;32mPASS[0m /datum/unit_test/subsystem_init 0s
+2022-11-01T15:30:53.3498157Z ##[endgroup]
+2022-11-01T15:30:53.3664175Z ##[group]/datum/unit_test/suit_storage_icons
+2022-11-01T15:30:55.3207063Z 1 - /obj/item/ammo_casing/shotgun using invalid worn_icon_state, "shell"
+2022-11-01T15:30:55.3382821Z 2 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun"
+2022-11-01T15:30:55.3567861Z 3 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus"
+2022-11-01T15:30:55.3745473Z 4 - /obj/item/gun/energy/beam_rifle using invalid icon_state, "esniper"
+2022-11-01T15:30:55.3772721Z 5 - /obj/item/gun/energy/lasercannon using invalid icon_state, "lasercannon"
+2022-11-01T15:30:55.3812025Z 6 - /obj/item/gun/energy/ionrifle using invalid icon_state, "ionrifle"
+2022-11-01T15:30:55.3814794Z 7 - /obj/item/gun/energy/ionrifle/carbine using invalid icon_state, "ioncarbine"
+2022-11-01T15:30:55.3984674Z 8 - /obj/item/tome using invalid icon_state, "tome"
+2022-11-01T15:30:55.4027757Z 9 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade"
+2022-11-01T15:30:55.4043373Z 10 - /obj/item/nullrod/staff using invalid icon_state, "godstaff-red"
+2022-11-01T15:30:55.4048073Z 11 - /obj/item/nullrod/staff/blue using invalid icon_state, "godstaff-blue"
+2022-11-01T15:30:55.4136802Z 12 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife"
+2022-11-01T15:30:55.4148858Z 13 - /obj/item/nullrod/spear using invalid icon_state, "ratvarian_spear"
+2022-11-01T15:30:55.4161026Z 14 - /obj/item/candle using invalid icon_state, "candle1"
+2022-11-01T15:30:55.4710008Z 15 - /obj/item/toy/eightball using invalid icon_state, "eightball"
+2022-11-01T15:30:55.4712397Z 16 - /obj/item/toy/mecha using invalid icon_state, "fivestarstoy"
+2022-11-01T15:30:55.4717528Z 17 - /obj/item/toy/mecha/ripley using invalid icon_state, "ripleytoy"
+2022-11-01T15:30:55.4720640Z 18 - /obj/item/toy/mecha/ripleymkii using invalid icon_state, "ripleymkiitoy"
+2022-11-01T15:30:55.4725923Z 19 - /obj/item/toy/mecha/hauler using invalid icon_state, "haulertoy"
+2022-11-01T15:30:55.4728709Z 20 - /obj/item/toy/mecha/clarke using invalid icon_state, "clarketoy"
+2022-11-01T15:30:55.4732862Z 21 - /obj/item/toy/mecha/odysseus using invalid icon_state, "odysseustoy"
+2022-11-01T15:30:55.4736959Z 22 - /obj/item/toy/mecha/gygax using invalid icon_state, "gygaxtoy"
+2022-11-01T15:30:55.4741521Z 23 - /obj/item/toy/mecha/durand using invalid icon_state, "durandtoy"
+2022-11-01T15:30:55.4745193Z 24 - /obj/item/toy/mecha/savannahivanov using invalid icon_state, "savannahivanovtoy"
+2022-11-01T15:30:55.4748259Z 25 - /obj/item/toy/mecha/phazon using invalid icon_state, "phazontoy"
+2022-11-01T15:30:55.4752835Z 26 - /obj/item/toy/mecha/honk using invalid icon_state, "honktoy"
+2022-11-01T15:30:55.4755743Z 27 - /obj/item/toy/mecha/darkgygax using invalid icon_state, "darkgygaxtoy"
+2022-11-01T15:30:55.4760291Z 28 - /obj/item/toy/mecha/mauler using invalid icon_state, "maulertoy"
+2022-11-01T15:30:55.4763840Z 29 - /obj/item/toy/mecha/darkhonk using invalid icon_state, "darkhonktoy"
+2022-11-01T15:30:55.4768684Z 30 - /obj/item/toy/mecha/deathripley using invalid icon_state, "deathripleytoy"
+2022-11-01T15:30:55.4772115Z 31 - /obj/item/toy/mecha/reticence using invalid icon_state, "reticencetoy"
+2022-11-01T15:30:55.4774925Z 32 - /obj/item/toy/mecha/marauder using invalid icon_state, "maraudertoy"
+2022-11-01T15:30:55.4779221Z 33 - /obj/item/toy/mecha/seraph using invalid icon_state, "seraphtoy"
+2022-11-01T15:30:55.4783197Z 34 - /obj/item/toy/mecha/firefighter using invalid icon_state, "firefightertoy"
+2022-11-01T15:30:55.4786820Z 35 - /obj/item/toy/waterballoon using invalid icon_state, "waterballoon-e"
+2022-11-01T15:30:55.4790265Z 36 - /obj/item/toy/balloon using invalid icon_state, "balloon"
+2022-11-01T15:30:55.4794733Z 37 - /obj/item/toy/balloon/corgi using invalid icon_state, "corgi"
+2022-11-01T15:30:55.4798121Z 38 - /obj/item/toy/balloon/syndicate using invalid icon_state, "syndballoon"
+2022-11-01T15:30:55.4800642Z 39 - /obj/item/toy/balloon/arrest using invalid icon_state, "arrestballoon"
+2022-11-01T15:30:55.4805597Z 40 - /obj/item/toy/captainsaid using invalid icon_state, "captainsaid_off"
+2022-11-01T15:30:55.4810625Z 41 - /obj/item/toy/spinningtoy using invalid icon_state, "singularity_s1"
+2022-11-01T15:30:55.4819042Z 42 - /obj/item/toy/ammo/gun using invalid icon_state, "357OLD-7"
+2022-11-01T15:30:55.4821247Z 43 - /obj/item/toy/sword using invalid icon_state, "e_sword"
+2022-11-01T15:30:55.4826674Z 44 - /obj/item/toy/foamblade using invalid icon_state, "foamblade"
+2022-11-01T15:30:55.4906032Z 45 - /obj/item/toy/windup_toolbox using invalid icon_state, "green"
+2022-11-01T15:30:55.4915446Z 46 - /obj/item/toy/snappop using invalid icon_state, "snappop"
+2022-11-01T15:30:55.4918336Z 47 - /obj/item/toy/talking using invalid icon_state, "owlprize"
+2022-11-01T15:30:55.4923506Z 48 - /obj/item/toy/talking/ai using invalid icon_state, "AI"
+2022-11-01T15:30:55.4927158Z 49 - /obj/item/toy/talking/codex_gigas using invalid icon_state, "demonomicon"
+2022-11-01T15:30:55.4931629Z 50 - /obj/item/toy/talking/griffin using invalid icon_state, "griffinprize"
+2022-11-01T15:30:55.4935255Z 51 - /obj/item/toy/nuke using invalid icon_state, "nuketoyidle"
+2022-11-01T15:30:55.4941687Z 52 - /obj/item/toy/minimeteor using invalid icon_state, "minimeteor"
+2022-11-01T15:30:55.4950575Z 53 - /obj/item/toy/redbutton using invalid icon_state, "bigred"
+2022-11-01T15:30:55.4951244Z 54 - /obj/item/toy/snowball using invalid icon_state, "snowball"
+2022-11-01T15:30:55.4954561Z 55 - /obj/item/toy/beach_ball using invalid icon_state, "ball"
+2022-11-01T15:30:55.4958662Z 56 - /obj/item/toy/beach_ball/baseball using invalid icon_state, "baseball"
+2022-11-01T15:30:55.4963000Z 57 - /obj/item/toy/beach_ball/holoball using invalid icon_state, "basketball"
+2022-11-01T15:30:55.4966965Z 58 - /obj/item/toy/beach_ball/holoball/dodgeball using invalid icon_state, "dodgeball"
+2022-11-01T15:30:55.4977748Z 59 - /obj/item/toy/toy_xeno using invalid icon_state, "toy_xeno"
+2022-11-01T15:30:55.4980250Z 60 - /obj/item/toy/cattoy using invalid icon_state, "toy_mouse"
+2022-11-01T15:30:55.4983618Z 61 - /obj/item/toy/figure using invalid icon_state, "nuketoy"
+2022-11-01T15:30:55.4987315Z 62 - /obj/item/toy/figure/cmo using invalid icon_state, "cmo"
+2022-11-01T15:30:55.4997139Z 63 - /obj/item/toy/figure/assistant using invalid icon_state, "assistant"
+2022-11-01T15:30:55.4997624Z 64 - /obj/item/toy/figure/atmos using invalid icon_state, "atmos"
+2022-11-01T15:30:55.4998070Z 65 - /obj/item/toy/figure/bartender using invalid icon_state, "bartender"
+2022-11-01T15:30:55.5000037Z 66 - /obj/item/toy/figure/borg using invalid icon_state, "borg"
+2022-11-01T15:30:55.5005726Z 67 - /obj/item/toy/figure/botanist using invalid icon_state, "botanist"
+2022-11-01T15:30:55.5009351Z 68 - /obj/item/toy/figure/captain using invalid icon_state, "captain"
+2022-11-01T15:30:55.5013740Z 69 - /obj/item/toy/figure/cargotech using invalid icon_state, "cargotech"
+2022-11-01T15:30:55.5017249Z 70 - /obj/item/toy/figure/ce using invalid icon_state, "ce"
+2022-11-01T15:30:55.5020387Z 71 - /obj/item/toy/figure/chaplain using invalid icon_state, "chaplain"
+2022-11-01T15:30:55.5024141Z 72 - /obj/item/toy/figure/chef using invalid icon_state, "chef"
+2022-11-01T15:30:55.5028293Z 73 - /obj/item/toy/figure/chemist using invalid icon_state, "chemist"
+2022-11-01T15:30:55.5031085Z 74 - /obj/item/toy/figure/clown using invalid icon_state, "clown"
+2022-11-01T15:30:55.5034369Z 75 - /obj/item/toy/figure/ian using invalid icon_state, "ian"
+2022-11-01T15:30:55.5038425Z 76 - /obj/item/toy/figure/detective using invalid icon_state, "detective"
+2022-11-01T15:30:55.5042175Z 77 - /obj/item/toy/figure/dsquad using invalid icon_state, "dsquad"
+2022-11-01T15:30:55.5046297Z 78 - /obj/item/toy/figure/engineer using invalid icon_state, "engineer"
+2022-11-01T15:30:55.5050167Z 79 - /obj/item/toy/figure/geneticist using invalid icon_state, "geneticist"
+2022-11-01T15:30:55.5053342Z 80 - /obj/item/toy/figure/hop using invalid icon_state, "hop"
+2022-11-01T15:30:55.5056872Z 81 - /obj/item/toy/figure/hos using invalid icon_state, "hos"
+2022-11-01T15:30:55.5060399Z 82 - /obj/item/toy/figure/qm using invalid icon_state, "qm"
+2022-11-01T15:30:55.5063872Z 83 - /obj/item/toy/figure/janitor using invalid icon_state, "janitor"
+2022-11-01T15:30:55.5067662Z 84 - /obj/item/toy/figure/lawyer using invalid icon_state, "lawyer"
+2022-11-01T15:30:55.5070895Z 85 - /obj/item/toy/figure/curator using invalid icon_state, "curator"
+2022-11-01T15:30:55.5074298Z 86 - /obj/item/toy/figure/md using invalid icon_state, "md"
+2022-11-01T15:30:55.5077555Z 87 - /obj/item/toy/figure/paramedic using invalid icon_state, "paramedic"
+2022-11-01T15:30:55.5080888Z 88 - /obj/item/toy/figure/psychologist using invalid icon_state, "psychologist"
+2022-11-01T15:30:55.5084180Z 89 - /obj/item/toy/figure/prisoner using invalid icon_state, "prisoner"
+2022-11-01T15:30:55.5087759Z 90 - /obj/item/toy/figure/mime using invalid icon_state, "mime"
+2022-11-01T15:30:55.5091521Z 91 - /obj/item/toy/figure/miner using invalid icon_state, "miner"
+2022-11-01T15:30:55.5094739Z 92 - /obj/item/toy/figure/ninja using invalid icon_state, "ninja"
+2022-11-01T15:30:55.5098467Z 93 - /obj/item/toy/figure/wizard using invalid icon_state, "wizard"
+2022-11-01T15:30:55.5101717Z 94 - /obj/item/toy/figure/rd using invalid icon_state, "rd"
+2022-11-01T15:30:55.5105157Z 95 - /obj/item/toy/figure/roboticist using invalid icon_state, "roboticist"
+2022-11-01T15:30:55.5108497Z 96 - /obj/item/toy/figure/scientist using invalid icon_state, "scientist"
+2022-11-01T15:30:55.5111745Z 97 - /obj/item/toy/figure/syndie using invalid icon_state, "syndie"
+2022-11-01T15:30:55.5115064Z 98 - /obj/item/toy/figure/secofficer using invalid icon_state, "secofficer"
+2022-11-01T15:30:55.5120612Z 99 - /obj/item/toy/figure/virologist using invalid icon_state, "virologist"
+2022-11-01T15:30:55.5123956Z 100 - /obj/item/toy/figure/warden using invalid icon_state, "warden"
+2022-11-01T15:30:55.5128284Z 101 - /obj/item/toy/dummy using invalid icon_state, "puppet"
+2022-11-01T15:30:55.5131152Z 102 - /obj/item/toy/seashell using invalid icon_state, "shell1"
+2022-11-01T15:30:55.5134593Z 103 - /obj/item/toy/brokenradio using invalid icon_state, "broken_radio"
+2022-11-01T15:30:55.5137892Z 104 - /obj/item/toy/braintoy using invalid icon_state, "brain-old"
+2022-11-01T15:30:55.5144558Z 105 - /obj/item/toy/reality_pierce using invalid icon_state, "pierced_illusion"
+2022-11-01T15:30:55.5147190Z 106 - /obj/item/toy/foamfinger using invalid icon_state, "foamfinger"
+2022-11-01T15:30:55.5150535Z 107 - /obj/item/toy/intento using invalid icon_state, "blank"
+2022-11-01T15:30:55.5198041Z 108 - /obj/item/toy/sprayoncan using invalid icon_state, "sprayoncan"
+2022-11-01T15:30:55.5200657Z 109 - /obj/item/toy/xmas_cracker using invalid icon_state, "cracker"
+2022-11-01T15:30:55.5207230Z 110 - /obj/item/cultivator/rake using invalid icon_state, "rake"
+2022-11-01T15:30:55.5214896Z 111 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet"
+2022-11-01T15:30:55.5218699Z 112 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade"
+2022-11-01T15:30:55.6152861Z 113 - /obj/item/reagent_containers/hypospray/medipen using invalid worn_icon_state, "medipen"
+2022-11-01T15:30:55.6332977Z 114 - /obj/item/storage/pill_bottle using invalid icon_state, "pill_canister"
+2022-11-01T15:30:55.6344463Z 115 - /obj/item/analyzer/ranged using invalid icon_state, "analyzerranged"
+2022-11-01T15:30:55.6996164Z 116 - /obj/item/organ/internal/monster_core using invalid icon_state, "hivelord_core"
+2022-11-01T15:30:55.6996812Z 117 - /obj/item/organ/internal/monster_core/brimdust_sac using invalid icon_state, "brim_sac"
+2022-11-01T15:30:55.7000924Z 118 - /obj/item/organ/internal/monster_core/regenerative_core/legion using invalid icon_state, "legion_core"
+2022-11-01T15:30:55.7004434Z 119 - /obj/item/organ/internal/monster_core/rush_gland using invalid icon_state, "lobster_gland"
+2022-11-01T15:30:55.7019240Z 120 - /obj/item/spear/bamboospear using invalid icon_state, "bamboo_spear0"
+2022-11-01T15:30:55.7066737Z 121 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan"
+2022-11-01T15:30:55.7071949Z 122 - /obj/item/abductor/silencer using invalid icon_state, "silencer"
+2022-11-01T15:30:55.7074703Z 123 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message"
+2022-11-01T15:30:55.7093947Z 124 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass"
+2022-11-01T15:30:55.7100530Z 125 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg"
+2022-11-01T15:30:55.7103494Z 126 - /obj/item/banner using invalid icon_state, "banner"
+2022-11-01T15:30:55.7106179Z 127 - /obj/item/banner/security using invalid icon_state, "banner_security"
+2022-11-01T15:30:55.7109205Z 128 - /obj/item/banner/medical using invalid icon_state, "banner_medical"
+2022-11-01T15:30:55.7112253Z 129 - /obj/item/banner/science using invalid icon_state, "banner_science"
+2022-11-01T15:30:55.7115489Z 130 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo"
+2022-11-01T15:30:55.7118625Z 131 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering"
+2022-11-01T15:30:55.7121768Z 132 - /obj/item/banner/red using invalid icon_state, "banner-red"
+2022-11-01T15:30:55.7125528Z 133 - /obj/item/banner/blue using invalid icon_state, "banner-blue"
+2022-11-01T15:30:55.7173275Z 134 - /obj/item/gun/magic/staff using invalid icon_state, "staff"
+2022-11-01T15:30:55.7176309Z 135 - /obj/item/gun/magic/staff/change using invalid icon_state, "staffofchange"
+2022-11-01T15:30:55.7179814Z 136 - /obj/item/gun/magic/staff/animate using invalid icon_state, "staffofanimation"
+2022-11-01T15:30:55.7183703Z 137 - /obj/item/gun/magic/staff/healing using invalid icon_state, "staffofhealing"
+2022-11-01T15:30:55.7187827Z 138 - /obj/item/gun/magic/staff/chaos using invalid icon_state, "staffofchaos"
+2022-11-01T15:30:55.7191418Z 139 - /obj/item/gun/magic/staff/door using invalid icon_state, "staffofdoor"
+2022-11-01T15:30:55.7194614Z 140 - /obj/item/gun/magic/staff/honk using invalid icon_state, "honker"
+2022-11-01T15:30:55.7201412Z 141 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff"
+2022-11-01T15:30:55.7204043Z 142 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff"
+2022-11-01T15:30:55.7207467Z 143 - /obj/item/gun/magic/staff/babel using invalid worn_icon_state, "babelstaff"
+2022-11-01T15:30:55.7211147Z 144 - /obj/item/gun/magic/staff/necropotence using invalid worn_icon_state, "necrostaff"
+2022-11-01T15:30:55.7215407Z 145 - /obj/item/gun/magic/staff/wipe using invalid worn_icon_state, "wipestaff"
+2022-11-01T15:30:55.7241733Z 146 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass"
+2022-11-01T15:30:55.7244715Z 147 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch"
+2022-11-01T15:30:55.7252484Z 148 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw"
+2022-11-01T15:30:55.7266561Z 149 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised"
+2022-11-01T15:30:55.7274060Z 150 - /obj/item/multitool using invalid icon_state, "multitool"
+2022-11-01T15:30:55.7276378Z 151 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg"
+2022-11-01T15:30:55.7280858Z 152 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit"
+2022-11-01T15:30:55.7284308Z 153 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag"
+2022-11-01T15:30:55.7287840Z 154 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag"
+2022-11-01T15:30:55.7290759Z 155 - /obj/item/cane using invalid icon_state, "cane"
+2022-11-01T15:30:55.7294298Z 156 - /obj/item/cane/white using invalid icon_state, "cane_white"
+2022-11-01T15:30:55.7297184Z 157 - /obj/item/megaphone/clown using invalid icon_state, "megaphone-clown"
+2022-11-01T15:30:55.7318542Z 158 - /obj/item/food/pie/cream using invalid icon_state, "pie"
+2022-11-01T15:30:55.7334187Z 159 - /obj/item/instrument/bikehorn using invalid icon_state, "bike_horn"
+2022-11-01T15:30:55.7337088Z 160 - /obj/item/reagent_containers/cup/soda_cans/canned_laughter using invalid icon_state, "laughter"
+2022-11-01T15:30:55.7358710Z 161 - /obj/item/grown/bananapeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7362056Z 162 - /obj/item/grown/bananapeel/bombanana using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7363000Z 163 - /obj/item/grown/bananapeel/mimanapeel using invalid icon_state, "mimana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7367080Z 164 - /obj/item/grown/bananapeel/bluespace using invalid icon_state, "bluenana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7368175Z 165 - /obj/item/grown/bananapeel/specialpeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7369395Z 166 - /obj/item/food/grown/banana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7372848Z 167 - /obj/item/food/grown/banana/bombanana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7373761Z 168 - /obj/item/food/grown/banana/mime using invalid icon_state, "mimana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7377078Z 169 - /obj/item/food/grown/banana/bluespace using invalid icon_state, "bluenana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7377931Z 170 - /obj/item/food/grown/banana/bunch using invalid icon_state, "banana_bunch" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-01T15:30:55.7380762Z 171 - /obj/item/stack/spacecash/c1 using invalid icon_state, "spacecash1"
+2022-11-01T15:30:55.7381375Z 172 - /obj/item/stack/spacecash/c10 using invalid icon_state, "spacecash10"
+2022-11-01T15:30:55.7381845Z 173 - /obj/item/stack/spacecash/c20 using invalid icon_state, "spacecash20"
+2022-11-01T15:30:55.7384576Z 174 - /obj/item/stack/spacecash/c50 using invalid icon_state, "spacecash50"
+2022-11-01T15:30:55.7385391Z 175 - /obj/item/stack/spacecash/c100 using invalid icon_state, "spacecash100"
+2022-11-01T15:30:55.7386850Z 176 - /obj/item/stack/spacecash/c200 using invalid icon_state, "spacecash200"
+2022-11-01T15:30:55.7389337Z 177 - /obj/item/stack/spacecash/c500 using invalid icon_state, "spacecash500"
+2022-11-01T15:30:55.7394435Z 178 - /obj/item/stack/spacecash/c1000 using invalid icon_state, "spacecash1000"
+2022-11-01T15:30:55.7397872Z 179 - /obj/item/stack/spacecash/c10000 using invalid icon_state, "spacecash10000"
+2022-11-01T15:30:55.7401273Z 180 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger"
+2022-11-01T15:30:55.7415134Z 181 - /obj/item/kitchen/fork using invalid icon_state, "fork"
+2022-11-01T15:30:55.7417371Z 182 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork"
+2022-11-01T15:30:55.7428215Z 183 - /obj/item/kitchen/spoon using invalid icon_state, "spoon"
+2022-11-01T15:30:55.7429945Z 184 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon"
+2022-11-01T15:30:55.7442913Z 185 - /obj/item/bonesetter using invalid icon_state, "bonesetter"
+2022-11-01T15:30:55.7446497Z 186 - /obj/item/cautery using invalid icon_state, "cautery"
+2022-11-01T15:30:55.7450823Z 187 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery"
+2022-11-01T15:30:55.7453942Z 188 - /obj/item/hemostat using invalid icon_state, "hemostat"
+2022-11-01T15:30:55.7457254Z 189 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs"
+2022-11-01T15:30:55.7459972Z 190 - /obj/item/retractor using invalid icon_state, "retractor"
+2022-11-01T15:30:55.7463122Z 191 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor"
+2022-11-01T15:30:55.7466265Z 192 - /obj/item/scalpel using invalid icon_state, "scalpel"
+2022-11-01T15:30:55.7469369Z 193 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel"
+2022-11-01T15:30:55.7472302Z 194 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel"
+2022-11-01T15:30:55.7475283Z 195 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes"
+2022-11-01T15:30:55.7481626Z 196 - /obj/item/stack/medical/bruise_pack using invalid icon_state, "brutepack"
+2022-11-01T15:30:55.7483890Z 197 - /obj/item/stack/medical/gauze using invalid icon_state, "gauze"
+2022-11-01T15:30:55.7488309Z 198 - /obj/item/stack/medical/suture using invalid icon_state, "suture"
+2022-11-01T15:30:55.7491279Z 199 - /obj/item/stack/medical/suture/medicated using invalid icon_state, "suture_purp"
+2022-11-01T15:30:55.7494706Z 200 - /obj/item/stack/medical/ointment using invalid icon_state, "ointment"
+2022-11-01T15:30:55.7498204Z 201 - /obj/item/stack/medical/mesh using invalid icon_state, "regen_mesh"
+2022-11-01T15:30:55.7501745Z 202 - /obj/item/stack/medical/mesh/advanced using invalid icon_state, "aloe_mesh"
+2022-11-01T15:30:55.7505332Z 203 - /obj/item/stack/medical/aloe using invalid icon_state, "aloe_paste"
+2022-11-01T15:30:55.7508511Z 204 - /obj/item/stack/medical/bone_gel using invalid icon_state, "bone-gel"
+2022-11-01T15:30:55.7511537Z 205 - /obj/item/stack/medical/poultice using invalid icon_state, "poultice"
+2022-11-01T15:30:55.7514762Z 206 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash"
+2022-11-01T15:30:55.7518179Z 207 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff"
+2022-11-01T15:30:55.7521263Z 208 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff"
+2022-11-01T15:30:55.7525138Z 209 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff"
+2022-11-01T15:30:55.7529005Z 210 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff"
+2022-11-01T15:30:55.7532227Z 211 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off"
+2022-11-01T15:30:55.7535378Z 212 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff"
+2022-11-01T15:30:55.7538704Z 213 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff"
+2022-11-01T15:30:55.7541822Z 214 - /obj/item/disk using invalid icon_state, "datadisk0"
+2022-11-01T15:30:55.7547750Z 215 - /obj/item/disk/holodisk using invalid icon_state, "holodisk"
+2022-11-01T15:30:55.7551232Z 216 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk"
+2022-11-01T15:30:55.7554426Z 217 - /obj/item/disk/surgery using invalid icon_state, "datadisk1"
+2022-11-01T15:30:55.7558238Z 218 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk"
+2022-11-01T15:30:55.7561786Z 219 - /obj/item/disk/tech_disk/major using invalid icon_state, "rndmajordisk"
+2022-11-01T15:30:55.7566298Z 220 - /obj/item/melee/powerfist using invalid icon_state, "powerfist"
+2022-11-01T15:30:55.7579366Z 221 - /obj/item/melee/skateboard using invalid icon_state, "skateboard"
+2022-11-01T15:30:55.7581695Z 222 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2"
+2022-11-01T15:30:55.7586449Z 223 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red"
+2022-11-01T15:30:55.7589798Z 224 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt"
+2022-11-01T15:30:55.7593858Z 225 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat"
+2022-11-01T15:30:55.7597594Z 226 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home"
+2022-11-01T15:30:55.7600520Z 227 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal"
+2022-11-01T15:30:55.7604782Z 228 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter"
+2022-11-01T15:30:55.7611481Z 229 - /obj/item/melee/energy/axe using invalid icon_state, "axe"
+2022-11-01T15:30:55.7613484Z 230 - /obj/item/melee/energy/blade using invalid icon_state, "blade"
+2022-11-01T15:30:55.7618410Z 231 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade"
+2022-11-01T15:30:55.7620400Z 232 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade"
+2022-11-01T15:30:55.7624742Z 233 - /obj/item/melee/sabre using invalid icon_state, "sabre"
+2022-11-01T15:30:55.7628282Z 234 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger"
+2022-11-01T15:30:55.7631104Z 235 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword"
+2022-11-01T15:30:55.7640059Z 236 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn"
+2022-11-01T15:30:55.7642519Z 237 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver"
+2022-11-01T15:30:55.7649015Z 238 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral"
+2022-11-01T15:30:55.7652669Z 239 - /obj/item/reagent_containers/cup/glass/flask using invalid icon_state, "flask"
+2022-11-01T15:30:55.7656181Z 240 - /obj/item/reagent_containers/cup/glass/flask/gold using invalid icon_state, "flask_gold"
+2022-11-01T15:30:55.7659386Z 241 - /obj/item/reagent_containers/cup/glass/flask/det using invalid icon_state, "detflask"
+2022-11-01T15:30:55.7661823Z 242 - /obj/item/stamp using invalid icon_state, "stamp-ok"
+2022-11-01T15:30:55.7665189Z 243 - /obj/item/stamp/qm using invalid icon_state, "stamp-qm"
+2022-11-01T15:30:55.7668223Z 244 - /obj/item/stamp/law using invalid icon_state, "stamp-law"
+2022-11-01T15:30:55.7671146Z 245 - /obj/item/stamp/captain using invalid icon_state, "stamp-cap"
+2022-11-01T15:30:55.7674101Z 246 - /obj/item/stamp/hop using invalid icon_state, "stamp-hop"
+2022-11-01T15:30:55.7677062Z 247 - /obj/item/stamp/hos using invalid icon_state, "stamp-hos"
+2022-11-01T15:30:55.7679998Z 248 - /obj/item/stamp/ce using invalid icon_state, "stamp-ce"
+2022-11-01T15:30:55.7684534Z 249 - /obj/item/stamp/rd using invalid icon_state, "stamp-rd"
+2022-11-01T15:30:55.7688688Z 250 - /obj/item/stamp/cmo using invalid icon_state, "stamp-cmo"
+2022-11-01T15:30:55.7691562Z 251 - /obj/item/stamp/denied using invalid icon_state, "stamp-deny"
+2022-11-01T15:30:55.7694516Z 252 - /obj/item/stamp/void using invalid icon_state, "stamp-void"
+2022-11-01T15:30:55.7697505Z 253 - /obj/item/stamp/clown using invalid icon_state, "stamp-clown"
+2022-11-01T15:30:55.7708237Z 254 - /obj/item/stamp/mime using invalid icon_state, "stamp-mime"
+2022-11-01T15:30:55.7708827Z 255 - /obj/item/stamp/chap using invalid icon_state, "stamp-chap"
+2022-11-01T15:30:55.7709256Z 256 - /obj/item/stamp/centcom using invalid icon_state, "stamp-centcom"
+2022-11-01T15:30:55.7751313Z 257 - /obj/item/stamp/syndicate using invalid icon_state, "stamp-syndicate"
+2022-11-01T15:30:55.7752422Z 258 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l"
+2022-11-01T15:30:55.7752898Z 259 - /obj/item/crowbar/red/caravan using invalid icon_state, "crowbar_caravan"
+2022-11-01T15:30:55.7757058Z 260 - /obj/item/crowbar/drone using invalid icon_state, "crowbar_cyborg"
+2022-11-01T15:30:55.7784906Z
+2022-11-01T15:30:55.7785304Z [1;32mPASS[0m /datum/unit_test/suit_storage_icons 2.4s
+2022-11-01T15:30:55.7786128Z ##[endgroup]
+2022-11-01T15:30:58.1989647Z ##[group]/datum/unit_test/amputation
+2022-11-01T15:30:58.2542620Z
+2022-11-01T15:30:58.2543982Z [1;32mPASS[0m /datum/unit_test/amputation 0.1s
+2022-11-01T15:30:58.2545007Z ##[endgroup]
+2022-11-01T15:30:58.2861052Z ##[group]/datum/unit_test/brain_surgery
+2022-11-01T15:30:58.3393398Z
+2022-11-01T15:30:58.3395072Z [1;32mPASS[0m /datum/unit_test/brain_surgery 0.1s
+2022-11-01T15:30:58.3396351Z ##[endgroup]
+2022-11-01T15:30:58.3713295Z ##[group]/datum/unit_test/head_transplant
+2022-11-01T15:30:58.4648885Z
+2022-11-01T15:30:58.4650964Z [1;32mPASS[0m /datum/unit_test/head_transplant 0.1s
+2022-11-01T15:30:58.4652113Z ##[endgroup]
+2022-11-01T15:30:58.5529908Z ##[group]/datum/unit_test/multiple_surgeries
+2022-11-01T15:30:58.6322272Z
+2022-11-01T15:30:58.6323733Z [1;32mPASS[0m /datum/unit_test/multiple_surgeries 0.1s
+2022-11-01T15:30:58.6324863Z ##[endgroup]
+2022-11-01T15:30:58.7192842Z ##[group]/datum/unit_test/start_tend_wounds
+2022-11-01T15:30:58.7696686Z
+2022-11-01T15:30:58.7697933Z [1;32mPASS[0m /datum/unit_test/start_tend_wounds 0s
+2022-11-01T15:30:58.7699007Z ##[endgroup]
+2022-11-01T15:30:58.8006481Z ##[group]/datum/unit_test/tend_wounds
+2022-11-01T15:30:58.9098267Z
+2022-11-01T15:30:58.9099817Z [1;32mPASS[0m /datum/unit_test/tend_wounds 0.1s
+2022-11-01T15:30:58.9100900Z ##[endgroup]
+2022-11-01T15:30:59.0574781Z ##[group]/datum/unit_test/auto_teleporter_linking
+2022-11-01T15:30:59.0986969Z
+2022-11-01T15:30:59.0988029Z [1;32mPASS[0m /datum/unit_test/auto_teleporter_linking 0s
+2022-11-01T15:30:59.0989210Z ##[endgroup]
+2022-11-01T15:30:59.1397849Z ##[group]/datum/unit_test/tgui_create_message
+2022-11-01T15:30:59.1398053Z
+2022-11-01T15:30:59.1398515Z [1;32mPASS[0m /datum/unit_test/tgui_create_message 0s
+2022-11-01T15:30:59.1398931Z ##[endgroup]
+2022-11-01T15:30:59.1585159Z ##[group]/datum/unit_test/timer_sanity
+2022-11-01T15:30:59.1585371Z
+2022-11-01T15:30:59.1585837Z [1;32mPASS[0m /datum/unit_test/timer_sanity 0s
+2022-11-01T15:30:59.1586293Z ##[endgroup]
+2022-11-01T15:30:59.1763570Z ##[group]/datum/unit_test/traitor
+2022-11-01T15:31:01.0798012Z
+2022-11-01T15:31:01.0799101Z [1;32mPASS[0m /datum/unit_test/traitor 1.9s
+2022-11-01T15:31:01.0799858Z ##[endgroup]
+2022-11-01T15:31:05.2187120Z ##[group]/datum/unit_test/verify_config_tags
+2022-11-01T15:31:05.2190123Z
+2022-11-01T15:31:05.2191991Z [1;32mPASS[0m /datum/unit_test/verify_config_tags 0s
+2022-11-01T15:31:05.2193777Z ##[endgroup]
+2022-11-01T15:31:05.2366479Z ##[group]/datum/unit_test/wizard_loadout
+2022-11-01T15:31:05.3463154Z
+2022-11-01T15:31:05.3463988Z [1;32mPASS[0m /datum/unit_test/wizard_loadout 0.1s
+2022-11-01T15:31:05.3465519Z ##[endgroup]
+2022-11-01T15:31:05.4918147Z ##[group]/datum/unit_test/find_reference_sanity
+2022-11-01T15:31:05.4922156Z
+2022-11-01T15:31:05.4923183Z [1;32mPASS[0m /datum/unit_test/find_reference_sanity 0s
+2022-11-01T15:31:05.4924120Z ##[endgroup]
+2022-11-01T15:31:05.5122652Z ##[group]/datum/unit_test/find_reference_baseline
+2022-11-01T15:31:05.5126059Z
+2022-11-01T15:31:05.5126875Z [1;32mPASS[0m /datum/unit_test/find_reference_baseline 0s
+2022-11-01T15:31:05.5127655Z ##[endgroup]
+2022-11-01T15:31:05.5361446Z ##[group]/datum/unit_test/find_reference_exotic
+2022-11-01T15:31:05.5367626Z
+2022-11-01T15:31:05.5369228Z [1;32mPASS[0m /datum/unit_test/find_reference_exotic 0s
+2022-11-01T15:31:05.5369940Z ##[endgroup]
+2022-11-01T15:31:05.5551795Z ##[group]/datum/unit_test/find_reference_esoteric
+2022-11-01T15:31:05.5558725Z
+2022-11-01T15:31:05.5559583Z [1;32mPASS[0m /datum/unit_test/find_reference_esoteric 0s
+2022-11-01T15:31:05.5560670Z ##[endgroup]
+2022-11-01T15:31:05.5737466Z ##[group]/datum/unit_test/find_reference_null_key_entry
+2022-11-01T15:31:05.5741407Z
+2022-11-01T15:31:05.5742596Z [1;32mPASS[0m /datum/unit_test/find_reference_null_key_entry 0s
+2022-11-01T15:31:05.5743489Z ##[endgroup]
+2022-11-01T15:31:05.6053804Z ##[group]/datum/unit_test/find_reference_assoc_investigation
+2022-11-01T15:31:05.6057935Z
+2022-11-01T15:31:05.6058863Z [1;32mPASS[0m /datum/unit_test/find_reference_assoc_investigation 0s
+2022-11-01T15:31:05.6060051Z ##[endgroup]
+2022-11-01T15:31:05.6233030Z ##[group]/datum/unit_test/find_reference_static_investigation
+2022-11-01T15:31:05.8520469Z
+2022-11-01T15:31:05.8521954Z [1;32mPASS[0m /datum/unit_test/find_reference_static_investigation 0.2s
+2022-11-01T15:31:05.8523118Z ##[endgroup]
+2022-11-01T15:31:06.0724951Z ##[group]/datum/unit_test/monkey_business
+2022-11-01T15:31:23.2321441Z [15:31:23] Runtime in _forensics.dm,232: Cannot execute null.resolve().
+2022-11-01T15:31:23.2322464Z proc name: check blood (/datum/forensics/proc/check_blood)
+2022-11-01T15:31:23.2323531Z src: /datum/forensics (/datum/forensics)
+2022-11-01T15:31:23.2323854Z call stack:
+2022-11-01T15:31:23.2324155Z /datum/forensics (/datum/forensics): check blood()
+2022-11-01T15:31:23.2325062Z /datum/forensics (/datum/forensics): New(the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter), null, null, /list (/list), null)
+2022-11-01T15:31:23.2325582Z the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter): add blood DNA(/list (/list))
+2022-11-01T15:31:23.2326006Z Anthony Hayhurst (461) (/mob/living/carbon/human): spray blood(2, 1)
+2022-11-01T15:31:23.2326395Z Rough Abrasion (/datum/wound/slash/flesh/moderate): wound injury(null, 2)
+2022-11-01T15:31:23.2327172Z Rough Abrasion (/datum/wound/slash/flesh/moderate): apply wound(the monkey left leg (/obj/item/bodypart/l_leg/monkey), 0, null, 0, 2)
+2022-11-01T15:31:23.2327747Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): check wounding(2, 8, 5, 15, 2)
+2022-11-01T15:31:23.2328155Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): receive damage(8, 0, 0, 0, 1, null, 5, 15, 1, 2)
+2022-11-01T15:31:23.2328594Z Monkey (/datum/species/monkey): apply damage(8, "brute", "l_leg", 0, Anthony Hayhurst (461) (/mob/living/carbon/human), 0, 0, 5, 15, 1, 2)
+2022-11-01T15:31:23.2329362Z Monkey (/datum/species/monkey): spec attacked by(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), the monkey left leg (/obj/item/bodypart/l_leg/monkey), Anthony Hayhurst (461) (/mob/living/carbon/human))
+2022-11-01T15:31:23.2329835Z ...
+2022-11-01T15:31:23.2330578Z Anthony Hayhurst (461) (/mob/living/carbon/human): attackby(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), null)
+2022-11-01T15:31:23.2331348Z the glass shiv (/obj/item/knife/shiv): melee attack chain(Abigail Schmidt (295) (/mob/living/carbon/human), Anthony Hayhurst (461) (/mob/living/carbon/human), null)
+2022-11-01T15:31:23.2332042Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): monkey attack(/datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), Anthony Hayhurst (461) (/mob/living/carbon/human), 0.8, 0)
+2022-11-01T15:31:23.2332773Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): perform(0.8, /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), "BB_monkey_current_attack_targe...")
+2022-11-01T15:31:23.2333442Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): ProcessBehavior(0.8, /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob))
+2022-11-01T15:31:23.2333980Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): process(0.1)
+2022-11-01T15:31:23.2334424Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): fire(0)
+2022-11-01T15:31:23.2334875Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): ignite(0)
+2022-11-01T15:31:23.2335885Z Master (/datum/controller/master): Loop(2)
+2022-11-01T15:31:23.2336391Z Master (/datum/controller/master): StartProcessing(0)
+2022-11-01T15:31:44.6315657Z ##[error][15:31:23] Runtime in _forensics.dm,232: Cannot execute null.resolve().
+ proc name: check blood (/datum/forensics/proc/check_blood)
+ src: /datum/forensics (/datum/forensics)
+ call stack:
+ /datum/forensics (/datum/forensics): check blood()
+ /datum/forensics (/datum/forensics): New(the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter), null, null, /list (/list), null)
+ the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter): add blood DNA(/list (/list))
+ Anthony Hayhurst (461) (/mob/living/carbon/human): spray blood(2, 1)
+ Rough Abrasion (/datum/wound/slash/flesh/moderate): wound injury(null, 2)
+ Rough Abrasion (/datum/wound/slash/flesh/moderate): apply wound(the monkey left leg (/obj/item/bodypart/l_leg/monkey), 0, null, 0, 2)
+ the monkey left leg (/obj/item/bodypart/l_leg/monkey): check wounding(2, 8, 5, 15, 2)
+ the monkey left leg (/obj/item/bodypart/l_leg/monkey): receive damage(8, 0, 0, 0, 1, null, 5, 15, 1, 2)
+ Monkey (/datum/species/monkey): apply damage(8, "brute", "l_leg", 0, Anthony Hayhurst (461) (/mob/living/carbon/human), 0, 0, 5, 15, 1, 2)
+ Monkey (/datum/species/monkey): spec attacked by(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), the monkey left leg (/obj/item/bodypart/l_leg/monkey), Anthony Hayhurst (461) (/mob/living/carbon/human))
+ ...
+ Anthony Hayhurst (461) (/mob/living/carbon/human): attackby(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), null)
+ the glass shiv (/obj/item/knife/shiv): melee attack chain(Abigail Schmidt (295) (/mob/living/carbon/human), Anthony Hayhurst (461) (/mob/living/carbon/human), null)
+ /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): monkey attack(/datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), Anthony Hayhurst (461) (/mob/living/carbon/human), 0.8, 0)
+ /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): perform(0.8, /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), "BB_monkey_current_attack_targe...")
+ /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): ProcessBehavior(0.8, /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob))
+ /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): process(0.1)
+ AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): fire(0)
+ AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): ignite(0)
+ Master (/datum/controller/master): Loop(2)
+ Master (/datum/controller/master): StartProcessing(0)
+2022-11-01T15:31:44.6330863Z ##[error]Monkey Business caused 1 runtimes
+2022-11-01T15:31:44.6331536Z FAILURE #1: [15:31:23] Runtime in _forensics.dm,232: Cannot execute null.resolve().
+2022-11-01T15:31:44.6331910Z proc name: check blood (/datum/forensics/proc/check_blood)
+2022-11-01T15:31:44.6332223Z src: /datum/forensics (/datum/forensics)
+2022-11-01T15:31:44.6332475Z call stack:
+2022-11-01T15:31:44.6332738Z /datum/forensics (/datum/forensics): check blood()
+2022-11-01T15:31:44.6333171Z /datum/forensics (/datum/forensics): New(the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter), null, null, /list (/list), null)
+2022-11-01T15:31:44.6333653Z the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter): add blood DNA(/list (/list))
+2022-11-01T15:31:44.6334238Z Anthony Hayhurst (461) (/mob/living/carbon/human): spray blood(2, 1)
+2022-11-01T15:31:44.6334605Z Rough Abrasion (/datum/wound/slash/flesh/moderate): wound injury(null, 2)
+2022-11-01T15:31:44.6335055Z Rough Abrasion (/datum/wound/slash/flesh/moderate): apply wound(the monkey left leg (/obj/item/bodypart/l_leg/monkey), 0, null, 0, 2)
+2022-11-01T15:31:44.6335679Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): check wounding(2, 8, 5, 15, 2)
+2022-11-01T15:31:44.6336429Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): receive damage(8, 0, 0, 0, 1, null, 5, 15, 1, 2)
+2022-11-01T15:31:44.6336913Z Monkey (/datum/species/monkey): apply damage(8, "brute", "l_leg", 0, Anthony Hayhurst (461) (/mob/living/carbon/human), 0, 0, 5, 15, 1, 2)
+2022-11-01T15:31:44.6337727Z Monkey (/datum/species/monkey): spec attacked by(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), the monkey left leg (/obj/item/bodypart/l_leg/monkey), Anthony Hayhurst (461) (/mob/living/carbon/human))
+2022-11-01T15:31:44.6338196Z ...
+2022-11-01T15:31:44.6338557Z Anthony Hayhurst (461) (/mob/living/carbon/human): attackby(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), null)
+2022-11-01T15:31:44.6339113Z the glass shiv (/obj/item/knife/shiv): melee attack chain(Abigail Schmidt (295) (/mob/living/carbon/human), Anthony Hayhurst (461) (/mob/living/carbon/human), null)
+2022-11-01T15:31:44.6339859Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): monkey attack(/datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), Anthony Hayhurst (461) (/mob/living/carbon/human), 0.8, 0)
+2022-11-01T15:31:44.6340560Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): perform(0.8, /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), "BB_monkey_current_attack_targe...")
+2022-11-01T15:31:44.6341189Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): ProcessBehavior(0.8, /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob))
+2022-11-01T15:31:44.6341689Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): process(0.1)
+2022-11-01T15:31:44.6342103Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): fire(0)
+2022-11-01T15:31:44.6342523Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): ignite(0)
+2022-11-01T15:31:44.6342869Z Master (/datum/controller/master): Loop(2)
+2022-11-01T15:31:44.6343234Z Master (/datum/controller/master): StartProcessing(0) at _forensics.dm:232
+2022-11-01T15:31:44.6345243Z ##[error][1;31mFAIL[0m /datum/unit_test/monkey_business 38.6s
+2022-11-01T15:31:46.9833542Z ##[group]/datum/unit_test/create_and_destroy
+2022-11-01T15:37:15.1785471Z
+2022-11-01T15:37:15.1787041Z [1;32mPASS[0m /datum/unit_test/create_and_destroy 328.2s
+2022-11-01T15:37:15.1788074Z ##[endgroup]
+2022-11-01T15:37:15.2115771Z Shutting down Chat subsystem...
+2022-11-01T15:37:15.2116567Z Shutting down Init Profiler subsystem...
+2022-11-01T15:37:15.2208167Z Shutting down Ban Cache subsystem...
+2022-11-01T15:37:15.2208478Z Shutting down Stat Panels subsystem...
+2022-11-01T15:37:15.2208750Z Shutting down Explosions subsystem...
+2022-11-01T15:37:15.2209680Z Shutting down Pathfinder subsystem...
+2022-11-01T15:37:15.2210086Z Shutting down Minor Mapping subsystem...
+2022-11-01T15:37:15.2210409Z Shutting down Shuttle subsystem...
+2022-11-01T15:37:15.2210690Z Shutting down Lighting subsystem...
+2022-11-01T15:37:15.2210997Z Shutting down XKeyScore subsystem...
+2022-11-01T15:37:15.2211299Z Shutting down PRISM subsystem...
+2022-11-01T15:37:15.2211603Z Shutting down Icon Smoothing subsystem...
+2022-11-01T15:37:15.2211910Z Shutting down Assets subsystem...
+2022-11-01T15:37:15.2212179Z Shutting down Vote subsystem...
+2022-11-01T15:37:15.2212502Z Shutting down Persistent Paintings subsystem...
+2022-11-01T15:37:15.2212991Z Shutting down Persistence subsystem...
+2022-11-01T15:37:15.2213473Z Shutting down Atmospherics subsystem...
+2022-11-01T15:37:15.2213821Z Shutting down Wiremod Composite Templates subsystem...
+2022-11-01T15:37:15.2214138Z Shutting down Wet floors subsystem...
+2022-11-01T15:37:15.2214441Z Shutting down Weather subsystem...
+2022-11-01T15:37:15.2214736Z Shutting down Wardrobe subsystem...
+2022-11-01T15:37:15.2215362Z Shutting down Verb Manager subsystem...
+2022-11-01T15:37:15.2215678Z Shutting down Tram Process subsystem...
+2022-11-01T15:37:15.2215965Z Shutting down Traitor subsystem...
+2022-11-01T15:37:15.2216263Z Shutting down Throwing subsystem...
+2022-11-01T15:37:15.2216556Z Shutting down tgui subsystem...
+2022-11-01T15:37:15.2216873Z Shutting down Supermatter Cascade subsystem...
+2022-11-01T15:37:15.2217334Z Shutting down Sun subsystem...
+2022-11-01T15:37:15.2217957Z Shutting down Speech Controller subsystem...
+2022-11-01T15:37:15.2218246Z Shutting down Space Drift subsystem...
+2022-11-01T15:37:15.2218517Z Shutting down Smoke subsystem...
+2022-11-01T15:37:15.2218784Z Shutting down Singularity subsystem...
+2022-11-01T15:37:15.2219050Z Shutting down Radio subsystem...
+2022-11-01T15:37:15.2219464Z Shutting down Radiation subsystem...
+2022-11-01T15:37:15.2219884Z Shutting down Projectiles subsystem...
+2022-11-01T15:37:15.2220146Z Shutting down Processing subsystem...
+2022-11-01T15:37:15.2220418Z Shutting down Points of Interest subsystem...
+2022-11-01T15:37:15.2220689Z Shutting down Plumbing subsystem...
+2022-11-01T15:37:15.2221061Z Shutting down Ping subsystem...
+2022-11-01T15:37:15.2221313Z Shutting down Parallax subsystem...
+2022-11-01T15:37:15.2221568Z Shutting down pAI subsystem...
+2022-11-01T15:37:15.2221814Z Shutting down Overlay subsystem...
+2022-11-01T15:37:15.5486394Z Shutting down Objects subsystem...
+2022-11-01T15:37:15.5489952Z Shutting down Obj Tab Items subsystem...
+2022-11-01T15:37:15.5493560Z Shutting down NPC Pool subsystem...
+2022-11-01T15:37:15.5496794Z Shutting down Night Shift subsystem...
+2022-11-01T15:37:15.5500936Z Shutting down Movement Loops subsystem...
+2022-11-01T15:37:15.5503981Z Shutting down Movement Handler subsystem...
+2022-11-01T15:37:15.5507931Z Shutting down MouseEntered subsystem...
+2022-11-01T15:37:15.5511418Z Shutting down Mood subsystem...
+2022-11-01T15:37:15.5514382Z Shutting down Mobs subsystem...
+2022-11-01T15:37:15.5517620Z Shutting down Materials subsystem...
+2022-11-01T15:37:15.5520737Z Shutting down Lua Scripting subsystem...
+2022-11-01T15:37:15.5698324Z Shutting down Library Loading subsystem...
+2022-11-01T15:37:15.5702028Z Shutting down Lag Switch subsystem...
+2022-11-01T15:37:15.5705452Z Shutting down Idling NPC Pool subsystem...
+2022-11-01T15:37:15.5708861Z Shutting down Foam subsystem...
+2022-11-01T15:37:15.5711826Z Shutting down Fluid subsystem...
+2022-11-01T15:37:15.5714787Z Shutting down Fire Burning subsystem...
+2022-11-01T15:37:15.5717774Z Shutting down Fast Processing subsystem...
+2022-11-01T15:37:15.5720765Z Shutting down Eigenstates subsystem...
+2022-11-01T15:37:15.5724720Z Shutting down Disease subsystem...
+2022-11-01T15:37:15.5728367Z Shutting down Datum Component System subsystem...
+2022-11-01T15:37:15.5731629Z Shutting down Conveyor Belts subsystem...
+2022-11-01T15:37:15.5735561Z Shutting down Communications subsystem...
+2022-11-01T15:37:15.5741612Z Shutting down Clock Component subsystem...
+2022-11-01T15:37:15.5741985Z Shutting down Circuit Components subsystem...
+2022-11-01T15:37:15.5744678Z Shutting down Blackmarket subsystem...
+2022-11-01T15:37:15.5746962Z Shutting down Basic Avoidance subsystem...
+2022-11-01T15:37:15.5747274Z Shutting down Aura Healing subsystem...
+2022-11-01T15:37:15.5747561Z Shutting down Augury subsystem...
+2022-11-01T15:37:15.5749911Z Shutting down Asset Loading subsystem...
+2022-11-01T15:37:15.5754181Z Shutting down Antag HUDs subsystem...
+2022-11-01T15:37:15.5758062Z Shutting down Ambience subsystem...
+2022-11-01T15:37:15.5761140Z Shutting down Addiction subsystem...
+2022-11-01T15:37:15.5765437Z Shutting down Acid subsystem...
+2022-11-01T15:37:15.5766113Z Shutting down Timer subsystem...
+2022-11-01T15:37:15.5767908Z Shutting down Sound Loops subsystem...
+2022-11-01T15:37:15.5769204Z Shutting down Runechat subsystem...
+2022-11-01T15:37:15.5770456Z Shutting down Skills subsystem...
+2022-11-01T15:37:15.5771990Z Shutting down Machines subsystem...
+2022-11-01T15:37:15.5772983Z Shutting down Language subsystem...
+2022-11-01T15:37:15.5774580Z Shutting down Atoms subsystem...
+2022-11-01T15:37:15.5841490Z Shutting down Restaurant subsystem...
+2022-11-01T15:37:15.5842179Z Shutting down Economy subsystem...
+2022-11-01T15:37:15.5843973Z Shutting down Spatial Grid subsystem...
+2022-11-01T15:37:15.5846087Z Shutting down Networks subsystem...
+2022-11-01T15:37:15.5847879Z Shutting down Time Tracking subsystem...
+2022-11-01T15:37:15.5849604Z Shutting down Research subsystem...
+2022-11-01T15:37:15.5850285Z Shutting down Early Assets subsystem...
+2022-11-01T15:37:15.5850811Z Shutting down Mapping subsystem...
+2022-11-01T15:37:15.5852025Z Shutting down Trading Card Game subsystem...
+2022-11-01T15:37:15.5852482Z Shutting down Ticker subsystem...
+2022-11-01T15:37:15.5872565Z Unable to locate admins backup file.
+2022-11-01T15:37:15.5885253Z Shutting down AI Controller Ticker subsystem...
+2022-11-01T15:37:15.5885786Z Shutting down AI Behavior Ticker subsystem...
+2022-11-01T15:37:15.5886089Z Shutting down AI movement subsystem...
+2022-11-01T15:37:15.5886382Z Shutting down Jobs subsystem...
+2022-11-01T15:37:15.5886664Z Shutting down IDs and Access subsystem...
+2022-11-01T15:37:15.5887205Z Shutting down Events subsystem...
+2022-11-01T15:37:15.5887507Z Shutting down Reagents subsystem...
+2022-11-01T15:37:15.5887770Z Shutting down Quirks subsystem...
+2022-11-01T15:37:15.5888040Z Shutting down Station subsystem...
+2022-11-01T15:37:15.5888322Z Shutting down Achievements subsystem...
+2022-11-01T15:37:15.5888724Z Shutting down Discord subsystem...
+2022-11-01T15:37:15.5889010Z Shutting down Security Level subsystem...
+2022-11-01T15:37:15.5889306Z Shutting down Vis contents overlays subsystem...
+2022-11-01T15:37:15.5889608Z Shutting down Greyscale subsystem...
+2022-11-01T15:37:15.5889894Z Shutting down Instruments subsystem...
+2022-11-01T15:37:15.5890172Z Shutting down Sounds subsystem...
+2022-11-01T15:37:15.5893120Z Shutting down Input subsystem...
+2022-11-01T15:37:15.5893553Z Shutting down Server Tasks subsystem...
+2022-11-01T15:37:15.5893838Z Shutting down Blackbox subsystem...
+2022-11-01T15:37:15.5894135Z Shutting down Database subsystem...
+2022-11-01T15:37:15.5898881Z Shutting down Garbage subsystem...
+2022-11-01T15:37:19.6680958Z Shutting down Title Screen subsystem...
+2022-11-01T15:37:19.6687147Z Shutting down Profiler subsystem...
+2022-11-01T15:37:19.6687404Z Shutdown complete
+2022-11-01T15:37:19.6691132Z Test run failed!
+2022-11-01T15:37:19.6691327Z Total runtimes: 1
+2022-11-01T15:37:19.6691534Z Unit Tests failed!
+2022-11-01T15:37:23.9554639Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory
+2022-11-01T15:37:23.9572826Z ##[error]Process completed with exit code 1.
+2022-11-01T15:37:23.9632357Z ##[group]Run actions/upload-artifact@v3
+2022-11-01T15:37:23.9632655Z with:
+2022-11-01T15:37:23.9632880Z name: test_artifacts_tramstation
+2022-11-01T15:37:23.9633150Z path: data/screenshots_new/
+2022-11-01T15:37:23.9633405Z retention-days: 1
+2022-11-01T15:37:23.9633657Z if-no-files-found: warn
+2022-11-01T15:37:23.9633904Z ##[endgroup]
+2022-11-01T15:37:24.0862474Z With the provided path, there will be 85 files uploaded
+2022-11-01T15:37:24.0868892Z Starting artifact upload
+2022-11-01T15:37:24.0869932Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging
+2022-11-01T15:37:24.0872765Z Artifact name is valid!
+2022-11-01T15:37:24.2152427Z Container for artifact "test_artifacts_tramstation" successfully created. Starting upload of file(s)
+2022-11-01T15:37:31.3325316Z Total size of all the files uploaded is 138917 bytes
+2022-11-01T15:37:31.3326061Z File upload process has finished. Finalizing the artifact upload
+2022-11-01T15:37:31.4289346Z Artifact has been finalized. All files have been successfully uploaded!
+2022-11-01T15:37:31.4291368Z
+2022-11-01T15:37:31.4293992Z The raw size of all the files that were specified for upload is 139272 bytes
+2022-11-01T15:37:31.4298141Z The size of all the files that were uploaded is 138917 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage
+2022-11-01T15:37:31.4301961Z
+2022-11-01T15:37:31.4303707Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads
+2022-11-01T15:37:31.4304326Z
+2022-11-01T15:37:31.4305332Z Artifact test_artifacts_tramstation has been successfully uploaded!
+2022-11-01T15:37:31.4451625Z Post job cleanup.
+2022-11-01T15:37:31.5950708Z [command]/usr/bin/git version
+2022-11-01T15:37:31.6017097Z git version 2.38.1
+2022-11-01T15:37:31.6089966Z Temporarily overriding HOME='/home/runner/work/_temp/b4760186-42be-4069-aaa5-837bedeee4b8' before making global git config changes
+2022-11-01T15:37:31.6092488Z Adding repository directory to the temporary git global config as a safe directory
+2022-11-01T15:37:31.6100037Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2022-11-01T15:37:31.6160949Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2022-11-01T15:37:31.6210420Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
+2022-11-01T15:37:31.6542403Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2022-11-01T15:37:31.6580227Z http.https://github.com/.extraheader
+2022-11-01T15:37:31.6595477Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
+2022-11-01T15:37:31.6646421Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
+2022-11-01T15:37:31.7192910Z Print service container logs: e281b5d836644f53b33d06a88663b086_mysqllatest_c6a68e
+2022-11-01T15:37:31.7200768Z ##[command]/usr/bin/docker logs --details cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:37:31.7459373Z 2022-11-01T15:22:37.911886Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-11-01T15:37:31.7460001Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started.
+2022-11-01T15:37:31.7461115Z 2022-11-01T15:22:37.912008Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 79
+2022-11-01T15:37:31.7461587Z 2022-11-01T15:22:37.920633Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-11-01T15:37:31.7462180Z 2022-11-01T15:22:38.395422Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-11-01T15:37:31.7462662Z 2022-11-01T15:22:39.587998Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
+2022-11-01T15:37:31.7463283Z 2022-11-01T15:22:42.870247Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-11-01T15:37:31.7463804Z 2022-11-01T15:22:42.873029Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 128
+2022-11-01T15:37:31.7464196Z 2022-11-01T15:22:42.887863Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-11-01T15:37:31.7464742Z 2022-11-01T15:22:43.221367Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-11-01T15:37:31.7465133Z 2022-11-01T15:22:43.520686Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2022-11-01T15:37:31.7465779Z 2022-11-01T15:22:43.520748Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2022-11-01T15:37:31.7466727Z 2022-11-01T15:22:43.522020Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2022-11-01T15:37:31.7467384Z 2022-11-01T15:22:43.546149Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
+2022-11-01T15:37:31.7468097Z 2022-11-01T15:22:43.546223Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
+2022-11-01T15:37:31.7468696Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
+2022-11-01T15:37:31.7576656Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
+2022-11-01T15:37:31.7577123Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
+2022-11-01T15:37:31.7579077Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
+2022-11-01T15:37:31.7579519Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
+2022-11-01T15:37:31.7582066Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
+2022-11-01T15:37:31.7582539Z 2022-11-01T15:22:46.179932Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.31).
+2022-11-01T15:37:31.7583335Z 2022-11-01T15:22:47.016783Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL.
+2022-11-01T15:37:31.7583954Z 2022-11-01T15:22:47.446654Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-11-01T15:37:31.7584942Z 2022-11-01T15:22:47.448502Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 1
+2022-11-01T15:37:31.7585376Z 2022-11-01T15:22:47.455938Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-11-01T15:37:31.7585762Z 2022-11-01T15:22:47.684708Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-11-01T15:37:31.7586149Z 2022-11-01T15:22:47.881879Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2022-11-01T15:37:31.7586624Z 2022-11-01T15:22:47.881923Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2022-11-01T15:37:31.7587101Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started.
+2022-11-01T15:37:31.7587663Z 2022-11-01T15:22:47.883353Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2022-11-01T15:37:31.7588411Z 2022-11-01T15:22:47.904354Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
+2022-11-01T15:37:31.7588952Z 2022-11-01T15:22:47.904482Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
+2022-11-01T15:37:31.7589414Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Initializing database files
+2022-11-01T15:37:31.7589752Z 2022-11-01 15:22:42+00:00 [Note] [Entrypoint]: Database files initialized
+2022-11-01T15:37:31.7590084Z 2022-11-01 15:22:42+00:00 [Note] [Entrypoint]: Starting temporary server
+2022-11-01T15:37:31.7590409Z 2022-11-01 15:22:43+00:00 [Note] [Entrypoint]: Temporary server started.
+2022-11-01T15:37:31.7590742Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
+2022-11-01T15:37:31.7590984Z
+2022-11-01T15:37:31.7591244Z 2022-11-01 15:22:46+00:00 [Note] [Entrypoint]: Stopping temporary server
+2022-11-01T15:37:31.7591577Z 2022-11-01 15:22:47+00:00 [Note] [Entrypoint]: Temporary server stopped
+2022-11-01T15:37:31.7592516Z
+2022-11-01T15:37:31.7592791Z 2022-11-01 15:22:47+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
+2022-11-01T15:37:31.7593063Z
+2022-11-01T15:37:31.7608136Z Stop and remove container: e281b5d836644f53b33d06a88663b086_mysqllatest_c6a68e
+2022-11-01T15:37:31.7616365Z ##[command]/usr/bin/docker rm --force cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:37:32.0241098Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1
+2022-11-01T15:37:32.0279431Z Remove container network: github_network_7d8483aa88b2460d91b946ac72079065
+2022-11-01T15:37:32.0288111Z ##[command]/usr/bin/docker network rm github_network_7d8483aa88b2460d91b946ac72079065
+2022-11-01T15:37:32.1478643Z github_network_7d8483aa88b2460d91b946ac72079065
+2022-11-01T15:37:32.1688580Z Cleaning up orphan processes
diff --git a/tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt b/tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt
new file mode 100644
index 000000000000..a1a52cdb1a3f
--- /dev/null
+++ b/tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt
@@ -0,0 +1,8 @@
+2022-11-22T05:59:45.2618397Z ##[group]/datum/unit_test/shapeshift_spell
+2022-11-22T05:59:45.4118582Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4119786Z FAILURE #1: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.2618397Z ##[endgroup]
+2022-11-22T05:59:45.2618397Z ##[group]/datum/unit_test/more_shapeshift_spell
+2022-11-22T05:59:45.4118582Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4119786Z FAILURE #1: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.2618397Z ##[endgroup]
diff --git a/tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt b/tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt
new file mode 100644
index 000000000000..b151f1888e13
--- /dev/null
+++ b/tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt
@@ -0,0 +1,2466 @@
+2022-11-22T05:53:38.0374888Z Requested labels: ubuntu-20.04
+2022-11-22T05:53:38.0374935Z Job defined at: tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/71181/merge
+2022-11-22T05:53:38.0374956Z Waiting for a runner to pick up this job...
+2022-11-22T05:53:38.4265982Z Job is waiting for a hosted runner to come online.
+2022-11-22T05:53:41.3842133Z Job is about to start running on the hosted runner: GitHub Actions 11 (hosted)
+2022-11-22T05:53:43.5319684Z Current runner version: '2.299.1'
+2022-11-22T05:53:43.5346147Z ##[group]Operating System
+2022-11-22T05:53:43.5346780Z Ubuntu
+2022-11-22T05:53:43.5347041Z 20.04.5
+2022-11-22T05:53:43.5347353Z LTS
+2022-11-22T05:53:43.5347672Z ##[endgroup]
+2022-11-22T05:53:43.5347952Z ##[group]Runner Image
+2022-11-22T05:53:43.5348342Z Image: ubuntu-20.04
+2022-11-22T05:53:43.5348676Z Version: 20221027.1
+2022-11-22T05:53:43.5349164Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221027.1/images/linux/Ubuntu2004-Readme.md
+2022-11-22T05:53:43.5349811Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221027.1
+2022-11-22T05:53:43.5350263Z ##[endgroup]
+2022-11-22T05:53:43.5350646Z ##[group]Runner Image Provisioner
+2022-11-22T05:53:43.5350944Z 2.0.91.1
+2022-11-22T05:53:43.5351255Z ##[endgroup]
+2022-11-22T05:53:43.5352178Z ##[group]GITHUB_TOKEN Permissions
+2022-11-22T05:53:43.5352874Z Actions: read
+2022-11-22T05:53:43.5353161Z Checks: read
+2022-11-22T05:53:43.5353647Z Contents: read
+2022-11-22T05:53:43.5353978Z Deployments: read
+2022-11-22T05:53:43.5354356Z Discussions: read
+2022-11-22T05:53:43.5354705Z Issues: read
+2022-11-22T05:53:43.5354973Z Metadata: read
+2022-11-22T05:53:43.5355295Z Packages: read
+2022-11-22T05:53:43.5355637Z Pages: read
+2022-11-22T05:53:43.5356005Z PullRequests: read
+2022-11-22T05:53:43.5356320Z RepositoryProjects: read
+2022-11-22T05:53:43.5356684Z SecurityEvents: read
+2022-11-22T05:53:43.5357015Z Statuses: read
+2022-11-22T05:53:43.5357311Z ##[endgroup]
+2022-11-22T05:53:43.5360971Z Secret source: None
+2022-11-22T05:53:43.5361464Z Prepare workflow directory
+2022-11-22T05:53:43.6494787Z Prepare all required actions
+2022-11-22T05:53:43.6676576Z Getting action download info
+2022-11-22T05:53:43.8661995Z Download action repository 'actions/checkout@v3' (SHA:93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8)
+2022-11-22T05:53:44.2330502Z Download action repository 'actions/cache@v3' (SHA:9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7)
+2022-11-22T05:53:44.4868016Z Download action repository 'actions/upload-artifact@v3' (SHA:83fd05a356d7e2593de66fc9913b3002723633cb)
+2022-11-22T05:53:44.7641359Z Uses: tgstation/tgstation/.github/workflows/run_integration_tests.yml
+2022-11-22T05:53:44.7643311Z ##[group] Inputs
+2022-11-22T05:53:44.7643604Z map: metastation
+2022-11-22T05:53:44.7643819Z major:
+2022-11-22T05:53:44.7643991Z minor:
+2022-11-22T05:53:44.7644186Z ##[endgroup]
+2022-11-22T05:53:44.7644691Z Complete job name: Integration Tests (metastation) / run_integration_tests
+2022-11-22T05:53:44.8338079Z ##[group]Checking docker version
+2022-11-22T05:53:44.8354483Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}'
+2022-11-22T05:53:45.0506135Z '1.41'
+2022-11-22T05:53:45.0515561Z Docker daemon API version: '1.41'
+2022-11-22T05:53:45.0515967Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}'
+2022-11-22T05:53:45.0778446Z '1.41'
+2022-11-22T05:53:45.0797454Z Docker client API version: '1.41'
+2022-11-22T05:53:45.0803406Z ##[endgroup]
+2022-11-22T05:53:45.0807033Z ##[group]Clean up resources from previous jobs
+2022-11-22T05:53:45.0813032Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=290506"
+2022-11-22T05:53:45.1033571Z ##[command]/usr/bin/docker network prune --force --filter "label=290506"
+2022-11-22T05:53:45.1259718Z ##[endgroup]
+2022-11-22T05:53:45.1260017Z ##[group]Create local container network
+2022-11-22T05:53:45.1270797Z ##[command]/usr/bin/docker network create --label 290506 github_network_7853d588c20f407bba7b04c3e70db729
+2022-11-22T05:53:45.1987626Z 71dabce427017ea3bab6d7ce48f6c7aaee980f9942b9d66f36e69e74f5fd921f
+2022-11-22T05:53:45.2004385Z ##[endgroup]
+2022-11-22T05:53:45.2093406Z ##[group]Starting mysql service container
+2022-11-22T05:53:45.2113754Z ##[command]/usr/bin/docker pull mysql:latest
+2022-11-22T05:53:45.4670300Z latest: Pulling from library/mysql
+2022-11-22T05:53:45.5358977Z 0bb5c0c24818: Pulling fs layer
+2022-11-22T05:53:45.5359400Z cbb3106fbb5a: Pulling fs layer
+2022-11-22T05:53:45.5359691Z 550536ae1d5e: Pulling fs layer
+2022-11-22T05:53:45.5360232Z 33f98928796e: Pulling fs layer
+2022-11-22T05:53:45.5360486Z a341087cff11: Pulling fs layer
+2022-11-22T05:53:45.5360746Z 0e26ac5b33f6: Pulling fs layer
+2022-11-22T05:53:45.5360985Z c883b83a7112: Pulling fs layer
+2022-11-22T05:53:45.5361246Z 873af5c876c6: Pulling fs layer
+2022-11-22T05:53:45.5361483Z 33f98928796e: Waiting
+2022-11-22T05:53:45.5361701Z a341087cff11: Waiting
+2022-11-22T05:53:45.5361926Z 0e26ac5b33f6: Waiting
+2022-11-22T05:53:45.5362161Z c883b83a7112: Waiting
+2022-11-22T05:53:45.5362390Z 8fe8ebd061d5: Pulling fs layer
+2022-11-22T05:53:45.5362660Z 7ac2553cf6b4: Pulling fs layer
+2022-11-22T05:53:45.5362912Z ad655e218e12: Pulling fs layer
+2022-11-22T05:53:45.5363152Z 8fe8ebd061d5: Waiting
+2022-11-22T05:53:45.5363368Z 7ac2553cf6b4: Waiting
+2022-11-22T05:53:45.5363591Z ad655e218e12: Waiting
+2022-11-22T05:53:45.5364183Z 873af5c876c6: Waiting
+2022-11-22T05:53:45.6234256Z cbb3106fbb5a: Download complete
+2022-11-22T05:53:45.6623068Z 550536ae1d5e: Verifying Checksum
+2022-11-22T05:53:45.6623379Z 550536ae1d5e: Download complete
+2022-11-22T05:53:45.7431784Z a341087cff11: Verifying Checksum
+2022-11-22T05:53:45.7432683Z a341087cff11: Download complete
+2022-11-22T05:53:45.8330384Z 0e26ac5b33f6: Verifying Checksum
+2022-11-22T05:53:45.8331535Z 0e26ac5b33f6: Download complete
+2022-11-22T05:53:45.8722359Z 0bb5c0c24818: Verifying Checksum
+2022-11-22T05:53:45.8722993Z 0bb5c0c24818: Download complete
+2022-11-22T05:53:45.8885518Z 33f98928796e: Verifying Checksum
+2022-11-22T05:53:45.8886144Z 33f98928796e: Download complete
+2022-11-22T05:53:45.9620666Z 873af5c876c6: Verifying Checksum
+2022-11-22T05:53:45.9624337Z 873af5c876c6: Download complete
+2022-11-22T05:53:46.0723260Z 7ac2553cf6b4: Verifying Checksum
+2022-11-22T05:53:46.0729266Z 7ac2553cf6b4: Download complete
+2022-11-22T05:53:46.1847787Z ad655e218e12: Verifying Checksum
+2022-11-22T05:53:46.1852352Z ad655e218e12: Download complete
+2022-11-22T05:53:46.4992758Z 8fe8ebd061d5: Verifying Checksum
+2022-11-22T05:53:46.4993194Z 8fe8ebd061d5: Download complete
+2022-11-22T05:53:46.6873819Z c883b83a7112: Verifying Checksum
+2022-11-22T05:53:46.6894121Z c883b83a7112: Download complete
+2022-11-22T05:53:47.4927005Z 0bb5c0c24818: Pull complete
+2022-11-22T05:53:48.3726655Z cbb3106fbb5a: Pull complete
+2022-11-22T05:53:48.4410442Z 550536ae1d5e: Pull complete
+2022-11-22T05:53:48.6472190Z 33f98928796e: Pull complete
+2022-11-22T05:53:48.7065871Z a341087cff11: Pull complete
+2022-11-22T05:53:48.7593552Z 0e26ac5b33f6: Pull complete
+2022-11-22T05:53:50.6234832Z c883b83a7112: Pull complete
+2022-11-22T05:53:50.6783015Z 873af5c876c6: Pull complete
+2022-11-22T05:53:55.9655421Z 8fe8ebd061d5: Pull complete
+2022-11-22T05:53:56.0172449Z 7ac2553cf6b4: Pull complete
+2022-11-22T05:53:56.0721706Z ad655e218e12: Pull complete
+2022-11-22T05:53:56.0770468Z Digest: sha256:96439dd0d8d085cd90c8001be2c9dde07b8a68b472bd20efcbe3df78cff66492
+2022-11-22T05:53:56.0780303Z Status: Downloaded newer image for mysql:latest
+2022-11-22T05:53:56.0800496Z docker.io/library/mysql:latest
+2022-11-22T05:53:56.0907615Z ##[command]/usr/bin/docker create --name 57e9ed27eab042ee8653063f2a3e4b8e_mysqllatest_56fbdc --label 290506 --network github_network_7853d588c20f407bba7b04c3e70db729 --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest
+2022-11-22T05:53:56.1330409Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:53:56.1355904Z ##[command]/usr/bin/docker start 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:53:56.5058287Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:53:56.5093538Z ##[command]/usr/bin/docker ps --all --filter id=46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
+2022-11-22T05:53:56.5325566Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df Up Less than a second (health: starting)
+2022-11-22T05:53:56.5337249Z ##[command]/usr/bin/docker port 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:53:56.5611482Z 3306/tcp -> 0.0.0.0:49153
+2022-11-22T05:53:56.5612227Z 3306/tcp -> :::49153
+2022-11-22T05:53:56.5704537Z ##[endgroup]
+2022-11-22T05:53:56.5734437Z ##[group]Waiting for all services to be ready
+2022-11-22T05:53:56.5780170Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:53:56.6025583Z starting
+2022-11-22T05:53:56.6049671Z mysql service is starting, waiting 2 seconds before checking again.
+2022-11-22T05:53:58.6031859Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:53:58.6340318Z starting
+2022-11-22T05:53:58.6357312Z mysql service is starting, waiting 3 seconds before checking again.
+2022-11-22T05:54:02.3718080Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:54:02.4089096Z starting
+2022-11-22T05:54:02.4104252Z mysql service is starting, waiting 8 seconds before checking again.
+2022-11-22T05:54:10.5021256Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T05:54:10.5229049Z healthy
+2022-11-22T05:54:10.5246329Z mysql service is healthy.
+2022-11-22T05:54:10.5246744Z ##[endgroup]
+2022-11-22T05:54:10.5622212Z ##[group]Run actions/checkout@v3
+2022-11-22T05:54:10.5622478Z with:
+2022-11-22T05:54:10.5622701Z repository: tgstation/tgstation
+2022-11-22T05:54:10.5623165Z token: ***
+2022-11-22T05:54:10.5623358Z ssh-strict: true
+2022-11-22T05:54:10.5623595Z persist-credentials: true
+2022-11-22T05:54:10.5623831Z clean: true
+2022-11-22T05:54:10.5624017Z fetch-depth: 1
+2022-11-22T05:54:10.5624216Z lfs: false
+2022-11-22T05:54:10.5624410Z submodules: false
+2022-11-22T05:54:10.5624622Z set-safe-directory: true
+2022-11-22T05:54:10.5624849Z ##[endgroup]
+2022-11-22T05:54:10.8769664Z Syncing repository: tgstation/tgstation
+2022-11-22T05:54:10.8771464Z ##[group]Getting Git version info
+2022-11-22T05:54:10.8771995Z Working directory is '/home/runner/work/tgstation/tgstation'
+2022-11-22T05:54:10.8772502Z [command]/usr/bin/git version
+2022-11-22T05:54:10.8934189Z git version 2.38.1
+2022-11-22T05:54:10.8936302Z ##[endgroup]
+2022-11-22T05:54:10.8957434Z Temporarily overriding HOME='/home/runner/work/_temp/98913b85-f6f6-46e0-b153-ead562301846' before making global git config changes
+2022-11-22T05:54:10.8957893Z Adding repository directory to the temporary git global config as a safe directory
+2022-11-22T05:54:10.8958437Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2022-11-22T05:54:10.9000496Z Deleting the contents of '/home/runner/work/tgstation/tgstation'
+2022-11-22T05:54:10.9006615Z ##[group]Initializing the repository
+2022-11-22T05:54:10.9011194Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation
+2022-11-22T05:54:10.9106800Z hint: Using 'master' as the name for the initial branch. This default branch name
+2022-11-22T05:54:10.9107434Z hint: is subject to change. To configure the initial branch name to use in all
+2022-11-22T05:54:10.9108265Z hint: of your new repositories, which will suppress this warning, call:
+2022-11-22T05:54:10.9108574Z hint:
+2022-11-22T05:54:10.9109084Z hint: git config --global init.defaultBranch
+2022-11-22T05:54:10.9109349Z hint:
+2022-11-22T05:54:10.9109712Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
+2022-11-22T05:54:10.9110192Z hint: 'development'. The just-created branch can be renamed via this command:
+2022-11-22T05:54:10.9110453Z hint:
+2022-11-22T05:54:10.9110705Z hint: git branch -m
+2022-11-22T05:54:10.9123730Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/
+2022-11-22T05:54:10.9133692Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation
+2022-11-22T05:54:10.9191164Z ##[endgroup]
+2022-11-22T05:54:10.9191935Z ##[group]Disabling automatic garbage collection
+2022-11-22T05:54:10.9196662Z [command]/usr/bin/git config --local gc.auto 0
+2022-11-22T05:54:10.9229900Z ##[endgroup]
+2022-11-22T05:54:10.9231230Z ##[group]Setting up auth
+2022-11-22T05:54:10.9239946Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2022-11-22T05:54:10.9275132Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
+2022-11-22T05:54:10.9691507Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2022-11-22T05:54:10.9715174Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
+2022-11-22T05:54:10.9955394Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
+2022-11-22T05:54:10.9987844Z ##[endgroup]
+2022-11-22T05:54:10.9988301Z ##[group]Fetching the repository
+2022-11-22T05:54:10.9999455Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +806eced1b6aa2166e665748be44c5c519833b2e2:refs/remotes/pull/71181/merge
+2022-11-22T05:54:11.4745200Z remote: Enumerating objects: 12670, done.
+2022-11-22T05:54:11.4781948Z remote: Counting objects: 0% (1/12670)
+2022-11-22T05:54:11.4788862Z remote: Counting objects: 1% (127/12670)
+2022-11-22T05:54:11.4791723Z remote: Counting objects: 2% (254/12670)
+2022-11-22T05:54:11.4795385Z remote: Counting objects: 3% (381/12670)
+2022-11-22T05:54:11.4798193Z remote: Counting objects: 4% (507/12670)
+2022-11-22T05:54:11.4812287Z remote: Counting objects: 5% (634/12670)
+2022-11-22T05:54:11.4813111Z remote: Counting objects: 6% (761/12670)
+2022-11-22T05:54:11.4816606Z remote: Counting objects: 7% (887/12670)
+2022-11-22T05:54:11.4816922Z remote: Counting objects: 8% (1014/12670)
+2022-11-22T05:54:11.4820085Z remote: Counting objects: 9% (1141/12670)
+2022-11-22T05:54:11.4820719Z remote: Counting objects: 10% (1267/12670)
+2022-11-22T05:54:11.4825610Z remote: Counting objects: 11% (1394/12670)
+2022-11-22T05:54:11.4833209Z remote: Counting objects: 12% (1521/12670)
+2022-11-22T05:54:11.4834855Z remote: Counting objects: 13% (1648/12670)
+2022-11-22T05:54:11.4836592Z remote: Counting objects: 14% (1774/12670)
+2022-11-22T05:54:11.4841147Z remote: Counting objects: 15% (1901/12670)
+2022-11-22T05:54:11.4842686Z remote: Counting objects: 16% (2028/12670)
+2022-11-22T05:54:11.4845844Z remote: Counting objects: 17% (2154/12670)
+2022-11-22T05:54:11.4850655Z remote: Counting objects: 18% (2281/12670)
+2022-11-22T05:54:11.4856457Z remote: Counting objects: 19% (2408/12670)
+2022-11-22T05:54:11.4860749Z remote: Counting objects: 20% (2534/12670)
+2022-11-22T05:54:11.4866335Z remote: Counting objects: 21% (2661/12670)
+2022-11-22T05:54:11.4868281Z remote: Counting objects: 22% (2788/12670)
+2022-11-22T05:54:11.4875422Z remote: Counting objects: 23% (2915/12670)
+2022-11-22T05:54:11.4878698Z remote: Counting objects: 24% (3041/12670)
+2022-11-22T05:54:11.4881887Z remote: Counting objects: 25% (3168/12670)
+2022-11-22T05:54:11.4885601Z remote: Counting objects: 26% (3295/12670)
+2022-11-22T05:54:11.4885891Z remote: Counting objects: 27% (3421/12670)
+2022-11-22T05:54:11.4895978Z remote: Counting objects: 28% (3548/12670)
+2022-11-22T05:54:11.4899479Z remote: Counting objects: 29% (3675/12670)
+2022-11-22T05:54:11.4900702Z remote: Counting objects: 30% (3801/12670)
+2022-11-22T05:54:11.4905007Z remote: Counting objects: 31% (3928/12670)
+2022-11-22T05:54:11.4913601Z remote: Counting objects: 32% (4055/12670)
+2022-11-22T05:54:11.4913882Z remote: Counting objects: 33% (4182/12670)
+2022-11-22T05:54:11.4929604Z remote: Counting objects: 34% (4308/12670)
+2022-11-22T05:54:11.4929903Z remote: Counting objects: 35% (4435/12670)
+2022-11-22T05:54:11.5015998Z remote: Counting objects: 36% (4562/12670)
+2022-11-22T05:54:11.5016343Z remote: Counting objects: 37% (4688/12670)
+2022-11-22T05:54:11.5016621Z remote: Counting objects: 38% (4815/12670)
+2022-11-22T05:54:11.5016894Z remote: Counting objects: 39% (4942/12670)
+2022-11-22T05:54:11.5017152Z remote: Counting objects: 40% (5068/12670)
+2022-11-22T05:54:11.5017647Z remote: Counting objects: 41% (5195/12670)
+2022-11-22T05:54:11.5017996Z remote: Counting objects: 42% (5322/12670)
+2022-11-22T05:54:11.5018305Z remote: Counting objects: 43% (5449/12670)
+2022-11-22T05:54:11.5018644Z remote: Counting objects: 44% (5575/12670)
+2022-11-22T05:54:11.5018982Z remote: Counting objects: 45% (5702/12670)
+2022-11-22T05:54:11.5019303Z remote: Counting objects: 46% (5829/12670)
+2022-11-22T05:54:11.5019637Z remote: Counting objects: 47% (5955/12670)
+2022-11-22T05:54:11.5019982Z remote: Counting objects: 48% (6082/12670)
+2022-11-22T05:54:11.5020319Z remote: Counting objects: 49% (6209/12670)
+2022-11-22T05:54:11.5020778Z remote: Counting objects: 50% (6335/12670)
+2022-11-22T05:54:11.5021186Z remote: Counting objects: 51% (6462/12670)
+2022-11-22T05:54:11.5021532Z remote: Counting objects: 52% (6589/12670)
+2022-11-22T05:54:11.5021820Z remote: Counting objects: 53% (6716/12670)
+2022-11-22T05:54:11.5022178Z remote: Counting objects: 54% (6842/12670)
+2022-11-22T05:54:11.5022546Z remote: Counting objects: 55% (6969/12670)
+2022-11-22T05:54:11.5022845Z remote: Counting objects: 56% (7096/12670)
+2022-11-22T05:54:11.5023177Z remote: Counting objects: 57% (7222/12670)
+2022-11-22T05:54:11.5023513Z remote: Counting objects: 58% (7349/12670)
+2022-11-22T05:54:11.5023845Z remote: Counting objects: 59% (7476/12670)
+2022-11-22T05:54:11.5074038Z remote: Counting objects: 60% (7602/12670)
+2022-11-22T05:54:11.5074496Z remote: Counting objects: 61% (7729/12670)
+2022-11-22T05:54:11.5074840Z remote: Counting objects: 62% (7856/12670)
+2022-11-22T05:54:11.5077738Z remote: Counting objects: 63% (7983/12670)
+2022-11-22T05:54:11.5078154Z remote: Counting objects: 64% (8109/12670)
+2022-11-22T05:54:11.5080069Z remote: Counting objects: 65% (8236/12670)
+2022-11-22T05:54:11.5080464Z remote: Counting objects: 66% (8363/12670)
+2022-11-22T05:54:11.5080767Z remote: Counting objects: 67% (8489/12670)
+2022-11-22T05:54:11.5081113Z remote: Counting objects: 68% (8616/12670)
+2022-11-22T05:54:11.5081547Z remote: Counting objects: 69% (8743/12670)
+2022-11-22T05:54:11.5083609Z remote: Counting objects: 70% (8869/12670)
+2022-11-22T05:54:11.5084045Z remote: Counting objects: 71% (8996/12670)
+2022-11-22T05:54:11.5084412Z remote: Counting objects: 72% (9123/12670)
+2022-11-22T05:54:11.5086279Z remote: Counting objects: 73% (9250/12670)
+2022-11-22T05:54:11.5086641Z remote: Counting objects: 74% (9376/12670)
+2022-11-22T05:54:11.5087027Z remote: Counting objects: 75% (9503/12670)
+2022-11-22T05:54:11.5087358Z remote: Counting objects: 76% (9630/12670)
+2022-11-22T05:54:11.5087661Z remote: Counting objects: 77% (9756/12670)
+2022-11-22T05:54:11.5088036Z remote: Counting objects: 78% (9883/12670)
+2022-11-22T05:54:11.5088378Z remote: Counting objects: 79% (10010/12670)
+2022-11-22T05:54:11.5088856Z remote: Counting objects: 80% (10136/12670)
+2022-11-22T05:54:11.5089215Z remote: Counting objects: 81% (10263/12670)
+2022-11-22T05:54:11.5089563Z remote: Counting objects: 82% (10390/12670)
+2022-11-22T05:54:11.5089941Z remote: Counting objects: 83% (10517/12670)
+2022-11-22T05:54:11.5090397Z remote: Counting objects: 84% (10643/12670)
+2022-11-22T05:54:11.5090737Z remote: Counting objects: 85% (10770/12670)
+2022-11-22T05:54:11.5091087Z remote: Counting objects: 86% (10897/12670)
+2022-11-22T05:54:11.5091375Z remote: Counting objects: 87% (11023/12670)
+2022-11-22T05:54:11.5091895Z remote: Counting objects: 88% (11150/12670)
+2022-11-22T05:54:11.5092268Z remote: Counting objects: 89% (11277/12670)
+2022-11-22T05:54:11.5092621Z remote: Counting objects: 90% (11403/12670)
+2022-11-22T05:54:11.5092910Z remote: Counting objects: 91% (11530/12670)
+2022-11-22T05:54:11.5093293Z remote: Counting objects: 92% (11657/12670)
+2022-11-22T05:54:11.5093629Z remote: Counting objects: 93% (11784/12670)
+2022-11-22T05:54:11.5093976Z remote: Counting objects: 94% (11910/12670)
+2022-11-22T05:54:11.5094262Z remote: Counting objects: 95% (12037/12670)
+2022-11-22T05:54:11.5094599Z remote: Counting objects: 96% (12164/12670)
+2022-11-22T05:54:11.5099944Z remote: Counting objects: 97% (12290/12670)
+2022-11-22T05:54:11.5108887Z remote: Counting objects: 98% (12417/12670)
+2022-11-22T05:54:11.5114474Z remote: Counting objects: 99% (12544/12670)
+2022-11-22T05:54:11.5114975Z remote: Counting objects: 100% (12670/12670)
+2022-11-22T05:54:11.5115371Z remote: Counting objects: 100% (12670/12670), done.
+2022-11-22T05:54:11.5294385Z remote: Compressing objects: 0% (1/11138)
+2022-11-22T05:54:11.5455556Z remote: Compressing objects: 1% (112/11138)
+2022-11-22T05:54:11.5603717Z remote: Compressing objects: 2% (223/11138)
+2022-11-22T05:54:11.5715131Z remote: Compressing objects: 3% (335/11138)
+2022-11-22T05:54:11.5791988Z remote: Compressing objects: 4% (446/11138)
+2022-11-22T05:54:11.5875970Z remote: Compressing objects: 5% (557/11138)
+2022-11-22T05:54:11.5992597Z remote: Compressing objects: 6% (669/11138)
+2022-11-22T05:54:11.6261135Z remote: Compressing objects: 7% (780/11138)
+2022-11-22T05:54:11.6614165Z remote: Compressing objects: 8% (892/11138)
+2022-11-22T05:54:11.6929090Z remote: Compressing objects: 9% (1003/11138)
+2022-11-22T05:54:11.7520585Z remote: Compressing objects: 10% (1114/11138)
+2022-11-22T05:54:11.8656642Z remote: Compressing objects: 11% (1226/11138)
+2022-11-22T05:54:12.3621233Z remote: Compressing objects: 12% (1337/11138)
+2022-11-22T05:54:12.4278664Z remote: Compressing objects: 13% (1448/11138)
+2022-11-22T05:54:12.5681269Z remote: Compressing objects: 14% (1560/11138)
+2022-11-22T05:54:12.5742648Z remote: Compressing objects: 14% (1564/11138)
+2022-11-22T05:54:12.6042588Z remote: Compressing objects: 15% (1671/11138)
+2022-11-22T05:54:12.6277778Z remote: Compressing objects: 16% (1783/11138)
+2022-11-22T05:54:12.6502958Z remote: Compressing objects: 17% (1894/11138)
+2022-11-22T05:54:12.6639889Z remote: Compressing objects: 18% (2005/11138)
+2022-11-22T05:54:12.6825168Z remote: Compressing objects: 19% (2117/11138)
+2022-11-22T05:54:12.7061189Z remote: Compressing objects: 20% (2228/11138)
+2022-11-22T05:54:12.7163241Z remote: Compressing objects: 21% (2339/11138)
+2022-11-22T05:54:12.7229844Z remote: Compressing objects: 22% (2451/11138)
+2022-11-22T05:54:12.7963458Z remote: Compressing objects: 23% (2562/11138)
+2022-11-22T05:54:12.8191300Z remote: Compressing objects: 24% (2674/11138)
+2022-11-22T05:54:12.8429274Z remote: Compressing objects: 25% (2785/11138)
+2022-11-22T05:54:12.8590322Z remote: Compressing objects: 26% (2896/11138)
+2022-11-22T05:54:12.8794121Z remote: Compressing objects: 27% (3008/11138)
+2022-11-22T05:54:12.9360005Z remote: Compressing objects: 28% (3119/11138)
+2022-11-22T05:54:12.9509115Z remote: Compressing objects: 29% (3231/11138)
+2022-11-22T05:54:12.9789410Z remote: Compressing objects: 30% (3342/11138)
+2022-11-22T05:54:13.0109912Z remote: Compressing objects: 31% (3453/11138)
+2022-11-22T05:54:13.0315139Z remote: Compressing objects: 32% (3565/11138)
+2022-11-22T05:54:13.0679208Z remote: Compressing objects: 33% (3676/11138)
+2022-11-22T05:54:13.1106278Z remote: Compressing objects: 34% (3787/11138)
+2022-11-22T05:54:13.1559648Z remote: Compressing objects: 35% (3899/11138)
+2022-11-22T05:54:13.1815080Z remote: Compressing objects: 36% (4010/11138)
+2022-11-22T05:54:13.2032125Z remote: Compressing objects: 37% (4122/11138)
+2022-11-22T05:54:13.2508874Z remote: Compressing objects: 38% (4233/11138)
+2022-11-22T05:54:13.2873404Z remote: Compressing objects: 39% (4344/11138)
+2022-11-22T05:54:13.3141434Z remote: Compressing objects: 40% (4456/11138)
+2022-11-22T05:54:13.3472418Z remote: Compressing objects: 41% (4567/11138)
+2022-11-22T05:54:13.3689876Z remote: Compressing objects: 42% (4678/11138)
+2022-11-22T05:54:13.4026125Z remote: Compressing objects: 43% (4790/11138)
+2022-11-22T05:54:13.4351768Z remote: Compressing objects: 44% (4901/11138)
+2022-11-22T05:54:13.4635455Z remote: Compressing objects: 45% (5013/11138)
+2022-11-22T05:54:13.4913930Z remote: Compressing objects: 46% (5124/11138)
+2022-11-22T05:54:13.5126550Z remote: Compressing objects: 47% (5235/11138)
+2022-11-22T05:54:13.5178454Z remote: Compressing objects: 47% (5330/11138)
+2022-11-22T05:54:13.5387150Z remote: Compressing objects: 48% (5347/11138)
+2022-11-22T05:54:13.5667572Z remote: Compressing objects: 49% (5458/11138)
+2022-11-22T05:54:13.5885095Z remote: Compressing objects: 50% (5569/11138)
+2022-11-22T05:54:13.6141160Z remote: Compressing objects: 51% (5681/11138)
+2022-11-22T05:54:13.6409490Z remote: Compressing objects: 52% (5792/11138)
+2022-11-22T05:54:13.6653623Z remote: Compressing objects: 53% (5904/11138)
+2022-11-22T05:54:13.6948366Z remote: Compressing objects: 54% (6015/11138)
+2022-11-22T05:54:13.7220019Z remote: Compressing objects: 55% (6126/11138)
+2022-11-22T05:54:13.7483195Z remote: Compressing objects: 56% (6238/11138)
+2022-11-22T05:54:13.7731314Z remote: Compressing objects: 57% (6349/11138)
+2022-11-22T05:54:13.8003867Z remote: Compressing objects: 58% (6461/11138)
+2022-11-22T05:54:13.8256482Z remote: Compressing objects: 59% (6572/11138)
+2022-11-22T05:54:13.8642960Z remote: Compressing objects: 60% (6683/11138)
+2022-11-22T05:54:13.8869630Z remote: Compressing objects: 61% (6795/11138)
+2022-11-22T05:54:13.9178442Z remote: Compressing objects: 62% (6906/11138)
+2022-11-22T05:54:13.9401919Z remote: Compressing objects: 63% (7017/11138)
+2022-11-22T05:54:13.9693523Z remote: Compressing objects: 64% (7129/11138)
+2022-11-22T05:54:13.9916641Z remote: Compressing objects: 65% (7240/11138)
+2022-11-22T05:54:14.0243553Z remote: Compressing objects: 66% (7352/11138)
+2022-11-22T05:54:14.0431165Z remote: Compressing objects: 67% (7463/11138)
+2022-11-22T05:54:14.0432887Z remote: Compressing objects: 68% (7574/11138)
+2022-11-22T05:54:14.0475569Z remote: Compressing objects: 69% (7686/11138)
+2022-11-22T05:54:14.0480770Z remote: Compressing objects: 70% (7797/11138)
+2022-11-22T05:54:14.0481393Z remote: Compressing objects: 71% (7908/11138)
+2022-11-22T05:54:14.0481820Z remote: Compressing objects: 72% (8020/11138)
+2022-11-22T05:54:14.0482177Z remote: Compressing objects: 73% (8131/11138)
+2022-11-22T05:54:14.0482859Z remote: Compressing objects: 74% (8243/11138)
+2022-11-22T05:54:14.0488239Z remote: Compressing objects: 75% (8354/11138)
+2022-11-22T05:54:14.0488623Z remote: Compressing objects: 76% (8465/11138)
+2022-11-22T05:54:14.0522233Z remote: Compressing objects: 77% (8577/11138)
+2022-11-22T05:54:14.0522712Z remote: Compressing objects: 78% (8688/11138)
+2022-11-22T05:54:14.0523143Z remote: Compressing objects: 79% (8800/11138)
+2022-11-22T05:54:14.0553594Z remote: Compressing objects: 80% (8911/11138)
+2022-11-22T05:54:14.0592171Z remote: Compressing objects: 81% (9022/11138)
+2022-11-22T05:54:14.0592578Z remote: Compressing objects: 82% (9134/11138)
+2022-11-22T05:54:14.0689423Z remote: Compressing objects: 83% (9245/11138)
+2022-11-22T05:54:14.0774112Z remote: Compressing objects: 84% (9356/11138)
+2022-11-22T05:54:14.0774568Z remote: Compressing objects: 85% (9468/11138)
+2022-11-22T05:54:14.0775008Z remote: Compressing objects: 86% (9579/11138)
+2022-11-22T05:54:14.0775359Z remote: Compressing objects: 87% (9691/11138)
+2022-11-22T05:54:14.0775775Z remote: Compressing objects: 88% (9802/11138)
+2022-11-22T05:54:14.0776226Z remote: Compressing objects: 89% (9913/11138)
+2022-11-22T05:54:14.0778641Z remote: Compressing objects: 90% (10025/11138)
+2022-11-22T05:54:14.0956337Z remote: Compressing objects: 91% (10136/11138)
+2022-11-22T05:54:14.0978087Z remote: Compressing objects: 92% (10247/11138)
+2022-11-22T05:54:14.0990638Z remote: Compressing objects: 93% (10359/11138)
+2022-11-22T05:54:14.1012960Z remote: Compressing objects: 94% (10470/11138)
+2022-11-22T05:54:14.1037619Z remote: Compressing objects: 95% (10582/11138)
+2022-11-22T05:54:14.1050702Z remote: Compressing objects: 96% (10693/11138)
+2022-11-22T05:54:14.1063360Z remote: Compressing objects: 97% (10804/11138)
+2022-11-22T05:54:14.1081312Z remote: Compressing objects: 98% (10916/11138)
+2022-11-22T05:54:14.1113135Z remote: Compressing objects: 99% (11027/11138)
+2022-11-22T05:54:14.1113531Z remote: Compressing objects: 100% (11138/11138)
+2022-11-22T05:54:14.1113923Z remote: Compressing objects: 100% (11138/11138), done.
+2022-11-22T05:54:14.1437731Z Receiving objects: 0% (1/12670)
+2022-11-22T05:54:14.7969071Z Receiving objects: 1% (127/12670)
+2022-11-22T05:54:14.8098924Z Receiving objects: 2% (254/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:14.9436264Z Receiving objects: 3% (381/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:14.9491670Z Receiving objects: 4% (507/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:14.9541674Z Receiving objects: 5% (634/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:14.9697968Z Receiving objects: 6% (761/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:14.9906135Z Receiving objects: 7% (887/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0124892Z Receiving objects: 8% (1014/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0247894Z Receiving objects: 9% (1141/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0464602Z Receiving objects: 10% (1267/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0642253Z Receiving objects: 11% (1394/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0749336Z Receiving objects: 12% (1521/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0761823Z Receiving objects: 13% (1648/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.0886767Z Receiving objects: 14% (1774/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.1085477Z Receiving objects: 15% (1901/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.1165503Z Receiving objects: 16% (2028/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.1466407Z Receiving objects: 16% (2071/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.1775614Z Receiving objects: 17% (2154/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.2046679Z Receiving objects: 18% (2281/12670), 1.64 MiB | 2.91 MiB/s
+2022-11-22T05:54:15.2350074Z Receiving objects: 19% (2408/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.2648667Z Receiving objects: 20% (2534/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.2950136Z Receiving objects: 21% (2661/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.3229118Z Receiving objects: 22% (2788/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.3508301Z Receiving objects: 23% (2915/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.3736900Z Receiving objects: 24% (3041/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.3928328Z Receiving objects: 25% (3168/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.4102878Z Receiving objects: 26% (3295/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.4387561Z Receiving objects: 27% (3421/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.4581868Z Receiving objects: 28% (3548/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.4720691Z Receiving objects: 29% (3675/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.4949914Z Receiving objects: 30% (3801/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.5088093Z Receiving objects: 31% (3928/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.5251105Z Receiving objects: 32% (4055/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.5419154Z Receiving objects: 33% (4182/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.5562173Z Receiving objects: 34% (4308/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.5822789Z Receiving objects: 35% (4435/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.6098583Z Receiving objects: 36% (4562/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.6486705Z Receiving objects: 37% (4688/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.6836221Z Receiving objects: 38% (4815/12670), 5.54 MiB | 5.20 MiB/s
+2022-11-22T05:54:15.7184372Z Receiving objects: 39% (4942/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.7304334Z Receiving objects: 40% (5068/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.7558967Z Receiving objects: 41% (5195/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.7948469Z Receiving objects: 42% (5322/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.8261068Z Receiving objects: 43% (5449/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.8392502Z Receiving objects: 44% (5575/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.8543246Z Receiving objects: 45% (5702/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.8682415Z Receiving objects: 46% (5829/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.8784329Z Receiving objects: 47% (5955/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.8925819Z Receiving objects: 48% (6082/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.9001936Z Receiving objects: 49% (6209/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:15.9514165Z Receiving objects: 50% (6335/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:16.0360562Z Receiving objects: 51% (6462/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:16.1833774Z Receiving objects: 52% (6589/12670), 10.06 MiB | 6.41 MiB/s
+2022-11-22T05:54:16.6045841Z Receiving objects: 52% (6598/12670), 17.71 MiB | 8.56 MiB/s
+2022-11-22T05:54:16.8791679Z Receiving objects: 53% (6716/12670), 17.71 MiB | 8.56 MiB/s
+2022-11-22T05:54:16.9124702Z Receiving objects: 54% (6842/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.0161642Z Receiving objects: 55% (6969/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.0595048Z Receiving objects: 56% (7096/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.0975600Z Receiving objects: 57% (7222/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.1141406Z Receiving objects: 58% (7349/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.1405634Z Receiving objects: 58% (7401/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.1720210Z Receiving objects: 59% (7476/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.2015621Z Receiving objects: 60% (7602/12670), 31.08 MiB | 12.10 MiB/s
+2022-11-22T05:54:17.2421975Z Receiving objects: 61% (7729/12670), 49.89 MiB | 16.26 MiB/s
+2022-11-22T05:54:17.2500420Z Receiving objects: 62% (7856/12670), 49.89 MiB | 16.26 MiB/s
+2022-11-22T05:54:17.5988832Z Receiving objects: 63% (7983/12670), 49.89 MiB | 16.26 MiB/s
+2022-11-22T05:54:17.9560268Z Receiving objects: 64% (8109/12670), 49.89 MiB | 16.26 MiB/s
+2022-11-22T05:54:18.0169362Z Receiving objects: 65% (8236/12670), 74.38 MiB | 20.85 MiB/s
+2022-11-22T05:54:18.0610635Z Receiving objects: 66% (8363/12670), 74.38 MiB | 20.85 MiB/s
+2022-11-22T05:54:18.1142278Z Receiving objects: 67% (8489/12670), 74.38 MiB | 20.85 MiB/s
+2022-11-22T05:54:18.1185495Z Receiving objects: 67% (8604/12670), 74.38 MiB | 20.85 MiB/s
+2022-11-22T05:54:18.1538486Z Receiving objects: 68% (8616/12670), 74.38 MiB | 20.85 MiB/s
+2022-11-22T05:54:18.2062287Z Receiving objects: 69% (8743/12670), 74.38 MiB | 20.85 MiB/s
+2022-11-22T05:54:18.2545599Z Receiving objects: 70% (8869/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.3571596Z Receiving objects: 71% (8996/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.3758401Z Receiving objects: 72% (9123/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.3859281Z Receiving objects: 73% (9250/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.3976873Z Receiving objects: 74% (9376/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.4120242Z Receiving objects: 75% (9503/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.4306434Z Receiving objects: 76% (9630/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.5319302Z Receiving objects: 77% (9756/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.5320722Z Receiving objects: 78% (9883/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.5526871Z Receiving objects: 79% (10010/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.5891167Z Receiving objects: 80% (10136/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.5967265Z Receiving objects: 81% (10263/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6052595Z Receiving objects: 82% (10390/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6120029Z Receiving objects: 83% (10517/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6174493Z Receiving objects: 84% (10643/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6234676Z Receiving objects: 85% (10770/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6299547Z Receiving objects: 86% (10897/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6365696Z Receiving objects: 87% (11023/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.6532983Z Receiving objects: 88% (11150/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.7047669Z Receiving objects: 89% (11277/12670), 104.45 MiB | 25.68 MiB/s
+2022-11-22T05:54:18.7436095Z Receiving objects: 90% (11403/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7478331Z Receiving objects: 91% (11530/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7516826Z Receiving objects: 92% (11657/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7572212Z Receiving objects: 93% (11784/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7627489Z Receiving objects: 94% (11910/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7680868Z Receiving objects: 95% (12037/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7719714Z Receiving objects: 96% (12164/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7750985Z Receiving objects: 97% (12290/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7895759Z Receiving objects: 98% (12417/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7934049Z Receiving objects: 99% (12544/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7934871Z remote: Total 12670 (delta 1563), reused 7049 (delta 1400), pack-reused 0
+2022-11-22T05:54:18.7957233Z Receiving objects: 100% (12670/12670), 135.69 MiB | 29.71 MiB/s
+2022-11-22T05:54:18.7957672Z Receiving objects: 100% (12670/12670), 139.64 MiB | 29.83 MiB/s, done.
+2022-11-22T05:54:18.7991376Z Resolving deltas: 0% (0/1563)
+2022-11-22T05:54:18.8007713Z Resolving deltas: 1% (16/1563)
+2022-11-22T05:54:18.8018232Z Resolving deltas: 2% (32/1563)
+2022-11-22T05:54:18.8025488Z Resolving deltas: 3% (47/1563)
+2022-11-22T05:54:18.8083114Z Resolving deltas: 4% (63/1563)
+2022-11-22T05:54:18.8129512Z Resolving deltas: 5% (79/1563)
+2022-11-22T05:54:18.8137107Z Resolving deltas: 6% (94/1563)
+2022-11-22T05:54:18.8145420Z Resolving deltas: 7% (110/1563)
+2022-11-22T05:54:18.8197932Z Resolving deltas: 8% (126/1563)
+2022-11-22T05:54:18.8224181Z Resolving deltas: 9% (141/1563)
+2022-11-22T05:54:18.8237686Z Resolving deltas: 10% (157/1563)
+2022-11-22T05:54:18.8264690Z Resolving deltas: 11% (172/1563)
+2022-11-22T05:54:18.8270115Z Resolving deltas: 12% (188/1563)
+2022-11-22T05:54:18.8278891Z Resolving deltas: 13% (204/1563)
+2022-11-22T05:54:18.8282387Z Resolving deltas: 14% (219/1563)
+2022-11-22T05:54:18.8286062Z Resolving deltas: 15% (235/1563)
+2022-11-22T05:54:18.8289540Z Resolving deltas: 16% (251/1563)
+2022-11-22T05:54:18.8293460Z Resolving deltas: 17% (266/1563)
+2022-11-22T05:54:18.8296655Z Resolving deltas: 18% (282/1563)
+2022-11-22T05:54:18.8300378Z Resolving deltas: 19% (297/1563)
+2022-11-22T05:54:18.8303678Z Resolving deltas: 20% (313/1563)
+2022-11-22T05:54:18.8306940Z Resolving deltas: 21% (329/1563)
+2022-11-22T05:54:18.8321902Z Resolving deltas: 22% (344/1563)
+2022-11-22T05:54:18.8337564Z Resolving deltas: 23% (360/1563)
+2022-11-22T05:54:18.8351461Z Resolving deltas: 24% (376/1563)
+2022-11-22T05:54:18.8376364Z Resolving deltas: 25% (391/1563)
+2022-11-22T05:54:18.8447413Z Resolving deltas: 26% (407/1563)
+2022-11-22T05:54:18.8455814Z Resolving deltas: 27% (423/1563)
+2022-11-22T05:54:18.8519899Z Resolving deltas: 28% (438/1563)
+2022-11-22T05:54:18.8528664Z Resolving deltas: 29% (454/1563)
+2022-11-22T05:54:18.8546501Z Resolving deltas: 30% (469/1563)
+2022-11-22T05:54:18.8556266Z Resolving deltas: 31% (485/1563)
+2022-11-22T05:54:18.8583895Z Resolving deltas: 32% (501/1563)
+2022-11-22T05:54:18.8597665Z Resolving deltas: 33% (516/1563)
+2022-11-22T05:54:18.8667049Z Resolving deltas: 34% (532/1563)
+2022-11-22T05:54:18.8690494Z Resolving deltas: 35% (548/1563)
+2022-11-22T05:54:18.8719328Z Resolving deltas: 36% (563/1563)
+2022-11-22T05:54:18.8733653Z Resolving deltas: 37% (579/1563)
+2022-11-22T05:54:18.8737567Z Resolving deltas: 38% (594/1563)
+2022-11-22T05:54:18.8741272Z Resolving deltas: 39% (610/1563)
+2022-11-22T05:54:18.8745180Z Resolving deltas: 40% (626/1563)
+2022-11-22T05:54:18.8749043Z Resolving deltas: 41% (641/1563)
+2022-11-22T05:54:18.8752838Z Resolving deltas: 42% (657/1563)
+2022-11-22T05:54:18.8756750Z Resolving deltas: 43% (673/1563)
+2022-11-22T05:54:18.8760570Z Resolving deltas: 44% (688/1563)
+2022-11-22T05:54:18.8764977Z Resolving deltas: 45% (704/1563)
+2022-11-22T05:54:18.8768748Z Resolving deltas: 46% (719/1563)
+2022-11-22T05:54:18.8774098Z Resolving deltas: 47% (735/1563)
+2022-11-22T05:54:18.8775178Z Resolving deltas: 48% (751/1563)
+2022-11-22T05:54:18.8775461Z Resolving deltas: 49% (766/1563)
+2022-11-22T05:54:18.8778107Z Resolving deltas: 50% (782/1563)
+2022-11-22T05:54:18.8783837Z Resolving deltas: 51% (798/1563)
+2022-11-22T05:54:18.8788309Z Resolving deltas: 52% (813/1563)
+2022-11-22T05:54:18.8793942Z Resolving deltas: 53% (829/1563)
+2022-11-22T05:54:18.8800371Z Resolving deltas: 54% (845/1563)
+2022-11-22T05:54:18.8804490Z Resolving deltas: 55% (860/1563)
+2022-11-22T05:54:18.8807918Z Resolving deltas: 56% (876/1563)
+2022-11-22T05:54:18.8811794Z Resolving deltas: 57% (891/1563)
+2022-11-22T05:54:18.8816897Z Resolving deltas: 58% (907/1563)
+2022-11-22T05:54:18.8820531Z Resolving deltas: 59% (923/1563)
+2022-11-22T05:54:18.8826617Z Resolving deltas: 60% (938/1563)
+2022-11-22T05:54:18.8830227Z Resolving deltas: 61% (954/1563)
+2022-11-22T05:54:18.8833639Z Resolving deltas: 62% (970/1563)
+2022-11-22T05:54:18.8837198Z Resolving deltas: 63% (985/1563)
+2022-11-22T05:54:18.8841013Z Resolving deltas: 64% (1001/1563)
+2022-11-22T05:54:18.8847335Z Resolving deltas: 65% (1016/1563)
+2022-11-22T05:54:18.8852046Z Resolving deltas: 66% (1032/1563)
+2022-11-22T05:54:18.8856289Z Resolving deltas: 67% (1048/1563)
+2022-11-22T05:54:18.8861881Z Resolving deltas: 68% (1063/1563)
+2022-11-22T05:54:18.8865510Z Resolving deltas: 69% (1079/1563)
+2022-11-22T05:54:18.8870298Z Resolving deltas: 70% (1095/1563)
+2022-11-22T05:54:18.8873958Z Resolving deltas: 71% (1110/1563)
+2022-11-22T05:54:18.8879331Z Resolving deltas: 72% (1126/1563)
+2022-11-22T05:54:18.8884282Z Resolving deltas: 73% (1141/1563)
+2022-11-22T05:54:18.8887555Z Resolving deltas: 74% (1157/1563)
+2022-11-22T05:54:18.8893031Z Resolving deltas: 75% (1173/1563)
+2022-11-22T05:54:18.8897133Z Resolving deltas: 76% (1188/1563)
+2022-11-22T05:54:18.8902745Z Resolving deltas: 77% (1204/1563)
+2022-11-22T05:54:18.8907760Z Resolving deltas: 78% (1220/1563)
+2022-11-22T05:54:18.8915339Z Resolving deltas: 79% (1235/1563)
+2022-11-22T05:54:18.8919747Z Resolving deltas: 80% (1251/1563)
+2022-11-22T05:54:18.8925282Z Resolving deltas: 81% (1267/1563)
+2022-11-22T05:54:18.8930887Z Resolving deltas: 82% (1282/1563)
+2022-11-22T05:54:18.8939494Z Resolving deltas: 83% (1298/1563)
+2022-11-22T05:54:18.8943800Z Resolving deltas: 84% (1313/1563)
+2022-11-22T05:54:18.8952847Z Resolving deltas: 85% (1329/1563)
+2022-11-22T05:54:18.8957233Z Resolving deltas: 86% (1345/1563)
+2022-11-22T05:54:18.8964897Z Resolving deltas: 87% (1360/1563)
+2022-11-22T05:54:18.8974626Z Resolving deltas: 88% (1376/1563)
+2022-11-22T05:54:18.8981120Z Resolving deltas: 89% (1392/1563)
+2022-11-22T05:54:18.8991169Z Resolving deltas: 90% (1407/1563)
+2022-11-22T05:54:18.9004223Z Resolving deltas: 91% (1423/1563)
+2022-11-22T05:54:18.9017738Z Resolving deltas: 92% (1438/1563)
+2022-11-22T05:54:18.9022799Z Resolving deltas: 93% (1454/1563)
+2022-11-22T05:54:18.9029380Z Resolving deltas: 94% (1470/1563)
+2022-11-22T05:54:18.9033633Z Resolving deltas: 95% (1485/1563)
+2022-11-22T05:54:18.9044646Z Resolving deltas: 96% (1501/1563)
+2022-11-22T05:54:18.9053816Z Resolving deltas: 97% (1517/1563)
+2022-11-22T05:54:18.9057259Z Resolving deltas: 98% (1532/1563)
+2022-11-22T05:54:18.9061864Z Resolving deltas: 99% (1548/1563)
+2022-11-22T05:54:18.9069074Z Resolving deltas: 100% (1563/1563)
+2022-11-22T05:54:18.9069513Z Resolving deltas: 100% (1563/1563), done.
+2022-11-22T05:54:19.3818094Z From https://github.com/tgstation/tgstation
+2022-11-22T05:54:19.3819106Z * [new ref] 806eced1b6aa2166e665748be44c5c519833b2e2 -> pull/71181/merge
+2022-11-22T05:54:19.3843465Z ##[endgroup]
+2022-11-22T05:54:19.3844157Z ##[group]Determining the checkout info
+2022-11-22T05:54:19.3845757Z ##[endgroup]
+2022-11-22T05:54:19.3854920Z ##[group]Checking out the ref
+2022-11-22T05:54:19.3855731Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/71181/merge
+2022-11-22T05:54:20.4063926Z Updating files: 68% (8032/11696)
+2022-11-22T05:54:20.4275321Z Updating files: 69% (8071/11696)
+2022-11-22T05:54:20.4667553Z Updating files: 70% (8188/11696)
+2022-11-22T05:54:20.4748863Z Updating files: 71% (8305/11696)
+2022-11-22T05:54:20.4839310Z Updating files: 72% (8422/11696)
+2022-11-22T05:54:20.4912300Z Updating files: 73% (8539/11696)
+2022-11-22T05:54:20.4973377Z Updating files: 74% (8656/11696)
+2022-11-22T05:54:20.5018309Z Updating files: 75% (8772/11696)
+2022-11-22T05:54:20.5413696Z Updating files: 76% (8889/11696)
+2022-11-22T05:54:20.5531187Z Updating files: 77% (9006/11696)
+2022-11-22T05:54:20.5555866Z Updating files: 78% (9123/11696)
+2022-11-22T05:54:20.5753360Z Updating files: 79% (9240/11696)
+2022-11-22T05:54:20.5835545Z Updating files: 80% (9357/11696)
+2022-11-22T05:54:20.5898136Z Updating files: 81% (9474/11696)
+2022-11-22T05:54:20.5952825Z Updating files: 82% (9591/11696)
+2022-11-22T05:54:20.5998934Z Updating files: 83% (9708/11696)
+2022-11-22T05:54:20.6049707Z Updating files: 84% (9825/11696)
+2022-11-22T05:54:20.6100460Z Updating files: 85% (9942/11696)
+2022-11-22T05:54:20.6152185Z Updating files: 86% (10059/11696)
+2022-11-22T05:54:20.6202834Z Updating files: 87% (10176/11696)
+2022-11-22T05:54:20.6283782Z Updating files: 88% (10293/11696)
+2022-11-22T05:54:20.6506593Z Updating files: 89% (10410/11696)
+2022-11-22T05:54:20.6736171Z Updating files: 90% (10527/11696)
+2022-11-22T05:54:20.6788889Z Updating files: 91% (10644/11696)
+2022-11-22T05:54:20.6838906Z Updating files: 92% (10761/11696)
+2022-11-22T05:54:20.6898626Z Updating files: 93% (10878/11696)
+2022-11-22T05:54:20.6956323Z Updating files: 94% (10995/11696)
+2022-11-22T05:54:20.7015640Z Updating files: 95% (11112/11696)
+2022-11-22T05:54:20.7064247Z Updating files: 96% (11229/11696)
+2022-11-22T05:54:20.7113161Z Updating files: 97% (11346/11696)
+2022-11-22T05:54:20.7209831Z Updating files: 98% (11463/11696)
+2022-11-22T05:54:20.7272887Z Updating files: 99% (11580/11696)
+2022-11-22T05:54:20.7273303Z Updating files: 100% (11696/11696)
+2022-11-22T05:54:20.7275554Z Updating files: 100% (11696/11696), done.
+2022-11-22T05:54:20.7421345Z Note: switching to 'refs/remotes/pull/71181/merge'.
+2022-11-22T05:54:20.7421551Z
+2022-11-22T05:54:20.7421839Z You are in 'detached HEAD' state. You can look around, make experimental
+2022-11-22T05:54:20.7422215Z changes and commit them, and you can discard any commits you make in this
+2022-11-22T05:54:20.7422574Z state without impacting any branches by switching back to a branch.
+2022-11-22T05:54:20.7422770Z
+2022-11-22T05:54:20.7422934Z If you want to create a new branch to retain commits you create, you may
+2022-11-22T05:54:20.7423364Z do so (now or later) by using -c with the switch command. Example:
+2022-11-22T05:54:20.7423551Z
+2022-11-22T05:54:20.7423727Z git switch -c
+2022-11-22T05:54:20.7423871Z
+2022-11-22T05:54:20.7423975Z Or undo this operation with:
+2022-11-22T05:54:20.7424120Z
+2022-11-22T05:54:20.7424204Z git switch -
+2022-11-22T05:54:20.7424328Z
+2022-11-22T05:54:20.7424684Z Turn off this advice by setting config variable advice.detachedHead to false
+2022-11-22T05:54:20.7424902Z
+2022-11-22T05:54:20.7425103Z HEAD is now at 806eced Merge 417e724a9b957bc5b5f40526ff328526f1efe7f3 into 08a748704bfd2d68598c4c036723717421983145
+2022-11-22T05:54:20.7465533Z ##[endgroup]
+2022-11-22T05:54:20.7511808Z [command]/usr/bin/git log -1 --format='%H'
+2022-11-22T05:54:20.7544816Z '806eced1b6aa2166e665748be44c5c519833b2e2'
+2022-11-22T05:54:20.7875252Z ##[group]Run actions/cache@v3
+2022-11-22T05:54:20.7875497Z with:
+2022-11-22T05:54:20.7875691Z path: ~/BYOND
+2022-11-22T05:54:20.7875891Z key: Linux-byond-
+2022-11-22T05:54:20.7876098Z ##[endgroup]
+2022-11-22T05:54:21.3195522Z Received 4090426 of 4090426 (100.0%), 24.5 MBs/sec
+2022-11-22T05:54:21.3196161Z Cache Size: ~4 MB (4090426 B)
+2022-11-22T05:54:21.3216111Z [command]/usr/bin/tar --use-compress-program unzstd -xf /home/runner/work/_temp/b2d9ae3f-43dc-4494-a10d-0913d9199ba9/cache.tzst -P -C /home/runner/work/tgstation/tgstation
+2022-11-22T05:54:21.3633267Z Cache restored successfully
+2022-11-22T05:54:21.3869456Z Cache restored from key: Linux-byond-
+2022-11-22T05:54:21.4011996Z ##[group]Run sudo systemctl start mysql
+2022-11-22T05:54:21.4012363Z [36;1msudo systemctl start mysql[0m
+2022-11-22T05:54:21.4012678Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci;'[0m
+2022-11-22T05:54:21.4013012Z [36;1mmysql -u root -proot tg_ci < SQL/tgstation_schema.sql[0m
+2022-11-22T05:54:21.4013358Z [36;1mmysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;'[0m
+2022-11-22T05:54:21.4013736Z [36;1mmysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql[0m
+2022-11-22T05:54:21.4068798Z shell: /usr/bin/bash -e {0}
+2022-11-22T05:54:21.4069059Z ##[endgroup]
+2022-11-22T05:54:26.1328031Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-22T05:54:26.1632489Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-22T05:54:26.7713121Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-22T05:54:26.7789364Z mysql: [Warning] Using a password on the command line interface can be insecure.
+2022-11-22T05:54:27.1574220Z ##[group]Run sudo dpkg --add-architecture i386
+2022-11-22T05:54:27.1574565Z [36;1msudo dpkg --add-architecture i386[0m
+2022-11-22T05:54:27.1574835Z [36;1msudo apt update || true[0m
+2022-11-22T05:54:27.1575275Z [36;1msudo apt install -o APT::Immediate-Configure=false libssl1.1:i386[0m
+2022-11-22T05:54:27.1575591Z [36;1mbash tools/ci/install_rust_g.sh[0m
+2022-11-22T05:54:27.1627061Z shell: /usr/bin/bash -e {0}
+2022-11-22T05:54:27.1627322Z ##[endgroup]
+2022-11-22T05:54:27.3375235Z
+2022-11-22T05:54:27.3375988Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+2022-11-22T05:54:27.3376493Z
+2022-11-22T05:54:27.4285840Z Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease
+2022-11-22T05:54:27.4289676Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
+2022-11-22T05:54:27.4297956Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
+2022-11-22T05:54:27.4307795Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
+2022-11-22T05:54:27.4622061Z Get:5 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease [10.5 kB]
+2022-11-22T05:54:27.6682767Z Hit:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease
+2022-11-22T05:54:27.6820644Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2242 kB]
+2022-11-22T05:54:27.7080253Z Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [756 kB]
+2022-11-22T05:54:27.7153659Z Get:9 http://azure.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [391 kB]
+2022-11-22T05:54:27.7199273Z Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.1 kB]
+2022-11-22T05:54:27.7222773Z Get:11 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted i386 Packages [27.8 kB]
+2022-11-22T05:54:27.7303676Z Get:12 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1424 kB]
+2022-11-22T05:54:27.7515018Z Get:13 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [202 kB]
+2022-11-22T05:54:27.7544674Z Get:14 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [636 B]
+2022-11-22T05:54:27.7574161Z Get:15 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1003 kB]
+2022-11-22T05:54:27.7673252Z Get:16 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [704 kB]
+2022-11-22T05:54:27.8208601Z Get:17 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [233 kB]
+2022-11-22T05:54:27.8216256Z Get:18 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [23.1 kB]
+2022-11-22T05:54:27.8232910Z Get:19 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [24.4 kB]
+2022-11-22T05:54:27.8249854Z Get:20 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse i386 Packages [8448 B]
+2022-11-22T05:54:27.8266458Z Get:21 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [7316 B]
+2022-11-22T05:54:27.8273359Z Get:22 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [592 B]
+2022-11-22T05:54:27.8430731Z Get:23 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]
+2022-11-22T05:54:27.8448045Z Get:24 http://azure.archive.ubuntu.com/ubuntu focal-backports/main i386 Packages [36.1 kB]
+2022-11-22T05:54:27.8455777Z Get:25 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
+2022-11-22T05:54:27.8474467Z Get:26 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [24.0 kB]
+2022-11-22T05:54:27.8487869Z Get:27 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe i386 Packages [13.5 kB]
+2022-11-22T05:54:27.8504387Z Get:28 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [16.0 kB]
+2022-11-22T05:54:27.8546555Z Get:29 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [860 B]
+2022-11-22T05:54:27.9493534Z Get:30 http://azure.archive.ubuntu.com/ubuntu focal-security/main i386 Packages [523 kB]
+2022-11-22T05:54:27.9983671Z Get:31 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [1860 kB]
+2022-11-22T05:54:28.0182794Z Get:32 http://azure.archive.ubuntu.com/ubuntu focal-security/main Translation-en [305 kB]
+2022-11-22T05:54:28.0222410Z Get:33 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.2 kB]
+2022-11-22T05:54:28.0233838Z Get:34 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted i386 Packages [26.5 kB]
+2022-11-22T05:54:28.0249393Z Get:35 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1332 kB]
+2022-11-22T05:54:28.0380967Z Get:36 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted Translation-en [188 kB]
+2022-11-22T05:54:28.0408349Z Get:37 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [640 B]
+2022-11-22T05:54:28.0444696Z Get:38 http://azure.archive.ubuntu.com/ubuntu focal-security/universe i386 Packages [572 kB]
+2022-11-22T05:54:28.0502119Z Get:39 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [772 kB]
+2022-11-22T05:54:28.0585971Z Get:40 http://azure.archive.ubuntu.com/ubuntu focal-security/universe Translation-en [148 kB]
+2022-11-22T05:54:28.0636831Z Get:41 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [16.7 kB]
+2022-11-22T05:54:28.0654711Z Get:42 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [22.2 kB]
+2022-11-22T05:54:28.0669089Z Get:43 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse i386 Packages [7204 B]
+2022-11-22T05:54:28.0683649Z Get:44 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse Translation-en [5400 B]
+2022-11-22T05:54:28.1105332Z Get:45 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [516 B]
+2022-11-22T05:54:28.1142074Z Get:46 https://packages.microsoft.com/ubuntu/20.04/prod focal/main armhf Packages [29.1 kB]
+2022-11-22T05:54:28.1209782Z Get:47 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages [212 kB]
+2022-11-22T05:54:28.1419050Z Get:48 https://packages.microsoft.com/ubuntu/20.04/prod focal/main arm64 Packages [46.2 kB]
+2022-11-22T05:54:28.3678597Z Get:49 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 Packages [15.2 kB]
+2022-11-22T05:54:38.6427399Z Fetched 13.6 MB in 2s (5935 kB/s)
+2022-11-22T05:54:39.7808627Z Reading package lists...
+2022-11-22T05:54:40.0112436Z Building dependency tree...
+2022-11-22T05:54:40.0125566Z Reading state information...
+2022-11-22T05:54:40.1053352Z 85 packages can be upgraded. Run 'apt list --upgradable' to see them.
+2022-11-22T05:54:40.1155226Z
+2022-11-22T05:54:40.1156119Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+2022-11-22T05:54:40.1156379Z
+2022-11-22T05:54:40.1697963Z Reading package lists...
+2022-11-22T05:54:40.3785154Z Building dependency tree...
+2022-11-22T05:54:40.3851341Z Reading state information...
+2022-11-22T05:54:40.5578517Z The following additional packages will be installed:
+2022-11-22T05:54:40.5579769Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1 libgcc-s1:i386
+2022-11-22T05:54:40.5582977Z libidn2-0:i386 libunistring2:i386
+2022-11-22T05:54:40.5590112Z Suggested packages:
+2022-11-22T05:54:40.5590688Z glibc-doc:i386 locales:i386
+2022-11-22T05:54:40.6255739Z The following NEW packages will be installed:
+2022-11-22T05:54:40.6261367Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386
+2022-11-22T05:54:40.6266998Z libssl1.1:i386 libunistring2:i386
+2022-11-22T05:54:40.6273154Z The following packages will be upgraded:
+2022-11-22T05:54:40.6279277Z libgcc-s1
+2022-11-22T05:54:40.6671578Z 1 upgraded, 7 newly installed, 0 to remove and 84 not upgraded.
+2022-11-22T05:54:40.7568259Z Need to get 4528 kB of archives.
+2022-11-22T05:54:40.7569656Z After this operation, 19.3 MB of additional disk space will be used.
+2022-11-22T05:54:40.7571172Z Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libcrypt1 i386 1:4.4.10-10ubuntu4 [90.9 kB]
+2022-11-22T05:54:40.8228146Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libc6 i386 2.31-0ubuntu9.9 [2580 kB]
+2022-11-22T05:54:40.8872245Z Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 gcc-11-base i386 11.1.0-1ubuntu1~20.04 [19.0 kB]
+2022-11-22T05:54:40.9288307Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libunistring2 i386 0.9.10-2 [377 kB]
+2022-11-22T05:54:40.9540992Z Get:5 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libidn2-0 i386 2.2.0-2 [51.4 kB]
+2022-11-22T05:54:40.9732163Z Get:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libssl1.1 i386 1.1.1f-1ubuntu2.16 [1318 kB]
+2022-11-22T05:54:41.1393577Z Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main amd64 libgcc-s1 amd64 11.1.0-1ubuntu1~20.04 [42.1 kB]
+2022-11-22T05:54:41.3919926Z Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 libgcc-s1 i386 11.1.0-1ubuntu1~20.04 [50.0 kB]
+2022-11-22T05:54:41.9330770Z Preconfiguring packages ...
+2022-11-22T05:54:42.0223529Z Fetched 4528 kB in 1s (5289 kB/s)
+2022-11-22T05:54:42.0557174Z Selecting previously unselected package gcc-11-base:i386.
+2022-11-22T05:54:42.0854631Z (Reading database ...
+2022-11-22T05:54:42.0856650Z (Reading database ... 5%
+2022-11-22T05:54:42.0857135Z (Reading database ... 10%
+2022-11-22T05:54:42.0857616Z (Reading database ... 15%
+2022-11-22T05:54:42.0858054Z (Reading database ... 20%
+2022-11-22T05:54:42.0858479Z (Reading database ... 25%
+2022-11-22T05:54:42.0858956Z (Reading database ... 30%
+2022-11-22T05:54:42.0859370Z (Reading database ... 35%
+2022-11-22T05:54:42.0861988Z (Reading database ... 40%
+2022-11-22T05:54:42.0862367Z (Reading database ... 45%
+2022-11-22T05:54:42.0868447Z (Reading database ... 50%
+2022-11-22T05:54:42.1200369Z (Reading database ... 55%
+2022-11-22T05:54:42.1600440Z (Reading database ... 60%
+2022-11-22T05:54:42.2011877Z (Reading database ... 65%
+2022-11-22T05:54:42.2691087Z (Reading database ... 70%
+2022-11-22T05:54:42.3704401Z (Reading database ... 75%
+2022-11-22T05:54:42.4279826Z (Reading database ... 80%
+2022-11-22T05:54:42.5026921Z (Reading database ... 85%
+2022-11-22T05:54:42.6241054Z (Reading database ... 90%
+2022-11-22T05:54:42.6851914Z (Reading database ... 95%
+2022-11-22T05:54:42.6852580Z (Reading database ... 100%
+2022-11-22T05:54:42.6853325Z (Reading database ... 242126 files and directories currently installed.)
+2022-11-22T05:54:42.6940933Z Preparing to unpack .../0-gcc-11-base_11.1.0-1ubuntu1~20.04_i386.deb ...
+2022-11-22T05:54:42.7004541Z Unpacking gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-22T05:54:42.8039338Z Preparing to unpack .../1-libgcc-s1_11.1.0-1ubuntu1~20.04_amd64.deb ...
+2022-11-22T05:54:42.8690745Z Unpacking libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) over (10.3.0-1ubuntu1~20.04) ...
+2022-11-22T05:54:42.9070629Z Selecting previously unselected package libgcc-s1:i386.
+2022-11-22T05:54:42.9298797Z Preparing to unpack .../2-libgcc-s1_11.1.0-1ubuntu1~20.04_i386.deb ...
+2022-11-22T05:54:42.9315714Z Unpacking libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-22T05:54:42.9648689Z Selecting previously unselected package libcrypt1:i386.
+2022-11-22T05:54:42.9852885Z Preparing to unpack .../3-libcrypt1_1%3a4.4.10-10ubuntu4_i386.deb ...
+2022-11-22T05:54:42.9856149Z Unpacking libcrypt1:i386 (1:4.4.10-10ubuntu4) ...
+2022-11-22T05:54:43.0771392Z Selecting previously unselected package libc6:i386.
+2022-11-22T05:54:43.1007419Z Preparing to unpack .../4-libc6_2.31-0ubuntu9.9_i386.deb ...
+2022-11-22T05:54:43.2242069Z Unpacking libc6:i386 (2.31-0ubuntu9.9) ...
+2022-11-22T05:54:43.5298133Z Replacing files in old package libc6-i386 (2.31-0ubuntu9.9) ...
+2022-11-22T05:54:43.5688011Z Selecting previously unselected package libunistring2:i386.
+2022-11-22T05:54:43.5908746Z Preparing to unpack .../5-libunistring2_0.9.10-2_i386.deb ...
+2022-11-22T05:54:43.5926527Z Unpacking libunistring2:i386 (0.9.10-2) ...
+2022-11-22T05:54:43.7011902Z Selecting previously unselected package libidn2-0:i386.
+2022-11-22T05:54:43.7250698Z Preparing to unpack .../6-libidn2-0_2.2.0-2_i386.deb ...
+2022-11-22T05:54:43.7260936Z Unpacking libidn2-0:i386 (2.2.0-2) ...
+2022-11-22T05:54:43.8011769Z Selecting previously unselected package libssl1.1:i386.
+2022-11-22T05:54:43.8231978Z Preparing to unpack .../7-libssl1.1_1.1.1f-1ubuntu2.16_i386.deb ...
+2022-11-22T05:54:43.8249767Z Unpacking libssl1.1:i386 (1.1.1f-1ubuntu2.16) ...
+2022-11-22T05:54:43.9966260Z Setting up gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-22T05:54:44.0023499Z Setting up libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) ...
+2022-11-22T05:54:44.0074843Z Setting up libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ...
+2022-11-22T05:54:44.0147311Z Setting up libcrypt1:i386 (1:4.4.10-10ubuntu4) ...
+2022-11-22T05:54:44.0207900Z Setting up libc6:i386 (2.31-0ubuntu9.9) ...
+2022-11-22T05:54:44.2245544Z Setting up libssl1.1:i386 (1.1.1f-1ubuntu2.16) ...
+2022-11-22T05:54:44.3413101Z Setting up libunistring2:i386 (0.9.10-2) ...
+2022-11-22T05:54:44.3480700Z Setting up libidn2-0:i386 (2.2.0-2) ...
+2022-11-22T05:54:44.3526066Z Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
+2022-11-22T05:54:47.9184710Z 2022-11-22 05:54:47 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/92c6bbfc-0d51-48ea-b586-9cd01c071d25?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221122%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221122T055447Z&X-Amz-Expires=300&X-Amz-Signature=a32f997c627b97bfd5d0adc58e9308d7ad18409d943ce16b7a351e9c3ed708ae&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [72809008/72809008] -> "/home/runner/.byond/bin/librust_g.so" [1]
+2022-11-22T05:54:47.9588206Z linux-gate.so.1 (0xf7f26000)
+2022-11-22T05:54:47.9589002Z libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xf7758000)
+2022-11-22T05:54:47.9589713Z libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xf74a0000)
+2022-11-22T05:54:47.9590427Z libz.so.1 => /lib32/libz.so.1 (0xf7482000)
+2022-11-22T05:54:47.9591034Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7463000)
+2022-11-22T05:54:47.9603888Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7440000)
+2022-11-22T05:54:47.9604548Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf733b000)
+2022-11-22T05:54:47.9605162Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7335000)
+2022-11-22T05:54:47.9607450Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7146000)
+2022-11-22T05:54:47.9608010Z /lib/ld-linux.so.2 (0xf7f28000)
+2022-11-22T05:54:47.9651599Z ##[group]Run bash tools/ci/install_auxlua.sh
+2022-11-22T05:54:47.9651916Z [36;1mbash tools/ci/install_auxlua.sh[0m
+2022-11-22T05:54:47.9705175Z shell: /usr/bin/bash -e {0}
+2022-11-22T05:54:47.9705424Z ##[endgroup]
+2022-11-22T05:54:48.2148819Z 2022-11-22 05:54:48 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/bb55dc2f-8248-4032-ad66-b80cb61a84f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221122%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221122T055448Z&X-Amz-Expires=300&X-Amz-Signature=a48846f5bb1d413d7d97402cc3c1d0f7f80f6a04583d898bce2ff6a0bdfd469a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [5781068/5781068] -> "/home/runner/.byond/bin/libauxlua.so" [1]
+2022-11-22T05:54:48.2431263Z linux-gate.so.1 (0xf7ee6000)
+2022-11-22T05:54:48.2431996Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7adf000)
+2022-11-22T05:54:48.2436279Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7ac0000)
+2022-11-22T05:54:48.2436997Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7a9d000)
+2022-11-22T05:54:48.2437658Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7998000)
+2022-11-22T05:54:48.2439621Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7992000)
+2022-11-22T05:54:48.2440822Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf77a3000)
+2022-11-22T05:54:48.2441586Z /lib/ld-linux.so.2 (0xf7ee8000)
+2022-11-22T05:54:48.2494794Z ##[group]Run bash tools/ci/install_byond.sh
+2022-11-22T05:54:48.2495106Z [36;1mbash tools/ci/install_byond.sh[0m
+2022-11-22T05:54:48.2495386Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2022-11-22T05:54:48.2495706Z [36;1mtools/build/build --ci dm -DCIBUILDING -DANSICOLORS[0m
+2022-11-22T05:54:48.2545744Z shell: /usr/bin/bash -e {0}
+2022-11-22T05:54:48.2545971Z ##[endgroup]
+2022-11-22T05:54:48.2653351Z Setting up BYOND.
+2022-11-22T05:54:48.2793431Z % Total % Received % Xferd Average Speed Time Time Time Current
+2022-11-22T05:54:48.2797236Z Dload Upload Total Spent Left Speed
+2022-11-22T05:54:48.2797554Z
+2022-11-22T05:54:48.3941092Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
+2022-11-22T05:54:48.3943148Z 100 4021k 100 4021k 0 0 34.1M 0 --:--:-- --:--:-- --:--:-- 34.1M
+2022-11-22T05:54:48.3983451Z Archive: byond.zip
+2022-11-22T05:54:48.3983864Z creating: byond/
+2022-11-22T05:54:48.3984237Z creating: byond/key/
+2022-11-22T05:54:48.3984563Z creating: byond/web/
+2022-11-22T05:54:48.3985833Z inflating: byond/web/child.dms
+2022-11-22T05:54:48.3986928Z inflating: byond/web/button.dms
+2022-11-22T05:54:48.3988496Z inflating: byond/web/input.dms
+2022-11-22T05:54:48.3989251Z inflating: byond/web/text.dms
+2022-11-22T05:54:48.4097340Z inflating: byond/web/webclient.dart.js
+2022-11-22T05:54:48.4098200Z inflating: byond/web/verbmenu.dms
+2022-11-22T05:54:48.4099001Z inflating: byond/web/defaultSkin.dms
+2022-11-22T05:54:48.4100540Z inflating: byond/web/hotbar.dms
+2022-11-22T05:54:48.4101414Z inflating: byond/web/label.dms
+2022-11-22T05:54:48.4102162Z inflating: byond/web/alert.dms
+2022-11-22T05:54:48.4102953Z inflating: byond/web/message.dms
+2022-11-22T05:54:48.4103516Z inflating: byond/web/drag.png
+2022-11-22T05:54:48.4104351Z inflating: byond/web/map.dms
+2022-11-22T05:54:48.4105580Z inflating: byond/web/splashlogo.png
+2022-11-22T05:54:48.4106166Z inflating: byond/web/drop.png
+2022-11-22T05:54:48.4211884Z inflating: byond/web/ext.js
+2022-11-22T05:54:48.4212354Z inflating: byond/web/file.dms
+2022-11-22T05:54:48.4213426Z inflating: byond/web/grid.dms
+2022-11-22T05:54:48.4214990Z inflating: byond/web/bar.dms
+2022-11-22T05:54:48.4218521Z inflating: byond/web/dpad.dms
+2022-11-22T05:54:48.4218793Z inflating: byond/web/output.dms
+2022-11-22T05:54:48.4220119Z inflating: byond/web/tab.dms
+2022-11-22T05:54:48.4221829Z inflating: byond/web/info.dms
+2022-11-22T05:54:48.4223462Z inflating: byond/web/color.dms
+2022-11-22T05:54:48.4224634Z inflating: byond/web/gamepad.dms
+2022-11-22T05:54:48.4226063Z inflating: byond/web/browser.dms
+2022-11-22T05:54:48.4226672Z inflating: byond/web/status.dms
+2022-11-22T05:54:48.4227640Z inflating: byond/web/any.dms
+2022-11-22T05:54:48.4228616Z inflating: byond/web/pane.dms
+2022-11-22T05:54:48.4230037Z inflating: byond/web/pop.dms
+2022-11-22T05:54:48.4231031Z inflating: byond/license.txt
+2022-11-22T05:54:48.4231783Z inflating: byond/legal.txt
+2022-11-22T05:54:48.4232778Z inflating: byond/Makefile
+2022-11-22T05:54:48.4233180Z creating: byond/man/
+2022-11-22T05:54:48.4233524Z creating: byond/man/man6/
+2022-11-22T05:54:48.4234935Z inflating: byond/man/man6/DreamDaemon.6
+2022-11-22T05:54:48.4235672Z inflating: byond/man/man6/DreamMaker.6
+2022-11-22T05:54:48.4235940Z creating: byond/lib/
+2022-11-22T05:54:48.4236255Z creating: byond/host/
+2022-11-22T05:54:48.4237956Z inflating: byond/host/readme.html
+2022-11-22T05:54:48.4238971Z inflating: byond/host/readme-unix.txt
+2022-11-22T05:54:48.4239365Z creating: byond/host/home/
+2022-11-22T05:54:48.4239866Z creating: byond/host/home/root/
+2022-11-22T05:54:48.4240241Z creating: byond/host/home/root/byond/
+2022-11-22T05:54:48.4240880Z creating: byond/host/home/root/byond/tools/
+2022-11-22T05:54:48.4241382Z creating: byond/host/home/root/byond/tools/root/
+2022-11-22T05:54:48.4247309Z inflating: byond/host/home/root/byond/tools/root/root.dmb
+2022-11-22T05:54:48.4247605Z creating: byond/host/shared/
+2022-11-22T05:54:48.4247857Z creating: byond/host/shared/byond/
+2022-11-22T05:54:48.4248438Z creating: byond/host/shared/byond/tools/
+2022-11-22T05:54:48.4248723Z creating: byond/host/shared/byond/tools/ftp/
+2022-11-22T05:54:48.4251228Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb
+2022-11-22T05:54:48.4251558Z creating: byond/host/shared/byond/tools/admin/
+2022-11-22T05:54:48.4257787Z inflating: byond/host/shared/byond/tools/admin/admin.dmb
+2022-11-22T05:54:48.4258223Z creating: byond/host/shared-web/
+2022-11-22T05:54:48.4258547Z creating: byond/host/shared-web/web/
+2022-11-22T05:54:48.4259004Z creating: byond/host/shared-web/web/tools/
+2022-11-22T05:54:48.4259439Z creating: byond/host/shared-web/web/tools/admin/
+2022-11-22T05:54:48.4265239Z inflating: byond/host/shared-web/web/tools/admin/index.dmb
+2022-11-22T05:54:48.4272736Z inflating: byond/host/host.dmb
+2022-11-22T05:54:48.4273011Z inflating: byond/host/host.start
+2022-11-22T05:54:48.4273659Z inflating: byond/host/hostconf.orig
+2022-11-22T05:54:48.4274617Z inflating: byond/host/hostconf.txt
+2022-11-22T05:54:48.4275402Z inflating: byond/readme.txt
+2022-11-22T05:54:48.4275717Z creating: byond/bin/
+2022-11-22T05:54:48.4276299Z inflating: byond/bin/byondexec
+2022-11-22T05:54:48.4278446Z inflating: byond/bin/DreamDownload
+2022-11-22T05:54:48.4922483Z inflating: byond/bin/libbyond.so
+2022-11-22T05:54:48.5068123Z inflating: byond/bin/libext.so
+2022-11-22T05:54:48.5070046Z inflating: byond/bin/DreamDaemon
+2022-11-22T05:54:48.5074232Z inflating: byond/bin/DreamMaker
+2022-11-22T05:54:48.5074521Z creating: byond/cfg/
+2022-11-22T05:54:48.5074946Z inflating: byond/cfg/release.txt
+2022-11-22T05:54:48.5230052Z ***************************
+2022-11-22T05:54:48.5237614Z Now run the following command:
+2022-11-22T05:54:48.5248736Z
+2022-11-22T05:54:48.5259947Z source /home/runner/BYOND/byond/bin/byondsetup
+2022-11-22T05:54:48.5270619Z
+2022-11-22T05:54:48.5278255Z If it generates errors, your shell is not compatible with 'sh', so you will
+2022-11-22T05:54:48.5285604Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon.
+2022-11-22T05:54:48.5297083Z
+2022-11-22T05:54:48.5304283Z IMPORTANT: once you have the script working, you must add the above line
+2022-11-22T05:54:48.5311617Z to your startup script. The name of your startup script depends on the
+2022-11-22T05:54:48.5318799Z shell you use. Typical ones are .profile or .bash_profile.
+2022-11-22T05:54:48.5329607Z
+2022-11-22T05:54:48.5335539Z Once everything is working, you can find out more about the software
+2022-11-22T05:54:48.5340846Z by doing 'man DreamDaemon'. A host server has also been included
+2022-11-22T05:54:48.5345719Z so edit host/hostconf.txt and boot up your world server!
+2022-11-22T05:54:48.5350723Z ***************************
+2022-11-22T05:54:48.6078889Z Using system-wide Node v16.18.0
+2022-11-22T05:54:48.7660550Z :: Juke Build version 0.8.1
+2022-11-22T05:54:49.0224910Z => Starting 'dm'
+2022-11-22T05:54:49.0233013Z :: Using defines: CBT, CIBUILDING, ANSICOLORS
+2022-11-22T05:54:49.2134158Z DM compiler version 514.1588
+2022-11-22T05:54:49.2134485Z loading tgstation.m.dme
+2022-11-22T05:54:57.6255000Z loading interface/skin.dmf
+2022-11-22T05:55:47.8603172Z loading map_files/generic/CentCom.dmm
+2022-11-22T05:55:48.8009123Z saving tgstation.m.dmb (DEBUG mode)
+2022-11-22T05:55:49.8362884Z tgstation.m.dmb - 0 errors, 0 warnings (11/22/22 5:55 am)
+2022-11-22T05:55:49.8414352Z Total time: 1:00
+2022-11-22T05:55:50.7626726Z => Finished 'dm' in 61.74s
+2022-11-22T05:55:50.7630781Z => Done in 61.996s
+2022-11-22T05:55:50.7723825Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup
+2022-11-22T05:55:50.7724384Z [36;1msource $HOME/BYOND/byond/bin/byondsetup[0m
+2022-11-22T05:55:50.7725050Z [36;1mbash tools/ci/run_server.sh metastation[0m
+2022-11-22T05:55:50.7801355Z shell: /usr/bin/bash -e {0}
+2022-11-22T05:55:50.7801587Z ##[endgroup]
+2022-11-22T05:55:50.7892704Z Testing metastation
+2022-11-22T05:55:51.0035586Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory
+2022-11-22T05:55:51.0189960Z Tue Nov 22 05:55:51 2022
+2022-11-22T05:55:51.0190868Z World opened on network port 58409.
+2022-11-22T05:55:51.0191359Z Welcome BYOND! (5.0 Public Version 514.1588)
+2022-11-22T05:56:10.1077799Z 868 global variables
+2022-11-22T05:56:10.7927422Z World loaded at 05:56:10!
+2022-11-22T05:56:10.8379706Z Running /tg/ revision:
+2022-11-22T05:56:10.8380020Z No commit information
+2022-11-22T05:56:10.8454815Z Loading config file config.txt...
+2022-11-22T05:56:10.8458259Z Loading config file maps.txt...
+2022-11-22T05:56:10.8479868Z Unable to locate admins backup file.
+2022-11-22T05:56:11.8631460Z Initialized Title Screen subsystem within 0 seconds!
+2022-11-22T05:56:11.8631891Z Initialized Server Tasks subsystem within 0 seconds!
+2022-11-22T05:56:11.8632565Z Initialized Input subsystem within 0 seconds!
+2022-11-22T05:56:11.8690820Z Initialized Profiler subsystem within 0 seconds!
+2022-11-22T05:56:11.8691168Z Initialized Database subsystem within 0 seconds!
+2022-11-22T05:56:11.8691814Z Initialized Blackbox subsystem within 0 seconds!
+2022-11-22T05:56:11.8692797Z Initialized Sounds subsystem within 0 seconds!
+2022-11-22T05:56:11.8828615Z Initialized Instruments subsystem within 0.01 seconds!
+2022-11-22T05:56:12.2167428Z Initialized Greyscale subsystem within 0.33 seconds!
+2022-11-22T05:56:12.2167879Z Initialized Vis contents overlays subsystem within 0 seconds!
+2022-11-22T05:56:12.2168267Z Initialized Security Level subsystem within 0 seconds!
+2022-11-22T05:56:12.2189261Z Initialized Station subsystem within 0 seconds!
+2022-11-22T05:56:12.2202098Z Initialized Quirks subsystem within 0 seconds!
+2022-11-22T05:56:12.2320897Z Initialized Reagents subsystem within 0.01 seconds!
+2022-11-22T05:56:12.2325541Z Initialized Events subsystem within 0 seconds!
+2022-11-22T05:56:12.2377703Z Initialized IDs and Access subsystem within 0.01 seconds!
+2022-11-22T05:56:12.2378499Z Initialized Jobs subsystem within 0 seconds!
+2022-11-22T05:56:12.2379505Z Initialized AI movement subsystem within 0 seconds!
+2022-11-22T05:56:12.2399099Z Initialized Ticker subsystem within 0 seconds!
+2022-11-22T05:56:12.2401506Z Initialized AI Controller Ticker subsystem within 0 seconds!
+2022-11-22T05:56:12.2402756Z Initialized AI Behavior Ticker subsystem within 0 seconds!
+2022-11-22T05:56:12.2534901Z Initialized Trading Card Game subsystem within 0.01 seconds!
+2022-11-22T05:56:12.2695227Z Loading MetaStation...
+2022-11-22T05:56:13.6007721Z Loaded Station in 1.4s!
+2022-11-22T05:56:14.3263930Z Loaded Lavaland in 0.6s!
+2022-11-22T05:56:15.0849457Z Ruin loader finished with 0 left to spend.
+2022-11-22T05:56:15.1862835Z Ruin loader finished with 0 left to spend.
+2022-11-22T05:56:15.4246125Z Cave Generator finished in 0.3s!
+2022-11-22T05:56:15.4560459Z Cave Generator finished in 0s!
+2022-11-22T05:56:16.0885613Z Initialized Mapping subsystem within 3.83 seconds!
+2022-11-22T05:56:38.2726128Z Initialized Early Assets subsystem within 22.18 seconds!
+2022-11-22T05:56:38.3071167Z Initialized Research subsystem within 0.03 seconds!
+2022-11-22T05:56:38.3073379Z Initialized Time Tracking subsystem within 0 seconds!
+2022-11-22T05:56:38.3169516Z Initialized Networks subsystem within 0.01 seconds!
+2022-11-22T05:56:38.3386821Z Initialized Spatial Grid subsystem within 0.02 seconds!
+2022-11-22T05:56:38.3387426Z Initialized Economy subsystem within 0 seconds!
+2022-11-22T05:56:38.3396301Z Initialized Restaurant subsystem within 0 seconds!
+2022-11-22T05:56:40.9885406Z The BYOND hub reports that port 58409 is not reachable.
+2022-11-22T05:57:05.1172204Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only!
+2022-11-22T05:57:06.7858739Z Initialized Atoms subsystem within 28.45 seconds!
+2022-11-22T05:57:06.7975404Z Initialized Language subsystem within 0.01 seconds!
+2022-11-22T05:57:06.8745273Z Initialized Machines subsystem within 0.08 seconds!
+2022-11-22T05:57:06.8746886Z Initialized Skills subsystem within 0 seconds!
+2022-11-22T05:57:06.8748827Z Initialized Addiction subsystem within 0 seconds!
+2022-11-22T05:57:06.8758560Z Initialized Blackmarket subsystem within 0 seconds!
+2022-11-22T05:57:06.8761410Z Initialized Disease subsystem within 0 seconds!
+2022-11-22T05:57:06.8761834Z Initialized Fluid subsystem within 0 seconds!
+2022-11-22T05:57:06.8762760Z Initialized Smoke subsystem within 0 seconds!
+2022-11-22T05:57:06.8763545Z Initialized Foam subsystem within 0 seconds!
+2022-11-22T05:57:06.8764349Z Initialized Lag Switch subsystem within 0 seconds!
+2022-11-22T05:57:06.8940474Z Initialized Library Loading subsystem within 0.02 seconds!
+2022-11-22T05:57:07.2408456Z Initialized Lua Scripting subsystem within 0.35 seconds!
+2022-11-22T05:57:07.2409327Z Initialized Night Shift subsystem within 0 seconds!
+2022-11-22T05:57:07.2410361Z Initialized Sun subsystem within 0 seconds!
+2022-11-22T05:57:07.2435844Z Initialized Traitor subsystem within 0 seconds!
+2022-11-22T05:57:07.2632292Z Initialized Wardrobe subsystem within 0.02 seconds!
+2022-11-22T05:57:07.2633023Z Initialized Weather subsystem within 0 seconds!
+2022-11-22T05:57:07.2633877Z Initialized Wiremod Composite Templates subsystem within 0 seconds!
+2022-11-22T05:57:10.9882289Z Initialized Atmospherics subsystem within 3.72 seconds!
+2022-11-22T05:57:10.9894873Z Initialized Persistence subsystem within 0 seconds!
+2022-11-22T05:57:10.9899148Z Initialized Persistent Paintings subsystem within 0 seconds!
+2022-11-22T05:57:10.9903351Z Initialized Vote subsystem within 0 seconds!
+2022-11-22T05:57:22.4988698Z Initialized Assets subsystem within 11.51 seconds!
+2022-11-22T05:57:24.3487800Z Initialized Icon Smoothing subsystem within 1.85 seconds!
+2022-11-22T05:57:24.3495654Z Initialized XKeyScore subsystem within 0 seconds!
+2022-11-22T05:57:24.3511340Z Initialized PRISM subsystem within 0 seconds!
+2022-11-22T05:57:29.2181327Z Initialized Lighting subsystem within 4.87 seconds!
+2022-11-22T05:57:31.3719906Z Initialized Shuttle subsystem within 2.15 seconds!
+2022-11-22T05:57:31.3720568Z Initialized Pathfinder subsystem within 0 seconds!
+2022-11-22T05:57:31.3728738Z Initialized Ban Cache subsystem within 0 seconds!
+2022-11-22T05:57:31.3729264Z Initialized Init Profiler subsystem within 0 seconds!
+2022-11-22T05:57:31.3729723Z Initialized Chat subsystem within 0 seconds!
+2022-11-22T05:57:31.3730281Z Initializations complete within 79.5 seconds!
+2022-11-22T05:57:31.3830937Z Game start took 0s
+2022-11-22T05:57:42.0634964Z ##[group]/datum/unit_test/log_mapping
+2022-11-22T05:57:42.0635672Z
+2022-11-22T05:57:42.0636846Z [1;32mPASS[0m /datum/unit_test/log_mapping 0s
+2022-11-22T05:57:42.0637417Z ##[endgroup]
+2022-11-22T05:57:42.1282731Z ##[group]/datum/unit_test/ablative_hood_hud
+2022-11-22T05:57:42.1532576Z
+2022-11-22T05:57:42.1533762Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud 0s
+2022-11-22T05:57:42.1534764Z ##[endgroup]
+2022-11-22T05:57:42.1781522Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet
+2022-11-22T05:57:42.2004168Z
+2022-11-22T05:57:42.2005116Z [1;32mPASS[0m /datum/unit_test/ablative_hood_hud_with_helmet 0.1s
+2022-11-22T05:57:42.2011130Z ##[endgroup]
+2022-11-22T05:57:42.2281431Z ##[group]/datum/unit_test/achievements
+2022-11-22T05:57:42.2391582Z
+2022-11-22T05:57:42.2392386Z [1;32mPASS[0m /datum/unit_test/achievements 0s
+2022-11-22T05:57:42.2393271Z ##[endgroup]
+2022-11-22T05:57:42.2781664Z ##[group]/datum/unit_test/anchored_mobs
+2022-11-22T05:57:42.2783035Z
+2022-11-22T05:57:42.2783769Z [1;32mPASS[0m /datum/unit_test/anchored_mobs 0s
+2022-11-22T05:57:42.2784572Z ##[endgroup]
+2022-11-22T05:57:42.2936672Z ##[group]/datum/unit_test/anonymous_themes
+2022-11-22T05:57:42.4235721Z
+2022-11-22T05:57:42.4237433Z [1;32mPASS[0m /datum/unit_test/anonymous_themes 0.2s
+2022-11-22T05:57:42.4238500Z ##[endgroup]
+2022-11-22T05:57:42.6392895Z ##[group]/datum/unit_test/autowiki
+2022-11-22T05:57:43.8278371Z
+2022-11-22T05:57:43.8280173Z [1;32mPASS[0m /datum/unit_test/autowiki 1.2s
+2022-11-22T05:57:43.8281239Z ##[endgroup]
+2022-11-22T05:57:44.9926595Z ##[group]/datum/unit_test/autowiki_include_template
+2022-11-22T05:57:44.9929132Z
+2022-11-22T05:57:44.9931384Z [1;32mPASS[0m /datum/unit_test/autowiki_include_template 0s
+2022-11-22T05:57:44.9933262Z ##[endgroup]
+2022-11-22T05:57:45.0087357Z ##[group]/datum/unit_test/barsigns_icon
+2022-11-22T05:57:45.0294182Z
+2022-11-22T05:57:45.0295837Z [1;32mPASS[0m /datum/unit_test/barsigns_icon 0s
+2022-11-22T05:57:45.0298739Z ##[endgroup]
+2022-11-22T05:57:45.0940696Z ##[group]/datum/unit_test/barsigns_name
+2022-11-22T05:57:45.0941383Z
+2022-11-22T05:57:45.0944198Z [1;32mPASS[0m /datum/unit_test/barsigns_name 0s
+2022-11-22T05:57:45.0946955Z ##[endgroup]
+2022-11-22T05:57:45.1096461Z ##[group]/datum/unit_test/bespoke_id
+2022-11-22T05:57:45.1096937Z
+2022-11-22T05:57:45.1099174Z [1;32mPASS[0m /datum/unit_test/bespoke_id 0s
+2022-11-22T05:57:45.1100742Z ##[endgroup]
+2022-11-22T05:57:45.1439539Z ##[group]/datum/unit_test/binary_insert
+2022-11-22T05:57:45.1442012Z
+2022-11-22T05:57:45.1443259Z [1;32mPASS[0m /datum/unit_test/binary_insert 0s
+2022-11-22T05:57:45.1444013Z ##[endgroup]
+2022-11-22T05:57:45.1594465Z ##[group]/datum/unit_test/bloody_footprints
+2022-11-22T05:57:45.1861559Z
+2022-11-22T05:57:45.1862509Z [1;32mPASS[0m /datum/unit_test/bloody_footprints 0s
+2022-11-22T05:57:45.1863678Z ##[endgroup]
+2022-11-22T05:57:45.2757269Z ##[group]/datum/unit_test/breath_sanity
+2022-11-22T05:57:45.3154911Z
+2022-11-22T05:57:45.3155918Z [1;32mPASS[0m /datum/unit_test/breath_sanity 0.1s
+2022-11-22T05:57:45.3157085Z ##[endgroup]
+2022-11-22T05:57:45.3851583Z ##[group]/datum/unit_test/breath_sanity_plasmamen
+2022-11-22T05:57:45.4259844Z
+2022-11-22T05:57:45.4260721Z [1;32mPASS[0m /datum/unit_test/breath_sanity_plasmamen 0.1s
+2022-11-22T05:57:45.4261835Z ##[endgroup]
+2022-11-22T05:57:45.4970449Z ##[group]/datum/unit_test/breath_sanity_ashwalker
+2022-11-22T05:57:45.5458718Z
+2022-11-22T05:57:45.5459726Z [1;32mPASS[0m /datum/unit_test/breath_sanity_ashwalker 0.1s
+2022-11-22T05:57:45.5460898Z ##[endgroup]
+2022-11-22T05:57:45.6672536Z ##[group]/datum/unit_test/cable_powernets
+2022-11-22T05:57:45.6673181Z
+2022-11-22T05:57:45.6674204Z [1;32mPASS[0m /datum/unit_test/cable_powernets 0s
+2022-11-22T05:57:45.6674983Z ##[endgroup]
+2022-11-22T05:57:45.6813975Z ##[group]/datum/unit_test/card_mismatch
+2022-11-22T05:57:45.6847490Z
+2022-11-22T05:57:45.6848203Z [1;32mPASS[0m /datum/unit_test/card_mismatch 0s
+2022-11-22T05:57:45.6849278Z ##[endgroup]
+2022-11-22T05:57:45.7667452Z ##[group]/datum/unit_test/chain_pull_through_space
+2022-11-22T05:57:45.7691182Z
+2022-11-22T05:57:45.7692013Z [1;32mPASS[0m /datum/unit_test/chain_pull_through_space 0s
+2022-11-22T05:57:45.7693138Z ##[endgroup]
+2022-11-22T05:57:45.9995429Z ##[group]/datum/unit_test/chat_filter_sanity
+2022-11-22T05:57:46.0000038Z
+2022-11-22T05:57:46.0000532Z [1;32mPASS[0m /datum/unit_test/chat_filter_sanity 0s
+2022-11-22T05:57:46.0001077Z ##[endgroup]
+2022-11-22T05:57:46.0139755Z ##[group]/datum/unit_test/circuit_component_category
+2022-11-22T05:57:46.0139979Z
+2022-11-22T05:57:46.0140376Z [1;32mPASS[0m /datum/unit_test/circuit_component_category 0s
+2022-11-22T05:57:46.0140890Z ##[endgroup]
+2022-11-22T05:57:46.0280886Z ##[group]/datum/unit_test/closets
+2022-11-22T05:57:47.4931763Z
+2022-11-22T05:57:47.4932352Z [1;32mPASS[0m /datum/unit_test/closets 1.4s
+2022-11-22T05:57:47.4932981Z ##[endgroup]
+2022-11-22T05:57:50.1800201Z ##[group]/datum/unit_test/harm_punch
+2022-11-22T05:57:50.2237522Z
+2022-11-22T05:57:50.2238465Z [1;32mPASS[0m /datum/unit_test/harm_punch 0.1s
+2022-11-22T05:57:50.2239270Z ##[endgroup]
+2022-11-22T05:57:50.2470659Z ##[group]/datum/unit_test/harm_melee
+2022-11-22T05:57:50.2990417Z
+2022-11-22T05:57:50.2991838Z [1;32mPASS[0m /datum/unit_test/harm_melee 0s
+2022-11-22T05:57:50.2994899Z ##[endgroup]
+2022-11-22T05:57:50.3439298Z ##[group]/datum/unit_test/harm_different_damage
+2022-11-22T05:57:50.3918437Z
+2022-11-22T05:57:50.3919330Z [1;32mPASS[0m /datum/unit_test/harm_different_damage 0s
+2022-11-22T05:57:50.4008259Z ##[endgroup]
+2022-11-22T05:57:50.4167399Z ##[group]/datum/unit_test/attack_chain
+2022-11-22T05:57:50.4632392Z
+2022-11-22T05:57:50.4633058Z [1;32mPASS[0m /datum/unit_test/attack_chain 0s
+2022-11-22T05:57:50.4633745Z ##[endgroup]
+2022-11-22T05:57:50.4904110Z ##[group]/datum/unit_test/disarm
+2022-11-22T05:57:50.5347143Z
+2022-11-22T05:57:50.5347804Z [1;32mPASS[0m /datum/unit_test/disarm 0.1s
+2022-11-22T05:57:50.5348427Z ##[endgroup]
+2022-11-22T05:57:50.5595669Z ##[group]/datum/unit_test/component_duping
+2022-11-22T05:57:50.5595898Z
+2022-11-22T05:57:50.5596342Z [1;32mPASS[0m /datum/unit_test/component_duping 0s
+2022-11-22T05:57:50.5596852Z ##[endgroup]
+2022-11-22T05:57:50.5739602Z ##[group]/datum/unit_test/confusion_symptom
+2022-11-22T05:57:50.5945849Z
+2022-11-22T05:57:50.5946402Z [1;32mPASS[0m /datum/unit_test/confusion_symptom 0s
+2022-11-22T05:57:50.5947016Z ##[endgroup]
+2022-11-22T05:57:50.6143700Z ##[group]/datum/unit_test/connect_loc_basic
+2022-11-22T05:57:50.6143916Z
+2022-11-22T05:57:50.6144283Z [1;32mPASS[0m /datum/unit_test/connect_loc_basic 0s
+2022-11-22T05:57:50.6144785Z ##[endgroup]
+2022-11-22T05:57:50.6284913Z ##[group]/datum/unit_test/connect_loc_change_turf
+2022-11-22T05:57:50.6292634Z
+2022-11-22T05:57:50.6293007Z [1;32mPASS[0m /datum/unit_test/connect_loc_change_turf 0s
+2022-11-22T05:57:50.6293533Z ##[endgroup]
+2022-11-22T05:57:50.6434958Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf
+2022-11-22T05:57:50.6440347Z
+2022-11-22T05:57:50.6440682Z [1;32mPASS[0m /datum/unit_test/connect_loc_multiple_on_turf 0s
+2022-11-22T05:57:50.6441134Z ##[endgroup]
+2022-11-22T05:57:50.6579913Z ##[group]/datum/unit_test/reagent_container_sanity
+2022-11-22T05:57:50.7818215Z
+2022-11-22T05:57:50.7818993Z [1;32mPASS[0m /datum/unit_test/reagent_container_sanity 0.1s
+2022-11-22T05:57:50.7819687Z ##[endgroup]
+2022-11-22T05:57:51.0092450Z ##[group]/datum/unit_test/crayon_naming
+2022-11-22T05:57:51.0150514Z
+2022-11-22T05:57:51.0151055Z [1;32mPASS[0m /datum/unit_test/crayon_naming 0s
+2022-11-22T05:57:51.0151629Z ##[endgroup]
+2022-11-22T05:57:51.0291644Z ##[group]/datum/unit_test/dcs_get_id_from_arguments
+2022-11-22T05:57:51.0295148Z
+2022-11-22T05:57:51.0295468Z [1;32mPASS[0m /datum/unit_test/dcs_get_id_from_arguments 0s
+2022-11-22T05:57:51.0295906Z ##[endgroup]
+2022-11-22T05:57:51.0436006Z ##[group]/datum/unit_test/designs
+2022-11-22T05:57:51.0482298Z
+2022-11-22T05:57:51.0482663Z [1;32mPASS[0m /datum/unit_test/designs 0s
+2022-11-22T05:57:51.0483175Z ##[endgroup]
+2022-11-22T05:57:51.0620982Z ##[group]/datum/unit_test/dummy_spawn_species
+2022-11-22T05:57:51.4128167Z
+2022-11-22T05:57:51.4128925Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_species 0.4s
+2022-11-22T05:57:51.4129626Z ##[endgroup]
+2022-11-22T05:57:51.7309194Z ##[group]/datum/unit_test/dummy_spawn_outfit
+2022-11-22T05:57:51.7520497Z Job type /datum/job/ai could not be retrieved from SSjob
+2022-11-22T05:57:52.0337175Z
+2022-11-22T05:57:52.0338303Z [1;32mPASS[0m /datum/unit_test/dummy_spawn_outfit 0.3s
+2022-11-22T05:57:52.0339259Z ##[endgroup]
+2022-11-22T05:57:52.3010961Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity
+2022-11-22T05:57:52.3011803Z
+2022-11-22T05:57:52.3012594Z [1;32mPASS[0m /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s
+2022-11-22T05:57:52.3013299Z ##[endgroup]
+2022-11-22T05:57:52.3164698Z ##[group]/datum/unit_test/dynamic_unique_antag_flags
+2022-11-22T05:57:52.3165134Z
+2022-11-22T05:57:52.3165719Z [1;32mPASS[0m /datum/unit_test/dynamic_unique_antag_flags 0s
+2022-11-22T05:57:52.3166684Z ##[endgroup]
+2022-11-22T05:57:52.3307956Z ##[group]/datum/unit_test/egg_glands
+2022-11-22T05:57:52.3727674Z
+2022-11-22T05:57:52.3728398Z [1;32mPASS[0m /datum/unit_test/egg_glands 0s
+2022-11-22T05:57:52.3729449Z ##[endgroup]
+2022-11-22T05:57:52.3876533Z ##[group]/datum/unit_test/emoting
+2022-11-22T05:57:52.4097216Z
+2022-11-22T05:57:52.4097697Z [1;32mPASS[0m /datum/unit_test/emoting 0.1s
+2022-11-22T05:57:52.4098176Z ##[endgroup]
+2022-11-22T05:57:52.7391670Z ##[group]/datum/unit_test/food_edibility_check
+2022-11-22T05:57:53.8611412Z
+2022-11-22T05:57:53.8612472Z [1;32mPASS[0m /datum/unit_test/food_edibility_check 1.1s
+2022-11-22T05:57:53.8613293Z ##[endgroup]
+2022-11-22T05:57:54.9307669Z ##[group]/datum/unit_test/atmospheric_gas_transfer
+2022-11-22T05:57:54.9314807Z
+2022-11-22T05:57:54.9315632Z [1;32mPASS[0m /datum/unit_test/atmospheric_gas_transfer 0s
+2022-11-22T05:57:54.9316476Z ##[endgroup]
+2022-11-22T05:57:54.9470739Z ##[group]/datum/unit_test/get_turf_pixel
+2022-11-22T05:57:54.9485851Z
+2022-11-22T05:57:54.9486504Z [1;32mPASS[0m /datum/unit_test/get_turf_pixel 0s
+2022-11-22T05:57:54.9487302Z ##[endgroup]
+2022-11-22T05:57:54.9638937Z ##[group]/datum/unit_test/greyscale_item_icon_states
+2022-11-22T05:57:54.9698181Z
+2022-11-22T05:57:54.9698921Z [1;32mPASS[0m /datum/unit_test/greyscale_item_icon_states 0s
+2022-11-22T05:57:54.9699816Z ##[endgroup]
+2022-11-22T05:57:54.9841288Z ##[group]/datum/unit_test/greyscale_color_count
+2022-11-22T05:57:54.9971884Z
+2022-11-22T05:57:54.9972668Z [1;32mPASS[0m /datum/unit_test/greyscale_color_count 0s
+2022-11-22T05:57:54.9973372Z ##[endgroup]
+2022-11-22T05:57:55.0566622Z ##[group]/datum/unit_test/hallucination_icons
+2022-11-22T05:57:55.2636405Z
+2022-11-22T05:57:55.2637180Z [1;32mPASS[0m /datum/unit_test/hallucination_icons 0.2s
+2022-11-22T05:57:55.2637869Z ##[endgroup]
+2022-11-22T05:57:55.4281623Z ##[group]/datum/unit_test/heretic_knowledge
+2022-11-22T05:57:55.4312752Z
+2022-11-22T05:57:55.4313343Z [1;32mPASS[0m /datum/unit_test/heretic_knowledge 0s
+2022-11-22T05:57:55.4313933Z ##[endgroup]
+2022-11-22T05:57:55.4464795Z ##[group]/datum/unit_test/heretic_main_paths
+2022-11-22T05:57:55.4465364Z
+2022-11-22T05:57:55.4465818Z [1;32mPASS[0m /datum/unit_test/heretic_main_paths 0s
+2022-11-22T05:57:55.4466260Z ##[endgroup]
+2022-11-22T05:57:55.4606916Z ##[group]/datum/unit_test/heretic_rituals
+2022-11-22T05:57:55.5247753Z
+2022-11-22T05:57:55.5248512Z [1;32mPASS[0m /datum/unit_test/heretic_rituals 0.1s
+2022-11-22T05:57:55.5249184Z ##[endgroup]
+2022-11-22T05:57:55.5940368Z ##[group]/datum/unit_test/hanukkah_2123
+2022-11-22T05:57:55.5940592Z
+2022-11-22T05:57:55.5941492Z [1;32mPASS[0m /datum/unit_test/hanukkah_2123 0s
+2022-11-22T05:57:55.5942009Z ##[endgroup]
+2022-11-22T05:57:55.6091512Z ##[group]/datum/unit_test/ramadan_2165
+2022-11-22T05:57:55.6091717Z
+2022-11-22T05:57:55.6092048Z [1;32mPASS[0m /datum/unit_test/ramadan_2165 0s
+2022-11-22T05:57:55.6092523Z ##[endgroup]
+2022-11-22T05:57:55.6442352Z ##[group]/datum/unit_test/thanksgiving_2020
+2022-11-22T05:57:55.6442890Z
+2022-11-22T05:57:55.6443757Z [1;32mPASS[0m /datum/unit_test/thanksgiving_2020 0s
+2022-11-22T05:57:55.6444979Z ##[endgroup]
+2022-11-22T05:57:55.6598675Z ##[group]/datum/unit_test/mother_3683
+2022-11-22T05:57:55.6598889Z
+2022-11-22T05:57:55.6599297Z [1;32mPASS[0m /datum/unit_test/mother_3683 0s
+2022-11-22T05:57:55.6599751Z ##[endgroup]
+2022-11-22T05:57:55.6738486Z ##[group]/datum/unit_test/hello_2020
+2022-11-22T05:57:55.6738688Z
+2022-11-22T05:57:55.6739014Z [1;32mPASS[0m /datum/unit_test/hello_2020 0s
+2022-11-22T05:57:55.6739488Z ##[endgroup]
+2022-11-22T05:57:55.6878688Z ##[group]/datum/unit_test/new_year_1983
+2022-11-22T05:57:55.6878886Z
+2022-11-22T05:57:55.6879201Z [1;32mPASS[0m /datum/unit_test/new_year_1983 0s
+2022-11-22T05:57:55.6879685Z ##[endgroup]
+2022-11-22T05:57:55.7020176Z ##[group]/datum/unit_test/moth_week_2020
+2022-11-22T05:57:55.7046044Z
+2022-11-22T05:57:55.7046466Z [1;32mPASS[0m /datum/unit_test/moth_week_2020 0s
+2022-11-22T05:57:55.7047027Z ##[endgroup]
+2022-11-22T05:57:55.7187159Z ##[group]/datum/unit_test/human_through_recycler
+2022-11-22T05:57:55.7514671Z
+2022-11-22T05:57:55.7515299Z [1;32mPASS[0m /datum/unit_test/human_through_recycler 0s
+2022-11-22T05:57:55.7516283Z ##[endgroup]
+2022-11-22T05:57:55.7919867Z ##[group]/datum/unit_test/hydroponics_extractor_storage
+2022-11-22T05:57:55.8186193Z
+2022-11-22T05:57:55.8186944Z [1;32mPASS[0m /datum/unit_test/hydroponics_extractor_storage 0.1s
+2022-11-22T05:57:55.8187599Z ##[endgroup]
+2022-11-22T05:57:55.8398289Z ##[group]/datum/unit_test/hydroponics_harvest
+2022-11-22T05:57:55.8939596Z
+2022-11-22T05:57:55.8940352Z [1;32mPASS[0m /datum/unit_test/hydroponics_harvest 0s
+2022-11-22T05:57:55.8941013Z ##[endgroup]
+2022-11-22T05:57:56.0137178Z ##[group]/datum/unit_test/hydroponics_self_mutation
+2022-11-22T05:57:56.0571748Z
+2022-11-22T05:57:56.0572297Z [1;32mPASS[0m /datum/unit_test/hydroponics_self_mutation 0s
+2022-11-22T05:57:56.0572944Z ##[endgroup]
+2022-11-22T05:57:56.0712557Z ##[group]/datum/unit_test/hydroponics_validate_genes
+2022-11-22T05:57:56.1145858Z
+2022-11-22T05:57:56.1146632Z [1;32mPASS[0m /datum/unit_test/hydroponics_validate_genes 0.1s
+2022-11-22T05:57:56.1147317Z ##[endgroup]
+2022-11-22T05:57:56.1288831Z ##[group]/datum/unit_test/defined_inhand_icon_states
+2022-11-22T05:57:56.9990761Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values.
+2022-11-22T05:57:56.9991785Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-11-22T05:57:56.9992933Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-11-22T05:57:56.9994021Z /obj/item/clothing/under/suit/sl does not have an inhand_icon_state value - Possible matching sprites for "sl_suit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-22T05:57:56.9995081Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2022-11-22T05:57:56.9996131Z /obj/item/clothing/head/mod does not have an inhand_icon_state value - Possible matching sprites for "helmet" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi'
+2022-11-22T05:57:56.9997136Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2022-11-22T05:57:56.9998121Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi'
+2022-11-22T05:57:56.9999214Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-11-22T05:57:57.0000419Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-11-22T05:57:57.0001582Z /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun does not have an inhand_icon_state value - Possible matching sprites for "syringegun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-11-22T05:57:57.0002710Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-11-22T05:57:57.0004089Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-11-22T05:57:57.0005300Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-11-22T05:57:57.0006371Z /obj/item/implant/emp does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-22T05:57:57.0007395Z /obj/item/implant/uplink does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0008445Z /obj/item/implant/uplink/precharged does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0009494Z /obj/item/implant/uplink/starting does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0010726Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-22T05:57:57.0011749Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-11-22T05:57:57.0012773Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-11-22T05:57:57.0013837Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi'
+2022-11-22T05:57:57.0014905Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0016006Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0017128Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0018271Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0019407Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0020513Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0021776Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0023030Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0024156Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0025284Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0026401Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0027532Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi'
+2022-11-22T05:57:57.0028593Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0029625Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0030654Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0031702Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0032748Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0033834Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0034933Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0035979Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0037019Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0038119Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0039221Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-22T05:57:57.0040406Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-22T05:57:57.0041502Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_righthand.dmi'
+2022-11-22T05:57:57.0042546Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-11-22T05:57:57.0043620Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi'
+2022-11-22T05:57:57.0044677Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
+2022-11-22T05:57:57.0045751Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
+2022-11-22T05:57:57.0047360Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2022-11-22T05:57:57.0048399Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-22T05:57:57.0049430Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-22T05:57:57.0050554Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+2022-11-22T05:57:57.0051561Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0052539Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0053552Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-11-22T05:57:57.0054597Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-11-22T05:57:57.0055672Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
+2022-11-22T05:57:57.0056849Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi'
+2022-11-22T05:57:57.0057975Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-22T05:57:57.0059026Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0060072Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0061125Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0062218Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0063307Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0064355Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0065418Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0066456Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0067491Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0068534Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-11-22T05:57:57.0069585Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-11-22T05:57:57.0070654Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi'
+2022-11-22T05:57:57.0071702Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0073144Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-11-22T05:57:57.0074330Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi'
+2022-11-22T05:57:57.0075441Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-22T05:57:57.0076509Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-22T05:57:57.0077599Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-22T05:57:57.0078680Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-22T05:57:57.0079765Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
+2022-11-22T05:57:57.0080775Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0082023Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0083017Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0084019Z /obj/item/trash/can/food does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi'
+2022-11-22T05:57:57.0085071Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-22T05:57:57.0086187Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-22T05:57:57.0087262Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+2022-11-22T05:57:57.0088347Z /obj/item/ammo_casing/magic/hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-11-22T05:57:57.0089259Z /obj/item/ammo_casing/magic/hook/bounty does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-11-22T05:57:57.0090243Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi'
+2022-11-22T05:57:57.0091252Z /obj/item/crowbar/mechremoval does not have an inhand_icon_state value - Possible matching sprites for "mechremoval0" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0092194Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0093224Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0094166Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_righthand.dmi' & 'icons/mob/inhands/weapons/plants_lefthand.dmi'
+2022-11-22T05:57:57.0095086Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_righthand.dmi' & 'icons/mob/inhands/equipment/palette_lefthand.dmi'
+2022-11-22T05:57:57.0095973Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi'
+2022-11-22T05:57:57.0096871Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0097746Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+2022-11-22T05:57:57.0098649Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi'
+2022-11-22T05:57:57.0099593Z /obj/item/guardiancreator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0100605Z /obj/item/guardiancreator/tech/choose does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0101605Z /obj/item/guardiancreator/tech/choose/traitor does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0102626Z /obj/item/guardiancreator/tech/choose/dextrous does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0103578Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_lefthand.dmi' & 'icons/mob/inhands/clothing/masks_righthand.dmi'
+2022-11-22T05:57:57.0104491Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2022-11-22T05:57:57.0105414Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi'
+2022-11-22T05:57:57.0106415Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_righthand.dmi'
+2022-11-22T05:57:57.0107402Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi'
+2022-11-22T05:57:57.0108273Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi'
+2022-11-22T05:57:57.0109157Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi'
+2022-11-22T05:57:57.0110093Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi'
+2022-11-22T05:57:57.0111228Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi'
+2022-11-22T05:57:57.0112255Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+2022-11-22T05:57:57.0113170Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0114103Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi'
+2022-11-22T05:57:57.0115057Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi'
+2022-11-22T05:57:57.0115440Z
+2022-11-22T05:57:57.0115677Z [1;32mPASS[0m /datum/unit_test/defined_inhand_icon_states 0.8s
+2022-11-22T05:57:57.0116249Z ##[endgroup]
+2022-11-22T05:57:57.8132217Z ##[group]/datum/unit_test/json_savefiles
+2022-11-22T05:57:57.8161427Z
+2022-11-22T05:57:57.8163650Z [1;32mPASS[0m /datum/unit_test/json_savefiles 0s
+2022-11-22T05:57:57.8165166Z ##[endgroup]
+2022-11-22T05:57:57.8317025Z ##[group]/datum/unit_test/keybinding_init
+2022-11-22T05:57:57.8317555Z
+2022-11-22T05:57:57.8318129Z [1;32mPASS[0m /datum/unit_test/keybinding_init 0s
+2022-11-22T05:57:57.8318715Z ##[endgroup]
+2022-11-22T05:57:57.8457921Z ##[group]/datum/unit_test/key_prefixes
+2022-11-22T05:57:57.8458449Z
+2022-11-22T05:57:57.8459042Z [1;32mPASS[0m /datum/unit_test/key_prefixes 0s
+2022-11-22T05:57:57.8462361Z ##[endgroup]
+2022-11-22T05:57:57.8599650Z ##[group]/datum/unit_test/knockoff_component
+2022-11-22T05:57:57.9089397Z
+2022-11-22T05:57:57.9090717Z [1;32mPASS[0m /datum/unit_test/knockoff_component 0.1s
+2022-11-22T05:57:57.9091840Z ##[endgroup]
+2022-11-22T05:57:57.9827579Z ##[group]/datum/unit_test/limbsanity
+2022-11-22T05:57:58.0484756Z
+2022-11-22T05:57:58.0485892Z [1;32mPASS[0m /datum/unit_test/limbsanity 0.1s
+2022-11-22T05:57:58.0486834Z ##[endgroup]
+2022-11-22T05:57:58.0629221Z ##[group]/datum/unit_test/load_map_security
+2022-11-22T05:57:58.0631540Z map directory not in whitelist: data/load_map_security_temp for map runtimestation
+2022-11-22T05:57:58.0632494Z
+2022-11-22T05:57:58.0634849Z [1;32mPASS[0m /datum/unit_test/load_map_security 0s
+2022-11-22T05:57:58.0635457Z ##[endgroup]
+2022-11-22T05:57:58.0781973Z ##[group]/datum/unit_test/machine_disassembly
+2022-11-22T05:57:58.0810119Z
+2022-11-22T05:57:58.0811067Z [1;32mPASS[0m /datum/unit_test/machine_disassembly 0s
+2022-11-22T05:57:58.0813933Z ##[endgroup]
+2022-11-22T05:57:58.1127230Z ##[group]/datum/unit_test/mecha_damage
+2022-11-22T05:57:58.1567386Z
+2022-11-22T05:57:58.1568502Z [1;32mPASS[0m /datum/unit_test/mecha_damage 0s
+2022-11-22T05:57:58.1569451Z ##[endgroup]
+2022-11-22T05:57:58.1825660Z ##[group]/datum/unit_test/test_human_base
+2022-11-22T05:57:58.2244474Z
+2022-11-22T05:57:58.2245632Z [1;32mPASS[0m /datum/unit_test/test_human_base 0.1s
+2022-11-22T05:57:58.2246699Z ##[endgroup]
+2022-11-22T05:57:58.2704857Z ##[group]/datum/unit_test/test_human_bone
+2022-11-22T05:57:58.3113306Z
+2022-11-22T05:57:58.3114010Z [1;32mPASS[0m /datum/unit_test/test_human_bone 0.1s
+2022-11-22T05:57:58.3114667Z ##[endgroup]
+2022-11-22T05:57:58.3301107Z ##[group]/datum/unit_test/merge_type
+2022-11-22T05:57:58.3302955Z
+2022-11-22T05:57:58.3303622Z [1;32mPASS[0m /datum/unit_test/merge_type 0s
+2022-11-22T05:57:58.3304293Z ##[endgroup]
+2022-11-22T05:57:58.3450988Z ##[group]/datum/unit_test/metabolization
+2022-11-22T05:57:58.5454349Z
+2022-11-22T05:57:58.5455483Z [1;32mPASS[0m /datum/unit_test/metabolization 0.2s
+2022-11-22T05:57:58.5456119Z ##[endgroup]
+2022-11-22T05:57:58.7181588Z ##[group]/datum/unit_test/on_mob_end_metabolize
+2022-11-22T05:57:58.7436989Z
+2022-11-22T05:57:58.7438144Z [1;32mPASS[0m /datum/unit_test/on_mob_end_metabolize 0s
+2022-11-22T05:57:58.7438781Z ##[endgroup]
+2022-11-22T05:57:58.7634355Z ##[group]/datum/unit_test/addictions
+2022-11-22T05:57:58.8327697Z
+2022-11-22T05:57:58.8328724Z [1;32mPASS[0m /datum/unit_test/addictions 0.1s
+2022-11-22T05:57:58.8329396Z ##[endgroup]
+2022-11-22T05:57:58.9646352Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer
+2022-11-22T05:57:58.9894685Z
+2022-11-22T05:57:58.9895899Z [1;32mPASS[0m /datum/unit_test/actions_moved_on_mind_transfer 0s
+2022-11-22T05:57:58.9899018Z ##[endgroup]
+2022-11-22T05:57:59.0145385Z ##[group]/datum/unit_test/mob_faction
+2022-11-22T05:58:02.3668071Z
+2022-11-22T05:58:02.3669027Z [1;32mPASS[0m /datum/unit_test/mob_faction 3.3s
+2022-11-22T05:58:02.3669939Z ##[endgroup]
+2022-11-22T05:58:07.7854295Z ##[group]/datum/unit_test/mob_spawn
+2022-11-22T05:58:07.7991138Z
+2022-11-22T05:58:07.7991742Z [1;32mPASS[0m /datum/unit_test/mob_spawn 0s
+2022-11-22T05:58:07.7992334Z ##[endgroup]
+2022-11-22T05:58:07.9421769Z ##[group]/datum/unit_test/modsuit_checks
+2022-11-22T05:58:08.1300462Z
+2022-11-22T05:58:08.1301703Z [1;32mPASS[0m /datum/unit_test/modsuit_checks 0.2s
+2022-11-22T05:58:08.1302808Z ##[endgroup]
+2022-11-22T05:58:08.2981112Z ##[group]/datum/unit_test/modular_map_loader
+2022-11-22T05:58:08.2993538Z
+2022-11-22T05:58:08.2994017Z [1;32mPASS[0m /datum/unit_test/modular_map_loader 0s
+2022-11-22T05:58:08.2994490Z ##[endgroup]
+2022-11-22T05:58:08.3152720Z ##[group]/datum/unit_test/mouse_bite_cable
+2022-11-22T05:58:08.3194795Z
+2022-11-22T05:58:08.3195300Z [1;32mPASS[0m /datum/unit_test/mouse_bite_cable 0s
+2022-11-22T05:58:08.3195915Z ##[endgroup]
+2022-11-22T05:58:08.3481029Z ##[group]/datum/unit_test/novaflower_burn
+2022-11-22T05:58:08.3949558Z
+2022-11-22T05:58:08.3950307Z [1;32mPASS[0m /datum/unit_test/novaflower_burn 0s
+2022-11-22T05:58:08.3950994Z ##[endgroup]
+2022-11-22T05:58:08.4260753Z ##[group]/datum/unit_test/ntnetwork
+2022-11-22T05:58:08.4260950Z
+2022-11-22T05:58:08.4261366Z [1;32mPASS[0m /datum/unit_test/ntnetwork 0s
+2022-11-22T05:58:08.4261791Z ##[endgroup]
+2022-11-22T05:58:08.4438911Z ##[group]/datum/unit_test/nuke_cinematic
+2022-11-22T05:58:12.2927681Z
+2022-11-22T05:58:12.2928809Z [1;32mPASS[0m /datum/unit_test/nuke_cinematic 3.8s
+2022-11-22T05:58:12.2929427Z ##[endgroup]
+2022-11-22T05:58:12.5093172Z ##[group]/datum/unit_test/objectives_category
+2022-11-22T05:58:12.5093989Z
+2022-11-22T05:58:12.5095122Z [1;32mPASS[0m /datum/unit_test/objectives_category 0s
+2022-11-22T05:58:12.5096774Z ##[endgroup]
+2022-11-22T05:58:12.5256872Z ##[group]/datum/unit_test/orderable_item_descriptions
+2022-11-22T05:58:12.5771407Z
+2022-11-22T05:58:12.5772577Z [1;32mPASS[0m /datum/unit_test/orderable_item_descriptions 0s
+2022-11-22T05:58:12.5773724Z ##[endgroup]
+2022-11-22T05:58:12.5931358Z ##[group]/datum/unit_test/operating_table
+2022-11-22T05:58:12.6369527Z
+2022-11-22T05:58:12.6370760Z [1;32mPASS[0m /datum/unit_test/operating_table 0.1s
+2022-11-22T05:58:12.6371649Z ##[endgroup]
+2022-11-22T05:58:12.6652645Z ##[group]/datum/unit_test/outfit_sanity
+2022-11-22T05:58:20.4025368Z
+2022-11-22T05:58:20.4026450Z [1;32mPASS[0m /datum/unit_test/outfit_sanity 7.8s
+2022-11-22T05:58:20.4027358Z ##[endgroup]
+2022-11-22T05:58:28.1332042Z ##[group]/datum/unit_test/paintings
+2022-11-22T05:58:28.1602466Z
+2022-11-22T05:58:28.1603414Z [1;32mPASS[0m /datum/unit_test/paintings 0s
+2022-11-22T05:58:28.1604319Z ##[endgroup]
+2022-11-22T05:58:28.1760460Z ##[group]/datum/unit_test/pills
+2022-11-22T05:58:28.1992533Z
+2022-11-22T05:58:28.1993343Z [1;32mPASS[0m /datum/unit_test/pills 0s
+2022-11-22T05:58:28.1994038Z ##[endgroup]
+2022-11-22T05:58:28.2194261Z ##[group]/datum/unit_test/plane_double_transform
+2022-11-22T05:58:28.2430543Z
+2022-11-22T05:58:28.2431815Z [1;32mPASS[0m /datum/unit_test/plane_double_transform 0s
+2022-11-22T05:58:28.2434784Z ##[endgroup]
+2022-11-22T05:58:28.2932472Z ##[group]/datum/unit_test/plane_dupe_detector
+2022-11-22T05:58:28.2933160Z
+2022-11-22T05:58:28.2935921Z [1;32mPASS[0m /datum/unit_test/plane_dupe_detector 0s
+2022-11-22T05:58:28.2938654Z ##[endgroup]
+2022-11-22T05:58:28.3090410Z ##[group]/datum/unit_test/plantgrowth
+2022-11-22T05:58:28.3481022Z
+2022-11-22T05:58:28.3482119Z [1;32mPASS[0m /datum/unit_test/plantgrowth 0s
+2022-11-22T05:58:28.3483278Z ##[endgroup]
+2022-11-22T05:58:28.3644306Z ##[group]/datum/unit_test/preference_species
+2022-11-22T05:58:28.3644848Z
+2022-11-22T05:58:28.3645467Z [1;32mPASS[0m /datum/unit_test/preference_species 0s
+2022-11-22T05:58:28.3648326Z ##[endgroup]
+2022-11-22T05:58:28.3800065Z ##[group]/datum/unit_test/preferences_implement_everything
+2022-11-22T05:58:33.0443739Z
+2022-11-22T05:58:33.0446214Z [1;32mPASS[0m /datum/unit_test/preferences_implement_everything 4.7s
+2022-11-22T05:58:33.0447293Z ##[endgroup]
+2022-11-22T05:58:37.7153022Z ##[group]/datum/unit_test/preferences_valid_savefile_key
+2022-11-22T05:58:37.7155101Z
+2022-11-22T05:58:37.7157164Z [1;32mPASS[0m /datum/unit_test/preferences_valid_savefile_key 0s
+2022-11-22T05:58:37.7158100Z ##[endgroup]
+2022-11-22T05:58:37.7323713Z ##[group]/datum/unit_test/preferences_valid_main_feature_name
+2022-11-22T05:58:37.7329320Z
+2022-11-22T05:58:37.7330388Z [1;32mPASS[0m /datum/unit_test/preferences_valid_main_feature_name 0s
+2022-11-22T05:58:37.7330952Z ##[endgroup]
+2022-11-22T05:58:37.7489830Z ##[group]/datum/unit_test/projectile_movetypes
+2022-11-22T05:58:37.7490689Z
+2022-11-22T05:58:37.7491455Z [1;32mPASS[0m /datum/unit_test/projectile_movetypes 0s
+2022-11-22T05:58:37.7491963Z ##[endgroup]
+2022-11-22T05:58:37.7649766Z ##[group]/datum/unit_test/gun_go_bang
+2022-11-22T05:58:37.8209519Z
+2022-11-22T05:58:37.8210665Z [1;32mPASS[0m /datum/unit_test/gun_go_bang 0.1s
+2022-11-22T05:58:37.8211545Z ##[endgroup]
+2022-11-22T05:58:37.8502284Z ##[group]/datum/unit_test/quirk_icons
+2022-11-22T05:58:37.8502850Z
+2022-11-22T05:58:37.8503567Z [1;32mPASS[0m /datum/unit_test/quirk_icons 0s
+2022-11-22T05:58:37.8504117Z ##[endgroup]
+2022-11-22T05:58:37.8657773Z ##[group]/datum/unit_test/range_return
+2022-11-22T05:58:37.8658306Z
+2022-11-22T05:58:37.8658926Z [1;32mPASS[0m /datum/unit_test/range_return 0s
+2022-11-22T05:58:37.8659408Z ##[endgroup]
+2022-11-22T05:58:37.8813805Z ##[group]/datum/unit_test/frame_stacking
+2022-11-22T05:58:37.9259992Z
+2022-11-22T05:58:37.9261883Z [1;32mPASS[0m /datum/unit_test/frame_stacking 0.1s
+2022-11-22T05:58:37.9264250Z ##[endgroup]
+2022-11-22T05:58:37.9487864Z ##[group]/datum/unit_test/reagent_id_typos
+2022-11-22T05:58:37.9501045Z
+2022-11-22T05:58:37.9502744Z [1;32mPASS[0m /datum/unit_test/reagent_id_typos 0s
+2022-11-22T05:58:37.9504577Z ##[endgroup]
+2022-11-22T05:58:37.9652919Z ##[group]/datum/unit_test/reagent_mob_expose
+2022-11-22T05:58:37.9929781Z
+2022-11-22T05:58:37.9930884Z [1;32mPASS[0m /datum/unit_test/reagent_mob_expose 0s
+2022-11-22T05:58:37.9932053Z ##[endgroup]
+2022-11-22T05:58:38.0197685Z ##[group]/datum/unit_test/reagent_mob_procs
+2022-11-22T05:58:38.0416951Z
+2022-11-22T05:58:38.0417978Z [1;32mPASS[0m /datum/unit_test/reagent_mob_procs 0s
+2022-11-22T05:58:38.0420890Z ##[endgroup]
+2022-11-22T05:58:38.0622397Z ##[group]/datum/unit_test/reagent_names
+2022-11-22T05:58:38.8276671Z
+2022-11-22T05:58:38.8277981Z [1;32mPASS[0m /datum/unit_test/reagent_names 0.8s
+2022-11-22T05:58:38.8278989Z ##[endgroup]
+2022-11-22T05:58:39.5940322Z ##[group]/datum/unit_test/reagent_recipe_collisions
+2022-11-22T05:58:39.9910847Z
+2022-11-22T05:58:39.9911887Z [1;32mPASS[0m /datum/unit_test/reagent_recipe_collisions 0.4s
+2022-11-22T05:58:39.9912840Z ##[endgroup]
+2022-11-22T05:58:40.3577765Z ##[group]/datum/unit_test/reagent_transfer
+2022-11-22T05:58:40.3582341Z
+2022-11-22T05:58:40.3583185Z [1;32mPASS[0m /datum/unit_test/reagent_transfer 0s
+2022-11-22T05:58:40.3584011Z ##[endgroup]
+2022-11-22T05:58:40.3745578Z ##[group]/datum/unit_test/stop_drop_and_roll
+2022-11-22T05:58:40.3962558Z
+2022-11-22T05:58:40.3963493Z [1;32mPASS[0m /datum/unit_test/stop_drop_and_roll 0s
+2022-11-22T05:58:40.3965748Z ##[endgroup]
+2022-11-22T05:58:40.4169199Z ##[group]/datum/unit_test/container_resist
+2022-11-22T05:58:40.4450945Z
+2022-11-22T05:58:40.4452010Z [1;32mPASS[0m /datum/unit_test/container_resist 0s
+2022-11-22T05:58:40.4452942Z ##[endgroup]
+2022-11-22T05:58:40.4681974Z ##[group]/datum/unit_test/get_message_mods
+2022-11-22T05:58:40.4890976Z
+2022-11-22T05:58:40.4891902Z [1;32mPASS[0m /datum/unit_test/get_message_mods 0s
+2022-11-22T05:58:40.4938745Z ##[endgroup]
+2022-11-22T05:58:40.5092622Z ##[group]/datum/unit_test/say_signal
+2022-11-22T05:58:40.5109636Z
+2022-11-22T05:58:40.5110057Z [1;32mPASS[0m /datum/unit_test/say_signal 0s
+2022-11-22T05:58:40.5110529Z ##[endgroup]
+2022-11-22T05:58:40.5273081Z ##[group]/datum/unit_test/screenshot_antag_icons
+2022-11-22T05:58:40.5292264Z screenshot_antag_icons_fugitive was put in data/screenshots_new
+2022-11-22T05:58:40.5297917Z screenshot_antag_icons_loneoperative was put in data/screenshots_new
+2022-11-22T05:58:40.5648778Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new
+2022-11-22T05:58:40.5657229Z screenshot_antag_icons_traitor was put in data/screenshots_new
+2022-11-22T05:58:40.6056549Z screenshot_antag_icons_malfai was put in data/screenshots_new
+2022-11-22T05:58:40.6093403Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new
+2022-11-22T05:58:40.6099494Z screenshot_antag_icons_changeling was put in data/screenshots_new
+2022-11-22T05:58:40.6141861Z screenshot_antag_icons_heretic was put in data/screenshots_new
+2022-11-22T05:58:40.6152817Z screenshot_antag_icons_wizard was put in data/screenshots_new
+2022-11-22T05:58:40.6187229Z screenshot_antag_icons_cultist was put in data/screenshots_new
+2022-11-22T05:58:40.6199509Z screenshot_antag_icons_operative was put in data/screenshots_new
+2022-11-22T05:58:40.6212847Z screenshot_antag_icons_clownoperative was put in data/screenshots_new
+2022-11-22T05:58:40.6234689Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new
+2022-11-22T05:58:40.6235113Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new
+2022-11-22T05:58:40.6235503Z screenshot_antag_icons_provocateur was put in data/screenshots_new
+2022-11-22T05:58:40.6235874Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new
+2022-11-22T05:58:40.6236247Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new
+2022-11-22T05:58:40.6236614Z screenshot_antag_icons_operativemidround was put in data/screenshots_new
+2022-11-22T05:58:40.6888373Z screenshot_antag_icons_blob was put in data/screenshots_new
+2022-11-22T05:58:40.6981477Z screenshot_antag_icons_xenomorph was put in data/screenshots_new
+2022-11-22T05:58:40.6987596Z screenshot_antag_icons_nightmare was put in data/screenshots_new
+2022-11-22T05:58:40.7057997Z screenshot_antag_icons_spacedragon was put in data/screenshots_new
+2022-11-22T05:58:40.7064121Z screenshot_antag_icons_abductor was put in data/screenshots_new
+2022-11-22T05:58:40.7069837Z screenshot_antag_icons_spaceninja was put in data/screenshots_new
+2022-11-22T05:58:40.7301887Z screenshot_antag_icons_revenant was put in data/screenshots_new
+2022-11-22T05:58:40.7320268Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new
+2022-11-22T05:58:40.7321448Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new
+2022-11-22T05:58:40.7464714Z screenshot_antag_icons_blobinfection was put in data/screenshots_new
+2022-11-22T05:58:40.7484344Z screenshot_antag_icons_obsessed was put in data/screenshots_new
+2022-11-22T05:58:40.7485272Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new
+2022-11-22T05:58:40.7485491Z
+2022-11-22T05:58:40.7486250Z [1;32mPASS[0m /datum/unit_test/screenshot_antag_icons 0.2s
+2022-11-22T05:58:40.7487461Z ##[endgroup]
+2022-11-22T05:58:40.9148897Z ##[group]/datum/unit_test/screenshot_basic
+2022-11-22T05:58:40.9152865Z screenshot_basic_red was put in data/screenshots_new
+2022-11-22T05:58:40.9153089Z
+2022-11-22T05:58:40.9153840Z [1;32mPASS[0m /datum/unit_test/screenshot_basic 0s
+2022-11-22T05:58:40.9154358Z ##[endgroup]
+2022-11-22T05:58:40.9323137Z ##[group]/datum/unit_test/screenshot_humanoids
+2022-11-22T05:58:41.4860399Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new
+2022-11-22T05:58:42.1812125Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new
+2022-11-22T05:58:42.7396430Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new
+2022-11-22T05:58:42.9412448Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new
+2022-11-22T05:58:43.4856493Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new
+2022-11-22T05:58:43.9790579Z screenshot_humanoids__datum_species_android was put in data/screenshots_new
+2022-11-22T05:58:44.4705884Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new
+2022-11-22T05:58:44.9659470Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new
+2022-11-22T05:58:45.5314689Z screenshot_humanoids__datum_species_human was put in data/screenshots_new
+2022-11-22T05:58:46.1537771Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new
+2022-11-22T05:58:46.8079860Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new
+2022-11-22T05:58:47.4445783Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new
+2022-11-22T05:58:47.9686077Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new
+2022-11-22T05:58:48.4853290Z screenshot_humanoids__datum_species_golem_adamantine was put in data/screenshots_new
+2022-11-22T05:58:49.0233415Z screenshot_humanoids__datum_species_golem_plasma was put in data/screenshots_new
+2022-11-22T05:58:49.5402611Z screenshot_humanoids__datum_species_golem_diamond was put in data/screenshots_new
+2022-11-22T05:58:50.0619605Z screenshot_humanoids__datum_species_golem_gold was put in data/screenshots_new
+2022-11-22T05:58:50.5960700Z screenshot_humanoids__datum_species_golem_silver was put in data/screenshots_new
+2022-11-22T05:58:51.1268001Z screenshot_humanoids__datum_species_golem_plasteel was put in data/screenshots_new
+2022-11-22T05:58:51.6041410Z screenshot_humanoids__datum_species_golem_titanium was put in data/screenshots_new
+2022-11-22T05:58:52.1421369Z screenshot_humanoids__datum_species_golem_plastitanium was put in data/screenshots_new
+2022-11-22T05:58:52.6646881Z screenshot_humanoids__datum_species_golem_alloy was put in data/screenshots_new
+2022-11-22T05:58:53.1822437Z screenshot_humanoids__datum_species_golem_wood was put in data/screenshots_new
+2022-11-22T05:58:53.7093546Z screenshot_humanoids__datum_species_golem_uranium was put in data/screenshots_new
+2022-11-22T05:58:54.2289778Z screenshot_humanoids__datum_species_golem_sand was put in data/screenshots_new
+2022-11-22T05:58:54.7551132Z screenshot_humanoids__datum_species_golem_glass was put in data/screenshots_new
+2022-11-22T05:58:55.2923350Z screenshot_humanoids__datum_species_golem_bluespace was put in data/screenshots_new
+2022-11-22T05:58:55.8209063Z screenshot_humanoids__datum_species_golem_bananium was put in data/screenshots_new
+2022-11-22T05:58:56.2556562Z screenshot_humanoids__datum_species_golem_runic was put in data/screenshots_new
+2022-11-22T05:58:56.8660417Z screenshot_humanoids__datum_species_golem_cloth was put in data/screenshots_new
+2022-11-22T05:58:57.3592195Z screenshot_humanoids__datum_species_golem_plastic was put in data/screenshots_new
+2022-11-22T05:58:57.9036879Z screenshot_humanoids__datum_species_golem_bronze was put in data/screenshots_new
+2022-11-22T05:58:58.3538566Z screenshot_humanoids__datum_species_golem_cardboard was put in data/screenshots_new
+2022-11-22T05:58:58.9038125Z screenshot_humanoids__datum_species_golem_leather was put in data/screenshots_new
+2022-11-22T05:58:59.3259282Z screenshot_humanoids__datum_species_golem_durathread was put in data/screenshots_new
+2022-11-22T05:58:59.7415514Z screenshot_humanoids__datum_species_golem_bone was put in data/screenshots_new
+2022-11-22T05:59:00.1624246Z screenshot_humanoids__datum_species_golem_snow was put in data/screenshots_new
+2022-11-22T05:59:00.7017097Z screenshot_humanoids__datum_species_golem_mhydrogen was put in data/screenshots_new
+2022-11-22T05:59:01.2962128Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new
+2022-11-22T05:59:01.8914644Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new
+2022-11-22T05:59:02.4944760Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new
+2022-11-22T05:59:03.1051896Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new
+2022-11-22T05:59:03.6316289Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new
+2022-11-22T05:59:04.1732683Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new
+2022-11-22T05:59:04.3219378Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new
+2022-11-22T05:59:04.7808061Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new
+2022-11-22T05:59:05.2791916Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new
+2022-11-22T05:59:05.8726674Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new
+2022-11-22T05:59:06.4421620Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new
+2022-11-22T05:59:07.0386329Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new
+2022-11-22T05:59:07.6272099Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new
+2022-11-22T05:59:08.2909176Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new
+2022-11-22T05:59:09.0366652Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new
+2022-11-22T05:59:09.0367022Z
+2022-11-22T05:59:09.0367523Z [1;32mPASS[0m /datum/unit_test/screenshot_humanoids 28.1s
+2022-11-22T05:59:09.0368166Z ##[endgroup]
+2022-11-22T05:59:37.6866607Z ##[group]/datum/unit_test/screenshot_saturnx
+2022-11-22T05:59:37.9124865Z screenshot_saturnx_invisibility was put in data/screenshots_new
+2022-11-22T05:59:37.9125745Z
+2022-11-22T05:59:37.9127093Z [1;32mPASS[0m /datum/unit_test/screenshot_saturnx 0.3s
+2022-11-22T05:59:37.9127697Z ##[endgroup]
+2022-11-22T05:59:38.0853482Z ##[group]/datum/unit_test/security_officer_roundstart_distribution
+2022-11-22T05:59:38.2014087Z
+2022-11-22T05:59:38.2015341Z [1;32mPASS[0m /datum/unit_test/security_officer_roundstart_distribution 0.2s
+2022-11-22T05:59:38.2015989Z ##[endgroup]
+2022-11-22T05:59:38.3357446Z ##[group]/datum/unit_test/security_officer_latejoin_distribution
+2022-11-22T05:59:38.7057220Z
+2022-11-22T05:59:38.7058863Z [1;32mPASS[0m /datum/unit_test/security_officer_latejoin_distribution 0.4s
+2022-11-22T05:59:38.7060729Z ##[endgroup]
+2022-11-22T05:59:39.2017954Z ##[group]/datum/unit_test/security_levels
+2022-11-22T05:59:39.2018640Z
+2022-11-22T05:59:39.2021443Z [1;32mPASS[0m /datum/unit_test/security_levels 0s
+2022-11-22T05:59:39.2024185Z ##[endgroup]
+2022-11-22T05:59:39.2192675Z ##[group]/datum/unit_test/servingtray
+2022-11-22T05:59:39.2471606Z
+2022-11-22T05:59:39.2472412Z [1;32mPASS[0m /datum/unit_test/servingtray 0s
+2022-11-22T05:59:39.2475270Z ##[endgroup]
+2022-11-22T05:59:39.2694155Z ##[group]/datum/unit_test/simple_animal_freeze
+2022-11-22T05:59:39.2703215Z
+2022-11-22T05:59:39.2703882Z [1;32mPASS[0m /datum/unit_test/simple_animal_freeze 0s
+2022-11-22T05:59:39.2704730Z ##[endgroup]
+2022-11-22T05:59:39.2859664Z ##[group]/datum/unit_test/siunit
+2022-11-22T05:59:39.2860192Z
+2022-11-22T05:59:39.2905239Z [1;32mPASS[0m /datum/unit_test/siunit 0s
+2022-11-22T05:59:39.2905758Z ##[endgroup]
+2022-11-22T05:59:39.3380495Z ##[group]/datum/unit_test/slips
+2022-11-22T05:59:39.3816463Z
+2022-11-22T05:59:39.3817092Z [1;32mPASS[0m /datum/unit_test/slips 0s
+2022-11-22T05:59:39.3817715Z ##[endgroup]
+2022-11-22T05:59:39.4069986Z ##[group]/datum/unit_test/spawn_humans
+2022-11-22T05:59:44.4570883Z
+2022-11-22T05:59:44.4573502Z [1;32mPASS[0m /datum/unit_test/spawn_humans 5s
+2022-11-22T05:59:44.4574683Z ##[endgroup]
+2022-11-22T05:59:44.4963535Z ##[group]/datum/unit_test/spawn_mobs
+2022-11-22T05:59:44.5574109Z
+2022-11-22T05:59:44.5575293Z [1;32mPASS[0m /datum/unit_test/spawn_mobs 0.1s
+2022-11-22T05:59:44.5575900Z ##[endgroup]
+2022-11-22T05:59:44.6565999Z ##[group]/datum/unit_test/species_change_clothing
+2022-11-22T05:59:44.7330373Z
+2022-11-22T05:59:44.7331058Z [1;32mPASS[0m /datum/unit_test/species_change_clothing 0.1s
+2022-11-22T05:59:44.7331700Z ##[endgroup]
+2022-11-22T05:59:44.7549387Z ##[group]/datum/unit_test/species_change_organs
+2022-11-22T05:59:44.8048767Z
+2022-11-22T05:59:44.8049950Z [1;32mPASS[0m /datum/unit_test/species_change_organs 0.1s
+2022-11-22T05:59:44.8051289Z ##[endgroup]
+2022-11-22T05:59:44.8279792Z ##[group]/datum/unit_test/species_config_sanity
+2022-11-22T05:59:44.8280594Z
+2022-11-22T05:59:44.8283317Z [1;32mPASS[0m /datum/unit_test/species_config_sanity 0s
+2022-11-22T05:59:44.8284090Z ##[endgroup]
+2022-11-22T05:59:44.8437473Z ##[group]/datum/unit_test/species_unique_id
+2022-11-22T05:59:44.8438066Z
+2022-11-22T05:59:44.8438608Z [1;32mPASS[0m /datum/unit_test/species_unique_id 0s
+2022-11-22T05:59:44.8439291Z ##[endgroup]
+2022-11-22T05:59:44.8779329Z ##[group]/datum/unit_test/species_whitelist_check
+2022-11-22T05:59:44.8779795Z
+2022-11-22T05:59:44.8782619Z [1;32mPASS[0m /datum/unit_test/species_whitelist_check 0s
+2022-11-22T05:59:44.8783319Z ##[endgroup]
+2022-11-22T05:59:44.8936699Z ##[group]/datum/unit_test/spell_invocations
+2022-11-22T05:59:44.8937279Z
+2022-11-22T05:59:44.8939987Z [1;32mPASS[0m /datum/unit_test/spell_invocations 0s
+2022-11-22T05:59:44.8940786Z ##[endgroup]
+2022-11-22T05:59:45.0281600Z ##[group]/datum/unit_test/mind_swap_spell
+2022-11-22T05:59:45.0736031Z
+2022-11-22T05:59:45.0737123Z [1;32mPASS[0m /datum/unit_test/mind_swap_spell 0s
+2022-11-22T05:59:45.0738202Z ##[endgroup]
+2022-11-22T05:59:45.2297228Z ##[group]/datum/unit_test/spell_names
+2022-11-22T05:59:45.2298287Z
+2022-11-22T05:59:45.2299157Z [1;32mPASS[0m /datum/unit_test/spell_names 0s
+2022-11-22T05:59:45.2299995Z ##[endgroup]
+2022-11-22T05:59:45.2458199Z ##[group]/datum/unit_test/shapeshift_spell_validity
+2022-11-22T05:59:45.2460243Z
+2022-11-22T05:59:45.2460928Z [1;32mPASS[0m /datum/unit_test/shapeshift_spell_validity 0s
+2022-11-22T05:59:45.2461604Z ##[endgroup]
+2022-11-22T05:59:45.2618397Z ##[group]/datum/unit_test/shapeshift_spell
+2022-11-22T05:59:45.4081241Z ##[error]Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4091958Z ##[error]Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4093892Z ##[error]Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4095548Z ##[error]Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4097222Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4098881Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4100589Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4102710Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4104442Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4106168Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4107958Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4110135Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4112154Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4114456Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4116528Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4118582Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron).
+2022-11-22T05:59:45.4119786Z FAILURE #1: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4120672Z FAILURE #2: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4121597Z FAILURE #3: Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4122479Z FAILURE #4: Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4123517Z FAILURE #5: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4124518Z FAILURE #6: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4125489Z FAILURE #7: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4126570Z FAILURE #8: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4127396Z FAILURE #9: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4128221Z FAILURE #10: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4129047Z FAILURE #11: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4129842Z FAILURE #12: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4130862Z FAILURE #13: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4131926Z FAILURE #14: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4132782Z FAILURE #15: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4133589Z FAILURE #16: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65
+2022-11-22T05:59:45.4134297Z ##[endgroup]
+2022-11-22T05:59:45.4135321Z ##[error][1;31mFAIL[0m /datum/unit_test/shapeshift_spell 0.2s
+2022-11-22T05:59:45.5762391Z ##[group]/datum/unit_test/shapeshift_holoparasites
+2022-11-22T05:59:45.6070063Z
+2022-11-22T05:59:45.6070794Z [1;32mPASS[0m /datum/unit_test/shapeshift_holoparasites 0.1s
+2022-11-22T05:59:45.6071835Z ##[endgroup]
+2022-11-22T05:59:45.6299960Z ##[group]/datum/unit_test/spritesheets
+2022-11-22T05:59:45.6328891Z
+2022-11-22T05:59:45.6329636Z [1;32mPASS[0m /datum/unit_test/spritesheets 0s
+2022-11-22T05:59:45.6330450Z ##[endgroup]
+2022-11-22T05:59:45.6504395Z ##[group]/datum/unit_test/stack_singular_name
+2022-11-22T05:59:45.6504677Z
+2022-11-22T05:59:45.6505199Z [1;32mPASS[0m /datum/unit_test/stack_singular_name 0s
+2022-11-22T05:59:45.6506428Z ##[endgroup]
+2022-11-22T05:59:45.6810947Z ##[group]/datum/unit_test/station_traits
+2022-11-22T05:59:45.6811136Z
+2022-11-22T05:59:45.6811839Z [1;32mPASS[0m /datum/unit_test/station_traits 0s
+2022-11-22T05:59:45.6812628Z ##[endgroup]
+2022-11-22T05:59:45.6968300Z ##[group]/datum/unit_test/stomach
+2022-11-22T05:59:45.7241514Z
+2022-11-22T05:59:45.7242199Z [1;32mPASS[0m /datum/unit_test/stomach 0.1s
+2022-11-22T05:59:45.7242846Z ##[endgroup]
+2022-11-22T05:59:45.7453036Z ##[group]/datum/unit_test/strip_menu_ui_status
+2022-11-22T05:59:45.7868616Z
+2022-11-22T05:59:45.7869391Z [1;32mPASS[0m /datum/unit_test/strip_menu_ui_status 0s
+2022-11-22T05:59:45.7870070Z ##[endgroup]
+2022-11-22T05:59:45.8340124Z ##[group]/datum/unit_test/subsystem_init
+2022-11-22T05:59:45.8340353Z
+2022-11-22T05:59:45.8340796Z [1;32mPASS[0m /datum/unit_test/subsystem_init 0s
+2022-11-22T05:59:45.8341746Z ##[endgroup]
+2022-11-22T05:59:45.8497480Z ##[group]/datum/unit_test/suit_storage_icons
+2022-11-22T05:59:47.2782798Z 1 - /obj/item/ammo_casing/shotgun using invalid worn_icon_state, "shell"
+2022-11-22T05:59:47.2904416Z 2 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun"
+2022-11-22T05:59:47.3032597Z 3 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus"
+2022-11-22T05:59:47.3160623Z 4 - /obj/item/gun/energy/beam_rifle using invalid icon_state, "esniper"
+2022-11-22T05:59:47.3179488Z 5 - /obj/item/gun/energy/lasercannon using invalid icon_state, "lasercannon"
+2022-11-22T05:59:47.3204942Z 6 - /obj/item/gun/energy/ionrifle using invalid icon_state, "ionrifle"
+2022-11-22T05:59:47.3205749Z 7 - /obj/item/gun/energy/ionrifle/carbine using invalid icon_state, "ioncarbine"
+2022-11-22T05:59:47.3333663Z 8 - /obj/item/tome using invalid icon_state, "tome"
+2022-11-22T05:59:47.3367736Z 9 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade"
+2022-11-22T05:59:47.3379696Z 10 - /obj/item/nullrod/staff using invalid icon_state, "godstaff-red"
+2022-11-22T05:59:47.3382004Z 11 - /obj/item/nullrod/staff/blue using invalid icon_state, "godstaff-blue"
+2022-11-22T05:59:47.3455165Z 12 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife"
+2022-11-22T05:59:47.3462398Z 13 - /obj/item/nullrod/spear using invalid icon_state, "ratvarian_spear"
+2022-11-22T05:59:47.3471005Z 14 - /obj/item/candle using invalid icon_state, "candle1"
+2022-11-22T05:59:47.3818626Z 15 - /obj/item/toy/eightball using invalid icon_state, "eightball"
+2022-11-22T05:59:47.3819882Z 16 - /obj/item/toy/mecha using invalid icon_state, "fivestarstoy"
+2022-11-22T05:59:47.3822376Z 17 - /obj/item/toy/mecha/ripley using invalid icon_state, "ripleytoy"
+2022-11-22T05:59:47.3824854Z 18 - /obj/item/toy/mecha/ripleymkii using invalid icon_state, "ripleymkiitoy"
+2022-11-22T05:59:47.3827367Z 19 - /obj/item/toy/mecha/hauler using invalid icon_state, "haulertoy"
+2022-11-22T05:59:47.3829817Z 20 - /obj/item/toy/mecha/clarke using invalid icon_state, "clarketoy"
+2022-11-22T05:59:47.3832329Z 21 - /obj/item/toy/mecha/odysseus using invalid icon_state, "odysseustoy"
+2022-11-22T05:59:47.3834765Z 22 - /obj/item/toy/mecha/gygax using invalid icon_state, "gygaxtoy"
+2022-11-22T05:59:47.3837259Z 23 - /obj/item/toy/mecha/durand using invalid icon_state, "durandtoy"
+2022-11-22T05:59:47.3839922Z 24 - /obj/item/toy/mecha/savannahivanov using invalid icon_state, "savannahivanovtoy"
+2022-11-22T05:59:47.3842813Z 25 - /obj/item/toy/mecha/phazon using invalid icon_state, "phazontoy"
+2022-11-22T05:59:47.3845150Z 26 - /obj/item/toy/mecha/honk using invalid icon_state, "honktoy"
+2022-11-22T05:59:47.3847669Z 27 - /obj/item/toy/mecha/darkgygax using invalid icon_state, "darkgygaxtoy"
+2022-11-22T05:59:47.3850308Z 28 - /obj/item/toy/mecha/mauler using invalid icon_state, "maulertoy"
+2022-11-22T05:59:47.3852869Z 29 - /obj/item/toy/mecha/darkhonk using invalid icon_state, "darkhonktoy"
+2022-11-22T05:59:47.3855423Z 30 - /obj/item/toy/mecha/deathripley using invalid icon_state, "deathripleytoy"
+2022-11-22T05:59:47.3857917Z 31 - /obj/item/toy/mecha/reticence using invalid icon_state, "reticencetoy"
+2022-11-22T05:59:47.3860420Z 32 - /obj/item/toy/mecha/marauder using invalid icon_state, "maraudertoy"
+2022-11-22T05:59:47.3863149Z 33 - /obj/item/toy/mecha/seraph using invalid icon_state, "seraphtoy"
+2022-11-22T05:59:47.3865478Z 34 - /obj/item/toy/mecha/firefighter using invalid icon_state, "firefightertoy"
+2022-11-22T05:59:47.3867946Z 35 - /obj/item/toy/waterballoon using invalid icon_state, "waterballoon-e"
+2022-11-22T05:59:47.3870341Z 36 - /obj/item/toy/balloon using invalid icon_state, "balloon"
+2022-11-22T05:59:47.3872883Z 37 - /obj/item/toy/balloon/corgi using invalid icon_state, "corgi"
+2022-11-22T05:59:47.3875334Z 38 - /obj/item/toy/balloon/syndicate using invalid icon_state, "syndballoon"
+2022-11-22T05:59:47.3877875Z 39 - /obj/item/toy/balloon/arrest using invalid icon_state, "arrestballoon"
+2022-11-22T05:59:47.3881362Z 40 - /obj/item/toy/captainsaid using invalid icon_state, "captainsaid_off"
+2022-11-22T05:59:47.3882960Z 41 - /obj/item/toy/spinningtoy using invalid icon_state, "singularity_s1"
+2022-11-22T05:59:47.3887746Z 42 - /obj/item/toy/ammo/gun using invalid icon_state, "357OLD-7"
+2022-11-22T05:59:47.3890028Z 43 - /obj/item/toy/sword using invalid icon_state, "e_sword"
+2022-11-22T05:59:47.3892708Z 44 - /obj/item/toy/foamblade using invalid icon_state, "foamblade"
+2022-11-22T05:59:47.3895134Z 45 - /obj/item/toy/windup_toolbox using invalid icon_state, "green"
+2022-11-22T05:59:47.3899921Z 46 - /obj/item/toy/snappop using invalid icon_state, "snappop"
+2022-11-22T05:59:47.3902685Z 47 - /obj/item/toy/talking using invalid icon_state, "owlprize"
+2022-11-22T05:59:47.3904842Z 48 - /obj/item/toy/talking/ai using invalid icon_state, "AI"
+2022-11-22T05:59:47.3907306Z 49 - /obj/item/toy/talking/codex_gigas using invalid icon_state, "demonomicon"
+2022-11-22T05:59:47.3909825Z 50 - /obj/item/toy/talking/griffin using invalid icon_state, "griffinprize"
+2022-11-22T05:59:47.3912295Z 51 - /obj/item/toy/nuke using invalid icon_state, "nuketoyidle"
+2022-11-22T05:59:47.3914956Z 52 - /obj/item/toy/minimeteor using invalid icon_state, "minimeteor"
+2022-11-22T05:59:47.3917314Z 53 - /obj/item/toy/redbutton using invalid icon_state, "bigred"
+2022-11-22T05:59:47.3919850Z 54 - /obj/item/toy/snowball using invalid icon_state, "snowball"
+2022-11-22T05:59:47.3922324Z 55 - /obj/item/toy/beach_ball using invalid icon_state, "ball"
+2022-11-22T05:59:47.3924942Z 56 - /obj/item/toy/beach_ball/baseball using invalid icon_state, "baseball"
+2022-11-22T05:59:47.3927403Z 57 - /obj/item/toy/beach_ball/holoball using invalid icon_state, "basketball"
+2022-11-22T05:59:47.3930060Z 58 - /obj/item/toy/beach_ball/holoball/dodgeball using invalid icon_state, "dodgeball"
+2022-11-22T05:59:47.3937167Z 59 - /obj/item/toy/toy_xeno using invalid icon_state, "toy_xeno"
+2022-11-22T05:59:47.3939549Z 60 - /obj/item/toy/cattoy using invalid icon_state, "toy_mouse"
+2022-11-22T05:59:47.3942078Z 61 - /obj/item/toy/figure using invalid icon_state, "nuketoy"
+2022-11-22T05:59:47.3944589Z 62 - /obj/item/toy/figure/cmo using invalid icon_state, "cmo"
+2022-11-22T05:59:47.3947155Z 63 - /obj/item/toy/figure/assistant using invalid icon_state, "assistant"
+2022-11-22T05:59:47.3949638Z 64 - /obj/item/toy/figure/atmos using invalid icon_state, "atmos"
+2022-11-22T05:59:47.3952141Z 65 - /obj/item/toy/figure/bartender using invalid icon_state, "bartender"
+2022-11-22T05:59:47.3954628Z 66 - /obj/item/toy/figure/borg using invalid icon_state, "borg"
+2022-11-22T05:59:47.3957148Z 67 - /obj/item/toy/figure/botanist using invalid icon_state, "botanist"
+2022-11-22T05:59:47.3959629Z 68 - /obj/item/toy/figure/captain using invalid icon_state, "captain"
+2022-11-22T05:59:47.3962149Z 69 - /obj/item/toy/figure/cargotech using invalid icon_state, "cargotech"
+2022-11-22T05:59:47.3964605Z 70 - /obj/item/toy/figure/ce using invalid icon_state, "ce"
+2022-11-22T05:59:47.3967148Z 71 - /obj/item/toy/figure/chaplain using invalid icon_state, "chaplain"
+2022-11-22T05:59:47.3969647Z 72 - /obj/item/toy/figure/chef using invalid icon_state, "chef"
+2022-11-22T05:59:47.3972328Z 73 - /obj/item/toy/figure/chemist using invalid icon_state, "chemist"
+2022-11-22T05:59:47.3975052Z 74 - /obj/item/toy/figure/clown using invalid icon_state, "clown"
+2022-11-22T05:59:47.3977375Z 75 - /obj/item/toy/figure/ian using invalid icon_state, "ian"
+2022-11-22T05:59:47.3979914Z 76 - /obj/item/toy/figure/detective using invalid icon_state, "detective"
+2022-11-22T05:59:47.3982376Z 77 - /obj/item/toy/figure/dsquad using invalid icon_state, "dsquad"
+2022-11-22T05:59:47.3984915Z 78 - /obj/item/toy/figure/engineer using invalid icon_state, "engineer"
+2022-11-22T05:59:47.3987388Z 79 - /obj/item/toy/figure/geneticist using invalid icon_state, "geneticist"
+2022-11-22T05:59:47.3989933Z 80 - /obj/item/toy/figure/hop using invalid icon_state, "hop"
+2022-11-22T05:59:47.3992345Z 81 - /obj/item/toy/figure/hos using invalid icon_state, "hos"
+2022-11-22T05:59:47.3994832Z 82 - /obj/item/toy/figure/qm using invalid icon_state, "qm"
+2022-11-22T05:59:47.3997314Z 83 - /obj/item/toy/figure/janitor using invalid icon_state, "janitor"
+2022-11-22T05:59:47.3999822Z 84 - /obj/item/toy/figure/lawyer using invalid icon_state, "lawyer"
+2022-11-22T05:59:47.4002303Z 85 - /obj/item/toy/figure/curator using invalid icon_state, "curator"
+2022-11-22T05:59:47.4004824Z 86 - /obj/item/toy/figure/md using invalid icon_state, "md"
+2022-11-22T05:59:47.4007316Z 87 - /obj/item/toy/figure/paramedic using invalid icon_state, "paramedic"
+2022-11-22T05:59:47.4009871Z 88 - /obj/item/toy/figure/psychologist using invalid icon_state, "psychologist"
+2022-11-22T05:59:47.4012455Z 89 - /obj/item/toy/figure/prisoner using invalid icon_state, "prisoner"
+2022-11-22T05:59:47.4015072Z 90 - /obj/item/toy/figure/mime using invalid icon_state, "mime"
+2022-11-22T05:59:47.4017416Z 91 - /obj/item/toy/figure/miner using invalid icon_state, "miner"
+2022-11-22T05:59:47.4019976Z 92 - /obj/item/toy/figure/ninja using invalid icon_state, "ninja"
+2022-11-22T05:59:47.4022438Z 93 - /obj/item/toy/figure/wizard using invalid icon_state, "wizard"
+2022-11-22T05:59:47.4024907Z 94 - /obj/item/toy/figure/rd using invalid icon_state, "rd"
+2022-11-22T05:59:47.4027464Z 95 - /obj/item/toy/figure/roboticist using invalid icon_state, "roboticist"
+2022-11-22T05:59:47.4029958Z 96 - /obj/item/toy/figure/scientist using invalid icon_state, "scientist"
+2022-11-22T05:59:47.4032492Z 97 - /obj/item/toy/figure/syndie using invalid icon_state, "syndie"
+2022-11-22T05:59:47.4035062Z 98 - /obj/item/toy/figure/secofficer using invalid icon_state, "secofficer"
+2022-11-22T05:59:47.4037516Z 99 - /obj/item/toy/figure/virologist using invalid icon_state, "virologist"
+2022-11-22T05:59:47.4040034Z 100 - /obj/item/toy/figure/warden using invalid icon_state, "warden"
+2022-11-22T05:59:47.4042570Z 101 - /obj/item/toy/dummy using invalid icon_state, "puppet"
+2022-11-22T05:59:47.4045132Z 102 - /obj/item/toy/seashell using invalid icon_state, "shell1"
+2022-11-22T05:59:47.4047654Z 103 - /obj/item/toy/brokenradio using invalid icon_state, "broken_radio"
+2022-11-22T05:59:47.4050253Z 104 - /obj/item/toy/braintoy using invalid icon_state, "brain-old"
+2022-11-22T05:59:47.4055251Z 105 - /obj/item/toy/reality_pierce using invalid icon_state, "pierced_illusion"
+2022-11-22T05:59:47.4057520Z 106 - /obj/item/toy/foamfinger using invalid icon_state, "foamfinger"
+2022-11-22T05:59:47.4060004Z 107 - /obj/item/toy/intento using invalid icon_state, "blank"
+2022-11-22T05:59:47.4092596Z 108 - /obj/item/toy/sprayoncan using invalid icon_state, "sprayoncan"
+2022-11-22T05:59:47.4093827Z 109 - /obj/item/toy/xmas_cracker using invalid icon_state, "cracker"
+2022-11-22T05:59:47.4098242Z 110 - /obj/item/cultivator/rake using invalid icon_state, "rake"
+2022-11-22T05:59:47.4104109Z 111 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet"
+2022-11-22T05:59:47.4106239Z 112 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade"
+2022-11-22T05:59:47.4792952Z 113 - /obj/item/reagent_containers/hypospray/medipen using invalid worn_icon_state, "medipen"
+2022-11-22T05:59:47.4928931Z 114 - /obj/item/storage/pill_bottle using invalid icon_state, "pill_canister"
+2022-11-22T05:59:47.4937506Z 115 - /obj/item/analyzer/ranged using invalid icon_state, "analyzerranged"
+2022-11-22T05:59:47.5463999Z 116 - /obj/item/organ/internal/monster_core using invalid icon_state, "hivelord_core"
+2022-11-22T05:59:47.5466585Z 117 - /obj/item/organ/internal/monster_core/brimdust_sac using invalid icon_state, "brim_sac"
+2022-11-22T05:59:47.5467229Z 118 - /obj/item/organ/internal/monster_core/regenerative_core/legion using invalid icon_state, "legion_core"
+2022-11-22T05:59:47.5469256Z 119 - /obj/item/organ/internal/monster_core/rush_gland using invalid icon_state, "lobster_gland"
+2022-11-22T05:59:47.5479181Z 120 - /obj/item/spear/bamboospear using invalid icon_state, "bamboo_spear0"
+2022-11-22T05:59:47.5517467Z 121 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan"
+2022-11-22T05:59:47.5518755Z 122 - /obj/item/abductor/silencer using invalid icon_state, "silencer"
+2022-11-22T05:59:47.5521102Z 123 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message"
+2022-11-22T05:59:47.5536484Z 124 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass"
+2022-11-22T05:59:47.5540915Z 125 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg"
+2022-11-22T05:59:47.5543262Z 126 - /obj/item/banner using invalid icon_state, "banner"
+2022-11-22T05:59:47.5545809Z 127 - /obj/item/banner/security using invalid icon_state, "banner_security"
+2022-11-22T05:59:47.5548315Z 128 - /obj/item/banner/medical using invalid icon_state, "banner_medical"
+2022-11-22T05:59:47.5550843Z 129 - /obj/item/banner/science using invalid icon_state, "banner_science"
+2022-11-22T05:59:47.5553341Z 130 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo"
+2022-11-22T05:59:47.5555871Z 131 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering"
+2022-11-22T05:59:47.5558379Z 132 - /obj/item/banner/red using invalid icon_state, "banner-red"
+2022-11-22T05:59:47.5560854Z 133 - /obj/item/banner/blue using invalid icon_state, "banner-blue"
+2022-11-22T05:59:47.5597308Z 134 - /obj/item/gun/magic/staff using invalid icon_state, "staff"
+2022-11-22T05:59:47.5598624Z 135 - /obj/item/gun/magic/staff/change using invalid icon_state, "staffofchange"
+2022-11-22T05:59:47.5601122Z 136 - /obj/item/gun/magic/staff/animate using invalid icon_state, "staffofanimation"
+2022-11-22T05:59:47.5603650Z 137 - /obj/item/gun/magic/staff/healing using invalid icon_state, "staffofhealing"
+2022-11-22T05:59:47.5606162Z 138 - /obj/item/gun/magic/staff/chaos using invalid icon_state, "staffofchaos"
+2022-11-22T05:59:47.5608674Z 139 - /obj/item/gun/magic/staff/door using invalid icon_state, "staffofdoor"
+2022-11-22T05:59:47.5611329Z 140 - /obj/item/gun/magic/staff/honk using invalid icon_state, "honker"
+2022-11-22T05:59:47.5616211Z 141 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff"
+2022-11-22T05:59:47.5618590Z 142 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff"
+2022-11-22T05:59:47.5621083Z 143 - /obj/item/gun/magic/staff/babel using invalid worn_icon_state, "babelstaff"
+2022-11-22T05:59:47.5623626Z 144 - /obj/item/gun/magic/staff/necropotence using invalid worn_icon_state, "necrostaff"
+2022-11-22T05:59:47.5626131Z 145 - /obj/item/gun/magic/staff/wipe using invalid worn_icon_state, "wipestaff"
+2022-11-22T05:59:47.5643345Z 146 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass"
+2022-11-22T05:59:47.5645538Z 147 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch"
+2022-11-22T05:59:47.5650375Z 148 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw"
+2022-11-22T05:59:47.5661667Z 149 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised"
+2022-11-22T05:59:47.5667402Z 150 - /obj/item/multitool using invalid icon_state, "multitool"
+2022-11-22T05:59:47.5669936Z 151 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg"
+2022-11-22T05:59:47.5672485Z 152 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit"
+2022-11-22T05:59:47.5675177Z 153 - /obj/item/pillow using invalid icon_state, "pillow_1_t"
+2022-11-22T05:59:47.5677618Z 154 - /obj/item/pillow/clown using invalid icon_state, "pillow_5_t"
+2022-11-22T05:59:47.5680084Z 155 - /obj/item/pillow/mime using invalid icon_state, "pillow_6_t"
+2022-11-22T05:59:47.5682788Z 156 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag"
+2022-11-22T05:59:47.5685228Z 157 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag"
+2022-11-22T05:59:47.5687673Z 158 - /obj/item/cane using invalid icon_state, "cane"
+2022-11-22T05:59:47.5690323Z 159 - /obj/item/cane/white using invalid icon_state, "cane_white"
+2022-11-22T05:59:47.5692922Z 160 - /obj/item/megaphone/clown using invalid icon_state, "megaphone-clown"
+2022-11-22T05:59:47.5711035Z 161 - /obj/item/food/pie/cream using invalid icon_state, "pie"
+2022-11-22T05:59:47.5722637Z 162 - /obj/item/instrument/bikehorn using invalid icon_state, "bike_horn"
+2022-11-22T05:59:47.5724979Z 163 - /obj/item/reagent_containers/cup/soda_cans/canned_laughter using invalid icon_state, "laughter"
+2022-11-22T05:59:47.5740550Z 164 - /obj/item/grown/bananapeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5741267Z 165 - /obj/item/grown/bananapeel/bombanana using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5741975Z 166 - /obj/item/grown/bananapeel/mimanapeel using invalid icon_state, "mimana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5742678Z 167 - /obj/item/grown/bananapeel/bluespace using invalid icon_state, "bluenana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5743387Z 168 - /obj/item/grown/bananapeel/specialpeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5744054Z 169 - /obj/item/food/grown/banana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5744727Z 170 - /obj/item/food/grown/banana/bombanana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5745395Z 171 - /obj/item/food/grown/banana/mime using invalid icon_state, "mimana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5746068Z 172 - /obj/item/food/grown/banana/bluespace using invalid icon_state, "bluenana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5746753Z 173 - /obj/item/food/grown/banana/bunch using invalid icon_state, "banana_bunch" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi'
+2022-11-22T05:59:47.5748235Z 174 - /obj/item/stack/spacecash/c1 using invalid icon_state, "spacecash1"
+2022-11-22T05:59:47.5749552Z 175 - /obj/item/stack/spacecash/c10 using invalid icon_state, "spacecash10"
+2022-11-22T05:59:47.5750858Z 176 - /obj/item/stack/spacecash/c20 using invalid icon_state, "spacecash20"
+2022-11-22T05:59:47.5752155Z 177 - /obj/item/stack/spacecash/c50 using invalid icon_state, "spacecash50"
+2022-11-22T05:59:47.5754575Z 178 - /obj/item/stack/spacecash/c100 using invalid icon_state, "spacecash100"
+2022-11-22T05:59:47.5758018Z 179 - /obj/item/stack/spacecash/c200 using invalid icon_state, "spacecash200"
+2022-11-22T05:59:47.5759981Z 180 - /obj/item/stack/spacecash/c500 using invalid icon_state, "spacecash500"
+2022-11-22T05:59:47.5763153Z 181 - /obj/item/stack/spacecash/c1000 using invalid icon_state, "spacecash1000"
+2022-11-22T05:59:47.5765191Z 182 - /obj/item/stack/spacecash/c10000 using invalid icon_state, "spacecash10000"
+2022-11-22T05:59:47.5768449Z 183 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger"
+2022-11-22T05:59:47.5777399Z 184 - /obj/item/kitchen/fork using invalid icon_state, "fork"
+2022-11-22T05:59:47.5779609Z 185 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork"
+2022-11-22T05:59:47.5786931Z 186 - /obj/item/kitchen/spoon using invalid icon_state, "spoon"
+2022-11-22T05:59:47.5788816Z 187 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon"
+2022-11-22T05:59:47.5796132Z 188 - /obj/item/bonesetter using invalid icon_state, "bonesetter"
+2022-11-22T05:59:47.5798117Z 189 - /obj/item/cautery using invalid icon_state, "cautery"
+2022-11-22T05:59:47.5801358Z 190 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery"
+2022-11-22T05:59:47.5803355Z 191 - /obj/item/hemostat using invalid icon_state, "hemostat"
+2022-11-22T05:59:47.5806562Z 192 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs"
+2022-11-22T05:59:47.5808614Z 193 - /obj/item/retractor using invalid icon_state, "retractor"
+2022-11-22T05:59:47.5811999Z 194 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor"
+2022-11-22T05:59:47.5814490Z 195 - /obj/item/scalpel using invalid icon_state, "scalpel"
+2022-11-22T05:59:47.5817072Z 196 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel"
+2022-11-22T05:59:47.5820120Z 197 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel"
+2022-11-22T05:59:47.5822112Z 198 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes"
+2022-11-22T05:59:47.5826686Z 199 - /obj/item/stack/medical/bruise_pack using invalid icon_state, "brutepack"
+2022-11-22T05:59:47.5829169Z 200 - /obj/item/stack/medical/gauze using invalid icon_state, "gauze"
+2022-11-22T05:59:47.5831713Z 201 - /obj/item/stack/medical/suture using invalid icon_state, "suture"
+2022-11-22T05:59:47.5834293Z 202 - /obj/item/stack/medical/suture/medicated using invalid icon_state, "suture_purp"
+2022-11-22T05:59:47.5836945Z 203 - /obj/item/stack/medical/ointment using invalid icon_state, "ointment"
+2022-11-22T05:59:47.5839365Z 204 - /obj/item/stack/medical/mesh using invalid icon_state, "regen_mesh"
+2022-11-22T05:59:47.5841890Z 205 - /obj/item/stack/medical/mesh/advanced using invalid icon_state, "aloe_mesh"
+2022-11-22T05:59:47.5844397Z 206 - /obj/item/stack/medical/aloe using invalid icon_state, "aloe_paste"
+2022-11-22T05:59:47.5846906Z 207 - /obj/item/stack/medical/bone_gel using invalid icon_state, "bone-gel"
+2022-11-22T05:59:47.5849452Z 208 - /obj/item/stack/medical/poultice using invalid icon_state, "poultice"
+2022-11-22T05:59:47.5852140Z 209 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash"
+2022-11-22T05:59:47.5854699Z 210 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff"
+2022-11-22T05:59:47.5857377Z 211 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff"
+2022-11-22T05:59:47.5859944Z 212 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff"
+2022-11-22T05:59:47.5862552Z 213 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff"
+2022-11-22T05:59:47.5865143Z 214 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off"
+2022-11-22T05:59:47.5867644Z 215 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff"
+2022-11-22T05:59:47.5870191Z 216 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff"
+2022-11-22T05:59:47.5872621Z 217 - /obj/item/disk using invalid icon_state, "datadisk0"
+2022-11-22T05:59:47.5875148Z 218 - /obj/item/disk/holodisk using invalid icon_state, "holodisk"
+2022-11-22T05:59:47.5877898Z 219 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk"
+2022-11-22T05:59:47.5880496Z 220 - /obj/item/disk/surgery using invalid icon_state, "datadisk1"
+2022-11-22T05:59:47.5883119Z 221 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk"
+2022-11-22T05:59:47.5885955Z 222 - /obj/item/disk/tech_disk/major using invalid icon_state, "rndmajordisk"
+2022-11-22T05:59:47.5888500Z 223 - /obj/item/melee/powerfist using invalid icon_state, "powerfist"
+2022-11-22T05:59:47.5897706Z 224 - /obj/item/melee/skateboard using invalid icon_state, "skateboard"
+2022-11-22T05:59:47.5899984Z 225 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2"
+2022-11-22T05:59:47.5902460Z 226 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red"
+2022-11-22T05:59:47.5904690Z 227 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt"
+2022-11-22T05:59:47.5907845Z 228 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat"
+2022-11-22T05:59:47.5910306Z 229 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home"
+2022-11-22T05:59:47.5912836Z 230 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal"
+2022-11-22T05:59:47.5915302Z 231 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter"
+2022-11-22T05:59:47.5919886Z 232 - /obj/item/melee/energy/axe using invalid icon_state, "axe"
+2022-11-22T05:59:47.5922388Z 233 - /obj/item/melee/energy/blade using invalid icon_state, "blade"
+2022-11-22T05:59:47.5924922Z 234 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade"
+2022-11-22T05:59:47.5927400Z 235 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade"
+2022-11-22T05:59:47.5929855Z 236 - /obj/item/melee/sabre using invalid icon_state, "sabre"
+2022-11-22T05:59:47.5932585Z 237 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger"
+2022-11-22T05:59:47.5935177Z 238 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword"
+2022-11-22T05:59:47.5941969Z 239 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn"
+2022-11-22T05:59:47.5944403Z 240 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver"
+2022-11-22T05:59:47.5946893Z 241 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral"
+2022-11-22T05:59:47.5949437Z 242 - /obj/item/reagent_containers/cup/glass/flask using invalid icon_state, "flask"
+2022-11-22T05:59:47.5951947Z 243 - /obj/item/reagent_containers/cup/glass/flask/gold using invalid icon_state, "flask_gold"
+2022-11-22T05:59:47.5954470Z 244 - /obj/item/reagent_containers/cup/glass/flask/det using invalid icon_state, "detflask"
+2022-11-22T05:59:47.5956926Z 245 - /obj/item/stamp using invalid icon_state, "stamp-ok"
+2022-11-22T05:59:47.5959499Z 246 - /obj/item/stamp/qm using invalid icon_state, "stamp-qm"
+2022-11-22T05:59:47.5962007Z 247 - /obj/item/stamp/law using invalid icon_state, "stamp-law"
+2022-11-22T05:59:47.5964537Z 248 - /obj/item/stamp/captain using invalid icon_state, "stamp-cap"
+2022-11-22T05:59:47.5967023Z 249 - /obj/item/stamp/hop using invalid icon_state, "stamp-hop"
+2022-11-22T05:59:47.5969512Z 250 - /obj/item/stamp/hos using invalid icon_state, "stamp-hos"
+2022-11-22T05:59:47.5972211Z 251 - /obj/item/stamp/ce using invalid icon_state, "stamp-ce"
+2022-11-22T05:59:47.5974735Z 252 - /obj/item/stamp/rd using invalid icon_state, "stamp-rd"
+2022-11-22T05:59:47.5977316Z 253 - /obj/item/stamp/cmo using invalid icon_state, "stamp-cmo"
+2022-11-22T05:59:47.5979863Z 254 - /obj/item/stamp/denied using invalid icon_state, "stamp-deny"
+2022-11-22T05:59:47.5982340Z 255 - /obj/item/stamp/void using invalid icon_state, "stamp-void"
+2022-11-22T05:59:47.5984839Z 256 - /obj/item/stamp/clown using invalid icon_state, "stamp-clown"
+2022-11-22T05:59:47.5987328Z 257 - /obj/item/stamp/mime using invalid icon_state, "stamp-mime"
+2022-11-22T05:59:47.5989790Z 258 - /obj/item/stamp/chap using invalid icon_state, "stamp-chap"
+2022-11-22T05:59:47.5992332Z 259 - /obj/item/stamp/centcom using invalid icon_state, "stamp-centcom"
+2022-11-22T05:59:47.5994835Z 260 - /obj/item/stamp/syndicate using invalid icon_state, "stamp-syndicate"
+2022-11-22T05:59:47.5999537Z 261 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l"
+2022-11-22T05:59:47.6006307Z 262 - /obj/item/crowbar/red/caravan using invalid icon_state, "crowbar_caravan"
+2022-11-22T05:59:47.6026916Z 263 - /obj/item/crowbar/mechremoval using invalid icon_state, "mechremoval0"
+2022-11-22T05:59:47.6027464Z 264 - /obj/item/crowbar/drone using invalid icon_state, "crowbar_cyborg"
+2022-11-22T05:59:47.6045435Z
+2022-11-22T05:59:47.6045723Z [1;32mPASS[0m /datum/unit_test/suit_storage_icons 1.8s
+2022-11-22T05:59:47.6046285Z ##[endgroup]
+2022-11-22T05:59:49.3705818Z ##[group]/datum/unit_test/amputation
+2022-11-22T05:59:49.4134911Z
+2022-11-22T05:59:49.4135822Z [1;32mPASS[0m /datum/unit_test/amputation 0.1s
+2022-11-22T05:59:49.4136599Z ##[endgroup]
+2022-11-22T05:59:49.4382113Z ##[group]/datum/unit_test/brain_surgery
+2022-11-22T05:59:49.4804850Z
+2022-11-22T05:59:49.4805763Z [1;32mPASS[0m /datum/unit_test/brain_surgery 0s
+2022-11-22T05:59:49.4806504Z ##[endgroup]
+2022-11-22T05:59:49.5219202Z ##[group]/datum/unit_test/head_transplant
+2022-11-22T05:59:49.5928104Z
+2022-11-22T05:59:49.5929815Z [1;32mPASS[0m /datum/unit_test/head_transplant 0s
+2022-11-22T05:59:49.5933029Z ##[endgroup]
+2022-11-22T05:59:49.6712586Z ##[group]/datum/unit_test/multiple_surgeries
+2022-11-22T05:59:49.7356777Z
+2022-11-22T05:59:49.7357986Z [1;32mPASS[0m /datum/unit_test/multiple_surgeries 0.1s
+2022-11-22T05:59:49.7359539Z ##[endgroup]
+2022-11-22T05:59:49.7649974Z ##[group]/datum/unit_test/start_tend_wounds
+2022-11-22T05:59:49.8066946Z
+2022-11-22T05:59:49.8067917Z [1;32mPASS[0m /datum/unit_test/start_tend_wounds 0.1s
+2022-11-22T05:59:49.8068876Z ##[endgroup]
+2022-11-22T05:59:49.8487591Z ##[group]/datum/unit_test/tend_wounds
+2022-11-22T05:59:49.9400599Z
+2022-11-22T05:59:49.9401319Z [1;32mPASS[0m /datum/unit_test/tend_wounds 0.1s
+2022-11-22T05:59:49.9402005Z ##[endgroup]
+2022-11-22T05:59:50.0310912Z ##[group]/datum/unit_test/auto_teleporter_linking
+2022-11-22T05:59:50.0641967Z
+2022-11-22T05:59:50.0643714Z [1;32mPASS[0m /datum/unit_test/auto_teleporter_linking 0s
+2022-11-22T05:59:50.0647032Z ##[endgroup]
+2022-11-22T05:59:50.0823643Z ##[group]/datum/unit_test/tgui_create_message
+2022-11-22T05:59:50.0824184Z
+2022-11-22T05:59:50.0826702Z [1;32mPASS[0m /datum/unit_test/tgui_create_message 0s
+2022-11-22T05:59:50.0827332Z ##[endgroup]
+2022-11-22T05:59:50.0980740Z ##[group]/datum/unit_test/timer_sanity
+2022-11-22T05:59:50.0981184Z
+2022-11-22T05:59:50.0983576Z [1;32mPASS[0m /datum/unit_test/timer_sanity 0s
+2022-11-22T05:59:50.0984274Z ##[endgroup]
+2022-11-22T05:59:50.1136569Z ##[group]/datum/unit_test/traitor
+2022-11-22T05:59:51.5476276Z
+2022-11-22T05:59:51.5477028Z [1;32mPASS[0m /datum/unit_test/traitor 1.4s
+2022-11-22T05:59:51.5477682Z ##[endgroup]
+2022-11-22T05:59:53.7711821Z ##[group]/datum/unit_test/verify_config_tags
+2022-11-22T05:59:53.7714663Z
+2022-11-22T05:59:53.7716722Z [1;32mPASS[0m /datum/unit_test/verify_config_tags 0s
+2022-11-22T05:59:53.7718585Z ##[endgroup]
+2022-11-22T05:59:53.7880948Z ##[group]/datum/unit_test/verify_emoji_names
+2022-11-22T05:59:53.7883956Z
+2022-11-22T05:59:53.7885900Z [1;32mPASS[0m /datum/unit_test/verify_emoji_names 0s
+2022-11-22T05:59:53.7886813Z ##[endgroup]
+2022-11-22T05:59:53.8042437Z ##[group]/datum/unit_test/wizard_loadout
+2022-11-22T05:59:53.8966549Z
+2022-11-22T05:59:53.8967690Z [1;32mPASS[0m /datum/unit_test/wizard_loadout 0s
+2022-11-22T05:59:53.8971302Z ##[endgroup]
+2022-11-22T05:59:54.0341360Z ##[group]/datum/unit_test/find_reference_sanity
+2022-11-22T05:59:54.0343250Z
+2022-11-22T05:59:54.0344168Z [1;32mPASS[0m /datum/unit_test/find_reference_sanity 0s
+2022-11-22T05:59:54.0344973Z ##[endgroup]
+2022-11-22T05:59:54.0508234Z ##[group]/datum/unit_test/find_reference_baseline
+2022-11-22T05:59:54.0509845Z
+2022-11-22T05:59:54.0510616Z [1;32mPASS[0m /datum/unit_test/find_reference_baseline 0s
+2022-11-22T05:59:54.0511376Z ##[endgroup]
+2022-11-22T05:59:54.0666075Z ##[group]/datum/unit_test/find_reference_exotic
+2022-11-22T05:59:54.0667801Z
+2022-11-22T05:59:54.0668446Z [1;32mPASS[0m /datum/unit_test/find_reference_exotic 0s
+2022-11-22T05:59:54.0669104Z ##[endgroup]
+2022-11-22T05:59:54.0824375Z ##[group]/datum/unit_test/find_reference_esoteric
+2022-11-22T05:59:54.0827948Z
+2022-11-22T05:59:54.0828897Z [1;32mPASS[0m /datum/unit_test/find_reference_esoteric 0s
+2022-11-22T05:59:54.0831682Z ##[endgroup]
+2022-11-22T05:59:54.0985304Z ##[group]/datum/unit_test/find_reference_null_key_entry
+2022-11-22T05:59:54.0986412Z
+2022-11-22T05:59:54.0989135Z [1;32mPASS[0m /datum/unit_test/find_reference_null_key_entry 0s
+2022-11-22T05:59:54.0989794Z ##[endgroup]
+2022-11-22T05:59:54.1142690Z ##[group]/datum/unit_test/find_reference_assoc_investigation
+2022-11-22T05:59:54.1144882Z
+2022-11-22T05:59:54.1145600Z [1;32mPASS[0m /datum/unit_test/find_reference_assoc_investigation 0s
+2022-11-22T05:59:54.1146288Z ##[endgroup]
+2022-11-22T05:59:54.1488133Z ##[group]/datum/unit_test/find_reference_static_investigation
+2022-11-22T05:59:54.3399002Z
+2022-11-22T05:59:54.3403994Z [1;32mPASS[0m /datum/unit_test/find_reference_static_investigation 0.2s
+2022-11-22T05:59:54.3407766Z ##[endgroup]
+2022-11-22T05:59:54.5076371Z ##[group]/datum/unit_test/area_contents
+2022-11-22T05:59:55.8000804Z
+2022-11-22T05:59:55.8001526Z [1;32mPASS[0m /datum/unit_test/area_contents 1.2s
+2022-11-22T05:59:55.8002197Z ##[endgroup]
+2022-11-22T05:59:57.0666199Z ##[group]/datum/unit_test/mapload_space_verification
+2022-11-22T05:59:57.6160655Z
+2022-11-22T05:59:57.6161803Z [1;32mPASS[0m /datum/unit_test/mapload_space_verification 0.6s
+2022-11-22T05:59:57.6162718Z ##[endgroup]
+2022-11-22T05:59:58.1323397Z ##[group]/datum/unit_test/monkey_business
+2022-11-22T06:00:35.7184860Z
+2022-11-22T06:00:35.7185899Z [1;32mPASS[0m /datum/unit_test/monkey_business 37.6s
+2022-11-22T06:00:35.7186595Z ##[endgroup]
+2022-11-22T06:00:37.5877549Z ##[group]/datum/unit_test/create_and_destroy
+2022-11-22T06:05:59.0302461Z
+2022-11-22T06:05:59.0303736Z [1;32mPASS[0m /datum/unit_test/create_and_destroy 321.5s
+2022-11-22T06:05:59.0304705Z ##[endgroup]
+2022-11-22T06:05:59.0560174Z Shutting down Chat subsystem...
+2022-11-22T06:05:59.0560975Z Shutting down Init Profiler subsystem...
+2022-11-22T06:05:59.0561903Z Shutting down Ban Cache subsystem...
+2022-11-22T06:05:59.0562231Z Shutting down Stat Panels subsystem...
+2022-11-22T06:05:59.0562518Z Shutting down Explosions subsystem...
+2022-11-22T06:05:59.0562810Z Shutting down Pathfinder subsystem...
+2022-11-22T06:05:59.0563088Z Shutting down Minor Mapping subsystem...
+2022-11-22T06:05:59.0563534Z Shutting down Shuttle subsystem...
+2022-11-22T06:05:59.0565078Z Shutting down Lighting subsystem...
+2022-11-22T06:05:59.0566480Z Shutting down XKeyScore subsystem...
+2022-11-22T06:05:59.0567870Z Shutting down PRISM subsystem...
+2022-11-22T06:05:59.0569247Z Shutting down Icon Smoothing subsystem...
+2022-11-22T06:05:59.0570863Z Shutting down Assets subsystem...
+2022-11-22T06:05:59.0572220Z Shutting down Vote subsystem...
+2022-11-22T06:05:59.0573617Z Shutting down Persistent Paintings subsystem...
+2022-11-22T06:05:59.0575023Z Shutting down Persistence subsystem...
+2022-11-22T06:05:59.0576420Z Shutting down Atmospherics subsystem...
+2022-11-22T06:05:59.0577826Z Shutting down Wiremod Composite Templates subsystem...
+2022-11-22T06:05:59.0579235Z Shutting down Wet floors subsystem...
+2022-11-22T06:05:59.0580595Z Shutting down Weather subsystem...
+2022-11-22T06:05:59.0581983Z Shutting down Wardrobe subsystem...
+2022-11-22T06:05:59.0583357Z Shutting down Verb Manager subsystem...
+2022-11-22T06:05:59.0584713Z Shutting down Tram Process subsystem...
+2022-11-22T06:05:59.0586074Z Shutting down Traitor subsystem...
+2022-11-22T06:05:59.0587442Z Shutting down Throwing subsystem...
+2022-11-22T06:05:59.0588806Z Shutting down tgui subsystem...
+2022-11-22T06:05:59.0590275Z Shutting down Supermatter Cascade subsystem...
+2022-11-22T06:05:59.0591689Z Shutting down Sun subsystem...
+2022-11-22T06:05:59.0593206Z Shutting down Speech Controller subsystem...
+2022-11-22T06:05:59.0594635Z Shutting down Space Drift subsystem...
+2022-11-22T06:05:59.0596040Z Shutting down Smoke subsystem...
+2022-11-22T06:05:59.0597460Z Shutting down Singularity subsystem...
+2022-11-22T06:05:59.0598856Z Shutting down Radio subsystem...
+2022-11-22T06:05:59.0600239Z Shutting down Radiation subsystem...
+2022-11-22T06:05:59.0601840Z Shutting down Projectiles subsystem...
+2022-11-22T06:05:59.0603292Z Shutting down Processing subsystem...
+2022-11-22T06:05:59.0604868Z Shutting down Points of Interest subsystem...
+2022-11-22T06:05:59.0606290Z Shutting down Plumbing subsystem...
+2022-11-22T06:05:59.0607708Z Shutting down Ping subsystem...
+2022-11-22T06:05:59.0609094Z Shutting down Parallax subsystem...
+2022-11-22T06:05:59.0611351Z Shutting down pAI subsystem...
+2022-11-22T06:05:59.0611677Z Shutting down Overlay subsystem...
+2022-11-22T06:05:59.3302992Z Shutting down Objects subsystem...
+2022-11-22T06:05:59.3303354Z Shutting down Obj Tab Items subsystem...
+2022-11-22T06:05:59.3303683Z Shutting down NPC Pool subsystem...
+2022-11-22T06:05:59.3303994Z Shutting down Night Shift subsystem...
+2022-11-22T06:05:59.3304320Z Shutting down Movement Loops subsystem...
+2022-11-22T06:05:59.3304653Z Shutting down Movement Handler subsystem...
+2022-11-22T06:05:59.3304967Z Shutting down MouseEntered subsystem...
+2022-11-22T06:05:59.3305289Z Shutting down Mood subsystem...
+2022-11-22T06:05:59.3305578Z Shutting down Mobs subsystem...
+2022-11-22T06:05:59.3305883Z Shutting down Materials subsystem...
+2022-11-22T06:05:59.3306202Z Shutting down Lua Scripting subsystem...
+2022-11-22T06:05:59.3460713Z Shutting down Library Loading subsystem...
+2022-11-22T06:05:59.3461033Z Shutting down Lag Switch subsystem...
+2022-11-22T06:05:59.3461327Z Shutting down Idling NPC Pool subsystem...
+2022-11-22T06:05:59.3461603Z Shutting down Foam subsystem...
+2022-11-22T06:05:59.3461857Z Shutting down Fluid subsystem...
+2022-11-22T06:05:59.3462121Z Shutting down Fire Burning subsystem...
+2022-11-22T06:05:59.3462392Z Shutting down Fast Processing subsystem...
+2022-11-22T06:05:59.3462673Z Shutting down Eigenstates subsystem...
+2022-11-22T06:05:59.3462939Z Shutting down Disease subsystem...
+2022-11-22T06:05:59.3463226Z Shutting down Datum Component System subsystem...
+2022-11-22T06:05:59.3463522Z Shutting down Conveyor Belts subsystem...
+2022-11-22T06:05:59.3463807Z Shutting down Communications subsystem...
+2022-11-22T06:05:59.3464096Z Shutting down Clock Component subsystem...
+2022-11-22T06:05:59.3464398Z Shutting down Circuit Components subsystem...
+2022-11-22T06:05:59.3464683Z Shutting down Blackmarket subsystem...
+2022-11-22T06:05:59.3464965Z Shutting down Basic Avoidance subsystem...
+2022-11-22T06:05:59.3465243Z Shutting down Aura Healing subsystem...
+2022-11-22T06:05:59.3465499Z Shutting down Augury subsystem...
+2022-11-22T06:05:59.3465766Z Shutting down Asset Loading subsystem...
+2022-11-22T06:05:59.3466047Z Shutting down Area Contents subsystem...
+2022-11-22T06:05:59.3466317Z Shutting down Antag HUDs subsystem...
+2022-11-22T06:05:59.3466583Z Shutting down Ambience subsystem...
+2022-11-22T06:05:59.3466879Z Shutting down Addiction subsystem...
+2022-11-22T06:05:59.3467142Z Shutting down Acid subsystem...
+2022-11-22T06:05:59.3467393Z Shutting down Timer subsystem...
+2022-11-22T06:05:59.3467655Z Shutting down Sound Loops subsystem...
+2022-11-22T06:05:59.3467925Z Shutting down Runechat subsystem...
+2022-11-22T06:05:59.3468169Z Shutting down Skills subsystem...
+2022-11-22T06:05:59.3468430Z Shutting down Machines subsystem...
+2022-11-22T06:05:59.3468688Z Shutting down Language subsystem...
+2022-11-22T06:05:59.3468945Z Shutting down Atoms subsystem...
+2022-11-22T06:05:59.3498456Z Shutting down Restaurant subsystem...
+2022-11-22T06:05:59.3498741Z Shutting down Economy subsystem...
+2022-11-22T06:05:59.3499019Z Shutting down Spatial Grid subsystem...
+2022-11-22T06:05:59.3499293Z Shutting down Networks subsystem...
+2022-11-22T06:05:59.3499567Z Shutting down Time Tracking subsystem...
+2022-11-22T06:05:59.3499837Z Shutting down Research subsystem...
+2022-11-22T06:05:59.3500105Z Shutting down Early Assets subsystem...
+2022-11-22T06:05:59.3500360Z Shutting down Mapping subsystem...
+2022-11-22T06:05:59.3500639Z Shutting down Trading Card Game subsystem...
+2022-11-22T06:05:59.3500911Z Shutting down Ticker subsystem...
+2022-11-22T06:05:59.3510965Z Unable to locate admins backup file.
+2022-11-22T06:05:59.3520958Z Shutting down AI Controller Ticker subsystem...
+2022-11-22T06:05:59.3521311Z Shutting down AI Behavior Ticker subsystem...
+2022-11-22T06:05:59.3521671Z Shutting down AI movement subsystem...
+2022-11-22T06:05:59.3521947Z Shutting down Jobs subsystem...
+2022-11-22T06:05:59.3522221Z Shutting down IDs and Access subsystem...
+2022-11-22T06:05:59.3522494Z Shutting down Events subsystem...
+2022-11-22T06:05:59.3522763Z Shutting down Reagents subsystem...
+2022-11-22T06:05:59.3523011Z Shutting down Quirks subsystem...
+2022-11-22T06:05:59.3523274Z Shutting down Station subsystem...
+2022-11-22T06:05:59.3523543Z Shutting down Achievements subsystem...
+2022-11-22T06:05:59.3523814Z Shutting down Discord subsystem...
+2022-11-22T06:05:59.3524084Z Shutting down Security Level subsystem...
+2022-11-22T06:05:59.3524367Z Shutting down Vis contents overlays subsystem...
+2022-11-22T06:05:59.3524654Z Shutting down Greyscale subsystem...
+2022-11-22T06:05:59.3524926Z Shutting down Instruments subsystem...
+2022-11-22T06:05:59.3525192Z Shutting down Sounds subsystem...
+2022-11-22T06:05:59.3525449Z Shutting down Input subsystem...
+2022-11-22T06:05:59.3525704Z Shutting down Server Tasks subsystem...
+2022-11-22T06:05:59.3525973Z Shutting down Blackbox subsystem...
+2022-11-22T06:05:59.3532540Z Shutting down Database subsystem...
+2022-11-22T06:05:59.3536259Z Shutting down Garbage subsystem...
+2022-11-22T06:06:02.5929884Z Shutting down Title Screen subsystem...
+2022-11-22T06:06:02.5938646Z Shutting down Profiler subsystem...
+2022-11-22T06:06:02.5938959Z Shutdown complete
+2022-11-22T06:06:02.5939212Z Test run failed!
+2022-11-22T06:06:02.5939464Z Unit Tests failed!
+2022-11-22T06:06:05.8501499Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory
+2022-11-22T06:06:05.8510694Z ##[error]Process completed with exit code 1.
+2022-11-22T06:06:05.8571091Z ##[group]Run actions/upload-artifact@v3
+2022-11-22T06:06:05.8571371Z with:
+2022-11-22T06:06:05.8571578Z name: test_artifacts_metastation
+2022-11-22T06:06:05.8571829Z path: data/screenshots_new/
+2022-11-22T06:06:05.8572069Z retention-days: 1
+2022-11-22T06:06:05.8572302Z if-no-files-found: warn
+2022-11-22T06:06:05.8572537Z ##[endgroup]
+2022-11-22T06:06:05.9542976Z With the provided path, there will be 85 files uploaded
+2022-11-22T06:06:05.9547799Z Starting artifact upload
+2022-11-22T06:06:05.9548728Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging
+2022-11-22T06:06:05.9549251Z Artifact name is valid!
+2022-11-22T06:06:06.0022749Z Container for artifact "test_artifacts_metastation" successfully created. Starting upload of file(s)
+2022-11-22T06:06:09.2441638Z Total size of all the files uploaded is 138917 bytes
+2022-11-22T06:06:09.2447148Z File upload process has finished. Finalizing the artifact upload
+2022-11-22T06:06:09.2805430Z Artifact has been finalized. All files have been successfully uploaded!
+2022-11-22T06:06:09.2806662Z
+2022-11-22T06:06:09.2807159Z The raw size of all the files that were specified for upload is 139272 bytes
+2022-11-22T06:06:09.2807708Z The size of all the files that were uploaded is 138917 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage
+2022-11-22T06:06:09.2808041Z
+2022-11-22T06:06:09.2808979Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads
+2022-11-22T06:06:09.2809397Z
+2022-11-22T06:06:09.2812047Z Artifact test_artifacts_metastation has been successfully uploaded!
+2022-11-22T06:06:09.2918500Z Post job cleanup.
+2022-11-22T06:06:09.4177546Z [command]/usr/bin/git version
+2022-11-22T06:06:09.4226862Z git version 2.38.1
+2022-11-22T06:06:09.4272386Z Temporarily overriding HOME='/home/runner/work/_temp/3651e392-e3ad-4441-afa8-7ee48fcb17c5' before making global git config changes
+2022-11-22T06:06:09.4273477Z Adding repository directory to the temporary git global config as a safe directory
+2022-11-22T06:06:09.4278058Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation
+2022-11-22T06:06:09.4318612Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
+2022-11-22T06:06:09.4355928Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
+2022-11-22T06:06:09.4604637Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
+2022-11-22T06:06:09.4633829Z http.https://github.com/.extraheader
+2022-11-22T06:06:09.4644074Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
+2022-11-22T06:06:09.4679820Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
+2022-11-22T06:06:09.5065985Z Print service container logs: 57e9ed27eab042ee8653063f2a3e4b8e_mysqllatest_56fbdc
+2022-11-22T06:06:09.5071674Z ##[command]/usr/bin/docker logs --details 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T06:06:09.5286568Z 2022-11-22T05:53:56.868118Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-11-22T06:06:09.5287137Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started.
+2022-11-22T06:06:09.5287504Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
+2022-11-22T06:06:09.5287896Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started.
+2022-11-22T06:06:09.5288258Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Initializing database files
+2022-11-22T06:06:09.5289019Z 2022-11-22T05:53:56.868208Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 81
+2022-11-22T06:06:09.5289439Z 2022-11-22 05:54:00+00:00 [Note] [Entrypoint]: Database files initialized
+2022-11-22T06:06:09.5289930Z 2022-11-22T05:53:56.874552Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-11-22T06:06:09.5290557Z 2022-11-22 05:54:00+00:00 [Note] [Entrypoint]: Starting temporary server
+2022-11-22T06:06:09.5291047Z 2022-11-22T05:53:57.197629Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-11-22T06:06:09.5291408Z 2022-11-22 05:54:00+00:00 [Note] [Entrypoint]: Temporary server started.
+2022-11-22T06:06:09.5291988Z 2022-11-22T05:53:58.200181Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
+2022-11-22T06:06:09.5292452Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
+2022-11-22T06:06:09.5293070Z 2022-11-22T05:54:00.332994Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-11-22T06:06:09.5293480Z
+2022-11-22T06:06:09.5293901Z 2022-11-22T05:54:00.334950Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 130
+2022-11-22T06:06:09.5294357Z 2022-11-22 05:54:02+00:00 [Note] [Entrypoint]: Stopping temporary server
+2022-11-22T06:06:09.5294846Z 2022-11-22T05:54:00.346343Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-11-22T06:06:09.5295201Z 2022-11-22 05:54:03+00:00 [Note] [Entrypoint]: Temporary server stopped
+2022-11-22T06:06:09.5295682Z 2022-11-22T05:54:00.487954Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-11-22T06:06:09.5295962Z
+2022-11-22T06:06:09.5296368Z 2022-11-22T05:54:00.674850Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2022-11-22T06:06:09.5296761Z 2022-11-22 05:54:03+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
+2022-11-22T06:06:09.5297625Z 2022-11-22T05:54:00.674889Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2022-11-22T06:06:09.5297989Z
+2022-11-22T06:06:09.5298506Z 2022-11-22T05:54:00.677758Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2022-11-22T06:06:09.5299158Z 2022-11-22T05:54:00.693697Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock
+2022-11-22T06:06:09.5299767Z 2022-11-22T05:54:00.694297Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL.
+2022-11-22T06:06:09.5300346Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
+2022-11-22T06:06:09.5300968Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
+2022-11-22T06:06:09.5301453Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
+2022-11-22T06:06:09.5301932Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
+2022-11-22T06:06:09.5302399Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
+2022-11-22T06:06:09.5302918Z 2022-11-22T05:54:02.435269Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.31).
+2022-11-22T06:06:09.5303480Z 2022-11-22T05:54:03.189926Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL.
+2022-11-22T06:06:09.5304121Z 2022-11-22T05:54:03.676610Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
+2022-11-22T06:06:09.5304722Z 2022-11-22T05:54:03.678566Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 1
+2022-11-22T06:06:09.5305204Z 2022-11-22T05:54:03.685173Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2022-11-22T06:06:09.5305655Z 2022-11-22T05:54:03.828263Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2022-11-22T06:06:09.5306116Z 2022-11-22T05:54:03.993458Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2022-11-22T06:06:09.5306666Z 2022-11-22T05:54:03.993495Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2022-11-22T06:06:09.5307354Z 2022-11-22T05:54:03.994531Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
+2022-11-22T06:06:09.5308031Z 2022-11-22T05:54:04.011801Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
+2022-11-22T06:06:09.5308675Z 2022-11-22T05:54:04.011928Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
+2022-11-22T06:06:09.5341028Z Stop and remove container: 57e9ed27eab042ee8653063f2a3e4b8e_mysqllatest_56fbdc
+2022-11-22T06:06:09.5349945Z ##[command]/usr/bin/docker rm --force 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T06:06:09.7815354Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df
+2022-11-22T06:06:09.7841366Z Remove container network: github_network_7853d588c20f407bba7b04c3e70db729
+2022-11-22T06:06:09.7846737Z ##[command]/usr/bin/docker network rm github_network_7853d588c20f407bba7b04c3e70db729
+2022-11-22T06:06:09.8812686Z github_network_7853d588c20f407bba7b04c3e70db729
+2022-11-22T06:06:09.8962630Z Cleaning up orphan processes
diff --git a/tools/pull_request_hooks/package.json b/tools/pull_request_hooks/package.json
new file mode 100644
index 000000000000..bedb411a9124
--- /dev/null
+++ b/tools/pull_request_hooks/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/tools/pull_request_hooks/rerunFlakyTests.js b/tools/pull_request_hooks/rerunFlakyTests.js
new file mode 100644
index 000000000000..d3085a67260b
--- /dev/null
+++ b/tools/pull_request_hooks/rerunFlakyTests.js
@@ -0,0 +1,298 @@
+const LABEL = "🤖 Flaky Test Report";
+const TITLE_BOT_HEADER = "title: ";
+
+// Only check jobs that start with these.
+// Helps make sure we don't restart something like screenshot tests or linters, which are not known to be flaky.
+const CONSIDERED_JOBS = [
+ "Integration Tests",
+];
+
+async function getFailedJobsForRun(github, context, workflowRunId, runAttempt) {
+ const jobs = await github.paginate(
+ github.rest.actions.listJobsForWorkflowRunAttempt,
+ {
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ run_id: workflowRunId,
+ attempt_number: runAttempt
+ },
+ response => {
+ return response.data;
+ });
+
+ return jobs
+ .filter((job) => job.conclusion === "failure");
+}
+
+export async function rerunFlakyTests({ github, context }) {
+ const failingJobs = await getFailedJobsForRun(
+ github,
+ context,
+ context.payload.workflow_run.id,
+ context.payload.workflow_run.run_attempt
+ );
+
+ const filteredFailingJobs = failingJobs.filter((job) => {
+ console.log(`Failing job: ${job.name}`)
+ return CONSIDERED_JOBS.some((title) => job.name.startsWith(title));
+ });
+ if (filteredFailingJobs.length === 0) {
+ console.log("Failing jobs are NOT designated flaky. Not rerunning.");
+ return;
+ }
+
+ console.log(`Rerunning job: ${filteredFailingJobs[0].name}`);
+
+ github.rest.actions.reRunWorkflowFailedJobs({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ run_id: context.payload.workflow_run.id,
+ });
+}
+
+// Tries its best to extract a useful error title and message for the given log
+export function extractDetails(log) {
+ // Strip off timestamp
+ const lines = log.split(/^[0-9.:T\-]*?Z /gm);
+
+ const failureRegex = /^\t?FAILURE #(?[0-9]+): (?.+)/;
+ const groupRegex = /^##\[group\](?.+)/;
+
+ const failures = [];
+ let lastGroup = "root";
+ let loggingFailure;
+
+ const newFailure = (failureMatch) => {
+ const { headline } = failureMatch.groups;
+
+ loggingFailure = {
+ headline,
+ group: lastGroup.replace("/datum/unit_test/", ""),
+ details: [],
+ };
+ };
+
+ for (const line of lines) {
+ const groupMatch = line.match(groupRegex);
+ if (groupMatch) {
+ lastGroup = groupMatch.groups.group.trim();
+ continue;
+ }
+
+ const failureMatch = line.match(failureRegex);
+
+ if (loggingFailure === undefined) {
+ if (!failureMatch) {
+ continue;
+ }
+
+ newFailure(failureMatch);
+ } else if (failureMatch || line.startsWith("##")) {
+ failures.push(loggingFailure);
+ loggingFailure = undefined;
+
+ if (failureMatch) {
+ newFailure(failureMatch);
+ }
+ } else {
+ loggingFailure.details.push(line.trim());
+ }
+ }
+
+ // We had no logged failures, there's not really anything we can do here
+ if (failures.length === 0) {
+ return {
+ title: "Flaky test failure with no obvious source",
+ failures,
+ };
+ }
+
+ // We *could* create multiple failures for multiple groups.
+ // This would be important if we had multiple flaky tests at the same time.
+ // I'm choosing not to because it complicates this logic a bit, has the ability to go terribly wrong,
+ // and also because there's something funny to me about that increasing the urgency of fixing
+ // flaky tests. If it becomes a serious issue though, I would not mind this being fixed.
+ const uniqueGroups = new Set(failures.map((failure) => failure.group));
+
+ if (uniqueGroups.size > 1) {
+ return {
+ title: `Multiple flaky test failures in ${Array.from(uniqueGroups)
+ .sort()
+ .join(", ")}`,
+ failures,
+ };
+ }
+
+ const failGroup = failures[0].group;
+
+ if (failures.length > 1) {
+ return {
+ title: `Multiple errors in flaky test ${failGroup}`,
+ failures,
+ };
+ }
+
+ const failure = failures[0];
+
+ // Common patterns where we can always get a detailed title
+ const runtimeMatch = failure.headline.match(/Runtime in .+?: (?.+)/);
+ if (runtimeMatch) {
+ const runtime = runtimeMatch.groups.error.trim();
+
+ const invalidTimerMatch = runtime.match(/^Invalid timer:.+object:(?