Back to downloads

Full changelog history

0.5.8

Hotfix 3 (7/20/18)
  • New door model!
  • Fix SCP106 events / patreon offices breaking after going back to main menu and reloading (without restarting the game)
Hotfix 2
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
0.5.8

0.5.7

v0.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
v0.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.6

v0.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
v0.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
v0.5.6
  • SCP-939 implemented (still a WIP)
  • Secret SCP 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.5 (11/25/17)

0.5.55
  • 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/4/17)

0.5
  • 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.4 (3/10/17)

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.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.4
  • 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.3

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.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
  • 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.2 (10/29/16)

0.2.5 (12/19/16)
  • 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.2.2a (11/20/16)
  • 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.2 (11/19/16)
  • 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.1 (11/13/16)
  • 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 (10/29/16)
  • 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.1

0.1.1 (10/14/16)
  • Now using 7 points for 173 sight detection so that corners are included, should move a lot less when "seen" now. Might be overcorrection, but it feels a bit better
  • 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!
  • Added lights to all buttons not just the first one
  • 173 will kill you now, if it can
  • Added console commands "enable173" and "disable173"
  • Added console command "godmode" for super fast sprint
  • Fixed bug with inventory / codex breaking on game restart
0.1 (10/13/16)
  • 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