diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm
index dd75d8a62e0..5024a1b1a11 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -222,7 +222,9 @@ var/global/list/edible_trash = list(/obj/item/broken_device,
/obj/item/weapon/storage/fancy/crayons,
/obj/item/weapon/storage/fancy/egg_box,
/obj/item/weapon/storage/wallet,
- /obj/item/weapon/storage/vore_egg)
+ /obj/item/weapon/storage/vore_egg,
+ /obj/item/weapon/bikehorn/tinytether
+ )
var/global/list/contamination_flavors = list(
"Generic" = contamination_flavors_generic,
diff --git a/code/datums/supplypacks/recreation_vr.dm b/code/datums/supplypacks/recreation_vr.dm
index db81cd20619..8471bce6ef7 100644
--- a/code/datums/supplypacks/recreation_vr.dm
+++ b/code/datums/supplypacks/recreation_vr.dm
@@ -86,3 +86,23 @@
containertype = /obj/structure/closet/crate
containername = "Shiny clothes crate"
cost = 30
+
+//3/19/21
+/datum/supply_pack/recreation/smoleworld
+ name = "Smole Bulding Bricks"
+ contains = list(
+ /obj/item/weapon/storage/smolebrickcase, /obj/item/weapon/storage/smolebrickcase,
+ )
+ cost = 200
+ containertype = /obj/structure/closet/crate
+ containername = "Smole Bulding Brick crate"
+
+/datum/supply_pack/recreation/smolesnackplanets
+ name = "Snack planets pack"
+ num_contained = 4
+ contains = list(
+ /obj/item/weapon/storage/bagoplanets, /obj/item/weapon/storage/bagoplanets
+ )
+ cost = 25
+ containertype = /obj/structure/closet/crate
+ containername = "Snack planets crate"
diff --git a/code/game/area/Space Station 13 areas_vr.dm b/code/game/area/Space Station 13 areas_vr.dm
index 93b13625952..f4078595c89 100644
--- a/code/game/area/Space Station 13 areas_vr.dm
+++ b/code/game/area/Space Station 13 areas_vr.dm
@@ -39,3 +39,9 @@
/area/engineering/engine_gas
name = "\improper Engine Gas Storage"
icon_state = "engine_waste"
+
+//holodeck 3/29/21
+/area/holodeck/source_smoleworld
+ name = "\improper Holodeck - Smolworld"
+
+
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index bfa684f4e61..8a9e0c2dda2 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -63,6 +63,7 @@
"Meetinghall" = new/datum/holodeck_program(/area/holodeck/source_meetinghall),
"Courtroom" = new/datum/holodeck_program(/area/holodeck/source_courtroom, list('sound/music/traitor.ogg')),
"Chessboard" = new/datum/holodeck_program(/area/holodeck/source_chess),
+ "Micro Building Area" = new/datum/holodeck_program(/area/holodeck/source_smoleworld), //VOREStation add
"Turn Off" = new/datum/holodeck_program(/area/holodeck/source_plating, list())
)
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index b3ff9c28371..593a54e52ee 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -670,6 +670,9 @@
to_chat(src, "You can taste the flavor of really bad ideas.")
else if(istype(I,/obj/item/toy))
visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!")
+ else if(istype(I,/obj/item/weapon/bikehorn/tinytether))
+ to_chat(src, "You feel a rush of power swallowing such a large, err, tiny structure.")
+ visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!")
else if(istype(I,/obj/item/device/paicard) || istype(I,/obj/item/device/mmi/digital/posibrain) || istype(I,/obj/item/device/aicard))
visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!")
to_chat(src, "You can taste the sweet flavor of digital friendship. Or maybe it is something else.")
diff --git a/code/modules/vore/smoleworld/smoleworld_vr.dm b/code/modules/vore/smoleworld/smoleworld_vr.dm
new file mode 100644
index 00000000000..5e84d7cbd1f
--- /dev/null
+++ b/code/modules/vore/smoleworld/smoleworld_vr.dm
@@ -0,0 +1,405 @@
+// future to do list for anyone who wants to try:
+//Make building turf enterable for small people.
+//Make buildings enterable then bustable from the inside.
+//Tiny cars drivable only by small people, wheel chair code.
+//Add details to planet foods as well as diversify options for cargo ordering.
+//make water turfs stomp and apply to player sprites.
+
+
+//turf items
+
+/turf/simulated/floor/smole
+ name = "toy floor"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "megablocksturf"
+ var/list/crossed_dirs = list()
+
+/turf/simulated/floor/smole/Entered(atom/A)
+ if(isliving(A))
+ var/mob/living/L = A
+ if(L.hovering) // Flying things shouldn't make footprints.
+ return ..()
+ if(L.get_effective_size() <= RESIZE_NORMAL)
+ return ..()
+ if(L.get_effective_size() >= RESIZE_A_BIGNORMAL)
+ playsound(src, 'sound/effects/footstep/giantstep_gigga.ogg', 35, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER)
+ var/mdir = "[A.dir]"
+ crossed_dirs[mdir] = 1
+ update_icon()
+ . = ..()
+
+/turf/simulated/floor/smole/update_icon()
+ ..()
+ for(var/d in crossed_dirs)
+ add_overlay(image(icon = 'icons/vore/smoleworld_vr.dmi', icon_state = "stomp", dir = text2num(d)))
+
+//Extra micro turfs
+/turf/simulated/floor/smole/grass
+ name = "grass"
+ icon_state = "grass0"
+ initial_flooring = /decl/flooring/grass/outdoors
+
+/turf/simulated/floor/smole/desert
+ icon = 'icons/turf/desert.dmi'
+ icon_state = "desert"
+ initial_flooring = /decl/flooring/sand/desert
+
+/turf/simulated/floor/smole/megablocks
+ name = "block floor"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "megablocksturf"
+
+//Used to make smole objects be able to be built from menu
+
+/datum/material/smolebricks/generate_recipes()
+ recipes = list()
+ recipes += new/datum/stack_recipe("road straight", /obj/structure/smoletrack/roadS, 1, time = 5)
+ recipes += new/datum/stack_recipe("road threeway", /obj/structure/smoletrack/roadT, 1, time = 5)
+ recipes += new/datum/stack_recipe("road turn ", /obj/structure/smoletrack/roadturn, 1, time = 5)
+ recipes += new/datum/stack_recipe("road fourway", /obj/structure/smoletrack/roadF, 1, time = 5)
+ recipes += new/datum/stack_recipe("smole houses", /obj/structure/smolebuilding/houses, 2, time = 10)
+ recipes += new/datum/stack_recipe("smole business", /obj/structure/smolebuilding/business, 2, time = 10)
+ recipes += new/datum/stack_recipe("smole warehouses", /obj/structure/smolebuilding/warehouses, 2, time = 10)
+ recipes += new/datum/stack_recipe("smole musem", /obj/structure/smolebuilding/musem, 2, time = 10)
+
+/datum/material/smolebricks
+ name = "smolebricks"
+ stack_type = /obj/item/stack/material/smolebricks
+ icon_base = "solid"
+ icon_reinf = "reinf_over"
+ destruction_desc = "smashed"
+ sheet_singular_name = "bag"
+ sheet_plural_name = "bags"
+
+//the actual materials
+
+/obj/item/stack/material/smolebricks
+ name = "smolebricks"
+ desc = "A collection of tiny colored bricks ready to be built into whatever you want."
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "smolematerial"
+ drop_sound = 'sound/items/drop/smolematerial.ogg'
+ pickup_sound = 'sound/items/pickup/pillbottle.ogg'
+ default_type = "smolebricks"
+ w_class = ITEMSIZE_SMALL
+
+//smolebrick case to make for easy bricks.
+/obj/item/weapon/storage/smolebrickcase
+ name = "smolebrick case"
+ desc = "you feel the power of imagination."
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "smolestorage"
+ throw_speed = 1
+ throw_range = 4
+ w_class = ITEMSIZE_LARGE
+ max_w_class = ITEMSIZE_NORMAL
+ max_storage_space = ITEMSIZE_COST_SMALL * 7 // most code copied from toolbox
+ use_sound = 'sound/items/storage/smolecase.ogg'
+ drop_sound = 'sound/items/drop/device.ogg'
+ pickup_sound = 'sound/items/pickup/device.ogg'
+ starts_with = list( /obj/item/stack/material/smolebricks,
+ /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks,
+ /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks,
+ /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks, /obj/item/stack/material/smolebricks
+ )
+
+//Track code
+//defineing actions
+/obj/structure/smoletrack
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ density = 0
+
+/obj/structure/smoletrack/attack_hand(mob/user)
+ if(user.a_intent == I_DISARM)
+ if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction))
+ return
+ to_chat(user, "[src] was dismantaled into bricks.")
+ playsound(src, 'sound/items/smolesmallbuild.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER)
+ var/turf/simulated/floor/F = get_turf(src)
+ if(istype(F))
+ new /obj/item/stack/material/smolebricks(F)
+ qdel(src)
+
+/obj/structure/smoletrack/verb/rotate_clockwise()
+ set name = "Rotate Road Clockwise"
+ set category = "Object"
+ set src in oview(1)
+ if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction))
+ return
+ src.set_dir(turn(src.dir, 270))
+
+// Road pieces
+
+/obj/structure/smoletrack/roadS
+ name = "road straight piece"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "carstraight"
+ desc = "A long set of tiny road."
+ anchored = 1
+
+/obj/structure/smoletrack/roadT
+ name = "road threeway piece"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "carthreeway"
+ desc = "A tiny threeway road piece."
+ anchored = 1
+
+/obj/structure/smoletrack/roadturn
+ name = "road turn piece"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "carturn"
+ desc = "A tiny turn road piece."
+ anchored = 1
+
+/obj/structure/smoletrack/roadF
+ name = "road fourway piece"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "carfourway"
+ desc = "A fourway road piece."
+ anchored = 1
+
+//buildings code
+//Defining building actions
+/obj/structure/smolebuilding
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ density = 1
+ anchored = 1
+ var/health = 75
+ var/damage
+//makes it so buildings can be dismaintaled or GodZilla style attacked
+/obj/structure/smolebuilding/attack_hand(mob/user)
+ if(user.a_intent == I_DISARM)
+ if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction))
+ return
+ to_chat(user, "[src] was dismantaled into bricks.")
+ playsound(src, 'sound/items/smolesmallbuild.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER)
+ if(!isnull(loc))
+ new /obj/item/stack/material/smolebricks(loc)
+ new /obj/item/stack/material/smolebricks(loc)
+ qdel(src)
+
+ else if (usr.a_intent == I_HURT)
+
+ if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction))
+ return
+
+ take_damage()
+ playsound(src, 'sound/items/smolebuildinghit2.ogg', 50, 1)
+ user.do_attack_animation(src)
+ usr.visible_message("\The [usr] bangs against \the [src]!",
+ "You bang against \the [src]!",
+ "You hear a banging sound.")
+ else
+ usr.visible_message("[usr.name] knocks on the [src.name].",
+ "You knock on the [src.name].")
+ return
+
+//takes 3 normal attacks
+/obj/structure/smolebuilding/take_damage()
+ damage = 25
+ health = health - damage
+
+ if(health <= 0)
+ dismantle()
+ else
+ return
+ return
+//results of attacks will remove building and spawn in ruins.
+/obj/structure/smolebuilding/proc/dismantle()
+ visible_message("\The [src] falls apart!")
+ playsound(src, 'sound/items/smolebuildingdestoryed.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER)
+ new /obj/structure/smoleruins(loc)
+ qdel(src)
+ return
+
+//checks for items and does the same as dismaintle but spawns material instead.
+/obj/structure/smolebuilding/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ dismantle()
+ return
+//checks for projectile damage and does the same as dismaintle but spawns material instead.
+/obj/structure/smolebuilding/bullet_act(var/obj/item/projectile/Proj)
+ displode()
+ return
+//is the same as dismaintal but instead of ruins it just makes it all explode
+/obj/structure/smolebuilding/proc/displode()
+ visible_message("\The [src] explodes into pieces!")
+ playsound(src, 'sound/items/smolebuildingdestoryedshort.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER)
+ new /obj/item/stack/material/smolebricks(loc)
+ new /obj/item/stack/material/smolebricks(loc)
+ qdel(src)
+ return
+
+//get material from ruins
+/obj/structure/smoleruins/attack_hand(mob/user)
+ if(user.a_intent == I_DISARM)
+ if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction))
+ return
+ to_chat(user, "[src] was dismantaled into bricks.")
+ playsound(src, 'sound/items/smolelargeunbuild.ogg', 50, 1, volume_channel = VOLUME_CHANNEL_MASTER)
+ if(!isnull(loc))
+ new /obj/item/stack/material/smolebricks(loc)
+ new /obj/item/stack/material/smolebricks(loc)
+ qdel(src)
+
+//Ruins go asplode same as buildings if attacked
+/obj/structure/smoleruins/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ displode()
+ return
+
+/obj/structure/smoleruins/bullet_act(var/obj/item/projectile/Proj)
+ displode()
+ return
+
+/obj/structure/smoleruins/proc/displode()
+ visible_message("\The [src] explodes into pieces!")
+ playsound(src, 'sound/items/smolebuildingdestoryedshort.ogg', 50, 1, -1, volume_channel = VOLUME_CHANNEL_MASTER)
+ new /obj/item/stack/material/smolebricks(loc)
+ new /obj/item/stack/material/smolebricks(loc)
+ qdel(src)
+ return
+
+//buildings
+/obj/structure/smoleruins
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "ruins"
+ density = 0
+
+/obj/structure/smolebuilding/houses
+ name = "smole houses"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "smolehouses"
+
+/obj/structure/smolebuilding/business
+ name = "smole business"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "smolebusiness"
+
+/obj/structure/smolebuilding/warehouses
+ name = "smole warehouses"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "smolewarehouses"
+
+/obj/structure/smolebuilding/musem
+ name = "smole musem"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "smolemusem"
+//
+//CAR STUFF < WILL BE MESSED WITH IN A LATER UPDATE COMMENTED OUT FOR NOW
+///obj/item/smolecar
+// name = "toy car"
+// desc = "A toy car ready to be snapped together and burn rubber!"
+// icon = 'icons/vore/smoleworld_vr.dmi'
+// icon_state = "smolecarA_folded"
+// item_state = "smolecarA"
+// unfolded_type = /obj/structure/bed/chair/wheelchair/smolecar
+//
+///obj/structure/smolecar
+// name = "Toy Car"
+// desc = "Lets burn rubber!"
+// icon = 'icons/vore/smoleworld_vr.dmi'
+// icon_state = "smolecarA"
+// anchored = 0
+// buckle_movable = 1
+// var/carry_type = /obj/item/smolecar
+//
+///obj/structure/bed/chair/wheelchair/smolecar/can_buckle_check(mob/living/M, forced = FALSE)
+// . = ..()
+// if(.)
+//
+// if(M.get_effective_size() > RESIZE_TINY)
+// to_chat(M, SPAN_WARNING("You are to big to fit in \the [src]."))
+ // . = FALSE
+//
+//
+//snack planets, currently just plopped out will be organized later.
+/obj/item/trash/Asteroidsmall
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_asteriodB"
+ name = "asteriod"
+ desc = "A solid chunk of candy crumb that looks like a asteriod."
+
+/obj/item/trash/Asteroidlarge
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_asteriodA"
+ name = "asteriod"
+ desc = "A solid chunk of candy crumb that looks like a asteriod."
+
+/obj/item/trash/Asteroidmulti
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_asteriodC"
+ name = "asteriod"
+ desc = "Several chunks of sugar crumbs that looks like asteriods."
+
+/obj/item/weapon/bikehorn/tinytether
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "tether_trash"
+ name = "tether"
+ desc = "Its a tiny bit of plastic in the shape of the tether. There seems to be a small button on top."
+
+/obj/item/weapon/bikehorn/tinytether/attack_self(mob/user as mob)
+ if(spam_flag == 0)
+ spam_flag = 1
+ playsound(src, 'sound/items/tinytether.ogg', 30, 1, volume_channel = VOLUME_CHANNEL_MASTER)
+ src.add_fingerprint(user)
+ spawn(20)
+ spam_flag = 0
+ return
+
+/obj/item/weapon/reagent_containers/food/snacks/snackplanet/moon
+ name = "moon"
+ desc = "A firm solid mass of white powdery sugar in the shape of a moon!"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_moon"
+ bitesize = 1
+ trash = /obj/item/trash/Asteroidsmall
+ nutriment_amt = 2
+ nutriment_desc = list("sugar" = 2)
+ drop_sound = 'sound/items/drop/basketball.ogg'
+
+/obj/item/weapon/reagent_containers/food/snacks/snackplanet/virgo3b
+ name = "virgo3bB"
+ desc = "A sticky jelly jaw breaker in the shape of Virgo3B, it even has a tiny tether!"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_Virgo3B"
+ bitesize = 3
+ trash = /obj/item/weapon/bikehorn/tinytether
+ nutriment_amt = 2
+ nutriment_desc = list("spicy" = 2, "tang" = 2)
+ drop_sound = 'sound/items/drop/basketball.ogg'
+
+/obj/item/weapon/reagent_containers/food/snacks/snackplanet/phoron
+ name = "phoron giant"
+ desc = "A spicy jaw breaker that seems to swirl in the light."
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_phoron"
+ bitesize = 3
+ trash = /obj/item/trash/Asteroidmulti
+ nutriment_amt = 2
+ nutriment_desc = list("spicy" = 2)
+ drop_sound = 'sound/items/drop/basketball.ogg'
+
+/obj/item/weapon/reagent_containers/food/snacks/snackplanet/virgoprime
+ name = "virgo prime"
+ desc = "Its a orange jaw breaker in the shape Virgo Prime!"
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_virgoprime"
+ bitesize = 3
+ trash = /obj/item/trash/Asteroidmulti
+ nutriment_amt = 2
+ nutriment_desc = list("salty" = 2)
+ drop_sound = 'sound/items/drop/basketball.ogg'
+
+/obj/item/weapon/storage/bagoplanets
+ name = "bag o' planets"
+ desc = "A cosmic bag of fist sized candy planets."
+ icon = 'icons/vore/smoleworld_vr.dmi'
+ icon_state = "sp_storage"
+ w_class = ITEMSIZE_LARGE
+ max_w_class = ITEMSIZE_NORMAL
+ max_storage_space = ITEMSIZE_COST_SMALL * 7 // most code copied from toolbox
+ drop_sound = 'sound/items/drop/food.ogg'
+ pickup_sound = 'sound/items/pickup/food.ogg'
+ starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/snackplanet/phoron,
+ /obj/item/weapon/reagent_containers/food/snacks/snackplanet/virgo3b,/obj/item/weapon/reagent_containers/food/snacks/snackplanet/moon,
+ /obj/item/weapon/reagent_containers/food/snacks/snackplanet/virgoprime
+ )
diff --git a/icons/vore/smoleworld_vr.dmi b/icons/vore/smoleworld_vr.dmi
new file mode 100644
index 00000000000..206c0cef32c
Binary files /dev/null and b/icons/vore/smoleworld_vr.dmi differ
diff --git a/maps/tether/submaps/tether_misc.dmm b/maps/tether/submaps/tether_misc.dmm
index 1ace7f3db78..f2c0e029e96 100644
--- a/maps/tether/submaps/tether_misc.dmm
+++ b/maps/tether/submaps/tether_misc.dmm
@@ -2954,6 +2954,9 @@
initial_flooring = null
},
/area/space)
+"Me" = (
+/turf/simulated/floor/smole/desert,
+/area/holodeck/source_smoleworld)
"Mf" = (
/obj/effect/step_trigger/lost_in_space/tram,
/turf/simulated/floor/tiled/techfloor/grid{
@@ -3102,6 +3105,9 @@
initial_flooring = null
},
/area/space)
+"PM" = (
+/turf/simulated/floor/smole/megablocks,
+/area/holodeck/source_smoleworld)
"PU" = (
/obj/effect/floor_decal/transit/orange{
dir = 4
@@ -12493,17 +12499,17 @@ aI
aI
aI
ar
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+ar
ap
ap
ap
@@ -12634,6 +12640,17 @@ wa
Di
HL
nW
+dB
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
fZ
ap
ap
@@ -12752,17 +12769,6 @@ ap
ap
ap
ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
"}
(54,1,1) = {"
as
@@ -12776,6 +12782,17 @@ pT
cm
JI
vW
+dB
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
fZ
ap
ap
@@ -12858,17 +12875,6 @@ ap
ap
ap
ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
iO
iO
iO
@@ -12918,6 +12924,17 @@ CK
CJ
sb
DL
+dB
+Me
+Me
+PM
+PM
+PM
+PM
+PM
+PM
+Me
+Me
fZ
ap
ap
@@ -13000,17 +13017,6 @@ ap
ap
ap
ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
iO
El
El
@@ -13060,6 +13066,17 @@ pT
cm
Jc
ZQ
+dB
+Me
+Me
+PM
+PM
+PM
+PM
+PM
+PM
+Me
+Me
fZ
ap
ap
@@ -13142,17 +13159,6 @@ ap
ap
ap
ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
iO
El
El
@@ -13202,18 +13208,18 @@ CK
CJ
Wf
Kn
+dB
+Me
+Me
+PM
+PM
+PM
+PM
+PM
+PM
+Me
+Me
fZ
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
cd
cd
cd
@@ -13344,18 +13350,18 @@ pT
cm
GW
YX
+dB
+Me
+Me
+PM
+PM
+PM
+PM
+PM
+PM
+Me
+Me
fZ
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
cd
ci
ci
@@ -13486,18 +13492,18 @@ CK
CJ
Mi
KQ
+dB
+Me
+Me
+PM
+PM
+PM
+PM
+PM
+PM
+Me
+Me
fZ
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
cd
ci
ci
@@ -13628,18 +13634,18 @@ pT
cm
Or
Eo
+dB
+Me
+Me
+PM
+PM
+PM
+PM
+PM
+PM
+Me
+Me
fZ
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
cd
ci
ci
@@ -13770,18 +13776,18 @@ CK
CJ
nj
qv
+dB
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
fZ
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
cd
ci
ci
@@ -13912,18 +13918,18 @@ nW
nW
nW
nW
+dB
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
fZ
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
-ap
cd
ci
ci
@@ -14055,16 +14061,16 @@ aL
aL
aL
ar
-aI
-aI
-aI
-aI
-aI
-aI
-aI
-aI
-aI
-aI
+aL
+aL
+aL
+aL
+aL
+aL
+aL
+aL
+aL
+aL
ar
cd
ci
diff --git a/sound/effects/footstep/giantstep_gigga.ogg b/sound/effects/footstep/giantstep_gigga.ogg
new file mode 100644
index 00000000000..d3536922d86
Binary files /dev/null and b/sound/effects/footstep/giantstep_gigga.ogg differ
diff --git a/sound/effects/footstep/giantstep_gigga2(unsused).ogg b/sound/effects/footstep/giantstep_gigga2(unsused).ogg
new file mode 100644
index 00000000000..d335e0f2be2
Binary files /dev/null and b/sound/effects/footstep/giantstep_gigga2(unsused).ogg differ
diff --git a/sound/effects/footstep/giantstep_normal(unsused).ogg b/sound/effects/footstep/giantstep_normal(unsused).ogg
new file mode 100644
index 00000000000..aa212e488eb
Binary files /dev/null and b/sound/effects/footstep/giantstep_normal(unsused).ogg differ
diff --git a/sound/effects/footstep/giantstep_normal2(unsused).ogg b/sound/effects/footstep/giantstep_normal2(unsused).ogg
new file mode 100644
index 00000000000..dd08b550fca
Binary files /dev/null and b/sound/effects/footstep/giantstep_normal2(unsused).ogg differ
diff --git a/sound/items/drop/smolematerial.ogg b/sound/items/drop/smolematerial.ogg
new file mode 100644
index 00000000000..bb326e65c79
Binary files /dev/null and b/sound/items/drop/smolematerial.ogg differ
diff --git a/sound/items/smolebuildingdestoryed.ogg b/sound/items/smolebuildingdestoryed.ogg
new file mode 100644
index 00000000000..f4c49ea5eaa
Binary files /dev/null and b/sound/items/smolebuildingdestoryed.ogg differ
diff --git a/sound/items/smolebuildingdestoryedshort.ogg b/sound/items/smolebuildingdestoryedshort.ogg
new file mode 100644
index 00000000000..ecaa0fca52b
Binary files /dev/null and b/sound/items/smolebuildingdestoryedshort.ogg differ
diff --git a/sound/items/smolebuildinghit1.ogg b/sound/items/smolebuildinghit1.ogg
new file mode 100644
index 00000000000..266cabf80bd
Binary files /dev/null and b/sound/items/smolebuildinghit1.ogg differ
diff --git a/sound/items/smolebuildinghit2.ogg b/sound/items/smolebuildinghit2.ogg
new file mode 100644
index 00000000000..04e65403411
Binary files /dev/null and b/sound/items/smolebuildinghit2.ogg differ
diff --git a/sound/items/smolelargebuilding(unused).ogg b/sound/items/smolelargebuilding(unused).ogg
new file mode 100644
index 00000000000..7e7d5069dc8
Binary files /dev/null and b/sound/items/smolelargebuilding(unused).ogg differ
diff --git a/sound/items/smolelargeunbuild.ogg b/sound/items/smolelargeunbuild.ogg
new file mode 100644
index 00000000000..9e6530358db
Binary files /dev/null and b/sound/items/smolelargeunbuild.ogg differ
diff --git a/sound/items/smolesmallbuild.ogg b/sound/items/smolesmallbuild.ogg
new file mode 100644
index 00000000000..92630fb3ad9
Binary files /dev/null and b/sound/items/smolesmallbuild.ogg differ
diff --git a/sound/items/storage/smolecase.ogg b/sound/items/storage/smolecase.ogg
new file mode 100644
index 00000000000..e7db383cb29
Binary files /dev/null and b/sound/items/storage/smolecase.ogg differ
diff --git a/sound/items/tinytether.ogg b/sound/items/tinytether.ogg
new file mode 100644
index 00000000000..9a6223ac2c4
Binary files /dev/null and b/sound/items/tinytether.ogg differ
diff --git a/vorestation.dme b/vorestation.dme
index 24bf823bffe..d12feb70ad7 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -3757,6 +3757,7 @@
#include "code\modules\vore\resizing\holder_micro_vr.dm"
#include "code\modules\vore\resizing\resize_vr.dm"
#include "code\modules\vore\resizing\sizegun_vr.dm"
+#include "code\modules\vore\smoleworld\smoleworld_vr.dm"
#include "code\modules\vore\weight\fitness_machines_vr.dm"
#include "code\modules\xenoarcheaology\anomaly_container.dm"
#include "code\modules\xenoarcheaology\boulder.dm"