diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm
index 391744e34c6..c31c60003b1 100644
--- a/code/_globalvars/configuration.dm
+++ b/code/_globalvars/configuration.dm
@@ -36,3 +36,5 @@ GLOBAL_VAR_INIT(MAX_EX_FLAME_RANGE, 14)
GLOBAL_PROTECT(MAX_EX_FLAME_RANGE)
GLOBAL_VAR_INIT(DYN_EX_SCALE, 0.5)
+//Screen resolution stuffs.
+GLOBAL_VAR_INIT(DEFAULT_VIEW, "15x15")
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index b7cf723c2c5..5ddd6c3120a 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -259,4 +259,12 @@ CONFIG_DEF(number/emergency_shuttle_autocall_threshold)
max_val = 1
integer = FALSE
-CONFIG_DEF(flag/ic_printing)
\ No newline at end of file
+CONFIG_DEF(flag/ic_printing)
+
+CONFIG_DEF(string/default_view)
+ value = "15x15"
+
+/datum/config_entry/string/default_view/ValidateAndSet()
+ . = ..()
+ if(.)
+ GLOB.DEFAULT_VIEW = value
diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm
index 4b18f910141..1e3465e7da5 100644
--- a/code/datums/components/riding.dm
+++ b/code/datums/components/riding.dm
@@ -131,7 +131,7 @@
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 0
if(buckled_mob.client)
- buckled_mob.client.change_view(world.view)
+ buckled_mob.client.change_view(GLOB.DEFAULT_VIEW)
//MOVEMENT
/datum/component/riding/proc/turf_check(turf/next, turf/current)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 10d4638eb07..a9303cf1952 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -970,7 +970,7 @@
setDir(dir_in)
if(L && L.client)
- L.client.change_view(world.view)
+ L.client.change_view(GLOBAL.DEFAULT_VIEW)
zoom_mode = 0
/////////////////////////
@@ -1042,4 +1042,4 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
/obj/mecha/update_remote_sight(mob/living/user)
if(occupant_sight_flags)
if(user == occupant)
- user.sight |= occupant_sight_flags
\ No newline at end of file
+ user.sight |= occupant_sight_flags
diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm
index ec6bd6e4717..a616ce10af7 100644
--- a/code/game/mecha/mecha_actions.dm
+++ b/code/game/mecha/mecha_actions.dm
@@ -244,7 +244,7 @@
owner.client.change_view(12)
SEND_SOUND(owner, sound('sound/mecha/imag_enh.ogg',volume=50))
else
- owner.client.change_view(world.view) //world.view - default mob view size
+ owner.client.change_view(GLOB.DEFAULT_VIEW) //world.view - default mob view size
UpdateButtonIcon()
/datum/action/innate/mecha/mech_switch_damtype
diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm
index 4ebbe1d977f..9c9b9e8afa7 100644
--- a/code/game/objects/structures/manned_turret.dm
+++ b/code/game/objects/structures/manned_turret.dm
@@ -37,7 +37,7 @@
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 0
if(buckled_mob.client)
- buckled_mob.client.change_view(world.view)
+ buckled_mob.client.change_view(GLOBAL.DEFAULT_VIEW)
anchored = FALSE
. = ..()
STOP_PROCESSING(SSfastprocess, src)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index a464cd1cbd6..b30ccecb44e 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -655,7 +655,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(view == world.view)
change_view(input("Select view range:", "FUCK YE", 7) in list(1,2,3,4,5,6,7,8,9,10,11,12,13,14,128))
else
- change_view(world.view)
+ change_view(GLOBAL.DEFAULT_VIEW)
log_admin("[key_name(usr)] changed their view range to [view].")
//message_admins("\blue [key_name_admin(usr)] changed their view range to [view].") //why? removed by order of XSI
diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm
index 79886b1446a..cb20e15d7c5 100644
--- a/code/modules/clothing/spacesuits/flightsuit.dm
+++ b/code/modules/clothing/spacesuits/flightsuit.dm
@@ -1100,7 +1100,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/proc/toggle_zoom(mob/living/user, force_off = FALSE)
if(zoom || force_off)
- user.client.change_view(world.view)
+ user.client.change_view(GLOBAL.DEFAULT_VIEW)
to_chat(user, "Disabling smart zooming image enhancement...")
zoom = FALSE
return FALSE
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 4bd87ed11e5..b75ea03a64d 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -319,7 +319,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(mind.current.key && copytext(mind.current.key,1,2)!="@") //makes sure we don't accidentally kick any clients
to_chat(usr, "Another consciousness is in your body...It is resisting you.")
return
- client.change_view(world.view)
+ client.change_view(GLOBAL.DEFAULT_VIEW)
SStgui.on_transfer(src, mind.current) // Transfer NanoUIs.
mind.current.key = key
return 1
@@ -463,7 +463,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(new_view)
client.change_view(Clamp(new_view, 7, max_view))
else
- client.change_view(world.view)
+ client.change_view(GLOBAL.DEFAULT_VIEW)
/mob/dead/observer/verb/add_view_range(input as num)
set name = "Add View Range"
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index 71d834e0e06..795e8f40df3 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -37,7 +37,7 @@
if(client)
client.click_intercept = null
- client.change_view(world.view) // Resets the client.view in case it was changed.
+ client.change_view(GLOBAL.DEFAULT_VIEW) // Resets the client.view in case it was changed.
if(!GLOB.individual_log_list[ckey])
GLOB.individual_log_list[ckey] = logging
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 7596d890e0d..76f8215e41c 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -335,7 +335,7 @@
buckled_mob.pixel_x = 0
buckled_mob.pixel_y = 0
if(buckled_mob.client)
- buckled_mob.client.change_view(world.view)
+ buckled_mob.client.change_view(GLOBAL.DEFAULT_VIEW)
auto.Remove(buckled_mob)
. = ..()
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 03d9e69e542..11267bee481 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -497,7 +497,7 @@
user.client.pixel_x = world.icon_size*_x
user.client.pixel_y = world.icon_size*_y
else
- user.client.change_view(world.view)
+ user.client.change_view(GLOBAL.DEFAULT_VIEW)
user.client.pixel_x = 0
user.client.pixel_y = 0
return zoomed
diff --git a/code/modules/projectiles/guns/beam_rifle.dm b/code/modules/projectiles/guns/beam_rifle.dm
index 19cd2762884..2491ea0b69d 100644
--- a/code/modules/projectiles/guns/beam_rifle.dm
+++ b/code/modules/projectiles/guns/beam_rifle.dm
@@ -176,7 +176,7 @@
zoom_animating = 0
animate(current_user.client, pixel_x = 0, pixel_y = 0, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW)
zoom_current_view_increase = 0
- current_user.client.change_view(world.view)
+ current_user.client.change_view(GLOBAL.DEFAULT_VIEW)
zooming_angle = 0
current_zoom_x = 0
current_zoom_y = 0
diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm
index dd27d40e916..ee500900f44 100644
--- a/code/modules/shuttle/navigation_computer.dm
+++ b/code/modules/shuttle/navigation_computer.dm
@@ -69,7 +69,7 @@
var/mob/camera/aiEye/remote/shuttle_docker/the_eye = eyeobj
user.client.images -= the_eye.placement_images
user.client.images -= the_eye.placed_images
- user.client.change_view(world.view)
+ user.client.change_view(GLOBAL.DEFAULT_VIEW)
/obj/machinery/computer/camera_advanced/shuttle_docker/proc/placeLandingSpot()
if(!checkLandingSpot())
diff --git a/config/game_options.txt b/config/game_options.txt
index 85a9bc6d5b4..fa2ccf2f49c 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -492,4 +492,9 @@ MICE_ROUNDSTART 10
#EMERGENCY_SHUTTLE_AUTOCALL_THRESHOLD 0.2
## Determines if players are allowed to print integrated circuits, uncomment to allow.
-#IC_PRINTING
\ No newline at end of file
+#IC_PRINTING
+
+## This sets the default screen resolution, in tiles.
+## By default, this is 15x15, which gets simplified to 7 by BYOND, as it is a 1:1 screen ratio.
+## For reference, Goonstation uses a resolution of 21x15 for it's widescreen mode.
+DEFAULT_VIEW 15x15
\ No newline at end of file