Atavism X (10.9.0) – Date of release 22.12.2023
New Features
- Abilities: Added the option to define abilities combos. There is a list in the ability section with the time within which the next combo ability can be used as well as the chance range to trigger the combo. There are additional options like if the combo ability should be displayed in the UI, replaced ability in the slot on the action bar as well if it should check cooldowns to be used. If the ability is selected as a combo child then it cannot be used outside of the combo, but only as a part of the combo chain.
- Abilities: Added the option to use raycast by abilities for a single target as well as for AoE, AoE location, etc.
There is also a debug mode that visualizes which raycasts hit the target and which do not. - Abilities: Added the option to use the ability when the caster or target is Dead, Alive, in Spirit, Dead or Alive, Dead or Spirit, Alive or Spirit, or in any of these states.
- Abilities: Added the option to try to cast the ability on the player himself if you cannot cast the ability on the target, like a heal that can be cast only on a friendly target, so when an enemy is selected it will be cast on the player.
- Abilities: Added the option to define a chance range for effects in abilities, so now the effect can occur but it doesn’t have to if you will set a chance range lower than 100%.
- Abilities: Added the option to define abilities that can be invoked within the ability with a specific chance and with a specific delay.
- Abilities: Added the option to define trigger profiles that can be invoked within the ability, so you can now invoke another effect or ability based on an event like Dodge, Parry, Damage, Heal, Critical Hit, Kill, Sleep, or Stun.
- Abilities: Added the option to define if the ability could be used in Combat, Outside Combat, and Both.
- Abilities: Added the option if casting ability should cause the character to become busy or not.
- Authentication: Added integration with Unity Gaming Services (UGS). In this step, we have provided integration with the UGS authentication service, so players who have a Unity account can log into your game if you set it up.
- Combat: Added the option to add the required time to unsheath the weapon including the coord effect as well as if the weapon should be drawn before you can use the ability and if it should be drawn automatically when the player is trying to use it.
- Combat: Added dodge option that can use stamina or any other vitality stat to move the character and avoid incoming hits. This option comes with keybinding that is handled in two ways:
- Single button which will invoke dodge in the players direction
- Double Tap comes with an additional double-tap interval setting where you can set how many milliseconds the player has, so pushing the same button twice would be treated by Atavism as the double tap. In the case of using this option, the character will move into the double tab direction.
- Combat: Added the option to handle more than one equipped weapon set without adding all parameters from all weapons, like a sword and a bow, etc. The player can do a weapon swap based on a button 1,2,3 in the character panel.
- Combat: Added the option to handle non-target projectiles for action combat, like aiming in the direction and invoking an ability that will move towards in 3d.
- Combat: Added the option for weapons where you can define button actions with abilities, slots, and coordinated effects. This way you can have something like using the left mouse button to invoke one ability like a swing for a sword, and the right mouse button to use another ability like a parry. This will also let you handle any hand animations properly, as by defining the slot you can set what coordinated effect will be used if you invoke action when the weapon is equipped in the main hand, and it can have a different coordinated effect when the same weapon is equipped in the off-hand. There is also an additional option that lets you zoom in or out when using the action, like hitting with the left mouse button using a bow and zooming in using the right mouse button.
- Effects: Added the option to define an effect tag that cannot exist on the caster or target to be able to use the ability, like to cast an ability you can’t be mounted. Replace caster effect and target effect as caster effect tag and target effect tag.
- Game Settings: Added key binding options in the Eidtor where you can define if the key for a specific action should be shown to the player, available to change, and in which section it should be displayed in the game settings menu.
- Game Settings: Added alternative key binding option, so now the player can bind the same action into two different buttons simultaneously.
- Items: Added option to swap items using the action bar.
- Items: Added audio events when the item is:
- Used
- Dragged within inventory/backpack/chest
- Dropped within inventory/backpack/chest
- Deleted
- Broke
- Picked Up
- Falling on the ground
- Dropped on the ground
- Items: Added option to drop items on the ground. You can define the item model, its movement including height and rotation, as well as the grid for dropped items. Dropped items will have labels based on their quality and clicking on them allows you to pick them up. You can visualize special items on the minimap. Items dropped by a player can be seen by other players.
There are various game settings you can set in addition to this feature:- INVENTORY_LOOT_ON_GROUND – Defines if the server should drop items on the ground or use the default system – Boolean – Default value: false
- INVENTORY_LOOT_ON_GROUND_TIMEOUT – Defines how long the item remains on the ground (in seconds) – Integer – Default: value: 600
- INVENTORY_LOOT_ON_GROUND_TIMEOUT_INTERVAL – Defines interval in which the server will check if the item on the ground should be removed (in seconds) – long – Default value: 5
- INVENTORY_LOOT_ON_GROUND_MAX_DISTANCE – Defines range in which the item can be dropped on the ground (in meters) – Integer – Default value: 10
- String INVENTORY_LOOT_ON_GROUND_LOGOUT_QUALITY_MAIL – Defines item qualities of items that will be mailed to the player who dropped them when the player is disconnected, logged out or when will leave the instance – String – Default value: “5” (you can define more with “;” as a separator. The number is from the ordered list of item qualities from the Option Choices dictionary)
- Items: Added option to loot items with specific quality and above.
- Items: Added option to send items using in-game mailing system for items with defined quality, so they wouldn’t be missed by player owner when they dropped. This occurs when the player is leaving an instance, logging out, or disconnecting from the server.
- Object Interaction: Added interaction with various objects like resource nodes, interactive objects, NPCs, buildings, and looting using a button instead of clicking on the object.
- Prefab Server: Added icon deduplication and how icons are being stored on the client, so now if you have hundreds of elements using the same icon, for example crafting recipes, Atavism will store only one copy of them. This is a massive memory improvement, especially for mobile devices that frequently have limited memory to not load many icon images into the memory.
- Queue System: Added Queue System for world entry with below settings:
- LOGIN_QUEUE_RATE – Defines the maximum number of logged players per second – Float – Default value:
- LOGIN_QUEUE_MAX_USERS – Defines the maximum number of users that can be logged in (related to the CCU number) – Integer – Default value:
- LOGIN_QUEUE_MAX_INTERVAL – Defines the maximum time interval in which the client must send a request to the server about its queue position to remain in the queue (in milliseconds) – integer – Default value:
If the number of players is lower than maxUsers then players can log in with the defined rate. If the rate is set to 2, then 2 players can be logging in per second, with a rate of 500ms per player.
If the number of players is higher than maxUsers then players are added to the waiting queue and then they are logged in the order they were put in the queue, when other players will leave the world, but with the defined rate.
- Queue System: Added Queue System for authentication, where the queue is based on the CCU usage/CCU maximum available for the license.
Based on the queue the player receives information about the position in the queue and the estimated time needed to be processed.
- Server: Added message in console when TCP port is busy during server startup.
- Server: Added metric for MessageIO ordered queue size.
Changes to existing features
- Abilities: Moved game setting parameters to the ability, so they could be configured separately:
- USE_ABILITY_STEALTH_REDUCTION
- USE_ABILITY_STEALTH_REDUCTION_PERCENTAGE
- USE_ABILITY_STEALTH_REDUCTION_TIMEOUT
- ABILITY_SKILL_UP_CHANCE
- COMBAT_MISS_CHANCE
- Abilities: Replaced caster effect and target effect with caster effect tag and target effect tag. Modified how the server is functioning in this aspect, so now you can let some abilities be invoked when the caster has a stun, sleep, immune, morph, and other effects.
Abilities: Modified the effects section and move them to a separate table to allow you to define as many of them as you need and not limit them to 6. - Abilities: Modified ability to be able to hit both enemies and allies using the ability. Before it was limited to selecting only an enemy or an ally. In this version, you can select Target Type as Single Target, AoE, Location, and then Target Subtype as Enemy, Self, Friendly, Friend Not Self, Friendly, or Enemy.
- Abilities: Modified coord effect to be removed based on the IDs, so the client could remove coord effects if the effect is over earlier, for example, if it was dispelled.
- Abilities: Simplified ClassAbilityStartAbilityHook and added timer in the startAbility.
- Abilities: Disabled logic in ClassAbilityPlugin that is not used.
- Achievements/Rankings: Improved achievements and rankings to not generate them for players that have 0 values.
- Bonuses: Modified the iteration of the bonus settings table when sending an update.
- Client: Modified icon storage on the client side. Icons will now be stored in an array instead of in the element definitions.
- Combat: Improved combat performance by adding the option to send a set multi-parameter in without waiting for a response.
- Combat: Modified concurrent hashmap iterations when sending parameter updates for a group.
- Combat: Changed iteration of effects when taking damage.
- Combat: Improved combat by removing the block on subscription creation for abilities.
- Effects: Added message when the game is externally triggered effect and that effect is not defined.
- Game Settings: Modified key bindings, so now when the key is used by another action there will be a dialogue message displayed if the player wants to remove it from the other action and bind it to the current one.
- Items: Replaced sending a request message for item definitions and enchant profile with direct fetch.
- Items: Changed the trade messages to the ordered queue.
- Mobs: Disabled threat update for every set property message in the mob server.
- Mobs: Added Attack Time parameter for mobs to define additional time for which the mob shouldn’t move to handle animations better.
- Prefab Server: Added message size and defined limit value to the log if the message exceeds the limit in the prefab server.
- Queue System: Modified server list being sent earlier, so the player could select the world to which he will be connected earlier, and not in the character selection like before. This panel also has more information like how busy the server is, how long the queue is, etc.
- Server: Modified MessageCallback to MessageDispatch to not block the thread receiving messages.
- Server: Modified to not alter stats if modification is zero which reduces the number of messages with statistics update.
- Server: Added skipping group update for properties not defined for the group.
- Server: Added dimension to the startAbility timer.
- Server: Added dimension to message sent list timer.
- Server: Added metrics for time spent on stop auto attack in checkAbility.
- Server: Modified reading loot parameters so that it doesn’t send messages to itself but gets them directly.
- Server: Added metric for the number of existing instances.
- Server: Added check if the process closed an atavism process.
- Server: Reduced CPU utilization when a template cannot be found.
- Server: Cleaned up old serialization.
- Skills: Modified stat modifiers for skills:
- SKILL_PRIMARY_STAT_GAIN_INCREMENT
- SKILL_SECONDARY_STAT_GAIN_INCREMENT
- SKILL_THIRD_STAT_GAIN_INCREMENT
- SKILL_FOURTH_STAT_GAIN_INCREMENT
These are now per skill basis as well and you can define how often the stat will be added based on the skill level as well as how many statistic points.
- Statistics: Changed to send stats updates to wmgr so it doesn’t wait for a response.
- UI: Modified action bar, so now dragging one ability on another will replace their slots and not only replace the first one with the new one.
Fixes
- Abilities: Added checking if the ability ID is correct when activating an ability from an item.
- Abilities: Fixed for checking species for the ability.
- Abilities: Fixed potential race conditions in ability handling and added more metrics.
- Abilities: Fixed the issue when checking the buildings in the area by the ability, no reply was sent to the combat server, which blocked threads.
- Arena: Fixed teleporting players when entering the arena and removing a player from the group when leaving the arena.
- Arena: Fixed the issue of moving the character to the world map after being disconnected from the arena.
- Arena: Fixed the issue when the character didn’t move after the arena ended.
- Arena: Fixed the exception of not finding the receiver at spawn in the arena.
- Arena: Fixed the issue where player remained in the group when the arena ends.
- Arena: Fixed the issue where In arena 1 vs 1, one person will restart the game and log in again, the second player will be dropped from the arena as a winner, and the other logged character will be “stuck” in the instance of the arena, but there will be no longer treated as a typical arena.
- Combat: Handled exception when mob and target position was null in CombatBehavior.
- Combat: Fixed the issue of not locking stop auto attack when the target is null. Fixed the issue with the auto attack.
- Combat: Removed locking from stopAttack.
- Combat: Fixed exception when giving experience and couldn’t get Combat Info.
- Combat: Handled exception by ensuring that Get Combat Info Params sends a reply to the message.
- Combat: Fixed the issue for saving and restoring the combatinfo.
- Combat: Fixed the HealOverTime pulse that generated the exception.
- Combat: Handled exception that was occurring when loading characters effects for which the definition has been removed or disabled.
- Database: Added a re-call of the query when an exception occurs with the connection to the database.
- Effects: Fixed concurrent violation bug in effects.
- Items: Fixed the exception by blocking moving equipped items to bank/storage.
- Items: Fixed the exception by adding a check if the item exists in the entity manager before deleting it.
- Items: Fixed the issue when trying to take an item from outside the item table in the mail.
- Items: Handled exception when Inventory Info was null in the addition and in the sendbank inventory function.
- Mail: Fixed the issue when loaded currencies in the mail generate an error when the currency exceeds the maximum int value.
- Mail: Fixed sending e-mails through the system with rewards when leveling up.
- Mobs: Handled the exception by checking if the object exists when trying to generate the path.
- Mobs: Fixed deactivated behaviors for deleted mobs.
- Mobs: Fixed issue where mobs didn’t reset when the target player moved outside the navmesh walkable area.
- Mobs: Fixed the issue where the mob didn’t attack when it was spawned while the player was in the aggro range.
- Mobs: Fixed the issue with loot distribution in the group when the GROUP_LOOT_DEFAULT_ROLL parameter was not loaded properly to define default loot distribution.
- Pets: Fixed the issue with pets that didn’t use new combat behavior.
- Prefab Server: Fixed PREFAB_MAX_INCOMING_MESSAGE_LENGTH parameter name from game settings in prefab server.
- Server: Handled the exception so that it doesn’t throw an error when reading the EnList parameter for a bunch of plugins.
- Server: Fixed endless loop caused by players death.
- Server: Fixed the issue when one of the services was waiting to receive information about faction, while now it can query it directly by itself.
- Server: Fixed the issue where the server was sending group updates for an offline group member.
- Server: Fixed the exception while inviting a non-existent player.
- Server: Fixed the issue of using sleep for threads instead of yield when some locks couldn’t be acquired.
- Server: Fixed the issue in the group plugin to handle PropertyMessage.
- Server: Added message dimension to dropped_messages.
- Server: Added logs when loading items from the database when not found enchant profile definition.
- Server: Fixed concurrent violation exception in sending group member updates.
- Server: Fixed the issue with effects resuming after relogging.
- Server: Fixed response for check targets in the area if target distances are to be returned.
- Server: Reduced memory usage by mob serwer and building server.
- Server: Handled exception when ObjectInfo was null during spawn in voxelPlugin.
- Social Module: Fixed the issue occurring while loading the player’s name in the SocialPlugin.
- Statistics: Handled the exception when loading stat effects while stats with an empty name were added.
- VIP: Added removal for the VIP bonuses from the database when VIP time ends.
- World Builder: Fixed the issue where buildings didn’t properly snap into terrain or other buildings.
- World Manager: Handled exception when new object position was null and when it was trying to update WorldNode by mob or by player.
Known issues
- When in crafting definition there is no “Must Match Layout” option checked and for example, the same material is used for two slots with the same count, then if that material will be added into the crafting grid in one slot it will show the result item and craft button available, but the server will response that there are no sufficient items. It’s related to that server is checking requirements for an item in each slot for the recipe and if that amount is in the crafting grid.
- When an item reward and an item choice reward are the same then the item count for that item is overridden.
Fresh installation of Atavism X (10.9.0)
In order to install Atavism you can choose one of three types of installation:
1. Use a premade Virtual Machine which is an Atavism-ready environment by following the Atavism Virtual Machine Installation process.
2. Use detailed instructions on what environment requirements should be met in order to install Atavism on your dedicated server.
3. Use the installation tutorial with our new Atavism Windows Manager for Windows Environment.
Then you should adjust your Unity project to work best with Atavism
If you are going to use UMA in your project you can follow the UMA installation step by step.
it is also recommended to refresh lighting and Asset Bundles because both are related to a specific Unity version. In order to rebuild your Asset Bundles (Bomber Bug is using them), you should head into the top menu in Unity Editor and choose Assets->Atavism Build AssetBundles (it will rebuild your asset bundles and then you should navigate to your project directory, and copy file infinitypbr from project_directoryAssetBundles to project_directoryAssetsStreamingAssets.
Updating to Atavism X (10.9.0)
Updating from Atavism X (10.8.0) to Atavism X (10.9.0) is moderately complicated due to many changes on both the server and client sides.
It is highly recommended you create a backup of your server, client, and databases before proceeding in case something goes wrong during the process.
Update using our Virtual Machine Installation
Step 1: Log in to your Virtual Machine using the WinSCP client and remove the atavism_server*.zip file first and then the atavism_server directory completely
Step 2: Follow instructions like you would do the first installation but with the option Update Current Atavism depending on your installation (Core or with Demo Data). Open address in a web browser http://server_IP/atavism/installation/install.php
Warning: Make a Unity project backup. Importing the prefabs may break any customizations you had previously made to Your ones.
Step 3: Import Atavism Unity Package, Replace Files
Import the AtavismUnity_10.9.0_Patch_10.8.0_for_{Core|Demo}.unitypackage depending on which installation you did before.
Step 4: Update the UI Canvas
This procedure depends on how you modified your canvas. If it’s default then just open the AtavismBlankMainWorld scene and replace all components within your world scene, and repeat this procedure for the CharacterSelection scene and for the Login scene.
Step 5: Open Unity Editor and from the top menu select Atavism Migration to X.9
Step 6 (Optional): If you are using the Atavism Demo version then with the patch you will receive a shader that we made in the shader graph, so to make it work properly, you will need to import the shader graph from Unity Package Manager. If you will skip this step, you will have a few errors in the console that you can just ignore or remove two shader files located in the Assets/Atavism demo/DragonsanStudios/Models/ItemBeam/Shaders directory.
Click Packages in the project dropdown and select Unity Registry.
Type “shader graph” in the search field, ensure that you have Shader Graph selected in the left panel, and click the Install button.
Update using Custom Linux Installation
Step 1: Replace Server Files
Copy over all server files and adjust them as you did before with the previous Atavism version. Because server-side scripts and configuration files were changed, we recommend you put a fresh copy of the Atavism 10.9.0 server files.
Step 2: Update the Databases
Important note: Each time you are updating your database or files make a backup to have a copy of your work
Scripts to update your Atavism X (10.8.0) databases to Atavism X (10.9.0) are in your Atavism Server package. There are two types of scripts, structure, and data for both types of installations (Core and with Demo Data), you should use the proper ones depending on your previous installation method. In order to update the database, first, you have to update the structure, then the data. The script file for structure update :
- sql/updates/From_Atavism10.8.0/{Core|Demo}/Structure/master.sql
- sql/updates/From_Atavism10.8.0/{Core|Demo}/Structure/world_content.sql
and script files for data updates:
- sql/updates/From_Atavism10.8.0/{Core|Demo}/Data/admin.sql
- sql/updates/From_Atavism10.8.0/{Core|Demo}/Data/atavism.sql
- sql/updates/From_Atavism10.8.0/{Core|Demo}/Data/world_content.sql
If you have renamed any of your databases from the default names (admin, atavism, master, world_content) make sure you have proper names in the “use” clause at the beginning of each script.
Step 3: Import Atavism Unity Package, Replace Files
Import the AtavismUnity_10.9.0_Patch_10.8.0_for_{Core|Demo}.unitypackage depending on which installation you did before.
Step 4: Update the UI Canvas
This procedure depends on how you modified your canvas. If it’s default then just open the AtavismBlankMainWorld scene and replace all components within your world scene, and repeat this procedure for the CharacterSelection scene and for the Login scene.
Step 5: Open Unity Editor and from the top menu select Atavism Migration to X.9
Step 6 (Optional): If you are using the Atavism Demo version then with the patch you will receive a shader that we made in the shader graph, so to make it work properly, you will need to import the shader graph from Unity Package Manager. If you will skip this step, you will have a few errors in the console that you can just ignore or remove two shader files located in the Assets/Atavism demo/DragonsanStudios/Models/ItemBeam/Shaders directory.
Click Packages in the project dropdown and select Unity Registry.
Type “shader graph” in the search field, ensure that you have Shader Graph selected in the left panel, and click the Install button.
Update using Atavism Windows Manager Installation
Step 1: Open the directory where you installed Atavism Manager (by default in c:\Atavism Manager)
Step 2: Rename the atavism_server directory to atavism_server_old or any other name
Step 3: Download the Atavism server zip file from apanel
Step 4: Unpack the atavism_server*.zip file into your Atavism Manager installation directory
Step 5: In the Atavism Windows Manager panel start the database
Step 6: Open the command line console Windows + r shortcut and type cmd
Step 7: Change the directory to your Atavism Manager installation directory by typing the command
cd “c:\Atavism Manager\mariadb-5.5.61-win32\bin” or cd “c:\Atavism Manager\mariadb-10.6.11-winx64\bin” depending on which version of the database you are using
Step 8: Invoke database update commands where the root is the database user, the test is the password for the database user, following with by the path to the Atavism Manager installation directory. If you are not using our default databases, please adjust these commands.
If you have renamed any of your databases from the default names (admin, atavism, master, world_content) make sure you have proper names in the “use” clause at the beginning of each script.
Important note: Each time you are updating your database or files make a backup to have a copy of your work
mysql -u root -ptest master < "c:\Atavism Manager\atavism_server\sql\updates\From_Atavism10.8.0\Demo\Structure\master.sql"
mysql -u root -ptest world_content < "c:\Atavism Manager\atavism_server\sql\updates\From_Atavism10.8.0\Demo\Structure\world_content.sql"
mysql -u root -ptest admin < "c:\Atavism Manager\atavism_server\sql\updates\From_Atavism10.8.0\Demo\Data\admin.sql"
mysql -u root -ptest atavism < "c:\Atavism Manager\atavism_server\sql\updates\From_Atavism10.8.0\Demo\Data\atavism.sql"
mysql -u root -ptest world_content < "c:\Atavism Manager\atavism_server\sql\updates\From_Atavism10.8.0\Demo\Data\world_content.sql"
You can use any third-party tool to handle this process for example MySQL Workbench or any other database management tool
Step 9: Start the Atavism.exe application
Step 10: Fill data according to your previous configuration including database credentials (if you changed them)
Step 11: Import Atavism Unity Package, Replace Files
Import the AtavismUnity_10.9.0_Patch_10.8.0_for_{Core|Demo}.unitypackage depending on which installation you did before.
Step 12: Update the UI Canvas
This procedure depends on how you modified your canvas. If it’s default then just open the AtavismBlankMainWorld scene and replace all components within your world scene, and repeat this procedure for the CharacterSelection scene and for the Login scene.
Step 13: Open Unity Editor and from the top menu select Atavism Migration to X.9
Step 14 (Optional): If you are using the Atavism Demo version then with the patch you will receive a shader that we made in the shader graph, so to make it work properly, you will need to import the shader graph from Unity Package Manager. If you will skip this step, you will have a few errors in the console that you can just ignore or remove two shader files located in the Assets/Atavism demo/DragonsanStudios/Models/ItemBeam/Shaders directory.
Click Packages in the project dropdown and select Unity Registry.
Type “shader graph” in the search field, ensure that you have Shader Graph selected in the left panel, and click the Install button.
List of changed files:
New Files (37)
Dragonsan\ModularCustomizationSystem\Scripts\nHanceEquipment.cs
Dragonsan\ContextSystem\Scripts\GroundItemDisplayChild.cs
Dragonsan\ContextSystem\Scripts\ContextPrefab.cs
Dragonsan\ContextSystem\Scripts\ContextManager.cs
Dragonsan\ContextSystem\Scripts\ContextInfoChild.cs
Dragonsan\ContextSystem\Scripts\ContextInfo.cs
Dragonsan\ContextSystem\Prefabs\ContextPrefab.prefab
Dragonsan\ContextSystem\Prefabs\Context Manager.prefab
Dragonsan\ContextSystem\Prefabs\Context Canvas.prefab
Dragonsan\AtavismObjects\Textures\Sprites\Cursor_Sword.png
Dragonsan\AtavismObjects\Textures\Sprites\Cursor_Speak.png
Dragonsan\AtavismObjects\Textures\Sprites\Cursor_Loot.png
Dragonsan\AtavismObjects\Textures\Sprites\Cursor_Default.png
Dragonsan\AtavismObjects\Textures\NewUi\ItemLabelBG_TransparentBorders_v2.png
Dragonsan\AtavismObjects\Textures\NewUi\ItemLabelBG_TransparentBorders.png
Dragonsan\AtavismObjects\Textures\NewUi\ItemLabelBG.png
Dragonsan\AtavismObjects\Textures\crosshair.png
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIQueue.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIPowerUp.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIKeySettingsEntry.cs
Dragonsan\AtavismObjects\Scripts\Editor\TargaImage.cs
Dragonsan\AtavismObjects\Scripts\Editor\CraftingEditor.cs
Dragonsan\AtavismObjects\Scripts\Editor\AtavismSettingsEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordProjectile3DEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordProjectile3DEffect.cs
Dragonsan\AtavismObjects\Scripts\GroundLootManager.cs
Dragonsan\AtavismObjects\Scripts\GroundItemDisplayUGUI.cs
Dragonsan\AtavismObjects\Scripts\GroundItemDisplay.cs
Dragonsan\AtavismObjects\Scripts\AutoLootTrigger.cs
Dragonsan\AtavismObjects\Scripts\AtavismInventoryAudioManager.cs
Dragonsan\AtavismObjects\Prefabs\UI\KeyEntryPrefab.prefab
Dragonsan\AtavismObjects\Prefabs\UI\Items Canvas.prefab
Dragonsan\AtavismObjects\Prefabs\UI\GroundItemNamePrefab.prefab
Dragonsan\AtavismObjects\Prefabs\UI\DragonsanFloatingMobPanel 1.prefab
Dragonsan\AtavismObjects\Meshes\Materials\EnemyTargetMat Proj 2.mat
Dragonsan\AtavismObjects\Meshes\Materials\EnemyTargetMat Proj 1.mat
Dragonsan\AtavismObjects\Icons\Custom\Coins.png
Updated Files (197)
Standard Assets\Atavism Core\Scripts\AtavismMobController.cs
Standard Assets\Atavism Core\Scripts\AtavismInputController.cs
Standard Assets\Atavism Core\Networking\Rdp\AtavismRdpConnection.cs
Standard Assets\Atavism Core\Networking\MessageTypes.cs
Standard Assets\Atavism Core\Networking\AtavismNetworkHelper.cs
Standard Assets\Atavism Core\Editor\InitialSetup.cs
Standard Assets\Atavism Core\Base\CoordinatedEffectSystem.cs
Standard Assets\Atavism Core\Base\AtavismWorldManager.cs
Standard Assets\Atavism Core\Base\AtavismNode.cs
Standard Assets\Atavism Core\Base\AtavismLoginHelper.cs
Standard Assets\Atavism Core\Base\AtavismLogger.cs
Standard Assets\Atavism Core\Base\AtavismEventSystem.cs
Standard Assets\Atavism Core\Base\AtavismClient.cs
Standard Assets\Atavism Core\ClientAPI.cs
Dragonsan\UGUIMiniMap for Atavism\Content\Scripts\Core\bl_MiniMap.cs
Dragonsan\UGUIMiniMap for Atavism\Content\Art\UI\RenderTexture\MiniMap.renderTexture
Dragonsan\UGUIMiniMap for Atavism\Content\Art\Models\Materials\Areas.mat
Dragonsan\Scenes\MainWorld.unity
Dragonsan\Scenes\Login.unity
Dragonsan\Scenes\CharacterSelection.unity
Dragonsan\Scenes\BlankLogin.unity
Dragonsan\Scenes\BlankCharacterSelection.unity
Dragonsan\Scenes\BlankAtavismScene.unity
Dragonsan\ModularCustomizationSystem\Scripts\Editor\ModularCustomizationManagerEditor.cs
Dragonsan\ModularCustomizationSystem\Scripts\ModularReplacementItem.cs
Dragonsan\ModularCustomizationSystem\Scripts\ModularCustomizationManager.cs
Dragonsan\Loading Screen for Atavism\Content\Scripts\Core\bl_SceneLoader.cs
Dragonsan\Easy Build System for Atavism\Features\Scripts\Core\Base\Manager\BuildManager.cs
Dragonsan\Easy Build System for Atavism\Features\Scripts\Core\Base\Builder\BuilderBehaviour.cs
Dragonsan\Easy Build System for Atavism\Features\Add-ons\Circular Menu\Scripts\CircularMenu.cs
Dragonsan\Easy Build System for Atavism\Example Scenes\Shared Contents\Scripts\CrossPlatformInput\Scripts\Joystick.cs
Dragonsan\AtavismObjects\UI Components\Character.renderTexture
Dragonsan\AtavismObjects\Scripts\UGUI\Editor\ModularCharacterDnaPanelEditor.cs
Dragonsan\AtavismObjects\Scripts\UGUI\Character Scene\UGUIServerListEntry.cs
Dragonsan\AtavismObjects\Scripts\UGUI\Character Scene\UGUIServerList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\Character Scene\UGUICharacterRaceSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\Character Scene\UGUICharacterClassSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UISettings.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UIGeneralSettings.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIWorldBuilder.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIVipWindow.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUITradeWindow.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUITooltip.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIToolBarMenu.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUITargetPortrait.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIStatBar.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUISocialPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUISkillsWindow.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUISkillButton.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIShopWindow.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIResourceLootListEntry.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIResourceLootList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIRepairWindow.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIRepairSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIRanking.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIQuestList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIPlayerShopList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIPlayerClaimList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIOtherCharacterPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIMerchantItemSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIMerchantFrame.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIMailRead.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIMailCompose.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIMailBox.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIMailAttachment.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUILootListEntry.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUILootList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUILogoutPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIItemDisplay.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIInventorySlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIInventoryAuctionSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIInventory.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIGuildPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIGroupPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIGlobalEventEntry.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIGearModification.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIGameMenu.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIFloatingMobPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIFactionStances.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIErrorText.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIEffect.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIDialoguePanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIDeathPopup.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICurrencyInputPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICurrency.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICreateShop.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICraftRecipeSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICraftingSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICraftingPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIControls.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIConfirmationPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIChatController.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICharacterPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICharacterGenderSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICharacterEquipFrame.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUICastingBar.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIBuildObjectTarget.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIBuildObject.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIBankSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIBank.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIBagSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIAuctionSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIAuction.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIAtavismActivatable.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIArenaScore.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIArenaList.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIAdminPanel.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIActionBarSlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIActionBar.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIAchievement.cs
Dragonsan\AtavismObjects\Scripts\UGUI\UGUIAbilitySlot.cs
Dragonsan\AtavismObjects\Scripts\UGUI\AtavismShakeCamera.cs
Dragonsan\AtavismObjects\Scripts\GameObject Components\Editor\ResourceDropEditor.cs
Dragonsan\AtavismObjects\Scripts\GameObject Components\ResourceNode.cs
Dragonsan\AtavismObjects\Scripts\GameObject Components\InteractiveObject.cs
Dragonsan\AtavismObjects\Scripts\GameObject Components\ClaimObject.cs
Dragonsan\AtavismObjects\Scripts\GameObject Components\AtavismMount.cs
Dragonsan\AtavismObjects\Scripts\Editor\PrepareCharacterModel.cs
Dragonsan\AtavismObjects\Scripts\Editor\PrefabBrowser.cs
Dragonsan\AtavismObjects\Scripts\Editor\ModularCustomizationSettingsEditor.cs
Dragonsan\AtavismObjects\Scripts\Editor\EquipmentDisplayEditor.cs
Dragonsan\AtavismObjects\Scripts\Editor\AtavismSaveIcons.cs
Dragonsan\AtavismObjects\Scripts\Editor\AtavismMigration.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordProjectileEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordParticleEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordMobSoundEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordLockMoveEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordGetWeaponEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\Editor\CoordAnimationEditor.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordSpawnEffect.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordProjectileEffect.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordParticleEffect.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordMobSoundEffect.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordLockMove.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordGetWeapon.cs
Dragonsan\AtavismObjects\Scripts\CoordinatedEffects\CoordAnimation.cs
Dragonsan\AtavismObjects\Scripts\WorldBuilderInterface.cs
Dragonsan\AtavismObjects\Scripts\WorldBuilder.cs
Dragonsan\AtavismObjects\Scripts\StandardCommands.cs
Dragonsan\AtavismObjects\Scripts\Skills.cs
Dragonsan\AtavismObjects\Scripts\Skill.cs
Dragonsan\AtavismObjects\Scripts\SDETargeting.cs
Dragonsan\AtavismObjects\Scripts\Quests.cs
Dragonsan\AtavismObjects\Scripts\PortraitManager.cs
Dragonsan\AtavismObjects\Scripts\NpcInteraction.cs
Dragonsan\AtavismObjects\Scripts\ModularCustomizationSettings.cs
Dragonsan\AtavismObjects\Scripts\MobController3D.cs
Dragonsan\AtavismObjects\Scripts\LoginController.cs
Dragonsan\AtavismObjects\Scripts\Inventory.cs
Dragonsan\AtavismObjects\Scripts\InteractiveObjectsManager.cs
Dragonsan\AtavismObjects\Scripts\EquipmentDisplay.cs
Dragonsan\AtavismObjects\Scripts\DebugDynamidNavMesh.cs
Dragonsan\AtavismObjects\Scripts\Currency.cs
Dragonsan\AtavismObjects\Scripts\Crafting.cs
Dragonsan\AtavismObjects\Scripts\ClickToMoveInputController.cs
Dragonsan\AtavismObjects\Scripts\CharacterSelectionCreationManager.cs
Dragonsan\AtavismObjects\Scripts\AutoAttackActionButton.cs
Dragonsan\AtavismObjects\Scripts\AtavismUIManager.cs
Dragonsan\AtavismObjects\Scripts\AtavismTrade.cs
Dragonsan\AtavismObjects\Scripts\AtavismSettings.cs
Dragonsan\AtavismObjects\Scripts\AtavismPrefabManager.cs
Dragonsan\AtavismObjects\Scripts\AtavismPlayerShop.cs
Dragonsan\AtavismObjects\Scripts\AtavismMobStealth.cs
Dragonsan\AtavismObjects\Scripts\AtavismMobName.cs
Dragonsan\AtavismObjects\Scripts\AtavismMobAppearance.cs
Dragonsan\AtavismObjects\Scripts\AtavismMecanimMobController3D.cs
Dragonsan\AtavismObjects\Scripts\AtavismLegacyAnimationMobController3D.cs
Dragonsan\AtavismObjects\Scripts\AtavismInventoryItem.cs
Dragonsan\AtavismObjects\Scripts\AtavismGroup.cs
Dragonsan\AtavismObjects\Scripts\AtavismGlobalEvents.cs
Dragonsan\AtavismObjects\Scripts\AtavismEffect.cs
Dragonsan\AtavismObjects\Scripts\AtavismCursor.cs
Dragonsan\AtavismObjects\Scripts\AtavismCraftingRecipe.cs
Dragonsan\AtavismObjects\Scripts\AtavismCombat.cs
Dragonsan\AtavismObjects\Scripts\AtavismBuildObjectTemplate.cs
Dragonsan\AtavismObjects\Scripts\AtavismAuction.cs
Dragonsan\AtavismObjects\Scripts\AtavismAbility.cs
Dragonsan\AtavismObjects\Scripts\Atavism3rdPersonInput.cs
Dragonsan\AtavismObjects\Scripts\Activatable.cs
Dragonsan\AtavismObjects\Scripts\Actions.cs
Dragonsan\AtavismObjects\Scripts\Abilities.cs
Dragonsan\AtavismObjects\Prefabs\UI\ServerListEntry 1.prefab
Dragonsan\AtavismObjects\Prefabs\UI\CanvasSettings.prefab
Dragonsan\AtavismObjects\Prefabs\UI\CanvasLoader.prefab
Dragonsan\AtavismObjects\Meshes\AtavismMarkerPosition.prefab
Dragonsan\AtavismObjects\Meshes\AtavismMarkerDestPos.prefab
Dragonsan\AtavismObjects\Meshes\AtavismMarker.prefab
Dragonsan\AtavismObjects\Decals\TrailNeutral.mat
Dragonsan\AtavismObjects\Decals\TrailFriendly.mat
Dragonsan\AtavismObjects\Decals\TrailEnemy.mat
Dragonsan\AtavismObjects\AnimatorController.controller
Dragonsan\AtavismEditor\Editor\Prefab Interface\BuildObjectPrefab.cs
Dragonsan\AtavismEditor\Editor\Plugins\ServerResourceNodes.cs
Dragonsan\AtavismEditor\Editor\Plugins\ServerOptionChoices.cs
Dragonsan\AtavismEditor\Editor\Plugins\ServerItems.cs
Dragonsan\AtavismEditor\Editor\Language\English.xml
Dragonsan\AtavismEditor\Editor\EditorCore\AtavismUnity.cs