Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
GlowStick
Throw glowing sticks with real physics, pick them up and re-throw. Each stick has its own light. 8 hex-editable colors, fixed-color mode, stock HUD, zh/en config that switches live. Multiplayer: others with this mod see your sticks and can grab them.
By Yanyan_mod
| Date uploaded | a day ago |
| Version | 1.1.1 |
| Download link | Yanyan_mod-GlowStick-1.1.1.zip |
| Downloads | 174 |
| Dependency string | Yanyan_mod-GlowStick-1.1.1 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
荧光棒标记 GlowStick
按一个键,从身前扔出一根会发光的荧光棒。它带真实物理,会飞、会弹、会滚,撞到墙或落地就停下,然后一直亮在那里。用来标记路、标记门、标记"这边走过了",或者单纯在黑走廊里丢着玩。
八种颜色循环出,扔一根换一个色;颜色和模式都能在配置里改。
功能
- 扔:默认按
X,从身前约半米、胸口高度抛出,带一点上抛弧度,扔出去的速度默认 6 米/秒。 - 物理:每根都是真实刚体(0.55kg、带胶囊碰撞体、自定义摩擦材质、开启插值与连续碰撞检测),会滚会弹,撞墙轻轻弹一下,扔再快也不会穿墙掉进虚空。
- 捡起来再扔:准星对着 3.5 米内的荧光棒,准星右边会浮出一行小字
按住 E 拿起(纯描边、没有底板,不挡视野)——按住E它就被拽到身前晃两下停住;这时按左键就朝你朝的方向用力甩出去;松开E就落地放着。 - 自带光:每根荧光棒身上挂一盏点光源(默认射程 14 米、强度 6.5),真的能照亮地面和墙。跟光晕一起以微弱呼吸节奏明暗颤动,不是死板的常亮。为了不吃性能,只点亮离你最近的十几根(默认 16 盏),远处的照样摆着但不开灯。
- 八色循环:黄 → 红 → 绿 → 蓝 → 白 → 橙 → 紫 → 粉,每扔一根换下一个颜色。八个颜色都能在配置里换成任意
#RRGGBB;不想循环就把「颜色模式」填成 1~8,固定只用那一种。 - 库存:最多带 10 根,扔一根等 5 秒才能扔下一根,每 30 秒自动补回 1 根(补到上限为止)。
- HUD:屏幕左侧偏下一排竖条,亮的是还剩几根、暗的是空槽;正在冷却的那格会闪;冷却进度是底部一条黄条;条右边还有
剩余/上限的数字。补货倒计时在下一格底下画一条青色细线,越满越接近补上。整块 HUD 只在关卡里出现,主菜单和大厅不画(撤离结算那几秒还会留在屏幕上)。 - 自动清理:场上同时最多 120 根,超过就把最老的删掉;掉出世界(y < -200)的自动销毁,不会越堆越卡。
配置
配置文件在 BepInEx/config/com.yanyan.glowstick.cfg,游戏里也能用 REPOConfig 菜单直接改(有中英文,切语言即时生效)。
配置文件里段名和键名会跟着语言走:选中文时段名是 1.总开关…,选 English 时是 1. Master…。下面的表按中文段名写,括号里是英文段名。
| 段(EN) | 键 | 默认 | 说明 |
|---|---|---|---|
| 1.总开关(1. Master) | enable | 开 | 关掉后按扔出键不再扔 |
| 2.扔出(2. Throw) | key | X | 扔出的按键 |
| 2.扔出 | cooldown | 5 秒 | 两根之间的冷却(0~30) |
| 2.扔出 | max | 10 | 最多带几根(1~30) |
| 2.扔出 | regen | 30 秒 | 每多少秒补一根(2~300) |
| 2.扔出 | speed | 6 | 抛出速度,米/秒(1~20) |
| 3.外观(3. Look) | light | 开 | 每根自带点光源,关掉只剩自发光模型(性能更好) |
| 3.外观 | lightRange | 14 米 | 点光源射程(3~40) |
| 3.外观 | lightPower | 6.5 | 点光源强度(0.5~25) |
| 3.外观 | lightBudget | 16 | 同时点亮几盏,只挑离你最近的(1~60) |
| 3.外观 | 颜色模式 | 0 | 0 = 每扔一根换一个颜色;1~8 = 固定只用下面第 N 个颜色 |
| 3.外观 | 颜色1(黄) | #FFDE1A | 第 1 个颜色,#RRGGBB |
| 3.外观 | 颜色2(红) | #FF2E29 | 第 2 个颜色 |
| 3.外观 | 颜色3(绿) | #40FF47 | 第 3 个颜色 |
| 3.外观 | 颜色4(蓝) | #338CFF | 第 4 个颜色 |
| 3.外观 | 颜色5(白) | #FFFFFF | 第 5 个颜色 |
| 3.外观 | 颜色6(橙) | #FF850D | 第 6 个颜色 |
| 3.外观 | 颜色7(紫) | #B847FF | 第 7 个颜色 |
| 3.外观 | 颜色8(粉) | #FF5CC2 | 第 8 个颜色 |
| 4.界面(4. HUD) | hud | 开 | 左侧库存条 |
| 5.拾取(5. Pickup) | key | E | 拿起/放下的按键 |
| 5.拾取 | range | 3.5 米 | 多远之内能捡(1~12) |
| 5.拾取 | holdDist | 1.35 米 | 拿在手里时离你多远(0.5~4) |
| 5.拾取 | spring | 55 | 拉扯的弹力,越大越黏手(8~200) |
| 5.拾取 | damp | 9 | 阻尼,越大越不晃(1~40) |
| 5.拾取 | throwSpeed | 11 | 拿着时左键扔出的速度,米/秒(2~30) |
段名/键名/说明都是中英双语,在配置菜单最上面的 0.Language 里选「中文 / English」,选完当场变,不用重启游戏、不用退出菜单。
切语言只改显示,配置里存的值一个都不动,改过的颜色和按键不会被语言切换冲掉。
说明
- 只在真正进关卡后生效。主菜单、商店、结算界面按 X 不会扔,也不会误触。
- 联网同步:装了本模组的玩家之间,扔出去的荧光棒互相看得见(位置、姿态、颜色都同步)。没装本模组的人看不见,也不会因此报错或卡顿——同步走的是 Photon 自定义事件,只在装了的客户端之间解析,未装的客户端收到未知事件码会直接忽略。
- 同步开销很小:飞行中每根棒约每秒 11 次位置包,一停下来就不再发包(只发一次"落定"),所以满地棒子也不会一直吃带宽。
- 别人扔的棒子也能捡:远端棒带的是一个 trigger 碰撞体——它不参与物理求解(不会推走你的东西、不会把你卡住),但准星能打到、能捡起来、能再扔。捡起来那一刻所有权转到你手里,棒子当场变成本地真刚体,其他人那边的旧分身会同时消失、换成你这份新的。
- 同步出问题请联系作者:两端都装了模组却看不到对方的荧光棒、位置对不上、棒子重影或突然消失,请把
BepInEx/LogOutput.log和当时怎么操作的简单描述发到 [email protected],我照着日志查。 - 想扔得远就把 speed 调大;想满地铺颜色就把 cooldown 调小、把 max 调大(注意 120 根的硬上限)。
- 扔到门框、墙角不会再卡住或消失;万一真被挤进几何体里,它自己会往下挪一点脱困。
- 灯太亮刺眼就把 lightRange / lightPower 调小;机器吃力就调小 lightBudget(比如 6)。
- 改颜色填的是十六进制色值,形如
#FF5CC2;写成FF5CC2或#F5C这种缩写形式也认,填错了就退回该槽的出厂默认色,不会崩。改完一秒内生效,正在飞的那根不变色,下一根起用新色。
安装
- 装 BepInEx 5.4.x(x64,Mono)。
- 把
plugins/GlowStick.dll丢进BepInEx/plugins/。 - 启动游戏,进关卡,按 X。
GlowStick (English)
Press a key to throw a glowing light stick. It has real physics — it flies, bounces, rolls, then stops and keeps glowing. Eight colors cycle every throw; both the colors and the mode are configurable.
Features
- Throw: default
X. Spawned about half a meter in front of you at chest height with a slight upward arc, 6 m/s by default. - Physics: every stick is a real rigidbody (0.55 kg, capsule collider, custom friction material, interpolation + continuous collision detection). It bounces and rolls, gives a small bounce off walls, and will not tunnel through geometry even when thrown hard.
- Pick up and throw again: aim at a stick within 3.5 m and
Press E to pick upfloats up right of the crosshair (outlined text, no backing plate, so it never blocks your view). HoldEand it is pulled in front of you; left click hurls it where you look; releaseEto drop it. - Its own light: each stick carries a point light (range 14 m, intensity 6.5) that actually lights up the floor and walls, gently pulsing with the halo instead of sitting dead flat. Only the nearest sticks (16 by default) are lit at a time so a room full of them stays cheap.
- Eight colors: yellow → red → green → blue → white → orange → purple → pink, one per throw. All eight slots can be replaced with any
#RRGGBB; to stop cycling, setcolorModeto 1-8 and it always uses that one slot. - Stock: carry up to 10, 5 second cooldown per throw, +1 every 30 seconds up to the cap.
- HUD: bar of ticks on the left, slightly below centre — bright ticks are what you have left, dim ones are empty slots, the cooling tick blinks, a yellow bar underneath is the cooldown,
current/maxsits to its right. A cyan line under the next empty slot is the regen countdown. The whole HUD only draws inside a level; the main menu and lobby stay clean (it lingers for the few seconds of the extraction outro). - Cleanup: hard cap of 120 sticks alive; oldest gets removed past that. Anything below y = -200 is destroyed.
Config
BepInEx/config/com.yanyan.glowstick.cfg, also editable in-game through REPOConfig. Section names, key names and descriptions are bilingual — pick 中文 or English in 0.Language at the top of the config menu and it changes on the spot, no restart, no need to reopen the page. Switching language only changes the display — values already stored (colors, keys, numbers) are untouched.
Colors (section 3. Look)
| Key | Default | Meaning |
|---|---|---|
| Color mode | 0 | 0 = cycle one colour per throw; 1-8 = always use that single slot |
| Color 1 (Yellow) | #FFDE1A | slot 1, #RRGGBB |
| Color 2 (Red) | #FF2E29 | slot 2 |
| Color 3 (Green) | #40FF47 | slot 3 |
| Color 4 (Blue) | #338CFF | slot 4 |
| Color 5 (White) | #FFFFFF | slot 5 |
| Color 6 (Orange) | #FF850D | slot 6 |
| Color 7 (Purple) | #B847FF | slot 7 |
| Color 8 (Pink) | #FF5CC2 | slot 8 |
Notes
- Only active inside a real level — no accidental throws in the main menu or the shop.
- Multiplayer sync: if the other player also has this mod, your thrown sticks are visible to them, with matching position, rotation and color. Players without the mod cannot see them and will not error out — sync uses a Photon custom event, which unmodded clients simply ignore.
- Very low bandwidth: each stick sends about 11 position updates per second while airborne, then a single "settled" packet and nothing more, so a floor full of sticks costs no ongoing traffic.
- You can pick up other players’ sticks too. Remote sticks carry a trigger collider: it never takes part in the physics solve (so it cannot shove your props or trap you) but the crosshair can hit it, and you can pick it up and throw it again. The moment you grab it, ownership transfers to you — the stick becomes a real local rigidbody, and the old copy on every other client is swapped out for yours in the same packet.
- If sync misbehaves, get in touch: both sides have the mod but you cannot see each other's sticks, positions drift apart, sticks duplicate or vanish — send
BepInEx/LogOutput.logplus a short note about what you did to [email protected]. - Colors are hex values like
#FF5CC2.FF5CC2or the short#F5Cform work too; anything unparsable falls back to that slot's factory default instead of crashing. Changes apply within a second — sticks already in flight keep their color, the next throw uses the new one.
Install
Drop plugins/GlowStick.dll into BepInEx/plugins/ with BepInEx 5.4.x (x64, Mono).
CHANGELOG
更新日志 / Changelog
1.1.1 — 别人的棒子能捡了 / Pick up other players' sticks
中文
- 别人扔的荧光棒现在能捡、能再扔。以前远端棒是纯视觉的(没有碰撞体),准星打不到、也抓不起来;这一版给它加了一个 trigger 碰撞体 —— 只挂在触发层,不参与物理求解,所以它照样不会推走你的箱子、不会把你卡在门框上。
- 捡起来等于过户:抓到手的那一刻,棒子在你这边变成真正的本地刚体(重量、摩擦、弹跳全都照原版),同时发一条认领消息告诉其他人。别人屏幕上原来那根影子会同时消失、换成你手里的这根,不会出现"两根、闪一下、旧的还在"。
- 不再有"看得见摸不着":以前追着一根别人的棒子按 E 按到烦,现在跟自己的棒子手感一致。
English
- You can now pick up and re-throw other players' sticks. Remote sticks used to be pure visuals with no collider at all, so the crosshair could not hit them and nothing could grab them. They now carry a trigger collider: it is on the trigger layer and never enters the physics solve, so it still cannot shove your crates around or wedge you in a doorway.
- Picking one up transfers ownership. The instant it lands in your hand it becomes a real local rigidbody (mass, friction and bounce exactly like your own), and a claim packet goes out to everyone else. The old ghost on their screens disappears and is replaced by yours in the same step — no duplicates, no flicker, no stale copy left behind.
- No more "see it but can't touch it".
1.1.0 — 联网同步 / Multiplayer sync
中文
- 装了模组的人之间能互相看见荧光棒。你扔、他看得见;他扔、你也看得见。位置、姿态、颜色都对得上。
- 没装的人看不见,也不会因此出问题:同步走的是 Photon 自定义事件(独立事件号),未装本模组的客户端收到不认识的事件码会直接丢掉,不报错、不卡。
- 带宽很省:飞行中每根约每秒 11 次位置包;停下就发一次"落定"然后彻底不发了。一根棒整段寿命的流量比一句聊天还小。
- 别人扔的你捡不起来:远端棒刻意不建刚体、不建碰撞体 —— 这样它们绝不会推走你的本地物体、也不会把你卡住。你自己扔的照常能捡能再扔。
- 离开关卡 / 换场景时,远端棒会自动清空,不会残留到下一局。
English
- Sticks are now shared between players who both have the mod. You throw it, they see it — position, rotation and color all match.
- Players without the mod see nothing and nothing breaks. Sync uses a Photon custom event with its own event code; unmodded clients drop unknown codes silently.
- Cheap on bandwidth. About 11 position updates per second per airborne stick, then a single "settled" packet and silence. A stick's whole lifetime costs less than one chat line.
- You cannot pick up someone else's stick. Remote sticks are intentionally spawned with no Rigidbody and no Collider, so they can never push your props around or trap you. Your own sticks still pick up and re-throw as usual.
- Remote sticks are cleared on level change / scene unload.
1.0.0 — 首次发布 / First release
中文
这是第一个正式版本,之前 1.2.x 那些编号都是内部试打,没有对外发过。
- 扔:默认按
X,从身前约半米、胸口高度抛出,带一点上抛弧度。 - 真实物理:每根都是真刚体(0.55kg、胶囊碰撞体、自定义摩擦材质、插值 + 连续碰撞检测),会飞会弹会滚,撞墙轻轻弹一下,扔再快也不穿墙。
- 拾取 / 再扔:准星对着 3.5 米内的荧光棒,准星右边浮出一行描边小字提示;按住
E拽到身前,左键甩出去,松开E放下。提示是纯描边的,没有底板,不挡视野。 - 每根自带光:一盏点光源(默认 14 米、强度 6.5),跟光晕一起以微弱呼吸节奏明暗颤动,不是死板常亮。为了吃得住性能,只点亮离你最近的 16 根。
- 八色循环:黄 → 红 → 绿 → 蓝 → 白 → 橙 → 紫 → 粉,每扔一根换下一个。
- 颜色可配:八个颜色都能改成任意
#RRGGBB;「颜色模式」填 0 是循环,填 1~8 就固定只用那一个颜色。改完一秒内生效。 - 库存:最多 10 根,扔一根等 5 秒,每 30 秒补回 1 根。
- HUD:左侧偏下一排竖条,亮的是还剩几根,冷却那格会闪,底部一条黄条是冷却进度,右边是
剩余/上限,下一格底下青色细线是补货倒计时。只在关卡里画,主菜单 / 大厅不出现(撤离结算那几秒还会留在屏幕上)。 - 外壳:直接用游戏里现成的投掷物预制体(眩晕手榴弹优先),不是自制圆柱;手榴弹的引爆逻辑全掐掉,扔出去不会炸,爆炸类 / 绊雷 / 活人手雷一律排除。
- 中英双语:配置菜单最上面
0.Language选「中文 / English」,段名、键名、说明当场全换,不用重启游戏、不用退出菜单。切语言只改显示,存的值不会丢。 - 清理:场上同时最多 120 根,超了删最老的;掉出世界(y < -200)的自动销毁。
说明 / 已知限制
- 只在真正进入关卡后生效,主菜单、商店、结算界面按键不会误触。
- 纯本地生成:荧光棒只在你自己屏幕上存在,队友看不见。定位是"给自己做标记",不是同步道具。
English
First public release. The 1.2.x numbers before this were internal test builds and were never published.
- Throw: default
X. Spawns about half a meter in front of you at chest height with a slight upward arc. - Real physics: every stick is a genuine rigidbody (0.55 kg, capsule collider, custom friction material, interpolation + continuous collision detection). It flies, bounces and rolls, gives a small bounce off walls, and never tunnels through geometry.
- Pick up / throw again: aim at a stick within 3.5 m and an outlined line of text floats up right of the crosshair. Hold
Eto reel it in, left click to hurl it, releaseEto drop it. The hint is outlined text only — no backing plate, so it does not cover what you are looking at. - Its own light: each stick carries a point light (14 m, intensity 6.5 by default) that breathes gently with the halo instead of sitting dead flat. Only the nearest 16 are lit at a time to keep it cheap.
- Eight colors: yellow → red → green → blue → white → orange → purple → pink, one per throw.
- Colors configurable: all eight slots accept any
#RRGGBB; setColor modeto 0 to cycle, or 1-8 to lock one colour. Applies within a second. - Stock: up to 10, 5 s cooldown per throw, +1 every 30 s.
- HUD: a bar of ticks on the left, slightly below centre. Bright ticks are what you have left, the cooling tick blinks, a yellow bar underneath is the cooldown,
current/maxsits to its right, and a cyan line under the next empty slot is the refill countdown. Drawn inside a level only — the main menu and lobby stay clean (it lingers a few seconds into the extraction outro). - Shell: uses the game's own throwable prefabs (stun grenade first) rather than a hand-built cylinder. All detonation logic is stripped, so it never explodes; explosive / mine / human-grenade variants are blacklisted.
- Bilingual config: pick
中文orEnglishin0.Languageat the top of the config menu and sections, key names and descriptions all switch on the spot — no restart, no need to reopen the page. Switching language only changes the display; stored values are untouched. - Cleanup: hard cap of 120 live sticks, oldest removed past that; anything below y = -200 is destroyed.
Notes / known limits
- Only active inside a real level; no accidental throws in the main menu, shop or results screen.
- Local only: sticks exist on your screen only, teammates cannot see them. This is a personal marker tool, not a synced prop.