BotChatter WIP (pre-release) for Fun-Bots
Modular chatter packs + Mentions + PG-13 banter + No WebUI conflicts
Branch target:
squad-mates-use-full-vehicle-seats-and-more
by MatiasPastori (notmaster
)
Status: pre-release / WIP
What is it?
BotChatter adds a lightweight chatter overlay for Fun-Bots with regional packs, personalities, and per-event lines. It aims for readable, PG-13 one-liners without turning chat into noise.
Why no WebUI? The overlay renders via DebugRenderer:DrawText2D
. In-game chat forces everything to appear as ADMIN (no unique bot senders), and Fun-Bots’ WebUI is used for admin/path tooling and hooking that cleanly would need a separate vuic
. The overlay avoids conflicts and stays scoreboard-safe.
Features
- Regional packs: AU, NZ, UK, CA, plus a US-style Default
- Events: kill, headshot, longshot, vehicle/roadkill, multi, streak, spawn, revenge, round start/end
- Mentions: bots can mention other bots or the player; player mentions are highlighted
- Personality biasing (Chill / Tactical / Cocky / Sassy) with deterministic seeding
- PG-13 banter; ASCII-only lines
- Rate limiting (per-bot) + per-category cooldowns
- No emissions during teardown (
Level:Destroy
) - Name system integration: regional name packs + runtime regional tagger (dynamic; no tags baked into names)
Download / Links
- Release (zip): fun-bots-3.0.0-dev6_BotChatterWIP.zip
- Pull request
Install
- Back up your existing Fun-Bots mod folder.
- Extract the release zip over your server’s Fun-Bots mod.
- Load Conquest; you should see a compact chatter overlay when events fire.
Quick config
ext/Shared/BotChatterConfig.lua
contains some basic configs
return {
defaultPack = "Default",
allowPerBotPackByTag = true, -- maps [AU],[NZ],[UK],[CA] to packs
personalityMode = "seeded", -- deterministic per-bot
seed = 1337,
distort = { enabled = true, emoticonChance = 0.12, elongateChance = 0.06, uppercaseBurstChance = 0.05, maxElongate = 3 },
rateLimit = { windowSec = 8.0, maxPerWindow = 2 } -- ~2 msgs / 8s per bot
}
Further configuration can be done in:
ext/Client/BotChatterClient.lua
for chat colours (RGBA 0..1)ext/Server/BotChatter/Personalities.lua
for personality-specific linesext/Server/BotChatter/Packs/*.lua
regional style lines packsext/Shared/Names/NameProvider.lua
for name pack weights and additionsext/Shared/Names/packs/*.lua
for regional style name packs
Compatibility (why this isn’t master)
Targets squad-mates-use-full-vehicle-seats-and-more
by MatiasPastori only because his client/server/shared __init__
files are modified to bootstrap BotChatter.
To use on another branch/build:
- Copy
ext/Server/BotChatter/**
,ext/Client/BotChatterClient.lua
,ext/Shared/Names/**
,ext/Shared/BotChatterConfig.lua
. - Add the BotChatter
require
lines to client/server/shared__init__
. - Replace
ext/Shared/Constants/BotNames.lua
with the included shim so names come from the packs.
Known limitations (WIP)
- Occasional double-send if two categories fire in the same tick (e.g., streak + kill).
- High bot counts increase volume; on big lobbies (especially client+server on one PC) I am considering adding stricter limits or adaptive cooldowns to mitigate this.
- Spacing glitch when highlighting a player mention (UI layout edge case, proving hard to track down exactly why this is happening).
- Timing “feel” could use extra polish (more jitter / priority tweaks). Feedback welcome!
Testing
- VU Build 20079, multiple full length hours long matches
- Flags:
-debuglog -trace -vexttrace -tracedc
- Result was stable; chatter volume stayed within targets
- NOTE: Testing on a jam-packed server with 63 bots often leads to random crashes likely due to the volume of events being tracked and fired within the chat system. This is currently being investigated
Reporting issues
- Run with the flags above.
- Grab ~200 lines around the event from
Documents\Battlefield 3\Server\logs\server-*.log
. - Include map, bot count, what happened (e.g., headshot longshot), and whether client+server ran on the same PC.
- Post here or on the PR. I’ll try to reproduce and tune quickly.