# Delete a server Source: https://docs.hyra.io/api-reference/activity/delete-activitysessions-server delete /activity/sessions/{workspaceId}/{eventId}/server/{serverId} Delete a server for an event # Get Session Calendar Source: https://docs.hyra.io/api-reference/activity/get-activity-calendar get /activity/{workspaceId}/calendar Get the calendar for the workspace # Retrieve Leaderboard Source: https://docs.hyra.io/api-reference/activity/get-activity-leaderboard get /activity/{workspaceId}/leaderboard Get a workspace's leaderboard # Get User Activity Source: https://docs.hyra.io/api-reference/activity/get-activity-user get /activity/{workspaceId}/user/{userId} Get a user's activity for this week, and the last 25 activities # Get Sessions by Day Source: https://docs.hyra.io/api-reference/activity/get-activitysessions get /activity/sessions/{workspaceId} Get sessions for given day # Get Session Event Logs Source: https://docs.hyra.io/api-reference/activity/get-activitysessions-logs get /activity/sessions/{workspaceId}/{eventId}/logs Get sessions for given day # Get Upcoming Sessions Source: https://docs.hyra.io/api-reference/activity/get-activitysessions-upcoming get /activity/sessions/{workspaceId}/upcoming Get upcoming sessions # Creating an exporter Source: https://docs.hyra.io/api-reference/activity/module/creating-an-exporter If you're using multiple scripts for your Activity Tracking Events, you'll need to create an exporter module to ensure instance persists across scripts. Please follow the instructions below: ```lua local activity = require(126591263956758) return return activity ``` Require the module in your Loader Script, and `init` the module as normal. In all locations where you want to use the module for event tracking, simply require the exporter module. You only need to run `init` in one location. # Using the Activity Module Source: https://docs.hyra.io/api-reference/activity/module/using-the-module Hyra's Activity Module is used to track in-game activity and sessions. Hyra provides a ready-made module for tracking in-game activity. This comes preloaded with tracking of friends, messages and more. To begin installing the module, please follow the instructions below: Before using the Activity Module, you must enable the HTTP Service in your game settings. This allows the module to communicate with Hyra's API. You can enable this by going to Game Settings > Security > Enable HTTP Requests. Also note that your game must be published to access these settings. Each Workspace has a unique tracking ID, so you'll need to download a ready-made module for your workspace. You'll need to download the module for your workspace. Once you've downloaded the place, open it in Roblox Studio. Copy over the loader script to your ServerScriptService. Once you've copied the loader script, paste it into your ServerScriptService. Once you've published the place, your module will be ready to use. # Adding Events to Hyra In the latest version of Hyra's module loader, you can now send custom events to Hyra, which will appear in the Activity tab. Activity Events ## What Are Events? Events allow you to log specific activities within your system, making them visible and organised under the Activity tab. Common types of events include: * **Admin Logging:** Track administrative actions, such as user commands. * **Assistance/Help Logging:** Log help requests or assistance actions. * **F3X Logging:** Monitor building or tool usage events. Events are grouped by type for easy browsing, and you can ingest any custom event you need - Hyra takes care of the rest. ## Sending Events to Hyra To send events, use the `trackEvent` function provided by the module. This function is tied to the module instance, meaning you'll need to ensure it operates within the same instance. If your scripts require sharing data, you can use [exporters](/api-reference/activity/module/creating-an-exporter) or bindable events for seamless integration. ```lua module.trackEvent(player, eventType, eventData) ``` * `player`: The player associated with the event (e.g., `game.Players.melodrvma`). * `eventType`: A string representing the type of event (e.g., `"Admin Logs"`). * `eventData`: A table containing event-specific details (e.g., `{ command = ":kick xyeda" }`). ## Example: Tracking an Admin Log Event The following example demonstrates how to log an admin action using the `trackEvent` function: ```lua module.trackEvent(game.Players.melodrvma, "Admin Logs", { command = ":kick xyeda" }) ``` In this example: * The event tracks an admin's use of the `:kick` command. * The `eventData` table includes the specific command executed. By following this structure, you can easily add, organise, and track events in Hyra, ensuring all relevant activities are logged and accessible within the Activity tab. # Change a Session Role Source: https://docs.hyra.io/api-reference/activity/patch-activitysessions-change patch /activity/sessions/{workspaceId}/{eventId}/change Change session user # Create User Activity Source: https://docs.hyra.io/api-reference/activity/post-activity-user post /activity/{workspaceId}/user/{userId} Create a new gifted activity # Create a Server Source: https://docs.hyra.io/api-reference/activity/post-activitysessions-server post /activity/sessions/{workspaceId}/{eventId}/server Create a server for an event # Redirect to Roblox Game Source: https://docs.hyra.io/api-reference/connections/get-connectrobloxplay get /connect/roblox/play Redirect to Roblox game # Delete a Post Source: https://docs.hyra.io/api-reference/intranet/delete-workspaceposts- delete /workspace/posts/{workspaceId}/{postId} Delete a post from the intranet. # List Posts Source: https://docs.hyra.io/api-reference/intranet/get-workspaceposts get /workspace/posts/{workspaceId} Get all the posts from the intranet. # Update a Post Source: https://docs.hyra.io/api-reference/intranet/patch-workspaceposts- patch /workspace/posts/{workspaceId}/{postId} Update a post from the intranet. # Introduction Source: https://docs.hyra.io/api-reference/introduction A quick introduction to the API reference documentation Hyra's V2 monothlyic API allows you to securely interact with Hyra from outside applications. Every day, we see new and exciting integrations with Hyra, from automation from within games to interaction via Discord bots. Our API is REST based, and uses JSON and Bearer authentication. It's the exact same API we use to power our website. At the moment, Hyra's website uses two APIs. * **V1 API (api-staging)**: Our original API is no longer being actively developed, but is still used by our website for some features. This API uses a different authentication method, and is not documented or supported. We cannot guanratee that this API will not change or be removed at any time. * **V2 API (api)**: Our new API is being actively developed and more and more features are constantly being added to it. This API is the one you'll find documented here. A full technical API reference can be found [here](https://api.hyra.io/docs/static/index.html), but the documentation here is based on the API reference, and is more user friendly. ## Authentication Our V2 API uses Bearer authentication, which you can pass in via the `Authorization` header. You can get your API key from your Workspace Settings, under Developer API. ```http Authorizaton: Bearer ``` ## Rate Limiting On most of our API the global rate limit is 100 requests per minute, but you can check the ratelimit for every endpoint by using the `X-Ratelimit-Limit` and `X-Ratelimit-Reset` headers on all responses. If you exceed the limit, you will receive a `429 Too Many Requests` response. If you need a higher rate limit, please contact us. ## Errors Our API uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the `2xx` range indicate success, codes in the `4xx` range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.), and codes in the `5xx` range indicate an error with Hyra's servers. ### Example Error ```json { "statusCode": 400, "error": "Bad Request", "message": "Bad Request" } ``` # Revoke a Ban Source: https://docs.hyra.io/api-reference/players/delete-playersbans delete /players/bans/{workspaceId} # Delete Comment Source: https://docs.hyra.io/api-reference/players/delete-playersbans-comments delete /players/bans/{workspaceId}/{banId}/comments/{commentId} Delete a comment # Get Bans Source: https://docs.hyra.io/api-reference/players/get-playersbans get /players/bans/{workspaceId} Retrieve a list of bans # Get Ban by ID Source: https://docs.hyra.io/api-reference/players/get-playersbans- get /players/bans/{workspaceId}/{banId} Retrieve a specific ban # Get Comments Source: https://docs.hyra.io/api-reference/players/get-playersbans-comments get /players/bans/{workspaceId}/{banId}/comments Retrieve comments for a ban # Retrieve Orders Source: https://docs.hyra.io/api-reference/players/get-playersorders get /players/orders/{workspaceId} Retrieve orders # Retrieve Order Timeline Source: https://docs.hyra.io/api-reference/players/get-playersorders-history get /players/orders/{workspaceId}/{orderId}/history Retrieve order history logs # Search Orders Source: https://docs.hyra.io/api-reference/players/get-playersorders-search get /players/orders/{workspaceId}/search Retrieve orders # Creating an exporter Source: https://docs.hyra.io/api-reference/players/module/creating-an-exporter If you're using multiple scripts for your utilities or order system, you'll need to create an order log exporter module to ensure authentication persists across scripts. Please follow the instructions below: ```lua local orderLog = require(15254660066) return orderLog ``` ```lua local orderLog = require(game.ServerScriptService:WaitForChild("OrderLogModule")) ``` # Using the Order Logging Module Source: https://docs.hyra.io/api-reference/players/module/using-the-module Hyra provides a Roblox Lua wrapper for its Order Logging system The Hyra Order Logging API is an advanced, real-time solution for monitoring and managing the lifecycle of an order. It offers comprehensive visibility from the moment an order is placed to when it's ready for pickup, tracking each participant involved. ## Ready made scripts Hyra provides some out of the box solutions for order logging for popular solutions. * [HandTo System by r\_r](https://create.roblox.com/marketplace/asset/15281167443/HandTo-System) ## Order Status Lifecycle Each order must have a status associated with it. Depending on your system, you may decide to use different statuses. The following statuses are available: * `handed_to` - The order has been handed to the customer * `submitted` - The order has been submitted by the cashier * `waiting_for_preparation` - The order is waiting for preparation by a chef or other staff member * `finding_new_colleague` - The order is waiting for a new colleague to take over preparation (for example, if the previous chef left the game) * `preparing` - The order is being prepared by a chef or other staff member * `completed` - The order has been completed * `waiting_for_pickup` - The order is waiting for pickup by the customer or a delivery person * `cancelled` - The order has been cancelled ## Requiring the module The module used for Order Logging is stateful and persists its authentication state with the Hyra API. If you use a single script order solution, you can directly require the module as follows: ```lua local orderLog = require(15254660066) ``` If you use multiple scripts, you can [create a module script exporter](/api-reference/players/module/creating-an-exporter). You need one of these to maintain the state of the module across several scripts. ## Authentication To authenticate, input your unique `apiKey` and `workspaceId` at the beginning of your main script: ```lua orderLog.setupAPI(apiKey, workspaceId) ``` You only need to do this once per game server. ## Interacting with the module To log a new order, input the customer and actor as player objects, along with an argument table that can include an array of `items` and the initial `status`. The `customer` and the `actor` are both [Player instances](https://create.roblox.com/docs/reference/engine/classes/Player). ```lua Using Player Instance orderLog.createOrder(customer, actor, { items = {"item 1", "item 2"}, status = "waiting_for_preparation", }) ``` ```lua Using User Object orderLog.createOrder({ UserId = 1}, { UserId = 2}, { items = {"item 1", "item 2"}, status = "waiting_for_preparation", }) ``` Using the unique order `id` (not the order\_number) you can update the status of an order ```lua Waiting for Preparation orderLog.setWaiting("653db4bb1e3727cc1851ac07") ``` ```lua Preparing orderLog.setPreparing("653db4bb1e3727cc1851ac07", game.Players.Roblox) -- Or spoof a player object (see docs - Creating an Order, Using User Object) ``` ```lua Finding a new colleague orderLog.setReprepare("653db4bb1e3727cc1851ac07") ``` ```lua Ready for pickup orderLog.setReadyForPickup("653db4bb1e3727cc1851ac07") ``` ```lua Completed orderLog.setComplete("653db4bb1e3727cc1851ac07") ``` ```lua Cancelled orderLog.setCancelled("653db4bb1e3727cc1851ac07") ``` # Update Order Source: https://docs.hyra.io/api-reference/players/patch-playersorders- patch /players/orders/{workspaceId}/{orderId} Modify an order # Create a Player Ban Source: https://docs.hyra.io/api-reference/players/post-playersbans post /players/bans/{workspaceId} Create a new ban # Post Comment Source: https://docs.hyra.io/api-reference/players/post-playersbans-comments post /players/bans/{workspaceId}/{banId}/comments Create a comment There is a more advanced version of this endpoint that allows for uploading files and videos. However, this API uses multipart encoding instead of JSON, so it has been omitted from this documentation and the Swagger reference. # Create Order Source: https://docs.hyra.io/api-reference/players/post-playersorders post /players/orders/{workspaceId} Create a new order # Set Player Rank Source: https://docs.hyra.io/api-reference/ranking/patch-ranking-set patch /ranking/{workspaceId}/set/{userId} Change a user's rank to the specified rank # Using the Roblox Module Source: https://docs.hyra.io/api-reference/ranking/using-the-module A guide on how to use the Roblox Module. Hyra's Ranking API comes with a Roblox MainModule wrapper to allow you to easily interact with the API from Roblox Lua. ## Getting started Make sure you have your API key and Workspace ID to hand. You can find your Workspace ID in the URL of your workspace. For example, if your workspace URL is `https://app.hyra.io/123456`, your Workspace ID is `123456`. Your API key can be found in the Workspace Settings under Developer API. ## Require the Module At the top of the Server Script where you want to use Ranking, you must require the module. ```lua local ranking = require(14743387756) local workspaceId = "abc123" -- Your Workspace ID ``` ## Ranking a user In your event or function, you can rank a user by calling the `SetRank` function. ```lua local callback = ranking.SetRank(token, workspaceId, userId, groupId, rank) if callback.success then -- Ranked successfully else -- Handle failure print(callback.message) end ``` The API is callback based, so you can react to success or errors by checking the `success` boolean in the callback. # Search Workspace Staff Source: https://docs.hyra.io/api-reference/search/get-search-people get /search/{workspaceId}/people Search for people in a workspace. # Delete Logbook Entry Source: https://docs.hyra.io/api-reference/staff/delete-stafflogbook- delete /staff/logbook/{workspaceId}/{staffId}/{logbookId} # Stop active timeoff for user Source: https://docs.hyra.io/api-reference/staff/delete-stafftimeoff- delete /staff/timeoff/{workspaceId}/{staffId} Stop active timeoff requests for a staff member # Retrieve Assignments Source: https://docs.hyra.io/api-reference/staff/get-staffassignments- get /staff/assignments/{workspaceId}/{staffId} Retrieve assignment information for a staff member # Retrieve Staff Dashboard Source: https://docs.hyra.io/api-reference/staff/get-staffdashboard get /staff/dashboard/{workspaceId} Retrieve workspace staff dashboard. # Retrieve Logbook Source: https://docs.hyra.io/api-reference/staff/get-stafflogbook- get /staff/logbook/{workspaceId}/{staffId} Retrieve a staff member's logbook history. Image links from this endpoint are only valid for 1 hour # Retrieve Summary Source: https://docs.hyra.io/api-reference/staff/get-stafftimeoff get /staff/timeoff/{workspaceId} Retrieve timeoff information for a workspace # Retrieve staff information Source: https://docs.hyra.io/api-reference/staff/get-stafftimeoff- get /staff/timeoff/{workspaceId}/{staffId} Retrieve timeoff information for a staff member # List Requests Source: https://docs.hyra.io/api-reference/staff/get-stafftimeoff-requests get /staff/timeoff/{workspaceId}/requests Retrieve timeoff requests for a workspace # Update status Source: https://docs.hyra.io/api-reference/staff/patch-stafftimeoff- patch /staff/timeoff/{workspaceId}/{staffId}/{timeoffId} Update the status of a timeoff request # Post Staff Logbook Source: https://docs.hyra.io/api-reference/staff/post-stafflogbook- post /staff/logbook/{workspaceId}/{staffId} There is a more advanced version of this endpoint that allows for uploading files and videos. However, this API uses multipart encoding instead of JSON, so it has been omitted from this documentation and the Swagger reference. # Create Request Source: https://docs.hyra.io/api-reference/staff/post-stafftimeoff- post /staff/timeoff/{workspaceId}/{staffId} Create a timeoff request # Retrieve User Source: https://docs.hyra.io/api-reference/users/get-users get /users/{userId} Get a user by their ID # Retrieve Current User Source: https://docs.hyra.io/api-reference/users/get-users@me get /users/@me # Get user by Roblox username Source: https://docs.hyra.io/api-reference/users/get-usersroblox get /users/roblox Get a user by their Roblox username # Set User Settings Source: https://docs.hyra.io/api-reference/users/patch-users@mesettings patch /users/@me/settings Update the current user's settings # Create a Logbook Template Source: https://docs.hyra.io/api-reference/workspace/create-a-new-logbook-template post /workspace/logbook/templates/{workspaceId} Create a new logbook template # Delete a Logbook Template Source: https://docs.hyra.io/api-reference/workspace/delete-a-logbook-template delete /workspace/logbook/templates/{workspaceId}/{templateId} Delete a logbook template # Delete a Game Source: https://docs.hyra.io/api-reference/workspace/delete-workspace-games delete /workspace/{workspaceId}/games/{gameId} Remove a game from the Home layout # Delete a Role Source: https://docs.hyra.io/api-reference/workspace/delete-workspace-roles delete /workspace/{workspaceId}/roles/{roleId} Delete a role # Delete GApps Config Source: https://docs.hyra.io/api-reference/workspace/delete-workspacegoogle delete /workspace/google/{workspaceId} Delete Google Workspace Configuration # Delete Trello Config Source: https://docs.hyra.io/api-reference/workspace/delete-workspacetrello delete /workspace/trello/{workspaceId} Disconnect Trello from a workspace # Delete Trello Action Source: https://docs.hyra.io/api-reference/workspace/delete-workspacetrello-actions delete /workspace/trello/{workspaceId}/actions/{actionId} Delete an action # Disconnect Trello board Source: https://docs.hyra.io/api-reference/workspace/delete-workspacetrello-boards delete /workspace/trello/{workspaceId}/boards Disconnect Trello board from a workspace # Retrieve Logbook Template Source: https://docs.hyra.io/api-reference/workspace/get-a-logbook-template get /workspace/logbook/templates/{workspaceId}/{templateId} Get a logbook template # List logbook templates Source: https://docs.hyra.io/api-reference/workspace/get-all-logbook-templates-for-a-workspace get /workspace/logbook/templates/{workspaceId} Get all logbook templates for a workspace # Retrieve a Workspace Source: https://docs.hyra.io/api-reference/workspace/get-workspace get /workspace/{workspaceId} Get general settings # List Games Source: https://docs.hyra.io/api-reference/workspace/get-workspace-games get /workspace/{workspaceId}/games Get all games in the Home layout # List Roles Source: https://docs.hyra.io/api-reference/workspace/get-workspace-roles get /workspace/{workspaceId}/roles Get all roles in a workspace # Retrieve Schedules Source: https://docs.hyra.io/api-reference/workspace/get-workspace-sessions get /workspace/sessions/{workspaceId} # Retrieve GApps Config Source: https://docs.hyra.io/api-reference/workspace/get-workspacegoogle get /workspace/google/{workspaceId} Retrieve Google Workspace Configuration # Get Trello Config Source: https://docs.hyra.io/api-reference/workspace/get-workspacetrello get /workspace/trello/{workspaceId} Get workspace Trello information # Retrieve Trello Actions Source: https://docs.hyra.io/api-reference/workspace/get-workspacetrello-actions get /workspace/trello/{workspaceId}/actions Get all actions # Get Trello boards Source: https://docs.hyra.io/api-reference/workspace/get-workspacetrello-boards get /workspace/trello/{workspaceId}/boards Get Trello boards for a workspace # Update a Schedule Source: https://docs.hyra.io/api-reference/workspace/patch-workspace-sessions post /workspace/sessions/{workspaceId}/{scheduleId} # Update GApps Config Source: https://docs.hyra.io/api-reference/workspace/patch-workspacegoogle patch /workspace/google/{workspaceId} Update Google Workspace Configuration # Update Trello Action Source: https://docs.hyra.io/api-reference/workspace/patch-workspacetrello-actions patch /workspace/trello/{workspaceId}/actions/{actionId} Update an action # Update a Workspace Source: https://docs.hyra.io/api-reference/workspace/post-workspace post /workspace/{workspaceId} Update general settings # Create Game Source: https://docs.hyra.io/api-reference/workspace/post-workspace-games post /workspace/{workspaceId}/games Add a new game to the Home layout # Create a Role Source: https://docs.hyra.io/api-reference/workspace/post-workspace-roles post /workspace/{workspaceId}/roles Create a role # Create a Schedule Source: https://docs.hyra.io/api-reference/workspace/post-workspace-sessions post /workspace/sessions/{workspaceId} # Set GApps Service Account Source: https://docs.hyra.io/api-reference/workspace/post-workspacegoogle post /workspace/google/{workspaceId} Store Google Service account for a workspace # Create Trello Action Source: https://docs.hyra.io/api-reference/workspace/post-workspacetrello-actions post /workspace/trello/{workspaceId}/actions Create a new action # Set Trello board Source: https://docs.hyra.io/api-reference/workspace/post-workspacetrello-boards post /workspace/trello/{workspaceId}/boards Set Trello board for a workspace # Set Trello format Source: https://docs.hyra.io/api-reference/workspace/post-workspacetrello-format post /workspace/trello/{workspaceId}/format Set Trello board format for a workspace # Update Role Source: https://docs.hyra.io/api-reference/workspace/put-workspace-roles put /workspace/{workspaceId}/roles/{roleId} Update a role # Update a Logbook Template Source: https://docs.hyra.io/api-reference/workspace/update-a-logbook-template patch /workspace/logbook/templates/{workspaceId}/{templateId} Update a logbook template # Cancellation Policy Source: https://docs.hyra.io/good-to-know/billing/cancellation-policy Everything you need to know about canceling your Hyra account. We want our customers to have full control over their subscription, which is why we allow you to manage and cancel your account directly in our website - no phone calls or email chains required. ## How to cancel your product You can manage your Hyra Premium subscription from within your Workspace settings. To cancel your subscription, follow these steps: Go to your Workspace, and then click the Settings cog in the bottom left corner. If you're on a mobile device, you'll need to click 'More' and then click 'Settings'. Select the 'Billing' option. Depending on who you bought your subscription from, you may be redirected to another page. If you're billed by Paddle, you'll be shown the option to pause your subscription with the click of a button. If you're billed by Hyra directly (through Stripe) you'll need to pick the correct subscription if you have more than one. Then, click the 'Cancel plan' button. If you're not sure which subscription is for your workspace, please contact Support who will be able to point you in the right direction. At the moment, you'll need to reach out to us to cancel your Auto Ranking subscription. We're working on adding this functionality to our website, but for now, please contact Support who will be able to help you. If you cancel your Hyra Premium subscription, your Auto Ranking will also be cancelled Our legal responsibility is to account owners, which means we cannot cancel an account at the request of anyone else. If for whatever reason you no longer know who the account owner is, [contact us](mailto:team@hyra.io). We will gladly reach out to any current account owners at the email addresses we have on file. ## What happens when you cancel With the exception of Auto Ranking, when you cancel your subscription you'll retain full access to the product until the end of your billing period. After that, you'll lose access to the product until you resubscribe. Workspaces are deleted if inactive for 365 days ## Hyra initiated cancellations We also retain the right to suspend or terminate accounts for any reason at any time, as outlined in our [Terms of Service](https://policies.hyra.io/terms). In practice, this generally means we will cancel your account without notice if we have evidence that you are using our products to engage in abusive behavior. # Refund Policy Source: https://docs.hyra.io/good-to-know/billing/refund-policy Bad refund policies are infuriating. We never want our customers to feel that way, so our refund policy is simple: If you're ever unhappy with our products for any reason, we'll take care of you. ## A fair refund policy Bad refund policies are infuriating. You feel like the company is just trying to rip you off. We never want our customers to feel that way, so our refund policy is simple: If you're ever unhappy with our products for any reason, just contact [our support team](mailto:team@hyra.io) and we'll take care of you. ### Examples of full refunds we'd grant * You accidentally purchased the same product twice. * You accidentally purchased the wrong product. * If you were just charged for your next month of service but you meant to cancel, we're happy to refund that extra charge. * If you were unhappy with your purchase for any reason, we'll refund it in full. ### Examples of partial refunds or credits we'd grant * If you purchased a product at full price and it goes on sale the next day, we'll refund you the difference in price. * If you upgraded your account a few months ago to a higher plan and kept using it in general but you didn't end up using the extra features, projects, or storage space, we'd consider applying a prorated credit towards future months. ## Get in touch At the end of the day, nearly everything on the edges comes down to a case-by-case basis. [Send us a note](mailto:team@hyra.io), tell us what's up, and we'll work with you to make sure you're happy # Why does Hyra cost money? Source: https://docs.hyra.io/good-to-know/billing/why-does-hyra-cost-money Navigating the vast ecosystem of Roblox can be daunting for any developer or creator. From design to moderation, every aspect requires meticulous attention. That's where tools like Hyra, the Roblox human resources manager, come into play. By offering specialised solutions for HR tasks within Roblox, Hyra has become a go-to tool for many. But why is Hyra a paid product? Letโ€™s delve into the reasons: One of the primary reasons lies in the motivation for developers. In the absence of a revenue model, developers often find little reason to innovate and enhance the software. An income stream not only ensures the sustenance of the platform but also inspires developers to continually improve and optimise. As the user base of a product grows, so does the complexity of catering to the diverse needs of its users. With a larger user base, customer satisfaction scores (CSAT) often dip. Charging for the product helps limit its user base to those who genuinely need it, ensuring better service and maintaining high CSAT scores. Developing and maintaining a software product requires capital. Without adequate funds, it becomes challenging to hire skilled professionals, invest in research and development, or even keep the software up-to-date with the latest tech standards. For any product or service, having a predictable cash flow is vital. It ensures that the team behind the product can plan long-term, secure resources, and make informed decisions. Without a stable revenue stream, it's challenging to make future predictions or commitments, hampering innovation. When a platform is available for free, it often becomes a breeding ground for misuse. With a rise in the number of users exploiting or abusing the system, the costs for moderation and devops monitoring also shoot up. Charging users helps deter misuse and ensures that those who are on the platform have a genuine need and intent. Free products often get overwhelmed with a vast number of users, making it tough to maintain the quality of service. By charging for Hyra, the team can ensure that only serious users access the service, maintaining the platform's integrity. With a paid model, the Hyra team can guarantee regular software updates, bug fixes, and round-the-clock support, something not feasible with a free model. Roblox developers value the confidentiality and safety of their data. A paid model allows Hyra to invest in robust security measures, ensuring that user data remains protected. With additional resources from a paid model, the Hyra team can work on custom features, catering to the specific needs of different developers and communities. Funds can be reinvested into building a community around Hyra, offering tutorials, webinars, and fostering collaboration among Roblox developers. # Security Source: https://docs.hyra.io/good-to-know/security Discover how Hyra prioritises security. Learn about our security measures and how to report potential vulnerabilities. For inquiries about Hyra's architecture, data handling practices, or any specific questions regarding our data processing methods, please contact us at [team@hyra.io](mailto:team@hyra.io). We are always available to address your queries. ## Maintaining Data Security * Our infrastructure is hosted on Railway, which is powered by Google Cloud. * Our database is hosted on Hetzner. * Our marketing website is hosted on Vercel. * We utilise Cloudflare for DDoS attack protection. * Data storage and compute locations are exclusively within the European Union or United Kingdom. * All data is encrypted both at rest and during transmission. * Daily encrypted backups of data are performed, retained for 30 days, and stored across three different locations. ## Reporting Vulnerabilities At Hyra, we hold security as a fundamental principle and appreciate contributions from external security experts who assist us in safeguarding the privacy and security of our users and systems. Please report any security vulnerabilities or suspicions to the contact details provided below. ### Guidelines for External Security Researchers We expect all security researchers to: * Conduct their research responsibly, ensuring no privacy breaches, service degradation, production system disruptions, or data destruction (including denial of service). * Provide clear, concise reports, and include a proof-of-concept if possible. * Limit interactions to personal or designated test accounts. Do not access or alter our or our users' data without our express permission. * Maintain confidentiality of any discovered vulnerabilities until we have had a 30-day period to address the issue. In response to your adherence to these guidelines, we pledge to: * Refrain from legal action related to your research. * Collaborate with you for a swift resolution (including acknowledging your report within 72 hours). While we donโ€™t have a formal bug bounty or security program, we may choose to reward researchers who adhere to our policy and uncover a confirmed high-severity vulnerability, on a case-by-case basis. ### Contact Information for Security Concerns To report a security vulnerability, please email [sam@hyra.io](mailto:sam@hyra.io). Sam will address security-related inquiries within 48 hours. # Quickstart Source: https://docs.hyra.io/introduction Everything you need to start using Hyra Hyra Home Hyra is the all-in-one tool for managing your staff. Everything you need to track, monitor, discipline, reward and manage your staff is here. The quickstart guide walks you through the basics of Hyra, and how to get started. A quick guide on how to install our Activity Tracking into your game Set up instructions for creating sessions Information on how to use Views - the customisable way to view your staff How to use logbook to manage disciplinary actions and promotions # Activity Tracking Source: https://docs.hyra.io/using-hyra/activity-tracking Hyra's automatic activity tracking feature allows you to track activity from your staff. Activity Tracking ## View your Activity You can view your Activity by going to [https://app.hyra.io](https://app.hyra.io) and navigating to your Workspace. From there, click the Activity clock icon in the side navigation.