1. Endless Dark
  2. News

Endless Dark News

0.9.25 Update

Another mod update today.

- Number of available hooks increased to 100
- Large-scale reorganization of internal game logic
- All functions that are a good idea for modders to call are now in modapi.lua, with documentation on what everything does and any salient semantics.
- Strictly internal or one-off game functions are collected in game.lua, with documentation on what everything does and any salient semantics. We can't really keep modders from calling these functions, but in general it's going to be a bad idea to do so.
- Lastly, and most importantly: The modding framework has been expanded to allow for fully custom Custodians to be supported in mods. We even added a handy function to quickly assign personality tags to the existing events so you can support personality shifts very easily!

In addition, Endless Dark now has it's own section on Nexus Mods, along with a tutorial mod to help modders get started.

Everyone can expect more documentation, along with a 'modding bible' that has some more fully fleshed out direction on the modding framework, coming up pretty soon.

Keeping up the pace to 1.0! See you soon, Custodians!

0.9.24 Update

Another small update today, continuing to flesh out the modding framework on advice from our awesome community on Discord.

- Added 59 hooks for mods to inject code at various points. These hooks include, but are not limited to:

onload -- Evaluated only once, after the module has finished loading
ontick -- Evaluated every frame, whether or not a game is in progress
onactive -- Evaluated every frame, if a game is in progress and is active (there is not a pending event, the user is not stuck in a menu or cutscene, et cetera)
onnewgame -- Evaluated when a new game has begun
onturnend -- Evaluated when the turn has ended, after all other logic has processed
onturnstart -- Evaluated when a new turn has started, after all other logic has processed
onnightmaretriggered -- Evaluted when the user WILL have a nightmare this turn (but may not have actually fired yet)
onhavingnightmare -- Evaluated when the user is within a room-based nightmare (not a visual-only nightmare), including Airlock, Containment, Maze, and Nowhere
onfatiguegain -- Fires when the player gains fatigue
onstressgain -- Fires when the player gains stress
onpsychosisgain -- Fires when the player gains psychosis
onfatigueloss -- Fires when the player loses fatigue
onstressloss -- Fires when the player loses stress
onpsychosisloss -- Fires when the player loses psychosis (very rare)
onpressuregain -- Fires when the player gains pressure
onpressureloss -- Fires when the player loses pressure
onarcfinished -- Fires when a story arc completes
ondeeploregained -- Fires when deep lore is gained from the observation window
onmemoryunlocked -- Fires when the player unlocks a memory (even if they already had unlocked it)
oninsanitygained -- Evaluated when the player gains a new random insanity (Does not check certain event or task-specific insanities)
onrandomdamage -- Fires when the Director damages a random system (Does not fire when certain events/tasks deliberately damage a specific system)
onpassengerdied -- Fires when a passenger dies for any reason
onpodscontaminated -- Fires when some or all pods become contaminated
onpodcondamage -- Fires when a pod is damaged due to being contaminated
onairlocktoggled -- Fires when the inner airlock is toggled
onbreakersurge -- Fires when a breaker surge occurs
onpowersurge -- Fires when a power surge occurs (random lock or overclock of all systems)
onshuffleinsanity -- Fires when the player (generally ANNIE) shuffles insanities
onconsolesabotage -- Fires when a console is sabotaged
onconsolerepair -- Fires when a console is repaired
onsystemglitched -- Fires when a system becomes randomly glitched (may not cover all cases)
onpermaglitched -- Fires when a system becomes permanently glitched
onsystemdisabled -- Fires when a system becomes disabled (may not cover all cases)
onsystemlocked -- Fires when a system becomes locked (may not cover all cases)
onsystemoverclocked -- Fires when a system becomes overclocked (may not cover all cases)
onsystemhardened -- Fires when a system becomes hardened (may not cover all cases)
onsystemlosesoverclock -- Fires when a system loses overclocked (may not cover all cases)
onsystemsabotaged -- Fires when the player sabotages a system
onsystemrepaired -- Fires when a system is repaired (NOT emergency repaired)
onsystemrepairfail -- Fires when a repair fails
onsystemerepaired -- Fires when a system is emergency repaired
onsystemerepairfail -- Fires when an emergency repair fails
onpowertoggle -- Fires when power to a system is toggled (on or off)
onbreakeropened -- Fires when a breaker opens
onbreakerclosed -- Fires when a breaker is closed
onbreakerdamaged -- Fires when a breaker is damaged
onbreakerrepaired -- Fires when a breaker is repaired
onbreakerreplaced -- Fires when a breaker is replaced
onthrusterdamage -- Fires when a thruster is damaged
onmemoryapply -- Fires when the player gets their memory bonuses assigned at the start of a new game
onapplydilemma -- Fires when the player's dilemma reward or penalty is applied at the start of a new game
onscaredofdoors -- Fires when the player panics when interacting with a door due to Entamaphobia
ondirectorstart -- Fires when the director (RNG function) starts
ondirectorend -- Fires when the director (RNG function) ends
ongameloss -- Fires when the game ends in a loss, but before endgame flag is set
ongamewin -- Fires when the game ends in a win, but before endgame flag is set
oncooldownevent -- Fires when the player is going to get a cooldown event due to having a bad time
onreactordamaged -- Fires when the reactor takes damage
onobservationtoggled -- Fires when the observation window has been toggled to open or close

0.9.24 Patch Notes

* Added over 50 new mod system hooks, bringing the current total to 59. More will be added, along with documentation for in-game functions, to make modding easier.

0.9.23 release

Today is a small update to fix some problems with the Steam integration release.

- Fixed a rare crash bug
- Fixed a potential softlock during the tutorial.
- If you earned a memory prior to the Steam integration release, it should now automatically pop all the associated achievements.

See you soon, Custodians.

Steam integration is live!

As we continue to march toward 1.0, we've made the decision to keep releasing bit by bit what we HAD hoped to release all at once - in a continuous effort to prove our commitment to seeing things through, despite the continuing efforts of the Horseman of Pestilence.

First up today is an oft-requested feature: DEM CHEEVOS!



We've long planned to have the Memories in game be achievements that you unlock on Steam. The equivalency practically writes itself. The question was always the integration to Steam, which we've now taken the time to move through and figure out. It's entirely possible that we will add some other hidden achievements as we continue forward, but for today, please enjoy the new 25 achievements that also come with in-game functionality.

Another thing we have long planned is for Steam to help tell the story of what you're up to in the game. We've put a lot of work into Endless Dark putting you into the moment. Now, your friends will be able to see exactly what kind of moment you're having:



This is, again, something we hope to expand as we push toward 1.0. As always, don't hesitate to join the discord or post your thoughts on the forums! We love to hear from our players and frequently respond based on what people are talking about. Heck, big shout out to calebzz for, just a few days before this update, asking us about Steam Achievements! This update's for you, friend.

There's a few other goodies in today's update, too.

Most notably, take another look at the options page:


In addition to the long-overdue organization, it's also got a few new knobs to turn in order to customize your soundscape. SFX deals with the specific sound effects like the dot-matrix printer and the repair ratcheting, creaks are specifically the ship groaning in the distance (this, specifically, had reports of giving certain players the WRONG kind of anxiety), and environmental audio refers to the other far off clanking and clunking you hear in the game. Big thanks to Emily Aster for highlighting the value in a number of these changes. Check her out next time you head to twitch - she and we agree that Big Hats are Praxis!

Finally, as a writing update: Work continues on the finale, but as part of that support, all four hundred and nineteen Mission Commands (MCs) are now in the game. You will continue to see a random assortment of them on many turn activation screens, but an upcoming update will let you look them up specifically at the currently-unused console in the Command antechamber.

In the meantime, you can contemplate why we had specifically 419 MCs. Why not one more? It is a mystery.

Now then, back to work on 1.0. See you soon, Custodians!