Are there any tools similar as AoKTS for AoE2DE editor?

AoKTS is a very powerful tool. We used to achieve lots of nice effects with it. But it hasn’t adapted to DE.

So I wonder if any tools have been developed, to assist DE scenario editing.

There is a Python library for parsing and mutating scenario files:

@KanyeTWest emm, I have tried to install it in VScode, but falied(all commands returns error, error and error), and I even can’t make sure whether I did install. :joy:

Is there a guide for complete noob to install and use?

@SalamanderRobot might be able to help you.

I just installed it using pip.
pip install AoE2ScenarioParser

This isn’t a guide for it as far as I’m aware (it’s still under development). I used an earlier version of it in a scenario if you want an hacked-together example:
(There have been changes made to the library since then, I still need to update the version I’m using).

keep up the awesome videos mister West!

I also installed it using only the pip install AoE2ScenarioParser command line.
Pay attention that you must use Python 3.6 (or above).

If this can help, here are the two files I designed using this library for the Age of Salamanders scenario:

age_of_salamanders.txt (21.6 KB) aoe2_generic.txt (5.2 KB)
(replace the extension with .py, the .txt is only to be allowed to upload these files). is a file with generic AoE2ScenarioParser intermediate layer functions, while is the script generating the scenario.

I used this script for the two parts in the scenario that you can see in action below:

Automatically computing the Optimal Walling and placing foundations accordingly:

Computing the Tile Indicator and placing the bonfires accordingly:

I really like the Pacifist videos :smiley:

as do i. however they also make me sad.

i haven’t even tried to beat the campaigns on hard and he does it…WITHOUT KILLING UNITS!

I sucessfully installed using pip install AoE2ScenarioParser.
But when I run this command, it returned traceback following:

    >>> from AoE2ScenarioParser.aoe2_scenario import AoE2Scenario
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\acer\AppData\Local\Programs\Python\Python38\lib\site-packages\AoE2ScenarioParser\", line 6, in <module>
        from AoE2ScenarioParser.helper import parser
      File "C:\Users\acer\AppData\Local\Programs\Python\Python38\lib\site-packages\AoE2ScenarioParser\helper\", line 1, in <module>
        import AoE2ScenarioParser.pieces.structs.aoe2_struct
      File "C:\Users\acer\AppData\Local\Programs\Python\Python38\lib\site-packages\AoE2ScenarioParser\pieces\structs\", line 2, in <module>
        from AoE2ScenarioParser.pieces import aoe2_piece
      File "C:\Users\acer\AppData\Local\Programs\Python\Python38\lib\site-packages\AoE2ScenarioParser\pieces\", line 2, in <module>
        from AoE2ScenarioParser.helper import helper
      File "C:\Users\acer\AppData\Local\Programs\Python\Python38\lib\site-packages\AoE2ScenarioParser\helper\", line 3, in <module>
        from AoE2ScenarioParser.datasets.buildings import Building, GaiaBuilding
      File "C:\Users\acer\AppData\Local\Programs\Python\Python38\lib\site-packages\AoE2ScenarioParser\datasets\", line 3, in <module>
        from bidict import bidict
    ModuleNotFoundError: No module named 'bidict'

Is it a bug?

pip install bidict maybe

Tks. Now all commands run right.

But…To be honest, this tool is too complex and quite difficult to start! Every operation relies on command, but most of those cmds can absolutely substituted by some buttons. ---- These issues will be naturally solved after the author designs UI for it.

I think WYSIWYG is more suitable for me. :worried:

I understand, using Python scripts is not straightforward without some knowledge and practice.
Yet, it can also speed up a lot the process with proper use (designing functions to avoid clicking many times on the same buttons…).
For my scenario, it saved me a lot of time because I had to duplicate a lot of triggers while adapting them to their tile location parameters.

Nice to see that you are also using AoE2ScenarioParser and thanks for sharing the code :wink: