# KCA Security XP-99 Intelligent Security System ## TODO - [X] Make installation instructions - [X] Alarm reporting Roblox-Side script - [X] More detailed Readme - [X] Use datastores for code storage - [ ] Make a generic RFS tie in for the system, so RFS panels can trip the security system. ## Installation 1. Download the zip file [here](https://git.chrischro.me/KCA/alarm-system/archive/main.zip) 2. Insert the SystemTemplate into your game 3. Insert a keypad into the `Keypads` folder 3. Insert a ZoneTemplate into the `Zones` folder, set up the zone as you like a. Add sensors to the zones `Sensors` folder b. Change the name of the zone folder to the zone number you'd like 4. Insert Sirens into the `Sirens` folder ## Configuration ### System The system is configured through some values in the structure of the system. Here are the values you can change: - `dataStoreKey` - The key used to store the system's data in the datastore. Set to blank to use hard-coded codes in the `SecuritySystem` script - `entryDelay` and `exitDelay` - The time in seconds for the entry and exit delays - `systemName` - The name of the system, used in reporting. ### Zone The zone is configured through some values in the structure of the zone. Here are the values you can change: - `zoneName` - The name of the zone, used in reporting. - `chime` - Whether to play a chime when zone is tripped and chime is enabled (`` + `9`) - `alwaysOn` - Whether the zone is always on, and does not need to be armed to trip - `instant` - Whether the zone is instant, and will trip immediately when armed. If false, entry delay will be used. - `interior` - Whether the zone is an interior zone, and will not trip when the system is armed in `Stay` mode - `isFire` - Whether the zone is a fire zone, and will trip the system's fire alarm ## Having multiple separate systems To put it simply, you just need to set the `dataStoreKey` string to *anything you want* If you want systems to share codes, use the same dataStoreKey (This is not supported, and may cause issues.) # Zoom Script The zoom script is a little thing made by Indirecta that lets you zoom into the keypads when you click on the frame around the buttons. Toss it in `StarterPlayer` > `StarterPlayerScripts` and it should work. Oh and make sure to set it as a Client script.