Skip to main content

Helpers (Pulse.*)

The Pulse global gives you a set of helpers for the patterns that come up in nearly every script. These aren't magic — they're well-tested implementations of things you'd write anyway.

Before reaching for a helper, ask: "What problem am I trying to solve?" Each helper solves exactly one category of problem.


Quick reference

HelperSolves
Pulse.LogStructured logging in dev builds, zero cost in production
Pulse.MonitorLive key-value dashboard in the dev overlay (see bottom of Log page)
Pulse.NotifyIn-game toast notifications for feature toggles and function events
Pulse.LoopRepeating intervals with safe start/stop and error isolation
Pulse.DrawHighlights, circles, and selection boxes without boilerplate
Pulse.AimFOV check, camera snap, nearest-entity search, lock-on locker
Pulse.HitboxResize hitbox parts and restore them later
Pulse.TeamFriend/enemy resolver pattern
Pulse.ConnNamed connection manager — one live connection per name
Pulse.InputSimulate key presses via VirtualInputManager / UIS
Pulse.MemoryExecutor capability checks and safe character module resolution
Pulse.PerfRolling frame-time sampler with warn threshold
Pulse.StoreCross-component reactive key-value state
Pulse.CooldownRate limiting — per call or per entity
Pulse.TrackTrack entities and auto-clean them up when they're gone
Pulse.CacheCache expensive calls with automatic expiry
Pulse.WorldSafe workspace navigation
Pulse.RestoreSave and restore instance property values
Pulse.RemoteLazy-resolved, cached RemoteEvent / RemoteFunction wrappers

How they're injected

All helpers are compiled into your script before your components. You don't import or require them — they're available globally as Pulse.X everywhere in your code.


What the helpers don't do

  • They don't know anything about your game's structure
  • They don't auto-apply themselves — you call them
  • They handle errors gracefully (pcall-wrapped internally) but they log warnings, not silently swallow bugs

If a helper is doing nothing, check the dev overlay logs — it's almost certainly a nil argument or wrong path.