0% found this document useful (0 votes)
22 views8 pages

Top 3 Brainrots com Multiplicadores

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views8 pages

Top 3 Brainrots com Multiplicadores

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

-- TOP 3 BRAINROTS COM MULTIPLICADORES (PRONTO & CORRIGIDO)

-- Coloca este script em um servidor/cliente conforme seu uso no jogo.

-- ======= TABELAS DE PREÇO / MULTIPLICADORES =======


local BrainrotPrices = {
["Noobini Pizzanini"] = 1,
["Cocofanto Elefanto"] = 17500,
["Girafa Celestre"] = 20000,
["Matteo"] = 50000,
["Tralalero Tralala"] = 50000,
["Odin Din Din Dun"] = 75000,
["Trenostruzzo Turbo 3000"] = 150000,
["Tigroligre Frutonni"] = 60000,
["Orcalero Orcala"] = 100000,
["Unclito Samito"] = 75000,
["Gattatino Nyanino"] = 35000,
["Espresso Signora"] = 70000,
["Ballerino Lololo"] = 200000,
["Piccione Macchina"] = 225000,
["Los Crocodillitos"] = 55000,
["Tukanno Bananno"] = 100000,
["Trippi Troppi Troppa Trippa"] = 175000,
["Los Tungtungtungcitos"] = 210000,
["Agarrini la Palini"] = 425000,
["Bulbito Bandito Traktorito"] = 205000,
["Los Orcalitos"] = 235000,
["Tipi Topi Taco"] = 75000,
["Bombardini Tortinii"] = 225000,
["Tralalita Tralala"] = 100000,
["Urubini Flamenguini"] = 150000,
["Alessio"] = 85000,
["Pakrahmatmamat"] = 215000,
["Los Bombinitos"] = 220000,
["Brr es Teh Patipum"] = 225000,
["Tartaruga Cisterna"] = 250000,
["Cacasito Satalito"] = 240000,
["Mastodontico Telepiedone"] = 275000,
["Crabbo Limonetta"] = 235000,
["Gattito Tacoto"] = 165000,
["Los Tipi Tacos"] = 260000,
["Antonio"] = 18500,
["Las Capuchinas"] = 185000,
["Orcalita Orcala"] = 240000,
["Piccionetta Macchina"] = 270000,
["Anpali Babel"] = 280000,
["Chihuanini Taconini"] = 15000,
["La Vacca Saturno Saturnita"] = 300000,
["Los Tralaleritos"] = 500000,
["Graipuss Medussi"] = 1000000,
["La Grande Combinasion"] = 10000000,
["Sammyni Spyderini"] = 325000,
["Garama and Madundung"] = 50000000,
["Torrtuginni Dragonfrutini"] = 350000,
["Las Tralaleritas"] = 650000,
["Pot Hotspot"] = 2500000,
["Nuclearo Dinossauro"] = 15000000,
["Las Vaquitas Saturnitas"] = 750000,
["Chicleteira Bicicleteira"] = 3500000,
["Los Combinasionas"] = 15000000,
["Karkerkar Kurkur"] = 300000,
["Dragon Cannelloni"] = 100000000,
["Los Hotspotsitos"] = 20000000,
["Esok Sekolah"] = 30000000,
["Nooo My Hotspot"] = 1500000,
["Los Matteos"] = 300000,
["Job Job Job Sahur"] = 700000,
["Dul Dul Dul"] = 375000,
["Blackhole Goat"] = 400000,
["Los Spyderinis"] = 425000,
["Ketupat Kepat"] = 35000000,
["La Supreme Combinasion"] = 40000000,
["Bisonte Giuppitere"] = 300000,
["Guerriro Digitale"] = 550000,
["Ketchuru and Musturu"] = 42500000,
["Spaghetti Tualetti"] = 60000000,
["Los Nooo My Hotspotsitos"] = 5000000,
["Trenostruzzo Turbo 4000"] = 310000,
["Fragola La La La"] = 450000,
["La Sahur Combinasion"] = 2000000,
["La Karkerkar Combinasion"] = 17500000,
["Tralaledon"] = 27500000,
["Los Bros"] = 37500000,
["Strawberry Elephant"] = 250000000,
["Bandito Bobritto"] = 35
}

-- ======= MUTAÇÕES (ADITIVAS COMO NO SCRIPT ANTIGO) =======


local mutationMultipliers = {
["Gold"] = 1.25,
["Diamond"] = 1.5,
["Rainbow"] = 10,
["Lava"] = 6,
["Bloodrot"] = 2,
["Celestial"] = 4,
["Candy"] = 4,
["Galaxy"] = 7,
}

local mutationColors = {
["Diamond"] = [Link](0, 255, 255),
["Gold"] = [Link](255, 215, 0),
["Rainbow"] = nil,
["Lava"] = [Link](255, 69, 0),
["Bloodrot"] = [Link](220, 20, 60),
["Candy"] = [Link](255, 182, 193),
["Galaxy"] = [Link](75, 0, 130),
}

local rainbowCycle = {
[Link](255,0,0),
[Link](255,127,0),
[Link](255,255,0),
[Link](0,255,0),
[Link](0,0,255),
[Link](75,0,130),
[Link](148,0,211),
}
-- ======= VFX / TRAITS (organizado por pasta) =======
local VfxInstance = {
["flare"] = 5,
["tacos"] = 3,
["flare234new"] = 3,
["fireork"] = 6,
["nyancattrail"] = 6,
}

local _VfxInstance = {
["FireSpecs"] = 6,
["fireork"] = 4.5,
["Glitch"] = 5,
["nyancattrail"] = 6,
["Flare146New"] = 5,
["teansprag2"] = 4,
["purplespace1"] = 4,
["ParticleEmitter"] = 6,
}

local traitMultipliers = {
["_Trait.Zombie"] = 5,
["_Trait.UFO"] = 3,
["_Trait.Taco"] = 3,
["_Trait.Strawberry"] = 8,
["_Trait.Spider"] = 4.5,
["_Trait.Sleepy"] = 0.5,
["_Trait.Shark Fin"] = 4,
["_Trait.Matteo Hat"] = 4.5,
["_Trait.Lightning"] = 1,
["_Trait.Claws"] = 5,
["_Trait.Bubblegum"] = 4,
["_Trait.10B"] = 4,
}

-- ======= FIRE NAMES (se qualquer um existir, considera "fire" e aplica uma vez)
=======
local fireNames = {
["pixel smoke 34"] = true,
["firespecs"] = true,
["pixel smoke 5"] = true,
["pixelated smoke diagonal"] = true,
}
local FIRE_MULTIPLIER = 5 -- valor aplicado caso detecte efeito "fire" (só 1x)

-- ======= HELPERS =======


local function abbreviateNumber(n)
if n >= 1e9 then
return [Link]("%.2fB", n/1e9):gsub("%.?0+B", "B")
elseif n >= 1e6 then
return [Link]("%.2fM", n/1e6):gsub("%.?0+M", "M")
elseif n >= 1e3 then
return [Link]("%.2fk", n/1e3):gsub("%.?0+k", "k")
else
return tostring(n)
end
end

local function findFirstBasePart(model)


if not model then return nil end
if [Link] and [Link]:IsA("BasePart") then return
[Link] end
local head = model:FindFirstChild("Head")
if head and head:IsA("BasePart") then return head end
local direct = model:FindFirstChildWhichIsA("BasePart")
if direct then return direct end
for _, d in ipairs(model:GetDescendants()) do
if d:IsA("BasePart") then return d end
end
return nil
end

local function getBrainrotMutation(model)


if not model then return nil end
return model:GetAttribute and model:GetAttribute("Mutation") or nil
end

local function getColorByMutation(mutation)


if mutation and mutationColors[mutation] then return mutationColors[mutation]
end
return [Link](255,255,255)
end

-- ======= SCAN MULTIPLICADORES (aplica cada multiplicador apenas 1 vez por pet)
=======
local function scanAllMultipliers(targetModel)
local applied = {} -- tabela para bloquear reaplicação, chave: tipo:lower(name)
local bonusMultipliers = {}

if not targetModel then return bonusMultipliers end

-- 1) Mutação (atributo)
local mutation = getBrainrotMutation(targetModel)
if mutation and mutationMultipliers[mutation] and not
applied["mutation:"..[Link](tostring(mutation))] then
[Link](bonusMultipliers, mutationMultipliers[mutation])
applied["mutation:"..[Link](tostring(mutation))] = true
end

-- 2) Traits: procuramos em TODOS os descendants por Models cujo nome


corresponde a trait
for _, obj in ipairs(targetModel:GetDescendants()) do
if obj:IsA("Model") then
local nameLower = [Link]([Link] or "")
for traitName, traitMult in pairs(traitMultipliers) do
if nameLower == [Link](traitName) and not
applied["trait:"..nameLower] then
[Link](bonusMultipliers, traitMult)
applied["trait:"..nameLower] = true
end
end
end
end

-- 3) Procurar em todas as pastas que contenham "vfxinstance" ou "_vfxinstance"


-- percorre todos descendants e verifica se algum ancestor é uma pasta
VfxInstance/_VfxInstance
for _, obj in ipairs(targetModel:GetDescendants()) do
local nameLower = [Link]([Link] or "")

-- procura se nas ancestors existe "vfxinstance" ou "_vfxinstance"


local cur = [Link]
local folderType = nil -- "vfx" ou "_vfx"
while cur and cur ~= targetModel and [Link] do
local curName = [Link]([Link] or "")
if [Link](curName, "_vfxinstance") then
folderType = "_vfx"
break
elseif [Link](curName, "vfxinstance") then
folderType = "vfx"
-- não break aqui, pois pode haver "_vfxinstance" mais acima; mas
preferimos a primeira ocorrência encontrada
break
end
cur = [Link]
end

if folderType then
-- 3a) detecta fire names (se qualquer um aparecer, aplicamos apenas 1x
FIRE_MULTIPLIER)
if fireNames[nameLower] and not applied["fire"] then
[Link](bonusMultipliers, FIRE_MULTIPLIER)
applied["fire"] = true
end

-- 3b) aplica demais VFX conforme a tabela apropriada (só 1 vez por
tipo)
if folderType == "vfx" then
for vfxName, vfxMult in pairs(VfxInstance) do
local vfxKey = [Link](vfxName)
if [Link](nameLower, vfxKey) and not
applied["vfx:"..vfxKey] and not (fireNames[nameLower]) then
[Link](bonusMultipliers, vfxMult)
applied["vfx:"..vfxKey] = true
end
end
else -- _vfx
for vfxName, vfxMult in pairs(_VfxInstance) do
local vfxKey = [Link](vfxName)
if [Link](nameLower, vfxKey) and not
applied["_vfx:"..vfxKey] and not (fireNames[nameLower]) then
[Link](bonusMultipliers, vfxMult)
applied["_vfx:"..vfxKey] = true
end
end
end
end
end

return bonusMultipliers
end

-- ======= CÁLCULO DO PREÇO FINAL (SOMA DE BÔNUS como no script antigo) =======
local function getFinalPrice(model)
if not model or not BrainrotPrices[[Link]] then return 0 end
local basePrice = BrainrotPrices[[Link]]
local multipliers = scanAllMultipliers(model)
local finalPrice = basePrice

for _, mul in ipairs(multipliers) do


-- cada multiplicador é aditivo como no script antigo:
-- adiciona base * (mul - 1)
finalPrice = finalPrice + (basePrice * (mul - 1))
end

return finalPrice
end

-- ======= ESP: manter apenas Top 3 =======


local activeESPs = {} -- model -> {billboard = ..., label = ..., price = number}
local function createESP(model, price)
if not model or model:FindFirstChild("PetESP") then return end

local mutation = getBrainrotMutation(model)


local adornee = findFirstBasePart(model) or model

local billboard = [Link]("BillboardGui")


[Link] = "PetESP"
[Link] = adornee
[Link] = [Link](0, 260, 0, 60)
[Link] = [Link](0, 4, 0)
[Link] = true
[Link] = model

local label = [Link]("TextLabel")


[Link] = [Link](1, 0, 1, 0)
[Link] = 1
[Link] = [Link]
[Link] = true
[Link] = 0
label.TextColor3 = getColorByMutation(mutation)
[Link] = [Link]("%s\n%s%s", [Link], abbreviateNumber(price),
mutation and (" | "..mutation) or "")
[Link] = billboard

activeESPs[model] = {billboard = billboard, label = label, price = price}

-- remove entry quando pet for destruído


[Link]:Connect(function()
local a = activeESPs[model]
if a and [Link] and [Link] then
[Link]:Destroy()
end
activeESPs[model] = nil
end)

-- Rainbow effect
if mutation == "Rainbow" then
[Link](function()
local i = 1
while billboard and [Link] do
label.TextColor3 = rainbowCycle[i]
i = i % #rainbowCycle + 1
[Link](0.25)
end
end)
end
end

local function updateESPFor(model, price)


local entry = activeESPs[model]
if entry and [Link] then
[Link] = price
[Link] = [Link]("%s\n%s%s", [Link],
abbreviateNumber(price), getBrainrotMutation(model) and (" |
"..getBrainrotMutation(model)) or "")
else
createESP(model, price)
end
end

-- Atualiza top 3: calcula preços, ordena, mantém só 3 ESPs


local function updateTop3()
local plotsFolder = workspace:FindFirstChild("Plots") or
workspace:FindFirstChild("plots")
if not plotsFolder then return end

local allPets = {}
for _, plot in ipairs(plotsFolder:GetChildren()) do
for _, obj in ipairs(plot:GetDescendants()) do
if obj:IsA("Model") and BrainrotPrices[[Link]] then
local price = getFinalPrice(obj)
[Link](allPets, {model = obj, price = price})
end
end
end

[Link](allPets, function(a,b) return [Link] > [Link] end)

-- nova lista top3 (em ordem)


local newTop3List = {}
for i = 1, [Link](3, #allPets) do
[Link](newTop3List, allPets[i])
end

-- destruir ESPs que não estão mais no top3


local shouldKeep = {}
for _, entry in ipairs(newTop3List) do
shouldKeep[[Link]] = true
end

for model, data in pairs(activeESPs) do


if not shouldKeep[model] then
if [Link] and [Link] then
[Link]:Destroy()
end
activeESPs[model] = nil
end
end

-- criar / atualizar ESPs dos top3


for _, pet in ipairs(newTop3List) do
updateESPFor([Link], [Link])
end
end
-- ======= INICIALIZAÇÃO / EVENTOS =======
local function initialize()
local plotsFolder = workspace:FindFirstChild("Plots") or
workspace:FindFirstChild("plots")
if not plotsFolder then
warn("Pasta 'Plots' não encontrada!")
return
end

-- atualiza quando algo for adicionado/removido (debounce leve)


[Link]:Connect(function(obj)
[Link](0.5, updateTop3)
end)
[Link]:Connect(function(obj)
[Link](0.2, updateTop3)
end)

-- loop periódico (fallback)


[Link](function()
while true do
updateTop3()
[Link](3)
end
end)
end

initialize()
print("Top 3 Brainrots ESP ativo — script corrigido.")

You might also like