Overflow - HELP
-
Hi, I have a problem with this zombie health bar. At a certain point, the game kicks the player out, and the error shown on screen is "Overflow". From what I understand, the game has a limit on the recreation of hud elements (strings). This is due to a game engine function that manages configstrings, which are strings used by the game to identify resources. These are stored in a cache, and when that limit is reached, this type of error appears.
I know exactly what the workaround is for now — using .label and setValue. But is there any way to fix this while still using setText?

// Calculate health percentage max_health = entity.maxhealth; health = entity.health; percent = health / max_health; // If the health bar already exists, update it if (isDefined(self.hud_zombie_health) && isDefined(self.hud_zombie_health_text)) { // If the zombie is dead, show an empty bar if (isDefined(isDead) && isDead) { self.hud_zombie_health updatebar(0); if (self.langLEN == 0) self.hud_zombie_health_text setText("Esta Muerto!"); else self.hud_zombie_health_text setText("He's dead!"); } else { // Ensure the bar uses the selected color // Default to white if no color is defined if (!isDefined(self.colorcito)) self.colorcito = (1, 1, 1); // Only update the color if it's different if (isDefined(self.hud_zombie_health.bar) && self.hud_zombie_health.bar.color != self.colorcito) self.hud_zombie_health.bar.color = self.colorcito; // Update the health bar to the current percentage self.hud_zombie_health updatebar(percent); // Show name and health info if enabled if (self.zombieNAME) { self.hud_zombie_health_text setText(name_zombie + " ^7[^3" + int(health) + "^7/^2" + int(max_health) + "^7]"); } else { // Show only the health values self.hud_zombie_health_text setText("^7[^3" + int(health) + "^7/^2" + int(max_health) + "^7]"); } } } else { // Create health bar and text if they do not exist self.hud_zombie_health = self createprimaryprogressbar(); self.hud_zombie_health_text = self createprimaryprogressbartext(); // Position the bar and text (original position, do not modify) self.hud_zombie_health setpoint("LEFT", "LEFT", 0, 120); self.hud_zombie_health_text setpoint("LEFT", "LEFT", 0, 134); // Ensure the color is defined, default to white if (!isDefined(self.colorcito)) self.colorcito = (1, 1, 1); // Configure visual properties of the bar self.hud_zombie_health.bar.color = self.colorcito; self.hud_zombie_health.hidewheninmenu = false; self.hud_zombie_health_text.hidewheninmenu = false; self.hud_zombie_health.alpha = self.shaderON; // Set bar and text size self.hud_zombie_health.width = self.sizeW; self.hud_zombie_health.height = self.sizeH; self.hud_zombie_health_text.fontScale = self.sizeN; // Handle dead zombie case if (isDefined(isDead) && isDead) { self.hud_zombie_health updatebar(0); if (self.langLEN == 0) self.hud_zombie_health_text setText("Esta Muerto!"); else self.hud_zombie_health_text setText("He's dead!"); } else { // Update the bar with current health percentage self.hud_zombie_health updatebar(percent); // Display name and health or just health if (self.zombieNAME) self.hud_zombie_health_text setText(name_zombie + " ^7[^3" + int(health) + "^7/^2" + int(max_health) + "^7]"); else self.hud_zombie_health_text setText("^7[^3" + int(health) + "^7/^2" + int(max_health) + "^7]"); } } // If the zombie is alive and at full health, fade and remove the bar after a delay if (isDefined(isDead) && !isDead && health == max_health) { self.hud_zombie_health fadeovertime(1.5); self.hud_zombie_health_text fadeovertime(1.5); self.hud_zombie_health.alpha = 0; self.hud_zombie_health_text.alpha = 0; wait 1.5; // Destroy the health bar and text HUD elements if (isDefined(self.hud_zombie_health)) { self.hud_zombie_health destroy(); self.hud_zombie_health = undefined; } if (isDefined(self.hud_zombie_health_text)) { self.hud_zombie_health_text destroy(); self.hud_zombie_health_text = undefined; } } -
this is because you're hitting the unique string limit, for example you're casting a value inside the text, being the health, this is creating alot of new strings eating away at the limit of the vm, the correct way would be using setvalue, settext for text, setvalue for values so you would want todo .label and asign a string to that lable and use setvalue and the outcome would be Zombie Health: 100 as an example or clear the string table and using a custom array to track the amount of strings you generated.