No playlists yet
Upload a playlist and assign it to a folderNo scenarios yet
Add scenarios with their share codes to launch them directly, and drop them into folders like your playlistsQueue is empty
Add blocks to build your sessionLoading…
No Aimbeast playlists yet
Add playlists with their workshop URL or codeExport
Download all your playlists and folder structure as a .zip. Includes the JSON files and a manifest so everything can be restored exactly.
Import
Drop a previously exported .zip to restore your library. Folders and playlists will be recreated in Supabase.
Supabase setup guide
- Go to supabase.com and create a free account
- Create a new project, pick a name and region
- Go to Project Settings → API and copy your Project URL and anon key
- Open SQL Editor and run the table setup queries
- Paste your URL and key below and hit Save
create table if not exists folders (
id uuid default gen_random_uuid() primary key,
name text not null,
position integer,
created_at timestamptz default now()
);
create table if not exists playlists (
id uuid default gen_random_uuid() primary key,
name text not null,
folder_id uuid references folders(id) on delete set null,
game_tag text,
notes text,
file_data jsonb,
share_code text,
pinned boolean default false,
position integer,
created_at timestamptz default now()
);
create table if not exists scenario_folders (
id uuid default gen_random_uuid() primary key,
name text not null,
position integer,
created_at timestamptz default now()
);
create table if not exists scenarios (
id uuid default gen_random_uuid() primary key,
name text not null,
folder_id uuid references scenario_folders(id) on delete set null,
share_code text,
game_tag text,
notes text,
pinned boolean default false,
position integer,
created_at timestamptz default now()
);
create table if not exists sens (
id uuid default gen_random_uuid() primary key,
scenario_type text not null unique,
cm360 numeric,
updated_at timestamptz default now()
);
create table if not exists aimbeast_folders (
id uuid default gen_random_uuid() primary key,
name text not null,
position integer,
created_at timestamptz default now()
);
create table if not exists aimbeast_playlists (
id uuid default gen_random_uuid() primary key,
name text not null,
folder_id uuid references aimbeast_folders(id) on delete set null,
game_tag text,
notes text,
workshop_url text,
playlist_code text,
pinned boolean default false,
position integer,
created_at timestamptz default now()
);
Already have these tables from an older version? Run this too — it's safe to run more than once and won't touch existing data:
alter table folders add column if not exists position integer;
alter table playlists add column if not exists pinned boolean default false;
alter table playlists add column if not exists position integer;
alter table scenarios add column if not exists pinned boolean default false;
alter table scenarios add column if not exists position integer;
alter table scenarios add column if not exists folder_id uuid references scenario_folders(id) on delete set null;
alter table aimbeast_folders add column if not exists position integer;
alter table aimbeast_playlists add column if not exists pinned boolean default false;
alter table aimbeast_playlists add column if not exists position integer;
New: scenario folders. If you already have a scenarios table, run the create table if not exists scenario_folders block above once too — it won't touch anything else.