> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jadevelopment.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Comprehensive instructions on how to set up LuaSIMS with your game. Follow on for step by step details on how to achieve success in your installation.

<Warning>
  Warning: Some pages on LuaSIMS 'Features and Pages' are not complete or are missing entirely. Please refer to the demo game to go through every feature located in our main group experiences
</Warning>

## Getting started

<Icon icon="money-bill-simple-wave" /> Ensure you have the licence for this product, by creating a [support ticket](https://discord.com/invite/jadevelopment-962068926714511500)

<Note>
  You must enable **HTTP Requests** and **API Services** within the Game Settings tab in Roblox Studio. This is located under the Security section. Please ensure this is enabled before opening a ticket with our support team.
</Note>

<Steps>
  <Step title="Add the LuaSIMS bot to your discord server">
    If you have not already added the discord bot, you can do so [**here**](https://discord.com/oauth2/authorize?client_id=1412895797032255559\&permissions=8\&integration_type=0\&scope=bot+applications.commands). Please note, that you must be an **<u>Administrator</u>** of the guild (server) you wish to setup the LuaSIMS bot in
  </Step>

  <Step title="Place the file in workspace">
    After downloading the product file from the licensing message, drag and drop into Workspace under your game
  </Step>

  <Step title="Ensure HTTP requests/API services are enabled">
    Check to make sure your security settings are correct. You can do this by heading to **Home** in Roblox Studio, then **Game Settings**
  </Step>

  <Step title="Ensure LoadString is enabled">
    Check to make sure that LoadString is enabled and is correct. You can do this by heading to **ServiceScriptSpace** in Roblox Studio, then **Properties**
  </Step>
</Steps>

## ROBLOX Configuration

Under the **LuaSIMS** folder provided, there will be a <u>Settings</u> script. Please open it to continue.

<AccordionGroup>
  <Accordion title="Configure Group" icon="user-group">
    An example for configuring your group is below

    ```javascript theme={null}
    ["APIKey"] = "YOUR_API_KEY", -- API Key 
    ["SchoolName"] = "jaDevelopment", -- School name
    ["Domain"] = "jadev.group", -- Domain name for login
    ["LogoID"] = 0, -- Custom school logo ID
    ```

    | **Options** | **Description**                                                                                              |
    | :---------- | :----------------------------------------------------------------------------------------------------------- |
    | APIKey      | Your unique licence key to the product. This can be found within your direct messages from LuaSIMS Cloud Bot |
    | SchoolName  | Your specific school name                                                                                    |
    | Domain      | The unique address for staff to login, this is a cosmetic feature, meaning it can be anything.               |
    | LogoID      | A designated decal Image ID for your school, appears on all LuaSIMS assets/features                          |
  </Accordion>

  <Accordion title="Nametags" icon="tags">
    A series of <u>attributes</u> for nametags can be toggled to adjust to your needs

    ```javascript theme={null}
    ["NametagsEnabled"] = true, -- Toggle nametags being visible
    ["NametagVariant"] = 2, -- Enter type of screen position (1: Modern, 2: Default)
    ["StaffIcon"] = true, -- Toggles staff icon above nametag
    ["IsolationTag"] = true, -- Given when a student is put in isolation
    ```

    * **To disable one of the above**, just change `true` to `false`
  </Accordion>

  <Accordion title="Gamepasses and Lanyards" icon="passport">
    To disable the gamepass feature, just set the `GamepassID` to `0` . Otherwise, replace 0 with your gamepass ID if you wish to use this feature.

    <Tabs>
      <Tab title="Non Uniform Pass">
        ```javascript theme={null}
        ["NonUniformPass"] = { 
        	Enabled = false, 
        	GamepassID = 0, 
        },
        ```

        * To\*\*disable \*\* the above, just change `true` to `false` 
      </Tab>

      <Tab title="Timeout Pass">
        ```javascript theme={null}
        ["TimeoutPass"] = { 
        	Enabled = false, 
        	GamepassID = 0, 
        },
        ```

        * **To disable the above**, just change `true` to `false`
      </Tab>

      <Tab title="Toilet Pass">
        ```javascript theme={null}
        ["ToiletPass"] = { 
        	Enabled = false, 
        	GamepassID = 0, 
        },
        ```

        * **To disable the above**, just change `true` to `false`
      </Tab>

      <Tab title="Lanyards">
        ```javascript theme={null}
        ["Lanyards"] = {
        	Enabled = true, -- Should lanyards be automatically equiped on staff on server join
        	ColorTheme = Color3.fromRGB(52, 108, 207), 
        	SLTTexture = true -- Toggle SLT texture on lanyard if they are SLT
        },
        ```

        When lanyards are set to `Enabled = true`, staff will receive lanyards automatically. Please set this to `false` if you wish or staff **not** to have built in LuaSIMS lanyards.
      </Tab>
    </Tabs>
  </Accordion>

  <Accordion title="Isolation" icon="road-barrier">
    ```javascript theme={null}
    ["Isolation"] = {
    	["IsolationTeam"] = game:GetService("Teams")["Isolation"], -- Set a designated Team for students to be isolated into
    	["ExcludeOnLeave"] = true, -- If student leaves the game mid isolation
    },
    ```

    2. To make **students be sent to a designated isolation** team  input the following `game:GetService("Teams")["Isolation"]`
    3. To**enable**  or **disable** exclusion on leave, change `true` to `false`. This selects if a student should be excluded from the game if they leave while in isolation
  </Accordion>

  <Accordion title="Session Data" icon="timer">
    An example for configuring your session data is below

    ```javascript theme={null}
    	["SessionData"] = { 
    		["Positive"] = { -- Positive points 
    			"2 - Respect",
    			"2 - Equality",
    			"1 - Hardworking",
    			"3 - Working well",
    		},
    		["Negative"] = { -- Negative points 
    			"2 - Truancy",
    			"1 - Disrespect",
    		},
    		["Locations"] = { -- locations 
    			"Main Building",
    			"Physical Education Building",
    			"Sixth Form Building",
    		},
    		["LessonPeriods"] = { 
    			"Period:1",  
    			"Period:2",
    			"Period:3",
    			"Period:4",
    			"Club & Misc:5",
    		},
    		["ExclusionTypes"] = {
    			"Fighting",
    			"Fail Roleplay",
    			"Other"
    ```

    | **Options**    | **Description**                                                                                                  |
    | :------------- | :--------------------------------------------------------------------------------------------------------------- |
    | Positive       | The reasons behind and the number of points that a student can receive for positive behaviour.                   |
    | Negative       | The reasons behind and the number of points that a student can receive for negative behaviour.                   |
    | Locations      | The specific locations that are used when logging behaviour are displayed on the dashboard for logging purposes. |
    | LessonPeriods  | The different periods/lessons for the regular day appear on the behaviour dashboard for logging purposes.        |
    | ExclusionTypes | The reasons that senior leadership members can use in order to exclude students.                                 |

    We recommend you use the **specific text formats** provided below when setting up this section, however this is optional if this does not suit your needs. 

    * `AMOUNTOFPOINTS - Reason`- for positive and negative behaviour logging
    *  `Title:Number` - for lesson period loggingConfiguration
  </Accordion>
</AccordionGroup>

## Discord Configuration

Once you have completed the ROBLOX Configuration, you can move on to configuring your Discord and Roblox permissions and other additional settings using the **LuaSIMS Discord Bot**. Please ensure you are <u>linked with jaDevelopmentID</u> via the bot before proceeding with anything.

<Danger>
  **\[03/2026] Important:** There is a reported front-end issue with permissions saying 'failed to save to database' - all commands are working, so please ignore this warning and continue as normal.
</Danger>

<Tabs>
  <Tab title="Discord Role Permissions">
    Discord permissions allow users to manage behaviour points and exclusions via the system, as well as key components that make it work. To do this, run the slash command`/pemissions add discord`and then follow the other prompts, in the example provided below.

    ```csharp theme={null}
    /permissions add discord `role:` "School Staff Team" `permission:` "Staff"
    ```

    Upon using the command, you will be prompted with **two required fields**: a Discord role and a pre-set permission level. You will need to provide the role you wish to allow permissions for (such as "School Staff Team") and then the level of access you would like that specific role to have, which is explained in the table.

    Once all permissions have been set up for a role, they will appear with the `/permissions list `slash command, which you must ensure you set permissions for **selected Discord roles**; otherwise, they will be unable to access staff Discord features - students do not require this.

    | **Options**             | Description                                                                                                    |
    | :---------------------- | :------------------------------------------------------------------------------------------------------------- |
    | Staff                   | This gives access to use the behaviour slash commands, such as adding or removing behaviour points             |
    | Senior Leadership Staff | This gives access to manage exclusions and behaviour slash commands, such as adding/removing behaviour points  |
    | LuaSIMS Administrator   | This gives **full** access to the LuaSIMS system features and settings; only issue this to trusted individuals |
  </Tab>

  <Tab title="Roblox Role Permissions">
    ROBLOX permissions allow users to access the staff side of LuaSIMS instead of the student view, and set your permissions based on your community rank. To do this, run the slash command`/pemissions add roblox`and then follow the other prompts, in the example provided below.

    ```csharp theme={null}
    /permissions add roblox `rank:` "150" `permission:` "Staff"
    ```

    Upon using the command, you will be prompted with **two required fields**: a Roblox rank ID and a pre-set permission level. You will need to provide the rank ID you wish to allow permissions for (such as "150"), which can be found in the community rank configuration page, and then the level of access you would like that specific role to have, which is explained in the table.

    Once all permissions have been set up for a role, they will appear with the `/permissions list `slash command, which you must ensure you set permissions for **every role**; they will be unable to access staff features if not configured - student ranks do not require this.

    | **Options**             | Description                                                                                                                                                                              |
    | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Staff                   | This gives access to the LuaSIMS system along with the ability to add/remove positive/negative points,  isolate students, and view profiles                                              |
    | SEN Staff               | This gives the same permission level as staff, along with the ability to manage a student's special educational needs profile (including changing their SEN status and adding SEN notes) |
    | Safeguarding Staff      | This gives the same permission level as staff, along with the ability to make changes and manage a student's quick notes and safeguarding status                                         |
    | Administration Staff    | This gives the same permission level as staff, along with the ability to make changes and manage a student's quick notes                                                                 |
    | Senior Leadership Staff | This gives the same permission levels as listed above, along with the ability to manage exclusions, allowing them to add/remove or edit exclusions for students                          |
    | LuaSIMS Administrator   | This gives **full** access to the LuaSIMS system features and settings; only issue this to trusted individuals                                                                           |
  </Tab>

  <Tab title="Additional Configuration">
    <Info>
      Additional configuration for Discord is not available yet for this version, check back soon.
    </Info>
  </Tab>
</Tabs>

## Additional Features

<Tip>
  Roblox commands and additional features are not yet available for this version, check back soon.
</Tip>
