From abbf956eab1ade8223d50b4acc1f18fe37bd50fd Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD <90267658+Loup-Garou911XD@users.noreply.github.com> Date: Sat, 10 Jan 2026 18:56:12 +0530 Subject: [PATCH 1/3] add floating_star plugin --- plugins/utilities/floating_star.py | 172 +++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 plugins/utilities/floating_star.py diff --git a/plugins/utilities/floating_star.py b/plugins/utilities/floating_star.py new file mode 100644 index 00000000..b6161158 --- /dev/null +++ b/plugins/utilities/floating_star.py @@ -0,0 +1,172 @@ +# ba_meta require api 9 + +# @BsRush_Mod +# کپی با ذکر منبع آزاد + +from __future__ import annotations +from bascenev1lib.mainmenu import MainMenuSession +from bascenev1._map import Map +import random +import bauiv1 as bui +import bascenev1 as bs +import babase +from typing import TYPE_CHECKING, cast + +plugman = dict( + plugin_name="floating_star", + description="Get floating stars with colorful text", + external_url="", + authors=[ + {"name": "BsRush_Mod", "email": "", "discord": ""}, + ], + version="1.0.0", +) + + +if TYPE_CHECKING: + from typing import Any, Sequence, Callable, List, Dict, Tuple, Optional, Union + +# ==============================================================================# + +# تنظیمات متن +TEXT_CONTENT = "\ue00cBsRush Mod\ue00c" +TEXT_SIZE = 0.01 +TEXT_COLOR = (1, 1, 1) + +# ba_meta export plugin + + +class UwUuser(babase.Plugin): + Map._old_init = Map.__init__ + + def _new_init(self, vr_overlay_offset: Optional[Sequence[float]] = None) -> None: + self._old_init(vr_overlay_offset) + in_game = not isinstance(bs.get_foreground_host_session(), MainMenuSession) + if not in_game: + return + + def path(): + + shield1 = bs.newnode("shield", attrs={ + 'color': (1, 1, 1), + 'position': (-5.750, 4.3515026107, 2.0), + 'radius': 1.4 + }) + + bs.animate_array(shield1, 'color', 3, { + 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])), + 0.2: (2, 0, 2), + 0.4: (2, 2, 0), + 0.6: (0, 2, 0), + 0.8: (0, 2, 2) + }, loop=True) + + flash1 = bs.newnode("flash", attrs={ + 'position': (0, 0, 0), + 'size': 0.6, + 'color': (1, 1, 1) + }) + shield1.connectattr('position', flash1, 'position') + + text_node1 = bs.newnode('text', + attrs={ + 'text': TEXT_CONTENT, + 'in_world': True, + 'shadow': 1.0, + 'flatness': 1.0, + 'color': TEXT_COLOR, + 'scale': TEXT_SIZE, + 'h_align': 'center' + } + ) + + text_math1 = bs.newnode('math', + attrs={ + 'input1': (0, 1.2, 0), + 'operation': 'add' + } + ) + shield1.connectattr('position', text_math1, 'input2') + text_math1.connectattr('output', text_node1, 'position') + + bs.animate_array(text_node1, 'color', 3, { + 0: (1, 0, 0), # قرمز + 0.2: (1, 1, 0), # زرد + 0.4: (0, 1, 0), # سبز + 0.6: (0, 1, 1), # آبی روشن + 0.8: (1, 0, 1), # بنفش + }, loop=True) + + bs.animate_array(shield1, 'position', 3, { + 0: (-10, 3, -5), + 5: (10, 6, -5), + 10: (-10, 3, 5), + 15: (10, 6, 5), + 20: (-10, 3, -5) + }, loop=True) + + shield2 = bs.newnode("shield", attrs={ + 'color': (1, 1, 1), + 'position': (5.750, 4.3515026107, -2.0), + 'radius': 1.4 + }) + + bs.animate_array(shield2, 'color', 3, { + 0: (random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]), + random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])), + 0.2: (0, 2, 2), + 0.4: (2, 0, 2), + 0.6: (2, 2, 0), + 0.8: (0, 2, 0) + }, loop=True) + + flash2 = bs.newnode("flash", attrs={ + 'position': (0, 0, 0), + 'size': 0.6, + 'color': (1, 1, 1) + }) + shield2.connectattr('position', flash2, 'position') + + text_node2 = bs.newnode('text', + attrs={ + 'text': TEXT_CONTENT, + 'in_world': True, + 'shadow': 1.0, + 'flatness': 1.0, + 'color': TEXT_COLOR, + 'scale': TEXT_SIZE, + 'h_align': 'center' + } + ) + + text_math2 = bs.newnode('math', + attrs={ + 'input1': (0, 1.2, 0), + 'operation': 'add' + } + ) + shield2.connectattr('position', text_math2, 'input2') + text_math2.connectattr('output', text_node2, 'position') + + bs.animate_array(text_node2, 'color', 3, { + 0: (1, 0, 1), # بنفش + 0.2: (0, 1, 1), # آبی روشن + 0.4: (0, 1, 0), # سبز + 0.6: (1, 1, 0), # زرد + 0.8: (1, 0, 0), # قرمز + }, loop=True) + + bs.animate_array(shield2, 'position', 3, { + 0: (10, 6, 5), + 5: (-10, 3, 5), + 10: (10, 6, -5), + 15: (-10, 3, -5), + 20: (10, 6, 5) + }, loop=True) + + bs.timer(0.1, path) + + Map.__init__ = _new_init From 0829c04958a348e03cd53c273233a0716bcba89e Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD <90267658+Loup-Garou911XD@users.noreply.github.com> Date: Sat, 10 Jan 2026 13:26:46 +0000 Subject: [PATCH 2/3] [ci] apply-plugin-metadata-and-formatting --- plugins/utilities.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/utilities.json b/plugins/utilities.json index 26f864b8..e7b21406 100644 --- a/plugins/utilities.json +++ b/plugins/utilities.json @@ -2344,6 +2344,20 @@ "md5sum": "01c6cb1a3d3b525c87caed389c8d03ed" } } + }, + "floating_star": { + "description": "Get floating stars with colorful text", + "external_url": "", + "authors": [ + { + "name": "BsRush_Mod", + "email": "", + "discord": "" + } + ], + "versions": { + "1.0.0": null + } } } } \ No newline at end of file From 78f5edc75f2711a13739102a57737fc897f77de9 Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD <90267658+Loup-Garou911XD@users.noreply.github.com> Date: Sat, 10 Jan 2026 13:26:47 +0000 Subject: [PATCH 3/3] [ci] apply-version-metadata --- plugins/utilities.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/utilities.json b/plugins/utilities.json index e7b21406..65c17ff2 100644 --- a/plugins/utilities.json +++ b/plugins/utilities.json @@ -2356,7 +2356,12 @@ } ], "versions": { - "1.0.0": null + "1.0.0": { + "api_version": 9, + "commit_sha": "0829c04", + "released_on": "10-01-2026", + "md5sum": "4ae683c0ed1c60cc0603aa0fdb6e2295" + } } } }