json cfg;
bool fullBright, fogEnable, fastDrop, noHurtCam, noCamDist, noBoatRotation,
noCamSleep, placeCam, unlockMarket, noSlowDown, fastFall,
offWaterTrigger, offSlowdownTrigger, noclip, xrayCam, look360,
clickAutoMine, fastBridge, blockReach, offDrown, creativeFly, hitBox, enableFov, killAura,
alwaysSprinting, killItems, mobAura, ladderFly, antiFireball, showPosition, deathPosition,
antiInvis, playerNear, derp, targetLock, step, antiBlind, noEmoteCooldown, noBlur, showPaperdoll,
useGeyserCooldown, emulateNativeAttack, addLevelMe,
removeLevelMe, damageFly, strafe, noJumpDelay, autoClicker, xrayDefault,
forceCreativeFly, antiKnockback, noChickens, noCods, noCows, noGoats,
noPigs, noPiglins, noPufferfishes, noRabbits, noSalmons, noSheeps,
noZombievillagers, noCaveVignette, esp, espNametag, espBox, espLine,
espDistance, espHealth, espPlatform;
bool noAllays = true;
bool noArmadillos = true;
bool noAxolotls = true;
bool noBats = true;
bool noBees = true;
bool noCamels = true;
bool noCats = true;
bool noHorses = true;
bool noVillagers = true;
bool noSnowMan = true;
bool noIronGolem = true;
bool noDonkeys = true;
bool noCopperGolems = true;
bool noDolphins = true;
bool noFoxes = true;
bool noFrogs = true;
bool noGlowSquids = true;
bool noHappyGhasts = true;
bool noLlamas = true;
bool noOcelots = true;
bool noPandas = true;
bool noParrots = true;
bool noSniffers = true;
bool noSquids = true;
bool noStriders = true;
bool noTadpoles = true;
bool noTropicalfishes = true;
bool noTurtles = true;
bool noWanderingtraders = true;
bool noWolfs = true;
bool noZombiepiglins = true;
float fov = 0;
int fogState = 0;
int speedValue = 1;
int waterSpeedValue = 1;
int lavaSpeedValue = 1;
float jumpValue = 1;
float gravityValue = -0.08;
int fontSize = 5;
int myMaxPlayers = 100;
float offsetTextPosX = 0;
float offsetTextPosY = 0;
float offsetTextPlayerNearPosX = 0;
float offsetTextPlayerNearPosY = 0;
float killRange = 4;
float rotationsRange = 7;
float mobAuraRange = 4;
int maxKillTick = 3;
int maxMobAuraTick = 3;
int maxAutoClickTick = 5;
bool swing = true;
bool rotations = true;
bool hurtCheck = true;
int auraType = 1;
bool antiBot = true;
float hitBoxValue = 0.6;
std::vector<std::string> friendList;
std::vector<std::string> botList;
bool xrayDiamond = true;
bool xrayIron = true;
bool xrayGold = true;
bool xrayCoal = true;
bool xrayCopper = false;
bool xrayLapis = true;
bool xrayEmerald = true;
bool xrayRedstone = true;
bool xrayAmethyst = false;
bool xrayNetherite = true;
bool xrayQuartz = false;
bool xrayObsidian = false;
bool xrayBarrel = false;

bool inMenu = true;
bool readMe = false;
bool isLANGame = false;
bool inHudScreen = false;
bool inChatScreen = false;
bool manageWorldsScreen = false;
float playerDeathPosX = 0;
float playerDeathPosY = 0;
float playerDeathPosZ = 0;
int pageId = 7;

const char* EspBoxType[] = {"2D", "3D"};
const char* Chams[] = {"OFF", "Default", "Shading", "Wireframe", "Outline", "Visibility Check Outline",  "Visibility Check Shading", "Visibility Check Shading + Outline"};
const char* Perspective[] = {"OFF", "First Person", "Third Person Back", "Third Person Front"};
const char* AuraType[] = {"Single", "Nearest", "Multi"};
const char* AuraTypeGeyser[] = {"Single", "Nearest"};
const char* NearType[] = {"Text Only", "Circle Only", "Text + Circle"};
const char* Hotkeys[] = {"OFF", "Panic", "Always Sprinting", "No SlowDown", "Fast Fall", "OFF Drowning", "Step", "Ladder Fly", "Noclip", "No Water", "No Web", "Force Creative Fly", "KillAura", "HitBox", "Swing", "Rotations", "Target Lock", "MobAura", "Kill Near Items", "Anti Fireball", "Auto Click Build", "Enable Fov", "Place Camera", "Xray Camera", "Xray Caves", "Freelook", "Damage Fly", "Strafe", "Auto Clicker","Xray"};
const char* FogStatement[] = {"OFF", "Clear", "Weather", "Water", "Lava", "Lava (Fire Res)", "Powder Snow"};
const char* AntiKBType[] = {"OFF", "Full", "Only Y"};

struct PlayerStruct {
	std::string nickname;
	std::string nameTag;
    vec3_t* position;
	vec2_t hitBox;
	int health;
	int hurtTime;
	int platform;
    bool isProtected;
	bool isFriend;
	bool isBot;
};

struct XrayOres {
    std::string oreName;
    vec3_ti orePos;
	vec3_t orePosFloat;
    ImU32 oreColor;
};

vec3_t CameraPos;
ClientInstance *CI = NULL;
LocalPlayer *localPlayer = NULL;
vec2_t auraAngle(0, 0);
bool notSaved = true;
vec2_t saveAngle(0, 0);
float saveYHeadRot;
Player *nearestTarget = NULL;
Player *nearestKillTarget = NULL;
Mob *nearestMob = NULL;
float playerPosX = NULL;
float playerPosY = NULL;
float playerPosZ = NULL;
int currentKillTick = 1;
int currentAutoClickTick = 1;
int currentMobTick = 1;
std::vector<PlayerStruct> nearPlayerList;
int removedCount = 0;
std::vector<XrayOres> renderOresESP;
std::vector<std::string> nearFriendList;
std::vector<std::string> nearPlayer;
bool fireballRotation = false;
bool itemRotation = false;
std::vector<Player*> playerList;
std::vector<Mob*> mobList;
bool canKillAuraDamage = true;
bool canMobAuraDamage = true;
bool canClick = true;
vec3_t globalPlayerPos(0, 0, 0);
vec2_t globalPlayerRot(0, 0);
float derpGradys = 0;
float globalPlayerFov = 0;
bool activatedCreativeFly = false;
bool activatedForceCreativeFly = false;
bool doHandleAttack = false;
bool onFunctionSound = false;
bool offFunctionSound = false;
bool errorFunctionSound = false;
bool isLoaded = true;
std::string inMemoryFunction;
bool rebuildChunkGeometry = false;
int nearActorId = 0;

int hotkeyVolumeUp = 0;
int hotkeyVolumeDown = 0;
int hotkeyBack = 0;
int hotkey_Q = 0;
int hotkey_W = 0;
int hotkey_E = 0;
int hotkey_R = 0;
int hotkey_T = 0;
int hotkey_Y = 0;
int hotkey_U = 0;
int hotkey_I = 0;
int hotkey_O = 0;
int hotkey_P = 0;
int hotkey_A = 0;
int hotkey_S = 0;
int hotkey_D = 0;
int hotkey_F = 0;
int hotkey_G = 0;
int hotkey_H = 0;
int hotkey_J = 0;
int hotkey_K = 0;
int hotkey_L = 0;
int hotkey_Z = 0;
int hotkey_X = 0;
int hotkey_C = 0;
int hotkey_V = 0;
int hotkey_B = 0;
int hotkey_N = 0;
int hotkey_M = 0;
int hotkey_numpad_0 = 0;
int hotkey_numpad_1 = 0;
int hotkey_numpad_2 = 0;
int hotkey_numpad_3 = 0;
int hotkey_numpad_4 = 0;
int hotkey_numpad_5 = 0;
int hotkey_numpad_6 = 0;
int hotkey_numpad_7 = 0;
int hotkey_numpad_8 = 0;
int hotkey_numpad_9 = 0;

std::string readFile(const std::string& filename) {
    std::ifstream fileStream(filename, std::ios::in | std::ios::binary);
    std::ostringstream contentStream;
    contentStream << fileStream.rdbuf();
    return contentStream.str();
}

void writeFile(const std::string& filename, const std::string& content) {
    std::ofstream fileStream(filename, std::ios::out | std::ios::binary);
    fileStream.write(content.c_str(), content.size());
}

void saveConfig(std::string path) {
	cfg["espPlatform"] = espPlatform;
	cfg["espHealth"] = espHealth;
	cfg["espDistance"] = espDistance;
	cfg["espLine"] = espLine;
	cfg["espBox"] = espBox;
	cfg["espNametag"] = espNametag;
	cfg["esp"] = esp;
	cfg["noCaveVignette"] = noCaveVignette;
	cfg["noZombievillagers"] = noZombievillagers;
	cfg["noZombiepiglins"] = noZombiepiglins;
	cfg["noWolfs"] = noWolfs;
	cfg["noWanderingtraders"] = noWanderingtraders;
	cfg["noTurtles"] = noTurtles;
	cfg["noTropicalfishes"] = noTropicalfishes;
	cfg["noTadpoles"] = noTadpoles;
	cfg["noStriders"] = noStriders;
	cfg["noSquids"] = noSquids;
	cfg["noSniffers"] = noSniffers;
	cfg["noSheeps"] = noSheeps;
	cfg["noSalmons"] = noSalmons;
	cfg["noRabbits"] = noRabbits;
	cfg["noPufferfishes"] = noPufferfishes;
	cfg["noPiglins"] = noPiglins;
	cfg["noPigs"] = noPigs;
	cfg["noParrots"] = noParrots;
	cfg["noPandas"] = noPandas;
	cfg["noOcelots"] = noOcelots;
	cfg["noLlamas"] = noLlamas;
	cfg["noHappyGhasts"] = noHappyGhasts;
	cfg["noGoats"] = noGoats;
	cfg["noGlowSquids"] = noGlowSquids;
	cfg["noFrogs"] = noFrogs;
	cfg["noFoxes"] = noFoxes;
	cfg["noDolphins"] = noDolphins;
	cfg["noCows"] = noCows;
	cfg["noCopperGolems"] = noCopperGolems;
	cfg["noCods"] = noCods;
	cfg["noChickens"] = noChickens;
	cfg["noCats"] = noCats;
	cfg["noCamels"] = noCamels;
	cfg["noBees"] = noBees;
	cfg["noBats"] = noBats;
	cfg["noAxolotls"] = noAxolotls;
	cfg["noArmadillos"] = noArmadillos;
	cfg["noAllays"] = noAllays;
	cfg["noDonkeys"] = noDonkeys;
	cfg["hurtCheck"] = hurtCheck;
	cfg["antiKnockback"] = antiKnockback;
	cfg["forceCreativeFly"] = forceCreativeFly;
	cfg["xrayBarrel"] = xrayBarrel;
	cfg["xrayObsidian"] = xrayObsidian;
    cfg["xrayDiamond"] = xrayDiamond;
    cfg["xrayIron"] = xrayIron;
    cfg["xrayGold"] = xrayGold;
    cfg["xrayCoal"] = xrayCoal;
    cfg["xrayCopper"] = xrayCopper;
    cfg["xrayLapis"] = xrayLapis;
    cfg["xrayEmerald"] = xrayEmerald;
	cfg["xrayRedstone"] = xrayRedstone;
    cfg["xrayAmethyst"] = xrayAmethyst;
    cfg["xrayNetherite"] = xrayNetherite;
    cfg["xrayQuartz"] = xrayQuartz;
	cfg["noIronGolem"] = noIronGolem;
	cfg["noSnowMan"] = noSnowMan;
	cfg["noVillagers"] = noVillagers;
	cfg["noHorses"] = noHorses;
	cfg["xrayDefault"] = xrayDefault;
	cfg["maxAutoClickTick"] = maxAutoClickTick;
	cfg["autoClicker"] = autoClicker;
	cfg["noJumpDelay"] = noJumpDelay;
	cfg["strafe"] = strafe;
	cfg["damageFly"] = damageFly;
	cfg["emulateNativeAttack"] = emulateNativeAttack;
	cfg["creativeFly"] = creativeFly;
	cfg["useGeyserCooldown"] = useGeyserCooldown;
	cfg["showPaperdoll"] = showPaperdoll;
	cfg["noBlur"] = noBlur;
	cfg["noEmoteCooldown"] = noEmoteCooldown;
	cfg["antiBlind"] = antiBlind;
	cfg["hotkey_numpad_0"] = hotkey_numpad_0;
    cfg["hotkey_numpad_1"] = hotkey_numpad_1;
    cfg["hotkey_numpad_2"] = hotkey_numpad_2;
    cfg["hotkey_numpad_3"] = hotkey_numpad_3;
    cfg["hotkey_numpad_4"] = hotkey_numpad_4;
    cfg["hotkey_numpad_5"] = hotkey_numpad_5;
    cfg["hotkey_numpad_6"] = hotkey_numpad_6;
    cfg["hotkey_numpad_7"] = hotkey_numpad_7;
    cfg["hotkey_numpad_8"] = hotkey_numpad_8;
    cfg["hotkey_numpad_9"] = hotkey_numpad_9;
	cfg["hotkey_Q"] = hotkey_Q;
    cfg["hotkey_W"] = hotkey_W;
    cfg["hotkey_E"] = hotkey_E;
    cfg["hotkey_R"] = hotkey_R;
    cfg["hotkey_T"] = hotkey_T;
    cfg["hotkey_Y"] = hotkey_Y;
    cfg["hotkey_U"] = hotkey_U;
    cfg["hotkey_I"] = hotkey_I;
    cfg["hotkey_O"] = hotkey_O;
    cfg["hotkey_P"] = hotkey_P;
    cfg["hotkey_A"] = hotkey_A;
    cfg["hotkey_S"] = hotkey_S;
    cfg["hotkey_D"] = hotkey_D;
    cfg["hotkey_F"] = hotkey_F;
    cfg["hotkey_G"] = hotkey_G;
    cfg["hotkey_H"] = hotkey_H;
    cfg["hotkey_J"] = hotkey_J;
    cfg["hotkey_K"] = hotkey_K;
    cfg["hotkey_L"] = hotkey_L;
    cfg["hotkey_Z"] = hotkey_Z;
    cfg["hotkey_X"] = hotkey_X;
    cfg["hotkey_C"] = hotkey_C;
    cfg["hotkey_V"] = hotkey_V;
    cfg["hotkey_B"] = hotkey_B;
    cfg["hotkey_N"] = hotkey_N;
    cfg["hotkey_M"] = hotkey_M;
	cfg["panic"] = panic;
	cfg["fogState"] = fogState;
	cfg["botList"] = botList;
	cfg["friendList"] = friendList;
	cfg["hitBoxValue"] = hitBoxValue;
	cfg["hitBox"] = hitBox;
	cfg["derp"] = derp;
	cfg["step"] = step;
	cfg["rotationsRange"] = rotationsRange;
	cfg["antiBot"] = antiBot;
	cfg["playerNear"] = playerNear;
	cfg["offsetTextPlayerNearPosX"] = offsetTextPlayerNearPosX;
	cfg["offsetTextPlayerNearPosY"] = offsetTextPlayerNearPosY;
	cfg["hotkeyVolumeUp"] = hotkeyVolumeUp;
	cfg["hotkeyVolumeDown"] = hotkeyVolumeDown;
	cfg["hotkeyBack"] = hotkeyBack;
	cfg["antiInvis"] = antiInvis;
	cfg["auraType"] = auraType;
	cfg["deathPosition"] = deathPosition;
	cfg["targetLock"] = targetLock;
	cfg["rotations"] = rotations;
	cfg["playerDeathPosX"] = playerDeathPosX;
	cfg["playerDeathPosY"] = playerDeathPosY;
	cfg["playerDeathPosZ"] = playerDeathPosZ;
	cfg["offsetTextPosY"] = offsetTextPosY;
	cfg["offsetTextPosX"] = offsetTextPosX;
	cfg["showPosition"] = showPosition;
	cfg["antiFireball"] = antiFireball;
	cfg["ladderFly"] = ladderFly;
	cfg["maxMobAuraTick"] = maxMobAuraTick;
	cfg["mobAuraRange"] = mobAuraRange;
	cfg["mobAura"] = mobAura;
	cfg["killItems"] = killItems;
	cfg["myMaxPlayers"] = myMaxPlayers;
	cfg["alwaysSprinting"] = alwaysSprinting;
	cfg["maxKillTick"] = maxKillTick;
	cfg["swing"] = swing;
    cfg["killAura"] = killAura;
	cfg["killRange"] = killRange;
    cfg["fullBright"] = fullBright;
    cfg["fogEnable"] = fogEnable;
    cfg["fastDrop"] = fastDrop;
    cfg["noHurtCam"] = noHurtCam;
    cfg["noCamDist"] = noCamDist;
    cfg["noBoatRotation"] = noBoatRotation;
    cfg["noCamSleep"] = noCamSleep;
    cfg["placeCam"] = placeCam;
    cfg["unlockMarket"] = unlockMarket;
    cfg["noSlowDown"] = noSlowDown;
    cfg["fastFall"] = fastFall;
    cfg["offWaterTrigger"] = offWaterTrigger;
    cfg["offSlowdownTrigger"] = offSlowdownTrigger;
    cfg["noclip"] = noclip;
    cfg["xrayCam"] = xrayCam;
    cfg["look360"] = look360;
    cfg["clickAutoMine"] = clickAutoMine;
    cfg["fastBridge"] = fastBridge;
    cfg["blockReach"] = blockReach;
    cfg["offDrown"] = offDrown;
    cfg["enableFov"] = enableFov;
    cfg["fov"] = fov;
    cfg["speedValue"] = speedValue;
    cfg["waterSpeedValue"] = waterSpeedValue;
    cfg["lavaSpeedValue"] = lavaSpeedValue;
    cfg["jumpValue"] = jumpValue;
    cfg["gravityValue"] = gravityValue;
    cfg["fontSize"] = fontSize;
    cfg["osmtBoost"] = osmtBoost;
    cfg["enableRainbow"] = enableRainbow;
    cfg["enableRainbowWall"] = enableRainbowWall;
    cfg["xrayCaves"] = xrayCaves;
    cfg["chamsint"] = chamsint;
    cfg["inWallColor.x"] = inWallColor.x;
    cfg["inWallColor.y"] = inWallColor.y;
    cfg["inWallColor.z"] = inWallColor.z;
    cfg["visibleColor.x"] = visibleColor.x;
    cfg["visibleColor.y"] = visibleColor.y;
    cfg["visibleColor.z"] = visibleColor.z;

    writeFile(path, cfg.dump());
}

void loadConfig(std::string path){
    std::string str_cfg = readFile(path);

    if (!json::accept(str_cfg)){
        return;
    }

    cfg = json::parse(str_cfg);
	
	espPlatform = cfg.value("espPlatform", espPlatform);
	espHealth = cfg.value("espHealth", espHealth);
	espDistance = cfg.value("espDistance", espDistance);
	espLine = cfg.value("espLine", espLine);
	espBox = cfg.value("espBox", espBox);
	espNametag = cfg.value("espNametag", espNametag);
	esp = cfg.value("esp", esp);
	noCaveVignette = cfg.value("noCaveVignette", noCaveVignette);
	noZombievillagers = cfg.value("noZombievillagers", noZombievillagers);
	noZombiepiglins = cfg.value("noZombiepiglins", noZombiepiglins);
	noWolfs = cfg.value("noWolfs", noWolfs);
	noWanderingtraders = cfg.value("noWanderingtraders", noWanderingtraders);
	noTurtles = cfg.value("noTurtles", noTurtles);
	noTropicalfishes = cfg.value("noTropicalfishes", noTropicalfishes);
	noTadpoles = cfg.value("noTadpoles", noTadpoles);
	noStriders = cfg.value("noStriders", noStriders);
	noSquids = cfg.value("noSquids", noSquids);
	noSniffers = cfg.value("noSniffers", noSniffers);
	noSheeps = cfg.value("noSheeps", noSheeps);
	noSalmons = cfg.value("noSalmons", noSalmons);
	noRabbits = cfg.value("noRabbits", noRabbits);
	noPufferfishes = cfg.value("noPufferfishes", noPufferfishes);
	noPiglins = cfg.value("noPiglins", noPiglins);
	noPigs = cfg.value("noPigs", noPigs);
	noParrots = cfg.value("noParrots", noParrots);
	noPandas = cfg.value("noPandas", noPandas);
	noOcelots = cfg.value("noOcelots", noOcelots);
	noLlamas = cfg.value("noLlamas", noLlamas);
	noHappyGhasts = cfg.value("noHappyGhasts", noHappyGhasts);
	noGoats = cfg.value("noGoats", noGoats);
	noGlowSquids = cfg.value("noGlowSquids", noGlowSquids);
	noFrogs = cfg.value("noFrogs", noFrogs);
	noFoxes = cfg.value("noFoxes", noFoxes);
	noDolphins = cfg.value("noDolphins", noDolphins);
	noCows = cfg.value("noCows", noCows);
	noCopperGolems = cfg.value("noCopperGolems", noCopperGolems);
	noCods = cfg.value("noCods", noCods);
	noChickens = cfg.value("noChickens", noChickens);
	noCats = cfg.value("noCats", noCats);
	noCamels = cfg.value("noCamels", noCamels);
	noBees = cfg.value("noBees", noBees);
	noBats = cfg.value("noBats", noBats);
	noAxolotls = cfg.value("noAxolotls", noAxolotls);
	noArmadillos = cfg.value("noArmadillos", noArmadillos);
	noAllays = cfg.value("noAllays", noAllays);
	noDonkeys = cfg.value("noDonkeys", noDonkeys);
	hurtCheck = cfg.value("hurtCheck", hurtCheck);
	antiKnockback = cfg.value("antiKnockback", antiKnockback);
	forceCreativeFly = cfg.value("forceCreativeFly", forceCreativeFly);
	xrayBarrel = cfg.value("xrayBarrel", xrayBarrel);
    xrayObsidian = cfg.value("xrayObsidian", xrayObsidian);
	xrayDiamond = cfg.value("xrayDiamond", xrayDiamond);
    xrayIron = cfg.value("xrayIron", xrayIron);
    xrayGold = cfg.value("xrayGold", xrayGold);
    xrayCoal = cfg.value("xrayCoal", xrayCoal);
    xrayCopper = cfg.value("xrayCopper", xrayCopper);
    xrayLapis = cfg.value("xrayLapis", xrayLapis);
    xrayEmerald = cfg.value("xrayEmerald", xrayEmerald);
    xrayRedstone = cfg.value("xrayRedstone", xrayRedstone);
    xrayAmethyst = cfg.value("xrayAmethyst", xrayAmethyst);
    xrayNetherite = cfg.value("xrayNetherite", xrayNetherite);
    xrayQuartz = cfg.value("xrayQuartz", xrayQuartz);
	noIronGolem = cfg.value("noIronGolem", noIronGolem);
	noSnowMan = cfg.value("noSnowMan", noSnowMan);
	noVillagers = cfg.value("noVillagers", noVillagers);
	noHorses = cfg.value("noHorses", noHorses);
	xrayDefault = cfg.value("xrayDefault", xrayDefault);
	maxAutoClickTick = cfg.value("maxAutoClickTick", maxAutoClickTick);
	autoClicker = cfg.value("autoClicker", autoClicker);
	noJumpDelay = cfg.value("noJumpDelay", noJumpDelay);
	strafe = cfg.value("strafe", strafe);
	damageFly = cfg.value("damageFly", damageFly);
	emulateNativeAttack = cfg.value("emulateNativeAttack", emulateNativeAttack);
	creativeFly = cfg.value("creativeFly", creativeFly);
	useGeyserCooldown = cfg.value("useGeyserCooldown", useGeyserCooldown);
	showPaperdoll = cfg.value("showPaperdoll", showPaperdoll);
	noBlur = cfg.value("noBlur", noBlur);
	noEmoteCooldown = cfg.value("noEmoteCooldown", noEmoteCooldown);
	antiBlind = cfg.value("antiBlind", antiBlind);
	hotkey_numpad_0 = cfg.value("hotkey_numpad_0", hotkey_numpad_0);
    hotkey_numpad_1 = cfg.value("hotkey_numpad_1", hotkey_numpad_1);
    hotkey_numpad_2 = cfg.value("hotkey_numpad_2", hotkey_numpad_2);
    hotkey_numpad_3 = cfg.value("hotkey_numpad_3", hotkey_numpad_3);
    hotkey_numpad_4 = cfg.value("hotkey_numpad_4", hotkey_numpad_4);
    hotkey_numpad_5 = cfg.value("hotkey_numpad_5", hotkey_numpad_5);
    hotkey_numpad_6 = cfg.value("hotkey_numpad_6", hotkey_numpad_6);
    hotkey_numpad_7 = cfg.value("hotkey_numpad_7", hotkey_numpad_7);
    hotkey_numpad_8 = cfg.value("hotkey_numpad_8", hotkey_numpad_8);
    hotkey_numpad_9 = cfg.value("hotkey_numpad_9", hotkey_numpad_9);
	hotkey_Q = cfg.value("hotkey_Q", hotkey_Q);
    hotkey_W = cfg.value("hotkey_W", hotkey_W);
    hotkey_E = cfg.value("hotkey_E", hotkey_E);
    hotkey_R = cfg.value("hotkey_R", hotkey_R);
    hotkey_T = cfg.value("hotkey_T", hotkey_T);
    hotkey_Y = cfg.value("hotkey_Y", hotkey_Y);
    hotkey_U = cfg.value("hotkey_U", hotkey_U);
    hotkey_I = cfg.value("hotkey_I", hotkey_I);
    hotkey_O = cfg.value("hotkey_O", hotkey_O);
    hotkey_P = cfg.value("hotkey_P", hotkey_P);
    hotkey_A = cfg.value("hotkey_A", hotkey_A);
    hotkey_S = cfg.value("hotkey_S", hotkey_S);
    hotkey_D = cfg.value("hotkey_D", hotkey_D);
    hotkey_F = cfg.value("hotkey_F", hotkey_F);
    hotkey_G = cfg.value("hotkey_G", hotkey_G);
    hotkey_H = cfg.value("hotkey_H", hotkey_H);
    hotkey_J = cfg.value("hotkey_J", hotkey_J);
    hotkey_K = cfg.value("hotkey_K", hotkey_K);
    hotkey_L = cfg.value("hotkey_L", hotkey_L);
    hotkey_Z = cfg.value("hotkey_Z", hotkey_Z);
    hotkey_X = cfg.value("hotkey_X", hotkey_X);
    hotkey_C = cfg.value("hotkey_C", hotkey_C);
    hotkey_V = cfg.value("hotkey_V", hotkey_V);
    hotkey_B = cfg.value("hotkey_B", hotkey_B);
    hotkey_N = cfg.value("hotkey_N", hotkey_N);
    hotkey_M = cfg.value("hotkey_M", hotkey_M);
	panic = cfg.value("panic", panic);
	fogState = cfg.value("fogState", fogState);
	botList = cfg.value("botList", botList);
	friendList = cfg.value("friendList", friendList);
	hitBoxValue = cfg.value("hitBoxValue", hitBoxValue);
	hitBox = cfg.value("hitBox", hitBox);
	derp = cfg.value("derp", derp);
	step = cfg.value("step", step);
	rotationsRange = cfg.value("rotationsRange", rotationsRange);
	antiBot = cfg.value("antiBot", antiBot);
	playerNear = cfg.value("playerNear", playerNear);
	offsetTextPlayerNearPosX = cfg.value("offsetTextPlayerNearPosX", offsetTextPlayerNearPosX);
	offsetTextPlayerNearPosY = cfg.value("offsetTextPlayerNearPosY", offsetTextPlayerNearPosY);
	hotkeyVolumeUp = cfg.value("hotkeyVolumeUp", hotkeyVolumeUp);
	hotkeyVolumeDown = cfg.value("hotkeyVolumeDown", hotkeyVolumeDown);
	hotkeyBack = cfg.value("hotkeyBack", hotkeyBack);
	antiInvis = cfg.value("antiInvis", antiInvis);
	auraType = cfg.value("auraType", auraType);
	deathPosition = cfg.value("deathPosition", deathPosition);
	targetLock = cfg.value("targetLock", targetLock);
	rotations = cfg.value("rotations", rotations);
	playerDeathPosX = cfg.value("playerDeathPosX", playerDeathPosX);
	playerDeathPosY = cfg.value("playerDeathPosY", playerDeathPosY);
	playerDeathPosZ = cfg.value("playerDeathPosZ", playerDeathPosZ);
	offsetTextPosY = cfg.value("offsetTextPosY", offsetTextPosY);
	offsetTextPosX = cfg.value("offsetTextPosX", offsetTextPosX);
	showPosition = cfg.value("showPosition", showPosition);
	antiFireball = cfg.value("antiFireball", antiFireball);
	ladderFly = cfg.value("ladderFly", ladderFly);
	maxMobAuraTick = cfg.value("maxMobAuraTick", maxMobAuraTick);
	mobAuraRange = cfg.value("mobAuraRange", mobAuraRange);
	mobAura = cfg.value("mobAura", mobAura);
	killItems = cfg.value("killItems", killItems);
	myMaxPlayers = cfg.value("myMaxPlayers", myMaxPlayers);
	alwaysSprinting = cfg.value("alwaysSprinting", alwaysSprinting);
	maxKillTick = cfg.value("maxKillTick", maxKillTick);
	swing = cfg.value("swing", swing);
    killAura = cfg.value("killAura", killAura);
	killRange = cfg.value("killRange", killRange);
    fullBright = cfg.value("fullBright", fullBright);
    fogEnable = cfg.value("fogEnable", fogEnable);
    fastDrop = cfg.value("fastDrop", fastDrop);
    noHurtCam = cfg.value("noHurtCam", noHurtCam);
    noCamDist = cfg.value("noCamDist", noCamDist);
    noBoatRotation = cfg.value("noBoatRotation", noBoatRotation);
    noCamSleep = cfg.value("noCamSleep", noCamSleep);
    placeCam = cfg.value("placeCam", placeCam);
    unlockMarket = cfg.value("unlockMarket", unlockMarket);
    noSlowDown = cfg.value("noSlowDown", noSlowDown);
    fastFall = cfg.value("fastFall", fastFall);
    offWaterTrigger = cfg.value("offWaterTrigger", offWaterTrigger);
    offSlowdownTrigger = cfg.value("offSlowdownTrigger", offSlowdownTrigger);
    noclip = cfg.value("noclip", noclip);
    xrayCam = cfg.value("xrayCam", xrayCam);
    look360 = cfg.value("look360", look360);
    clickAutoMine = cfg.value("clickAutoMine", clickAutoMine);
    fastBridge = cfg.value("fastBridge", fastBridge);
    blockReach = cfg.value("blockReach", blockReach);
    offDrown = cfg.value("offDrown", offDrown);
    enableFov = cfg.value("enableFov", enableFov);
    fov = cfg.value("fov", fov);
    speedValue = cfg.value("speedValue", speedValue);
    waterSpeedValue = cfg.value("waterSpeedValue", waterSpeedValue);
    lavaSpeedValue = cfg.value("lavaSpeedValue", lavaSpeedValue);
    jumpValue = cfg.value("jumpValue", jumpValue);
    gravityValue = cfg.value("gravityValue", gravityValue);
    fontSize = cfg.value("fontSize", fontSize);
    osmtBoost = cfg.value("osmtBoost", osmtBoost);
    enableRainbow = cfg.value("enableRainbow", enableRainbow);
    enableRainbowWall = cfg.value("enableRainbowWall", enableRainbowWall);
    xrayCaves = cfg.value("xrayCaves", xrayCaves);
    chamsint = cfg.value("chamsint", chamsint);
    inWallColor.x = cfg.value("inWallColor.x", inWallColor.x);
    inWallColor.y = cfg.value("inWallColor.y", inWallColor.y);
    inWallColor.z = cfg.value("inWallColor.z", inWallColor.z);
    visibleColor.x = cfg.value("visibleColor.x", visibleColor.x);
    visibleColor.y = cfg.value("visibleColor.y", visibleColor.y);
    visibleColor.z = cfg.value("visibleColor.z", visibleColor.z);
}
