pulse-rb 1.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +225 -0
  2. package/adapters/linoria.lua +233 -0
  3. package/adapters/windui.llms.txt +366 -0
  4. package/adapters/windui.lua +505 -0
  5. package/bin/rb.js +2 -0
  6. package/dist/index.js +3285 -0
  7. package/package.json +59 -0
  8. package/pulse/dev/debuggui.lua +1206 -0
  9. package/pulse/dev/devconfig.lua +81 -0
  10. package/pulse/dev/ui/9_DevPanel.lua +384 -0
  11. package/pulse/helpers/aim.lua +193 -0
  12. package/pulse/helpers/cache.lua +68 -0
  13. package/pulse/helpers/cleaner.lua +110 -0
  14. package/pulse/helpers/conn.lua +33 -0
  15. package/pulse/helpers/cooldown.lua +47 -0
  16. package/pulse/helpers/draw.lua +122 -0
  17. package/pulse/helpers/hitbox.lua +63 -0
  18. package/pulse/helpers/input.lua +24 -0
  19. package/pulse/helpers/log.lua +228 -0
  20. package/pulse/helpers/loop.lua +58 -0
  21. package/pulse/helpers/memory.lua +48 -0
  22. package/pulse/helpers/narrate.lua +160 -0
  23. package/pulse/helpers/notify.lua +51 -0
  24. package/pulse/helpers/perf.lua +48 -0
  25. package/pulse/helpers/remote.lua +128 -0
  26. package/pulse/helpers/restore.lua +59 -0
  27. package/pulse/helpers/store.lua +39 -0
  28. package/pulse/helpers/team.lua +83 -0
  29. package/pulse/helpers/testmode.lua +80 -0
  30. package/pulse/helpers/trace.lua +111 -0
  31. package/pulse/helpers/track.lua +85 -0
  32. package/pulse/helpers/vec.lua +52 -0
  33. package/pulse/helpers/world.lua +51 -0
  34. package/pulse/runtime.lua +343 -0
  35. package/pulse/ui/linoria_settings.lua +55 -0
  36. package/pulse/ui/windui_settings.lua +87 -0
  37. package/templates/AGENTS.md +177 -0
  38. package/templates/CLAUDE.md +424 -0
  39. package/templates/deploy_config.example +17 -0
  40. package/templates/example_esp.rblua +69 -0
  41. package/templates/example_fov.rblua +20 -0
  42. package/templates/example_speed.rblua +25 -0
  43. package/templates/gitignore +4 -0
  44. package/templates/globals.lua +66 -0
  45. package/templates/layout.rblua +28 -0
  46. package/templates/module.lua +7 -0
  47. package/templates/module.rblua +32 -0
  48. package/templates/page_home.rblua +9 -0
  49. package/templates/remote.lua +6 -0
  50. package/templates/remotes.lua +14 -0
  51. package/vscode/language-configuration.json +35 -0
  52. package/vscode/package.json +35 -0
  53. package/vscode/src/extension.js +397 -0
  54. package/vscode/syntaxes/rblua.tmLanguage.json +126 -0
@@ -0,0 +1,20 @@
1
+ -- FOVChanger — example component. Customize or delete this file.
2
+ component {
3
+ signal enabled = false
4
+ signal fov = 90
5
+
6
+ init {
7
+ Pulse.Notify.onToggle(FOVChanger.enabled, "Custom FOV")
8
+ }
9
+
10
+ ui {
11
+ toggle "Custom FOV" -> enabled
12
+ slider "Field of View" -> fov [30, 120]
13
+ }
14
+
15
+ on enabled, fov {
16
+ guard cam = camera
17
+ cam.FieldOfView = enabled and fov or 70
18
+ Pulse.Log.info("FOVChanger", "fov set", { fov = cam.FieldOfView })
19
+ }
20
+ }
@@ -0,0 +1,25 @@
1
+ -- SpeedHack — example component. Customize or delete this file.
2
+ component {
3
+ signal enabled = false
4
+ signal speed = 50
5
+
6
+ init {
7
+ Pulse.Notify.onToggle(SpeedHack.enabled, "Speed Hack")
8
+ }
9
+
10
+ ui {
11
+ toggle "Speed Hack" -> enabled tip="Override character walk speed"
12
+ slider "Walk Speed" -> speed [16, 250]
13
+ }
14
+
15
+ on CharacterAdded {
16
+ guard h = humanoid
17
+ h.WalkSpeed = enabled and speed or 16
18
+ }
19
+
20
+ on enabled, speed {
21
+ guard h = humanoid
22
+ h.WalkSpeed = enabled and speed or 16
23
+ Pulse.Log.info("SpeedHack", "walk speed set", { speed = h.WalkSpeed })
24
+ }
25
+ }
@@ -0,0 +1,4 @@
1
+ build/
2
+ *.log
3
+ __pycache__/
4
+ .rb-deploy
@@ -0,0 +1,66 @@
1
+ -- ── Script Config ─────────────────────────────────────────────────────────────
2
+ -- Edit these values. SCRIPT_NAME is used as the UI window title and notify_title.
3
+
4
+ local SCRIPT_NAME = "{NAME}"
5
+ local SCRIPT_VERSION = "1.0.0"
6
+ local SCRIPT_AUTHOR = "you"
7
+ local SCRIPT_DISCORD = "" -- optional: discord invite link (shown in UI if set)
8
+
9
+ -- ── Shared helpers ─────────────────────────────────────────────────────────────
10
+ -- Add your game-specific helpers here. Generic helpers (Pulse.*) are injected
11
+ -- automatically by the compiler — no need to define them here.
12
+
13
+ local func = {}
14
+
15
+ -- ── Players ────────────────────────────────────────────────────────────────────
16
+ -- Event-driven cache: updates instantly when players join or leave.
17
+ local _playerSet = {}
18
+ local _PS = game:GetService("Players")
19
+ local _LP = _PS.LocalPlayer
20
+
21
+ for _, p in ipairs(_PS:GetPlayers()) do _playerSet[p] = true end
22
+ _PS.PlayerAdded:Connect(function(p)
23
+ _playerSet[p] = true
24
+ local n = 0; for _ in pairs(_playerSet) do n = n + 1 end
25
+ Pulse.Monitor.set("players", n)
26
+ end)
27
+ _PS.PlayerRemoving:Connect(function(p)
28
+ _playerSet[p] = nil
29
+ local n = 0; for _ in pairs(_playerSet) do n = n + 1 end
30
+ Pulse.Monitor.set("players", n)
31
+ end)
32
+
33
+ func.GetCachedPlayers = function()
34
+ local t = {}
35
+ for p in pairs(_playerSet) do t[#t + 1] = p end
36
+ return t
37
+ end
38
+
39
+ -- ── Team monitor ──────────────────────────────────────────────────────────────
40
+ -- Tracks the local player's team in the dev overlay.
41
+ Pulse.Monitor.set("team", _LP.Team and _LP.Team.Name or "none")
42
+ _LP:GetPropertyChangedSignal("Team"):Connect(function()
43
+ Pulse.Monitor.set("team", _LP.Team and _LP.Team.Name or "none")
44
+ end)
45
+
46
+ -- ── Entity folder watcher ──────────────────────────────────────────────────────
47
+ -- Use _watchFolder to keep a set live as entities spawn/despawn.
48
+ -- Add your game-specific entity caches below.
49
+ local function _watchFolder(folder, set)
50
+ for _, child in ipairs(folder:GetChildren()) do set[child] = true end
51
+ folder.ChildAdded:Connect(function(c) set[c] = true end)
52
+ folder.ChildRemoved:Connect(function(c) set[c] = nil end)
53
+ end
54
+
55
+ -- Example — uncomment and adapt to your game's entity folder:
56
+ --
57
+ -- local _enemySet = {}
58
+ -- task.spawn(function()
59
+ -- local folder = workspace:WaitForChild("Enemies", 30)
60
+ -- if folder then _watchFolder(folder, _enemySet) end
61
+ -- end)
62
+ -- func.GetCachedEnemies = function()
63
+ -- local t = {}
64
+ -- for v in pairs(_enemySet) do t[#t + 1] = v end
65
+ -- return t
66
+ -- end
@@ -0,0 +1,28 @@
1
+ layout {
2
+ title = SCRIPT_NAME,
3
+ author = SCRIPT_AUTHOR, -- shown as subtitle under the title
4
+ toggle_key = "RightControl", -- Enum.KeyCode name — menu open/close bind
5
+ size = { 850, 560 }, -- window width × height in pixels
6
+ ui_library = "windui", -- "linoria" | "windui"
7
+ theme = "Indigo", -- Dark Light Rose Plant Red Indigo Sky Violet Amber Emerald Midnight Crimson MonokaiPro CottonCandy Mellowsi Rainbow
8
+ icon = "code-2", -- Lucide icon name, rbxassetid://, or URL
9
+ folder = "{NAME}", -- executor save folder for config persistence
10
+ notify_title = SCRIPT_NAME, -- notification header text
11
+ transparency = 0.8, -- background transparency: 0 = opaque, 1 = fully transparent
12
+ acrylic = true, -- blur effect behind window (executor must support it)
13
+ open_button_mobile_only = true, -- false = show floating open button on desktop too
14
+ open_button_icon = "code-2", -- Lucide icon for the floating open button
15
+
16
+ -- Custom WindUI themes — entries appear in the theme dropdown automatically.
17
+ -- Available fields: accent background outline text placeholder button icon
18
+ themes = {
19
+ -- { name = "MyTheme", accent = "#7c3aed", background = "#0e0c1a", outline = "#1e1b4b",
20
+ -- text = "#e8e3ff", placeholder = "#6d6d8a", button = "#1e1b4b", icon = "#a78bfa" },
21
+ },
22
+
23
+ -- compat_exclude lists modules dropped from build/script.compat.obf.lua
24
+ -- (the build for executors that don't support full UNC APIs).
25
+ compat_exclude = {
26
+ -- "player/UNC.rblua",
27
+ }
28
+ }
@@ -0,0 +1,7 @@
1
+ -- ==========================================
2
+ -- {UPPER}
3
+ -- ==========================================
4
+ -- Plain Lua helper module. Compiled as a flat upvalue — locals defined here
5
+ -- are visible to all later files. Add shared helpers onto the func table;
6
+ -- keep everything else local.
7
+
@@ -0,0 +1,32 @@
1
+ component {
2
+ -- ── Signals ───────────────────────────────────────────────────────────────
3
+ signal enabled = false
4
+
5
+ -- ── Keybind (toggle on keypress) ──────────────────────────────────────────
6
+ -- keybind Enum.KeyCode.X → enabled
7
+
8
+ -- ── State change handler ──────────────────────────────────────────────────
9
+ on enabled {
10
+ if v then
11
+ -- feature activated
12
+ else
13
+ -- feature deactivated
14
+ end
15
+ }
16
+
17
+ -- ── Respawn handler ───────────────────────────────────────────────────────
18
+ on Respawn {
19
+ -- runs every time the player's character loads
20
+ }
21
+
22
+ -- ── Per-frame loop ────────────────────────────────────────────────────────
23
+ -- on Heartbeat when enabled {
24
+ -- guard hrp
25
+ -- -- 60fps logic here
26
+ -- }
27
+
28
+ -- ── Exported functions (callable from other components) ───────────────────
29
+ func Toggle() {
30
+ enabled(not enabled())
31
+ }
32
+ }
@@ -0,0 +1,9 @@
1
+ page "Home" {
2
+ groupbox left "Player" {
3
+ mount SpeedHack
4
+ mount FOVChanger
5
+ }
6
+ groupbox right "Visuals" {
7
+ mount PlayerESP
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+
2
+ -- ========== {UPPER} ==========
3
+ local {lower}Remote = RS:WaitForChild("Remotes"):WaitForChild("{Name}")
4
+ func.Remote_{Name} = function(...)
5
+ {lower}Remote:FireServer(...)
6
+ end
@@ -0,0 +1,14 @@
1
+ -- ==========================================
2
+ -- REMOTES MODULE
3
+ -- ==========================================
4
+ -- Cache all RemoteEvent / RemoteFunction instances here.
5
+ -- Other modules call func.Remote_* wrappers instead of
6
+ -- holding their own WaitForChild chains.
7
+
8
+ local RS = game:GetService("ReplicatedStorage")
9
+
10
+ -- ========== EXAMPLE ==========
11
+ -- local exampleRemote = RS:WaitForChild("Remotes"):WaitForChild("Example")
12
+ -- func.Remote_Example = function(value)
13
+ -- exampleRemote:FireServer(value)
14
+ -- end
@@ -0,0 +1,35 @@
1
+ {
2
+ "comments": {
3
+ "lineComment": "--",
4
+ "blockComment": ["--[[", "]]"]
5
+ },
6
+ "brackets": [
7
+ ["{", "}"],
8
+ ["[", "]"],
9
+ ["(", ")"]
10
+ ],
11
+ "autoClosingPairs": [
12
+ { "open": "{", "close": "}" },
13
+ { "open": "[", "close": "]" },
14
+ { "open": "(", "close": ")" },
15
+ { "open": "\"", "close": "\"", "notIn": ["string"] },
16
+ { "open": "'", "close": "'", "notIn": ["string"] }
17
+ ],
18
+ "surroundingPairs": [
19
+ ["{", "}"],
20
+ ["[", "]"],
21
+ ["(", ")"],
22
+ ["\"", "\""],
23
+ ["'", "'"]
24
+ ],
25
+ "indentationRules": {
26
+ "increaseIndentPattern": "\\{[^}]*$",
27
+ "decreaseIndentPattern": "^\\s*\\}"
28
+ },
29
+ "onEnterRules": [
30
+ {
31
+ "beforeText": "\\{\\s*$",
32
+ "action": { "indent": "indent" }
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "rb-rblua",
3
+ "publisher": "rb",
4
+ "displayName": "rb — .rblua Language Support",
5
+ "description": "Syntax highlighting, linting, and formatting for .rblua Pulse components",
6
+ "version": "1.0.0",
7
+ "engines": { "vscode": "^1.75.0" },
8
+ "categories": ["Programming Languages"],
9
+ "contributes": {
10
+ "languages": [
11
+ {
12
+ "id": "rblua",
13
+ "aliases": ["rblua", "Rblua"],
14
+ "extensions": [".rblua"],
15
+ "configuration": "./language-configuration.json"
16
+ }
17
+ ],
18
+ "grammars": [
19
+ {
20
+ "language": "rblua",
21
+ "scopeName": "source.rblua",
22
+ "path": "./syntaxes/rblua.tmLanguage.json"
23
+ }
24
+ ],
25
+ "iconThemes": [
26
+ {
27
+ "id": "rb-rblua-icons",
28
+ "label": "rb — rblua file icons",
29
+ "path": "./icons/icon-theme.json"
30
+ }
31
+ ]
32
+ },
33
+ "activationEvents": ["onLanguage:rblua"],
34
+ "main": "./src/extension.js"
35
+ }