# 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 (`<code>` + `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.)
