> [!IMPORTANT] > The way Cog integrates in your project has been simplified. If you update Cog, please read the [integration guide](#Integrating-Cog-in-your-project). # Cog ## FORK OF ORIGINAL This fork is setup to build as an engine plugin (and most likely also work fine as a regular project plugin) It depends on: [UE_ImGui](https://github.com/Ed94/UE_ImGui) which is a fork of [Vescodes's ImGui](https://github.com/VesCodes/ImGui) for Unreal. This repo no longer has the Imgui libraries they are sourced from the latter's Thirdparty directory. ## Original Readme Cog is a set of debug tools for Unreal Engine built on top of [Dear ImGui](https://github.com/ocornut/imgui) ![Cog](https://github.com/arnaud-jamin/Cog/assets/13844285/21659aea-2cd8-4ef6-b3b0-5795f5f3246b) - [Video](https://www.youtube.com/watch?v=ea5hz3cFcMM) - [Sample Executable (Windows)](https://drive.google.com/file/d/1T7jQFoZ5rd6goBtDH-FCbjn6Kr1RzUCE/view?usp=sharing) (500 MB) Cog provides: - ImGui windows to inspect and configure various Unreal systems (Core Engine, Enhanced Inputs, Gameplay Abilities, AI) - Window management with persistent configuration and layouts. - C++ and Blueprint functions to log and debug draw within Log Categories. - Control over the server regarding debug draw, logging, spawning, cheats. - NetImgui support to ease the debugging of game server. General Info: - Cog can be used both in editor and package builds. It is disabled by default on shipping builds. - Press the `[F1]` key or use the `Cog.ToggleInput` console command to open the ImGui Main Menu. - Many windows display their contents based on a selected actor. The selector actor can be chosen using the `Engine/Selection` window or widget. - Widgets such as Stats (FPS, Ping), Time Scale, Actor Selection, Console, can be added in the main menu bar from the `Window/Widgets` menu. ## Cog Windows ### Abilities Displays the gameplay abilities of the selected actor. ![Abilities](https://github.com/user-attachments/assets/b332cf3a-9fee-408f-a86e-157c513c0ee2) - Click the ability checkbox to force its activation or deactivation. - Right-click an ability to remove it, or open/close the ability separate window. - Use the 'Give Ability' menu to manually give an ability from a list defined in a Data Asset. --- ### Actions Displays the state of Input Action. ![Actions](https://github.com/user-attachments/assets/e4b60f69-efa0-4a23-b78e-9f261e5f78f5) - Can be used to inject inputs to help debugging, as loosing window focus when breaking in the code doesn't affect the state of injected inputs unlike real inputs. https://github.com/user-attachments/assets/2497900e-d2d9-4af9-abef-44f7f31c2726 --- ### Attributes Displays the gameplay attributes of the selected actor. ![Attributes](https://github.com/user-attachments/assets/ff010ac5-d8e5-44ca-b46f-263c45a0fc47) - Attributes can be sorted by name, category or attribute set. - Attributes with the Current value greater than the Base value are displayed in green. - Attributes with the Current value lower than the Base value are displayed in red. - Use the options 'Show Only Modified' to only show the attributes that have modifiers. --- ### Behavior Tree Displays the behavior tree of the selected actor. ![Behavior Tree](https://github.com/arnaud-jamin/Cog/assets/13844285/c799e85f-b641-4d6f-9476-54a5cbd73c65) --- ### Blackboard Displays the blackboard of the selected actor. ![Blackboard](https://github.com/arnaud-jamin/Cog/assets/13844285/649d46d5-386c-4990-9f45-e4eb95a6b81a) --- ### Build Info Display the build information such as the build version, changelist, date, target, and so on. ![image](https://github.com/user-attachments/assets/b0383dea-a372-4ce2-94e2-6e1f9d3d6807) --- ### Cheats Used to apply cheats to the selected actor. ![Cheats](https://github.com/user-attachments/assets/e3bbf157-904f-40e9-a0bf-e8152ff24af4) - Cheats are replicated to the game server to be executed. - Key modifiers can be used to change which actor should be affected by the cheat: - `[CTRL]` Apply the cheat to the controlled actor - `[ALT]` Apply the cheat to the allies of the selected actor - `[SHIFT]` Apply the cheat to the enemies of the selected actor - Optionally, cheats applied to the local player character are automatically reapplied. ![Cheats Settings](https://github.com/user-attachments/assets/006c4cf0-34e2-4e0d-8be7-be27db8796aa) - Cheats can be defined in a Data Asset. Cog provide two default cheat execution (Apply Effect, Activate Ability). - Cheat executions can be defined in blueprint. ![Cheats Asset](https://github.com/user-attachments/assets/46a14b89-ebab-4628-b97b-e5ccd2b63576) --- ### Collisions Tester Used to test collision queries ![Collisions Tester](https://github.com/arnaud-jamin/Cog/assets/13844285/12f7cb7e-13c9-4eed-8ea4-f3eb7475cf34) ![Collisions Tester](https://github.com/arnaud-jamin/Cog/assets/13844285/4d01fd01-d0b3-41a7-9344-662f190ebaf0)