Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
c7a729c
Implementing variant fence icons from Doe.
MistakeNot4892 May 12, 2026
247f90c
Implementing fence smoothing and crafting.
MistakeNot4892 May 13, 2026
689e667
Fixing typo in lock code.
MistakeNot4892 May 14, 2026
1863fd7
Fixing fence strings.
MistakeNot4892 May 14, 2026
cd4d673
Corrects 'a multiple iron arrow' in embed examine.
MistakeNot4892 May 16, 2026
141123b
Merge pull request #5377 from MistakeNot4892/fix/embed_grammar
MistakeNot4892 May 18, 2026
b7ad045
Walls will be undamageable to certain weapons based on material.
MistakeNot4892 May 18, 2026
5d11fd4
Consistency pass on wall hitsound.
MistakeNot4892 May 19, 2026
3f91626
Rewriting beehives and beehavior.
MistakeNot4892 Sep 22, 2025
160712f
Reimplementing bee smoking.
MistakeNot4892 Sep 22, 2025
8f164ae
Things can be stored inside dead trees.
MistakeNot4892 Sep 22, 2025
ac7b7b4
Implementing hive spawning/destruction logic.
MistakeNot4892 Sep 22, 2025
13ab3be
Adjusting rate of development for hives/hive products.
MistakeNot4892 Sep 22, 2025
e975638
Commenting out wasps.
MistakeNot4892 Sep 22, 2025
815c221
Addressing some comments on beewrite PR.
MistakeNot4892 Oct 12, 2025
1d403a0
Make alists display properly in VV
out-of-phaze May 4, 2026
dbf67de
Fix structure plants not generating pollen
out-of-phaze May 4, 2026
fcbdd29
Fix mob stop_effect movement handler typepath
out-of-phaze May 4, 2026
c94e3d1
Improve and fix automove functionality
out-of-phaze May 4, 2026
04cc751
Fix bee automove
out-of-phaze May 4, 2026
510eed2
Tweaks to beewrite after testing.
MistakeNot4892 May 13, 2026
00ff470
Tweaking bee pain and venom amount for stinging.
MistakeNot4892 May 13, 2026
e8b3c90
Adding a subsystem to handle clickdragging as mouse events are somewh…
MistakeNot4892 May 15, 2026
c2208dd
Merge pull request #5381 from MistakeNot4892/tweak/walldamage
out-of-phaze May 21, 2026
598d076
Merge pull request #5371 from MistakeNot4892/feature/fences
out-of-phaze May 21, 2026
b9665e0
Merge pull request #5373 from MistakeNot4892/feature/mousedown
out-of-phaze May 21, 2026
13e4f2c
Automatic changelog generation for PR #5373 [ci skip]
NebulaSS13Bot May 21, 2026
3120836
Temporary commit to make girders craftable with metal sheets.
MistakeNot4892 May 17, 2026
5458f3a
Automatic changelog generation [ci skip]
NebulaSS13Bot May 22, 2026
e4682d0
Merge pull request #5379 from MistakeNot4892/tweak/girders
MistakeNot4892 May 24, 2026
1f1a54e
Merge branch 'stable' of github.com:NebulaSS13/Nebula into devupdate
MistakeNot4892 May 24, 2026
2685946
Merge pull request #5383 from MistakeNot4892/devupdate
MistakeNot4892 May 24, 2026
51dc453
Clean up unused/defunct message server code
out-of-phaze May 28, 2026
afa62c7
Improve requests console UI slightly
out-of-phaze May 28, 2026
90e50eb
Make the base law upload console an abstract type
out-of-phaze May 28, 2026
25e3e51
Automatic changelog generation [ci skip]
NebulaSS13Bot May 29, 2026
46f65eb
Merge pull request #5385 from out-of-phaze/codequality/rcconsole-cleanup
MistakeNot4892 May 29, 2026
cdfc424
Merge pull request #5386 from out-of-phaze/stable-codequality/abstrac…
MistakeNot4892 May 29, 2026
6c767b4
Automatic changelog generation for PR #5385 [ci skip]
NebulaSS13Bot May 29, 2026
2f36ff5
Automatic changelog generation [ci skip]
NebulaSS13Bot May 30, 2026
aa1569a
Make breaker boxes no longer a power subtype
out-of-phaze Dec 21, 2025
3373f63
Add map migration for breakerbox repath
out-of-phaze Jun 27, 2026
ab2f6f0
lighting: Rewrite corner z-bleed to explicitly build a stack of corners
Lohikar Jun 27, 2026
0def104
Add "overriding core code" section to modpack readme
out-of-phaze Jun 29, 2026
a4bdd54
Fix incorrect proc references
out-of-phaze Jun 29, 2026
843f53c
Add 'writing extensible code' section to modpack readme
out-of-phaze Jun 29, 2026
a17df46
Fix self_message passed to non-mob visible_message
out-of-phaze Jun 30, 2026
014ba38
lighting: Fix cryptic comment
Lohikar Jun 30, 2026
fd6f6ff
lighting: Fix lights shining onto occluding dyn turfs from static ones
Lohikar Jun 30, 2026
7895524
lighting: Allow Z-light transmission through static turfs
Lohikar Jun 30, 2026
b3a373c
lighting: Fix paste errors
Lohikar Jun 30, 2026
6b159b5
Merge pull request #5391 from out-of-phaze/stable-fix/wrong-message
out-of-phaze Jul 5, 2026
e225312
Merge pull request #5389 from out-of-phaze/stable-fix/proc-ref
out-of-phaze Jul 5, 2026
62f56f0
Merge pull request #5388 from Lohikar/corner_stack
out-of-phaze Jul 5, 2026
ac8abce
mapping: Fix ZM z-groups not being (re)generated, minor efficiency
Lohikar Jul 6, 2026
ba17a3a
zm: Adjust comment on calculate_zstack_limits()
Lohikar Jul 6, 2026
1b36e16
mapping: don't assume SSzcopy exists
Lohikar Jul 6, 2026
6632034
mapping: fix bad arg to BIWZS
Lohikar Jul 6, 2026
ac2b259
sand resprites iconreplace
triplezeta Jul 6, 2026
488389a
sand has a color now by default
triplezeta Jul 6, 2026
3c7e5bd
now we actually get the color from our forced_material top-most floor…
triplezeta Jul 6, 2026
2e085de
Move fishing into a modpack
noelle-lavenza Jul 5, 2026
79e2c2c
Mark a bunch of areas as abstract
noelle-lavenza Jul 9, 2026
afa70c0
Skip abstract areas in area usage test
noelle-lavenza Jul 9, 2026
50cea0b
Merge pull request #5390 from out-of-phaze/documentation/how-to-write…
out-of-phaze Jul 9, 2026
ae2d45c
apply suggestion
triplezeta Jul 9, 2026
1368dba
Move the holodeck into a modpack
out-of-phaze Jul 9, 2026
a9baa0d
Remove inappropriate holofloors from maps
out-of-phaze Jul 9, 2026
40d2d87
Merge pull request #5395 from triplezeta/sand
MistakeNot4892 Jul 10, 2026
d0cf608
Automatic changelog generation for PR #5395 [ci skip]
NebulaSS13Bot Jul 10, 2026
9850d4c
Automatic changelog generation [ci skip]
NebulaSS13Bot Jul 11, 2026
8298540
Merge pull request #5396 from noelle-lavenza/codequality/abstract-areas
MistakeNot4892 Jul 14, 2026
0d162df
Fix incorrect holostool icon
out-of-phaze Jul 14, 2026
295db9d
Fix holostools being used outside the holodeck
out-of-phaze Jul 14, 2026
dc0da5c
Fix holofloor in derelict station map
out-of-phaze Jul 14, 2026
96f3b82
Fix gitignore not specifying repo root
noelle-lavenza Jul 15, 2026
cb81976
Merge pull request #5397 from out-of-phaze/modpack/holodeck
MistakeNot4892 Jul 18, 2026
2c2d9d6
Merge pull request #5393 from Lohikar/zstack_build
MistakeNot4892 Jul 18, 2026
f5e3c30
Merge pull request #5398 from noelle-lavenza/fix/codex-ignore
MistakeNot4892 Jul 18, 2026
c0fcf10
lighting: Ignore zlev transition boundaries for z-stack construction
Lohikar Jul 18, 2026
a0e3a9c
Merge pull request #4266 from MistakeNot4892/feature/beewrite
out-of-phaze Jul 18, 2026
af6caec
Update CI to 516.1685
noelle-lavenza Jul 18, 2026
cddcf8f
Add missing libcurl dependency
noelle-lavenza Jul 19, 2026
db0949d
Merge pull request #5399 from Lohikar/zstack_fix
MistakeNot4892 Jul 20, 2026
f18990f
Merge pull request #5392 from noelle-lavenza/modpack/fishing
MistakeNot4892 Jul 21, 2026
0640449
Automatic changelog generation [ci skip]
NebulaSS13Bot Jul 24, 2026
d736dff
Automatic changelog generation [ci skip]
NebulaSS13Bot Aug 1, 2026
5ecc068
Fix typo in ore image rotation matrix
Zandario Aug 1, 2026
5bbb6bd
Merge pull request #5400 from Zandario/fix-typo
MistakeNot4892 Aug 1, 2026
c940bc5
Merge pull request #5229 from out-of-phaze/codequality/breaker-power
out-of-phaze Aug 6, 2026
ea54528
Move turbolifts into a modpack
noelle-lavenza Jul 5, 2026
7eb8b50
Remove turbolifts from example modpack
noelle-lavenza Jul 5, 2026
039ff15
Add turbolift modpack to maps
noelle-lavenza Jul 5, 2026
be2adc6
Fix offset unit test with turbolift modpack unloaded
noelle-lavenza Jul 6, 2026
d1c416a
Move singularity engine into its own module
out-of-phaze Sep 10, 2025
6f47014
Move emitters from singulo module to game/machinery
out-of-phaze Aug 7, 2026
1114dc4
Make emitters use construction states
out-of-phaze Aug 7, 2026
c07844b
Rename some emitter procs for my own sanity
out-of-phaze Aug 7, 2026
8c7fa0e
this time it SHOULD work
markoatonc Aug 9, 2026
5812218
Merge pull request #5405 from markoatonc/real-stable-cooler
out-of-phaze Aug 9, 2026
a5c9622
Merge pull request #5394 from noelle-lavenza/modpack/turbolift
MistakeNot4892 Aug 10, 2026
936e499
Replace inline parent with parent call in character info OnTopic
out-of-phaze Aug 13, 2026
418eb8b
Add helper for internal pressure difference checks
out-of-phaze Aug 13, 2026
c953ad2
Move character info apply code to correct file
out-of-phaze Aug 13, 2026
e99dd72
Merge pull request #5408 from out-of-phaze/codequality/charinfo-unused
MistakeNot4892 Aug 15, 2026
df11bd3
Merge pull request #5335 from out-of-phaze/codequality/singulo
MistakeNot4892 Aug 16, 2026
43cb9db
Merge pull request #5407 from out-of-phaze/codequality/atmos-unused
MistakeNot4892 Aug 16, 2026
abe3dba
Merge branch 'stable' of github.com:NebulaSS13/Nebula into devupdate
MistakeNot4892 Aug 24, 2026
2bf8779
Merge pull request #5414 from MistakeNot4892/devupdate
MistakeNot4892 Aug 24, 2026
23a9d7d
Merge branch 'dev' of github.com:NebulaSS13/Nebula into pyrelight
MistakeNot4892 Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:

env:
BYOND_MAJOR: "516"
BYOND_MINOR: "1663"
BYOND_MINOR: "1685"
SPACEMAN_DMM_VERSION: suite-1.11

jobs:
Expand Down Expand Up @@ -106,6 +106,11 @@ jobs:
with:
path: ~/BYOND-${{ env.BYOND_MAJOR }}.${{ env.BYOND_MINOR }}
key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }}
- name: Install Dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt update || true
sudo apt install -o APT::Immediate-Configure=false curl:i386
- name: Run Tests
env:
TEST: MAP
Expand Down
16 changes: 8 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@
*.lk
*.backup
*.before
codex/
data/
dmdoc/
cfg/
/codex/
/data/
/dmdoc/
/cfg/
build_log.txt
use_map
stopserver
reboot_called
atupdate

# ignore config, but not subdirs
!config/*/
config/*
sql/test_db
/!config/*/
/config/*
/sql/test_db

# misc OS garbage
Thumbs.db
Thumbs.db:encryptable
.DS_Store

# vscode
.vscode/*
/.vscode/*
*.code-workspace
.history

Expand Down
5 changes: 5 additions & 0 deletions code/__defines/lighting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
#define TURF_IS_AMBIENT_LIT_UNSAFE(T) (T:ambient_active)
#define TURF_IS_AMBIENT_LIT(T) (isturf(T) && TURF_IS_AMBIENT_LIT_UNSAFE(T))

// These are centered around zero to simplify logic; 'up' is 'is greater than -1', 'down' is 'is less than 0'. 0 matches both conditions.
#define LIGHTING_CORNER_GENERATE_UP 1
#define LIGHTING_CORNER_GENERATE_BOTH 0
#define LIGHTING_CORNER_GENERATE_DOWN -1

// If I were you I'd leave this alone.
#define LIGHTING_BASE_MATRIX \
list \
Expand Down
6 changes: 6 additions & 0 deletions code/__defines/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -402,3 +402,9 @@
#define MM_ATTACK_RESULT_NONE 0
#define MM_ATTACK_RESULT_DEFLECTED BITFLAG(0)
#define MM_ATTACK_RESULT_BLOCKED BITFLAG(1)

// Effectively a speed modifier for how fast pollen is produced by flowering plants. Pollen per second.
// In theory, one pollen every 5 seconds (at time of writing)
#define POLLEN_PER_SECOND 0.2
#define POLLEN_PRODUCTION_MULT (POLLEN_PER_SECOND * (SSplants.wait / 10))
#define MAX_POLLEN_PER_FLOWER 10
39 changes: 0 additions & 39 deletions code/_onclick/MouseDrag.dm

This file was deleted.

91 changes: 91 additions & 0 deletions code/_onclick/mouse_drag.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/atom/proc/relayed_mouse_down(mob/user, object, location, control, params)
return null

/atom/proc/relayed_mouse_held(mob/user, atom/target)
return null

/atom/proc/relayed_mouse_up(mob/user, atom/target)
return null

/mob/proc/on_mouse_down(object, location, control, params)

// We are mouse down outside the map or on a screen element, assume it is not relevant.
if(!isatom(object) || istype(object, /obj/screen))
return FALSE

// Do not do this for things that are not in the world.
var/atom/atom = object
if(!isturf(atom) && !isturf(atom.loc))
return FALSE

// Debounce, we might already be holding.
if(_is_holding_mouse)
return FALSE

// Ignore right click and middle click currently.
// Might be worth handling these in the future.
var/list/modifiers = params2list(params)
if(modifiers["middle"] || modifiers["right"])
return FALSE

// Keep track of when we started holding the mouse down so that we can check if we hold it long enough to start the drag behavior.
_started_mouse_down = world.time

// Might be inside an exosuit or such that has its own handling for these inputs.
. = loc?.relayed_mouse_down(src, object, location, control, params)
if(isnull(.))

// Handle our actual 'drag beginning' logic.
var/obj/item/held = get_active_held_item()
. = istype(held) && held.wielder_mouse_drag_down(src, object, location, control, params)

if(.)
update_mouse_pointer()
SSclickdrag.active_wielders[src] = TRUE
_is_holding_mouse = TRUE

/mob/proc/on_mouse_held()

if(!_is_holding_mouse)
return FALSE

// Grace period before we start holding (rather than a single click)
if(world.time < _started_mouse_down + MOUSE_DRAG_DELAY)
return TRUE

var/atom/mouse_over = _last_mouse_over_atom?.resolve()
if(QDELETED(mouse_over) || !istype(mouse_over))
mouse_over = null

// Might be inside an exosuit or such that has its own handling for these inputs.
. = loc?.relayed_mouse_held(src, mouse_over)
if(isnull(.))
var/obj/item/held = get_active_held_item()
. = istype(held) && held.wielder_mouse_drag_held(src, mouse_over)

if(.)
update_mouse_pointer()
set_dir(get_dir(src, mouse_over))
else
on_mouse_up()

/mob/proc/on_mouse_up(remove_from_processing = TRUE)

if(!_is_holding_mouse)
return FALSE

// Don't block the follow-up Click() if this wasn't an 'official' drag.
if(world.time >= _started_mouse_down + MOUSE_DRAG_DELAY)
var/atom/mouse_over = _last_mouse_over_atom?.resolve()
if(QDELETED(mouse_over) || !istype(mouse_over))
mouse_over = null
. = loc?.relayed_mouse_up(src, mouse_over)
if(isnull(.))
var/obj/item/held = get_active_held_item()
. = istype(held) && held.wielder_mouse_drag_up(src, mouse_over)

update_mouse_pointer()
_is_holding_mouse = FALSE
SSclickdrag.active_wielders -= src
if(remove_from_processing && length(SSclickdrag.processing_wielders))
SSclickdrag.processing_wielders -= src
54 changes: 54 additions & 0 deletions code/controllers/subsystems/clickdrag.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
SUBSYSTEM_DEF(clickdrag)
name = "Clickdrag"
wait = 1
flags = SS_TICKER | SS_NO_INIT

var/tmp/list/active_wielders = list()
var/tmp/active_wielders_copied_yet = FALSE
var/tmp/list/processing_wielders

/datum/controller/subsystem/clickdrag/stat_entry()
..("W:[active_wielders.len]")

/datum/controller/subsystem/clickdrag/fire(resumed = 0)

if(!resumed)
active_wielders_copied_yet = FALSE

if(!active_wielders_copied_yet)
active_wielders_copied_yet = TRUE
processing_wielders = active_wielders.Copy()

var/mob/wielder
var/i = 0
while(i < processing_wielders.len)
i++
wielder = processing_wielders[i]
if(!wielder.on_mouse_held())
wielder.on_mouse_up(remove_from_processing = FALSE) // we will do this via our list iteration anyway
if (MC_TICK_CHECK)
processing_wielders.Cut(1, i+1)
return
processing_wielders.Cut()

/client
// (BOOL) Flag for whether or not the next Click() should be blocked - Click() is called immediately after MouseUp() which isn't desirable.
VAR_PRIVATE/tmp/_block_next_click = FALSE

/mob
// (DATUM) Tracker for clickdrag subsystem,
VAR_PRIVATE/tmp/weakref/_last_mouse_over_atom
// (BOOL) Flag for keeping track of if we're already processing or not.
VAR_PRIVATE/tmp/_is_holding_mouse = FALSE
// (INT) Time that we started holding the mouse down.
VAR_PRIVATE/tmp/_started_mouse_down = 0
// (FLOAT) Delay before a hold is considered a hold rather than a single click.
VAR_PRIVATE/const/MOUSE_DRAG_DELAY = 0.25 SECONDS

/client/MouseEntered(object,location,control,params)
UNLINT(mob?._last_mouse_over_atom = weakref(object))
. = ..()

/client/MouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params)
UNLINT(mob?._last_mouse_over_atom = weakref(over_object))
. = ..()
2 changes: 2 additions & 0 deletions code/controllers/subsystems/initialization/customitems.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ SUBSYSTEM_DEF(customitems)

//gets the relevant list for the key from the listlist if it exists, check to make sure they are meant to have it and then calls the giving function
/datum/controller/subsystem/customitems/proc/equip_custom_items(mob/living/human/M)
if(!istype(M) || !M.ckey)
return
var/list/key_list = custom_items_by_ckey[M.ckey]
if(!length(key_list))
return
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystems/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -565,7 +565,7 @@ SUBSYSTEM_DEF(jobs)

job.post_equip_job_title(H, alt_title || job_title)

H.client.show_location_blurb(30)
H.client?.show_location_blurb(30)

return H

Expand Down
30 changes: 21 additions & 9 deletions code/controllers/subsystems/mapping.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ SUBSYSTEM_DEF(mapping)
var/base_floor_area
/// A list of connected z-levels to avoid repeatedly rebuilding connections
var/list/connected_z_cache = list()
/// A list of turbolift holders to initialize.
var/list/turbolifts_to_initialize = list()
///Associative list of planetoid/exoplanet data currently registered. The key is the planetoid id, the value is the planetoid_data datum.
var/list/planetoid_data_by_id
///List of all z-levels in the world where the index corresponds to a z-level, and the key at that index is the planetoid_data datum for the associated planet
Expand Down Expand Up @@ -169,9 +167,9 @@ SUBSYSTEM_DEF(mapping)

global.level_persistence_ref_map.Cut()

// Generate turbolifts last, since away sites may have elevators to generate too.
for(var/obj/abstract/turbolift_spawner/turbolift as anything in turbolifts_to_initialize)
turbolift.build_turbolift()
for(var/modpack_name in SSmodpacks.loaded_modpacks)
var/decl/modpack/loaded_modpack = SSmodpacks.loaded_modpacks[modpack_name]
loaded_modpack.on_mapping_pre_finalize()

// With levels set up and serde complete (and levels flagged) we can do any remaining level generation.
global.using_map.finalize_map_generation()
Expand Down Expand Up @@ -256,20 +254,34 @@ SUBSYSTEM_DEF(mapping)
planetoid_data_by_z.len = world.maxz
connected_z_cache.Cut()

SSzcopy?.calculate_zstack_limits()

//Update SSWeather's indexed lists, if we can.
if(SSweather?.weather_by_z)
SSweather.weather_by_z.len = world.maxz

/// This is equivalent to calling `increment_world_z_size()` in a loop, but more efficient.
/datum/controller/subsystem/mapping/proc/bulk_increment_world_z_size(num_z_levels, new_level_type, defer_setup = FALSE)
ASSERT(num_z_levels > 0)
var/old_max = world.maxz
world.maxz += num_z_levels

reindex_lists()

if (!new_level_type)
CRASH("Missing z-level data type for z[old_max] through z[old_max + num_z_levels]!")

for (var/i in 1 to num_z_levels)
var/datum/level_data/level = new new_level_type(old_max + i, defer_setup)
level.initialize_new_level()

/datum/controller/subsystem/mapping/proc/increment_world_z_size(var/new_level_type, var/defer_setup = FALSE)

world.maxz++
reindex_lists()

if(SSzcopy.zlev_maximums.len)
SSzcopy.calculate_zstack_limits()
if(!new_level_type)
PRINT_STACK_TRACE("Missing z-level data type for z["[world.maxz]"]!")
return
CRASH("Missing z-level data type for z[world.maxz]!")

var/datum/level_data/level = new new_level_type(world.maxz, defer_setup)
level.initialize_new_level()
Expand Down
9 changes: 3 additions & 6 deletions code/controllers/subsystems/misc_late.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,15 @@ SUBSYSTEM_DEF(misc_late)
name = "Late Initialization"
init_order = SS_INIT_MISC_LATE
flags = SS_NO_FIRE
var/list/turbolifts_to_open = list()

/datum/controller/subsystem/misc_late/Initialize()

var/decl/asset_cache/asset_cache = GET_DECL(/decl/asset_cache)
asset_cache.load()

// This is gross but I'm not sure where else to handle it. Sorry.
for(var/datum/turbolift/lift in turbolifts_to_open)
if(!QDELETED(lift))
lift.open_doors()
turbolifts_to_open.Cut()
for(var/modpack_name in SSmodpacks.loaded_modpacks)
var/decl/modpack/loaded_modpack = SSmodpacks.loaded_modpacks[modpack_name]
loaded_modpack.on_misc_late_init()

// Pre-populate the emote list.
decls_repository.get_decls_of_type(/decl/emote)
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystems/zcopy.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ SUBSYSTEM_DEF(zcopy)
// Flush the queue.
fire(FALSE, TRUE)

// If you add a new Zlevel or change Z-connections, call this.
/// (Re)generate Z-group information. You should run this every time world.maxz (or z-connections) change. ZM's behavior is undefined between resizing the world and calling this proc.
/datum/controller/subsystem/zcopy/proc/calculate_zstack_limits()
zlev_maximums = new(world.maxz)
var/start_zlev = 1
Expand Down
2 changes: 1 addition & 1 deletion code/datums/movement/automove.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@

/// Generalized entrypoint for checking CanMove and such on /mob.
/atom/movable/proc/can_do_automated_move(variant_move_delay)
return FALSE
return MayMove(src)
Loading
Loading