Here's a list of biggest changes in structure and functions of MyAAC that may require you to define in your plugin manifest json file different minimal MyAAC version to be supported.

You can define the minimum version on which MyAAC plugin can be installed like this: (in your .json file)

"require": {
	"myaac": "0.4.3"



  • added Twig template engine


  • Automatically detect json file in .zip instead of basing on filename (admin panel - plugins installer)

in this update your plugin json file doesn't need to have anymore the same name as .zipped file. Like, then plugin.json location should be plugins/my-plugin.json. From now you can use custom names like and plugins/another-name-for-this.json. We still however, advice you to use same name of plugin like the name of .zip file to support older MyAAC versions.


  • moved .htaccess rules to plain php (index.php)

This adds new addresses like /account/manage or /account/create

  • added option to uninstall plugin

  • added option to require specified myaac, php or database version for plugins, without that plugin won't be installed

  • added admin panel custom links support - for future plugins. You can hook you menus on plugin install into myaac_admin_menu table


  • new configurable: session_prefix, to allow more websites on one machine (must be unique for every website on your dedicated server!

You should be using now functions: getSession(key) and setSession(key, value) for dealing with user session data. This way session_prefix will be automatically appended to the session name.


  • added forums for guilds and groups

  • added items.xml loader class and weapons.xml loader class, they're now saved in database, and you can use them in your plugin


  • moved template menus to database, they're now dynamically loaded


  • Admin Panel - Modules showed on Dashboard - for example can be statistics

  • colorful Menus:

possibility to define colors and "Open in New Tab" on Template Menus (needs to be supported by Template)

  • new configurable: "env" (Environment)

  • comments are now allowed inside plugin json file (php style)

  • new require options for plugins: (look into example.json)

    • require database version, table or column of the MyAAC schema

    • require php-extension


  • $cache variable was removed, use $cache = Cache::getInstance() instead

  • new functions:

    • config($key), configLua($key)

    • clearCache()

    • OTS_Account:

      • getCountry()

      • setLastLogin($lastlogin) (@Leesneaks)

      • setWebFlags(webflags) (@Leesneaks)

    • OTS_Player:

      • getAccountId()

      • countBlessings() (@Leesneaks)

      • checkBlessings($count) (@Leesneaks)

    • is_sub_dir (in system/libs/plugins.php)

    • Twig:

      • getPlayerLink($name, $generate = true)

    • removed SQLquote and SQLquery from OTS_Base_DB

    • Add optional $params param into log_append (will log arrays)


  • Change PHP Required: 7.2.5

  • updated Twig from version 1.x to 2.x (v2.15.4)

  • New hook:



  • add PLUGINS dir to twig paths

you can now include twig template inside your plugins folder $twig->display('your-plugin/example.html.twig');

  • plugins folder is now accessible from public, you can place assets there

  • added tables.headline.html.twig


  • allow pages to be placed in templates folder


  • New functions:

    • Cache::remember($key, $ttl, $callback)

  • New characters page hooks






0.8.12 (current stable, master branch)

v0.9.0 (next stable)

  • composer is now used for external libraries

  • New exception handler: Whoops

  • new routing engine. Routes can be added to plugins. Thus removing the need of inserting the page into system/pages.

"routes": {
	"First Route": {
		"pattern": "/YourAwesomePage/{name:string}/{page:int}",
		"file": "plugins/your-plugin/your-awesome-page.php",
		"method": "GET",
		"priority": "130"
	"Redirect Example": {
		"redirect_from": "/redirectExample",
		"redirect_to": "account/manage"
  • option to disable/enable plugin from admin panel

  • templates: new config option - menu_default_color

  • comments are now disallowed again inside plugin json file (php style). This was changed previously in version v0.8.0

  • new functions

    • getBanReason($reasonId), getBanType($typeId)

    • getChangelogType($v), getChangelogWhere($v)

    • getPlayerNameByAccount($id)

    • Outfits_loadfromXML(), Mounts_loadfromXML()

    • left($str, $length), right($str, $length), between($x, $lim1, $lim2), truncate($string, $length)

    • getCreatureImgPath($creature), getItemRarity($chance)

    • getAccountLoginByLabel()

    • getGuildNameById($id), getGuildLogoById($id)

    • camelCaseToUnderscore($input), removeIfFirstSlash(&$text)

v0.10.0-dev (development version)

Last updated