CHANGELOG
Changelog
2.6.1
- Bots use Brain mode automatically (Fixes > "Bots Use Brain Automatically", on by default). About 1.5 seconds after a bot appears, if it is still in Stand mode it is switched to Brain. Bots you already put in another mode, and Clone / Exact / Replay bots, are left alone. Turn the toggle off to keep Doppel's own default. It only affects bots that appear after the toggle is on; existing bots keep their mode.
- Not compiled or tested.
2.6.0
- Pitch varies per voice line. Every custom WAV line is played between -1 and +1 semitone (randomly, a new value each time) so repeats don't sound identical. "Vary Pitch Per Line" (on) and "Pitch Range (+/- semitones)" (default 1, up to 4) are on the Voice Chat page.
- The same pitch is applied to the voice sent over Fusion voice chat, so other players hear the same line you do. Speed changes slightly with pitch, like a record speeding up. Avatar vocals are played by the game and are not changed on your side.
- Not compiled or tested.
2.5.0
- Bots talk with players (Situational Voice > "Bots Talk Back To Players (Fusion too)", on by default; needs Bots Talk on). A calm bot within talking range answers a player who has just finished speaking (about a second later, with one of your "convo" lines or an avatar vocal), and a bot that a player walks up to waves and says hello. Works for you and for every other player in a Fusion lobby: the host reads each player's incoming voice chat to tell when they speak. It reacts to when someone talks, not to what they say. Each bot waits 10 to 25 seconds between answers.
- Voice to other machines was already added in 2.2.0 and applies to these lines too: when you host, the bot's voice goes out through Fusion voice chat, so players without the mod hear it. It needs the host toggle in Voice Chat (on by default). As a non-host the bots are not Fusion players, so other people cannot hear them.
- Not compiled or tested.
2.4.0
- Melee grabs use a real grip and point up (Fixes > "Melee Grab: Real Grip + Point Up", on by default). When a bot is about to grab a melee weapon, the weapon is first turned around the grip so its far end points up, like a force grab turning an upside-down object upright. If Doppel picked a blade-end grip, a handle / hilt / primary grip on the same weapon is used instead when there is one.
- Clone, Exact, Copy and Replay bots are skipped so recorded lessons stay as recorded. Only bots grabbing melee weapons are affected; guns are not.
- The weapon turns instantly rather than smoothly. Not compiled or tested; if a weapon snaps oddly, turn the toggle off and tell me what it did.
2.3.0
- Random avatar from SLZ pallets only (Map Spawning > "Random Avatar From SLZ Pallets Only", off by default). Every bot spawned by the mod (in front of you, random spawn, every spawn, auto-populate) gets a random avatar from the pallets whose id starts with
SLZ.BONELAB; mod avatars are never picked. With Random Sizes on, the size is rolled on top of the avatar's own size. "Re-roll Size Of All Bots" now keeps each bot's current avatar while this is on. If no SLZ avatars are found, the bot keeps your avatar and a warning is logged. - Bots spawned with Doppel's own menu are not changed.
- In a Fusion lobby you host, the new avatar reaches other players through the normal avatar sync. Not compiled or tested.
2.2.0
- Run From Bigger "Enabled" now really stops it. The logic was already switched off, but a flee destination that was already set kept the bot running to it. Turning the feature off (or a threat ending by toggle) now clears that destination.
- Toggle audit. Every one of the 53 settings was checked for a place that reads it. Three did nothing: Tag Height Offset, Tag Size and Fade Starts (m). They now work (size and height adjust the tag on your screen; the tag fades out between Fade Starts and Fade Ends when "Tags Never Fade" is off). Defaults are 0.3 and 1.2, so tags look slightly larger and higher than before until you change them.
- Bot voice is on by default (Voice Chat > "Send Bot Voice To Fusion Players (host)"). It now covers custom WAV lines and avatar vocals: the mod watches each bot's mouth audio source and streams any clip that starts on it. Clips Unity cannot read back (streamed or heavily compressed) cannot be sent.
- Bots say something when they join (Voice Chat > "Bots Say Something When They Join", on by default): about 2 seconds after a bot registers as a Fusion player it plays an idle line, so voice is used right away. Needs Bots Talk on.
- Host only. Not compiled or tested. Players can mute or deafen bots in Fusion like any player.
2.1.1
- Tags never fade (Names & Tags > "Tags Never Fade", on by default). Turn it off to use the old fade distances. This is the tag you see on your own screen; other players' own Fusion name tags follow their Fusion settings.
- Profile descriptions from traits (Names & Tags > "Profile Description From Traits (Fusion)", on by default). Each bot's Fusion profile description is built from the personality Doppel rolled for it (for example "right-handed, quick on its feet, a climber, a sharp shot"), with "Enemy," in front for enemies. Host only, since that is when bots are real Fusion players.
2.1.0
- Bots no longer copy you. A bot's Fusion player is now blocked from ever taking over your rig or sending your pose: a bot id with no bot behind it is ignored, and if a bot's player is wearing any rig other than the bot's own, the mod stops sending and re-registers it.
- Player leaving. When a real player leaves, the mod now does nothing to the bots for 4 seconds (no re-registering, no avatar or grip refresh, no removal). Poses keep sending so nobody freezes.
- Voice to Fusion (Voice Chat page, "Send Bot Voice To Fusion Players (host)", OFF by default). Host only. Sends the bot's custom WAV voice lines through Fusion voice chat as the bot's own voice, so players without the mod hear them. Avatar vocals and other sounds are not sent.
- Not compiled or tested. If the copying still happens, send the MelonLoader log from right after a player leaves.
2.0.2
- Spawning as a client. In a Fusion lobby you can now use the spawn buttons (Map Spawning page: in front of me, random spawn, every spawn, auto-populate) when you are not the host, but only if your Fusion role is Operator or Owner. Anyone else gets "Spawning in a Fusion lobby needs the Operator or Owner role." Hosts and offline play are unchanged.
- Limit: only a host can make bots real Fusion players (the join messages must come from the server). Bots a client spawns are shared through Doppel's own sync, so only players who also have Doppel see them. A one-time message says so.
2.0.1
- Fixed bots' brain turning off. Two causes:
- Conversation waves: Doppel's wave drops the bot into Stand mode and never puts it back, so any Brain bot that waved stopped thinking. The mod now remembers the bot's mode and restores it when the wave ends.
- Fleeing: bots already in Brain mode no longer run from bigger players or bots (they used to stop fighting while "fleeing"). New toggle: Run From Bigger > "Brain-Mode Bots Flee Too" (off by default). Bots that were switched to Brain only to flee still flee, and are only put back if they are still in Brain mode when the threat is gone.
- Plain Follow / Wander / Stand bots behave as before.
2.0.0 - DoppelFusion and DoppelFixes merged into one mod
Remove DoppelFusion.dll and DoppelFixes.dll from Mods and use this one instead; running them together patches the same things twice.
Fusion (from DoppelFusion, host only)
- Every bot is registered as a real Fusion player on the host, with a real
NetworkPlayeron the bot's own rig. Everyone in the lobby, with or without any mod, sees an ordinary player with the bot's name and avatar, in Lobby > Players too. Name changes are pushed to everyone. - The host sends the stock join, avatar, pose, grip, ragdoll, metadata and leave messages with the bot's own small ID as sender. Bot grips on props, static and world grips are synced; grabbing an unsynced prop makes Fusion sync it.
- Damage, teleport and entity-data messages that players aim at a bot are handled on the host (damage calls Doppel's
Bot.NetHit). - Doppel's own roster and pose packets are suppressed while this is on, so players who also have Doppel do not see each bot twice.
- Menu: Doppel Extras > Names & Tags > "Show Bots To All Fusion Players (host)". Turning it off removes the bots from the lobby.
- Spawn menu: Doppel Extras > Map Spawning > "Spawn 1 In Front Of Me" / "Spawn 1 Enemy In Front Of Me" (works regardless of the map-spawning toggle). Spawned bots sync on their own.
Fixed
- Bots teleporting around for other players. Remote copies follow a bot with a PD controller that needs the pelvis velocity, and teleport the copy when it falls too far behind. Doppel moves bots without reliable physics velocity, so the velocity is now measured from the last two pose samples (smoothed, capped at 25 m/s) before each pose is sent.
- Bot mouths copying yours in a Fusion lobby. Fusion's jaw code for a player the host owns reads the host's microphone. Bots now use their own loudness (the WAV or avatar vocal they are playing). Toggle: Names & Tags > "Bot Mouth Uses Its Own Voice (Fusion)".
- BoneMenu sliders: the start value and step were swapped in every slider (the value showed as the step). Fixed in this mod; the older mods (finger mods and so on) still have the same swap.
Fixes (from DoppelFixes)
- Doppel Extras > Fixes: "Despawn All Bots" (clears Doppel's queue, removes every bot, then force-destroys any survivors after 1.5 seconds), "Enemy Red Name Tags", "Vehicle Use" and "Crouch Use" sliders (written to Doppel's
tuning.txt; the same keys and formulas as DoppelFixes, default 1.4 each), and "Reset Vehicles + Crouching".
Notes
- Not compiled or tested by the author. The Fusion part reaches into Fusion internals (names taken from the DoppelFusion build you sent). If Fusion changes, the log shows "[DoppelFusion] Player sync could not start" and bots simply stay local.
- Spawn gun support and the avatar picker / devtools / battle mode ideas were dropped from this version.
- Removed the unused fields that caused the CS0169 warnings.
1.3.0
- Host only, off by default: bots show up to everyone as normal Fusion players (menu: Doppel Extras > Names & Tags > "HOST: Show Bots To Everyone As Players").
Players do not need any mod to see them. The host announces each bot with Fusion's own join message (name, avatar and size included), streams its pose every Fusion tick, updates its avatar when it changes, sends it to players who join later, and removes it with Fusion's own leave message. Each bot also appears in the Lobby > Players list for everyone.
- The bot's name is sent when it is announced (after its synced name is ready, up to 6 seconds), so it cannot be renamed afterwards.
- Only works while you are hosting a lobby. Test with one friend before a public lobby.
- Players who also have Doppel will see each bot twice (Doppel's own copy and the Fusion player). Turn this off for them, or turn Doppel's bot sync off.
- Bots are not real connections: Fusion actions aimed at a bot (kick, teleport, permission changes, voice) do nothing or log an error.
- Not tested by the author. If a lobby misbehaves, turn the toggle off; bots are removed from other players' games right away.
1.2.1
- Fixed the Fusion warning "Attempted to cleanup a PlayerId that was not valid": entries Fusion had already removed (for example on leaving a server) are no longer cleaned up a second time.
1.2.0
- Situational voicelines. Bots react to what happens around them with lines from your own WAVs, sorted in folders under
UserData/DoppelExtras/Voices:idle,assist,death,fall,kill,laugh,panic,taunt,witness,convo. A category with no WAVs falls back to the avatar's own vocals where one fits (laughandtauntstay silent).death: played where a bot goes down or vanishes.kill: the bot that most likely made a kill (nearest fighting bot on the other side), sometimes followed by ataunt.assist: fighting bots on the killer's side that were nearby.panic: bots on the dead bot's side nearby, and a bot that starts running from something bigger.witness: any other bot that can see it happen (line of sight, within 14 m).fall: a bot that lands hard says it; bots nearbylaughat a fall if on the same side, otherwisewitness. Also reacts to the player landing hard.taunt: now and then while fighting.idle: the existing random chatter. WAVs placed directly inVoicesstill count asidle.- Menu: Doppel Extras > Situational Voice (on/off, reaction chance, per-bot cooldown).
- Conversations. Two calm bots on the same side wave, then take turns talking (4 to 8 lines, using
convoWAVs, oridleif there are none), sometimes laughing, and wave again at the end. A bot can walk up to the other one first (toggle). A conversation stops if either bot starts fighting or running, or they wander apart. - Voice WAVs are loaded per category; use "Reload Voices Folder" after adding files.
- Known limits: who killed whom is a guess from who is nearby and fighting. Bots are not turned to face each other; Doppel's own meeting behaviour may or may not do that.
1.1.0 (for Doppel 1.4.0)
- Name tags now use Fusion's own head UI and name tag (same prefab, font and layout as real players).
- Bots are added to Fusion's Lobby > Players list (this machine only). Fixed: the entries were never actually registered before.
- Map spawning uses Doppel 1.4.0's own spawn routine, falls back to the old method if it is missing.
- Random sizes are applied a moment after spawn and normalised to the avatar's real height (safe for custom avatars).
- Names come from a hash of the bot's network ID, so everyone with the same names.txt sees the same name.
1.0.0
- First version: names, tags, voice chance, flee from bigger, map spawning, climbing, tuning editor.