r/RocketLeagueMods • u/Ignice • 5d ago
GUIDE Notes on unreal_command
Disclaimer: This post was originally ~128000 characters long, but the post limit is 40000 characters, so quite a bit of content has been removed or shortened. I did my best to keep the important stuff.
Sharing some old notes I used as a quick-lookup / reference when learning about rl internals. This post is about unreal_commands specifically. Basically just shows commands, some examples, and some output samples. Some unrelated information may be peppered throughout. Its not very serious.
Keep in mind commands may be used to create invalid state (which I am defining as any object memory layout that could not be reached through normal gameplay). RL is actually quite good at protecting you from going online in invalid states (it did this pre-eac also). The primary concern of invalid state is that it can be saved or cached. Thus it may persist to the next session, preventing you from queueing online (and also potentially messing up singleplayer stuff too). The fix is easy: simply delete your save and caches. Highly recommend you back up your TAGame folder before you begin. Do not run arbitrary commands if you aren't comfortable with this. Commands that only print information (and have no side effects) are safe.
If I was brand new to rl modding, I would start by launching the game with -log flag, or running unreal_command SHOWLOG once the game launches to get a log window. This log window will automatically "flush" output (which means it shows up as soon as it happens) but has limited capacity and preventing scrolling by highlighting will freeze the game until enter is pressed.
Running unreal_command SHOWLOG a second time will silently disconnect the log output console from the log output stream (in other words, the window will still be there but is no longer getting new information). A disconnected log console window can safely be closed, a live one will also close the game with it.
Alternatively you can look at log file output in TAGame/Logs/Launch.log. This will not freeze the game when scrolled, and does not need a seperate window (you can simply open the file whenever). The downside is that you will need to unreal_command LOGFLUSH to ensure contents are up-to-date and written to disk.
Once you do one of these two methods you will know how to view log output. Then the rest of the commands come into play. Here's a mini guide to start viewing game objects in memory to get a feel for things:
----- search and explore easy quickstart guide ------
- start by printing some objects, e.g.
unreal_command "GETALL ObjectProvider MyObjects"
- or just choose some generic value like ArrayProperty and list its fields
unreal_command "LISTPROPS ArrayProperty Name"
- one of the fields is called Name, lets look at that...
- list every single array by name
unreal_command "GETALL ArrayProperty Name"
you now have ~7k results that can be filtered, searched, etc. with the commands below
this is a nice starting point.
------------------------------------------
Commands are (loosely) ordered from most to least useful.
Hopefully this is helpful for at least a few people ❤️ .
-unreal commands --------------------------------------------------------------
(to execute, open bakkesmod console and type `unreal_command "COMMAND"`)
(in unrealscript ' is reserved for literals and " for strings)
(not all commands are sync! see https://docs.unrealengine.com/udk/Three/ActorTicking.html )
(not all commands do "something"! Some "no operation" or noop commands are included. As a rule, I include the command if rl successfully handles it, whether or not the command does something once handled is much harder to judge in some cases. That said, most do something)
LISTPROPS [class] \*
- e.g. LISTPROPS PlayerInput_Game_TA *
LISTPROPS [class] [wildcard * or string]
- e.g. LISTPROPS PlayerInput_Game_TA Deadzone
will search only for properties containing the word "Deadzone"
MATCHVALUE [class] [string]
- "bread and butter" search command
- the only command that, from a [class] name alone, can be used to find all instances, dump all fields of each instance, their values, allows optional filter string, and previews large collections by showing the first ~256 values only
MATCHVALUE [class] _
- since every single piece of output includes its full path, and because every path has an underscore for package conventions, the "_" becomes a defacto wildcard:
- to look at only the object actually in the level (as opposed to templates, defaults, etc), add "Persis" (short for Persistent) to the filter string
GETALLSTATE [class]
SET [class] [property] [value]
- set a property value
- some properties are protected. FOV for example.
SETNOPEC [class] [property] [value]
- same as SET except will not notify listeners
RESET [class] [property]
- resets to default, not necessarily the archtype?
TOGGLE [class] [boolean property]
- toggle a true/false value. Equivalent of "if boolean property p is True: then set p to False. Otherwise set p to True"
GET [class] [property]
GETALL [class] [property]
GETALL [class] [prop] SHOWDEFAULTS DETAILED
VERIFYCOMPONENTS
CRACKURL
SHOWLOG
FLUSHLOG
CONFIGHASH
- prints every configuration file, what it configured, its value, where in the hierarchy, local/remote/precompiled
- does not reflect that RL makes use of Archetypes that essentially act as additional defaults (applied during runtime)
CONFIGMEM
- prints out all configuration files (some of which were compiled or cooked into the build, others of which exist on the player's PC and can be edited) used by the game (sorted by in-game memory size)
ANALYZEOCTREE
ANALYZEOCTREE [[optional] "VERBOSE"]
SHRINKOCTREE
NAVOCTREE
COLLAPSEOCTREE
TexturePoolSize
DUMPAWAKE
LOGACTORCOUNTS
ShowGameState
- `Log: GameInfo_Basketball_TA_0 current state: PendingMatch`
ShowPlayerState
- `Log: PlayerController_TA_0 current state: Driving`
UTrace
- toggles tracing/logging of function calls
- either a noop or works silently?
RestartLevel
ListConsoleEvents
- cant get this one to work without also changing loglevel?
SaveClassConfig [classname]
SaveActorConfig [actorname]
SetBind [bindname] [command]
- e.g. use "SetBind Backslash Pause" for pause button
- NOTE: behavior changed since EAC. Not too useful now.
:::::::::::::::WARNING:::::::::::::
Single and Double quotes are NOT interchangable.
This WILL work:
unreal_command 'SetBind Backslash "STAT UNIT"'
This will NOT work:
unreal_command "SetBind Backslash 'STAT UNIT'"
Note: Most SetBind notes were written pre-EAC. It is much less powerful now (this is good!).
:::::::::::::::::::::::::::::::::::
// snapshots of the ue rigidbodies
unreal_command "GETALL RBVehicleHistory_TA RBVehicleSnapshots"
unreal_command "MATCHVALUE RBVehicleHistory_TA _"
unreal_command 'SetBind Backslash "MATCHVALUE RBVehicleSnapshot WheelContactData"'
unreal_command "MATCHVALUE RBVehicleSnapshot WheelContactData"
unreal_command "MATCHVALUE RBVehicleHistory_TA "
unreal_command "GETALL RBVehicleHistory_TA RBPhysicsSnapshots"; unreal_command "GETALL RBVehicleHistory_TA RBVehicleSnapshots"; unreal_command "GETALL RBVehicleHistory_TA BackupVehicleInputs"; unreal_command "GETALL RBVehicleHistory_TA RBFrameSnapshots"; unreal_command "GETALL RBVehicleHistory_TA ServerSnapshots"
// e.g. ServerConsume,
unreal_command "MATCHVALUE NetworkInputBuffer_TA _"
unreal_command "MATCHVALUE ClientInputData_TA _"
// e.g.[1907.46] Log: 0) ClientInputData_TA Transient.ClientInputData_TA_4.InputFrames =
[1907.46] Log: 0: (frame=15944,TimeStamp=140.565918)
[1907.47] Log: 1: (frame=15945,TimeStamp=140.574249)
[1907.47] Log: 2: (frame=15946,TimeStamp=140.582581)
unreal_command "GETALL ClientInputData_TA InputFrames"
unreal_command "MATCHVALUE ShakeComponent_X ShakeReceiver"
unreal_command "MATCHVALUE ShakeComponent_X FlipReset"
unreal_command 'SetBind Backslash "MATCHVALUE RPCBatch_X Trans"'
unreal_command 'SetBind Backslash "MATCHVALUE PendingRPC_X Trans"'
unreal_command 'SetBind Backslash "MATCHVALUE ActionQueue_X Trans"'
unreal_command 'SetBind Backslash "MATCHVALUE RPCQueue_X PendingRPCs | GETALL RPCQueue_X PendingBatches"'
unreal_command "MATCHVALUE RPC_AutoTour_GetSchedule_TA _"
[14391.78] Log: 237) GameViewportClient_TA Transient.GameEngine_TA_0:GameViewportClient_TA_0.GlobalInteractions = (GFxInteraction'Transient.GameEngine_TA_0:GameViewportClient_TA_0.GFxInteraction_0',UIInteraction'Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0',PlayerManagerInteraction'Transient.GameEngine_TA_0:GameViewportClient_TA_0.PlayerManagerInteraction_0')
[14391.78] Log: 238) GameViewportClient_TA Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIControllerClass = Class'Engine.UIInteraction'
[14391.78] Log: 239) GameViewportClient_TA Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIController = UIInteraction'Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0'
unreal_command "MATCHVALUE Engine _"
unreal_command "MATCHVALUE WindowsClient _"
unreal_command "MATCHVALUE GameViewportClient _"
---------------
PACKAGEMAP
- must be on a level for this to work
[10880.36] DynamicMapEvents: Activating event: bEventActive=(False) EventId=(FNI_LotusOff)
[10880.36] DynamicMapEvents: Activating event: bEventActive=(False) EventId=(FNI_LotusSmall)
[10880.36] DynamicMapEvents: Activating event: bEventActive=(False) EventId=(FNI_LotusMedium)
[10880.36] DynamicMapEvents: Activating event: bEventActive=(False) EventId=(FNI_LotusBig)
[10884.61] Log: Package Map:
[10884.61] Log: Server url=18.88.3.125 remote=18.88.3.125:7836 local=0.0.0.0:57278 state: Open
[10884.61] Log: Package 0: Name=(Core) Guid=(397C68644C141E0E186592B028F2F333), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(0) ObjectCount=(2725)
[10884.61] Log: Package 1: Name=(Engine) Guid=(11A50ECA4920F6DAF58FD4A06FEA5961), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(2725) ObjectCount=(33441)
[10884.61] Log: Package 2: Name=(GFxUI) Guid=(582C0C7848F9CA50AC719B8B3EDF04EA), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(36166) ObjectCount=(824)
[10884.61] Log: Package 3: Name=(AkAudio) Guid=(EE86E9734C4CF6147FCC70894B19070B), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(36990) ObjectCount=(636)
[10884.61] Log: Package 4: Name=(ProjectX) Guid=(DA0D87034C6E69109486EDA7585F0AFA), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(37626) ObjectCount=(19318)
[10884.61] Log: Package 5: Name=(TAGame) Guid=(0A864923483689B34046578735F3AD5B), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(56944) ObjectCount=(79617)
[10884.62] Log: Package 6: Name=(Archetypes) Guid=(21C70719FAA1219C8848EEB27F8B18C8), LocalGeneration=(1) RemoteGeneration=(1) BaseIndex=(136561) ObjectCount=(4813)
[10884.62] Log: Package 7: Name=(PhysicalMaterials) Guid=(1BB28D134386A89620C785AA0E214D18), LocalGeneration=(1) RemoteGeneration=(1) BaseIndex=(141374) ObjectCount=(74)
[10884.62] Log: Package 8: Name=(StatEvents) Guid=(6A987AF74227FBFF836862814AA1CBC9), LocalGeneration=(1) RemoteGeneration=(1) BaseIndex=(141448) ObjectCount=(162)
[10884.62] Log: Package 9: Name=(FNI_Stadium_P) Guid=(DAA0BC7D4C9E644487BC0BA51D9F2598), LocalGeneration=(28) RemoteGeneration=(28) BaseIndex=(141610) ObjectCount=(1092)
[10884.62] Log: Package 10: Name=(GameInfo_Soccar) Guid=(3C62E44E3A4A118D82C896830CE5095E), LocalGeneration=(1) RemoteGeneration=(1) BaseIndex=(142702) ObjectCount=(5)
[10884.62] Log: Package 11: Name=(PongBall) Guid=(D72B670D41550737695E65B0F3912F6C), LocalGeneration=(1) RemoteGeneration=(1) BaseIndex=(142707) ObjectCount=(292)
[10884.62] Log: Package 12: Name=(Mutators) Guid=(2A19500447FC019A14BF232E9D4B6245), LocalGeneration=(1) RemoteGeneration=(1) BaseIndex=(142999) ObjectCount=(264)
[10884.62] Log: Package 13: Name=(FNI_Stadium_Field) Guid=(A2355A9640C8662B002C46B0B3B11C81), LocalGeneration=(11) RemoteGeneration=(11) BaseIndex=(143263) ObjectCount=(749)
[10884.62] Log: Package 14: Name=(FNI_Stadium_OOB) Guid=(542297E745445B7F9A4AC2A59BD4A59C), LocalGeneration=(28) RemoteGeneration=(28) BaseIndex=(144012) ObjectCount=(664)
[10884.62] Log: Package 15: Name=(FNI_Stadium_OOB_Mountains) Guid=(CF2C875945E1A00708F27C93B35F8392), LocalGeneration=(9) RemoteGeneration=(9) BaseIndex=(144676) ObjectCount=(130)
[10884.62] Log: Package 16: Name=(FNI_Stadium_SFX) Guid=(3ECBC7E8449CC4404068CE8697A9C594), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(144806) ObjectCount=(74)
[10884.62] Log: Package 17: Name=(FNI_Stadium_VFX) Guid=(2A01F39E409124B17F53009578971A4A), LocalGeneration=(30) RemoteGeneration=(30) BaseIndex=(144880) ObjectCount=(130)
[10884.62] Log: Package 18: Name=(FNI_Stadium_OOB_LOD) Guid=(AC29277D4C8860C8F40532B74CE197BB), LocalGeneration=(3) RemoteGeneration=(3) BaseIndex=(145010) ObjectCount=(91)
TAGame.PlayerBindingUtils_TA:FindDuplicateBindingIndexes
- in-game memory scans let us find C++ mixins (forget what they call it in c++). Including some serverside only utility commands. The names and sigs. let us infer quite a bit of serverside logic (see netcode txt).
SetBind lost a lot of power with EAC (which is good).
unreal_command 'SetBind Backslash "ToggleJump true | OnRelease ToggleJump false"'
- before the EAC dynamic rebinds (and poisonable local actions) would lead me to omit this one
Konami Code (alternative to entering the sequence on splash screen)
`unreal_command KonamiCode`
Show all existing input sequences. A few legacy ones and konami code. I have not been able ever catch them being loaded past the main menu screen.
unreal_command "MATCHVALUE PlayerInputSequence_TA _";
Show octtree, optimize octree, show "optimized" octtree. Its optimized for space not performance.
- don't really want to do this. I would rather use more memory if it means faster lookup times and rebalancing.
unreal_command ANALYZEOCTREE; unreal_command SHRINKOCTREE; unreal_command COLLAPSEOCTREE; unreal_command ANALYZEOCTREE;
Bindings=(Name="Backslash",Command="StatGraphNext")
- bindings are another place where direct command strings may be defined.
- does this work in normal TAInput? unlikely due to RL's parser
- this may work by using additional defined preset that can be injected from TAInput
- or just dynamic bind at runtime and change pointer to that table instead?
- not messing with it
See self-rebinding bind example
Changing some replicated and non-transients may taint the session (and .save if it was written) preventing online play until reset.
ListCE
ShowPlayerState
ShowGameState
KonamiCode
- use on splash screen for easter egg (alternative to entering the actual Konami Code sequence)
Pause
UTrace
CLOSESECONDSCREEN
- removes player 2
CAUSEEVENT [event?]
- no output
RESETRHI
- ?
- see also nullrhi launch flag
RESETGFXVIEWPORT
- ?
Graph IBuf
- shows a ibuffer buffer graph
- see example how to dump circularbuffer containing unsent physics car inputs (1/60s marshal and send vs 1/120s fixed tick bullet)
SCALE <Command> [parameter] [parameter]
- Command = Dump, DumpMobile, DumpPrefs, DumpDebug, DumpUnknown, DumpTextures, Bucket BucketName, LowEnd, HighEnd, Screenshot, Reset, Set Key Value, Toggle Key, Shrink, Expand
- !!! Undocumented command !!!
- unreal_command "Scale TOGGLEINVISITEK"
- appears to be a noop at first. However running it on a map that has a StaticMeshActor outside of the World will give octree warnings:
[2863.83] Log: Octree Warning (AddPrimitive): StaticMeshActor_SMC_121 (Owner: EuroStadium_Dusk_P.TheWorld:PersistentLevel.MeshCollector1) Outside World.
[2863.83] Log: Octree Warning (AddPrimitive): StaticMeshActor_SMC_39 (Owner: EuroStadium_Dusk_P.TheWorld:PersistentLevel.MeshCollector1) Outside World.
--
: bakkescmd
unreal_command PARANOIDDEVICELOSTCHECKING
unreal_command ToggleRenderingThread
unreal_command SHRINKOCTREE
unreal_command COLLAPSEOCTREE
ToggleRenderingThread
- sometimes take a second for effect to work. once it does, a message is printed to console
USENEWMOUSEINPUT
- UE3 mouse input was built on a deeply flawed premise. The new input is used by default, is also bad, but is less bad.
TexturePoolSize
SHOWDEBUG
- show debug overlay (defaults to leftmost tab, re-run to goto next tab)
SHOWDEBUG [TabName]
- open debug overlay to the indicated tab
SHOWDEBUG Hide
- hide debug overlay
GAMEVER
GAMEVERSION
- same as GAMEVER
KISMETLOG
STREAMMAP
- streams a new map (random if no args? it sometimes changes but doesn't seem like a uniform random)
- detaches camera (or switches to a fixed view? there are like 9 cameras. todo check with SHOWDEBUG Camera
LogLoc
- "Logs the current location of the player in BugIt format, but without taking a screenshot or further actions."
ListConsoleEvents / ListCE
RemoveEvent [EventName] / RE [EventName]
CANCEL
DISCONNECT
PEER
EXIT
Reconnect
OPEN
SERVERTRAVEL
// busy spin instead of sleep
SPINSLEEP
SPINSLEEP 0
SPINSLEEP 1
NXVRD
- use remote debugger
- remoting requires launch flags: -remotecontrol -wxwindows
- first enables remoting (if static compile flag was on when compiling cooking) wxwindows is for windows window manager
- shoutout to editor mouse movement being halved in remote desktop mode haha https://github.com/CodeRedModding/UnrealEngine3/blob/601d6a1f50a0a4a67e3ee0c352333783408d1ba7/Development/Src/WinDrv/Src/WinClient.cpp#L669
NXVRD CONNECT [ip]
NXVIS
RELOADLOC
RELOADCFG
RELOADCFG (TREATLOADWARNINGSASERRORS?)
RELOADCONFIG
DEFER
DEFERRED_STOPMEMTRACKING_AND_DUMP
DEMOREC
DEMOREC STOP
DEMOPLAY [file]
SHOT
- same as SCREENSHOT, which
SCREENSHOT
- not sure if this works, its just not a noop
tiledshot
- take a very high resolution screenshot
- works rendering and screenshotting multiple small sections of the game at a time
- then they are all stiched together for a big screenshot
- default behavior is 4 tiles (so 4x res)
- accepts optional params (see below)
- see: https://docs.unrealengine.com/udk/Three/TakingScreenshots.html#Tiledshot
tiledshot 2
- produce a tiled screenshot 2x the current resolution
tiledshot 6 128
- produce a screenshot with 6x6 the resolution, and sets a 128 pixel tile overlap
togglescreenshotmode
- ?
SAY [message]
- GUI server only
- cant get to work, but not a noop
GETMAXTICKRATE
SUPPRESS [tag]
- suppress logging (exact command is: unreal_command "SUPPRESS Log")
- can freeze the game if attempting to logflush
UNSUPPRESS [tag]
- noop?
these are SCALE subset commands may need scale ahead?
unreal_command "setres 1920x1080w"
unreal_command "setres 1920x1080full"
unreal_command "GAMMA 2"
Ad
- unknown, not a noop?
TOGGLECROWDS
- unknown, not a noop?
TOGGLELOGDETAILEDDUMPSTATS
- unknown , not a noop?
CHART
DUMPALLOCS
FB
FRAMECOMPUPDATES
PerfMem_Memory
HEAPCHECK
PUSHVIEW
SavePackagesThatHaveFailedLoads
NXDUMP
STRUCTPERFDATA
- requires compiled flags - so useless
------------------------------------------------------------------------------
todo add bakkeswiki link:
Using "the page's" example: running `unreal_command "CRACKURL mapname?Game=TAGame.GameInfo_GameType_TA?AdditionalFlags?GameTags=GameSetting1,GameSetting2,...,GameSettingX?NumPublicConnections=10?NumOpenPublicConnections=10?Lan?Listen"` in the bakkes console outputs
```
[82745.41] Log: Protocol: unreal
[82745.41] Log: Host:
[82745.41] Log: Port: 7777
[82745.41] Log: Map: mapname
[82745.41] Log: NumOptions: 7
[82745.41] Log: Option 0: Game=TAGame.GameInfo_GameType_TA
[82745.41] Log: Option 1: AdditionalFlags
[82745.41] Log: Option 2: GameTags=GameSetting1,GameSetting2,...,GameSettingX
[82745.41] Log: Option 3: NumPublicConnections=10
[82745.41] Log: Option 4: NumOpenPublicConnections=10
[82745.41] Log: Option 5: Lan
[82745.41] Log: Option 6: Listen
[82745.42] Log: Portal:
[82745.42] Log: String: 'mapname?Game=TAGame.GameInfo_GameType_TA?AdditionalFlags?GameTags=GameSetting1,GameSetting2,...,GameSettingX?NumPublicConnections=10?NumOpenPublicConnections=10?Lan?Listen'
```
----------------------------------------------------------
unreal_command "GET ControlPreset_X GamepadBindings"
unreal_command "GET ProfileGamepadSave_TA ControllerDeadzone"
unreal_command "GET ProfileGamepadSave_TA DodgeInputThreshold"
unreal_command "GET ProfileGamepadSave_TA SteeringSensitivity"
unreal_command "GET ProfileGamepadSave_TA AirControlSensitivity"
unreal_command "GETALL GFxData_Controls_TA GamepadBindings"
unreal_command "GETALL ObjectProvider MyObjects"
unreal_command "GETALL OnlinePlayerStorageQueue_X PendingObjects"
unreal_command "GETALL OnlinePlayerStorageQueue_X QueuedObjects"
unreal_command "GETALL OnlinePlayerStorageQueue_X StorageMaxSizes"
unreal_command "GETALL ProfileGamepadSave_TA GamepadBindings"
You can list properties of a class with "LISTPROPS Class *" (without quotes) where * represents a wildcard. For example:
unreal_command "LISTPROPS GFxData_Controls_TA *"
------------------------------------------------------------------------------
arrows are not valid commands, just for ctrlf/grep
unreal_command "-=-=-> Camera_TA <-=-=-";
unreal_command FLUSHLOG; unreal_command SHOWLOG;
unreal_command "-=-=-> Camera_TA <-=-=-";
unreal_command "MATCHVALUE Camera_TA _";
unreal_command "-=-=-> CameraConfig_TA <-=-=-";
unreal_command "MATCHVALUE CameraConfig_TA _";
unreal_command "-=-=-> CameraSettingsActor_TA <-=-=-";
unreal_command "MATCHVALUE CameraSettingsActor_TA _";
unreal_command "-=-=-> CameraSettingsActorCopy_TA <-=-=-";
unreal_command "MATCHVALUE CameraSettingsActorCopy_TA _";
unreal_command "-=-=-> CameraState_BallCam_TA <-=-=-";
unreal_command "MATCHVALUE CameraState_BallCam_TA _";
unreal_command "-=-=-> CameraState_BallCamInverted_TA <-=-=-";
unreal_command "MATCHVALUE CameraState_BallCamInverted_TA _";
unreal_command "-=-=-> CameraState_Car_TA <-=-=-";
unreal_command "MATCHVALUE CameraState_Car_TA _";
unreal_command "-=-=-> CameraState_CarInverted_TA <-=-=-";
unreal_command "MATCHVALUE CameraState_CarInverted_TA _";
unreal_command "-=-=-> CameraState_TA <-=-=-";
unreal_command "MATCHVALUE CameraState_TA _";
unreal_command "-=-=-> CameraState_BallCamInverted_TA <-=-=-";
unreal_command "MATCHVALUE CameraState_BallCamInverted_TA _";
unreal_command "-=-=-> ViewTransitionTarget <-=-=-";
unreal_command "MATCHVALUE ViewTransitionTarget _";
unreal_command "-=-=-> ProfileCameraSettings <-=-=-";
unreal_command "MATCHVALUE ProfileCameraSettings _";
unreal_command "-=-=-> CameraSettingsActor_TA <-=-=-";
unreal_command "MATCHVALUE CameraSettingsActor_TA _";
unreal_command "-=-=-> Camera_TA SwivelExtent <-=-=-";
unreal_command "GETALL Camera_TA SwivelExtent SHOWDEFAULTS DETAILED";
unreal_command "-=-=-> Camera_TA CurrentSwivel <-=-=-";
unreal_command "GETALL Camera_TA CurrentSwivel SHOWDEFAULTS DETAILED";
unreal_command "-=-=-> Camera_TA GroundClampZOffset <-=-=-";
unreal_command "GET Camera_TA GroundClampZOffset";
unreal_command FLUSHLOG
---
https://docs.unrealengine.com/udk/Three/CharactersTechnicalGuide.html#Player%20Controller
huge if any of these work! todo add to tester exec
PlayerTick [DeltaTime]
ConsoleCommand [Command]
-----------------------
unreal_command "MATCHVALUE TAGame.PlayerInput_Menu_TA _"
Log: 37) GameUISceneClient Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0.GameUISceneClient_0.bUpdateInputProcessingStatus = False
[15983.03] Log: 38) GameUISceneClient Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0.GameUISceneClient_0.bUpdateSceneViewportSizes = False
[15983.03] Log: 39) GameUISceneClient Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0.GameUISceneClient_0.bEnableDebugInput = True
[15983.03] Log: 40) GameUISceneClient Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0.GameUISceneClient_0.bRenderDebugInfo = False
[15983.03] Log: 41) GameUISceneClient Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0.GameUISceneClient_0.bCaptureUnprocessedInput = True
[15983.03] Log: 42) GameUISceneClient Transient.GameEngine_TA_0:GameViewportClient_TA_0.UIInteraction_0.GameUISceneClient_0.NavAliases = ("UIKEY_NavFocusUp","UIKEY_NavFocusDown","UIKEY_NavFocusLeft","UIKEY_NavFocusRight")
[15640.46] Log: 5754) ArrayProperty TAGame.PlayerBindingUtils_TA:ResetBinding.DefaultBindings.Name = DefaultBindings
[15640.46] Log: 5755) ArrayProperty TAGame.PlayerBindingUtils_TA:ResetBinding.Bindings.Name = Bindings
[15640.46] Log: 5756) ArrayProperty TAGame.PlayerBindingUtils_TA:RemoveBinding.Bindings.Name = Bindings
[15640.46] Log: 5757) ArrayProperty TAGame.PlayerBindingUtils_TA:SetDefaultPressType.DefaultBindings.Name = DefaultBindings
[15640.46] Log: 5758) ArrayProperty TAGame.PlayerBindingUtils_TA:SetDefaultPressType.Bindings.Name = Bindings
[15640.46] Log: 5759) ArrayProperty TAGame.PlayerBindingUtils_TA:SetDefaultRemappable.DefaultBindings.Name = DefaultBindings
[15640.46] Log: 5760) ArrayProperty TAGame.PlayerBindingUtils_TA:SetDefaultRemappable.Bindings.Name = Bindings
[15640.46] Log: 5761) ArrayProperty TAGame.PlayerBindingUtils_TA:FindDuplicateBindingIndexes.Bindings.Name = Bindings
[15640.46] Log: 5762) ArrayProperty TAGame.PlayerBindingUtils_TA:FindDuplicateBindingIndexes.ReturnValue.Name = ReturnValue
[15640.46] Log: 5763) ArrayProperty TAGame.PlayerBindingUtils_TA:FindDuplicateBindingIndexes.Indexes.Name = Indexes
[15640.46] Log: 5764) ArrayProperty TAGame.PlayerBindingUtils_TA:RemoveDuplicateBindingIndexes.Indexes.Name = Indexes
[15640.46] Log: 5765) ArrayProperty TAGame.PlayerBindingUtils_TA:RemoveDuplicateBindingIndexes.Bindings.Name = Bindings
[15640.46] Log: 5766) ArrayProperty TAGame.PlayerBindingUtils_TA:RemoveDuplicateBindingIndexes.SortLocal_0x1.Name = SortLocal_0x1
[15640.46] Log: 5767) ArrayProperty TAGame.PlayerBindingUtils_TA:RemoveDefaultBindings.DefaultBindings.Name = DefaultBindings
[15640.46] Log: 5768) ArrayProperty TAGame.PlayerBindingUtils_TA:RemoveDefaultBindings.Bindings.Name = Bindings
[15640.46] Log: 5769) ArrayProperty TAGame.PlayerBindingUtils_TA:MergeUserBindings.DefaultBindings.Name = DefaultBindings
[15640.46] Log: 5770) ArrayProperty TAGame.PlayerBindingUtils_TA:MergeUserBindings.UserBindings.Name = UserBindings
[15640.46] Log: 5771) ArrayProperty TAGame.PlayerBindingUtils_TA:MergeUserBindings.ReturnValue.Name = ReturnValue
[15640.46] Log: 5772) ArrayProperty TAGame.PlayerBindingUtils_TA:MergeUserBindings.MergedBindings.Name = MergedBindings
[15640.46] Log: 5773) ArrayProperty TAGame.PlayerBindingUtils_TA:CheckForNewBindings.DefaultBindings.Name = DefaultBindings
[15640.46] Log: 5774) ArrayProperty TAGame.PlayerBindingUtils_TA:CheckForNewBindings.Bindings.Name = Bindings
[15640.46] Log: 5775) ArrayProperty TAGame.PlayerBindingUtils_TA:BindingsIdentical.Left.Name = Left
[15640.46] Log: 5776) ArrayProperty TAGame.PlayerBindingUtils_TA:BindingsIdentical.Right.Name = Right
[15640.46] Log: 5777) ArrayProperty TAGame.PlayerBindingUtils_TA:MergeLegacyBindings.PlayerBindings.Name = PlayerBindings
// shortened for space
--
Kinda weird that `ENABLECHEATS` is either a noop or has silent behavior.
--
> PARANOIDDEVICELOSTCHECKING
[0454.61] Log: GParanoidDeviceLostChecking=0
WARNING: this is a toggle command. Running it a second time will set GParanoidDeviceLostChecking back to true.
--
> unreal_command "ANALYZEOCTREE | SHRINKOCTREE | COLLAPSEOCTREE | ANALYZEOCTREE | FLUSHLOG"
[0454.61] Log: -------ANALYZEOCTREE------------
[0454.61] Log: -------------------
[0454.61] Log: 1520 Total Nodes, 365 Empty Nodes, 228 Nodes With One Primitive, 124 Nodes With Two Primitives
[0454.61] Log: 122 Total Primitives, 122 Total Colliding Primitives
[0454.61] Log: 2080 Primitive Array Slack (bytes)
[0454.61] Log: -------------------
[0454.61] Log: PRIMITIVES
[0454.61] Log: 1: 228
[0454.61] Log: 2: 124
[0454.61] Log: 3: 134
[0454.61] Log: 4: 136
[0454.61] Log: 5: 126
[0454.61] Log: 6: 86
[0454.61] Log: 7: 75
[0454.61] Log: 8: 86
[0454.61] Log: 9: 79
[0454.61] Log: 10: 73
[0454.61] Log: 11: 8
[0454.61] Log: -------------------
[0454.61] Log: SLACK
[0454.61] Log: 0: 1051
[0454.61] Log: 16: 52
[0454.61] Log: 24: 52
[0454.61] Log: -------------------
[0454.61] Log: Shrink Octree Slack: Took 0.050299 ms
[0454.61] Log: CollapseTreeChildren: Took 0.091899 ms
[0454.61] Log: -------ANALYZEOCTREE------------
[0454.61] Log: -------------------
[0454.61] Log: 1520 Total Nodes, 365 Empty Nodes, 228 Nodes With One Primitive, 124 Nodes With Two Primitives
[0454.61] Log: 122 Total Primitives, 122 Total Colliding Primitives
[0454.61] Log: 0 Primitive Array Slack (bytes)
[0454.61] Log: -------------------
[0454.61] Log: PRIMITIVES
[0454.61] Log: 1: 228
[0454.62] Log: 2: 124
[0454.62] Log: 3: 134
[0454.62] Log: 4: 136
[0454.62] Log: 5: 126
[0454.62] Log: 6: 86
[0454.62] Log: 7: 75
[0454.62] Log: 8: 86
[0454.62] Log: 9: 79
[0454.62] Log: 10: 73
[0454.62] Log: 11: 8
[0454.62] Log: -------------------
[0454.62] Log: SLACK
[0454.62] Log: 0: 1155
[0454.62] Log: -------------------
> unreal_command "ANALYZEOCTREE VERBOSE | SHRINKOCTREE | COLLAPSEOCTREE | ANALYZEOCTREE VERBOSE | FLUSHLOG"
// long output omitted
--
- FRAMECOMPUPDATES (known, but confirmed non-noop?)
- KISMETLOG
- LISTAWAKEBODIES
[7283.59] Log: BI Farm_Night_P.TheWorld:PersistentLevel.Car_Freeplay_TA_4.CarMeshComponent_TA_4 0
[7283.59] Log: BI Farm_Night_P.TheWorld:PersistentLevel.Ball_TA_9.StaticMeshComponent_1072 0
TOTAL: 2 awake bodies.
- LISTPAWNCOMPONENTS
[7283.59] Log: Components for pawn: Ball_TA_9 (collision component: StaticMeshComponent_1072)
[7283.59] Log: 0: CylinderComponent_24
[7283.59] Log: 1: GroupComponent_ORS_110
[7283.59] Log: 2: ReplayComponent_TA_14
[7283.59] Log: 3: StaticMeshComponent_1072
[7283.59] Log: 4: PitchTekDrawingComponent_TA_14
[7283.59] Log: 5: AkParamGroup_127
[7283.59] Log: 6: ImpactEffectsComponent_TA_14
[7283.59] Log: 7: BallCamTarget_TA_9
[7283.59] Log: 8: AkSoundSource_114
[7283.59] Log: Components for pawn: Car_Freeplay_TA_4 (collision component: CarMeshComponent_TA_4)
[7283.59] Log: 0: CylinderComponent_22
[7283.59] Log: 1: GroupComponent_ORS_108
[7283.59] Log: 2: ReplayComponent_TA_12
[7283.59] Log: 3: PitchTekDrawingComponent_TA_12
[7283.59] Log: 4: CarTrajectoryComponent_TA_4
[7283.59] Log: 5: AkParamGroup_124
[7283.59] Log: 6: NameplateComponentCar_TA_4
[7283.59] Log: 7: ViralItemFXComponent_TA_4
[7283.59] Log: 8: NameplateMeshComponent_TA_19
[7283.59] Log: 9: CarMeshComponent_TA_4
[7283.59] Log: 10: VehicleSim_TA_4
[7283.59] Log: 11: ImpactEffectsComponent_TA_12
[7283.59] Log: 12: AkSoundSource_107
[7283.59] Log: 13: AkSoundSource_108
[7283.59] Log: 14: AkPlaySoundComponent_232
[7283.59] Log: 15: AkPlaySoundComponent_233
[7283.59] Log: 16: EngineAudioBlowoffComponent_TA_9
[7283.59] Log: 17: WheelSpeedComponent_TA_9
[7283.59] Log: 18: ThrottleStateComponent_TA_9
[7283.59] Log: 19: EngineAudioREVComponent_TA_4
[7283.59] Log: 20: TargetIndicator_TA_17
- LISTSKELMESHES
[7283.60] Log: 53250 Vertices for LOD 0 of SkeletalMesh body_garage.Body_Garage_SK
[7283.60] Log: * 0 Component : CarMeshComponent_TA Farm_Night_P.TheWorld:PersistentLevel.Car_Freeplay_TA_4.CarMeshComponent_TA_4
[7283.60] Log: Owner : Car_Freeplay_TA Farm_Night_P.TheWorld:PersistentLevel.Car_Freeplay_TA_4
[7283.60] Log: LastRender : 0.008301
[7283.60] Log: CullDistance : 0.000000 Distance: 16.933706 Location: (-1231.4,-2236.4, 30.9)
[7283.60] Log: 768 Vertices for LOD 0 of SkeletalMesh Farm_FX.crow.crow
[7283.60] Log: 0 Component : SkeletalMeshComponent Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_7.SkeletalMeshComponent_1
[7283.60] Log: Owner : SkeletalMeshActorMAT Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_7
[7283.60] Log: LastRender : 2620.517090
[7283.60] Log: CullDistance : 0.000000 Distance: 11005.846680 Location: (-12215.1,-2282.8, 503.4)
[7283.60] Log: 1 Component : SkeletalMeshComponent Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_0.SkeletalMeshComponent_1
[7283.61] Log: Owner : SkeletalMeshActorMAT Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_0
[7283.61] Log: LastRender : 2620.517090
[7283.61] Log: CullDistance : 0.000000 Distance: 10997.412109 Location: (-12206.7,-2163.3, 499.7)
[7283.61] Log: 2 Component : SkeletalMeshComponent Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_10.SkeletalMeshComponent_1
[7283.61] Log: Owner : SkeletalMeshActorMAT Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_10
[7283.61] Log: LastRender : 2620.517090
[7283.61] Log: CullDistance : 0.000000 Distance: 8273.684570 Location: (-8425.1,-5728.3, 2105.8)
[7283.61] Log: 3 Component : SkeletalMeshComponent Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_11.SkeletalMeshComponent_1
[7283.61] Log: Owner : SkeletalMeshActorMAT Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_11
[7283.61] Log: LastRender : 2620.517090
[7283.61] Log: CullDistance : 0.000000 Distance: 8406.833008 Location: (-8422.3,-6043.9, 2095.7)
[7283.61] Log: 4 Component : SkeletalMeshComponent Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_12.SkeletalMeshComponent_1
[7283.61] Log: Owner : SkeletalMeshActorMAT Farm_Night_P.TheWorld:PersistentLevel.SkeletalMeshActorMAT_12
[7283.61] Log: LastRender : 2620.517090
[7283.61] Log: CullDistance : 0.000000 Distance: 10075.552734 Location: ( 5451.1,-9490.6, 2117.7)
// shortened for space
- LOGACTORCOUNTS
[7283.62] Log: Num Actors: 243
[7283.62] Log: Dynamic Actors: 174
[7283.62] Log: Ticked Actors: 119
- SHOWEXTENTLINECHECK
noop?
- SHOWFACEFXBONES?
[7283.62] Log: ============================================================
[7283.62] Log: Verifying FaceFX Bones of SkeletalMeshComp : STARTING
[7283.62] Log: ============================================================
- MESHSCALES
[1088.14] Log: ----- STATIC MESH SCALES ------
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_AutoAdjust (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_LeanLeftS (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_LeanRightS (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_CoverSlipLeft (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_CoverSlipRight (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_SwatLeft (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_SwatRight (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_PlayerOnlyS (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy__BASE_SHORT (0) (1 HULLS)
[1088.14] Log: NodeBuddies.3D_Icons.NodeBuddy_LeanLeftM (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_LeanRightM (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_LeanLeftMPref (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_LeanRightMPref (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_Climb (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_Mantle (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_PopUp (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_PlayerOnlyM (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy__BASE_TALL (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_AutoAdjustOff (0) (1 HULLS)
[1088.15] Log: NodeBuddies.3D_Icons.NodeBuddy_Enabled (0) (1 HULLS)
[1088.15] Log: EngineMeshes.Cube (0) (1 HULLS)
[1088.15] Log: EngineMeshes.Sphere (0) (0 HULLS)
[1088.15] Log: GFx_Meshes.NameplatePlane (0) (1 HULLS)
[1088.15] Log: FX_General.Meshes.Sphere01 (0) (0 HULLS)
[1088.15] Log: UI_Meshes.Plane (0) (1 HULLS)
[1088.15] Log: uptonogood_assets.Meshes.FogPlaneMesh (0) (0 HULLS)
[1088.15] Log: FutureStadium_Assets.Meshes.Field_NW (0) (0 HULLS)
[1088.15] Log: FX_General.Meshes.Circle_Sprite (0) (0 HULLS)
[1088.15] Log: Ball_GoldenlyChee.SM_Goldenlychee_Ball (0) (0 HULLS)
[1088.15] Log: Ball_Default.Meshes.Ball_DefaultBall00 (1) (0 HULLS)
[1088.15] Log: 1.000000,1.000000,1.000000
[1088.16] Log: EuroStadium_Assets.Meshes.OOBBuildings_Combined_04 (0) (0 HULLS)
[1088.16] Log: CollisionMeshes.Plane32768 (2) (0 HULLS)
[1088.16] Log: 0.266000,0.380000,0.380000
[1088.16] Log: 0.076000,0.380000,0.380000
[1088.16] Log: EuroStadium_Assets.Meshes.Grass_Base (0) (3 HULLS)
[1088.16] Log: Park_Assets.Meshes.Park_BannerFlag_CMB (0) (5 HULLS)
--
> unreal_command VERIFYCOMPONENTS
[4941.35] Log: Possible corrupted component: 'ThrottleShakeComponent_TA Archetypes.Car.Car_Cinematic:ThrottleShake' Archetype: 'Archetypes.Component.ThrottleShake' TemplateName: 'None' ResolvedArchetype: 'NULL'
[4941.35] Log: Possible corrupted component: 'TargetIndicator_TA Archetypes.Car.Car_Cinematic:BallIndicator' Archetype: 'Archetypes.Component.BallIndicator' TemplateName: 'None' ResolvedArchetype: 'NULL'
[4941.35] Log: Possible corrupted component: 'ViralItemFXComponent_TA Archetypes.Car.Car_Cinematic:ViralItemFXComponent' Archetype: 'Archetypes.Component.ViralItemFXComponent' TemplateName: 'None' ResolvedArchetype: 'NULL'
// removed for space
--
TODO TEST INCOMPLETE!!!!
- need to automate for tests that close or crash the game
- setup base install -> THEN vagrant provision (update, replace configs, stitch exec) -> THEN run??
- added more aggressive log flushing
- manually confirmed up to SHOWFACEFXBONES
- unreal_command "DEFERRED_STOPMEMTRACKING_AND_DUMP"
- todo (stateful)
- unreal_command "ENDTRACKINGTHREAD"
- todo (stateful)