Run it
Copy the script and paste it into your executor.
( .. (.PlaceId))
.vape
()
( .. (.vape.Libraries ))
run = (func)
ok, err = (func)
ok
( .. (err))
()
cloneref = cloneref (obj)
obj
vapeEvents = ({}, {
__index = (self, index)
self[index] = .()
self[index]
})
playersService = (:())
replicatedStorage = (:())
runService = (:())
inputService = (:())
tweenService = (:())
httpService = (:())
textChatService = (:())
collectionService = (:())
contextActionService = (:())
guiService = (:())
coreGui = (:())
starterGui = (:())
isnetworkowner = identifyexecutor .({, }, ({()})[]) isnetworkowner ()
gameCamera = .CurrentCamera
lplr = playersService.LocalPlayer
vape = .vape
entitylib = vape.Libraries.entity
targetinfo = vape.Libraries.targetinfo
sessioninfo = vape.Libraries.sessioninfo
uipallet = vape.Libraries.uipallet
tween = vape.Libraries.tween
color = vape.Libraries.color
whitelist = vape.Libraries.whitelist
prediction = vape.Libraries.prediction
getfontbounds = vape.Libraries.getfontbounds
getvapeasset = vape.Libraries.getvapeasset
store = {
attackReach = ,
attackReachUpdate = (),
damageBlockFail = (),
hand = {},
inventory = {
inventory = {
items = {},
armor = {}
},
hotbar = {}
},
inventories = {},
matchState = ,
queueType = ,
tools = {}
}
Reach = {}
HitBoxes = {}
InfiniteFly = {}
TrapDisabler
AntiFallPart
bedwars, remotes, sides, oldinvrender, oldSwing = {}, {}, {}
(parent)
blur = .()
blur.Name =
blur.Size = .(, , , )
blur.Position = .(-, -)
blur.BackgroundTransparency =
blur.Image = ()
blur.ScaleType = .ScaleType.Slice
blur.SliceCenter = Rect.(, , , )
blur.Parent = parent
blur
(tags, module, customadd, customremove)
tags = (tags) ~= {tags} tags
objs, connections = {}, {}
_, tag tags
.(connections, collectionService:(tag):((v)
customadd
(objs, v, tag)
.(objs, v)
))
.(connections, collectionService:(tag):((v)
customremove
(objs, v, tag)
v = .(objs, v)
v
.(objs, v)
))
_, v collectionService:(tag)
customadd
(objs, v, tag)
.(objs, v)
cleanFunc = (self)
_, v connections
v:()
.(connections)
.(objs)
.(self)
module
module:(cleanFunc)
objs, cleanFunc
(slot)
closest, mag = ,
_, item store.inventory.inventory.items
meta = item bedwars.ItemMeta[item.itemType] {}
meta.armor meta.armor.slot == slot
newmag = (meta.armor.damageReductionMultiplier )
newmag > mag
closest, mag = item, newmag
closest
()
bestBow, bestBowSlot, bestBowDamage = , ,
slot, item store.inventory.inventory.items
bowMeta = bedwars.ItemMeta[item.itemType].projectileSource
bowMeta .(bowMeta.ammoItemTypes, )
bowDamage = bedwars.ProjectileMeta[bowMeta.()].combat.damage
bowDamage > bestBowDamage
bestBow, bestBowSlot, bestBowDamage = item, slot, bowDamage
bestBow, bestBowSlot
(itemName, inv)
slot, item (inv store.inventory.inventory.items)
item.itemType == itemName
item, slot
(func)
debug.(debug.(debug.(func, ).render, ).render, )
()
bestSword, bestSwordSlot, bestSwordDamage = , ,
slot, item store.inventory.inventory.items
swordMeta = bedwars.ItemMeta[item.itemType].sword
swordMeta
swordDamage = swordMeta.damage
swordDamage > bestSwordDamage
bestSword, bestSwordSlot, bestSwordDamage = item, slot, swordDamage
bestSword, bestSwordSlot
(breakType)
bestTool, bestToolSlot, bestToolDamage = , ,
slot, item store.inventory.inventory.items
toolMeta = bedwars.ItemMeta[item.itemType].breakBlock
toolMeta
toolDamage = toolMeta[breakType]
toolDamage > bestToolDamage
bestTool, bestToolSlot, bestToolDamage = item, slot, toolDamage
bestTool, bestToolSlot
()
_, wool (inv store.inventory.inventory.items)
wool.itemType:()
wool wool.itemType, wool wool.amount
(plr)
plr.Player
strength =
_, v (store.inventories[plr.Player] {items = {}}).items
itemmeta = bedwars.ItemMeta[v.itemType]
itemmeta itemmeta.sword itemmeta.sword.damage > strength
strength = itemmeta.sword.damage
strength
(pos)
pos
roundedPosition = bedwars.BlockController:(pos)
bedwars.BlockController:():(roundedPosition), roundedPosition
(s, e)
blocks, list = bedwars.BlockController:(), {}
x = s.X, e.X
y = s.Y, e.Y
z = s.Z, e.Z
vec = .(x, y, z)
blocks:(vec)
.(list, vec * )
list
(range)
range = .(, , ) * (range )
localPosition, mag, closest = entitylib.character.RootPart.Position,
blocks = (bedwars.BlockController:(localPosition - range), bedwars.BlockController:(localPosition + range))
_, v blocks
(v + .(, , ))
newmag = (localPosition - v).Magnitude
newmag < mag
mag, closest = newmag, v + .(, , )
.(blocks)
closest
(char)
returned =
name, val char:()
name:() (val) == val >
returned += val
returned
()
multi, increase, modifiers = , , bedwars.SprintController:():()
v modifiers
val = v.constantSpeedMultiplier v.constantSpeedMultiplier
val val > .(multi, )
increase =
multi = val - ( * .(val))
v modifiers
multi += .((v.moveSpeedMultiplier ) - , )
multi > increase
multi += + ( * .(multi))
* (multi + )
(tab)
ind =
_ tab
ind +=
ind
(slot)
slot store.inventory.hotbarSlot ~= slot
bedwars.Store:({
= ,
slot = slot
})
vapeEvents.InventoryChanged.Event:()
(plr, recolor)
vape.Categories.Friends.Options[].Enabled
friend = .(vape.Categories.Friends.ListEnabled, plr.Name)
recolor
friend = friend vape.Categories.Friends.Options[].Enabled
friend
(plr)
.(vape.Categories.Targets.ListEnabled, plr.Name)
(...)
vape:(...)
(str)
str = str:(, )
(str:(, ))
(vec)
.(.(vec.X / ) * , .(vec.Y / ) * , .(vec.Z / ) * )
(tool, delayTime)
delayTime = delayTime
check = lplr.Character lplr.Character:()
check check.Value ~= tool tool.Parent ~=
.(()
bedwars.Client:(remotes.EquipItem):({hand = tool})
)
check.Value = tool
delayTime >
.(delayTime)
(obj, name, timeout, prop)
check, returned = () + timeout
returned = prop obj[name] obj:(name)
returned returned.Name ~= check < ()
.()
returned
frictionTable, oldfrict = {}, {}
frictionConnection
frictionState
(v)
v:() v.Name ~= oldfrict[v]
oldfrict[v] = v.CustomPhysicalProperties
v.CustomPhysicalProperties = PhysicalProperties.(, , , , )
(force)
newState = (frictionTable) >
frictionState ~= newState force
frictionConnection
frictionConnection:()
newState
entitylib.isAlive
_, v entitylib.character.Character:()
(v)
frictionConnection = entitylib.character.Character.DescendantAdded:(modifyVelocity)
i, v oldfrict
i.CustomPhysicalProperties = v ~= v
.(oldfrict)
frictionState = newState
kitorder = {
hannah = ,
spirit_assassin = ,
dasher = ,
jade = ,
regent =
}
sortmethods = {
Damage = (a, b)
a.Entity.Character:() < b.Entity.Character:()
,
Threat = (a, b)
(a.Entity) > (b.Entity)
,
Kit = (a, b)
(a.Entity.Player kitorder[a.Entity.Player:()] ) > (b.Entity.Player kitorder[b.Entity.Player:()] )
,
Health = (a, b)
a.Entity.Health < b.Entity.Health
,
Angle = (a, b)
selfrootpos = entitylib.character.RootPart.Position
localfacing = entitylib.character.RootPart.CFrame.LookVector * .(, , )
angle = .(localfacing:(((a.Entity.RootPart.Position - selfrootpos) * .(, , )).Unit))
angle2 = .(localfacing:(((b.Entity.RootPart.Position - selfrootpos) * .(, , )).Unit))
angle < angle2
}
(()
oldstart = entitylib.start
(ent)
ent:() ent:()
entitylib.(ent, , ent:() (self)
droneplr = playersService:(self.Character:())
droneplr lplr:() ~= droneplr:()
(self)
lplr:() ~= self.Character:()
)
entitylib.start = ()
()
entitylib.Running
_, ent collectionService:()
(ent)
.(entitylib.Connections, collectionService:():(customEntity))
.(entitylib.Connections, collectionService:():((ent)
entitylib.(ent)
))
entitylib.addPlayer = (plr)
plr.Character
entitylib.(plr.Character, plr)
entitylib.PlayerConnections[plr] = {
plr.CharacterAdded:((char)
entitylib.(char, plr)
),
plr.CharacterRemoving:((char)
entitylib.(char, plr == lplr)
),
plr:():(()
_, v entitylib.List
v.Targetable ~= entitylib.(v)
entitylib.(v.Character, v.Player)
plr == lplr
entitylib.()
entitylib.(plr.Character, plr)
)
}
entitylib.addEntity = (char, plr, teamfunc)
char
entitylib.EntityThreads[char] = .(()
hum, humrootpart, head
plr
hum = (char, , )
humrootpart = hum (hum, , .StreamingEnabled , )
head = char:(, ) humrootpart
hum = {HipHeight = }
humrootpart = (char, , , )
head = humrootpart
updateobjects = plr plr ~= lplr {
char:(, ),
char:(, ),
char:(, ),
char:(, )
} {}
hum humrootpart
entity = {
Connections = {},
Character = char,
Health = (char:() ) + (char),
Head = head,
Humanoid = hum,
HumanoidRootPart = humrootpart,
HipHeight = hum.HipHeight + (humrootpart.Size.Y / ) + (hum.RigType == .HumanoidRigType.R6 ),
Jumps = ,
JumpTick = (),
Jumping = ,
LandTick = (),
MaxHealth = char:() ,
NPC = plr == ,
Player = plr,
RootPart = humrootpart,
TeamCheck = teamfunc
}
plr == lplr
entity.AirTime = ()
entitylib.character = entity
entitylib.isAlive =
entitylib.Events.LocalAdded:(entity)
.(entitylib.Connections, char.AttributeChanged:((attr)
vapeEvents.AttributeChanged:(attr)
))
entity.Targetable = entitylib.(entity)
_, v entitylib.(entity)
.(entity.Connections, v:(()
entity.Health = (char:() ) + (char)
entity.MaxHealth = char:()
entitylib.Events.EntityUpdated:(entity)
))
_, v updateobjects
.(entity.Connections, v:():(()
.(, ()
bedwars.getInventory
store.inventories[plr] = bedwars.(plr)
entitylib.Events.EntityUpdated:(entity)
)
))
plr
anim = char:()
anim
(()
anim = anim.jump:().AnimationId
.(entity.Connections, hum.Animator.AnimationPlayed:((playedanim)
playedanim.Animation.AnimationId == anim
entity.JumpTick = ()
entity.Jumps +=
entity.LandTick = () +
entity.Jumping = entity.Jumps >
))
)
.(, ()
bedwars.getInventory
store.inventories[plr] = bedwars.(plr)
)
.(entitylib.List, entity)
entitylib.Events.EntityAdded:(entity)
.(entity.Connections, char.ChildRemoved:((part)
part == humrootpart part == hum part == head
part == humrootpart hum.RootPart
humrootpart = hum.RootPart
entity.RootPart = hum.RootPart
entity.HumanoidRootPart = hum.RootPart
entitylib.(char, plr == lplr)
))
entitylib.EntityThreads[char] =
)
entitylib.getUpdateConnections = (ent)
char = ent.Character
tab = {
char:(),
char:(),
{
Connect = ()
ent.Friend = ent.Player (ent.Player)
ent.Target = ent.Player (ent.Player)
{Disconnect = () }
}
}
ent.Player
.(tab, ent.Player:())
name, val char:()
name:() (val) ==
.(tab, char:(name))
tab
entitylib.targetCheck = (ent)
ent.TeamCheck
ent:()
ent.NPC
(ent.Player)
(, whitelist:(ent.Player))
lplr:() ~= ent.Player:()
vape:(entitylib.Events.LocalAdded:(updateVelocity))
)
entitylib.()
()
(()
KnitInit, Knit
KnitInit, Knit = (()
debug.((lplr.PlayerScripts.TS.knit).setup, )
)
KnitInit
.()
KnitInit
debug.(Knit.Start, )
.() debug.(Knit.Start, )
Flamework = (replicatedStorage[][][].core.out).Flamework
InventoryUtil = (replicatedStorage.TS.inventory[]).InventoryUtil
Client = (replicatedStorage.TS.remotes).default.Client
OldGet, OldBreak = Client.Get
bedwarsOk, bedwarsErr = (()
bedwars = ({
AbilityController = (() ok,v=(Flamework.resolveDependency,) ok v )(),
AnimationType = (() ok,m=(() (replicatedStorage.TS.animation[]).AnimationType ) ok m )(),
AnimationUtil = (() ok,m=(() (replicatedStorage[][][][].out[].util[]).AnimationUtil ) ok m )(),
AppController = (() ok,m=(() (replicatedStorage[][][][].out.client.controllers[]).AppController ) ok m )(),
BedBreakEffectMeta = (() ok,m=(() (replicatedStorage.TS.locker[][]).BedBreakEffectMeta ) ok m )(),
BedwarsKitMeta = (() ok,m=(() (replicatedStorage.TS.games.bedwars.kit[]).BedwarsKitMeta ) ok m )(),
BlockBreaker = Knit.Controllers.BlockBreakController Knit.Controllers.BlockBreakController.blockBreaker ,
BlockController = (() ok,m=(() (replicatedStorage[][][][].out).BlockEngine ) ok m )(),
BlockEngine = (() ok,m=(() (lplr.PlayerScripts.TS.lib[][]).ClientBlockEngine ) ok m )(),
BlockPlacer = (() ok,m=(() (replicatedStorage[][][][].out.client.placement[]).BlockPlacer ) ok m )(),
BowConstantsTable = (() ok,v=(() debug.(Knit.Controllers.ProjectileController.enableBeam, ) ) ok v )(),
ClickHold = (() ok,m=(() (replicatedStorage[][][][].out.client.ui.lib.util[]).ClickHold ) ok m )(),
Client = Client,
ClientConstructor = (() ok,m=(() (replicatedStorage[][][].net.out.client) ) ok m )(),
ClientDamageBlock = (() ok,m=(() (replicatedStorage[][][][].out.shared.remotes).BlockEngineRemotes.Client ) ok m )(),
CombatConstant = (() ok,m=(() (replicatedStorage.TS.combat[]).CombatConstant ) ok m )(),
DamageIndicator = Knit.Controllers.DamageIndicatorController Knit.Controllers.DamageIndicatorController.spawnDamageIndicator ,
DefaultKillEffect = (() ok,m=(() (lplr.PlayerScripts.TS.controllers.game.locker[].effects[]) ) ok m )(),
EmoteType = (() ok,m=(() (replicatedStorage.TS.locker.emote[]).EmoteType ) ok m )(),
GameAnimationUtil = (() ok,m=(() (replicatedStorage.TS.animation[]).GameAnimationUtil ) ok m )(),
getIcon = (item, showinv)
itemmeta = bedwars.ItemMeta[item.itemType]
itemmeta showinv itemmeta.image
,
getInventory = (plr)
suc, res = (()
InventoryUtil.(plr)
)
suc res {
items = {},
armor = {}
}
,
HudAliveCount = (() ok,m=(() (lplr.PlayerScripts.TS.controllers.global[].ui.game[]).HudAlivePlayerCounts ) ok m )(),
ItemMeta = (() ok,v=(() debug.((replicatedStorage.TS.item[]).getItemMeta, ) ) ok v )(),
KillEffectMeta = (() ok,m=(() (replicatedStorage.TS.locker[][]).KillEffectMeta ) ok m )(),
KillFeedController = (() ok,v=(Flamework.resolveDependency,) ok v )(),
Knit = Knit,
KnockbackUtil = (() ok,m=(() (replicatedStorage.TS.damage[]).KnockbackUtil ) ok m )(),
MageKitUtil = (() ok,m=(() (replicatedStorage.TS.games.bedwars.kit.kits.mage[]).MageKitUtil ) ok m )(),
NametagController = Knit.Controllers.NametagController,
PartyController = (() ok,v=(Flamework.resolveDependency,) ok v )(),
ProjectileMeta = (() ok,m=(() (replicatedStorage.TS.projectile[]).ProjectileMeta ) ok m )(),
QueryUtil = (() ok,m=(() (replicatedStorage[][][][].out).GameQueryUtil ) ok m )(),
QueueCard = (() ok,m=(() (lplr.PlayerScripts.TS.controllers.global.queue.ui[]).QueueCard ) ok m )(),
QueueMeta = (() ok,m=(() (replicatedStorage.TS.game[]).QueueMeta ) ok m )(),
Roact = (() ok,m=(() (replicatedStorage[][][][].src) ) ok m )(),
RuntimeLib = (() ok,m=(() (replicatedStorage[].RuntimeLib) ) ok m )(),
SoundList = (() ok,m=(() (replicatedStorage.TS.sound[]).GameSound ) ok m )(),
SoundManager = (() ok,m=(() (replicatedStorage[][][][].out).SoundManager ) ok m )(),
Store = (() ok,m=(() (lplr.PlayerScripts.TS.ui.store).ClientStore ) ok m )(),
TeamUpgradeMeta = (() ok,v=(() debug.((replicatedStorage.TS.games.bedwars[][]).getTeamUpgradeMetaForQueue, ) ) ok v )(),
UILayers = (() ok,m=(() (replicatedStorage[][][][].out).UILayers ) ok m )(),
VisualizerUtils = (() ok,m=(() (lplr.PlayerScripts.TS.lib.visualizer[]).VisualizerUtils ) ok m )(),
WeldTable = (() ok,m=(() (replicatedStorage.TS.util[]).WeldUtil ) ok m )(),
WinEffectMeta = (() ok,m=(() (replicatedStorage.TS.locker[][]).WinEffectMeta ) ok m )(),
ZapNetworking = (() ok,m=(() (lplr.PlayerScripts.TS.lib.network) ) ok m )()
}, {
__index = (self, ind)
v = Knit Knit.Controllers Knit.Controllers[ind]
(self, ind, v)
v
})
)
bedwarsOk
( .. (bedwarsErr))
bedwars = ({}, {__index = () })
()
(f, n) (f) ~= ok,v=(debug.getproto, f, n) ok v
(f, n) (f) ~= ok,v=(debug.getupvalue, f, n) ok v
(t, ...) v=t _,k ({...}) (v)~= v=v[k] v
(t, ...) v=(t,...) (v)~= v
(path, key) ok,m=(, path) ok key== m (m, key)
(...) ok,v=(Flamework.resolveDependency, ...) ok v
C = (n) Knit Knit.Controllers Knit.Controllers[n]
remoteNames = {
AfkStatus = (() ().KnitStart, ),
AttackEntity = ((), ),
BeePickup = ((), ),
CannonAim = (() ().startAiming, ),
CannonLaunch = ((), ),
ConsumeBattery = (() ().onKitLocalActivated, ),
ConsumeItem = (() ().onEnable, ),
ConsumeSoul = ((), ),
ConsumeTreeOrb = (() ().createTreeOrbInteraction, ),
DepositPinata = (() f = () ().KnitStart a = (f, ) (a, ) )(),
DragonBreath = (() ().onKitLocalActivated, ),
DragonEndFly = (() ().flapWings, ),
DragonFly = ((), ),
DropItem = ((), ),
EquipItem = (() mod = (replicatedStorage.TS.entity.entities[]) fn = mod (mod, , ) (fn, ) )(),
FireProjectile = (() ().launchProjectileWithValues, ),
GroundHit = ((), ),
GuitarHeal = ((), ),
HannahKill = (() ().registerExecuteInteractions, ),
HarvestCrop = (() f = () ().KnitStart a = (f, ) (a, ) )(),
KaliyahPunch = (() ().onKitLocalActivated, ),
MageSelect = (() ().registerTomeInteraction, ),
MinerDig = (() ().setupMinerPrompts, ),
PickupItem = ((), ),
PickupMetal = (() ().onKitLocalActivated, ),
ReportPlayer = (() m = (lplr.PlayerScripts.TS.controllers.global.report[]) m (m, , ) )(),
ResetCharacter = (() ().createBindable, ),
SpawnRaven = (() ().KnitStart, ),
SummonerClawAttack = ((), ),
WarlockTarget = (() ().KnitStart, )
}
(tab)
ind
i, v tab
v ==
ind = i
ind tab[ind + ]
i, v remoteNames
remote = (debug.(v))
remote ==
(, ..i.., , )
remotes[i] = remote
OldBreak = bedwars.BlockController.isBlockBreakable
Client.Get = (self, remoteName)
call = (self, remoteName)
remoteName == remotes.AttackEntity
{
instance = call.instance,
SendToServer = (_, attackTable, ...)
suc, plr = (()
playersService:(attackTable.entityInstance)
)
selfpos = attackTable.validate.selfPosition.value
targetpos = attackTable.validate.targetPosition.value
store.attackReach = ((selfpos - targetpos).Magnitude * ) // /
store.attackReachUpdate = () +
Reach.Enabled HitBoxes.Enabled
attackTable.validate.raycast = attackTable.validate.raycast {}
attackTable.validate.selfPosition.value += .(selfpos, targetpos).LookVector * .((selfpos - targetpos).Magnitude - , )
suc plr
(, whitelist:(plr))
call:(attackTable, ...)
}
remoteName == TrapDisabler.Enabled
{SendToServer = () }
call
bedwars.BlockController.isBlockBreakable = (self, breakTable, plr)
obj = bedwars.BlockController:():(breakTable.blockPosition)
obj obj.Name ==
_, plr playersService:()
obj:(..(plr:() )..) (, whitelist:(plr))
(self, breakTable, plr)
cache, blockhealthbar = {}, {blockHealth = -, breakingBlockPosition = .zero}
store.blockPlacer = bedwars.BlockPlacer.(bedwars.BlockEngine, )
(block, blockpos)
blockdata = bedwars.BlockController:():(blockpos)
(blockdata (blockdata:() blockdata:()) block:())
(block, blockpos)
block
breaktype = bedwars.ItemMeta[block.Name].block.breakType
tool = store.tools[breaktype]
tool = tool bedwars.ItemMeta[tool.itemType].breakBlock[breaktype]
(block, bedwars.BlockController:(blockpos)) / tool
(target, blockpos)
cache[blockpos]
(cache[blockpos])
visited, unvisited, distances, air, path = {}, {{, blockpos}}, {[blockpos] = }, {}, {}
_ = ,
_, node = (unvisited)
node
.(unvisited, )
visited[node[]] =
_, side sides
side = node[] + side
visited[side]
block = (side)
block block:() block == target
block
air[node[]] =
curdist = (block, side) + node[]
curdist < (distances[side] .huge)
.(unvisited, {curdist, side})
distances[side] = curdist
path[side] = node[]
pos, cost = , .huge
node air
distances[node] < cost
pos, cost = node, distances[node]
pos
cache[blockpos] = {
pos,
cost,
path
}
pos, cost, path
bedwars.placeBlock = (pos, item)
(item)
store.blockPlacer.blockType = item
store.blockPlacer:(bedwars.BlockController:(pos))
bedwars.breakBlock = (block, effects, anim, customHealthbar)
lplr:() entitylib.isAlive InfiniteFly.Enabled
handler = bedwars.BlockController:():(block.Name)
cost, pos, target, path = .huge
_, v (handler handler:(block) {block.Position / })
dpos, dcost, dpath = (block, v * )
dpos dcost < cost
cost, pos, target, path = dcost, dpos, v * , dpath
pos
(entitylib.character.RootPart.Position - pos).Magnitude >
dblock, dpos = (pos)
dblock
(:() - bedwars.SwordController.lastAttack) >
breaktype = bedwars.ItemMeta[dblock.Name].block.breakType
tool = store.tools[breaktype]
tool
(tool.tool)
blockhealthbar.blockHealth == - dpos ~= blockhealthbar.breakingBlockPosition
blockhealthbar.blockHealth = (dblock, dpos)
blockhealthbar.breakingBlockPosition = dpos
bedwars.ClientDamageBlock:():({
blockRef = {blockPosition = dpos},
hitPosition = pos,
hitNormal = .(.NormalId.Top)
}):((result)
result
result ==
store.damageBlockFail = () +
effects
blockdmg = (blockhealthbar.blockHealth - (result == (dblock, dpos)))
customHealthbar = customHealthbar bedwars.BlockBreaker.updateHealthbar
(bedwars.BlockBreaker, {blockPosition = dpos}, blockhealthbar.blockHealth, dblock:(), blockdmg, dblock)
blockhealthbar.blockHealth = .(blockhealthbar.blockHealth - blockdmg, )
blockhealthbar.blockHealth <=
bedwars.BlockBreaker.breakEffect:(dblock.Name, dpos, lplr)
bedwars.BlockBreaker.healthbarMaid:()
blockhealthbar.breakingBlockPosition = .zero
bedwars.BlockBreaker.breakEffect:(dblock.Name, dpos, lplr)
anim
animation = bedwars.AnimationUtil:(lplr, bedwars.BlockController:():())
bedwars.ViewmodelController:()
.()
animation:()
animation:()
)
effects
pos, path, target
_, v .NormalId:()
.(sides, .(v) * )
(new, old)
new.Bedwars ~= old.Bedwars
store.equippedKit = new.Bedwars.kit ~= new.Bedwars.kit
new.Game ~= old.Game
store.matchState = new.Game.matchState
store.queueType = new.Game.queueType
new.Inventory ~= old.Inventory
newinv = (new.Inventory new.Inventory.observedInventory {inventory = {}})
oldinv = (old.Inventory old.Inventory.observedInventory {inventory = {}})
store.inventory = newinv
newinv ~= oldinv
vapeEvents.InventoryChanged:()
newinv.inventory.items ~= oldinv.inventory.items
vapeEvents.InventoryAmountChanged:()
store.tools.sword = ()
_, v {, , }
store.tools[v] = (v)
newinv.inventory.hand ~= oldinv.inventory.hand
currentHand, toolType = new.Inventory.observedInventory.inventory.hand,
currentHand
handData = bedwars.ItemMeta[currentHand.itemType]
toolType = handData.sword handData.block currentHand.itemType:()
store.hand = {
tool = currentHand currentHand.tool,
amount = currentHand currentHand.amount ,
toolType = toolType
}
storeChanged = bedwars.Store.changed:(updateStore)
(bedwars.Store:(), {})
_, event {, , , , , }
vape.Connections
bedwars.Client:(event):((connection)
vape:(connection:((...)
vapeEvents[event]:(...)
))
)
vape:(bedwars.ZapNetworking.EntityDamageEventZap.((...)
vapeEvents.EntityDamageEvent:({
entityInstance = ...,
damage = (, ...),
damageType = (, ...),
fromPosition = (, ...),
fromEntity = (, ...),
knockbackMultiplier = (, ...),
knockbackId = (, ...),
disableDamageHighlight = (, ...)
})
))
_, event {, }
vape:(bedwars.ZapNetworking[event..].((...)
data = {
blockRef = {
blockPosition = ...,
},
player = (, ...)
}
i, v cache
((data.blockRef.blockPosition * ) - v[]).Magnitude <=
.(v[])
.(v)
cache[i] =
vapeEvents[event]:(data)
))
store.blocks = (, gui)
store.shop = ({, }, gui, (tab, obj)
.(tab, {
Id = obj.Name,
RootPart = obj,
Shop = obj:(),
Upgrades = obj:()
})
)
store.enchant = ({, }, gui, , (tab, obj, tag)
obj:() tag ==
obj = .(tab, obj)
obj
.(tab, obj)
)
kills = sessioninfo:()
beds = sessioninfo:()
wins = sessioninfo:()
games = sessioninfo:()
mapname =
sessioninfo:(, , ()
mapname
, )
.(, ()
games:()
)
.(()
(()
.() store.matchState ~= vape.Loaded ==
vape.Loaded ==
mapname = :(, ):(, ):()[].Name
mapname = .(.(mapname, )[] mapname, , )
)
)
vape:(vapeEvents.BedwarsBedBreak.Event:((bedTable)
bedTable.player bedTable.player.UserId == lplr.UserId
beds:()
))
vape:(vapeEvents.MatchEndEvent.Event:((winTable)
(bedwars.Store:().Game.myTeam {}).id == winTable.winningTeamId lplr.Neutral
wins:()
))
vape:(vapeEvents.EntityDeathEvent.Event:((deathTable)
killer = playersService:(deathTable.fromEntity)
killed = playersService:(deathTable.entityInstance)
killed killer
killed ~= lplr killer == lplr
kills:()
))
.(()
entitylib.isAlive
entitylib.character.AirTime = entitylib.character.Humanoid.FloorMaterial ~= .Material.Air () entitylib.character.AirTime
_, v entitylib.List
v.LandTick = .(v.RootPart.Velocity.Y) < v.LandTick ()
(() - v.LandTick) > v.Jumps ~=
v.Jumps =
v.Jumping =
.()
vape.Loaded ==
)
(()
getthreadidentity setthreadidentity
old = ()
()
bedwars.Shop = (replicatedStorage.TS.games.bedwars.shop[]).BedwarsShop
bedwars.ShopItems = debug.(debug.(bedwars.Shop.getShopItem, ), )
bedwars.Shop.(, lplr)
(old)
store.shopLoaded =
.(()
.()
vape.Loaded == bedwars.AppController:()
bedwars.Shop = (replicatedStorage.TS.games.bedwars.shop[]).BedwarsShop
bedwars.ShopItems = debug.(debug.(bedwars.Shop.getShopItem, ), )
store.shopLoaded =
)
)
vape:(()
Client.Get = OldGet
bedwars.BlockController.isBlockBreakable = OldBreak
store.blockPlacer:()
_, v vapeEvents
v:()
_, v cache
.(v[])
.(v)
.(store.blockPlacer)
.(vapeEvents)
.(bedwars)
.(store)
.(cache)
.(sides)
.(remotes)
storeChanged:()
storeChanged =
)
)
_, v {, , , , , , , , , }
vape:(v)
(()
AimAssist
Targets
Sort
AimSpeed
Distance
AngleSlider
StrafeIncrease
KillauraTarget
ClickAim
AimAssist = vape.Categories.Combat:({
Name = ,
Function = (callback)
callback
AimAssist:(runService.Heartbeat:((dt)
entitylib.isAlive store.hand.toolType == (( ClickAim.Enabled) (() - bedwars.SwordController.lastSwing) < )
ent = KillauraTarget.Enabled entitylib.({
Range = Distance.Value,
Part = ,
Wallcheck = Targets.Walls.Enabled,
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Sort = sortmethods[Sort.Value]
}) store.KillauraTarget
ent
delta = (ent.RootPart.Position - entitylib.character.RootPart.Position)
localfacing = entitylib.character.RootPart.CFrame.LookVector * .(, , )
angle = .(localfacing:((delta * .(, , )).Unit))
angle >= (.(AngleSlider.Value) / )
targetinfo.Targets[ent] = () +
gameCamera.CFrame = gameCamera.CFrame:(.(gameCamera.CFrame.p, ent.RootPart.Position), (AimSpeed.Value + (StrafeIncrease.Enabled (inputService:(.KeyCode.A) inputService:(.KeyCode.D)) )) * dt)
))
,
Tooltip =
})
Targets = AimAssist:({
Players = ,
Walls =
})
methods = {, }
i sortmethods
.(methods, i)
.(methods, i)
Sort = AimAssist:({
Name = ,
List = methods
})
AimSpeed = AimAssist:({
Name = ,
Min = ,
Max = ,
Default =
})
Distance = AimAssist:({
Name = ,
Min = ,
Max = ,
Default = ,
Suffx = (val)
val ==
})
AngleSlider = AimAssist:({
Name = ,
Min = ,
Max = ,
Default =
})
ClickAim = AimAssist:({
Name = ,
Default =
})
KillauraTarget = AimAssist:({
Name =
})
StrafeIncrease = AimAssist:({Name = })
)
(()
AutoClicker
CPS
BlockCPS = {}
Thread
()
Thread
.(Thread)
Thread = .( / , ()
bedwars.AppController:(bedwars.UILayers.MAIN)
blockPlacer = bedwars.BlockPlacementController.blockPlacer
store.hand.toolType == blockPlacer
(:() - bedwars.BlockCpsController.lastPlaceTimestamp) >= (( / ) * )
mouseinfo = blockPlacer.clientManager:():()
mouseinfo mouseinfo.placementPosition == mouseinfo.placementPosition
.(blockPlacer.placeBlock, blockPlacer, mouseinfo.placementPosition)
store.hand.toolType ==
bedwars.SwordController:()
.( / (store.hand.toolType == BlockCPS CPS).())
AutoClicker.Enabled
)
AutoClicker = vape.Categories.Combat:({
Name = ,
Function = (callback)
callback
AutoClicker:(inputService.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
()
))
AutoClicker:(inputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 Thread
.(Thread)
Thread =
))
inputService.TouchEnabled
(()
AutoClicker:(lplr.PlayerGui.MobileUI[].MouseButton1Down:(AutoClick))
AutoClicker:(lplr.PlayerGui.MobileUI[].MouseButton1Up:(()
Thread
.(Thread)
Thread =
))
)
Thread
.(Thread)
Thread =
,
Tooltip =
})
CPS = AutoClicker:({
Name = ,
Min = ,
Max = ,
DefaultMin = ,
DefaultMax =
})
AutoClicker:({
Name = ,
Default = ,
Function = (callback)
BlockCPS.Object
BlockCPS.Object.Visible = callback
})
BlockCPS = AutoClicker:({
Name = ,
Min = ,
Max = ,
DefaultMin = ,
DefaultMax = ,
Darker =
})
)
(()
old
vape.Categories.Combat:({
Name = ,
Function = (callback)
callback
old = bedwars.SwordController.isClickingTooFast
bedwars.SwordController.isClickingTooFast = (self)
self.lastSwing = .()
bedwars.SwordController.isClickingTooFast = old
,
Tooltip =
})
)
(()
Value
Reach = vape.Categories.Combat:({
Name = ,
Function = (callback)
bedwars.CombatConstant.RAYCAST_SWORD_CHARACTER_DISTANCE = callback Value.Value +
,
Tooltip =
})
Value = Reach:({
Name = ,
Min = ,
Max = ,
Default = ,
Function = (val)
Reach.Enabled
bedwars.CombatConstant.RAYCAST_SWORD_CHARACTER_DISTANCE = val +
,
Suffix = (val)
val ==
})
)
(()
Sprint
old
Sprint = vape.Categories.Combat:({
Name = ,
Function = (callback)
callback
inputService.TouchEnabled
(()
lplr.PlayerGui.MobileUI[].Visible =
)
old = bedwars.SprintController.stopSprinting
bedwars.SprintController.stopSprinting = (...)
call = (...)
bedwars.SprintController:()
call
Sprint:(entitylib.Events.LocalAdded:(()
.(, ()
bedwars.SprintController:()
)
))
bedwars.SprintController:()
inputService.TouchEnabled
(()
lplr.PlayerGui.MobileUI[].Visible =
)
bedwars.SprintController.stopSprinting = old
bedwars.SprintController:()
,
Tooltip =
})
)
(()
TriggerBot
CPS
rayParams = RaycastParams.()
TriggerBot = vape.Categories.Combat:({
Name = ,
Function = (callback)
callback
doAttack
bedwars.AppController:(bedwars.UILayers.MAIN)
entitylib.isAlive store.hand.toolType == bedwars.DaoController.chargingMaid ==
attackRange = bedwars.ItemMeta[store.hand.tool.Name].sword.attackRange
rayParams.FilterDescendantsInstances = {lplr.Character}
unit = lplr:().UnitRay
localPos = entitylib.character.RootPart.Position
rayRange = (attackRange )
ray = bedwars.QueryUtil:(unit.Origin, unit.Direction * , rayParams)
ray (localPos - ray.Instance.Position).Magnitude <= rayRange
limit = (attackRange)
_, ent entitylib.List
doAttack = ent.Targetable ray.Instance:(ent.Character) (localPos - ent.RootPart.Position).Magnitude <= rayRange
doAttack
doAttack = doAttack bedwars.SwordController:(attackRange * , )
doAttack
bedwars.SwordController:()
.(doAttack / CPS.() )
TriggerBot.Enabled
,
Tooltip =
})
CPS = TriggerBot:({
Name = ,
Min = ,
Max = ,
DefaultMin = ,
DefaultMax =
})
)
(()
Velocity
Horizontal
Vertical
Chance
TargetCheck
rand, old = Random.()
Velocity = vape.Categories.Combat:({
Name = ,
Function = (callback)
callback
old = bedwars.KnockbackUtil.applyKnockback
bedwars.KnockbackUtil.applyKnockback = (root, mass, dir, knockback, ...)
rand:(, ) > Chance.Value
check = ( TargetCheck.Enabled) entitylib.({
Range = ,
Part = ,
Players =
})
check
knockback = knockback {}
Horizontal.Value == Vertical.Value ==
knockback.horizontal = (knockback.horizontal ) * (Horizontal.Value / )
knockback.vertical = (knockback.vertical ) * (Vertical.Value / )
(root, mass, dir, knockback, ...)
bedwars.KnockbackUtil.applyKnockback = old
,
Tooltip =
})
Horizontal = Velocity:({
Name = ,
Min = ,
Max = ,
Default = ,
Suffix =
})
Vertical = Velocity:({
Name = ,
Min = ,
Max = ,
Default = ,
Suffix =
})
Chance = Velocity:({
Name = ,
Min = ,
Max = ,
Default = ,
Suffix =
})
TargetCheck = Velocity:({Name = })
)
AntiFallDirection
(()
AntiFall
Mode
Material
Color
rayCheck = RaycastParams.()
rayCheck.RespectCanCollide =
()
mag = .huge
_, pos bedwars.BlockController:():()
pos = pos *
pos.Y < mag (pos + .(, , ))
mag = pos.Y
mag
AntiFall = vape.Categories.Blatant:({
Name = ,
Function = (callback)
callback
.() store.matchState ~= ( AntiFall.Enabled)
AntiFall.Enabled
pos, debounce = (), ()
pos ~= .huge
AntiFallPart = .()
AntiFallPart.Size = .(, , )
AntiFallPart.Transparency = - Color.Opacity
AntiFallPart.Material = .Material[Material.Value]
AntiFallPart.Color = .(Color.Hue, Color.Sat, Color.Value)
AntiFallPart.Position = .(, pos - , )
AntiFallPart.CanCollide = Mode.Value ==
AntiFallPart.Anchored =
AntiFallPart.CanQuery =
AntiFallPart.Parent =
AntiFall:(AntiFallPart)
AntiFall:(AntiFallPart.Touched:((touched)
touched.Parent == lplr.Character entitylib.isAlive debounce < ()
debounce = () +
Mode.Value ==
top = ()
top
lastTeleport = lplr:()
connection
connection = runService.PreSimulation:(()
vape.Modules.Fly.Enabled vape.Modules.InfiniteFly.Enabled vape.Modules.LongJump.Enabled
connection:()
AntiFallDirection =
entitylib.isAlive lplr:() == lastTeleport
delta = ((top - entitylib.character.RootPart.Position) * .(, , ))
root = entitylib.character.RootPart
AntiFallDirection = delta.Unit == delta.Unit delta.Unit .zero
root.Velocity *= .(, , )
rayCheck.FilterDescendantsInstances = {gameCamera, lplr.Character}
rayCheck.CollisionGroup = root.CollisionGroup
ray = :(root.Position, AntiFallDirection, rayCheck)
ray
_ = ,
dpos = (ray.Position + ray.Normal * ) + .(, , )
(dpos)
top = .(top.X, pos.Y, top.Z)
root.CFrame += .(, top.Y - root.Position.Y, )
frictionTable.Speed
root.AssemblyLinearVelocity = (AntiFallDirection * ()) + .(, root.AssemblyLinearVelocity.Y, )
delta.Magnitude <
connection:()
AntiFallDirection =
connection:()
AntiFallDirection =
)
AntiFall:(connection)
Mode.Value ==
entitylib.character.RootPart.Velocity = .(entitylib.character.RootPart.Velocity.X, , entitylib.character.RootPart.Velocity.Z)
))
AntiFallDirection =
,
Tooltip =
})
Mode = AntiFall:({
Name = ,
List = {, , },
Function = function(val)
if AntiFallPart then
AntiFallPart.CanCollide = val == 'Collide'
end
end,
Tooltip = 'Normal - Smoothly moves you towards the nearest safe point\nVelocity - Launches you upward after touching\nCollide - Allows you to walk on the part'
})
local materials = {'ForceField'}
for _, v in Enum.Material:GetEnumItems() do
if v.Name ~= 'ForceField' then
table.insert(materials, v.Name)
end
end
Material = AntiFall:CreateDropdown({
Name = 'Material',
List = materials,
Function = function(val)
if AntiFallPart then
AntiFallPart.Material = Enum.Material[val]
end
end
})
Color = AntiFall:CreateColorSlider({
Name = 'Color',
DefaultOpacity = 0.5,
Function = function(h, s, v, o)
if AntiFallPart then
AntiFallPart.Color = Color3.fromHSV(h, s, v)
AntiFallPart.Transparency = 1 - o
end
end
})
end)
run(function()
local FastBreak
local Time
FastBreak = vape.Categories.Blatant:CreateModule({
Name = 'FastBreak',
Function = function(callback)
if callback then
repeat
bedwars.BlockBreakController.blockBreaker:setCooldown(Time.Value)
task.wait(0.1)
until not FastBreak.Enabled
else
bedwars.BlockBreakController.blockBreaker:setCooldown(0.3)
end
end,
Tooltip = 'Decreases block hit cooldown'
})
Time = FastBreak:CreateSlider({
Name = 'Break speed',
Min = 0,
Max = 0.3,
Default = 0.25,
Decimal = 100,
Suffix = 'seconds'
})
end)
local Fly
local LongJump
run(function()
local Value
local VerticalValue
local WallCheck
local PopBalloons
local TP
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local up, down, old = 0, 0
Fly = vape.Categories.Blatant:CreateModule({
Name = 'Fly',
Function = function(callback)
frictionTable.Fly = callback or nil
updateVelocity()
if callback then
up, down, old = 0, 0, bedwars.BalloonController.deflateBalloon
bedwars.BalloonController.deflateBalloon = function() end
local tpTick, tpToggle, oldy = tick(), true
if lplr.Character and (lplr.Character:GetAttribute('InflatedBalloons') or 0) == 0 and getItem('balloon') then
bedwars.BalloonController:inflateBalloon()
end
Fly:Clean(vapeEvents.AttributeChanged.Event:Connect(function(changed)
if changed == 'InflatedBalloons' and (lplr.Character:GetAttribute('InflatedBalloons') or 0) == 0 and getItem('balloon') then
bedwars.BalloonController:inflateBalloon()
end
end))
Fly:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive and not InfiniteFly.Enabled and isnetworkowner(entitylib.character.RootPart) then
local flyAllowed = (lplr.Character:GetAttribute('InflatedBalloons') and lplr.Character:GetAttribute('InflatedBalloons') > 0) or store.matchState == 2
local mass = (1.5 + (flyAllowed and 6 or 0) * (tick() % 0.4 < 0.2 and -1 or 1)) + ((up + down) * VerticalValue.Value)
local root, moveDirection = entitylib.character.RootPart, entitylib.character.Humanoid.MoveDirection
local velo = getSpeed()
local destination = (moveDirection * math.max(Value.Value - velo, 0) * dt)
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera, AntiFallPart}
rayCheck.CollisionGroup = root.CollisionGroup
if WallCheck.Enabled then
local ray = workspace:Raycast(root.Position, destination, rayCheck)
if ray then
destination = ((ray.Position + ray.Normal) - root.Position)
end
end
if not flyAllowed then
if tpToggle then
local airleft = (tick() - entitylib.character.AirTime)
if airleft > 2 then
if not oldy then
local ray = workspace:Raycast(root.Position, Vector3.new(0, -1000, 0), rayCheck)
if ray and TP.Enabled then
tpToggle = false
oldy = root.Position.Y
tpTick = tick() + 0.11
root.CFrame = CFrame.lookAlong(Vector3.new(root.Position.X, ray.Position.Y + entitylib.character.HipHeight, root.Position.Z), root.CFrame.LookVector)
end
end
end
else
if oldy then
if tpTick < tick() then
local newpos = Vector3.new(root.Position.X, oldy, root.Position.Z)
root.CFrame = CFrame.lookAlong(newpos, root.CFrame.LookVector)
tpToggle = true
oldy = nil
else
mass = 0
end
end
end
end
root.CFrame += destination
root.AssemblyLinearVelocity = (moveDirection * velo) + Vector3.new(0, mass, 0)
end
end))
Fly:Clean(inputService.InputBegan:Connect(function(input)
if not inputService:GetFocusedTextBox() then
if input.KeyCode == Enum.KeyCode.Space or input.KeyCode == Enum.KeyCode.ButtonA then
up = 1
elseif input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.ButtonL2 then
down = -1
end
end
end))
Fly:Clean(inputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space or input.KeyCode == Enum.KeyCode.ButtonA then
up = 0
elseif input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.ButtonL2 then
down = 0
end
end))
if inputService.TouchEnabled then
pcall(function()
local jumpButton = lplr.PlayerGui.TouchGui.TouchControlFrame.JumpButton
Fly:Clean(jumpButton:GetPropertyChangedSignal('ImageRectOffset'):Connect(function()
up = jumpButton.ImageRectOffset.X == 146 and 1 or 0
end))
end)
end
else
bedwars.BalloonController.deflateBalloon = old
if PopBalloons.Enabled and entitylib.isAlive and (lplr.Character:GetAttribute('InflatedBalloons') or 0) > 0 then
for _ = 1, 3 do
bedwars.BalloonController:deflateBalloon()
end
end
end
end,
ExtraText = function()
return 'Heatseeker'
end,
Tooltip = 'Makes you go zoom.'
})
Value = Fly:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 23,
Default = 23,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
VerticalValue = Fly:CreateSlider({
Name = 'Vertical Speed',
Min = 1,
Max = 150,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
WallCheck = Fly:CreateToggle({
Name = 'Wall Check',
Default = true
})
PopBalloons = Fly:CreateToggle({
Name = 'Pop Balloons',
Default = true
})
TP = Fly:CreateToggle({
Name = 'TP Down',
Default = true
})
end)
run(function()
local Mode
local Expand
local objects, set = {}
local function createHitbox(ent)
if ent.Targetable and ent.Player then
local hitbox = Instance.new('Part')
hitbox.Size = Vector3.new(3, 6, 3) + Vector3.one * (Expand.Value / 5)
hitbox.Position = ent.RootPart.Position
hitbox.CanCollide = false
hitbox.Massless = true
hitbox.Transparency = 1
hitbox.Parent = ent.Character
local weld = Instance.new('Motor6D')
weld.Part0 = hitbox
weld.Part1 = ent.RootPart
weld.Parent = hitbox
objects[ent] = hitbox
end
end
HitBoxes = vape.Categories.Blatant:CreateModule({
Name = 'HitBoxes',
Function = function(callback)
if callback then
if Mode.Value == 'Sword' then
debug.setconstant(bedwars.SwordController.swingSwordInRegion, 6, (Expand.Value / 3))
set = true
else
HitBoxes:Clean(entitylib.Events.EntityAdded:Connect(createHitbox))
HitBoxes:Clean(entitylib.Events.EntityRemoving:Connect(function(ent)
if objects[ent] then
objects[ent]:Destroy()
objects[ent] = nil
end
end))
for _, ent in entitylib.List do
createHitbox(ent)
end
end
else
if set then
debug.setconstant(bedwars.SwordController.swingSwordInRegion, 6, 3.8)
set = nil
end
for _, part in objects do
part:Destroy()
end
table.clear(objects)
end
end,
Tooltip = 'Expands attack hitbox'
})
Mode = HitBoxes:CreateDropdown({
Name = 'Mode',
List = {'Sword', 'Player'},
Function = function()
if HitBoxes.Enabled then
HitBoxes:Toggle()
HitBoxes:Toggle()
end
end,
Tooltip = 'Sword - Increases the range around you to hit entities\nPlayer - Increases the players hitbox'
})
Expand = HitBoxes:CreateSlider({
Name = 'Expand amount',
Min = 0,
Max = 14.4,
Default = 14.4,
Decimal = 10,
Function = function(val)
if HitBoxes.Enabled then
if Mode.Value == 'Sword' then
debug.setconstant(bedwars.SwordController.swingSwordInRegion, 6, (val / 3))
else
for _, part in objects do
part.Size = Vector3.new(3, 6, 3) + Vector3.one * (val / 5)
end
end
end
end,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
vape.Categories.Blatant:CreateModule({
Name = 'KeepSprint',
Function = function(callback)
debug.setconstant(bedwars.SprintController.startSprinting, 5, callback and 'blockSprinting' or 'blockSprint')
bedwars.SprintController:stopSprinting()
end,
Tooltip = 'Lets you sprint with a speed potion.'
})
end)
local Attacking
run(function()
local Killaura
local Targets
local Sort
local SwingRange
local AttackRange
local ChargeTime
local UpdateRate
local AngleSlider
local MaxTargets
local Mouse
local Swing
local GUI
local BoxSwingColor
local BoxAttackColor
local ParticleTexture
local ParticleColor1
local ParticleColor2
local ParticleSize
local Face
local Animation
local AnimationMode
local AnimationSpeed
local AnimationTween
local Limit
local LegitAura
local Particles, Boxes = {}, {}
local anims, AnimDelay, AnimTween, armC0 = vape.Libraries.auraanims, tick()
local AttackRemote = {FireServer = function() end}
task.spawn(function()
AttackRemote = bedwars.Client:Get(remotes.AttackEntity).instance
end)
local function getAttackData()
if Mouse.Enabled then
if not inputService:IsMouseButtonPressed(0) then return false end
end
if GUI.Enabled then
if bedwars.AppController:isLayerOpen(bedwars.UILayers.MAIN) then return false end
end
local sword = Limit.Enabled and store.hand or store.tools.sword
if not sword or not sword.tool then return false end
local meta = bedwars.ItemMeta[sword.tool.Name]
if Limit.Enabled then
if store.hand.toolType ~= 'sword' or bedwars.DaoController.chargingMaid then return false end
end
if LegitAura.Enabled then
if (tick() - bedwars.SwordController.lastSwing) > 0.2 then return false end
end
return sword, meta
end
Killaura = vape.Categories.Blatant:CreateModule({
Name = 'Killaura',
Function = function(callback)
if callback then
if inputService.TouchEnabled then
pcall(function()
lplr.PlayerGui.MobileUI['2'].Visible = Limit.Enabled
end)
end
if Animation.Enabled and not (identifyexecutor and table.find({'Argon', 'Delta'}, ({identifyexecutor()})[1])) then
local fake = {
Controllers = {
ViewmodelController = {
isVisible = function()
return not Attacking
end,
playAnimation = function(...)
if not Attacking then
bedwars.ViewmodelController:playAnimation(select(2, ...))
end
end
}
}
}
debug.setupvalue(oldSwing or bedwars.SwordController.playSwordEffect, 6, fake)
debug.setupvalue(bedwars.ScytheController.playLocalAnimation, 3, fake)
task.spawn(function()
local started = false
repeat
if Attacking then
if not armC0 then
armC0 = gameCamera.Viewmodel.RightHand.RightWrist.C0
end
local first = not started
started = true
if AnimationMode.Value == 'Random' then
anims.Random = {{CFrame = CFrame.Angles(math.rad(math.random(1, 360)), math.rad(math.random(1, 360)), math.rad(math.random(1, 360))), Time = 0.12}}
end
for _, v in anims[AnimationMode.Value] do
AnimTween = tweenService:Create(gameCamera.Viewmodel.RightHand.RightWrist, TweenInfo.new(first and (AnimationTween.Enabled and 0.001 or 0.1) or v.Time / AnimationSpeed.Value, Enum.EasingStyle.Linear), {
C0 = armC0 * v.CFrame
})
AnimTween:Play()
AnimTween.Completed:Wait()
first = false
if (not Killaura.Enabled) or (not Attacking) then break end
end
elseif started then
started = false
AnimTween = tweenService:Create(gameCamera.Viewmodel.RightHand.RightWrist, TweenInfo.new(AnimationTween.Enabled and 0.001 or 0.3, Enum.EasingStyle.Exponential), {
C0 = armC0
})
AnimTween:Play()
end
if not started then
task.wait(1 / UpdateRate.Value)
end
until (not Killaura.Enabled) or (not Animation.Enabled)
end)
end
repeat
local attacked, sword, meta = {}, getAttackData()
Attacking = false
store.KillauraTarget = nil
if sword then
local plrs = entitylib.AllPosition({
Range = SwingRange.Value,
Wallcheck = Targets.Walls.Enabled or nil,
Part = 'RootPart',
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Limit = MaxTargets.Value,
Sort = sortmethods[Sort.Value]
})
if #plrs > 0 then
switchItem(sword.tool, 0)
local selfpos = entitylib.character.RootPart.Position
local localfacing = entitylib.character.RootPart.CFrame.LookVector * Vector3.new(1, 0, 1)
for _, v in plrs do
local delta = (v.RootPart.Position - selfpos)
local angle = math.acos(localfacing:Dot((delta * Vector3.new(1, 0, 1)).Unit))
if angle > (math.rad(AngleSlider.Value) / 2) then continue end
table.insert(attacked, {
Entity = v,
Check = delta.Magnitude > AttackRange.Value and BoxSwingColor or BoxAttackColor
})
targetinfo.Targets[v] = tick() + 1
if not Attacking then
Attacking = true
store.KillauraTarget = v
if not Swing.Enabled and AnimDelay < tick() and not LegitAura.Enabled then
AnimDelay = tick() + (meta.sword.respectAttackSpeedForEffects and meta.sword.attackSpeed or 0.11)
bedwars.SwordController:playSwordEffect(meta, false)
if meta.displayName:find(' Scythe') then
bedwars.ScytheController:playLocalAnimation()
end
if vape.ThreadFix then
setthreadidentity(8)
end
end
end
if delta.Magnitude > AttackRange.Value then continue end
local actualRoot = v.Character.PrimaryPart
if actualRoot then
local dir = CFrame.lookAt(selfpos, actualRoot.Position).LookVector
local pos = selfpos + dir * math.max(delta.Magnitude - 14.399, 0)
bedwars.SwordController.lastAttack = workspace:GetServerTimeNow()
store.attackReach = (delta.Magnitude * 100) // 1 / 100
store.attackReachUpdate = tick() + 1
AttackRemote:FireServer({
weapon = sword.tool,
chargedAttack = {chargeRatio = 0},
entityInstance = v.Character,
validate = {
raycast = {
cameraPosition = {value = pos},
cursorDirection = {value = dir}
},
targetPosition = {value = actualRoot.Position},
selfPosition = {value = pos}
}
})
end
end
end
end
for i, v in Boxes do
v.Adornee = attacked[i] and attacked[i].Entity.RootPart or nil
if v.Adornee then
v.Color3 = Color3.fromHSV(attacked[i].Check.Hue, attacked[i].Check.Sat, attacked[i].Check.Value)
v.Transparency = 1 - attacked[i].Check.Opacity
end
end
for i, v in Particles do
v.Position = attacked[i] and attacked[i].Entity.RootPart.Position or Vector3.new(9e9, 9e9, 9e9)
v.Parent = attacked[i] and gameCamera or nil
end
if Face.Enabled and attacked[1] then
local vec = attacked[1].Entity.RootPart.Position * Vector3.new(1, 0, 1)
entitylib.character.RootPart.CFrame = CFrame.lookAt(entitylib.character.RootPart.Position, Vector3.new(vec.X, entitylib.character.RootPart.Position.Y + 0.001, vec.Z))
end
task.wait(#attacked > 0 and #attacked * 0.02 or 1 / UpdateRate.Value)
until not Killaura.Enabled
else
store.KillauraTarget = nil
for _, v in Boxes do
v.Adornee = nil
end
for _, v in Particles do
v.Parent = nil
end
if inputService.TouchEnabled then
pcall(function()
lplr.PlayerGui.MobileUI['2'].Visible = true
end)
end
debug.setupvalue(oldSwing or bedwars.SwordController.playSwordEffect, 6, bedwars.Knit)
debug.setupvalue(bedwars.ScytheController.playLocalAnimation, 3, bedwars.Knit)
Attacking = false
if armC0 then
AnimTween = tweenService:Create(gameCamera.Viewmodel.RightHand.RightWrist, TweenInfo.new(AnimationTween.Enabled and 0.001 or 0.3, Enum.EasingStyle.Exponential), {
C0 = armC0
})
AnimTween:Play()
end
end
end,
Tooltip = 'Attack players around you\nwithout aiming at them.'
})
Targets = Killaura:CreateTargets({
Players = true,
NPCs = true
})
local methods = {'Damage', 'Distance'}
for i in sortmethods do
if not table.find(methods, i) then
table.insert(methods, i)
end
end
SwingRange = Killaura:CreateSlider({
Name = 'Swing range',
Min = 1,
Max = 28,
Default = 28,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
AttackRange = Killaura:CreateSlider({
Name = 'Attack range',
Min = 1,
Max = 28,
Default = 28,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
AngleSlider = Killaura:CreateSlider({
Name = 'Max angle',
Min = 1,
Max = 360,
Default = 360
})
UpdateRate = Killaura:CreateSlider({
Name = 'Update rate',
Min = 1,
Max = 120,
Default = 60,
Suffix = 'hz'
})
MaxTargets = Killaura:CreateSlider({
Name = 'Max targets',
Min = 1,
Max = 5,
Default = 5
})
Sort = Killaura:CreateDropdown({
Name = 'Target Mode',
List = methods
})
Mouse = Killaura:CreateToggle({Name = 'Require mouse down'})
Swing = Killaura:CreateToggle({Name = 'No Swing'})
GUI = Killaura:CreateToggle({Name = 'GUI check'})
Killaura:CreateToggle({
Name = 'Show target',
Function = function(callback)
BoxSwingColor.Object.Visible = callback
BoxAttackColor.Object.Visible = callback
if callback then
for i = 1, 10 do
local box = Instance.new('BoxHandleAdornment')
box.Adornee = nil
box.AlwaysOnTop = true
box.Size = Vector3.new(3, 5, 3)
box.CFrame = CFrame.new(0, -0.5, 0)
box.ZIndex = 0
box.Parent = vape.holder
Boxes[i] = box
end
else
for _, v in Boxes do
v:Destroy()
end
table.clear(Boxes)
end
end
})
BoxSwingColor = Killaura:CreateColorSlider({
Name = 'Target Color',
Darker = true,
DefaultHue = 0.6,
DefaultOpacity = 0.5,
Visible = false
})
BoxAttackColor = Killaura:CreateColorSlider({
Name = 'Attack Color',
Darker = true,
DefaultOpacity = 0.5,
Visible = false
})
Killaura:CreateToggle({
Name = 'Target particles',
Function = function(callback)
ParticleTexture.Object.Visible = callback
ParticleColor1.Object.Visible = callback
ParticleColor2.Object.Visible = callback
ParticleSize.Object.Visible = callback
if callback then
for i = 1, 10 do
local part = Instance.new('Part')
part.Size = Vector3.new(2, 4, 2)
part.Anchored = true
part.CanCollide = false
part.Transparency = 1
part.CanQuery = false
part.Parent = Killaura.Enabled and gameCamera or nil
local particles = Instance.new('ParticleEmitter')
particles.Brightness = 1.5
particles.Size = NumberSequence.new(ParticleSize.Value)
particles.Shape = Enum.ParticleEmitterShape.Sphere
particles.Texture = ParticleTexture.Value
particles.Transparency = NumberSequence.new(0)
particles.Lifetime = NumberRange.new(0.4)
particles.Speed = NumberRange.new(16)
particles.Rate = 128
particles.Drag = 16
particles.ShapePartial = 1
particles.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(ParticleColor1.Hue, ParticleColor1.Sat, ParticleColor1.Value)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(ParticleColor2.Hue, ParticleColor2.Sat, ParticleColor2.Value))
})
particles.Parent = part
Particles[i] = part
end
else
for _, v in Particles do
v:Destroy()
end
table.clear(Particles)
end
end
})
ParticleTexture = Killaura:CreateTextBox({
Name = 'Texture',
Default = 'rbxassetid://14736249347',
Function = function()
for _, v in Particles do
v.ParticleEmitter.Texture = ParticleTexture.Value
end
end,
Darker = true,
Visible = false
})
ParticleColor1 = Killaura:CreateColorSlider({
Name = 'Color Begin',
Function = function(hue, sat, val)
for _, v in Particles do
v.ParticleEmitter.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(hue, sat, val)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(ParticleColor2.Hue, ParticleColor2.Sat, ParticleColor2.Value))
})
end
end,
Darker = true,
Visible = false
})
ParticleColor2 = Killaura:CreateColorSlider({
Name = 'Color End',
Function = function(hue, sat, val)
for _, v in Particles do
v.ParticleEmitter.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(ParticleColor1.Hue, ParticleColor1.Sat, ParticleColor1.Value)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(hue, sat, val))
})
end
end,
Darker = true,
Visible = false
})
ParticleSize = Killaura:CreateSlider({
Name = 'Size',
Min = 0,
Max = 1,
Default = 0.2,
Decimal = 100,
Function = function(val)
for _, v in Particles do
v.ParticleEmitter.Size = NumberSequence.new(val)
end
end,
Darker = true,
Visible = false
})
Face = Killaura:CreateToggle({Name = 'Face target'})
Animation = Killaura:CreateToggle({
Name = 'Custom Animation',
Function = function(callback)
AnimationMode.Object.Visible = callback
AnimationTween.Object.Visible = callback
AnimationSpeed.Object.Visible = callback
if Killaura.Enabled then
Killaura:Toggle()
Killaura:Toggle()
end
end
})
local animnames = {}
for i in anims do
table.insert(animnames, i)
end
AnimationMode = Killaura:CreateDropdown({
Name = 'Animation Mode',
List = animnames,
Darker = true,
Visible = false
})
AnimationSpeed = Killaura:CreateSlider({
Name = 'Animation Speed',
Min = 0,
Max = 2,
Default = 1,
Decimal = 10,
Darker = true,
Visible = false
})
AnimationTween = Killaura:CreateToggle({
Name = 'No Tween',
Darker = true,
Visible = false
})
Limit = Killaura:CreateToggle({
Name = 'Limit to items',
Function = function(callback)
if inputService.TouchEnabled and Killaura.Enabled then
pcall(function()
lplr.PlayerGui.MobileUI['2'].Visible = callback
end)
end
end,
Tooltip = 'Only attacks when the sword is held'
})
LegitAura = Killaura:CreateToggle({
Name = 'Swing only',
Tooltip = 'Only attacks while swinging manually'
})
end)
run(function()
local Value
local CameraDir
local start
local JumpTick, JumpSpeed, Direction = tick(), 0
local projectileRemote = {InvokeServer = function() end}
task.spawn(function()
projectileRemote = bedwars.Client:Get(remotes.FireProjectile).instance
end)
local function launchProjectile(item, pos, proj, speed, dir)
if not pos then return end
pos = pos - dir * 0.1
local shootPosition = (CFrame.lookAlong(pos, Vector3.new(0, -speed, 0)) * CFrame.new(Vector3.new(-bedwars.BowConstantsTable.RelX, -bedwars.BowConstantsTable.RelY, -bedwars.BowConstantsTable.RelZ)))
switchItem(item.tool, 0)
task.wait(0.1)
bedwars.ProjectileController:createLocalProjectile(bedwars.ProjectileMeta[proj], proj, proj, shootPosition.Position, '', shootPosition.LookVector * speed, {drawDurationSeconds = 1})
if projectileRemote:InvokeServer(item.tool, proj, proj, shootPosition.Position, pos, shootPosition.LookVector * speed, httpService:GenerateGUID(true), {drawDurationSeconds = 1}, workspace:GetServerTimeNow() - 0.045) then
local shoot = bedwars.ItemMeta[item.itemType].projectileSource.launchSound
shoot = shoot and shoot[math.random(1, #shoot)] or nil
if shoot then
bedwars.SoundManager:playSound(shoot)
end
end
end
local LongJumpMethods = {
cannon = function(_, pos, dir)
pos = pos - Vector3.new(0, (entitylib.character.HipHeight + (entitylib.character.RootPart.Size.Y / 2)) - 3, 0)
local rounded = Vector3.new(math.round(pos.X / 3) * 3, math.round(pos.Y / 3) * 3, math.round(pos.Z / 3) * 3)
bedwars.placeBlock(rounded, 'cannon', false)
task.delay(0, function()
local block, blockpos = getPlacedBlock(rounded)
if block and block.Name == 'cannon' and (entitylib.character.RootPart.Position - block.Position).Magnitude < 20 then
local breaktype = bedwars.ItemMeta[block.Name].block.breakType
local tool = store.tools[breaktype]
if tool then
switchItem(tool.tool)
end
bedwars.Client:Get(remotes.CannonAim):SendToServer({
cannonBlockPos = blockpos,
lookVector = dir
})
local broken = 0.1
if bedwars.BlockController:calculateBlockDamage(lplr, {blockPosition = blockpos}) < block:GetAttribute('Health') then
broken = 0.4
bedwars.breakBlock(block, true, true)
end
task.delay(broken, function()
for _ = 1, 3 do
local call = bedwars.Client:Get(remotes.CannonLaunch):CallServer({cannonBlockPos = blockpos})
if call then
bedwars.breakBlock(block, true, true)
JumpSpeed = 5.25 * Value.Value
JumpTick = tick() + 2.3
Direction = Vector3.new(dir.X, 0, dir.Z).Unit
break
end
task.wait(0.1)
end
end)
end
end)
end,
cat = function(_, _, dir)
LongJump:Clean(vapeEvents.CatPounce.Event:Connect(function()
JumpSpeed = 4 * Value.Value
JumpTick = tick() + 2.5
Direction = Vector3.new(dir.X, 0, dir.Z).Unit
entitylib.character.RootPart.Velocity = Vector3.zero
end))
if not bedwars.AbilityController:canUseAbility('CAT_POUNCE') then
repeat task.wait() until bedwars.AbilityController:canUseAbility('CAT_POUNCE') or not LongJump.Enabled
end
if bedwars.AbilityController:canUseAbility('CAT_POUNCE') and LongJump.Enabled then
bedwars.AbilityController:useAbility('CAT_POUNCE')
end
end,
fireball = function(item, pos, dir)
launchProjectile(item, pos, 'fireball', 60, dir)
end,
grappling_hook = function(item, pos, dir)
launchProjectile(item, pos, 'grappling_hook_projectile', 140, dir)
end,
jade_hammer = function(item, _, dir)
if not bedwars.AbilityController:canUseAbility(item.itemType..'_jump') then
repeat task.wait() until bedwars.AbilityController:canUseAbility(item.itemType..'_jump') or not LongJump.Enabled
end
if bedwars.AbilityController:canUseAbility(item.itemType..'_jump') and LongJump.Enabled then
bedwars.AbilityController:useAbility(item.itemType..'_jump')
JumpSpeed = 1.4 * Value.Value
JumpTick = tick() + 2.5
Direction = Vector3.new(dir.X, 0, dir.Z).Unit
end
end,
tnt = function(item, pos, dir)
pos = pos - Vector3.new(0, (entitylib.character.HipHeight + (entitylib.character.RootPart.Size.Y / 2)) - 3, 0)
local rounded = Vector3.new(math.round(pos.X / 3) * 3, math.round(pos.Y / 3) * 3, math.round(pos.Z / 3) * 3)
start = Vector3.new(rounded.X, start.Y, rounded.Z) + (dir * (item.itemType == 'pirate_gunpowder_barrel' and 2.6 or 0.2))
bedwars.placeBlock(rounded, item.itemType, false)
end,
wood_dao = function(item, pos, dir)
if (lplr.Character:GetAttribute('CanDashNext') or 0) > workspace:GetServerTimeNow() or not bedwars.AbilityController:canUseAbility('dash') then
repeat task.wait() until (lplr.Character:GetAttribute('CanDashNext') or 0) < workspace:GetServerTimeNow() and bedwars.AbilityController:canUseAbility('dash') or not LongJump.Enabled
end
if LongJump.Enabled then
bedwars.SwordController.lastAttack = workspace:GetServerTimeNow()
switchItem(item.tool, 0.1)
replicatedStorage['events-@easy-games/game-core:shared/game-core-networking@getEvents.Events'].useAbility:FireServer('dash', {
direction = dir,
origin = pos,
weapon = item.itemType
})
JumpSpeed = 4.5 * Value.Value
JumpTick = tick() + 2.4
Direction = Vector3.new(dir.X, 0, dir.Z).Unit
end
end
}
for _, v in {'stone_dao', 'iron_dao', 'diamond_dao', 'emerald_dao'} do
LongJumpMethods[v] = LongJumpMethods.wood_dao
end
LongJumpMethods.void_axe = LongJumpMethods.jade_hammer
LongJumpMethods.siege_tnt = LongJumpMethods.tnt
LongJumpMethods.pirate_gunpowder_barrel = LongJumpMethods.tnt
LongJump = vape.Categories.Blatant:CreateModule({
Name = 'LongJump',
Function = function(callback)
frictionTable.LongJump = callback or nil
updateVelocity()
if callback then
LongJump:Clean(vapeEvents.EntityDamageEvent.Event:Connect(function(damageTable)
if damageTable.entityInstance == lplr.Character and damageTable.fromEntity == lplr.Character and (not damageTable.knockbackMultiplier or not damageTable.knockbackMultiplier.disabled) then
local knockbackBoost = bedwars.KnockbackUtil.calculateKnockbackVelocity(Vector3.one, 1, {
vertical = 0,
horizontal = (damageTable.knockbackMultiplier and damageTable.knockbackMultiplier.horizontal or 1)
}).Magnitude * 1.1
if knockbackBoost >= JumpSpeed then
local pos = damageTable.fromPosition and Vector3.new(damageTable.fromPosition.X, damageTable.fromPosition.Y, damageTable.fromPosition.Z) or damageTable.fromEntity and damageTable.fromEntity.PrimaryPart.Position
if not pos then return end
local vec = (entitylib.character.RootPart.Position - pos)
JumpSpeed = knockbackBoost
JumpTick = tick() + 2.5
Direction = Vector3.new(vec.X, 0, vec.Z).Unit
end
end
end))
LongJump:Clean(vapeEvents.GrapplingHookFunctions.Event:Connect(function(dataTable)
if dataTable.hookFunction == 'PLAYER_IN_TRANSIT' then
local vec = entitylib.character.RootPart.CFrame.LookVector
JumpSpeed = 2.5 * Value.Value
JumpTick = tick() + 2.5
Direction = Vector3.new(vec.X, 0, vec.Z).Unit
end
end))
start = entitylib.isAlive and entitylib.character.RootPart.Position or nil
LongJump:Clean(runService.PreSimulation:Connect(function(dt)
local root = entitylib.isAlive and entitylib.character.RootPart or nil
if root and isnetworkowner(root) then
if JumpTick > tick() then
root.AssemblyLinearVelocity = Direction * (getSpeed() + ((JumpTick - tick()) > 1.1 and JumpSpeed or 0)) + Vector3.new(0, root.AssemblyLinearVelocity.Y, 0)
if entitylib.character.Humanoid.FloorMaterial == Enum.Material.Air and not start then
root.AssemblyLinearVelocity += Vector3.new(0, dt * (workspace.Gravity - 23), 0)
else
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, 15, root.AssemblyLinearVelocity.Z)
end
start = nil
else
if start then
root.CFrame = CFrame.lookAlong(start, root.CFrame.LookVector)
end
root.AssemblyLinearVelocity = Vector3.zero
JumpSpeed = 0
end
else
start = nil
end
end))
if store.hand and LongJumpMethods[store.hand.tool.Name] then
task.spawn(LongJumpMethods[store.hand.tool.Name], getItem(store.hand.tool.Name), start, (CameraDir.Enabled and gameCamera or entitylib.character.RootPart).CFrame.LookVector)
return
end
for i, v in LongJumpMethods do
local item = getItem(i)
if item or store.equippedKit == i then
task.spawn(v, item, start, (CameraDir.Enabled and gameCamera or entitylib.character.RootPart).CFrame.LookVector)
break
end
end
else
JumpTick = tick()
Direction = nil
JumpSpeed = 0
end
end,
ExtraText = function()
return 'Heatseeker'
end,
Tooltip = 'Lets you jump farther'
})
Value = LongJump:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 37,
Default = 37,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
CameraDir = LongJump:CreateToggle({
Name = 'Camera Direction'
})
end)
run(function()
local NoFall
local Mode
local rayParams = RaycastParams.new()
local groundHit
task.spawn(function()
groundHit = bedwars.Client:Get(remotes.GroundHit).instance
end)
NoFall = vape.Categories.Blatant:CreateModule({
Name = 'NoFall',
Function = function(callback)
if callback then
local tracked = 0
if Mode.Value == 'Gravity' then
local extraGravity = 0
NoFall:Clean(runService.PreSimulation:Connect(function(dt)
if entitylib.isAlive then
local root = entitylib.character.RootPart
if root.AssemblyLinearVelocity.Y < -85 then
rayParams.FilterDescendantsInstances = {lplr.Character, gameCamera}
rayParams.CollisionGroup = root.CollisionGroup
local rootSize = root.Size.Y / 2 + entitylib.character.HipHeight
local ray = workspace:Blockcast(root.CFrame, Vector3.new(3, 3, 3), Vector3.new(0, (tracked * 0.1) - rootSize, 0), rayParams)
if not ray then
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, -86, root.AssemblyLinearVelocity.Z)
root.CFrame += Vector3.new(0, extraGravity * dt, 0)
extraGravity += -workspace.Gravity * dt
end
else
extraGravity = 0
end
end
end))
else
repeat
if entitylib.isAlive then
local root = entitylib.character.RootPart
tracked = entitylib.character.Humanoid.FloorMaterial == Enum.Material.Air and math.min(tracked, root.AssemblyLinearVelocity.Y) or 0
if tracked < -85 then
if Mode.Value == 'Packet' then
groundHit:FireServer(nil, Vector3.new(0, tracked, 0), workspace:GetServerTimeNow())
else
rayParams.FilterDescendantsInstances = {lplr.Character, gameCamera}
rayParams.CollisionGroup = root.CollisionGroup
local rootSize = root.Size.Y / 2 + entitylib.character.HipHeight
if Mode.Value == 'Teleport' then
local ray = workspace:Blockcast(root.CFrame, Vector3.new(3, 3, 3), Vector3.new(0, -1000, 0), rayParams)
if ray then
root.CFrame -= Vector3.new(0, root.Position.Y - (ray.Position.Y + rootSize), 0)
end
else
local ray = workspace:Blockcast(root.CFrame, Vector3.new(3, 3, 3), Vector3.new(0, (tracked * 0.1) - rootSize, 0), rayParams)
if ray then
tracked = 0
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, -80, root.AssemblyLinearVelocity.Z)
end
end
end
end
end
task.wait(0.03)
until not NoFall.Enabled
end
end
end,
Tooltip = 'Prevents taking fall damage.'
})
Mode = NoFall:CreateDropdown({
Name = 'Mode',
List = {'Packet', 'Gravity', 'Teleport', 'Bounce'},
Function = function()
if NoFall.Enabled then
NoFall:Toggle()
NoFall:Toggle()
end
end
})
end)
run(function()
local old
vape.Categories.Blatant:CreateModule({
Name = 'NoSlowdown',
Function = function(callback)
local modifier = bedwars.SprintController:getMovementStatusModifier()
if callback then
old = modifier.addModifier
modifier.addModifier = function(self, tab)
if tab.moveSpeedMultiplier then
tab.moveSpeedMultiplier = math.max(tab.moveSpeedMultiplier, 1)
end
return old(self, tab)
end
for i in modifier.modifiers do
if (i.moveSpeedMultiplier or 1) < 1 then
modifier:removeModifier(i)
end
end
else
modifier.addModifier = old
old = nil
end
end,
Tooltip = 'Prevents slowing down when using items.'
})
end)
run(function()
local TargetPart
local Targets
local FOV
local OtherProjectiles
local rayCheck = RaycastParams.new()
rayCheck.FilterType = Enum.RaycastFilterType.Include
rayCheck.FilterDescendantsInstances = {workspace:FindFirstChild('Map')}
local old
local ProjectileAimbot = vape.Categories.Blatant:CreateModule({
Name = 'ProjectileAimbot',
Function = function(callback)
if callback then
old = bedwars.ProjectileController.calculateImportantLaunchValues
bedwars.ProjectileController.calculateImportantLaunchValues = function(...)
local self, projmeta, worldmeta, origin, shootpos = ...
local plr = entitylib.EntityMouse({
Part = 'RootPart',
Range = FOV.Value,
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Wallcheck = Targets.Walls.Enabled,
Origin = entitylib.isAlive and (shootpos or entitylib.character.RootPart.Position) or Vector3.zero
})
if plr then
local pos = shootpos or self:getLaunchPosition(origin)
if not pos then
return old(...)
end
if (not OtherProjectiles.Enabled) and not projmeta.projectile:find('arrow') then
return old(...)
end
local meta = projmeta:getProjectileMeta()
local lifetime = (worldmeta and meta.predictionLifetimeSec or meta.lifetimeSec or 3)
local gravity = (meta.gravitationalAcceleration or 196.2) * projmeta.gravityMultiplier
local projSpeed = (meta.launchVelocity or 100)
local offsetpos = pos + (projmeta.projectile == 'owl_projectile' and Vector3.zero or projmeta.fromPositionOffset)
local balloons = plr.Character:GetAttribute('InflatedBalloons')
local playerGravity = workspace.Gravity
if balloons and balloons > 0 then
playerGravity = (workspace.Gravity * (1 - ((balloons >= 4 and 1.2 or balloons >= 3 and 1 or 0.975))))
end
if plr.Character.PrimaryPart:FindFirstChild('rbxassetid://8200754399') then
playerGravity = 6
end
if plr.Player:GetAttribute('IsOwlTarget') then
for _, owl in collectionService:GetTagged('Owl') do
if owl:GetAttribute('Target') == plr.Player.UserId and owl:GetAttribute('Status') == 2 then
playerGravity = 0
end
end
end
local newlook = CFrame.new(offsetpos, plr[TargetPart.Value].Position) * CFrame.new(projmeta.projectile == 'owl_projectile' and Vector3.zero or Vector3.new(bedwars.BowConstantsTable.RelX, bedwars.BowConstantsTable.RelY, bedwars.BowConstantsTable.RelZ))
local calc = prediction.SolveTrajectory(newlook.p, projSpeed, gravity, plr[TargetPart.Value].Position, projmeta.projectile == 'telepearl' and Vector3.zero or plr[TargetPart.Value].Velocity, playerGravity, plr.HipHeight, plr.Jumping and 42.6 or nil, rayCheck)
if calc then
targetinfo.Targets[plr] = tick() + 1
return {
initialVelocity = CFrame.new(newlook.Position, calc).LookVector * projSpeed,
positionFrom = offsetpos,
deltaT = lifetime,
gravitationalAcceleration = gravity,
drawDurationSeconds = 5
}
end
end
return old(...)
end
else
bedwars.ProjectileController.calculateImportantLaunchValues = old
end
end,
Tooltip = 'Silently adjusts your aim towards the enemy'
})
Targets = ProjectileAimbot:CreateTargets({
Players = true,
Walls = true
})
TargetPart = ProjectileAimbot:CreateDropdown({
Name = 'Part',
List = {'RootPart', 'Head'}
})
FOV = ProjectileAimbot:CreateSlider({
Name = 'FOV',
Min = 1,
Max = 1000,
Default = 1000
})
OtherProjectiles = ProjectileAimbot:CreateToggle({
Name = 'Other Projectiles',
Default = true
})
end)
run(function()
local ProjectileAura
local Targets
local Range
local List
local rayCheck = RaycastParams.new()
rayCheck.FilterType = Enum.RaycastFilterType.Include
local projectileRemote = {InvokeServer = function() end}
local FireDelays = {}
task.spawn(function()
projectileRemote = bedwars.Client:Get(remotes.FireProjectile).instance
end)
local function getAmmo(check)
for _, item in store.inventory.inventory.items do
if check.ammoItemTypes and table.find(check.ammoItemTypes, item.itemType) then
return item.itemType
end
end
end
local function getProjectiles()
local items = {}
for _, item in store.inventory.inventory.items do
local proj = bedwars.ItemMeta[item.itemType].projectileSource
local ammo = proj and getAmmo(proj)
if ammo and table.find(List.ListEnabled, ammo) then
table.insert(items, {
item,
ammo,
proj.projectileType(ammo),
proj
})
end
end
return items
end
ProjectileAura = vape.Categories.Blatant:CreateModule({
Name = 'ProjectileAura',
Function = function(callback)
if callback then
repeat
if (workspace:GetServerTimeNow() - bedwars.SwordController.lastAttack) > 0.5 then
local ent = entitylib.EntityPosition({
Part = 'RootPart',
Range = Range.Value,
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Wallcheck = Targets.Walls.Enabled
})
if ent then
local pos = entitylib.character.RootPart.Position
for _, data in getProjectiles() do
local item, ammo, projectile, itemMeta = unpack(data)
if (FireDelays[item.itemType] or 0) < tick() then
rayCheck.FilterDescendantsInstances = {workspace.Map}
local meta = bedwars.ProjectileMeta[projectile]
local projSpeed, gravity = meta.launchVelocity, meta.gravitationalAcceleration or 196.2
local calc = prediction.SolveTrajectory(pos, projSpeed, gravity, ent.RootPart.Position, ent.RootPart.Velocity, workspace.Gravity, ent.HipHeight, ent.Jumping and 42.6 or nil, rayCheck)
if calc then
targetinfo.Targets[ent] = tick() + 1
local switched = switchItem(item.tool)
task.spawn(function()
local dir, id = CFrame.lookAt(pos, calc).LookVector, httpService:GenerateGUID(true)
local shootPosition = (CFrame.new(pos, calc) * CFrame.new(Vector3.new(-bedwars.BowConstantsTable.RelX, -bedwars.BowConstantsTable.RelY, -bedwars.BowConstantsTable.RelZ))).Position
bedwars.ProjectileController:createLocalProjectile(meta, ammo, projectile, shootPosition, id, dir * projSpeed, {drawDurationSeconds = 1})
local res = projectileRemote:InvokeServer(item.tool, ammo, projectile, shootPosition, pos, dir * projSpeed, id, {drawDurationSeconds = 1, shotId = httpService:GenerateGUID(false)}, workspace:GetServerTimeNow() - 0.045)
if not res then
FireDelays[item.itemType] = tick()
else
local shoot = itemMeta.launchSound
shoot = shoot and shoot[math.random(1, #shoot)] or nil
if shoot then
bedwars.SoundManager:playSound(shoot)
end
end
end)
FireDelays[item.itemType] = tick() + itemMeta.fireDelaySec
if switched then
task.wait(0.05)
end
end
end
end
end
end
task.wait(0.1)
until not ProjectileAura.Enabled
end
end,
Tooltip = 'Shoots people around you'
})
Targets = ProjectileAura:CreateTargets({
Players = true,
Walls = true
})
List = ProjectileAura:CreateTextList({
Name = 'Projectiles',
Default = {'arrow', 'snowball'}
})
Range = ProjectileAura:CreateSlider({
Name = 'Range',
Min = 1,
Max = 50,
Default = 50,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
local Speed
local Value
local WallCheck
local AutoJump
local AlwaysJump
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
Speed = vape.Categories.Blatant:CreateModule({
Name = 'Speed',
Function = function(callback)
frictionTable.Speed = callback or nil
updateVelocity()
pcall(function()
debug.setconstant(bedwars.WindWalkerController.updateSpeed, 7, callback and 'constantSpeedMultiplier' or 'moveSpeedMultiplier')
end)
if callback then
Speed:Clean(runService.PreSimulation:Connect(function(dt)
bedwars.StatefulEntityKnockbackController.lastImpulseTime = callback and math.huge or time()
if entitylib.isAlive and not Fly.Enabled and not InfiniteFly.Enabled and not LongJump.Enabled and isnetworkowner(entitylib.character.RootPart) then
local state = entitylib.character.Humanoid:GetState()
if state == Enum.HumanoidStateType.Climbing then return end
local root, velo = entitylib.character.RootPart, getSpeed()
local moveDirection = AntiFallDirection or entitylib.character.Humanoid.MoveDirection
local destination = (moveDirection * math.max(Value.Value - velo, 0) * dt)
if WallCheck.Enabled then
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera}
rayCheck.CollisionGroup = root.CollisionGroup
local ray = workspace:Raycast(root.Position, destination, rayCheck)
if ray then
destination = ((ray.Position + ray.Normal) - root.Position)
end
end
root.CFrame += destination
root.AssemblyLinearVelocity = (moveDirection * velo) + Vector3.new(0, root.AssemblyLinearVelocity.Y, 0)
if AutoJump.Enabled and (state == Enum.HumanoidStateType.Running or state == Enum.HumanoidStateType.Landed) and moveDirection ~= Vector3.zero and (Attacking or AlwaysJump.Enabled) then
entitylib.character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end))
end
end,
ExtraText = function()
return 'Heatseeker'
end,
Tooltip = 'Increases your movement with various methods.'
})
Value = Speed:CreateSlider({
Name = 'Speed',
Min = 1,
Max = 23,
Default = 23,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
WallCheck = Speed:CreateToggle({
Name = 'Wall Check',
Default = true
})
AutoJump = Speed:CreateToggle({
Name = 'AutoJump',
Function = function(callback)
AlwaysJump.Object.Visible = callback
end
})
AlwaysJump = Speed:CreateToggle({
Name = 'Always Jump',
Visible = false,
Darker = true
})
end)
run(function()
local BedESP
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.holder
local function Added(bed)
if not BedESP.Enabled then return end
local BedFolder = Instance.new('Folder')
BedFolder.Parent = Folder
Reference[bed] = BedFolder
local parts = bed:GetChildren()
table.sort(parts, function(a, b)
return a.Name > b.Name
end)
for _, part in parts do
if part:IsA('BasePart') and part.Name ~= 'Blanket' then
local handle = Instance.new('BoxHandleAdornment')
handle.Size = part.Size + Vector3.new(.01, .01, .01)
handle.AlwaysOnTop = true
handle.ZIndex = 2
handle.Visible = true
handle.Adornee = part
handle.Color3 = part.Color
if part.Name == 'Legs' then
handle.Color3 = Color3.fromRGB(167, 112, 64)
handle.Size = part.Size + Vector3.new(.01, -1, .01)
handle.CFrame = CFrame.new(0, -0.4, 0)
handle.ZIndex = 0
end
handle.Parent = BedFolder
end
end
table.clear(parts)
end
BedESP = vape.Categories.Render:CreateModule({
Name = 'BedESP',
Function = function(callback)
if callback then
BedESP:Clean(collectionService:GetInstanceAddedSignal('bed'):Connect(function(bed)
task.delay(0.2, Added, bed)
end))
BedESP:Clean(collectionService:GetInstanceRemovedSignal('bed'):Connect(function(bed)
if Reference[bed] then
Reference[bed]:Destroy()
Reference[bed] = nil
end
end))
for _, bed in collectionService:GetTagged('bed') do
Added(bed)
end
else
Folder:ClearAllChildren()
table.clear(Reference)
end
end,
Tooltip = 'Render Beds through walls'
})
end)
run(function()
local Health
Health = vape.Categories.Render:CreateModule({
Name = 'Health',
Function = function(callback)
if callback then
local label = Instance.new('TextLabel')
label.Size = UDim2.fromOffset(100, 20)
label.Position = UDim2.new(0.5, 6, 0.5, 30)
label.BackgroundTransparency = 1
label.AnchorPoint = Vector2.new(0.5, 0)
label.Text = entitylib.isAlive and math.round(lplr.Character:GetAttribute('Health'))..' ❤️' or ''
label.TextColor3 = entitylib.isAlive and Color3.fromHSV((lplr.Character:GetAttribute('Health') / lplr.Character:GetAttribute('MaxHealth')) / 2.8, 0.86, 1) or Color3.new()
label.TextSize = 18
label.Font = Enum.Font.Arial
label.Parent = vape.gui
Health:Clean(label)
Health:Clean(vapeEvents.AttributeChanged.Event:Connect(function()
label.Text = entitylib.isAlive and math.round(lplr.Character:GetAttribute('Health'))..' ❤️' or ''
label.TextColor3 = entitylib.isAlive and Color3.fromHSV((lplr.Character:GetAttribute('Health') / lplr.Character:GetAttribute('MaxHealth')) / 2.8, 0.86, 1) or Color3.new()
end))
end
end,
Tooltip = 'Displays your health in the center of your screen.'
})
end)
run(function()
local KitESP
local Background
local Color = {}
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.holder
local ESPKits = {
alchemist = {'alchemist_ingedients', 'wild_flower'},
beekeeper = {'bee', 'bee'},
bigman = {'treeOrb', 'natures_essence_1'},
ghost_catcher = {'ghost', 'ghost_orb'},
metal_detector = {'hidden-metal', 'iron'},
sheep_herder = {'SheepModel', 'purple_hay_bale'},
sorcerer = {'alchemy_crystal', 'wild_flower'},
star_collector = {'stars', 'crit_star'}
}
local function Added(v, icon)
local billboard = Instance.new('BillboardGui')
billboard.Parent = Folder
billboard.Name = icon
billboard.StudsOffsetWorldSpace = Vector3.new(0, 3, 0)
billboard.Size = UDim2.fromOffset(36, 36)
billboard.AlwaysOnTop = true
billboard.ClipsDescendants = false
billboard.Adornee = v
local blur = addBlur(billboard)
blur.Visible = Background.Enabled
local image = Instance.new('ImageLabel')
image.Size = UDim2.fromOffset(36, 36)
image.Position = UDim2.fromScale(0.5, 0.5)
image.AnchorPoint = Vector2.new(0.5, 0.5)
image.BackgroundColor3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
image.BackgroundTransparency = 1 - (Background.Enabled and Color.Opacity or 0)
image.BorderSizePixel = 0
image.Image = bedwars.getIcon({itemType = icon}, true)
image.Parent = billboard
local uicorner = Instance.new('UICorner')
uicorner.CornerRadius = UDim.new(0, 4)
uicorner.Parent = image
Reference[v] = billboard
end
local function addKit(tag, icon)
KitESP:Clean(collectionService:GetInstanceAddedSignal(tag):Connect(function(v)
Added(v.PrimaryPart, icon)
end))
KitESP:Clean(collectionService:GetInstanceRemovedSignal(tag):Connect(function(v)
if Reference[v.PrimaryPart] then
Reference[v.PrimaryPart]:Destroy()
Reference[v.PrimaryPart] = nil
end
end))
for _, v in collectionService:GetTagged(tag) do
Added(v.PrimaryPart, icon)
end
end
KitESP = vape.Categories.Render:CreateModule({
Name = 'KitESP',
Function = function(callback)
if callback then
repeat task.wait() until store.equippedKit ~= '' or (not KitESP.Enabled)
local kit = KitESP.Enabled and ESPKits[store.equippedKit] or nil
if kit then
addKit(kit[1], kit[2])
end
else
Folder:ClearAllChildren()
table.clear(Reference)
end
end,
Tooltip = 'ESP for certain kit related objects'
})
Background = KitESP:CreateToggle({
Name = 'Background',
Function = function(callback)
if Color.Object then Color.Object.Visible = callback end
for _, v in Reference do
v.ImageLabel.BackgroundTransparency = 1 - (callback and Color.Opacity or 0)
v.Blur.Visible = callback
end
end,
Default = true
})
Color = KitESP:CreateColorSlider({
Name = 'Background Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
for _, v in Reference do
v.ImageLabel.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
v.ImageLabel.BackgroundTransparency = 1 - opacity
end
end,
Darker = true
})
end)
run(function()
local NameTags
local Targets
local Color
local Background
local DisplayName
local Health
local Distance
local Equipment
local DrawingToggle
local Scale
local FontOption
local Teammates
local DistanceCheck
local DistanceLimit
local Strings, Sizes, Reference = {}, {}, {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.gui
local methodused
local Added = {
Normal = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
local nametag = Instance.new('TextLabel')
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
local healthColor = Color3.fromHSV(math.clamp(ent.Health / ent.MaxHealth, 0, 1) / 2.5, 0.89, 0.75)
Strings[ent] = Strings[ent]..' <font color="rgb('..tostring(math.floor(healthColor.R * 255))..','..tostring(math.floor(healthColor.G * 255))..','..tostring(math.floor(healthColor.B * 255))..')">'..math.round(ent.Health)..'</font>'
end
if Distance.Enabled then
Strings[ent] = '<font color="rgb(85, 255, 85)">[</font><font color="rgb(255, 255, 255)">%s</font><font color="rgb(85, 255, 85)">]</font> '..Strings[ent]
end
if Equipment.Enabled then
for i, v in {'Hand', 'Helmet', 'Chestplate', 'Boots', 'Kit'} do
local Icon = Instance.new('ImageLabel')
Icon.Name = v
Icon.Size = UDim2.fromOffset(30, 30)
Icon.Position = UDim2.fromOffset(-60 + (i * 30), -30)
Icon.BackgroundTransparency = 1
Icon.Image = ''
Icon.Parent = nametag
end
end
nametag.TextSize = 14 * Scale.Value
nametag.FontFace = FontOption.Value
local size = getfontbounds(removeTags(Strings[ent]), nametag.TextSize, nametag.FontFace, Vector2.new(100000, 100000))
nametag.Name = ent.Player and ent.Player.Name or ent.Character.Name
nametag.Size = UDim2.fromOffset(size.X + 8, size.Y + 7)
nametag.AnchorPoint = Vector2.new(0.5, 1)
nametag.BackgroundColor3 = Color3.new()
nametag.BackgroundTransparency = Background.Value
nametag.BorderSizePixel = 0
nametag.Visible = false
nametag.Text = Strings[ent]
nametag.TextColor3 = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
nametag.RichText = true
nametag.Parent = Folder
Reference[ent] = nametag
end,
Drawing = function(ent)
if not Targets.Players.Enabled and ent.Player then return end
if not Targets.NPCs.Enabled and ent.NPC then return end
if Teammates.Enabled and (not ent.Targetable) and (not ent.Friend) then return end
local nametag = {}
nametag.BG = Drawing.new('Square')
nametag.BG.Filled = true
nametag.BG.Transparency = 1 - Background.Value
nametag.BG.Color = Color3.new()
nametag.BG.ZIndex = 1
nametag.Text = Drawing.new('Text')
nametag.Text.Size = 15 * Scale.Value
nametag.Text.Font = 0
nametag.Text.ZIndex = 2
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
Strings[ent] = Strings[ent]..' '..math.round(ent.Health)
end
if Distance.Enabled then
Strings[ent] = '[%s] '..Strings[ent]
end
nametag.Text.Text = Strings[ent]
nametag.Text.Color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
nametag.BG.Size = Vector2.new(nametag.Text.TextBounds.X + 8, nametag.Text.TextBounds.Y + 7)
Reference[ent] = nametag
end
}
local Removed = {
Normal = function(ent)
local v = Reference[ent]
if v then
Reference[ent] = nil
Strings[ent] = nil
Sizes[ent] = nil
v:Destroy()
end
end,
Drawing = function(ent)
local v = Reference[ent]
if v then
Reference[ent] = nil
Strings[ent] = nil
Sizes[ent] = nil
for _, obj in v do
pcall(function()
obj.Visible = false
obj:Remove()
end)
end
end
end
}
local Updated = {
Normal = function(ent)
local nametag = Reference[ent]
if nametag then
Sizes[ent] = nil
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
local healthColor = Color3.fromHSV(math.clamp(ent.Health / ent.MaxHealth, 0, 1) / 2.5, 0.89, 0.75)
Strings[ent] = Strings[ent]..' <font color="rgb('..tostring(math.floor(healthColor.R * 255))..','..tostring(math.floor(healthColor.G * 255))..','..tostring(math.floor(healthColor.B * 255))..')">'..math.round(ent.Health)..'</font>'
end
if Distance.Enabled then
Strings[ent] = '<font color="rgb(85, 255, 85)">[</font><font color="rgb(255, 255, 255)">%s</font><font color="rgb(85, 255, 85)">]</font> '..Strings[ent]
end
if Equipment.Enabled and store.inventories[ent.Player] then
local kit = ent.Player:GetAttribute('PlayingAsKit')
local inventory = store.inventories[ent.Player]
nametag.Hand.Image = bedwars.getIcon(inventory.hand or {itemType = ''}, true)
nametag.Helmet.Image = bedwars.getIcon(inventory.armor[4] or {itemType = ''}, true)
nametag.Chestplate.Image = bedwars.getIcon(inventory.armor[5] or {itemType = ''}, true)
nametag.Boots.Image = bedwars.getIcon(inventory.armor[6] or {itemType = ''}, true)
nametag.Kit.Image = kit and kit ~= 'none' and bedwars.BedwarsKitMeta[kit].renderImage or ''
end
local size = getfontbounds(removeTags(Strings[ent]), nametag.TextSize, nametag.FontFace, Vector2.new(100000, 100000))
nametag.Size = UDim2.fromOffset(size.X + 8, size.Y + 7)
nametag.Text = Strings[ent]
end
end,
Drawing = function(ent)
local nametag = Reference[ent]
if nametag then
if vape.ThreadFix then
setthreadidentity(8)
end
Sizes[ent] = nil
Strings[ent] = ent.Player and whitelist:tag(ent.Player, true)..(DisplayName.Enabled and ent.Player.DisplayName or ent.Player.Name) or ent.Character.Name
if Health.Enabled then
Strings[ent] = Strings[ent]..' '..math.round(ent.Health)
end
if Distance.Enabled then
Strings[ent] = '[%s] '..Strings[ent]
nametag.Text.Text = entitylib.isAlive and string.format(Strings[ent], math.floor((entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude)) or Strings[ent]
else
nametag.Text.Text = Strings[ent]
end
nametag.BG.Size = Vector2.new(nametag.Text.TextBounds.X + 8, nametag.Text.TextBounds.Y + 7)
nametag.Text.Color = entitylib.getEntityColor(ent) or Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
end
end
}
local ColorFunc = {
Normal = function(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for i, v in Reference do
v.TextColor3 = entitylib.getEntityColor(i) or color
end
end,
Drawing = function(hue, sat, val)
local color = Color3.fromHSV(hue, sat, val)
for i, v in Reference do
v.Text.Color = entitylib.getEntityColor(i) or color
end
end
}
local Loop = {
Normal = function()
for ent, nametag in Reference do
if DistanceCheck.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
nametag.Visible = false
continue
end
end
local headPos, headVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position + Vector3.new(0, ent.HipHeight + 1, 0))
nametag.Visible = headVis
if not headVis then
continue
end
if Distance.Enabled then
local mag = entitylib.isAlive and math.floor((entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude) or 0
if Sizes[ent] ~= mag then
nametag.Text = string.format(Strings[ent], mag)
local ize = getfontbounds(removeTags(nametag.Text), nametag.TextSize, nametag.FontFace, Vector2.new(100000, 100000))
nametag.Size = UDim2.fromOffset(ize.X + 8, ize.Y + 7)
Sizes[ent] = mag
end
end
nametag.Position = UDim2.fromOffset(headPos.X, headPos.Y)
end
end,
Drawing = function()
for ent, nametag in Reference do
if DistanceCheck.Enabled then
local distance = entitylib.isAlive and (entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude or math.huge
if distance < DistanceLimit.ValueMin or distance > DistanceLimit.ValueMax then
nametag.Text.Visible = false
nametag.BG.Visible = false
continue
end
end
local headPos, headVis = gameCamera:WorldToViewportPoint(ent.RootPart.Position + Vector3.new(0, ent.HipHeight + 1, 0))
nametag.Text.Visible = headVis
nametag.BG.Visible = headVis
if not headVis then
continue
end
if Distance.Enabled then
local mag = entitylib.isAlive and math.floor((entitylib.character.RootPart.Position - ent.RootPart.Position).Magnitude) or 0
if Sizes[ent] ~= mag then
nametag.Text.Text = string.format(Strings[ent], mag)
nametag.BG.Size = Vector2.new(nametag.Text.TextBounds.X + 8, nametag.Text.TextBounds.Y + 7)
Sizes[ent] = mag
end
end
nametag.BG.Position = Vector2.new(headPos.X - (nametag.BG.Size.X / 2), headPos.Y - nametag.BG.Size.Y)
nametag.Text.Position = nametag.BG.Position + Vector2.new(4, 3)
end
end
}
NameTags = vape.Categories.Render:CreateModule({
Name = 'NameTags',
Function = function(callback)
if callback then
methodused = DrawingToggle.Enabled and 'Drawing' or 'Normal'
if Removed[methodused] then
NameTags:Clean(entitylib.Events.EntityRemoved:Connect(Removed[methodused]))
end
if Added[methodused] then
for _, v in entitylib.List do
if Reference[v] then
Removed[methodused](v)
end
Added[methodused](v)
end
NameTags:Clean(entitylib.Events.EntityAdded:Connect(function(ent)
if Reference[ent] then
Removed[methodused](ent)
end
Added[methodused](ent)
end))
end
if Updated[methodused] then
NameTags:Clean(entitylib.Events.EntityUpdated:Connect(Updated[methodused]))
for _, v in entitylib.List do
Updated[methodused](v)
end
end
if ColorFunc[methodused] then
NameTags:Clean(vape.Categories.Friends.ColorUpdate.Event:Connect(function()
ColorFunc[methodused](Color.Hue, Color.Sat, Color.Value)
end))
end
if Loop[methodused] then
NameTags:Clean(runService.RenderStepped:Connect(Loop[methodused]))
end
else
if Removed[methodused] then
for i in Reference do
Removed[methodused](i)
end
end
end
end,
Tooltip = 'Renders nametags on entities through walls.'
})
Targets = NameTags:CreateTargets({
Players = true,
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
FontOption = NameTags:CreateFont({
Name = 'Font',
Blacklist = 'Arial',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
Color = NameTags:CreateColorSlider({
Name = 'Player Color',
Function = function(hue, sat, val)
if NameTags.Enabled and ColorFunc[methodused] then
ColorFunc[methodused](hue, sat, val)
end
end
})
Scale = NameTags:CreateSlider({
Name = 'Scale',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = 1,
Min = 0.1,
Max = 1.5,
Decimal = 10
})
Background = NameTags:CreateSlider({
Name = 'Transparency',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = 0.5,
Min = 0,
Max = 1,
Decimal = 10
})
Health = NameTags:CreateToggle({
Name = 'Health',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
Distance = NameTags:CreateToggle({
Name = 'Distance',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
Equipment = NameTags:CreateToggle({
Name = 'Equipment',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end
})
DisplayName = NameTags:CreateToggle({
Name = 'Use Displayname',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = true
})
Teammates = NameTags:CreateToggle({
Name = 'Priority Only',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
Default = true
})
DrawingToggle = NameTags:CreateToggle({
Name = 'Drawing',
Function = function()
if NameTags.Enabled then
NameTags:Toggle()
NameTags:Toggle()
end
end,
})
DistanceCheck = NameTags:CreateToggle({
Name = 'Distance Check',
Function = function(callback)
DistanceLimit.Object.Visible = callback
end
})
DistanceLimit = NameTags:CreateTwoSlider({
Name = 'Player Distance',
Min = 0,
Max = 256,
DefaultMin = 0,
DefaultMax = 64,
Darker = true,
Visible = false
})
end)
run(function()
local StorageESP
local List
local Background
local Color = {}
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.holder
local function nearStorageItem(item)
for _, v in List.ListEnabled do
if item:find(v) then return v end
end
end
local function refreshAdornee(v)
local chest = v.Adornee:FindFirstChild('ChestFolderValue')
chest = chest and chest.Value or nil
if not chest then
v.Enabled = false
return
end
local chestitems = chest and chest:GetChildren() or {}
for _, obj in v.Frame:GetChildren() do
if obj:IsA('ImageLabel') and obj.Name ~= 'Blur' then
obj:Destroy()
end
end
v.Enabled = false
local alreadygot = {}
for _, item in chestitems do
if not alreadygot[item.Name] and (table.find(List.ListEnabled, item.Name) or nearStorageItem(item.Name)) then
alreadygot[item.Name] = true
v.Enabled = true
local blockimage = Instance.new('ImageLabel')
blockimage.Size = UDim2.fromOffset(32, 32)
blockimage.BackgroundTransparency = 1
blockimage.Image = bedwars.getIcon({itemType = item.Name}, true)
blockimage.Parent = v.Frame
end
end
table.clear(chestitems)
end
local function Added(v)
local chest = v:WaitForChild('ChestFolderValue', 3)
if not (chest and StorageESP.Enabled) then return end
chest = chest.Value
local billboard = Instance.new('BillboardGui')
billboard.Parent = Folder
billboard.Name = 'chest'
billboard.StudsOffsetWorldSpace = Vector3.new(0, 3, 0)
billboard.Size = UDim2.fromOffset(36, 36)
billboard.AlwaysOnTop = true
billboard.ClipsDescendants = false
billboard.Adornee = v
local blur = addBlur(billboard)
blur.Visible = Background.Enabled
local frame = Instance.new('Frame')
frame.Size = UDim2.fromScale(1, 1)
frame.BackgroundColor3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
frame.BackgroundTransparency = 1 - (Background.Enabled and Color.Opacity or 0)
frame.Parent = billboard
local layout = Instance.new('UIListLayout')
layout.FillDirection = Enum.FillDirection.Horizontal
layout.Padding = UDim.new(0, 4)
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
billboard.Size = UDim2.fromOffset(math.max(layout.AbsoluteContentSize.X + 4, 36), 36)
end)
layout.Parent = frame
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = frame
Reference[v] = billboard
StorageESP:Clean(chest.ChildAdded:Connect(function(item)
if table.find(List.ListEnabled, item.Name) or nearStorageItem(item.Name) then
refreshAdornee(billboard)
end
end))
StorageESP:Clean(chest.ChildRemoved:Connect(function(item)
if table.find(List.ListEnabled, item.Name) or nearStorageItem(item.Name) then
refreshAdornee(billboard)
end
end))
task.spawn(refreshAdornee, billboard)
end
StorageESP = vape.Categories.Render:CreateModule({
Name = 'StorageESP',
Function = function(callback)
if callback then
StorageESP:Clean(collectionService:GetInstanceAddedSignal('chest'):Connect(Added))
for _, v in collectionService:GetTagged('chest') do
task.spawn(Added, v)
end
else
table.clear(Reference)
Folder:ClearAllChildren()
end
end,
Tooltip = 'Displays items in chests'
})
List = StorageESP:CreateTextList({
Name = 'Item',
Function = function()
for _, v in Reference do
task.spawn(refreshAdornee, v)
end
end
})
Background = StorageESP:CreateToggle({
Name = 'Background',
Function = function(callback)
if Color.Object then Color.Object.Visible = callback end
for _, v in Reference do
v.Frame.BackgroundTransparency = 1 - (callback and Color.Opacity or 0)
v.Blur.Visible = callback
end
end,
Default = true
})
Color = StorageESP:CreateColorSlider({
Name = 'Background Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
for _, v in Reference do
v.Frame.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
v.Frame.BackgroundTransparency = 1 - opacity
end
end,
Darker = true
})
end)
run(function()
local AutoBalloon
AutoBalloon = vape.Categories.Utility:CreateModule({
Name = 'AutoBalloon',
Function = function(callback)
if callback then
repeat task.wait() until store.matchState ~= 0 or (not AutoBalloon.Enabled)
if not AutoBalloon.Enabled then return end
local lowestpoint = math.huge
for _, v in store.blocks do
local point = (v.Position.Y - (v.Size.Y / 2)) - 50
if point < lowestpoint then
lowestpoint = point
end
end
repeat
if entitylib.isAlive then
if entitylib.character.RootPart.Position.Y < lowestpoint and (lplr.Character:GetAttribute('InflatedBalloons') or 0) < 3 then
local balloon = getItem('balloon')
if balloon then
for _ = 1, 3 do
bedwars.BalloonController:inflateBalloon()
end
end
task.wait(0.1)
end
end
task.wait(0.1)
until not AutoBalloon.Enabled
end
end,
Tooltip = 'Inflates when you fall into the void'
})
end)
run(function()
local AutoKit
local Legit
local Toggles = {}
local function kitCollection(id, func, range, specific)
local objs = type(id) == 'table' and id or collection(id, AutoKit)
repeat
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
for _, v in objs do
if InfiniteFly.Enabled or not AutoKit.Enabled then break end
local part = not v:IsA('Model') and v or v.PrimaryPart
if part and (part.Position - localPosition).Magnitude <= (not Legit.Enabled and specific and math.huge or range) then
func(v)
end
end
end
task.wait(0.1)
until not AutoKit.Enabled
end
local AutoKitFunctions = {
battery = function()
repeat
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
for i, v in bedwars.BatteryEffectsController.liveBatteries do
if (v.position - localPosition).Magnitude <= 10 then
local BatteryInfo = bedwars.BatteryEffectsController:getBatteryInfo(i)
if not BatteryInfo or BatteryInfo.activateTime >= workspace:GetServerTimeNow() or BatteryInfo.consumeTime + 0.1 >= workspace:GetServerTimeNow() then continue end
BatteryInfo.consumeTime = workspace:GetServerTimeNow()
bedwars.Client:Get(remotes.ConsumeBattery):SendToServer({batteryId = i})
end
end
end
task.wait(0.1)
until not AutoKit.Enabled
end,
beekeeper = function()
kitCollection('bee', function(v)
bedwars.Client:Get(remotes.BeePickup):SendToServer({beeId = v:GetAttribute('BeeId')})
end, 18, false)
end,
bigman = function()
kitCollection('treeOrb', function(v)
if bedwars.Client:Get(remotes.ConsumeTreeOrb):CallServer({treeOrbSecret = v:GetAttribute('TreeOrbSecret')}) then
v:Destroy()
end
end, 12, false)
end,
block_kicker = function()
local old = bedwars.BlockKickerKitController.getKickBlockProjectileOriginPosition
bedwars.BlockKickerKitController.getKickBlockProjectileOriginPosition = function(...)
local origin, dir = select(2, ...)
local plr = entitylib.EntityMouse({
Part = 'RootPart',
Range = 1000,
Origin = origin,
Players = true,
Wallcheck = true
})
if plr then
local calc = prediction.SolveTrajectory(origin, 100, 20, plr.RootPart.Position, plr.RootPart.Velocity, workspace.Gravity, plr.HipHeight, plr.Jumping and 42.6 or nil)
if calc then
for i, v in debug.getstack(2) do
if v == dir then
debug.setstack(2, i, CFrame.lookAt(origin, calc).LookVector)
end
end
end
end
return old(...)
end
AutoKit:Clean(function()
bedwars.BlockKickerKitController.getKickBlockProjectileOriginPosition = old
end)
end,
cat = function()
local old = bedwars.CatController.leap
bedwars.CatController.leap = function(...)
vapeEvents.CatPounce:Fire()
return old(...)
end
AutoKit:Clean(function()
bedwars.CatController.leap = old
end)
end,
davey = function()
local old = bedwars.CannonHandController.launchSelf
bedwars.CannonHandController.launchSelf = function(...)
local res = {old(...)}
local self, block = ...
if block:GetAttribute('PlacedByUserId') == lplr.UserId and (block.Position - entitylib.character.RootPart.Position).Magnitude < 30 then
task.spawn(bedwars.breakBlock, block, false, nil, true)
end
return unpack(res)
end
AutoKit:Clean(function()
bedwars.CannonHandController.launchSelf = old
end)
end,
dragon_slayer = function()
kitCollection('KaliyahPunchInteraction', function(v)
bedwars.DragonSlayerController:deleteEmblem(v)
bedwars.DragonSlayerController:playPunchAnimation(Vector3.zero)
bedwars.Client:Get(remotes.KaliyahPunch):SendToServer({
target = v
})
end, 18, true)
end,
farmer_cletus = function()
kitCollection('HarvestableCrop', function(v)
if bedwars.Client:Get(remotes.HarvestCrop):CallServer({position = bedwars.BlockController:getBlockPosition(v.Position)}) then
bedwars.GameAnimationUtil:playAnimation(lplr.Character, bedwars.AnimationType.PUNCH)
bedwars.SoundManager:playSound(bedwars.SoundList.CROP_HARVEST)
end
end, 10, false)
end,
fisherman = function()
local old = bedwars.FishingMinigameController.startMinigame
bedwars.FishingMinigameController.startMinigame = function(_, _, result)
result({win = true})
end
AutoKit:Clean(function()
bedwars.FishingMinigameController.startMinigame = old
end)
end,
gingerbread_man = function()
local old = bedwars.LaunchPadController.attemptLaunch
bedwars.LaunchPadController.attemptLaunch = function(...)
local res = {old(...)}
local self, block = ...
if (workspace:GetServerTimeNow() - self.lastLaunch) < 0.4 then
if block:GetAttribute('PlacedByUserId') == lplr.UserId and (block.Position - entitylib.character.RootPart.Position).Magnitude < 30 then
task.spawn(bedwars.breakBlock, block, false, nil, true)
end
end
return unpack(res)
end
AutoKit:Clean(function()
bedwars.LaunchPadController.attemptLaunch = old
end)
end,
hannah = function()
kitCollection('HannahExecuteInteraction', function(v)
local billboard = bedwars.Client:Get(remotes.HannahKill):CallServer({
user = lplr,
victimEntity = v
}) and v:FindFirstChild('Hannah Execution Icon')
if billboard then
billboard:Destroy()
end
end, 30, true)
end,
jailor = function()
kitCollection('jailor_soul', function(v)
bedwars.JailorController:collectEntity(lplr, v, 'JailorSoul')
end, 20, false)
end,
grim_reaper = function()
kitCollection(bedwars.GrimReaperController.soulsByPosition, function(v)
if entitylib.isAlive and lplr.Character:GetAttribute('Health') <= (lplr.Character:GetAttribute('MaxHealth') / 4) and (not lplr.Character:GetAttribute('GrimReaperChannel')) then
bedwars.Client:Get(remotes.ConsumeSoul):CallServer({
secret = v:GetAttribute('GrimReaperSoulSecret')
})
end
end, 120, false)
end,
melody = function()
repeat
local mag, hp, ent = 30, math.huge
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
for _, v in entitylib.List do
if v.Player and v.Player:GetAttribute('Team') == lplr:GetAttribute('Team') then
local newmag = (localPosition - v.RootPart.Position).Magnitude
if newmag <= mag and v.Health < hp and v.Health < v.MaxHealth then
mag, hp, ent = newmag, v.Health, v
end
end
end
end
if ent and getItem('guitar') then
bedwars.Client:Get(remotes.GuitarHeal):SendToServer({
healTarget = ent.Character
})
end
task.wait(0.1)
until not AutoKit.Enabled
end,
metal_detector = function()
kitCollection('hidden-metal', function(v)
bedwars.Client:Get(remotes.PickupMetal):SendToServer({
id = v:GetAttribute('Id')
})
end, 20, false)
end,
miner = function()
kitCollection('petrified-player', function(v)
bedwars.Client:Get(remotes.MinerDig):SendToServer({
petrifyId = v:GetAttribute('PetrifyId')
})
end, 6, true)
end,
pinata = function()
kitCollection(lplr.Name..':pinata', function(v)
if getItem('candy') then
bedwars.Client:Get(remotes.DepositPinata):CallServer(v)
end
end, 6, true)
end,
spirit_assassin = function()
kitCollection('EvelynnSoul', function(v)
bedwars.SpiritAssassinController:useSpirit(lplr, v)
end, 120, true)
end,
star_collector = function()
kitCollection('stars', function(v)
bedwars.StarCollectorController:collectEntity(lplr, v, v.Name)
end, 20, false)
end,
summoner = function()
repeat
local plr = entitylib.EntityPosition({
Range = 31,
Part = 'RootPart',
Players = true,
Sort = sortmethods.Health
})
if plr and (not Legit.Enabled or (lplr.Character:GetAttribute('Health') or 0) > 0) then
local localPosition = entitylib.character.RootPart.Position
local shootDir = CFrame.lookAt(localPosition, plr.RootPart.Position).LookVector
localPosition += shootDir * math.max((localPosition - plr.RootPart.Position).Magnitude - 16, 0)
bedwars.Client:Get(remotes.SummonerClawAttack):SendToServer({
position = localPosition,
direction = shootDir,
clientTime = workspace:GetServerTimeNow()
})
end
task.wait(0.1)
until not AutoKit.Enabled
end,
void_dragon = function()
local oldflap = bedwars.VoidDragonController.flapWings
local flapped
bedwars.VoidDragonController.flapWings = function(self)
if not flapped and bedwars.Client:Get(remotes.DragonFly):CallServer() then
local modifier = bedwars.SprintController:getMovementStatusModifier():addModifier({
blockSprint = true,
constantSpeedMultiplier = 2
})
self.SpeedMaid:GiveTask(modifier)
self.SpeedMaid:GiveTask(function()
flapped = false
end)
flapped = true
end
end
AutoKit:Clean(function()
bedwars.VoidDragonController.flapWings = oldflap
end)
repeat
if bedwars.VoidDragonController.inDragonForm then
local plr = entitylib.EntityPosition({
Range = 30,
Part = 'RootPart',
Players = true
})
if plr then
bedwars.Client:Get(remotes.DragonBreath):SendToServer({
player = lplr,
targetPoint = plr.RootPart.Position
})
end
end
task.wait(0.1)
until not AutoKit.Enabled
end,
warlock = function()
local lastTarget
repeat
if store.hand.tool and store.hand.tool.Name == 'warlock_staff' then
local plr = entitylib.EntityPosition({
Range = 30,
Part = 'RootPart',
Players = true,
NPCs = true
})
if plr and plr.Character ~= lastTarget then
if not bedwars.Client:Get(remotes.WarlockTarget):CallServer({
target = plr.Character
}) then
plr = nil
end
end
lastTarget = plr and plr.Character
else
lastTarget = nil
end
task.wait(0.1)
until not AutoKit.Enabled
end,
wizard = function()
repeat
local ability = lplr:GetAttribute('WizardAbility')
if ability and bedwars.AbilityController:canUseAbility(ability) then
local plr = entitylib.EntityPosition({
Range = 50,
Part = 'RootPart',
Players = true,
Sort = sortmethods.Health
})
if plr then
bedwars.AbilityController:useAbility(ability, newproxy(true), {target = plr.RootPart.Position})
end
end
task.wait(0.1)
until not AutoKit.Enabled
end
}
AutoKit = vape.Categories.Utility:CreateModule({
Name = 'AutoKit',
Function = function(callback)
if callback then
repeat task.wait() until store.equippedKit ~= '' and store.matchState ~= 0 or (not AutoKit.Enabled)
if AutoKit.Enabled and AutoKitFunctions[store.equippedKit] and Toggles[store.equippedKit].Enabled then
AutoKitFunctions[store.equippedKit]()
end
end
end,
Tooltip = 'Automatically uses kit abilities.'
})
Legit = AutoKit:CreateToggle({Name = 'Legit Range'})
local sortTable = {}
for i in AutoKitFunctions do
table.insert(sortTable, i)
end
table.sort(sortTable, function(a, b)
return bedwars.BedwarsKitMeta[a].name < bedwars.BedwarsKitMeta[b].name
end)
for _, v in sortTable do
Toggles[v] = AutoKit:CreateToggle({
Name = bedwars.BedwarsKitMeta[v].name,
Default = true
})
end
end)
run(function()
local AutoPearl
local rayCheck = RaycastParams.new()
rayCheck.RespectCanCollide = true
local projectileRemote = {InvokeServer = function() end}
task.spawn(function()
projectileRemote = bedwars.Client:Get(remotes.FireProjectile).instance
end)
local function firePearl(pos, spot, item)
switchItem(item.tool)
local meta = bedwars.ProjectileMeta.telepearl
local calc = prediction.SolveTrajectory(pos, meta.launchVelocity, meta.gravitationalAcceleration, spot, Vector3.zero, workspace.Gravity, 0, 0)
if calc then
local dir = CFrame.lookAt(pos, calc).LookVector * meta.launchVelocity
bedwars.ProjectileController:createLocalProjectile(meta, 'telepearl', 'telepearl', pos, nil, dir, {drawDurationSeconds = 1})
projectileRemote:InvokeServer(item.tool, 'telepearl', 'telepearl', pos, pos, dir, httpService:GenerateGUID(true), {drawDurationSeconds = 1, shotId = httpService:GenerateGUID(false)}, workspace:GetServerTimeNow() - 0.045)
end
if store.hand then
switchItem(store.hand.tool)
end
end
AutoPearl = vape.Categories.Utility:CreateModule({
Name = 'AutoPearl',
Function = function(callback)
if callback then
local check
repeat
if entitylib.isAlive then
local root = entitylib.character.RootPart
local pearl = getItem('telepearl')
rayCheck.FilterDescendantsInstances = {lplr.Character, gameCamera, AntiFallPart}
rayCheck.CollisionGroup = root.CollisionGroup
if pearl and root.Velocity.Y < -100 and not workspace:Raycast(root.Position, Vector3.new(0, -200, 0), rayCheck) then
if not check then
check = true
local ground = getNearGround(20)
if ground then
firePearl(root.Position, ground, pearl)
end
end
else
check = false
end
end
task.wait(0.1)
until not AutoPearl.Enabled
end
end,
Tooltip = 'Automatically throws a pearl onto nearby ground after\nfalling a certain distance.'
})
end)
run(function()
local AutoPlay
local Random
local function isEveryoneDead()
return #bedwars.Store:getState().Party.members <= 0
end
local function joinQueue()
if not bedwars.Store:getState().Game.customMatch and bedwars.Store:getState().Party.leader.userId == lplr.UserId and bedwars.Store:getState().Party.queueState == 0 then
if Random.Enabled then
local listofmodes = {}
for i, v in bedwars.QueueMeta do
if not v.disabled and not v.voiceChatOnly and not v.rankCategory then
table.insert(listofmodes, i)
end
end
bedwars.QueueController:joinQueue(listofmodes[math.random(1, #listofmodes)])
else
bedwars.QueueController:joinQueue(store.queueType)
end
end
end
AutoPlay = vape.Categories.Utility:CreateModule({
Name = 'AutoPlay',
Function = function(callback)
if callback then
AutoPlay:Clean(vapeEvents.EntityDeathEvent.Event:Connect(function(deathTable)
if deathTable.finalKill and deathTable.entityInstance == lplr.Character and isEveryoneDead() and store.matchState ~= 2 then
joinQueue()
end
end))
AutoPlay:Clean(vapeEvents.MatchEndEvent.Event:Connect(joinQueue))
end
end,
Tooltip = 'Automatically queues after the match ends.'
})
Random = AutoPlay:CreateToggle({
Name = 'Random',
Tooltip = 'Chooses a random mode'
})
end)
run(function()
local shooting, old = false
local function getCrossbows()
local crossbows = {}
for i, v in store.inventory.hotbar do
if v.item and v.item.itemType:find('crossbow') and i ~= (store.inventory.hotbarSlot + 1) then table.insert(crossbows, i - 1) end
end
return crossbows
end
vape.Categories.Utility:CreateModule({
Name = 'AutoShoot',
Function = function(callback)
if callback then
old = bedwars.ProjectileController.createLocalProjectile
bedwars.ProjectileController.createLocalProjectile = function(...)
local source, data, proj = ...
if source and (proj == 'arrow' or proj == 'fireball') and not shooting then
task.spawn(function()
local bows = getCrossbows()
if #bows > 0 then
shooting = true
task.wait(0.15)
local selected = store.inventory.hotbarSlot
for _, v in getCrossbows() do
if hotbarSwitch(v) then
task.wait(0.05)
mouse1click()
task.wait(0.05)
end
end
hotbarSwitch(selected)
shooting = false
end
end)
end
return old(...)
end
else
bedwars.ProjectileController.createLocalProjectile = old
end
end,
Tooltip = 'Automatically crossbow macro\'s'
})
end)
run(function()
local AutoToxic
local GG
local Toggles, Lists, said, dead = {}, {}, {}
local function sendMessage(name, obj, default)
local tab = Lists[name].ListEnabled
local custommsg = #tab > 0 and tab[math.random(1, #tab)] or default
if not custommsg then return end
if #tab > 1 and custommsg == said[name] then
repeat
task.wait()
custommsg = tab[math.random(1, #tab)]
until custommsg ~= said[name]
end
said[name] = custommsg
custommsg = custommsg and custommsg:gsub('<obj>', obj or '') or ''
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
textChatService.ChatInputBarConfiguration.TargetTextChannel:SendAsync(custommsg)
else
replicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(custommsg, 'All')
end
end
AutoToxic = vape.Categories.Utility:CreateModule({
Name = 'AutoToxic',
Function = function(callback)
if callback then
AutoToxic:Clean(vapeEvents.BedwarsBedBreak.Event:Connect(function(bedTable)
if Toggles.BedDestroyed.Enabled and bedTable.brokenBedTeam.id == lplr:GetAttribute('Team') then
sendMessage('BedDestroyed', (bedTable.player.DisplayName or bedTable.player.Name), 'how dare you >:( | <obj>')
elseif Toggles.Bed.Enabled and bedTable.player.UserId == lplr.UserId then
local team = bedwars.QueueMeta[store.queueType].teams[tonumber(bedTable.brokenBedTeam.id)]
sendMessage('Bed', team and team.displayName:lower() or 'white', 'nice bed lul | <obj>')
end
end))
AutoToxic:Clean(vapeEvents.EntityDeathEvent.Event:Connect(function(deathTable)
if deathTable.finalKill then
local killer = playersService:GetPlayerFromCharacter(deathTable.fromEntity)
local killed = playersService:GetPlayerFromCharacter(deathTable.entityInstance)
if not killed or not killer then return end
if killed == lplr then
if (not dead) and killer ~= lplr and Toggles.Death.Enabled then
dead = true
sendMessage('Death', (killer.DisplayName or killer.Name), 'my gaming chair subscription expired :( | <obj>')
end
elseif killer == lplr and Toggles.Kill.Enabled then
sendMessage('Kill', (killed.DisplayName or killed.Name), 'vxp on top | <obj>')
end
end
end))
AutoToxic:Clean(vapeEvents.MatchEndEvent.Event:Connect(function(winstuff)
if GG.Enabled then
if textChatService.ChatVersion == Enum.ChatVersion.TextChatService then
textChatService.ChatInputBarConfiguration.TargetTextChannel:SendAsync('gg')
else
replicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer('gg', 'All')
end
end
local myTeam = bedwars.Store:getState().Game.myTeam
if myTeam and myTeam.id == winstuff.winningTeamId or lplr.Neutral then
if Toggles.Win.Enabled then
sendMessage('Win', nil, 'yall garbage')
end
end
end))
end
end,
Tooltip = 'Says a message after a certain action'
})
GG = AutoToxic:CreateToggle({
Name = 'AutoGG',
Default = true
})
for _, v in {'Kill', 'Death', 'Bed', 'BedDestroyed', 'Win'} do
Toggles[v] = AutoToxic:CreateToggle({
Name = v..' ',
Function = function(callback)
if Lists[v] then
Lists[v].Object.Visible = callback
end
end
})
Lists[v] = AutoToxic:CreateTextList({
Name = v,
Darker = true,
Visible = false
})
end
end)
run(function()
local AutoVoidDrop
local OwlCheck
AutoVoidDrop = vape.Categories.Utility:CreateModule({
Name = 'AutoVoidDrop',
Function = function(callback)
if callback then
repeat task.wait() until store.matchState ~= 0 or (not AutoVoidDrop.Enabled)
if not AutoVoidDrop.Enabled then return end
local lowestpoint = math.huge
for _, v in store.blocks do
local point = (v.Position.Y - (v.Size.Y / 2)) - 50
if point < lowestpoint then
lowestpoint = point
end
end
repeat
if entitylib.isAlive then
local root = entitylib.character.RootPart
if root.Position.Y < lowestpoint and (lplr.Character:GetAttribute('InflatedBalloons') or 0) <= 0 and not getItem('balloon') then
if not OwlCheck.Enabled or not root:FindFirstChild('OwlLiftForce') then
for _, item in {'iron', 'diamond', 'emerald', 'gold'} do
item = getItem(item)
if item then
item = bedwars.Client:Get(remotes.DropItem):CallServer({
item = item.tool,
amount = item.amount
})
if item then
item:SetAttribute('ClientDropTime', tick() + 100)
end
end
end
end
end
end
task.wait(0.1)
until not AutoVoidDrop.Enabled
end
end,
Tooltip = 'Drops resources when you fall into the void'
})
OwlCheck = AutoVoidDrop:CreateToggle({
Name = 'Owl check',
Default = true,
Tooltip = 'Refuses to drop items if being picked up by an owl'
})
end)
run(function()
local MissileTP
MissileTP = vape.Categories.Utility:CreateModule({
Name = 'MissileTP',
Function = function(callback)
if callback then
MissileTP:Toggle()
local plr = entitylib.EntityMouse({
Range = 1000,
Players = true,
Part = 'RootPart'
})
if getItem('guided_missile') and plr then
local projectile = bedwars.RuntimeLib.await(bedwars.GuidedProjectileController.fireGuidedProjectile:CallServerAsync('guided_missile'))
if projectile then
local projectilemodel = projectile.model
if not projectilemodel.PrimaryPart then
projectilemodel:GetPropertyChangedSignal('PrimaryPart'):Wait()
end
local bodyforce = Instance.new('BodyForce')
bodyforce.Force = Vector3.new(0, projectilemodel.PrimaryPart.AssemblyMass * workspace.Gravity, 0)
bodyforce.Name = 'AntiGravity'
bodyforce.Parent = projectilemodel.PrimaryPart
repeat
projectile.model:SetPrimaryPartCFrame(CFrame.lookAlong(plr.RootPart.CFrame.p, gameCamera.CFrame.LookVector))
task.wait(0.1)
until not projectile.model or not projectile.model.Parent
else
notif('MissileTP', 'Missile on cooldown.', 3)
end
end
end
end,
Tooltip = 'Spawns and teleports a missile to a player\nnear your mouse.'
})
end)
run(function()
local PickupRange
local Range
local Network
local Lower
PickupRange = vape.Categories.Utility:CreateModule({
Name = 'PickupRange',
Function = function(callback)
if callback then
local items = collection('ItemDrop', PickupRange)
repeat
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
for _, v in items do
if tick() - (v:GetAttribute('ClientDropTime') or 0) < 2 then continue end
if isnetworkowner(v) and Network.Enabled and entitylib.character.Humanoid.Health > 0 then
v.CFrame = CFrame.new(localPosition - Vector3.new(0, 3, 0))
end
if (localPosition - v.Position).Magnitude <= Range.Value then
if Lower.Enabled and (localPosition.Y - v.Position.Y) < (entitylib.character.HipHeight - 1) then continue end
task.spawn(function()
bedwars.Client:Get(remotes.PickupItem):CallServerAsync({
itemDrop = v
}):andThen(function(suc)
if suc and bedwars.SoundList then
bedwars.SoundManager:playSound(bedwars.SoundList.PICKUP_ITEM_DROP)
local sound = bedwars.ItemMeta[v.Name].pickUpOverlaySound
if sound then
bedwars.SoundManager:playSound(sound, {
position = v.Position,
volumeMultiplier = 0.9
})
end
end
end)
end)
end
end
end
task.wait(0.1)
until not PickupRange.Enabled
end
end,
Tooltip = 'Picks up items from a farther distance'
})
Range = PickupRange:CreateSlider({
Name = 'Range',
Min = 1,
Max = 10,
Default = 10,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
Network = PickupRange:CreateToggle({
Name = 'Network TP',
Default = true
})
Lower = PickupRange:CreateToggle({Name = 'Feet Check'})
end)
run(function()
local RavenTP
RavenTP = vape.Categories.Utility:CreateModule({
Name = 'RavenTP',
Function = function(callback)
if callback then
RavenTP:Toggle()
local plr = entitylib.EntityMouse({
Range = 1000,
Players = true,
Part = 'RootPart'
})
if getItem('raven') and plr then
bedwars.Client:Get(remotes.SpawnRaven):CallServerAsync():andThen(function(projectile)
if projectile then
local bodyforce = Instance.new('BodyForce')
bodyforce.Force = Vector3.new(0, projectile.PrimaryPart.AssemblyMass * workspace.Gravity, 0)
bodyforce.Parent = projectile.PrimaryPart
if plr then
task.spawn(function()
for _ = 1, 20 do
if plr.RootPart and projectile then
projectile:SetPrimaryPartCFrame(CFrame.lookAlong(plr.RootPart.Position, gameCamera.CFrame.LookVector))
end
task.wait(0.05)
end
end)
task.wait(0.3)
bedwars.RavenController:detonateRaven()
end
end
end)
end
end
end,
Tooltip = 'Spawns and teleports a raven to a player\nnear your mouse.'
})
end)
run(function()
local Scaffold
local Expand
local Tower
local Downwards
local Diagonal
local LimitItem
local Mouse
local adjacent, lastpos, label = {}, Vector3.zero
for x = -3, 3, 3 do
for y = -3, 3, 3 do
for z = -3, 3, 3 do
local vec = Vector3.new(x, y, z)
if vec ~= Vector3.zero then
table.insert(adjacent, vec)
end
end
end
end
local function nearCorner(poscheck, pos)
local startpos = poscheck - Vector3.new(3, 3, 3)
local endpos = poscheck + Vector3.new(3, 3, 3)
local check = poscheck + (pos - poscheck).Unit * 100
return Vector3.new(math.clamp(check.X, startpos.X, endpos.X), math.clamp(check.Y, startpos.Y, endpos.Y), math.clamp(check.Z, startpos.Z, endpos.Z))
end
local function blockProximity(pos)
local mag, returned = 60
local tab = getBlocksInPoints(bedwars.BlockController:getBlockPosition(pos - Vector3.new(21, 21, 21)), bedwars.BlockController:getBlockPosition(pos + Vector3.new(21, 21, 21)))
for _, v in tab do
local blockpos = nearCorner(v, pos)
local newmag = (pos - blockpos).Magnitude
if newmag < mag then
mag, returned = newmag, blockpos
end
end
table.clear(tab)
return returned
end
local function checkAdjacent(pos)
for _, v in adjacent do
if getPlacedBlock(pos + v) then
return true
end
end
return false
end
local function getScaffoldBlock()
if store.hand.toolType == 'block' then
return store.hand.tool.Name, store.hand.amount
elseif (not LimitItem.Enabled) then
local wool, amount = getWool()
if wool then
return wool, amount
else
for _, item in store.inventory.inventory.items do
if bedwars.ItemMeta[item.itemType].block then
return item.itemType, item.amount
end
end
end
end
return nil, 0
end
Scaffold = vape.Categories.Utility:CreateModule({
Name = 'Scaffold',
Function = function(callback)
if label then
label.Visible = callback
end
if callback then
repeat
if entitylib.isAlive then
local wool, amount = getScaffoldBlock()
if Mouse.Enabled then
if not inputService:IsMouseButtonPressed(0) then
wool = nil
end
end
if label then
amount = amount or 0
label.Text = amount..' <font color="rgb(170, 170, 170)">(Scaffold)</font>'
label.TextColor3 = Color3.fromHSV((amount / 128) / 2.8, 0.86, 1)
end
if wool then
local root = entitylib.character.RootPart
if Tower.Enabled and inputService:IsKeyDown(Enum.KeyCode.Space) and (not inputService:GetFocusedTextBox()) then
root.Velocity = Vector3.new(root.Velocity.X, 38, root.Velocity.Z)
end
for i = Expand.Value, 1, -1 do
local currentpos = roundPos(root.Position - Vector3.new(0, entitylib.character.HipHeight + (Downwards.Enabled and inputService:IsKeyDown(Enum.KeyCode.LeftShift) and 4.5 or 1.5), 0) + entitylib.character.Humanoid.MoveDirection * (i * 3))
if Diagonal.Enabled then
if math.abs(math.round(math.deg(math.atan2(-entitylib.character.Humanoid.MoveDirection.X, -entitylib.character.Humanoid.MoveDirection.Z)) / 45) * 45) % 90 == 45 then
local dt = (lastpos - currentpos)
if ((dt.X == 0 and dt.Z ~= 0) or (dt.X ~= 0 and dt.Z == 0)) and ((lastpos - root.Position) * Vector3.new(1, 0, 1)).Magnitude < 2.5 then
currentpos = lastpos
end
end
end
local block, blockpos = getPlacedBlock(currentpos)
if not block then
blockpos = checkAdjacent(blockpos * 3) and blockpos * 3 or blockProximity(currentpos)
if blockpos then
task.spawn(bedwars.placeBlock, blockpos, wool, false)
end
end
lastpos = currentpos
end
end
end
task.wait(0.03)
until not Scaffold.Enabled
else
Label = nil
end
end,
Tooltip = 'Helps you make bridges/scaffold walk.'
})
Expand = Scaffold:CreateSlider({
Name = 'Expand',
Min = 1,
Max = 6
})
Tower = Scaffold:CreateToggle({
Name = 'Tower',
Default = true
})
Downwards = Scaffold:CreateToggle({
Name = 'Downwards',
Default = true
})
Diagonal = Scaffold:CreateToggle({
Name = 'Diagonal',
Default = true
})
LimitItem = Scaffold:CreateToggle({Name = 'Limit to items'})
Mouse = Scaffold:CreateToggle({Name = 'Require mouse down'})
Count = Scaffold:CreateToggle({
Name = 'Block Count',
Function = function(callback)
if callback then
label = Instance.new('TextLabel')
label.Size = UDim2.fromOffset(100, 20)
label.Position = UDim2.new(0.5, 6, 0.5, 60)
label.BackgroundTransparency = 1
label.AnchorPoint = Vector2.new(0.5, 0)
label.Text = '0'
label.TextColor3 = Color3.new(0, 1, 0)
label.TextSize = 18
label.RichText = true
label.Font = Enum.Font.Arial
label.Visible = Scaffold.Enabled
label.Parent = vape.gui
else
label:Destroy()
label = nil
end
end
})
end)
run(function()
local ShopTierBypass
local tiered, nexttier = {}, {}
ShopTierBypass = vape.Categories.Utility:CreateModule({
Name = 'ShopTierBypass',
Function = function(callback)
if callback then
repeat task.wait() until store.shopLoaded or not ShopTierBypass.Enabled
if ShopTierBypass.Enabled then
for _, v in bedwars.Shop.ShopItems do
tiered[v] = v.tiered
nexttier[v] = v.nextTier
v.nextTier = nil
v.tiered = nil
end
end
else
for i, v in tiered do
i.tiered = v
end
for i, v in nexttier do
i.nextTier = v
end
table.clear(nexttier)
table.clear(tiered)
end
end,
Tooltip = 'Lets you buy things like armor early.'
})
end)
run(function()
local StaffDetector
local Mode
local Clans
local Party
local Profile
local Users
local blacklistedclans = {'gg', 'gg2', 'DV', 'DV2'}
local blacklisteduserids = {1502104539, 3826146717, 4531785383, 1049767300, 4926350670, 653085195, 184655415, 2752307430, 5087196317, 5744061325, 1536265275}
local joined = {}
local function getRole(plr, id)
local suc, res = pcall(function()
return plr:GetRankInGroup(id)
end)
if not suc then
notif('StaffDetector', res, 30, 'alert')
end
return suc and res or 0
end
local function staffFunction(plr, checktype)
if not vape.Loaded then
repeat task.wait() until vape.Loaded
end
notif('StaffDetector', 'Staff Detected ('..checktype..'): '..plr.Name..' ('..plr.UserId..')', 60, 'alert')
whitelist.customtags[plr.Name] = {{text = 'GAME STAFF', color = Color3.new(1, 0, 0)}}
if Party.Enabled and not checktype:find('clan') then
bedwars.PartyController:leaveParty()
end
if Mode.Value == 'Uninject' then
task.spawn(function()
vape:Uninject()
end)
game:GetService('StarterGui'):SetCore('SendNotification', {
Title = 'StaffDetector',
Text = 'Staff Detected ('..checktype..')\n'..plr.Name..' ('..plr.UserId..')',
Duration = 60,
})
elseif Mode.Value == 'Requeue' then
bedwars.QueueController:joinQueue(store.queueType)
elseif Mode.Value == 'Profile' then
vape.Save = function() end
if vape.Profile ~= Profile.Value then
vape:Load(true, Profile.Value)
end
elseif Mode.Value == 'AutoConfig' then
local safe = {'AutoClicker', 'Reach', 'Sprint', 'HitFix', 'StaffDetector'}
vape.Save = function() end
for i, v in vape.Modules do
if not (table.find(safe, i) or v.Category == 'Render') then
if v.Enabled then
v:Toggle()
end
v:SetBind('')
end
end
end
end
local function checkFriends(list)
for _, v in list do
if joined[v] then
return joined[v]
end
end
return nil
end
local function checkJoin(plr, connection)
if not plr:GetAttribute('Team') and plr:GetAttribute('Spectator') and not bedwars.Store:getState().Game.customMatch then
connection:Disconnect()
local tab, pages = {}, playersService:GetFriendsAsync(plr.UserId)
for _ = 1, 4 do
for _, v in pages:GetCurrentPage() do
table.insert(tab, v.Id)
end
if pages.IsFinished then break end
pages:AdvanceToNextPageAsync()
end
local friend = checkFriends(tab)
if not friend then
staffFunction(plr, 'impossible_join')
return true
else
notif('StaffDetector', string.format('Spectator %s joined from %s', plr.Name, friend), 20, 'warning')
end
end
end
local function playerAdded(plr)
joined[plr.UserId] = plr.Name
if plr == lplr then return end
if table.find(blacklisteduserids, plr.UserId) or table.find(Users.ListEnabled, tostring(plr.UserId)) then
staffFunction(plr, 'blacklisted_user')
elseif getRole(plr, 5774246) >= 100 then
staffFunction(plr, 'staff_role')
else
local connection
connection = plr:GetAttributeChangedSignal('Spectator'):Connect(function()
checkJoin(plr, connection)
end)
StaffDetector:Clean(connection)
if checkJoin(plr, connection) then
return
end
if not plr:GetAttribute('ClanTag') then
plr:GetAttributeChangedSignal('ClanTag'):Wait()
end
if table.find(blacklistedclans, plr:GetAttribute('ClanTag')) and vape.Loaded and Clans.Enabled then
connection:Disconnect()
staffFunction(plr, 'blacklisted_clan_'..plr:GetAttribute('ClanTag'):lower())
end
end
end
StaffDetector = vape.Categories.Utility:CreateModule({
Name = 'StaffDetector',
Function = function(callback)
if callback then
StaffDetector:Clean(playersService.PlayerAdded:Connect(playerAdded))
for _, v in playersService:GetPlayers() do
task.spawn(playerAdded, v)
end
else
table.clear(joined)
end
end,
Tooltip = 'Detects people with a staff rank ingame'
})
Mode = StaffDetector:CreateDropdown({
Name = 'Mode',
List = {'Uninject', 'Profile', 'Requeue', 'AutoConfig', 'Notify'},
Function = function(val)
if Profile.Object then
Profile.Object.Visible = val == 'Profile'
end
end
})
Clans = StaffDetector:CreateToggle({
Name = 'Blacklist clans',
Default = true
})
Party = StaffDetector:CreateToggle({
Name = 'Leave party'
})
Profile = StaffDetector:CreateTextBox({
Name = 'Profile',
Default = 'default',
Darker = true,
Visible = false
})
Users = StaffDetector:CreateTextList({
Name = 'Users',
Placeholder = 'player (userid)'
})
task.spawn(function()
repeat task.wait(1) until vape.Loaded or vape.Loaded == nil
if vape.Loaded and not StaffDetector.Enabled then
StaffDetector:Toggle()
end
end)
end)
run(function()
TrapDisabler = vape.Categories.Utility:CreateModule({
Name = 'TrapDisabler',
Tooltip = 'Disables Snap Traps'
})
end)
run(function()
vape.Categories.World:CreateModule({
Name = 'Anti-AFK',
Function = function(callback)
if callback then
for _, v in getconnections(lplr.Idled) do
v:Disconnect()
end
for _, v in getconnections(runService.Heartbeat) do
if type(v.Function) == 'function' and table.find(debug.getconstants(v.Function), remotes.AfkStatus) then
v:Disconnect()
end
end
bedwars.Client:Get(remotes.AfkStatus):SendToServer({
afk = false
})
end
end,
Tooltip = 'Lets you stay ingame without getting kicked'
})
end)
run(function()
local AutoSuffocate
local Range
local LimitItem
local function fixPosition(pos)
return bedwars.BlockController:getBlockPosition(pos) * 3
end
AutoSuffocate = vape.Categories.World:CreateModule({
Name = 'AutoSuffocate',
Function = function(callback)
if callback then
repeat
local item = store.hand.toolType == 'block' and store.hand.tool.Name or not LimitItem.Enabled and getWool()
if item then
local plrs = entitylib.AllPosition({
Part = 'RootPart',
Range = Range.Value,
Players = true
})
for _, ent in plrs do
local needPlaced = {}
for _, side in Enum.NormalId:GetEnumItems() do
side = Vector3.fromNormalId(side)
if side.Y ~= 0 then continue end
side = fixPosition(ent.RootPart.Position + side * 2)
if not getPlacedBlock(side) then
table.insert(needPlaced, side)
end
end
if #needPlaced < 3 then
table.insert(needPlaced, fixPosition(ent.Head.Position))
table.insert(needPlaced, fixPosition(ent.RootPart.Position - Vector3.new(0, 1, 0)))
for _, pos in needPlaced do
if not getPlacedBlock(pos) then
task.spawn(bedwars.placeBlock, pos, item)
break
end
end
end
end
end
task.wait(0.09)
until not AutoSuffocate.Enabled
end
end,
Tooltip = 'Places blocks on nearby confined entities'
})
Range = AutoSuffocate:CreateSlider({
Name = 'Range',
Min = 1,
Max = 20,
Default = 20,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
LimitItem = AutoSuffocate:CreateToggle({
Name = 'Limit to Items',
Default = true
})
end)
run(function()
local AutoTool
local old, event
local function switchHotbarItem(block)
if block and not block:GetAttribute('NoBreak') and not block:GetAttribute('Team'..(lplr:GetAttribute('Team') or 0)..'NoBreak') then
local tool, slot = store.tools[bedwars.ItemMeta[block.Name].block.breakType], nil
if tool then
for i, v in store.inventory.hotbar do
if v.item and v.item.itemType == tool.itemType then slot = i - 1 break end
end
if hotbarSwitch(slot) then
if inputService:IsMouseButtonPressed(0) then
event:Fire()
end
return true
end
end
end
end
AutoTool = vape.Categories.World:CreateModule({
Name = 'AutoTool',
Function = function(callback)
if callback then
event = Instance.new('BindableEvent')
AutoTool:Clean(event)
AutoTool:Clean(event.Event:Connect(function()
contextActionService:CallFunction('block-break', Enum.UserInputState.Begin, newproxy(true))
end))
old = bedwars.BlockBreaker.hitBlock
bedwars.BlockBreaker.hitBlock = function(self, maid, raycastparams, ...)
local block = self.clientManager:getBlockSelector():getMouseInfo(1, {ray = raycastparams})
if switchHotbarItem(block and block.target and block.target.blockInstance or nil) then return end
return old(self, maid, raycastparams, ...)
end
else
bedwars.BlockBreaker.hitBlock = old
old = nil
end
end,
Tooltip = 'Automatically selects the correct tool'
})
end)
run(function()
local BedPlates
local Background
local Color = {}
local Reference = {}
local Folder = Instance.new('Folder')
Folder.Parent = vape.holder
local function scanSide(self, start, tab)
for _, side in sides do
for i = 1, 15 do
local block = getPlacedBlock(start + (side * i))
if not block or block == self then break end
if not block:GetAttribute('NoBreak') and not table.find(tab, block.Name) then
table.insert(tab, block.Name)
end
end
end
end
local function refreshAdornee(v)
for _, obj in v.Frame:GetChildren() do
if obj:IsA('ImageLabel') and obj.Name ~= 'Blur' then
obj:Destroy()
end
end
local start = v.Adornee.Position
local alreadygot = {}
scanSide(v.Adornee, start, alreadygot)
scanSide(v.Adornee, start + Vector3.new(0, 0, 3), alreadygot)
table.sort(alreadygot, function(a, b)
return (bedwars.ItemMeta[a].block and bedwars.ItemMeta[a].block.health or 0) > (bedwars.ItemMeta[b].block and bedwars.ItemMeta[b].block.health or 0)
end)
v.Enabled = #alreadygot > 0
for _, block in alreadygot do
local blockimage = Instance.new('ImageLabel')
blockimage.Size = UDim2.fromOffset(32, 32)
blockimage.BackgroundTransparency = 1
blockimage.Image = bedwars.getIcon({itemType = block}, true)
blockimage.Parent = v.Frame
end
end
local function Added(v)
local billboard = Instance.new('BillboardGui')
billboard.Parent = Folder
billboard.Name = 'bed'
billboard.StudsOffsetWorldSpace = Vector3.new(0, 3, 0)
billboard.Size = UDim2.fromOffset(36, 36)
billboard.AlwaysOnTop = true
billboard.ClipsDescendants = false
billboard.Adornee = v
local blur = addBlur(billboard)
blur.Visible = Background.Enabled
local frame = Instance.new('Frame')
frame.Size = UDim2.fromScale(1, 1)
frame.BackgroundColor3 = Color3.fromHSV(Color.Hue, Color.Sat, Color.Value)
frame.BackgroundTransparency = 1 - (Background.Enabled and Color.Opacity or 0)
frame.Parent = billboard
local layout = Instance.new('UIListLayout')
layout.FillDirection = Enum.FillDirection.Horizontal
layout.Padding = UDim.new(0, 4)
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout:GetPropertyChangedSignal('AbsoluteContentSize'):Connect(function()
billboard.Size = UDim2.fromOffset(math.max(layout.AbsoluteContentSize.X + 4, 36), 36)
end)
layout.Parent = frame
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(0, 4)
corner.Parent = frame
Reference[v] = billboard
refreshAdornee(billboard)
end
local function refreshNear(data)
data = data.blockRef.blockPosition * 3
for i, v in Reference do
if (data - i.Position).Magnitude <= 30 then
refreshAdornee(v)
end
end
end
BedPlates = vape.Categories.World:CreateModule({
Name = 'BedPlates',
Function = function(callback)
if callback then
for _, v in collectionService:GetTagged('bed') do
task.spawn(Added, v)
end
BedPlates:Clean(vapeEvents.PlaceBlockEvent.Event:Connect(refreshNear))
BedPlates:Clean(vapeEvents.BreakBlockEvent.Event:Connect(refreshNear))
BedPlates:Clean(collectionService:GetInstanceAddedSignal('bed'):Connect(Added))
BedPlates:Clean(collectionService:GetInstanceRemovedSignal('bed'):Connect(function(v)
if Reference[v] then
Reference[v]:Destroy()
Reference[v]:ClearAllChildren()
Reference[v] = nil
end
end))
else
table.clear(Reference)
Folder:ClearAllChildren()
end
end,
Tooltip = 'Displays blocks over the bed'
})
Background = BedPlates:CreateToggle({
Name = 'Background',
Function = function(callback)
if Color.Object then
Color.Object.Visible = callback
end
for _, v in Reference do
v.Frame.BackgroundTransparency = 1 - (callback and Color.Opacity or 0)
v.Blur.Visible = callback
end
end,
Default = true
})
Color = BedPlates:CreateColorSlider({
Name = 'Background Color',
DefaultValue = 0,
DefaultOpacity = 0.5,
Function = function(hue, sat, val, opacity)
for _, v in Reference do
v.Frame.BackgroundColor3 = Color3.fromHSV(hue, sat, val)
v.Frame.BackgroundTransparency = 1 - opacity
end
end,
Darker = true
})
end)
run(function()
local BedProtector
local function getBedNear()
local localPosition = entitylib.isAlive and entitylib.character.RootPart.Position or Vector3.zero
for _, v in collectionService:GetTagged('bed') do
if (localPosition - v.Position).Magnitude < 20 and v:GetAttribute('Team'..(lplr:GetAttribute('Team') or -1)..'NoBreak') then
return v
end
end
end
local function getBlocks()
local blocks = {}
for _, item in store.inventory.inventory.items do
local block = bedwars.ItemMeta[item.itemType].block
if block then
table.insert(blocks, {item.itemType, block.health})
end
end
table.sort(blocks, function(a, b)
return a[2] > b[2]
end)
return blocks
end
local function getPyramid(size, grid)
local positions = {}
for h = size, 0, -1 do
for w = h, 0, -1 do
table.insert(positions, Vector3.new(w, (size - h), ((h + 1) - w)) * grid)
table.insert(positions, Vector3.new(w * -1, (size - h), ((h + 1) - w)) * grid)
table.insert(positions, Vector3.new(w, (size - h), (h - w) * -1) * grid)
table.insert(positions, Vector3.new(w * -1, (size - h), (h - w) * -1) * grid)
end
end
return positions
end
BedProtector = vape.Categories.World:CreateModule({
Name = 'BedProtector',
Function = function(callback)
if callback then
local bed = getBedNear()
bed = bed and bed.Position or nil
if bed then
for i, block in getBlocks() do
for _, pos in getPyramid(i, 3) do
if not BedProtector.Enabled then break end
if getPlacedBlock(bed + pos) then continue end
bedwars.placeBlock(bed + pos, block[1], false)
end
end
if BedProtector.Enabled then
BedProtector:Toggle()
end
else
notif('BedProtector', 'Unable to locate bed', 5)
BedProtector:Toggle()
end
end
end,
Tooltip = 'Automatically places strong blocks around the bed.'
})
end)
run(function()
local Breaker
local Range
local BreakSpeed
local UpdateRate
local Custom
local Bed
local LuckyBlock
local IronOre
local Effect
local CustomHealth = {}
local Animation
local SelfBreak
local InstantBreak
local LimitItem
local customlist, parts = {}, {}
local function customHealthbar(self, blockRef, health, maxHealth, changeHealth, block)
if block:GetAttribute('NoHealthbar') then return end
if not self.healthbarPart or not self.healthbarBlockRef or self.healthbarBlockRef.blockPosition ~= blockRef.blockPosition then
self.healthbarMaid:DoCleaning()
self.healthbarBlockRef = blockRef
local create = bedwars.Roact.createElement
local percent = math.clamp(health / maxHealth, 0, 1)
local cleanCheck = true
local part = Instance.new('Part')
part.Size = Vector3.one
part.CFrame = CFrame.new(bedwars.BlockController:getWorldPosition(blockRef.blockPosition))
part.Transparency = 1
part.Anchored = true
part.CanCollide = false
part.Parent = workspace
self.healthbarPart = part
bedwars.QueryUtil:setQueryIgnored(self.healthbarPart, true)
local mounted = bedwars.Roact.mount(create('BillboardGui', {
Size = UDim2.fromOffset(249, 102),
StudsOffset = Vector3.new(0, 2.5, 0),
Adornee = part,
MaxDistance = 40,
AlwaysOnTop = true
}, {
create('Frame', {
Size = UDim2.fromOffset(160, 50),
Position = UDim2.fromOffset(44, 32),
BackgroundColor3 = Color3.new(),
BackgroundTransparency = 0.5
}, {
create('UICorner', {CornerRadius = UDim.new(0, 5)}),
create('ImageLabel', {
Size = UDim2.new(1, 89, 1, 52),
Position = UDim2.fromOffset(-48, -31),
BackgroundTransparency = 1,
Image = getvapeasset('newvape/assets/new/blur.png'),
ScaleType = Enum.ScaleType.Slice,
SliceCenter = Rect.new(52, 31, 261, 502)
}),
create('TextLabel', {
Size = UDim2.fromOffset(145, 14),
Position = UDim2.fromOffset(13, 12),
BackgroundTransparency = 1,
Text = bedwars.ItemMeta[block.Name].displayName or block.Name,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
TextColor3 = Color3.new(),
TextScaled = true,
Font = Enum.Font.Arial
}),
create('TextLabel', {
Size = UDim2.fromOffset(145, 14),
Position = UDim2.fromOffset(12, 11),
BackgroundTransparency = 1,
Text = bedwars.ItemMeta[block.Name].displayName or block.Name,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
TextColor3 = color.Dark(uipallet.Text, 0.16),
TextScaled = true,
Font = Enum.Font.Arial
}),
create('Frame', {
Size = UDim2.fromOffset(138, 4),
Position = UDim2.fromOffset(12, 32),
BackgroundColor3 = uipallet.Main
}, {
create('UICorner', {CornerRadius = UDim.new(1, 0)}),
create('Frame', {
[bedwars.Roact.Ref] = self.healthbarProgressRef,
Size = UDim2.fromScale(percent, 1),
BackgroundColor3 = Color3.fromHSV(math.clamp(percent / 2.5, 0, 1), 0.89, 0.75)
}, {create('UICorner', {CornerRadius = UDim.new(1, 0)})})
})
})
}), part)
self.healthbarMaid:GiveTask(function()
cleanCheck = false
self.healthbarBlockRef = nil
bedwars.Roact.unmount(mounted)
if self.healthbarPart then
self.healthbarPart:Destroy()
end
self.healthbarPart = nil
end)
bedwars.RuntimeLib.Promise.delay(5):andThen(function()
if cleanCheck then
self.healthbarMaid:DoCleaning()
end
end)
end
local newpercent = math.clamp((health - changeHealth) / maxHealth, 0, 1)
tweenService:Create(self.healthbarProgressRef:getValue(), TweenInfo.new(0.3), {
Size = UDim2.fromScale(newpercent, 1), BackgroundColor3 = Color3.fromHSV(math.clamp(newpercent / 2.5, 0, 1), 0.89, 0.75)
}):Play()
end
local hit = 0
local function attemptBreak(tab, localPosition)
if not tab then return end
for _, v in tab do
if (v.Position - localPosition).Magnitude < Range.Value and bedwars.BlockController:isBlockBreakable({blockPosition = v.Position / 3}, lplr) then
if not SelfBreak.Enabled and v:GetAttribute('PlacedByUserId') == lplr.UserId then continue end
if (v:GetAttribute('BedShieldEndTime') or 0) > workspace:GetServerTimeNow() then continue end
if LimitItem.Enabled and not (store.hand.tool and bedwars.ItemMeta[store.hand.tool.Name].breakBlock) then continue end
hit += 1
local target, path, endpos = bedwars.breakBlock(v, Effect.Enabled, Animation.Enabled, CustomHealth.Enabled and customHealthbar or nil, InstantBreak.Enabled)
if path then
local currentnode = target
for _, part in parts do
part.Position = currentnode or Vector3.zero
if currentnode then
part.BoxHandleAdornment.Color3 = currentnode == endpos and Color3.new(1, 0.2, 0.2) or currentnode == target and Color3.new(0.2, 0.2, 1) or Color3.new(0.2, 1, 0.2)
end
currentnode = path[currentnode]
end
end
task.wait(InstantBreak.Enabled and (store.damageBlockFail > tick() and 4.5 or 0) or BreakSpeed.Value)
return true
end
end
return false
end
Breaker = vape.Categories.World:CreateModule({
Name = 'Breaker',
Function = function(callback)
if callback then
for _ = 1, 30 do
local part = Instance.new('Part')
part.Anchored = true
part.CanQuery = false
part.CanCollide = false
part.Transparency = 1
part.Parent = gameCamera
local highlight = Instance.new('BoxHandleAdornment')
highlight.Size = Vector3.one
highlight.AlwaysOnTop = true
highlight.ZIndex = 1
highlight.Transparency = 0.5
highlight.Adornee = part
highlight.Parent = part
table.insert(parts, part)
end
local beds = collection('bed', Breaker)
local luckyblock = collection('LuckyBlock', Breaker)
local ironores = collection('iron-ore', Breaker)
customlist = collection('block', Breaker, function(tab, obj)
if table.find(Custom.ListEnabled, obj.Name) then
table.insert(tab, obj)
end
end)
repeat
task.wait(1 / UpdateRate.Value)
if not Breaker.Enabled then break end
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
if attemptBreak(Bed.Enabled and beds, localPosition) then continue end
if attemptBreak(customlist, localPosition) then continue end
if attemptBreak(LuckyBlock.Enabled and luckyblock, localPosition) then continue end
if attemptBreak(IronOre.Enabled and ironores, localPosition) then continue end
for _, v in parts do
v.Position = Vector3.zero
end
end
until not Breaker.Enabled
else
for _, v in parts do
v:ClearAllChildren()
v:Destroy()
end
table.clear(parts)
end
end,
Tooltip = 'Break blocks around you automatically'
})
Range = Breaker:CreateSlider({
Name = 'Break range',
Min = 1,
Max = 30,
Default = 30,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
BreakSpeed = Breaker:CreateSlider({
Name = 'Break speed',
Min = 0,
Max = 0.3,
Default = 0.25,
Decimal = 100,
Suffix = 'seconds'
})
UpdateRate = Breaker:CreateSlider({
Name = 'Update rate',
Min = 1,
Max = 120,
Default = 60,
Suffix = 'hz'
})
Custom = Breaker:CreateTextList({
Name = 'Custom',
Function = function()
if not customlist then return end
table.clear(customlist)
for _, obj in store.blocks do
if table.find(Custom.ListEnabled, obj.Name) then
table.insert(customlist, obj)
end
end
end
})
Bed = Breaker:CreateToggle({
Name = 'Break Bed',
Default = true
})
LuckyBlock = Breaker:CreateToggle({
Name = 'Break Lucky Block',
Default = true
})
IronOre = Breaker:CreateToggle({
Name = 'Break Iron Ore',
Default = true
})
Effect = Breaker:CreateToggle({
Name = 'Show Healthbar & Effects',
Function = function(callback)
if CustomHealth.Object then
CustomHealth.Object.Visible = callback
end
end,
Default = true
})
CustomHealth = Breaker:CreateToggle({
Name = 'Custom Healthbar',
Default = true,
Darker = true
})
Animation = Breaker:CreateToggle({Name = 'Animation'})
SelfBreak = Breaker:CreateToggle({Name = 'Self Break'})
InstantBreak = Breaker:CreateToggle({Name = 'Instant Break'})
LimitItem = Breaker:CreateToggle({
Name = 'Limit to items',
Tooltip = 'Only breaks when tools are held'
})
end)
run(function()
local ChestSteal
local Range
local Open
local Skywars
local Delays = {}
local function lootChest(chest)
chest = chest and chest.Value or nil
local chestitems = chest and chest:GetChildren() or {}
if #chestitems > 1 and (Delays[chest] or 0) < tick() then
Delays[chest] = tick() + 0.2
bedwars.Client:GetNamespace('Inventory'):Get('SetObservedChest'):SendToServer(chest)
for _, v in chestitems do
if v:IsA('Accessory') then
task.spawn(function()
pcall(function()
bedwars.Client:GetNamespace('Inventory'):Get('ChestGetItem'):CallServer(chest, v)
end)
end)
end
end
bedwars.Client:GetNamespace('Inventory'):Get('SetObservedChest'):SendToServer(nil)
end
end
ChestSteal = vape.Categories.World:CreateModule({
Name = 'ChestSteal',
Function = function(callback)
if callback then
local chests = collection('chest', ChestSteal)
repeat task.wait() until store.queueType ~= 'bedwars_test'
if (not Skywars.Enabled) or store.queueType:find('skywars') then
repeat
if entitylib.isAlive and store.matchState ~= 2 then
if Open.Enabled then
if bedwars.AppController:isAppOpen('ChestApp') then
lootChest(lplr.Character:FindFirstChild('ObservedChestFolder'))
end
else
local localPosition = entitylib.character.RootPart.Position
for _, v in chests do
if (localPosition - v.Position).Magnitude <= Range.Value then
lootChest(v:FindFirstChild('ChestFolderValue'))
end
end
end
end
task.wait(0.1)
until not ChestSteal.Enabled
end
end
end,
Tooltip = 'Grabs items from near chests.'
})
Range = ChestSteal:CreateSlider({
Name = 'Range',
Min = 0,
Max = 18,
Default = 18,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
Open = ChestSteal:CreateToggle({Name = 'GUI Check'})
Skywars = ChestSteal:CreateToggle({
Name = 'Only Skywars',
Function = function()
if ChestSteal.Enabled then
ChestSteal:Toggle()
ChestSteal:Toggle()
end
end,
Default = true
})
end)
run(function()
local Schematica
local File
local Mode
local Transparency
local parts, guidata, poschecklist = {}, {}, {}
local point1, point2
for x = -3, 3, 3 do
for y = -3, 3, 3 do
for z = -3, 3, 3 do
if Vector3.new(x, y, z) ~= Vector3.zero then
table.insert(poschecklist, Vector3.new(x, y, z))
end
end
end
end
local function checkAdjacent(pos)
for _, v in poschecklist do
if getPlacedBlock(pos + v) then return true end
end
return false
end
local function getPlacedBlocksInPoints(s, e)
local list, blocks = {}, bedwars.BlockController:getStore()
for x = (e.X > s.X and s.X or e.X), (e.X > s.X and e.X or s.X) do
for y = (e.Y > s.Y and s.Y or e.Y), (e.Y > s.Y and e.Y or s.Y) do
for z = (e.Z > s.Z and s.Z or e.Z), (e.Z > s.Z and e.Z or s.Z) do
local vec = Vector3.new(x, y, z)
local block = blocks:getBlockAt(vec)
if block and block:GetAttribute('PlacedByUserId') == lplr.UserId then
list[vec] = block
end
end
end
end
return list
end
local function loadMaterials()
for _, v in guidata do
v:Destroy()
end
local suc, read = pcall(function()
return isfile(File.Value) and httpService:JSONDecode(readfile(File.Value))
end)
if suc and read then
local items = {}
for _, v in read do
items[v[2]] = (items[v[2]] or 0) + 1
end
for i, v in items do
local holder = Instance.new('Frame')
holder.Size = UDim2.new(1, 0, 0, 32)
holder.BackgroundTransparency = 1
holder.Parent = Schematica.Children
local icon = Instance.new('ImageLabel')
icon.Size = UDim2.fromOffset(24, 24)
icon.Position = UDim2.fromOffset(4, 4)
icon.BackgroundTransparency = 1
icon.Image = bedwars.getIcon({itemType = i}, true)
icon.Parent = holder
local text = Instance.new('TextLabel')
text.Size = UDim2.fromOffset(100, 32)
text.Position = UDim2.fromOffset(32, 0)
text.BackgroundTransparency = 1
text.Text = (bedwars.ItemMeta[i] and bedwars.ItemMeta[i].displayName or i)..': '..v
text.TextXAlignment = Enum.TextXAlignment.Left
text.TextColor3 = uipallet.Text
text.TextSize = 14
text.FontFace = uipallet.Font
text.Parent = holder
table.insert(guidata, holder)
end
table.clear(read)
table.clear(items)
end
end
local function save()
if point1 and point2 then
local tab = getPlacedBlocksInPoints(point1, point2)
local savetab = {}
point1 = point1 * 3
for i, v in tab do
i = bedwars.BlockController:getBlockPosition(CFrame.lookAlong(point1, entitylib.character.RootPart.CFrame.LookVector):PointToObjectSpace(i * 3)) * 3
table.insert(savetab, {
{
x = i.X,
y = i.Y,
z = i.Z
},
v.Name
})
end
point1, point2 = nil, nil
writefile(File.Value, httpService:JSONEncode(savetab))
notif('Schematica', 'Saved '..getTableSize(tab)..' blocks', 5)
loadMaterials()
table.clear(tab)
table.clear(savetab)
else
local mouseinfo = bedwars.BlockBreaker.clientManager:getBlockSelector():getMouseInfo(0)
if mouseinfo and mouseinfo.target then
if point1 then
point2 = mouseinfo.target.blockRef.blockPosition
notif('Schematica', 'Selected position 2, toggle again near position 1 to save it', 3)
else
point1 = mouseinfo.target.blockRef.blockPosition
notif('Schematica', 'Selected position 1', 3)
end
end
end
end
local function load(read)
local mouseinfo = bedwars.BlockBreaker.clientManager:getBlockSelector():getMouseInfo(0)
if mouseinfo and mouseinfo.target then
local position = CFrame.new(mouseinfo.placementPosition * 3) * CFrame.Angles(0, math.rad(math.round(math.deg(math.atan2(-entitylib.character.RootPart.CFrame.LookVector.X, -entitylib.character.RootPart.CFrame.LookVector.Z)) / 45) * 45), 0)
for _, v in read do
local blockpos = bedwars.BlockController:getBlockPosition((position * CFrame.new(v[1].x, v[1].y, v[1].z)).p) * 3
if parts[blockpos] then continue end
local handler = bedwars.BlockController:getHandlerRegistry():getHandler(v[2]:find('wool') and getWool() or v[2])
if handler then
local part = handler:place(blockpos / 3, 0)
part.Transparency = Transparency.Value
part.CanCollide = false
part.Anchored = true
part.Parent = workspace
parts[blockpos] = part
end
end
table.clear(read)
repeat
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
for i, v in parts do
if (i - localPosition).Magnitude < 60 and checkAdjacent(i) then
if not Schematica.Enabled then break end
if not getItem(v.Name) then continue end
bedwars.placeBlock(i, v.Name, false)
task.delay(0.1, function()
local block = getPlacedBlock(i)
if block then
v:Destroy()
parts[i] = nil
end
end)
end
end
end
task.wait()
until getTableSize(parts) <= 0
if getTableSize(parts) <= 0 and Schematica.Enabled then
notif('Schematica', 'Finished building', 5)
Schematica:Toggle()
end
end
end
Schematica = vape.Categories.World:CreateModule({
Name = 'Schematica',
Function = function(callback)
if callback then
if not File.Value:find('.json') then
notif('Schematica', 'Invalid file', 3)
Schematica:Toggle()
return
end
if Mode.Value == 'Save' then
save()
Schematica:Toggle()
else
local suc, read = pcall(function()
return isfile(File.Value) and httpService:JSONDecode(readfile(File.Value))
end)
if suc and read then
load(read)
else
notif('Schematica', 'Missing / corrupted file', 3)
Schematica:Toggle()
end
end
else
for _, v in parts do
v:Destroy()
end
table.clear(parts)
end
end,
Tooltip = 'Save and load placements of buildings'
})
File = Schematica:CreateTextBox({
Name = 'File',
Function = function()
loadMaterials()
point1, point2 = nil, nil
end
})
Mode = Schematica:CreateDropdown({
Name = 'Mode',
List = {'Load', 'Save'}
})
Transparency = Schematica:CreateSlider({
Name = 'Transparency',
Min = 0,
Max = 1,
Default = 0.7,
Decimal = 10,
Function = function(val)
for _, v in parts do
v.Transparency = val
end
end
})
end)
run(function()
local ArmorSwitch
local Mode
local Targets
local Range
ArmorSwitch = vape.Categories.Inventory:CreateModule({
Name = 'ArmorSwitch',
Function = function(callback)
if callback then
if Mode.Value == 'Toggle' then
repeat
local state = entitylib.EntityPosition({
Part = 'RootPart',
Range = Range.Value,
Players = Targets.Players.Enabled,
NPCs = Targets.NPCs.Enabled,
Wallcheck = Targets.Walls.Enabled
}) and true or false
for i = 0, 2 do
if (store.inventory.inventory.armor[i + 1] ~= 'empty') ~= state and ArmorSwitch.Enabled then
bedwars.Store:dispatch({
type = 'InventorySetArmorItem',
item = store.inventory.inventory.armor[i + 1] == 'empty' and state and getBestArmor(i) or nil,
armorSlot = i
})
vapeEvents.InventoryChanged.Event:Wait()
end
end
task.wait(0.1)
until not ArmorSwitch.Enabled
else
ArmorSwitch:Toggle()
for i = 0, 2 do
bedwars.Store:dispatch({
type = 'InventorySetArmorItem',
item = store.inventory.inventory.armor[i + 1] == 'empty' and getBestArmor(i) or nil,
armorSlot = i
})
vapeEvents.InventoryChanged.Event:Wait()
end
end
end
end,
Tooltip = 'Puts on / takes off armor when toggled for baiting.'
})
Mode = ArmorSwitch:CreateDropdown({
Name = 'Mode',
List = {'Toggle', 'On Key'}
})
Targets = ArmorSwitch:CreateTargets({
Players = true,
NPCs = true
})
Range = ArmorSwitch:CreateSlider({
Name = 'Range',
Min = 1,
Max = 30,
Default = 30,
Suffix = function(val)
return val == 1 and 'stud' or 'studs'
end
})
end)
run(function()
local AutoBank
local UIToggle
local UI
local Chests
local Items = {}
local function addItem(itemType, shop)
local item = Instance.new('ImageLabel')
item.Image = bedwars.getIcon({itemType = itemType}, true)
item.Size = UDim2.fromOffset(32, 32)
item.Name = itemType
item.BackgroundTransparency = 1
item.LayoutOrder = #UI:GetChildren()
item.Parent = UI
local itemtext = Instance.new('TextLabel')
itemtext.Name = 'Amount'
itemtext.Size = UDim2.fromScale(1, 1)
itemtext.BackgroundTransparency = 1
itemtext.Text = ''
itemtext.TextColor3 = Color3.new(1, 1, 1)
itemtext.TextSize = 16
itemtext.TextStrokeTransparency = 0.3
itemtext.Font = Enum.Font.Arial
itemtext.Parent = item
Items[itemType] = {Object = itemtext, Type = shop}
end
local function refreshBank(echest)
for i, v in Items do
local item = echest:FindFirstChild(i)
v.Object.Text = item and item:GetAttribute('Amount') or ''
end
end
local function nearChest()
if entitylib.isAlive then
local pos = entitylib.character.RootPart.Position
for _, chest in Chests do
if (chest.Position - pos).Magnitude < 20 then
return true
end
end
end
end
local function handleState()
local chest = replicatedStorage.Inventories:FindFirstChild(lplr.Name..'_personal')
if not chest then return end
local mapCF = workspace.MapCFrames:FindFirstChild((lplr:GetAttribute('Team') or 1)..'_spawn')
if mapCF and (entitylib.character.RootPart.Position - mapCF.Value.Position).Magnitude < 80 then
for _, v in chest:GetChildren() do
local item = Items[v.Name]
if item then
task.spawn(function()
bedwars.Client:GetNamespace('Inventory'):Get('ChestGetItem'):CallServer(chest, v)
refreshBank(chest)
end)
end
end
else
for _, v in store.inventory.inventory.items do
local item = Items[v.itemType]
if item then
task.spawn(function()
bedwars.Client:GetNamespace('Inventory'):Get('ChestGiveItem'):CallServer(chest, v.tool)
refreshBank(chest)
end)
end
end
end
end
AutoBank = vape.Categories.Inventory:CreateModule({
Name = 'AutoBank',
Function = function(callback)
if callback then
Chests = collection('personal-chest', AutoBank)
UI = Instance.new('Frame')
UI.Size = UDim2.new(1, 0, 0, 32)
UI.Position = UDim2.fromOffset(0, -240)
UI.BackgroundTransparency = 1
UI.Visible = UIToggle.Enabled
UI.Parent = vape.gui
AutoBank:Clean(UI)
local Sort = Instance.new('UIListLayout')
Sort.FillDirection = Enum.FillDirection.Horizontal
Sort.HorizontalAlignment = Enum.HorizontalAlignment.Center
Sort.SortOrder = Enum.SortOrder.LayoutOrder
Sort.Parent = UI
addItem('iron', true)
addItem('gold', true)
addItem('diamond', false)
addItem('emerald', true)
addItem('void_crystal', true)
repeat
local hotbar = lplr.PlayerGui:FindFirstChild('hotbar')
hotbar = hotbar and hotbar['1']:FindFirstChild('HotbarHealthbarContainer')
if hotbar then
UI.Position = UDim2.fromOffset(0, (hotbar.AbsolutePosition.Y + guiService:GetGuiInset().Y) - 40)
end
local newState = nearChest()
if newState then
handleState()
end
task.wait(0.1)
until (not AutoBank.Enabled)
else
table.clear(Items)
end
end,
Tooltip = 'Automatically puts resources in ender chest'
})
UIToggle = AutoBank:CreateToggle({
Name = 'UI',
Function = function(callback)
if AutoBank.Enabled then
UI.Visible = callback
end
end,
Default = true
})
end)
run(function()
local AutoBuy
local Sword
local Armor
local Upgrades
local TierCheck
local BedwarsCheck
local GUI
local SmartCheck
local Custom = {}
local CustomPost = {}
local UpgradeToggles = {}
local Functions, id = {}
local Callbacks = {Custom, Functions, CustomPost}
local npctick = tick()
local swords = {
'wood_sword',
'stone_sword',
'iron_sword',
'diamond_sword',
'emerald_sword'
}
local armors = {
'none',
'leather_chestplate',
'iron_chestplate',
'diamond_chestplate',
'emerald_chestplate'
}
local axes = {
'none',
'wood_axe',
'stone_axe',
'iron_axe',
'diamond_axe'
}
local pickaxes = {
'none',
'wood_pickaxe',
'stone_pickaxe',
'iron_pickaxe',
'diamond_pickaxe'
}
local function getShopNPC()
local shop, items, upgrades, newid = nil, false, false, nil
if entitylib.isAlive then
local localPosition = entitylib.character.RootPart.Position
for _, v in store.shop do
if (v.RootPart.Position - localPosition).Magnitude <= 20 then
shop = v.Upgrades or v.Shop or nil
upgrades = upgrades or v.Upgrades
items = items or v.Shop
newid = v.Shop and v.Id or newid
enRecently 7GrandDad, developer of Vape discontinued Vape Bedwars by adding a simple kick. With a few edits and removing a few modules, Vape for Bedwars is now finally working again and can be used by anyone. How to use: 1. Locate Vape (this may also be called newvape) in your executor's workspace folder 2. After entering the vape folder, located games and enter it 3. Locate a .lua file with the id of Roblox Bedwars matches (6872274481) and enter it (this file should look like 6872274481.lua) 4. Select all contents (if on pc use Ctrl + A) and delete it. 5. Replace all of it with the following script. NB: This script only allows Vape to support matches, I will reupload this script but for the lobby soon. NB 2: If you dont see the file, join a Roblox Bedwars match and execute the Vape, the file should now exist. NB 3: yeah i fixed it again so now it loads properly but some features dont work idk just use voidware for now