Skip to main content
If you want to set up the discord bot integration, skip to discord bot setup

Studio Setup

The following instructions are to be used for installing Vision MIS into your game through Roblox Studio. Please head to [link here] for setting up discord integration. Ensure you have the licence for this product, through our website or our product hub

Getting started

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.
1

Place the file in Workspace

After downloading the product file, drag and drop into Workspace under your game
2

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

Configuration

Under the jaVision folder provided, there will be a Settings script. Please open it to continue.
An example for configuring your group is below
["GroupID"] = 14665139, -- Group ID
["StaffID"] = 1, -- Minimum staff role ID to use system
["AdminID"] = 1, -- Minimum admin role ID to use more advanced features, for administrators/leadership only
["StudentID"] = 1, -- Maximum student role ID
["SchoolName"] = "jaDevelopment", -- School name
["SchoolType"] = "Secondary", -- Type of school (ie. primary, secondary, academy)
["IconID"] = 0, -- Custom school logo ID
OptionsDescription
GroupIDThe ID of your Roblox group
StaffIDThe minimum role ID a user has to be to access the staff version of Vision
AdminIDThe minimum role ID a user has to be to access specific features, such as timetabling, settings, etc
StudentIDThe maximum role ID a user has to be to be considered a student (e.g 10+ for staff, 9 and below for students)
SchoolNameYour specific school name
SchoolTypeType of school (e.g primary, secondary, academy)
IconIDA designated decal image ID for your school, appears on all Vision assets/features
["VisionPlayerDataStoreKey"] = "RANDOMKEY-Players", -- Change this to anything of your choice (stores player data)
["VisionSettingsDataStoreKey"] = "RANDOMKEY-Settings", -- Change this to anything of your choice (stores general vision settings)
You are required to have unique data store keys, which are a series of random words or numbers that are used to identify and store data within your game.
OptionsDescription
VisionPlayerDataStoreKeyA random key of your choosing. Saves player data for the system
VisionSettingsDataStoreKeyA random key of your choosing. Saves vision settings for your game
A webhook is a discord integration that allows you to send authorised messages to a discord channel from an external application, in this case, Vision MIS.
Learn more about discord webhooks, and how to set them up
["VisionWebhookURL"] = "",
In-game commands are a recently added feature, allowing you to quickly perform actions without directly interacting with the Vision MIS dashboard.
["Commands"] = {
	-- Chat-based Vision control commands
	Enabled = true, -- Enable/disable commands
	Prefix = "%", -- Command prefix
	
	["CommandNames"] = {
		Isolate = "isolate", 
		Positive = "merit", 
		Negative = "demerit", 
		Relocate = "relocate", 
		NonUniform = "nonuniform", 
		Timeout = "timeout", 
	}
},
The code snippet above contains key attributes that determine the functionality of the commands
  • To disable commands, replace Enabled = true with Enabled = false
  • To change the prefix for commands, replace Prefix = "%" with your own prefix, for example Prefix = ":"
  • To change a command name, look for the command you want to change under ["CommandNames"] and replace the command name in the ” ” with your new command name.
    • For example, replace Positive = "merit" with Positive = "positive"
On call alerts allow specific users with specific roles to receive alerts when a request is made from a member of staff. The configuration for this is very simple
["OnCallsEnabled"] = true,
["RankIDs"] = {1, 2, 3}, -- Choose every rank ID, separated by a comma which are able to manage on call alerts
Within ["RankIDs"] = {1, 2, 3}, you can add or remove role IDs. These IDs are gathered from your Roblox group.To add a new role to the list, just add the number of the role ID in the {} . For example, if I added 255, it would now look like {1, 2, 3, 255}
A series of attributes for nametags can be toggled to adjust to your needs
["NametagsEnabled"] = true, -- Toggle nametags being visible
["Staff Icon"] = true, -- Toggles staff icon above staff nametag
["Admin Icon"] = true, -- Toggles admin icon above admin nametag
  • To disable one of the above, just change true to false
You are no longer required to use gamepass IDs to give out non-uniform or timeout passes. 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.
  • Non Uniform
  • Lanyards
  • Custom Lanyards
  • Timeout
["NonUniformPass"] = { 
	Enabled = false, 
	GamepassID = 0, 
},
  • To disable the above, just change true to false
["Isolation"] = {
	Enabled = true,
	["IsolationTeam"] = nil,
},
  1. To enable or disable isolation, change true to false or the other way round
  2. To make students be sent to a designated isolation team, you can replace nil with the following game:GetService("Teams")["TEAM NAME"] .
  3. Replace ["TEAM NAME"] with the name of your team you wish to place students into. For example my isolation team would be game:GetService("Teams")["Isolation"]
["Relocation"] = { 
	Enabled = true,
	TeleportToFolder = "Relocation", 
	["RelocationTeam"] = nil, 
},
  1. To enable or disable relocation, change true to false or vice versa
  2. The TeleportToFolder is the name of the folder which contains the parts where students will be teleported to. By default this is “Relocation”, however you can copy paste the Relocation folder under the jaVision folder in Workspace and rename it to whatever you want.
  3. An example of the above: image.png
  4. As mentioned in the Isolation tab, you can set a designated team for students to be placed into when they are relocated.
  5. For example ["RelocationTeam"] = game:GetService("Teams")["Relocation"],
["UI Theme"] = "Light",
["Boot Screen"] = true, 
["Session Details Screen Position"] = 1, 
["ColourTheme"] = Color3.fromRGB(255, 65, 32),
["Timezone"] = "BST",
NameOptions
UI Theme”Light” or “Dark”
Boot Screentrue or false
Session Details Screen Position1 (Top), 2 (Bottom Left) , 3 (Bottom) or 4 (Bottom Right)
ColourThemeClick the values in the fromRGB() to select a colour
TimezoneBST, GMT, EET, CET, ET, CT, AEST, AEDT
["Groups"] = { -- List of student groups.
	{ Name = "Year 7", Roles = {1, 255} },
	{ Name = "Year 8", Roles = {0} },
	{ Name = "Year 9", Roles = {0} },
	{ Name = "Year 10", Roles = {0} },
	{ Name = "Year 11", Roles = {0} },
	{ Name = "SEN", Roles = {0} },
},
A group within Vision is a collection of students, arranged by Roblox group role IDs into their own category. The default template is above.

How to add a new group

1

Add a new goup

Copy the following and paste it under the last group that is in the list
{ Name = "Template", Roles = {0} },
2

Paste it underneath the last group

Your groups should now look like this
["Groups"] = { -- List of student groups.
	{ Name = "Year 7", Roles = {1, 255} },
	{ Name = "Year 8", Roles = {0} },
	{ Name = "Year 9", Roles = {0} },
	{ Name = "Year 10", Roles = {0} },
	{ Name = "Year 11", Roles = {0} },
	{ Name = "SEN", Roles = {0} },
	{ Name = "Template", Roles = {0} },
},
3

All done!

Start configuring your group role ids or name. Each of the role IDs should be separated by a comma within the {}
Lastly - one of the most relevant sections of the configuration process, is organising your periods/lessons for the regular day
["ClosureTime"] = "20:55",
	["Periods"] = {
		{ Name = "Form", Time = "19:10", AttendanceIsLogged = true},
		{ Name = "Period 1", Time = "19:25", AttendanceIsLogged = true},
		{ Name = "Period 2", Time = "19:40", AttendanceIsLogged = true},
		{ Name = "Break", Time = "19:55", AttendanceIsLogged = false},
		{ Name = "Period 3", Time = "20:05", AttendanceIsLogged = true},
		{ Name = "Lunch", Time = "20:20", AttendanceIsLogged = false},
		{ Name = "Period 4", Time = "20:30", AttendanceIsLogged = true},
		{ Name = "Period 5", Time = "20:45", AttendanceIsLogged = true},
}
["ClosureTime"] = "20:55", - this is the the time the last scheduled lesson ends
AttendanceIsLogged = true - this is for lessons, not breaks or lunches. Set this to false if you want to have a lesson or other timteabled session to not to be registered

How to add a new lesson

1

Copy the sample code

Copy the template as shown below
{ Name = "Template", Time = "00:00", AttendanceIsLogged = true},
2

Paste it underneath the last lesson listed

Your Periods table should now look like
["Periods"] = {
	{ Name = "Form", Time = "19:10", AttendanceIsLogged = true},
	{ Name = "Period 1", Time = "19:25", AttendanceIsLogged = true},
	{ Name = "Period 2", Time = "19:40", AttendanceIsLogged = true},
	{ Name = "Break", Time = "19:55", AttendanceIsLogged = false},
	{ Name = "Period 3", Time = "20:05", AttendanceIsLogged = true},
	{ Name = "Lunch", Time = "20:20", AttendanceIsLogged = false},
	{ Name = "Period 4", Time = "20:30", AttendanceIsLogged = true},
	{ Name = "Period 5", Time = "20:45", AttendanceIsLogged = true},
	{ Name = "Template", Time = "00:00", AttendanceIsLogged = true},
}
3

All done!

You have successfully created a new period. You can now edit the name and time as shown above.

Discord Bot Setup

Please read the information below before proceeding to setting up the Vision discord bot
You must have a fully working Roblox-setup before continuing with setup on the discord bot
1

Add the Vision bot to your discord server

If you have not already added the discord bot, you can do so here. Please note, that you must be an Administrator of the guild (server) you wish to setup the Vision bot in.
2

Follow along and read through

We recommend that you read through all of the documentation thoroughly before contacting support — our support agents follow the same documentation to assist you.

Initial Setup

Please ensure you have each of the following pieces of information before continuing:
InformationDescription
Experience IdThe experience id of your game which contains the Vision System.
OpenCloud KeyAn API key to interact with the in-game Vision System from Discord.
Community IdThe id of your Roblox group/community.
Log Channel IdThe id of a log channel within your Discord server to send all bot logs to.
You can retrieve the information through each of the tabs below. We’d recommend keeping all of this stored somewhere as you get each piece of information.
  • ExperienceId
  • OpenCloud Key
  • Community Id
To get started, head to the Creator Dashboard, if you are not already logged in make sure to do so.Once you are on the home page, you must click View As in the top left of the side-bar and switch to your Roblox Community which owns your game with the Vision System inWegewgwegewgew PnOnce you have switched to your group, select the Creations tab and find your experience in the list. Once you find the experience with your Vision System in, click the 3 dots that appear when you hover over the game. Once this is done, click Copy Universe ID.Er,mjktemjerj Pn

Setting Up

Once you have retrieved the necessary information for system setup, Run the /setup command to initiate the setup process. You will be prompted an embed with a button on it, click the button and a modal form will popup asking you to input the information you retrieved before. Input the information into all the fields and then click Submit. If the setup was successful you will be notified, else you will receive an error message stating what went wrong.
If you do not want any system logs enter a 0 (zero) when asked for a Channel Id.
If you update your in-game datastore names within your Vision settings, the cached datastore names in our database will become out of sync with the live stores. View the System Refresh section to refresh the cached names.

System Permissions

Ensure that you setup the correct permissions before attempting to run any commands. By default, some commands are locked to “Staff” ranks and some to “Admin” ranks, much like the in-game Vision system. Currently, you are unable to specify which commands you want to lock to administrator or staff members. Our current command permissions are below:
Staff & Admin CommandsAdmin Commands
analyticsattendance
year-analyticstimeout-pass grant timeout-pass remove
timetableuniform-pass grant uniform-pass remove
search
roleplay-name
timeout-pass has
uniform-pass has
merit
behaviour-point
incident
isolate
detention
Guild Members who have any administrative roles can access both admin and staff locked commands. Guild Members who have any staff roles can only access staff locked commands.

For all of the Discord bot features and commands, please go to this section

I