use std::{env, fs, io::{self, stdin, Read, Write}, path::Path}; fn main() { let mut rblxpath = String::new(); if let Some(lad) = env::var("LOCALAPPDATA").ok() { let temprbx_lad = format!("{}\\Roblox", lad); if Path::new(&temprbx_lad).is_dir() { rblxpath = temprbx_lad; } } else if let Some(pfx86) = env::var("ProgramFiles(x86)").ok() { let temprbx_pfx86 = format!("{}\\Roblox", pfx86); if Path::new(&temprbx_pfx86).is_dir() { rblxpath = temprbx_pfx86; } } if rblxpath != "" { println!("Found path: {}", rblxpath); } else { println!("Roblox not found (Die)"); return; } println!("What FPS would you like to cap the fps to? (0 for no cap at all)"); let _ = io::stdout().flush(); let mut input = String::new(); stdin().read_line(&mut input).expect("invalid input, try again"); if let Some('\n')=input.chars().next_back() { input.pop(); } if let Some('\r')=input.chars().next_back() { input.pop(); } let fps = input.parse::().unwrap(); let desired_fps = match fps { 0 => 5588562, _ => fps }; println!("fps cap will be set to {desired_fps}"); let just_make_this_work = format!("{{\"FFlagHandleAltEnterFullscreenManually\":\"False\",\"DFIntTaskSchedulerTargetFps\":{desired_fps},\"FFlagEnableInGameMenuChromeABTest3\":\"False\",\"FFlagGameBasicSettingsFramerateCap5\":\"False\",\"FFlagTaskSchedulerLimitTargetFpsTo2402\":\"False\"}}"); let fflag_contents = just_make_this_work.as_str(); let versions = format!("{}\\Versions\\", rblxpath); for folder in fs::read_dir(versions).unwrap() { let cur_folder = folder.unwrap().path().display().to_string(); if cur_folder.to_lowercase().contains("version") { let executable = format!("{}\\RobloxPlayerBeta.exe", cur_folder); if Path::new(&executable).is_file() { let cs_folder = format!("{}\\ClientSettings", cur_folder); if !Path::new(&cs_folder).is_dir() { fs::create_dir(&cs_folder).ok(); println!("Created ClientSettings folder in {}", cur_folder); } else { println!("ClientSettings folder already exists in {}", cur_folder); } let cas_json = format!("{}\\ClientAppSettings.json", cs_folder); fs::write(cas_json, fflag_contents).ok(); println!("Wrote ClientAppSettings.json to {}", cur_folder) } } } println!("Press enter to exit"); let _ = io::stdin().read(&mut [0u8]).unwrap(); }