Gameplay Mod Citizens of Rome - Dynasty Ascendant
This mod was created as part of a one month internship I did at Sathvik Software Solutions. The Internship started on 24th January 2023 and ended on 24th February 2023. During this internship I was asked to build a mod for the game. I utilized the company’s own Vue.js API called DAAPI (short for Dynasty Ascendant API). I had to learn Vue.js specially for this internship as I had no prior experience in it. But, since I had used React.js previously, it wasn’t much difficult to use Vue.js.
I also created two 2D assets in Adobe Illustrator for an upcoming event in the game during this one month internship.
Citizens of Rom – Dynasty Ascendant is also on steam and quite a popular game.
Steam page of the game: https://store.steampowered.com/app/1063790/Citizen_of_Rome__Dynasty_Ascendant/
Github Repository Link to the Project: https://github.com/Harsh8naidu/Political-Ladder-Mod.git
What I Learned
- Vue.js API
- Character State Management
- Conditonal logic for game events and actions
- Dynamic UI
- Fetch and Modify game data
- Event-driven Programming
- Action Handling
- Data Validation and Error Hadnling
- Game Balancing
- Implementing tooltips and UI elements dynamically
- Handling user choices and consequences in a branching narrative
- Modifying character attributes dynamically based on conditions
How I Implemented these Concepts
Screenshots
Vue.js API
DAAPI (short for Dynasty Ascendant API) is the game’s internal modding API that allows developers to interact with game data, characters, events, and UI elements. It provides functions to retrieve and modify game state dynamically.
Character State Management
- daapi.getState() – Retreive the entire game state
- daapi.getCharacter({characterID}) – Fetched character-specific data.

Character Actions
- daapi.addCharacterAction({characterId, key, action}) – Adds and action to a character.
- daapi.deleteCharacterAction({characterId, key}) – Removes and action from a character.

UI & Interaction
- daapi.pushInteractionModalQueue({…}) – Displays a pop-up modal with options for the player.
- daapi.requireImage(path) – Loads an image asset for UI elements.

Game Logic Modifications
- daapi.updateCharacter({…}) – Updates character properties (e.g. flags, stats).









