View Single Post
Author Message
Peace-Maker
SourceMod Plugin Approver
Join Date: Aug 2008
Location: Germany
Old 08-07-2011 , 19:12   [CS:S/CS:GO] Bot Mimic - Record your movements (Version 2.1 updated 02.10.2014)
Reply With Quote #1

Bot Mimic 2

Inspired by sega74rus' Skill AWP script, this plugin will let you record your movements and have bots replay it.

This plugin is on github: https://github.com/peace-maker/botmimic

This is primarily for clans to show their tactics or setting up bots to do movements, they'd never do themselves.
Imagine you're recording yourself jumping past the double doors at dust2 several times and spawn some CT bots doing the same. You're able to improve your awp skills as T now, trying to hit those fast jumpers through the double doors. sega74rus created a video (using his plugin).

It's pretty awesome to see a bot bunnyhopping.. (or this)

Details
The recordings are saved per map in sourcemod/data/botmimic/%CATEGORY%/map_name/%SUBDIR%/%TIMESTAMP%.rec
The subdirectory can be omitted, the default category is "default". The menu plugin doesn't use any subdirectories, they are to be used by other plugins recording players using the provided natives to organize their data.

Usage
All you have to do is type /mimic in chat to open the menu and start to record. All* movements you're performing from now on are stored. When you're done, use the menu or type /stoprecord to stop recording. You can also pause and resume recording if you need a short break.
Now you're able to select an existing bot or add a new bot to mimic your recorded movements.

To organize your records, you can create categories and record replays into them. If you don't choose a category from the menu, they'll be stored in the "default" category.

You can save bookmarks while recording (sm_savebookmark) and jump to them while a player is playing back the record easily through the menu.

* silencers, weapon firemodes and reloadings aren't saved yet. Also health, armor and ammo aren't, since it's primarily for movement capturing! Bots are given a new weapon with default ammo when switching to it the first time during record.

The botmimic core plugin doesn't do anything by itself, but provides the interface for other plugins to manage replays and handles the recording logic.
The botmimic_menu plugin provides the admin menu integration and admin commands described above.
The botmimic_training plugin is an example to add visual output when hitting replaying bots.

Optional DHooks dependency
Bot Mimic uses DHooks to hook Teleport on clients. This allows for recording any teleportation triggered by the map or any other way, which is useful for e.g. bhop maps, where you're teleported somewhere, when you hit the ground.
To avoid strange behaviour I really recommend to install DHooks, it's not required though.

Commands
As already mentioned there are 2 admin commands in the botmimic_menu plugin (config flag):
  • sm_mimic - Opens the bot mimic menu
  • sm_stoprecord - Stops your current record
  • sm_savebookmark - Saves a bookmark with the given name in the record the target records. Usage: sm_savebookmark <name|steamid|#userid> <bookmark name>
ConVars
  • sm_botmimic_version - ...
  • sm_botmimic_snapshotinterval - Save the position of clients every x ticks. This is to avoid bots getting stuck in walls during a long playback and lots of jumps. (Default: 10000)
  • sm_botmimic_respawnondeath - Respawn the bot when he dies during playback? (Default: 1)
  • botmimic_training plugin:
    • sm_botmimic_showdamage - Show damage and hitgroup when hitting a mimicing bot? (Default: 1)
    • sm_botmimic_playhitsound - Play a sound when hitting a mimicing bot? (Default: 1)
API
Spoiler


Requirements
  • To run the plugin:
    • SDK Hooks (old thread, included in SourceMod 1.5+)
    • Optionally (recommened): DHooks
  • To compile the plugin (for developers):

Installation
Just drag&drop the botmimic.smx and botmimic_menu.smx into the plugins folder of your sourcemod install. If you want to use the training features, copy the botmimic_training.smx too.

Known issues
Bots get out of sync with the original movement when the recording player did a lot of duck-jumps. The bot will jump a little bit lower which might cause him to get stuck on edges and just randomly replay movement in the wrong place of the map. Try setting sm_botmimic_snapshotinterval to something lower like 1000 or 500. This won't fix broken already recorded replays, but help recover in future recordings.
You can use this script to debug the record files.

Changelog
Spoiler



Credits

The plugin was entirely rewritten in version 2.0. Demos recorded with Bot Mimic 1 aren't compatible with the new version! The plugin is using a binary file format now instead of an ascii based one. This reduces file size drastically!
There is currently no way to convert old records to the new format.
Attached Files
File Type: zip botmimic2_1.zip (78.5 KB, 3177 views)
__________________

Last edited by Peace-Maker; 07-09-2015 at 11:44. Reason: Updated to 2.1
Peace-Maker is offline