Versions

A list of all the versions of SCP: Unity:

* Added lights to lockroom
* Added timed doors to lockroom
* 173 now searches the map for the player. This utilizes a respawn timer. The timer starts out at x seconds; if 173 respawns enough times without discovering the player, it will decrease the respawn timer down to once per second.
* Added intro alarm sounds
* Added functionality to audio manager to play sound sequences as well as repeat sounds only for a certain number of times
* Added Two Way Hallway (room2)
* Functions to reload and quit the game on game over.
* The audiomanager now stores playing sounds in a queue, so that multiple 2D sounds can be played at once. it will attempt to utiliize any free audio sources before reusing currently playing sources. Because they are stored in a queue, this ensures that oldest sounds are used first, hopefully after they've played for a while(less jarring for the player)
* Fixed TimeSinceEvent condition using two a different check, timeSinceStartup, then the event itself, which was using timeSinceLevelLoad. This meant that dying and restarting broke events, as the scene is reloaded and the times became irreconcilable.
* Fixed bug with walking sound playing at running speed when holding run key but out of breath
* Refactored RoomCache to use far fewer lines. More functional, much more easy to read
* Fixed audio manager losing references to used sounds when reusing them
* Fixed some broken grids
* Increased door collider so that 173's arms are no longer visible through the door.
* Fixed codex breaking when disabling / enabling the PDA. List wasn't getting cleared OnDisable()
* Changed codex doc labels to differ from the actual documents so it's easier to read.
* Buttons now use lists of target actors so that they can enable / disable multiple objects
* Cursor is now hidden and locked during gameplay
* Messenger Cleanup() now happens when engine reloads. It must happen before any game service component(UI, etc) adds a message or those will be destroyed. Therefore, moved message creation out of Awake() for game services
* Fixed broken references to codex and resource slot prefabs

## 0.1.1

### October 14, 2016

* Now using 7 points for 173 sight detection so that corners are included, should move a lot less when seen.
* Fixed door collider not being wide enough to block the player from "seeing" 173.
* Fixed wall collider in 173\_opt blocking the player from clicking buttons on the outside.
* Added lights to all the buttons.
* 173 can now kill the player.
* Added console commands "enable173" and "disable173"
* Added console command "godmode"
* Fixed bug with inventory.

## October 29, 2016

* Custom Editor for AudioCache
* CheckParamValue condition, which can check and compare the values of primitive fields in game event messages. This is huge as any field can be tracked, as long as it is primitive.
* RandomChance condition
* DistanceFromPlayerToObject condition, to evaluate a distance between the player and some object, found by name.
* Pathing colliders to lockroom to keep 173 from phasing through walls diagonally into inescapable areas
* Added pathing colliders and lights to room4\_opt
* Added pathfinding grid to room4\_opt walkway for npc events
* Created GameInProgress flag inside the engine, which returns if the game is in any state considered "gameplay".
* Added a couple more loading screens
* Added flag "disableBackground" to loadingScreenData
* Added console commands "enable173" and "disable173"
* Added console command "godmode" for super fast sprint
* Fixed door collider not being wide enough to block player from "seeing" 173 through doors
* Fixed wall colliders in 173\_opt blocking the player from clicking the button on the outside!
* TriggeredEvent system refactored. Now uses ResultBlocks so that conditions can depend on other conditions without having to write a separate event for each one. Eg, 173 Jumpscare first ensures that the NPC seen is 173. Then, the inner result blocks do different sounds depending on what the distance is.
* Changed a lot of scriptable objects to just use the name field instead of a separate field for name
* AudioCache now auto-loads music and sounds from a list of folder names inside Resources/Sounds
* LookEventHandler destroys look object when player blinks, so that 173 can player super scary noise when the player opens eyes again even if looking at it previously
* GameUI now has different input logic depending on the game state
* Door now looks much closer to how it should. Just needs normal maps
* Rebuilt store room (room2closets) in blender, added flipped normals to ceilings to block lights as well as ensured that objects were correctly separated.
* Refactored doors with new methods OnDoorOpen / OnDoorClose. Changed portal generation so that doors only generate portals when the doors are completely open, and destroy the portal immediately upon closing the door. In addition, doors cannot be interacted with while opening or closing.
* Engine just resets game services on restart instead of destroying then creating them.
* Set time to default time variable instead of magic number
* Reduced draw distance for player camera from 1000m to 100m inside of facility. This reduced the render thread, in some cases halving it from 10ms to 5ms / frame.
* Rebuilt scp-012 room in blender to assign names to all model parts and make it easier to work with, fixed door being blocked off
* Blocked vent off from skybox and added lighting to 173\_opt, fixed light bleed from other room due to lights being in ceiling
* Fixed bug with inventory / codex breaking on game restart
* Player can no longer sprint while crouching
* Godmode just continuously sets the sprint timer to max rather than increasing it, fixing sprint UI display bug as well as avoiding sprint not working when exhausted
* Fixed errors reloading UI when resetting the game by having Inventory UI controllers check if GameInProgress
* Fixed PlayerCamera.CheckObjectBlocked destroying the look object if any rays are blocked. We only want to destroy look object if ALL rays are blocked, otherwise we will constantly be "surprised" by 173 even when it hasn't gone out of view.
* Added checks during map generation to see if the current room has placed a door already in addition to that room's neighbor. Seems to fix issues with multiple doors spawning in the same spot
* Fixed 173 containment room not having collider under stairs
* Fixed floor colliders that were too low in some rooms
* Fixed events triggering when the game is paused

## 0.2.1

### November 13, 2016

* Upgraded to Unity 5.4.2
* Cool "fan light" effect to room2 hallway with fan
* Door frame mesh
* Door mesh model!
* GetLastLocation() function in dimension
* Generic function to create hallway for a room in worldgen
* Function to open and close doors behind the player
* Options menu for mouse acceleration, brightness, and a couple of graphics options
* PickupDatabaseEditor now uses generic ModuleDatabaseEditor.ShowStoredAssetList(), and also uses the other generic database methods
* Increased 173's max speed from 15 m/s to 45 m/s
* Optimized the world loading functions somewhat
* Player now accelerates and decelerates
* Added percentage indicator to loading screen
* Resized loading screen text to be easier to read
* Better glass shader
* Unity's new post processing stack! Implemented AO and HDR, as well as color correction to allow true brightness changes.
* Inventory UI now highlights where to put the item, not where not to
* 173 can now move diagonally, and faces the player after moving
* Fixed 173\_opt floor collider being too high
* Separated broken tables in 173\_opt so that they can be sucked into 106's distortion effect
* Modified 173\_opt - stairs railing is now a separate mesh with mesh collider to give better visibility detection for 173
* Fixed the room grid array not being extended correctly when resized during world generation
* Fixed some SCP signs with duplicated UV maps
* 173 warping through doors. Added a "door blocker" that immediately enables when closing doors, blocking 173 from traveling through the pathfinding grid
* Bug where pausing and restarting the game, then pausing again in a new game would make the game get stuck in an infinite paused state
* Decreased grid size and fixed portals in 173\_opt
* Fixed 173 floating above stairs by clamping it to the ground; may need more work
* Pedestal in 1123 and 178 rooms now solid

## 0.2.2

### November 19, 2016

* Decreased forward interaction distance from 5 units to 3 units
* Rewrote the visibility system.
* There is a LookObjectController that handles all LookObject MonoBehaviour components. These components add / remove themselves from the controller OnEnable and OnDisable. The controller asks the camera each frame if they are visible or not, and sets a flag on the components. This makes the system \* MVC and removes that functionality from the AI and camera, keeping it inside the look object system. This will also enable multiple objects to be queried for visibility at the same time. In addition, this allows the look objects to have multiple colliders of different sizes. All memory for the system is allocated on the LookObject scripts at Awake(), so there will not be any extra GC being generated by this system.
* Resized 173's controllers to fit the new system.
* Rewrote the GetColliderBoundsNoAlloc function to take colliders of various sizes and subdivisions
* Added a delay when the camera responds to blinking in order to allow 173 to finish its move before the player can see it
* Fixed 173 pathing through the walls around doors. Started by shrinking down portals. This broke 173 in doorways sometimes, as it was not on any grid. I then implemented Apex Path's CallbackPathRequest! This now handles all path requests. If 173 starts off-grid, it finds the nearest cell and moves \* there, then re-generates the path. This fixes that problem. I can also use this to move 173 back to the grid if it falls of the map.
* Went into all rooms and resized grids. They will now fit standard humanoid NPCs like 173 better.
* Lowered chance of t-shaped lockroom spawning from 15% to 10%
* Reworked small\_testing\_room so that objects were separated, added missing colliders. Continued the vent and capped it so that the player can no longer see the skybox
* Fixed door in 1123 room going through wall
* Fixed missing collider for computer in scp012\_room, added portal for stairs
* Disable recursive hallway from spawning, as it is breaking maps and isn't done yet
* Added vent blocker to lockroom to block skybox until I can model another vent
* Fixed elevator room's wall not extended far enough in one area and thus allowing the player to see through the wall. Redid room in blender, separated upstairs mesh from downstairs (downstairs incomplete as there are no elevators yet)
* Fixed bug where mustSpawn rooms were not being copied from their prefabs, so room grids were not working correctly
* Changed arrival distance for 173 to 0.46 to avoid it overshooting as per Apex Path support's instructions
* Rebuilt the RoomCache to be a lot smarter
	+ Utilizes classes for each type of room
	+ String lists for per-zone random and mustSpawn instead of instantiate a lot of copies
	+ Cleaner and easier to read and use
* Noticed that 173's attack raycast was starting from the ground. Added an AttackPoint field for an empty transform, so that it can be started from its hands instead. This avoids it being blocked from raycasting the player with its own collider, which broke attack in many cases.
* Added a new button type, AirlockButton, for the t-shaped lockroom that should ensure that the doors always end with one open and one closed regardless of starting state.
* LookObject system now correctly hits the corners of the colliders when raycasting. Added two more points to check, front and back center.
* Increased room grid spacing from 20.2 to 20.5. This fixes some rooms extending into others
* Reworked grids in several rooms to ensure that they didn't allow 173 to enter walls near doors
* Reworked Doors. Door abstract class now defines only information needed to set up type of door. StandardDoor extends this, and provides all functionality for most Facility doors. Added a new bool, gridConnector, which lets the door know whether it needs to generate portals or not.
* Went through all rooms, upgraded their doors to the latest version
* Added a new function to Tools/Containment Breach to auto create an empty room
* Fixed bug where sometimes grids would not all initialize. This is because the number of grids to initialize is compared to the number of already initialized grids; if all grids are initialized, the loader moves on to the next sequence. Sometimes the current grids would finish initializing before the rooms were all placed and initialized, which meant that there were grids that were not correctly initializing.
* Added RaycastBlockBetween function to Utilities
* Interaction handler now checks if there is a wall / obstacle between the player and objects behind him.
* Fixed bug where dragging an item out of an equipment slot would make the item image black (image darkened incorrectly)
* Increased inventory slots to 12 to fill the grid better
* Did work with the PDA UI for items and equipment so that it looks better on 5:4 resolutions
* Fixed bug where resizing resolutions ingame would break InventorySlots

## 0.2.2a

### November 20, 2016

* Fixed lockroom buttons
* Slightly modified 173 to stick to the ground better, and compensated height slightly accordingly
* Fixed archive room / armory - extended floor collider, fixed missing wall, and added missing door
* Fixed lower grid in scp012 being too tall and trapping 173 downstairs inside the room

## 0.2.5

### December 19, 2016

* Updated to Unity 5.5!
* Imported new battery model/texture from 1.3.3
* Added Action to ModuleDatabaseEditor.ShowStoredAssetList, onEditAction. This allows each type of database editor to call a function on an entity if it's modified in the editor, and do some work on that object. For instance, the pickup database can mirror changes to instances of base items on a base item changing
* Fixed pickup database not showing other items when one is null
* Built class tree for EquippableItems and updated PickupDatabaseEditor to handle adding new equippables
* Refactored PickupDatabaseEditor to use a list of class types to create new items rather than an enum. This removes needing to update the enum list whenever a new pickup type is added.
* Installed SECTR core library for use in realtime visibility occlusion
* Added functionality to remove null assets when fixing database
* Reworked "Fix Database" for pickups. Separated out the unity asset stuff and database list stuff into respective classes. Ensures that all references are deleted first, including any in any pickup spawners, and then assets themselves are deleted
* Wrapper function public void MirrorChangesToInstances(Pickup p) to mirror changes to instances of that item, as long as it isn't an instance
* Removed extraneous float from loop inside GetColliderBoundsNoAlloc()
* Added new "set\_volume" console command
* Big update to inventory UI.
	+ Can now drop items outside the PDA to drop them
	+ Fixed item image breaking when dragging, made drag\_image a separate object so that it is totally distinct from item images. Item images are now completely static
	+ Renamed and reworked a lot of functions inside InventoryUI. It makes a lot more sense now and should be easier to extend and debug.
* Started rework of dimension system. removed DimensionData and reworked Dimension as a ScriptableObject. Removed extraneous fields from Dimension and World, reworked the dimension creation system to be a lot more chill.
* Separated generator functionality out of Dimension and put it into DimensionGenerator

reworked how grids are initialized so that multiple dimensions can initialize grids

* Entities and pickups are now children of parent transforms, so that they can be enabled / disabled when the parent dimension is enabled / disabled
* Added original game skyboxes
* SCP-1499 now teleports the player between dimensions
* Equippable items now do their equip and unequip effects correctly! Effects are sent to the Event system for processing so that they can be paused / unpaused correctly.
* Added TeleportToDimension action to teleport between dimensions
* Added functions to get dimension by name and switch to dimension by name to World.
* Reworked EquipmentInventory to call equip and unequip methods only after item is successfully equipped or unequipped.
* Generalized a lot of behavior for ModuleDatabaseEditors to cut down on copy-paste code.
* Created generic function to Handle new asset creation in an editor
* Created class "StoredAssetList" to wrap data for ShowStoredAssetList(), better compartmentalizing data
* Rewrote ShowStoredAssetList() and ShowLinkedAssetList() to use the new AssetListEditor class, reducing function params by 2. Removed unused param 'wrapInBox' from both functions.
* Added an editor for equippable item
* Added messages for dimension load and unload
* Game now waits for grid reinitialization before spawning entities / allowing player to move. This is allowed through the use of coroutines
* Added 1499 terrain
* Added a PlayMusic action
* Fixed bug that let the player open PDA when the game's pause menu was open
* PDA now closes when you switch dimensions, and input is disabled until dimension switch is complete (to prevent breaking the game by trying to load multiple dimensions at the same time)
* Imported a lot more sounds
* Changed the audio system to work with dimensions. Now, audio sources are divided into global and dimension-specific audio. They are stored in a new class AudioSourceService, which handles producing audio sources for the AudioManager to consume. AudioSourceServices are mapped to dimensions in a dictionary, with a pointer to the current source service set on dimension switch.
* In addition, repeating sounds and sound sequences are stored in a similar fashion. This allows them to be paused and unpaused - so the facility intro can pause when you go to SCP-1499's world, and unpause when you return. Sound sequences need a bit more work in order to remember at what point during the sequence's current clip the sound was stopped. For now, a sound sequence will simply restart the current clip in the sequence.
* Added editor for HeadEquippable which extends EquippableItemEditor; this re-uses all equippable item code with the addition of the head equippable's sprite overlay.

## 0.3

* Fixed sprite for button behind player not showing - RearButtonSprite now responds to events instead of using an update loop
* Removed some extraneous code from game loader
* Dimensions now use a GridLoader to load / unload grids, instead of doing it from the generator.
* Added function to copy a grid config
* Built the grid system for SCP1499. There are nine grids so that units can pathfind around the player; grids will be enabled / disabled as the player travels to keep memory usage low.
* Removed black lines from skyboxes - set texture wrap mode to clamp
* Added unity component that sends messages when a player enters and exits a grid
* 1499gridloader responds to PlayerEnteredGrid and PlayerLeftGrid and generates new grids as the player travels
* Faster grid loading in 1499's dimension. The center grid is loaded quickly and then the others are streamed in at low latency as the player begins to travel.
* Some new GameEvents: PlayerEnteredGrid, PlayerLeftGrid, PlayerStanceChanged, PlayerEquippedItem, and PlayerUnequippedItem.
* Equipping / unequipping items now sends messages. GameUI responds to these messages. Added functionality to GameUI to add an overlay sprite if the equipped item is a HeadEquippable and has an overlay sprite.
* Added SCP-1499 gasmask overlay sprite.
* HeadEquippable now mirrors its changes from base pickups to instances
* Increased spawn chance for 1499 chunks from 15% to 20%
* Gave chunks a slightly randomized position inside their grid cells
* Added functionality to apex path to disable grids that are in the process of initializing
* Grid loaders now add and remove messages on OnEnable() and OnDisable() so that they aren't incorrectly called
* 1499 grids are now unloaded as the player travels through the dimension
* Save button now closes options menu
* Added containment door frame, containment doors finally implemented!
* Containment doors placed in room2closets and 173\_opt
* Both dynamic door portals and static room portals now regenerate when switching back to the facility dimension

## 0.3.1

* Created a new data structure, Mapped2DGrid, to use between classes that need a mapped 2d grid. This class abstracts the grid behavior from 1499's grid loaded and allows it to be used anywhere that a grid is needed with quick two-way lookup (position -> element and element -> position)

new GetOffset() extension method for VectorXZ

* Starting dimension now calls its visuals handler at game start
* Added PlayerTrigger component to call generic PlayerEnteredTrigger and PlayerLeftTrigger messages
* 1499 dimension now infinitely spawns terrain chunks in addition to grid chunks
* Added Dynamic2DGrid. This generic class translates elements of a given type as the center of a grid moves. This class can be used by any class that needs a quick way to update a infinite grid dynamically. It even takes a Func and Action for createAction and removeAction, specifically, so that any logic that needs to be appled as elements are added and removed can be done.
* GridLoader1499 and Dim1499Generator now uses Dynamic2DGrid to generate pathfinding grids and terrain chunks, respectively.
* Fixed ItemOptionsPanel button being too big
* ResetColor on an item sprite resets to selected color if selected
* Scaled 1499 chunks to about 0.35%
* Decreased sprint exhaust time from 3 seconds to 2 seconds
* Increased sprint time from 5 to 6 seconds
* Increased dynamic grid speed generation in SCP-1499 by doubling the number of grids and reducing their size.
* Fixed algorithm for generating stat bars. New algorithm will correctly generate and place the number of UI pieces based on specified width.
* Changed anchors for UI statbars so that they can be resized by dragging
* Fixed camera distance shortening with inventory open - need a better solution for framerate in inventory
* World generation now uses GridDirection enum instead of strings to store directions
* SCP1499 dimension now regenerates the grid at the center each time so that it is regenerating where the player respawns
* AI now use an AIBehavior class with an Action field to define actions, instead of an enum and a switch statement. This will make adding, creating, and sharing behaviors very simple
* Changed sliders for mouse input so that the sensitivity and smoothing have much smaller ranges that make more sense
* AudioCache now only loads sounds as needed, reducing game memory usage by a lot.
* Added SCP-1499-1
* Build 1499-1's basic AI. There are three standard behaviors - attack, wander, and commune. Attack means attack the player. Wander uses a new algorithm to find a random point to travel to, and commune is when they stand still and can be startled into attacking you.
* 1499 will attack you while standing still, after playing a noise. Moving instances can be interacted with freely
* Added sun field to DimensionVisualParams with methods to enable / disable sun on dimension load / unload
* Created Timer classes to deal with creating timers: BehaviorTimer, VariableBehaviorTimer, and RandomVariableBehaviorTimer. These abstract the timer logic away, so instead of three variables and if statements, one if statement and a function call with the passed deltaTime to increment / check the timer.
* Added button click sound
* Modified light in Store Room to be less yellow
* Resized pickup models slightly to make more sense relative to each other's sizes
* Increased ambient light in dimension 1499

## 0.3.1a

* Some fixes / changes to SCP-1499-1 instances to make them scarier / more of a threat
	+ Instances now run when attacking
* Instances that pause when the player is within attack range now switch to attacking the player
	+ Increased stopping distance so the instances are no longer pushing their bodies into the player
	+ Added a movement delay to simulate an attack animation; if they attack they will wait to move until the attack delay is expired
	+ Sometimes when colliding with them they will start attacking you. This is a bit wonky because Unity's default CharacterController doesn't like to play with physics. Will be streamlined when the CharacterController is updated
* Player's vision now always goes black upon death
* Better handling of vision going black when switching dimensions
* Added a very crappy healthbar that responds to 'player health changed' message

## 0.4

### March 10, 2017

* World Gen System
* Audio – Purchased and implemented Master Audio: AAA
* Highlighting System – Purchased and implemented Highlighting System
* Elevators
* Tesla Gate
* Settings
* Started supporting Linux and will do my best to keep that build in sync with the Windows build
* Added a text reader to help people read the documents on low-resolution screens and lower resolution settings
* Pathfinding grids now initialize in a smarter fashion when returning from SCP-1499’s dimension, so it should take less time for the facility to load back in
* New post-processing effect – bloom! Thanks to Unity’s upgraded Post Processing Stack
* Started turning room furniture into reusable prefabs to more easily create rooms in the future
* Did some lighting work in several rooms
* Added a possibility for SCP-173 to despawn for a period of time to give the player some breathing room
* Added a music system to track dimension, area, and event music. Event music is prioritized over area music, with dimension music as a fallback. That way the correct music will always be playing and then the audio manager will switch to the next best as the event ends, player exits the area, etc.
* All loading screens from the original game are in and working

## 0.4a

* Changed quality settings names and options to make it more transparent to the player what they are. Only lowest (no shadows) lacks shadows
* Tesla gate - kill field is now enabled / disabled independent of attack sound.
* Much shorter time kill field is active
* Tesla Gate now resets OnDisable(), for instance when swapping dimensions
* Elevator now waits for the door to open before registering input from a button again. This fixes a bug that caused the elevator to become unusable if the button to go to a different floor was clicked while the door was opening
* Doors are now not 'open' until the open function completes, and 'closed' until the close function completes
* Elevator now clears list of entities to teleport before populating them again, to avoid dangling references and the player being teleported even if outside of the elevator
* Fixed MouseLook not resetting on a new game, so player would be facing direction when quitting / dying
* Player now starts facing the containment chamber
* Doubled time in airlock from 5 to 10 seconds, so player feels less rushed
* give\_item console command now takes only an item\_name parameter and returns a single item instance
* Tried to create give\_items command, realized that the DevConsole executes the give\_item command as well since it has a similar string, will need to rewrite the console.
* Increased spawn chance for t-shaped lockroom slightly (from 10% to 20%)
* BodyText for TextViewer now correctly scales with aspect ratio (instead of being cut off). TextViewer should work better on different resolutions.

## 0.4c

* InteractableObject now adds Highlighter component and removes it when done, to avoid tons of Update() calls. Each highlighter component was calling Update() even with no work to do, causing a lot of wasted ms per frame (anywhere from 50-150 highlighter components so far which would have increased with each door and new interactable added)
* You can no longer press the sprint button to lose stamina without moving
* Decreased sunlight intensity in Store Room from 3 to 2
* Slightly decreased warning light intensity in storage room
* Added crouch speed parameter, player is now slower while crouching
* Upgraded post processing from version 1 to version 1.0.1
* Created a new version of the containment light, ContainmentLight\_Glass with glass instead of a metal frame
* Replaced the starting room containment lights with the new variant as step 1 of the upgraded look
* BehaviorTimer is now a MonoBehavior and handles time-keeping internally. Other scripts just need to call CheckTimer() to get whether the timer has expired or not.
* Added Enable() and Disable() methods to BehaviorTimers, so that they can be switched off when not in use
* TeslaGate is slightly more dangerous now - increased the charge range slightly and decreased the charge timer by 15%
* You can no longer lose stamina when holding run button while walking crouched

## 0.5

### June 4, 2017

* SCP-106
* Revised storage room
* New LC Vent Control Room
* Rewired (Unity Addon) for controller support and better input control
* Upgraded interaction system. Changed interaction system to work more like original game but with better, more fine-tuned control. Now you can focus on surviving instead of trying to click on objects with pinpoint accuracy!
* Tons of bugfixes and optimizations

## 0.5.5

### November 25, 2017

* All Light Containment Rooms from the original game
* SCP-012 event
* SCP-106 fully animated
* SCP-178 glasses with cool 3d effect
* SCP-330 event and items
* SCP-714 item and effect
* SCP-914 room
* SCP-173 AI reworked to be smarter and not pop in to view
* Tons of bugfixes and optimizations
* Lots of new high quality prefabs
* Updated graphics
* Updated lights and shadows

## 0.5.6

* SCP-939 implemented (still a WIP)
* SCP-553 implemented
* Tons of graphical upgrades and bugfixes
* Holiday flair added to 173
* Updated VentRoom sequence
* New cave room
* New stairs room
* Upgraded room2storage
* Localization of UI elements
* Buttons now have different images for different states (locked, active, open, closed)
* Fog implemented

## 0.5.6.1

* Fix 1499 breath sound playing after restarting
* Separate progress / loading complete text on loading screen
* Heavily optimize 1499 object placement
* Optimize grid loading for smoother loading / frames

## 0.5.6.2

* Update to Unity 2017.3
* Add spanish translation, updated all translations
* Decrease lockroom timer from 9 to 7 seconds
* Add HX camera to security camera in lockroom so lights correctly show up
* Fixed reflection probes on lower settings
* Change some mesh colliders to box colliders for performance

## 0.5.7

* Change dynamically loaded door to GridDoor
* New SoundData file to serialize a sound with easy to use play methods
* Doors now use SoundData to control what sound plays when opening / closing
* All doors in facility updated to use SoundData
* New Elevator door sounds for elevators
* Remove SCP1123 Doc
* Fix bug where deleting an item in ModuleDatabase deleted all items after that in the list
* Disable sprint when below speed 4
* Add SCP714's ambience
* StandardDoors now disable door buttons if starting disabled
* Add ducks
* Modify highlighting system to be much thinner and sharper, to allow items to be seen more easily
* Add SaxDuck item to 173chamber
* Use a single text element for credits
* Credits text now loads from a TextAsset so we can just edit a text file!
* Add SECTR member components to 106, 173, and 939
* SCP173 now moves randomly when it doesn't have a path to the target
* Fixed SCP106 not disabling all decal printers
* LookCamera now doesn't do raycast detection when player is blinking, if it's a player camera
* GridDoor door frames now have collision
* Fix corrosion walking sound playing forever after walking in 106's corrosion
* Update document images to new ones, remove unused docs
* Documents now use text asset to store text for easier maintainability
* Removed emily's card from the game
* Massive overhaul of lights and general facility room materials
* Tweaked all room spawn rates for balance and consistency
* SCP713 waits for player to click start to start moving
* SCP173 will now alternate between moving randomly and standing still
* SCP173 will now start despawned and spawn in
* Decreased volume of SCP173 concrete scraping noise
* Only highlight the interactable you can interact with
* Fix GridDoor portal mesh to be in the center, fixes SECTR flicker problem
* Add GhostDuck item
* Add FlamingoDuck item
* Add inventory images for 1499 and SaxDuck
* Fix grids and colliders in stairs
* Add spawn walls for 106 in stairs
* Add TextMeshPro
* Add SECTR VIS
* SaxDuck
* Flamingo duck
* Floating ghost duck
* Update Options UI
* Update main menu UI
* Update loading screen UI
* Update game over UI
* Update pause menu UI
* Updated HUD
* Health indicator flashes red when taking damage
* Replace loading screens with high quality versions
* New fan room
* New room4
* New t-shaped intersection
* Lots of new props
* FPS counter no longer shows ridiculous number right after unpausing
* Also color fps counter text red / yellow if frames are too low
* Optimized pathfinding grids
* reduced timed airlock timer from 7 seconds to 6
* Fix pathfinding in room1scps
* Fix dropdowns not triggering save button in Options menu
* Remove description language
* Update language prefab to mirror spreadsheet
* Fix SCP330 event breaking due to interaction handler changes
* Fix being able to open inventory in options menu
* Fix map viewer - make it wait until assets are loaded
* Rebuild and fix all grids in 939's storage room to fix broken pathfinding
* Add ConsoleMask to keep from clicking on UI elements with console open
* Blend SCP-939's walk and idle animations together
* ProximityDetector now detects player
* If in stealth mode, 939 will go directly to attack mode if stealth meter is at 100
* Use MAX\_DETECTION instead of a magic number for max detection amount in stealth meter
* Fix SCP-012 event breaking when cave room collider intersects pathfinding grid making it non-navigable
* Fix some objects not being obstacles that should be
* Add spinning loading indicator
* Added text fade to loading screens
* LookObjects no longer block raycasting (get put on No Raycast layer)
* Fixed shelves in sky room, re-enabled rigidbodies on items
* Fixed control surface in 173 chamber so that only the panel highlights
* Fixed the VentRoomController event when switching to 1499 during event
* LookCamera raycasting now ignores trigger colliders
* Show "No text found" in TextReader if no text is found for a document
* Fix bug when switching dimensions while Facility is still initializing grids causing an endless black screen when returning
* Add shutter sounds
* Add StandardControlSurface button sound
* Buttons can now use a differently named Variation
* Doors can now specify an open / close sound
* LookCamera now returns false when object is beyond the camera's farClipPlane
* Added EntitySpawner to spawn an entity in a room, either OnGameLoad or when player hits a trigger
* Added SCP650 prefab, spawns when you go into room and waits for player to see it
* Add SCP650 music and horror cue sounds
* Reduce speed if sprinting and speed > targetSpeed, fixes 106s corrosion not slowing you down if already sprinting
* Reflection probes now bake simultaneously when loading / switching dimensions
* Fixed reflection probes looking weird for a couple of seconds when switching back to the facility
* New unit property, DetectedByWorldTriggers - TriggerNotifiers will ignore Units that don't have that property (178-1 won't trigger tesla gates / checkpoint)
* Add shutters to starting room
* New BlinkEmissiveComponent to blink emissives
* Button upstairs in 173's chamber blinks
* Update credits UI
* Revamped cornor room
* Replaced old small\_testing\_room with new SCP-650 testing room
* Room retextures, and new locker prop, along with relighting some parts.
* added electrical socket prop
* Fixed place you can get stuck in RockRoom between stairs up and rock
* Fixed bug where doors would always run their grid update timers even when not updating
* Add SCP-178-1 instances
* Better GetSpawnPointsAroundObject function - now has minimum and max radius
* 173 Containment Chamber now has box colliders for floors
* 330 doc change
* A new digital scp screen added to the scp storage. lockroom cameras changed and effects added.
* Increased rooms in a sector
* Added room alias for easy teleport - teleport uses alias
* Can override bounds for room sector
* Moved rooms, entities, and other things to asset bundles
* Asynchronous loading implemented
* SECTR VIS added and implemented - rooms now only render when visible!
* Added new SkyRoom with snow effects
* Tesla room stripes
* Lots of new room decals
* Added a desktop computer model and sound
* Added more descriptive loading messages, including what assets are loading

## 0.5.7.1

* Update doors in all rooms + prefabs - frames now have mesh colliders to block vision and movement
* Discord button now links to website so I can easily update my discord invite if it breaks
* GhostDuck waits until game loaded to set start height
* SCP 178-1 doesn't break when there are no spawn points, just waits until there are
* Add SCP173 document to containment chamber
* Add SCP650 label
* Add duck document pickup, text, and image
* Add duckument to Archive room as a must spawn item
* Move ghost duck physics calls to FixedUpdate() to fix physics being tied to framerate
* Credits now shows the correct name for $25 and $15 patron roles

### Hotfix 1

* Fix cursor not staying within window by forcing game to keep running in background
* Fix SCP914 breaking when trying to convert items that don't have recipes

### Hotfix 3

* New door model!
* Fix SCP106 events / patreon offices breaking after going back to main menu and reloading (without restarting the game)

## 0.6

### January 25, 2019

* SCP-1762:
	+ New progression and puzzle to gain access to the SCP
	+ Large unique chamber with detailed props and animations
	+ 3 minutes of new powerful music
	+ Detailed sound and foley work
	+ Lore expansion through notes and decoration
		- Will now pursue the player more intelligently
		- Despawns at appropriate times
	+ New attack patterns - no more instakills (unless you mess with him)
	+ Increased speed and agility
	+ New animations:
		- New walking animation
		- New spawning animation
		- New teleporting animation
		- New despawn animation
	+ New music: chase theme by FireFox expanded with new effects and large scale
* Revamped SCP-173:
	+ Contextual blinking (see Mechanics)
	+ New AI:
		- Upon spawning, 173 will not automatically be aware of the player
		- 173 has been made a lot tougher to evade
		- Increased speed and navigational skills
		- Huge new chamber with office areas to explore (featuring a tiny bonus)
	+ New audio:
		- All 914 sounds updated for larger scale and loudness
		- New development: Unique roomtones in different areas of the chamber for added ambience detail and immersion
		- New arrangement and expansion on the musical theme
	+ New processing abilities:
		- Can now output multiple items based on recipe
* Revamped SCP-983:
	+ New location
	+ COMPLETE REVAMP of the 983 sequence:
		- On-screen bottom text messages to guide the events of the sequence
		- Two minutes of new music that plays during the event
		- Sound of player humming along to the monkey
		- No more running away
	+ New 983 voice samples
	+ Is now always active - happy birthday!
* Revamped SCP-650:
	+ Dozens of new frightening poses
	+ AI fixes:
		- Disappears and reappears at appropriate intervals
		- No longer blocks doorways forever
	+ New audio: Revamped the 650 theme and horror cue
* Revamped SCP-178:
	+ The glasses have found a new home
	+ AI changes and fixes: 178-1 instances will no longer phase through one another
	+ Added a sound when SCP-178-1 damage you to avoid confusion
		- The bowl of candy has a new home
		- Bleeding out over time adds to realism
	+ SCP-553:
		- 553 deals more damage than before
	+ SCP-207:
		- 207 now only stacks to 3 units
		- Wears off over time and notifies you of your state (so you won’t just randomly die)
* Anomalous Ducks:
	+ Revamped: Ghost Duck:
		- New location
		- New spooky sound effects
	+ Revamped: Disco Duck:
		- New location
		- New lighting effects
		- New music and event sequence
	+ New: X-Ray Duck:
		- Original model and idea by Aruspice
		- New “X-Ray” camera effect
		- New music
	+ New: Duckiplier:
		- Original model and idea by Aruspice
		- Special message with music and sounds
		- A truly handsome fella
	+ Minor Upgrade: Saxduck
		- Saxduck found a new home
		- Fun interactions!
* No longer present in this update:
	+ Suspended SCP-939 and warehouse section for a future overhaul update.
	+ Flushed SCP-789-J down the drain. Sorry, not sorry.
	+ Suspended SCP-1499 and its dimension for a future overhaul update as well
		- The player will only blink when being chased by SCP-173
		- Unique and startling audio cues let you know about contextual blinking
		- Blinking will no longer get in the way of viewing events
	+ Basic saving and loading:
		- Quicksave and quickload during gameplay
		- Saves items in inventory and codex
		- Saves progression stats
		- Saves player stats
	+ Intro sequence:
		- Simple waking up intro sequence at the start of a new game
		- First Person arms with detailed textures and animation
		- Completely new music and player foley
	+ Right mouse button
		- Use the right mouse button to zoom into details
	+ Zoomable objects
		- Various objects such as notes zoom in when you interact with them
		- Interactable diegetic UI screens with unique cursors
	+ Head bob
		- Using the new player animation system for dynamic head bob based on speed and direction
		- New inventory and codex UI
		- New and improved item handling
	+ Death screens:
		- New death screen UI look
		- Death screens now have messages on what killed the player
			* The messages will be expanded upon in future updates
	+ Bottom texts for event sequences:
		- Displays messages to the player to guide events and give additional information on actions
	+ Adjusted and simplified loading screens
	+ Added marketing & links to the main menu to easily access social media, website, and more!
	+ Added a disclaimer and known issues page, accessible under the Extras screen
* Other:
	+ Official Aerie Gaming Studios logo splash screen
	+ Added reminder on game start that the game is still in early development and bugs and missing features are to be expected
	+ Discord integration:
		- Discord will display if the player is in the main menu or loading, as well as which room they are currently in and what has killed them if they die
* Graphics and World:
	+ Full lighting revamp with baked lighting and relights:
	+ Fantastic new lighting quality that gives the facility an entirely new feel
	+ Massive visual improvements without a performance tradeoff (performance is boosted actually)
	+ Amazing new handcrafted stylistic and mood-intense looks
* New rooms, redone rooms, retextured rooms:
	+ Dozens of newly modelled rooms for future sublevels 2 and 3
	+ Dozens of new SCP chambers
	+ Dozens of remodelled and retextured rooms
	+ Great performance and look improvements to every room in the facility, leading to great consistency
	+ Removed almost all of the original SCP: Containment Breach rooms & models from the game; the rest to be removed in a future update
	+ Redecoration of the entire game world
	+ Rooms now have various clutter and debris props for a better breach atmosphere
	+ Tons of new props with amazing detail in various places
	+ Lamps on desks are now usable and can be turned on or off
	+ Medkits scattered throughout the facility may now be looted
	+ Other:
		- Retex and overhaul of most props and assets from the beginning of development
		- Subsurface Scattering on some SCPs
* Audio:
	+ Fully remastered and rescored main menu theme:
	+ Achieves better clarity and detail on all playback devices
	+ Higher intensity and new tone in rescored parts
	+ Available for purchase on Bandcamp (starting with the public release of 0.6)
* Lots of new sounds:
	+ Completely new LCZ door sounds with buttons sounds
	+ New computer sounds (no more dirty fans)
	+ New moving camera sounds in various rooms
	+ New steel door sounds
	+ Equipped the bathrooms with new door sounds, including stall sounds by Scotty Venable
	+ New desk fan and faucet sounds by Scotty Venable
	+ New audio events and facility ambience developments:
		- Emergency intercom devices in various rooms will play randomised distress calls
		- First introduction of roomtones with the new 914 chamber - provide scale and general immersion into the game world
	+ New music developments:
		- The new and rearranged music pieces present a style and musical language never heard in other SCP games before
		- First introduction of brand new thematic material in the intro and SCP-1762 cues
		- New X-Ray Duck music by FireFox
		- SCP-106, 650 and 914 themes rearranged by Corvus B. with faithfulness to the works of FireFox
	+ Other revamps:
		- Revamped all auxiliary ventilation event sounds
		- Made the LCZ ambience sit better in the mix
		- Removed audio skips from LCZ ambience
		- Adjusted mix on player footsteps
		- Adjusted distance rolloffs on many ambience sounds
		- Room streaming
			* Custom system that streams assets in and out at runtime using a fast API
			* Can be scaled to an infinite amount of rooms without affecting the game’s performance
			* Almost the entire game’s world and assets within that world have been converted to be streamable
			* Huge performance boosts even on low-end computers
		- Texture streaming
			* Updated to the latest version of Unity 2018.2 with a vastly stabilized texture streaming system
			* Streams textures in and out as the player moves through the world to keep memory usage low
* New systems:
	+ Pathfinding
		- Full rework of the entire game’s pathfinding system from the deprecated and buggy system it started with to the powerful and well-known A\* pathfinding project
		- Incredibly fast and made for modding
		- Allows multifloor geometry - stairs will never feel safe again
		- Much faster grid & navmesh generation
		- Room to expand with multiple grids for differently sized entities to handle larger and smaller enemies & npcs
		- Easy to write our own custom AI to handle pathfinding well
* Cutscene system
	+ Intelligent handling of cutscenes internally
* Event sequence system
	+ SCP chases are prevented from starting during important event sequences
	+ Save / load is prevented during event sequences
	+ Some items, such as SCP-1499, will not work during event sequences to preserve world state
* Patreon systems:
	+ System to handle multiple offices
	+ Load & save your office key
	+ Automatically generate credits from patreon database
* Miscellaneous:
	+ New & improved console commands
	+ Rooms now have a specified teleport point - no more getting stuck in them when you teleport!
* Known Issues:
	+ There is a rare chance that the game’s loading will fail around 50% on a new game - this is due to the fact that we have pushed old worldgen to its limits. Simply restart the game and try a different seed
	+ There is an extremely rare chance of the world unloading spontaneously during gameplay. This issue is still being investigated. During testing we played far over 100 seeds and it only occurred once. Should this happen, a reload should fix it / entering the room from a different angle should fix it
	+ Some items may fall out of 914’s intake booth due to random item spawning. Most items should be fine.
	+ Sometimes door sounds may not play. This is due to lag. If you notice this happening, try reducing the graphics level.
	+ Sometimes our room streaming system might unload rooms that are connected to the room you are in. Simply walk out of the room and back in or save and reload.
	+ In case you observe 173 and the blinking mechanism doesn’t initiate, save and reload. This issue may occur with 650 also, but it has only occurred once so far.
	+ Jamming yourself in the way of a closing door can push you out of the world. In case this happens to you, make sure you walk towards one of the rooms that you were traversing between.

## 0.6.5

### April 11, 2019

* Added several new rooms!
	+ New caved SL3 hallway
	+ New SL3 machine room
	+ New tubed hallway, corner hallway, and three-way hallway
* Reworked the Tesla Hallway with a new room and new animations - all of the original SCP Containment Breach rooms have been replaced
* Lighting and graphics reworks across the whole game!
* Completely reworked the intro animation with a new animation, new foley and new music!
* New interaction system that lets you have precision where its needed while still letting you evade 173
* Added NodeCanvas for modern AI using Behavior Trees (like in Alien Isolation)
* Add SCP-939 back into the game (in a whole new location!) 939 is the first AI using our new behavior trees system with a completely reworked AI using no old code
* Reworked our database system to centralize it into a database store, which will help both us and the future development of our modding API!
* Added ragdolls!
* Lots of new patreon offices & props
* Some optimizations that should help frames even more on lower end machines

## 0.7

### April 3, 2020

* NEW: WORLDGEN 3.0: Our all-new custom world generation engine expands LCZ onto three different floors (sublevels) with different rooms, tasks, and SCPs to explore!
	+ Every sublevel has its own look, feel and challenges
	+ Discover the core room: the massive hub point of LCZ that connects the sublevels
	+ The facility is bigger and more realistic than ever before, allowing for new paths and areas to be explored!
	+ A new dynamic signage system will help you make your way through the corridors and keep you from getting lost quite so often
	+ Worldgen 3.0 supports multiple map types & rooms of any size and shape
	+ Our worldgen and map system is now feature complete and will allow us to create the game we have envisioned!
* NEW: SCP-131: Be joined by two watchful eyes as you explore LCZ
	+ SCP-131 will be helpful companions that follow you through thick and thin and protect you in the ways that they can
	+ SCP INTERACTION: SCP-131 will react to and interact with SCP-173 and (in a future update!) SCP-106, first of its kind in a randomly generated SCP game!
* SURPRISE! NEW SECRET SCP:
	+ A new, never yet featured surprise SCP has been added somewhere in the facility for you to find
	+ Locate the SCP and unlock its secrets
	+ Complete with unique visuals, sounds, and a twist to the normal gameplay loop
* SCP-173 REDESIGN: Experience a creepier 173 than before
	+ See a completely fresh approach to the most well-known SCP come to life
	+ With all new sounds, music and "facial expressions" that change when you blink, this rendition of a classic will freak you out in a new way
	+ Full AI rewrite using NodeCanvas Behavior Trees, making his behaviour even more menacing
* SURPRISE! SCP-106 REDESIGN: See the corporal brought to life
	+ A long overdue rework of the old man with the most detailed model he has ever been portrayed with, highlighted by fresh new animations that blow away the dust of old
	+ We've heard you - SCP-106's speed has been reduced! But he now has a new attack pattern to compensate for it. Don't get caught by his corrosion!
	+ Away with the rust - in with new time-rippling sounds and rolling music for one of the community's favourite SCPs!
* NEW INTERACTION WITH THE WORLD: Explore the facility to uncover new secrets
	+ Previously empty areas now contain new content to find!
* New RFID keycards allow you to unlock and gain access to new areas around the facility
	+ Complete a new quest to unlock control over the facility's Tesla gates and choose how to use them against your opponents!
* AUDIO UPGRADE WITH FMOD: Get a new feel for the game with this extreme audio overhaul
	+ Realistic audio effects such as custom occlusion and sound propagation that adjusts to your immediate surroundings make you feel more immersed in the facility
	+ New player movement foley (footsteps, cloths ruffling, etc.) give you a better impression of your movements
	+ New ambient sound systems (roomtones, soundscapes, distant sound effects) and tons of ambient detail work and heightened sound complexity make the halls and SCPs more alive than ever
	+ Gripping, heavy, tense: the new music of 0.7 sets the scene in breathtaking new ways
	+ Presented and mixed in 5.1 Surround Sound, you are now placed right in the middle of the experience
	+ No stone was left unturned: old assets from SCP:CB finally replaced, inadequate assets overhauled
* UI IMPROVEMENTS:
	+ Hint Message System: New system to help give context to your actions or help give information that isn't inherently clear (Full inventory, door locked, key used, effect wearing off)
	+ Item Pickup Message System: Picking up items will now show on the HUD, so you no longer have to question whether the medkit is just mocking you or actually giving you items
	+ Targeting Crosshair: A basic crosshair has been added to help interactions with the world transition more smoothly. Choose from an assortment of options including Red, Green, Blue, and Opacity values or simply turning it off if you don't like it
* PERFORMANCE IMPROVEMENTS!
	+ Room streaming has been completely rewritten to fix lag and allow for more rooms to be streamed at once on beefier machines for better immersion!
	+ The game now only loads what is needed instead of loading everything at the start for Patreon offices & some other things
* TOOLING IMPROVEMENTS!
	+ Many custom Unity Editor tools and windows have been created to help the team create content going forward. While not immediately apparent, better tools = better game!
* MASSIVE CODEBASE REFACTOR!
	+ Improved almost all of the game's subsystems to make them more modular, performant, and reusable keeping our future plans of modding in mind.
* VARIOUS OTHER IMPROVEMENTS: Polish on particle effects, polish on lighting, polish on audio mix, polish on room decoration, polish on SCP AIs...
* NEW DUCK & FULL IMMERSIVE FISHTANK SYSTEM

## 0.7.6

* Ambient Occlusion
* Default graphics settings change
* Fix for UI issues on 16:10
* Audio filtering

## 0.8

0.8 is the next major update upon which work has already begun. The following content has been confirmed for the update:

* 4 new systems (2 major, 1 moderate, 1 minor)
* 2 new large areas to explore that are not LCZ
* A new SCP
* A rework of an existing showcase SCP to fit into the game's story
* Lots of TLC with lights, sounds, and more!

In addition, one of the new areas is confirmed to be the revamped Warehouse and TLC for the animations of SCP-106 and SCP-939 has been confirmed through separate teasers. Subtitles for important voice-lines ingame has also been confirmed, but it is unknown if this is one of the new systems or something miscellaneous.

## Kickstarter update

The Kickstarter update is an as of yet unnumbered update that will come along with the game's Kickstarter campaign. Originally this update was planned to be 0.7, but it has been pushed back to an unknown update. It will supposedly contain a large amount of features that will lead to the completion of the Light Containment Zone.