Privacy Policy

Home

Last updated:

This page says what information Beyond Volleyball League (BVL) collects, why, who else gets it, and how to ask us to change or remove it. It covers the website bvl.gg and the BVL Discord bot. "We" means BVL, a free league for a Roblox volleyball game, run by its staff.

The short version

  • What we keep: names, Roblox and Discord usernames and IDs, team, match and stats records, and any email you send us.
  • What is public: team names, rosters (player names and ranks), match times and results, player and season stats, and the staff on each match with their job, Discord ID, a link to their Discord profile and, for staff on a team's roster this season, the Roblox username written on that roster. The public pages do not show players' Discord IDs, except that a player who staffs a match is shown on that match's page with their Discord ID.
  • Who else gets it: Discord, Clerk, hCaptcha, Iconify, Bloxlink, Roblox and a few other services that help run the league. Your browser contacts Clerk on the staff sign-in and dashboard pages, and can keep doing so on other pages after you have opened one of them. It contacts Iconify on most pages and hCaptcha on the team sign-up form.
  • The site has no ads or tracking tools of its own and never sells your information.
  • To get a copy of your information or have it removed, open a ticket in the BVL Discord (opens in a new tab) or email kols@bvl.gg. We answer as soon as we can.

What we collect and where it comes from

Only league staff have a use for signing in: the "Are you an admin?" link on the home page leads to the staff sign-in. Players, captains and spectators need no account. A captain signs up a team with a form.

  • Staff sign-in: staff sign in with their Discord account through a service called Clerk, which runs the sign-in form. Clerk tells us the staff member's Discord ID. The sign-in form is Clerk's, so Clerk may keep the email address on your Discord account and whatever else you give it there. Anyone can open the sign-in page, but the dashboard only opens when the Discord account linked to the sign-in is on the league's list of staff: anyone else is sent to a page saying the dashboard is for league staff, and the dashboard's front page also ends the session of a signed-in account without a staff role.
  • Team sign-up form: the team name, division and colour, the captain's and vice captain's Roblox usernames, the Roblox usernames of the team's other members, a Discord username the captain types in (we do not check it), and a note of up to 150 characters. Captains: only type in people who are on your team. We keep the form and post it, with all its details, to a private staff channel on Discord.
  • Linking Roblox and Discord: when staff approve a team sign-up, or check whether a player or a Discord member is verified, we ask Roblox and Bloxlink which accounts go together. We send a Roblox name or ID, or a Discord ID, and get the matching IDs back. We save the match so we do not have to ask again. The league can switch on a check for the Suspended role. While it is on, before staff put a player on a team, rename a player or link a player to a different Discord account, we read which roles that player's Discord accounts hold in the BVL Discord, so that nobody holding the Suspended role is put on a team. Except for an edit by hand that gives a player a different Discord account and keeps the name, we first ask Roblox and Bloxlink for the accounts linked to the player's name. An approved team gets a team role in the BVL Discord, which we give to each member whose Discord account we found.
  • Players, teams and stats: a player's name, rank, and the teams, divisions and seasons they have been in, plus counts of what each player did in each match and in each season. Team rosters also hold each player's Discord ID from that lookup.
  • Team logos: a staff member can upload a picture for a team. The site makes a new 512 by 512 picture from it, and the league's records keep that new picture with the Discord ID of the staff member who set it. The file that was uploaded is not kept.
  • Matches: the staff assigned (Discord IDs and jobs: referee, media or stats tracker), the match's Discord channel, a Roblox private server link, the MVP, a video link if there is one, a link to the match's Google Calendar event, and any time a captain proposes (their Discord ID and display name, team, time and time zone).
  • Staff and bans: each staff member's Discord ID and role; for a ban, the username (kept in lower case), the type and when it ends; for each reviewed sign-up, the reviewer's Discord ID; for the last refresh of the Playoffs draw that a staff member asked for, that staff member's Discord ID; for the Playoffs settings, the Discord ID of the staff member who saved them last; for the setting that opens or closes team sign-up, the Discord ID of the staff member who last changed it. The Discord IDs of the people with full permissions on the site are also listed in files in the league's code, which is kept on GitHub.
  • Email: if you email kols@bvl.gg, your email address, the name on your email account and what you write go to the league's mailbox. Google runs that mailbox for the league. Kols, who owns the league, reads it.
  • Apart from that mailbox, the league's own records hold no email addresses, IP addresses, devices, avatars, countries or browser details. People can type anything into the free-text boxes, so those can hold more.

What we use it for

  • Running matches (Discord channels, roles, schedules, reminders, direct messages to captains, referees and stats trackers, and channel posts that ping the timekeeper role), checking who is who, reviewing team sign-ups, keeping the ban list, showing rosters, stats and results, deciding what staff can do, answering questions and requests sent by ticket or email, and finding and fixing mistakes.
  • We do not use it for advertising or tracking. We use it because running a league that people choose to join needs this information.

Who else handles it

  • Discord: the bot posts in match channels, makes roles, mentions people and sends direct messages, and staff sign in through it. Discord's privacy policy (opens in a new tab)
  • Clerk: runs staff sign-in and keeps the staff accounts. Its code loads only on the staff sign-in page (bvl.gg/sign-in) and the staff dashboard (bvl.gg/dashboard), not on the pages everyone else uses, so Clerk receives your IP address and browser details when you open one of those. It can also receive them on other pages, in a tab where you opened the sign-in page: that tab keeps Clerk's code loaded as you follow the site's links, until the page is reloaded. A staff member who is already signed in can also have them passed to Clerk by the site: when a page such as Teams, Matches or Stats loads the league's data through the site, the site can ask Clerk to renew their sign-in, and it sends Clerk the details of that request. If you have never opened the sign-in page or the dashboard, the pages everyone else uses send nothing to Clerk. It may handle information anywhere in the world, including the United States. Clerk's privacy policy (opens in a new tab)
  • hCaptcha: checks that a person, not a robot, fills in the team sign-up form. Your browser loads it from hCaptcha when that form opens, and by its own policy hCaptcha receives your IP address and how your mouse, scrolling, keys and touches move. It is run from the United States. Our server then asks hCaptcha whether your check passed. hCaptcha's privacy policy (opens in a new tab)
  • Iconify: draws the icons on the site. When a page with icons opens, which is most pages, your browser asks Iconify's servers for them by name (api.iconify.design, or api.simplesvg.com and api.unisvg.com if that one does not answer). Iconify receives your IP address and browser details, the names of the icons asked for, and the fact that the request comes from bvl.gg. Iconify's privacy policy (opens in a new tab)
  • Bloxlink: gets a Roblox ID or Discord ID from us and returns the matching Roblox or Discord IDs. Bloxlink's privacy policy (opens in a new tab)
  • Roblox: gets a Roblox name or ID when we look up an account. The league's Roblox game servers also ask our server for teams, with each player's Discord ID, and for matches.
  • A stats service the bot uses for its stats command gets a Roblox user ID.
  • Google Calendar: gets match events with team names, match number, division and match link. No player information goes to it. The events are marked public, and the Matches page links to the calendar.
  • Google (email): runs the league's mailbox, kols@bvl.gg. It gets the email address, name and message of anyone who writes to it, and may keep them in any country where it has data centres. Google's privacy policy (opens in a new tab)
  • A small program of ours, proxy.bvl.gg, passes messages on to Discord channels. Another program sends it the message and the Discord address to post it to, and it either posts the message at once or holds it, with that address, for a short while until Discord takes it. If Discord does not accept a message, it keeps trying for a few minutes and then gives up on it. Its log can keep a copy of a message that failed. It also counts, for 15 minutes, how many requests come from each sender's internet address, to limit how many one sender can make. Nothing in the site, the bot or the server that keeps the league's records sends it anything, so what goes through it depends on the program that calls it.
  • Challonge: our server asks Challonge for the playoff draw shown on the Playoffs page. It sends the league's tournament ID and key and nothing about you. The Playoffs page links to Challonge, which opens only when you click it.
  • Hostinger: rents the servers that the site, the bot and the league's records run on.
  • GitHub: keeps the league's code, which includes files that list the Discord IDs of the people with full permissions on the site.
  • Links on the site to Discord, Roblox and Google Calendar, and the address bvl.gg/mediapack, which passes you on to a shared Google Drive folder, open those sites only when you click them.
  • The league does not sell information, and nothing on the site sends it to advertisers or data brokers. We share what we get from Discord with no one except the services above, anyone the law requires us to tell, and anyone you ask us to share it with.

What is public on the site

Anyone can see, without signing in: team names, rosters (player names and ranks), divisions, match times and results, and player and season stats. A team's page marks players who have linked a Discord account as verified, without saying which account. Each match page also lists its staff, with their job, their Discord ID, a link to their Discord profile and, for staff on a team's roster this season, the Roblox username written on that roster (the league's own copy, which does not change when they rename themselves on Roblox). Staff change the name shown there by changing it on the team's roster and its sign-up form. The public pages do not show players' Discord IDs, except that a player who staffs a match is shown on that match's page with their Discord ID. A team's logo, if staff have uploaded one, is shown to everyone on the Teams, Matches and Playoffs pages and on each team's and match's page. Names and stats stay public for as long as they are on the site.

Staff pages need a staff sign-in. A person signed in with a staff role sees more than the public does, such as players' Discord IDs, private server links and schedule proposals.

Staff Discord channels and the backup

  • Some Discord channels are only for staff. They get each team sign-up form with all its details, records of changes made on the site with the Discord ID of who made them and what was sent, and error alerts, which can include usernames and Discord IDs. Our software never deletes anything in them.
  • Every night, and again each time the backup program restarts, a full copy of the league's records is saved to a private staff channel on Discord.
  • We also keep log files on the server. They can hold Roblox IDs, usernames and Discord IDs, for example from role changes and account lookups. Our own software does not log visitors' IP addresses. Discord keeps channel messages under its own rules.

Cookies and browser storage

  • The site itself has no analytics, advertising or tracking tools and sets no cookies of its own on the pages everyone else uses.
  • On the Stats page, the columns you show, take away and put in order with More columns are kept in this browser's storage, under bvl.stats.columns, so the tables open the same way next time. It stays on this device until you press Reset or clear this site's data in your browser, and is never sent to us.
  • On the staff dashboard, the theme you pick (Light, Dark or Match my system) is kept in a cookie called bvl-dashboard-theme for a year, and on your staff account at Clerk. The cookie is cleared the next time a staff page finds nobody signed in.
  • Clerk sets cookies when you open the staff sign-in page or the staff dashboard: several of its own on bvl.gg for the sign-in, and it or Cloudflare may set more on Clerk's sign-in address for this site. Clerk decides how long they last. Your browser also keeps a note of Clerk's settings for this site. A browser that has never opened those pages gets none of these from the pages everyone else uses. A staff member who is already signed in can get their sign-in renewed, and Clerk's cookies set again, when they open the staff dashboard or sign-in page, and also when a page such as Teams, Matches or Stats loads the league's data through the site.
  • On the team sign-up form, hCaptcha adds a short-lived Cloudflare cookie, and may set its own cookies for its check, anonymous statistics and accessibility settings. This site is protected by hCaptcha, and hCaptcha's Privacy Policy (opens in a new tab) and hCaptcha's Terms of Service (opens in a new tab) apply.
  • Iconify's code keeps the icons it fetched in the page's memory only, not in cookies or in your browser's storage.

How long we keep things

  • A player's place on a team and a staff member's role are kept until staff remove them. At the end of a season, a person with access to the league's records runs a script that copies divisions, teams (with their rosters and the Discord IDs saved there), matches, match stats, season stats, team sign-ups and each player's team entries for that season to an archive and removes them from the live site. The archive has no end date: it is kept until you ask us to remove what it holds about you, or until the league no longer needs it. Staff cannot delete team sign-up forms from the dashboard, so they are kept until you ask us to remove them, or until the league no longer needs them.
  • Saved Roblox-to-Discord matches are meant to last 30 days, but some stay longer, because one is deleted only when someone looks it up after it has expired or when a person with access to the league's records runs a cleanup. Bans are removed after they end, the next time someone checks the ban. Bans that do not end are kept until staff lift them.
  • The log files of the server that keeps the league's records and of the bot are each kept as five files of 10 MB per log; when they are full, the oldest is dropped. They have no age limit.
  • Emails to kols@bvl.gg have no set end date: they stay in the mailbox until Kols deletes them or the league no longer needs them. If you ask us to remove your information, Kols deletes your emails too.
  • Staff channel messages and the backup copies in Discord have no set end date: they are kept until the league no longer needs them. If staff delete a record from the live site, it can still be in older backup copies and staff channel messages. What Clerk, Discord, hCaptcha, Iconify, Bloxlink, Roblox, Google, GitHub and Hostinger hold follows their own rules.

Your choices

  • You can ask us for a copy of your information, to correct it, to remove it, to limit how we use it, to object to how we use it, or to get it in a form you can take elsewhere. Open a ticket in the BVL Discord (opens in a new tab) or email kols@bvl.gg. We answer as soon as we can. There is no button for this yet, so a staff member does it by hand.
  • If you ask us to remove you, staff can take you off your team's roster. That removes the Discord ID saved there, your team role in the BVL Discord and your empty rows in the stats of the team's matches not yet played. Past match results stay, because they are also the other team's record, and so do the stats already recorded for you in the team's matches, with your name, and your entries, empty or not, in the stats of cancelled matches. The counts already recorded for you in the season stats stay too, with your name beside them on the Stats page (bvl.gg/stats) until the season ends. When a season ends, those season stats and the team's match stats, your name included, are copied into the archive of past seasons. A record of your name, and the ID made from it, with no team, can stay in the league's records until a person with access to them deletes it. A team sign-up form has to be taken out by a person with access. So do the rosters of past seasons, which sit in the archive. These are not removed one by one: copies in old backups, messages in private staff channels on Discord (such as the copy of a team sign-up form and the records of changes made on the site), the log files on our server (kept until newer lines push them out), and the saved lookup of your Roblox account (meant to last 30 days, but it can stay longer). Kols deletes the emails you sent to kols@bvl.gg.
  • Discord, Roblox, Bloxlink, Clerk and hCaptcha hold their own copies. Ask them on their own pages.
  • If the law says we must tell you that someone reached your information without permission, we will. If you are in the EU or UK, you can also complain to your country's data protection authority.

Age

  • You must be 13 or older to use this site, or older if the law where you live sets a higher age. That is Discord's own minimum age, and the league runs on Discord. Do not type in details of anyone younger.
  • If staff learn that a member is younger than that, staff take them off their team's roster. Then a person with access to the league's records deletes three more things: the record of their name, and the ID made from it, left behind with no team; their name on any team sign-up form; and their name in what the archive of past seasons already holds. Kols also deletes any emails they sent to kols@bvl.gg.
  • These stay: past match results; the stats already recorded for them in the team's matches, with their name, and their entries, empty or not, in the stats of cancelled matches; their name, with the counts already recorded for them, in the season stats that anyone can see on the Stats page (bvl.gg/stats) until the season ends; messages in private staff channels on Discord, such as the copy of a team sign-up form and the records of changes made on the site; the log files on our server, which can hold their name and are kept until newer lines push them out; the saved lookup of their Roblox account, which holds their Roblox name and ID and is meant to last 30 days but can stay longer; and the backups saved to a private staff channel every night. Backups made before the deletion still hold what was deleted.
  • When a season ends, the season stats and the team's match stats, their name included, are copied into the archive of past seasons.
  • We try to write this page so a 13-year-old can follow it. If something is not clear, open a ticket in the BVL Discord (opens in a new tab) or email kols@bvl.gg.

Where it is stored

The site, the bot and the league's records run on a server rented from Hostinger in the United States. The server and several of the services above are in the United States, and Clerk, and Google for the league's mailbox, may handle information anywhere in the world, so if you live elsewhere, including the EU and the UK, your information leaves your country. hCaptcha says it uses the Data Privacy Framework and standard contractual clauses for transfers from the EU, the UK and Switzerland.

Changes to this policy

We change this page when what the league does changes. We announce changes in the BVL Discord (opens in a new tab), and the "Last updated" date at the top shows when.