Pillars of Eternity Wiki
Advertisement

Where are the non-cheat commands?[]

Not all commands are cheats, there are many commands which can be run without running iroll20s first, and which (as one would thus expect) doesn't disable achievements.
Actually the reason I looked at this page was to find all the commands for changing graphics settings - of which this page contains none. :(
(For example, the msaa x command, where x is the desired level of anti-aliasing.)

Does anyone know a list of non-cheat commands? Everywhere I look people only link to the cheats - other commands are hard to find. :/ —AnorZaken (talk) 10:40, 4 January 2018 (UTC)

The odd thing is that I couldn't force the game to dump the commands at all, so a good deal of these are either testing or informed guesses. I'll have to look at Tyranny commands, but these seem to focus overwhelmingly on gameplay, not graphics. Tagaziel (talk) 10:57, 4 January 2018 (UTC)
I've at least found a file that seems to contain all commands, though (for me and my lack of coding knowledge) in a hard to read format.
Open …\PillarsOfEternity_Data\Managed\Assembly-CSharp.dll with e.g. Notepad. Far down (search for "iroll") is a looong list of script commands that all appear to be valid for the console. Can't tell how to make this useful, however. -- UserCCCSig -- You talkin' to me? -- cCContributions -- 08:19, 1 February 2018 (UTC)

Ranger companion as character[]

Ranger animal companions also count as characters for purposes of codes like "AddTalent", though the information will show up in the bottom half of the ranger's character sheet. Simply identify them via the "FindCharacter" code beforehand. Word of caution: some abilities may not work as expected when applied to a ranger animal companion. - Spinfx (talk) 10:41, 26 September 2018 (UTC)

CSharp and CSharpFile in POE1[]

Some working examples may be very useful. 31.131.215.105 18:20, 21 June 2019 (UTC) Meridiano

CSharpFile simply loads C# code from a file, encapsulates it in the following class and method, and then executes the static method Run(). As I've added in the command table, you can't just load any old .cs file this way (simply due to it's encapsulation in the DynamicallyCompiled class), as the console has no point of entry. In theory you don't have to put everything within Run(), simply close that method and make sure not to close the next. Naturally, C# programming, Unity APIs, and Obsidian's code is a bit out of the scope of the article meant for the "Console", hence why I haven't provided an example. An example wouldn't even help, since it's literally just any C#. It really depends on what you want to do. Most of the time when there's something I want to tweak, test or change, it can be accomplished with regular console commands.
using UnityEngine;

class DynamicallyCompiled
{
    public static void Run()
    {
        <source here>
    }
}
Ultimately this command is only for testing purposes, and while you can write whatever you want (it isn't restricted in any way), it's not exactly elegant. If you're looking to implement your own tools or experiment with the engine, you might be better off looking into code injection. I have a basic example here - even though it's Deadfire-based, it's the exact same for poe1. All you have to do is reference the Assembly-CSharp.dll in your project to view and access their classes (some are also contained in OEICommon and OEIFormats).
While scrounging around their symbols is often good enough (coupled with a basic understanding of Unity), you might want to actually see how they're doing things. JetBrain's dotPeek is a great decompiler for this purpose, I use it quite frequently.
If you don't want to use code injection, you can still make use of the symbols to get a basic understanding of what you can manipulate, then just run whatever you come up with with the CSharpFile command.
If you need more assistance, feel free to ask. Macklin (talk) 13:44, 22 June 2019 (UTC)
I was looking for some implementation of Exec() in POE1. Well, I've already found how to make a new console command in Assembly-CSharp.dll and did it. However, thank you for the another decompiler. 176.214.226.178 18:59, 27 June 2019 (UTC) Meridiano

Verify - Opening the console on consoles[]

I need someone to verify definitively that the information in Console#Opening the console is factually correct regarding the Xbox One/Series and PlayStation 3/4. I've seen varied reports of people getting the command console to work, while others cannot. It's likely they could have removed the console from later versions, but this is pure speculation. For now, I have added a verify tag. Macklin (talk) 05:20, 22 March 2021 (UTC)

Help me change the ending[]

Help me change the ending. Tell me how you can change the ending of the character through the console. Specifically the ending of Alot. For me, he decided to stop destroying the order, and I want him to continue to pursue them. What can be done? -- Preceding unsigned comment was added by 5.129.201.104 (talk) 11:49, 24 September 2023‎ (UTC). Please sign your posts with -- ~~~~.

You can use SetGlobalValue and PrintGlobal for this, after using IRoll20s. Specifically, Aloth's endings rely on the globals n_Aloth_authority and n_Aloth_autonomy, which are used to set n_Aloth_ending:
  • "Authority" ending (where Aloth becomes the grandmaster of the Leaden Key) triggers when n_Aloth_authority >= n_Aloth_autonomy. It sets n_Aloth_ending to 2. So if you want to trigger it (prior to the ending slides), do SetGlobalValue n_Aloth_authority 999 or SetGlobalValue n_Aloth_ending 2.
  • "Autonomy" ending (where Aloth dedicates himself to dismantling Leaden Key) triggers when n_Aloth_authority < n_Aloth_autonomy. It sets n_Aloth_ending to 3. For this one, do SetGlobalValue n_Aloth_autonomy 999 or SetGlobalValue n_Aloth_ending 3.
That should do it. Macklin (talk) 15:50, 24 September 2023 (UTC)
I'm sorry, I can't change. First I write IRoll20s. Then I write SetGlobalValue n_Aloth_autonomy 999 and/or SetGlobalValue n_Aloth_ending 3 (I am in the final location before the conversation with Eotas). Am I doing something wrong? -- Preceding unsigned comment was added by 5.129.201.104 (talk) 24 September 2023 (UTC). Please sign your posts with -- ~~~~.
Ohhhhh, I got confused. Those globals are for the ending of Pillars of Eternity, not Deadfire (and I assume you mean the ending of Deadfire). For that, there's a few more endings. Deadfire relies on the globals n_aloth_p2_absolve and n_aloth_p2_responsible. I'll probably document these on the endings page at some point. Without getting too much into the details, to get the ending where he continues dismantling the Leaden Key, do IRoll20s, then either:
They should all result in that ending occuring before the end game slides appear. Macklin (talk) 07:19, 25 September 2023 (UTC)

Ps: Friend, thank you very much, I did it!!! With love from Siberia <3

Advertisement