Changes your player model into a robot from Mann vs. Machine, and adds a touch of metal to your voice. Nothing else changes.
By default, anyone can say !robot to toggle it on themselves. Admins can do !robot [target] [1/0] to toggle it on others.
NEW FOR 1.3: Now be robot as Engineer! Plugin has been re-written and no longer works terribly! Also, for plugin devs, it's got natives!
OVERRIDES
Use tf/addons/sourcemod/configs/admin_overrides.cfg and set these to your preferred donator flag to limit access to BtR to your donators/admins:
"betherobot" (def. all) Who can toggle it on themselves.
"betherobot_admin" (def. kick) Who can toggle it on other players.
CVARS Tune the plugin to your liking with tf/cfg/server.cfg.
sm_betherobot_footsteps (1/0, def. 1) Play footsteps from robots?
sm_betherobot_default (1/0, def. 0) Should everyone who joins get a robot model by default?
sm_betherobot_classes (def. 0) What classes shouldn't be able to be robot? Add up the numbers to get the restrictions you want. 1=Scout, 2=Soldier, 4=Pyro, 8=Demo, 16=Heavy, 32=Engineer, 64=Medic, 128=Sniper, 256=Spy. Default is 0 (no restrictions)
sm_betherobot_sounds (1/0, def. 1) Should robots' voices become robotic?
sm_betherobot_taunts (1/0, def. 1) Should robots be able to taunt?
sm_betherobot_fileexists (1/0, def. 1) Should the plugin check if the robot-voice sound file actually exists? Disable this if you're having trouble with sounds. It might fix it.
sm_betherobot_cooldown (def. 2.0) Players must wait this long, in seconds, between toggling robot on themselves. Set to 0.0 for no cooldown.
sm_betherobot_wearables (1/0, def. 1) Show wearables on robots? Many wearables don't merge with the robot model properly, and thus create long lines going to the map's origin.
sm_betherobot_wearables_kill (1/0, def. 0) If this is 1, and _wearables is 0, wearables will be outright removed from players when they become robots. This makes it so they'll also have no wearables when they un-robot, but on the other hand, BLU zombie players appear RED if this isn't on.
MODULE: Be the Sentry Buster
Click for info ->
The Sentry Buster now has its own individual plugin file (see here for why) so you'll need to install betherobot.smx and betherobotsentrybuster.smx to use it. You'll also need TF2Items.
Players who become Sentry Busters with !buster are turned into Demomen with 2500 HP, and a specialized Caber that does some neat stuff. Primary fire attacks with the Caber--this can only hurt Dispensers and Teleporters of the enemy team, instantly destroying them in one hit. It has absolutely no effect on players, or Sentry Guns.
Sentry Busters, just like real Sentry Busters, start winding up and detonate two seconds after pressing their taunt key, or running out of health. The proceeding explosion deals 2500 HP of damage to any enemies or buildings within 300 Hammer units of them. (As the Wiki says, approximate radius of three Teleporters.) Unlike robots, after they die, Sentry Busters become humans again.
HOW TO GET IT: Install betherobot.smx, bethesentrybuster.smx (both below), and TF2Items.
OVERRIDES: "bethebuster" and "bethebuster_admin"--both of them default to z (root). What does _admin mean? ...You didn't read the main OVERRIDES section of this post. Which you should. CVARS:
sm_betherobot_buster_jump (def. 0.0) How high the Sentry Buster can jump, compared to normal players. So 1.0 is the same as normal players, and 10.0 is BRAVE JUMP!
sm_betherobot_buster_announce (def. 0) These people will hear the Administrator say "Alert, a Sentry Buster has entered the area!": 1=Enemy team, 2=Sentry Buster's team, 3=Both, 0=No one.
MODULE: Bots are Robots
Available here. Turns the non-MvM bots into robots. FOR DEVELOPERS
betherobot.inc
Get betherobot.inc below, #include <betherobot>, win the Internet.
PHP Code:
enum RobotStatus {
RobotStatus_Human = 0, // Client is human
RobotStatus_WantsToBeRobot, // Client wants to be robot, but can't because of defined rules.
RobotStatus_Robot // Client is a robot. Beep boop.
}
/**
* Checks if a client is a robot.
*
* @param client Index of the client to check.
* @return RobotStatus value of the client; RobotStatus_Human if they're a human, RobotStatus_Robot if they're a robot, RobotStatus_WantsToBeRobot if they want to be a robot, but can't for some reason.
*/
native RobotStatus:BeTheRobot_GetRobotStatus(client);
/**
* Sets if a client should be robot or not.
*
* @param client Index of the client to set.
* @param toggle True to make the client a robot, false to change them back to a human. Skip this argument to toggle instead.
* @noreturn
*/
native BeTheRobot_SetRobot(client, bool:toggle = bool:2);
/**
* Uses Be the Robot's "CheckTheRules()" native to check if a client should be allowed to be a robot or not.
*
* @param client Index of the client to check.
* @return True if the client is allowed to be a robot (not dead, allowed class by server, etc.) false otherwise.
*/
native bool:BeTheRobot_CheckRules(client);
KNOWN ISSUES There aren't many, anymore.
If you're unlucky enough, your server will stringtable-overflow and crash if it precaches too many sounds. Players precaching another >60 robot sounds per minute helps this happen. We've been waiting ages for Valve to fix this since MvM, but they just fixed it for the majority of servers (not all) and have since been pretending it wasn't affecting anyone anymore.
Fix: Set sm_betherobot_sounds to 0. No sounds will be precached by the plugin. Get NoMvM if you're still paranoid/still overflowing.
Spy issues. All voice lines are delayed for some reason, and BLU Spies appear RED (or something like that) due to missing "disguised" sub-models.
Fix: Disable Spy robots by adding 256 onto sm_betherobot_classes.
Most taunts don't work right (e.g. Rainblower, Scorch Shot, Caber) as Valve hasn't set them up properly/at all for the robot models. Although they're for weapons the MvM bots don't actually use, so you can't really blame 'em.
Fix: Disable taunts with sm_betherobot_taunts 0.
Robots are reset back to humans on mapchange. I'm looking into this, but for now, at least it's better than sounds not working past mapchanges, right? 99% sure that it's caused because OnClientDisconnect() is called on mapchange.
Be the Buster un-robots you, waits out the cooldown time, then makes you a Buster.
Fix: Don't be robot when using !buster.
Clients' consoles are flooded with "Cannot update control point" errors.
Fix: Tell your players to do record dem;stop in console. It does not look like Valve will be fixing this at any point.
Sometimes, a line is drawn from a robot player that goes to some place.
This is because an item that they have equipped attaches to a bone on the player model that does not exist on the robot model, so instead it just lazily goes to the map's origin point.
Lazy Fix: Disable wearables with sm_betherobot_wearables 0. I've always meant to make a "wearable whitelist" for this plugin that makes wearables that cause this bug invisible, but there are quite a number of wearables, and Valve keeps adding more.
Zombie-robot Spies are sometimes coloured the opposite team's colour.
Fix: Disable and kill wearables with both sm_betherobot_wearables 0 and sm_betherobot_wearables_kill 1. I should probably make that whitelist, shouldn't I?
DOCUMENTED CHANGES
Click to see ->
1.3 December 22, 2012
Rewrite!
You can now be robot as Engineer
The plugin will now make players who want to be robots into robots as soon as they qualify, instead of just telling them they can't for some unknown reason
Fixed several issues, mostly involving mapchanges
Added natives for other plugins to use: BeTheRobot_GetRobotStatus, BeTheRobot_SetRobot, BeTheRobot_CheckRules
Added sm_betherobot_wearables_kill cvar, defaults to 0. Set it to 1, and wearables of players will be killed (instead of hidden) when they become a robot. sm_betherobot_wearables must be 0.
Added @robots target filter for use with other plugins
Base plugin no longer requires SDK Hooks and TF2Items (Be the Sentry Buster still requires both)
(Be the Sentry Buster)
Now has its own module
Added sm_betherobot_buster_jump cvar, defaults to 0.0. Controls Sentry Buster's jump height. 1.0 is the normal jump height for players.
Added sm_betherobot_buster_announce cvar, defaults to 0. The Administrator will announce the Sentry Buster's presence to...1=enemy team, 2=Sentry Buster's team, 3=both teams.
The Sentry Buster's scale now reads from the tf_mvm_miniboss_scale cvar instead of being hardcoded
Fixed players who turned off Sentry Buster maintaining its weapon
Fixed Administrator sounds not playing to Sentry Busters
1.2 October 27, 2012
Added cvars
Footsteps
Enable by default
Classes not allowed to be robot
Taunts
Disable FileExists check
Cooldown
Wearables
Plugin version
Greatly improved Be the Sentry Buster (!buster)
Starts with 2,500 HP
Deals 2,500 HP of damage
Doesn't "die", and can't be backstabbed
Intro sound only plays near the Sentry Buster
Footstep sounds!
Particle!
All "static" precaching (which would be the Sentry Buster sounds) moved to OnMapStart
Fixed another possible crash bug
Fixed robot Medics playing footstep sounds (they roll on wheels)
Fixed non-robot-at-the-time Engineers playing robot footstep sounds
Fixed Buster sound looping after the explosion (it was written in there for some reason)
1.1 August 21, 2012
Added the Sentry Buster! (!buster, WIP)
Footstep sounds!
!betherobot and !berobot shortcuts
Switched use_valve_fs to true for the FileExists check
Fixed a server crash involving taunts that Sreaper reported
1.0.1 August 17, 2012
Clients are no longer un-robot'd on death/resupply. Forgive me, as I was lacking sleep when I decided to do that.
Improved the admin command: sm_robot [target] [1/0]. Don't specify a second parameter and it'll be a toggle like it was before.
Fixed clients ragdolls and death sounds not being those of robots and ROBOT NOISES.
HOWE 2 INSTALL
DO NOTCLICK Get Plugin for either file, because it won't work.
Download betherobot.smx, save it into your sourcemod/plugins/ directory, and do sm plugins load betherobot in your server console if the server is already running. Bam, pow, snap, you're done.
If you want to restrict it to certain players only, see the text underneath the big OVERRIDES text above, then save your overrides config and sm_reloadadmins.
If you want to Be the Sentry Buster:
Make sure you've got the extensions SDK Hooks and TF2Items installed and running on your server--sm exts load sdkhooks and sm exts load tf2items in server console if they're not.
Grab betherobot_sentrybuster.smx and do the same dealio with stock robot. If it doesn't load, use your brain to carefully read the failure message. (For example, extension "tf2items" not running means you didn't install TF2Items right. Or you might need to restart the server.)
If you want to manually compile Be the Robot, Be the Buster, or make your own module, hit Get Source for the respective .sp. You'll also need to plant betherobot.inc into your include/ folder when compiling.
You are no longer a robot if you touch a resupply cabinet. Anyway to fix this? Typing !robot each and everytime is rather bad.
I just thought of something pretty awesome. If there was somehow a way to force all BOT's to use the robot model as well. That would be very fitting xD
Last edited by Jim E. Rustler; 08-16-2012 at 14:15.
You are no longer a robot if you touch a resupply cabinet. Anyway to fix this? Typing !robot each and everytime is rather bad.
The horsemann is like this..just don't touch the supply cab. Same commands for horsemann as well with ! but you can use / instead doesn't matter but I don't see a big deal here.
As for the known issues like logs and such I'll watch this and see what Valve does in the next few days as far as fixing issues (more updates to wait on) with this most recent update to see what cleans up and what doesn't.
The horsemann is like this..just don't touch the supply cab. Same commands for horsemann as well with ! but you can use / instead doesn't matter but I don't see a big deal here.
As for the known issues like logs and such I'll watch this and see what Valve does in the next few days as far as fixing issues (more updates to wait on) with this most recent update to see what cleans up and what doesn't.
Ahh are you serious? This is expected behavior?
I was hoping this would be an easy fix, had no idea other similar plugins had this issue too. Oh well, it was a nice concept to use for my server and all but I just can't have something (in my mind) broken like this running on it.
I was hoping this would be an easy fix, had no idea other similar plugins had this issue too. Oh well, it was a nice concept to use for my server and all but I just can't have something (in my mind) broken like this running on it.
Thanks anyways.
I wouldn't classify it as broken... I mean the cycle they each have are very high as in the Horsemann has a HP of near 1000 so you can be out there a long time, the robots are prob near the same. If you worry about running out of ammo use a infinite ammo plugin to go with it and if you worry about health use god mode.
I wouldn't classify it as broken... I mean the cycle they each have are very high as in the Horsemann has a HP of near 1000 so you can be out there a long time, the robots are prob near the same. If you worry about running out of ammo use a infinite ammo plugin to go with it and if you worry about health use god mode.
No I don't mean that it is broken. I just prefer to have plugins that work a certain way not have these little quirks in them which is more and more difficult to find anymore because of all the roadblocks Valve is placing in the way for developers.
The plugin is fun and certainly has it's uses. I'm just personally not interested in something that requires constant usage of !robot or /robot is all.