Advanced Achievements 1.1

Introducing Advanced Achievements!
- Create any Achievement series in chains up to a 1000x! Introduces personal stats and public leaderboards. Extreme customization is possible to cover any thinkable scenario!
- Now you can create separate Daily Achievements series, which works the same and resets every day !

Commands have corresponding daily command, which does the same but for the Daily Achievement line...^^
Features:
  • Achievements in chains up to x1000 in each series.
  • Daily Achievements in chains up to x1000 in each series.
  • Daily Achivements work the same as achivements, but thery reset every 24 hours!
  • Configurable time to reset the daily achivements.
  • Achievement can have any requirement or combination of requirements!
  • Give as many rewards in any combination as you'd like for an achievement!
  • Ability to give custom rewards for killing set boss/dino! Will reward every tribe member/ally in set range from dead creature.
  • Rewards can have permission group requirements! Where you can save groups in a comma separated list on each single reward separately.
  • Comes with working example config that gives players ascension for killing Ragnarok dragon boss!
  • Customize any in game messages, size, color and duration it shows !
  • Personal player stats with command: /mystats
  • Server leaderboard with command: /stats
  • Stats tracked across cluster as long as plugin runs on same database.
  • Reward players for playing on your server with commands, points, dinos, items, groups or whatever your wish with a custom command.
  • Every config line, without exceptions, can be reloaded while running!
  • Supports SqLite and MySQL!
  • Easily integrated with any website! (as long as MySQL is used)
Config File with explanations:
JSON:
{
    "SqLite_DataBase_FullPath": "",        // Full path to SqLite file, defaults to db.sqlite in plugin dir.
    "MySQL": {
        "UseMySql": false,                // If true uses mysql, if false uses SqLite.
        "HostAdress": "localhost",
        "Username": "root",
        "Password": "test",
        "DataBaseName": "discord"
    },
    "AchievementsCommand": {            // ingame command to see available and completed achievements
        "Command": "/achievements",        // Actual command used.
        "HeadLine":{                    // Headline text options
            "Message_Available": "\n\nAvailable Achievements:\n",        // Heading text for available achievements
            "Message_Achievement": "\n\nCompleted Achievements:\n",        // Heading text for completed achivements
            "Message_Text_Size": 2.5,                // Headline text size
            "Message_Available_Color":{                // Available achievements headline color
                "Red": 255,
                "Green": 175,
                "Blue": 50
            },
            "Message_Achievement_Color":{            // Completed achievements headline color
                "Red": 0,
                "Green": 255,
                "Blue": 0
            }
        },
        "AvailableAchievements": {                    //Available achievements message settings
            "message": "- {0}\t\t-- {1}\n",            // Line format. {0} = achievement name  {1} = StatNames string below.
            "StatNames": {                            // Stat names used in above message. {}/{} = <currentplayer stat>/<requirement>
                "PlayTime": "Server Play Time {}/{}",
                "DinoKills": "Tamed Dino Kills {}/{}",
                "PlayerKills": "Player Kills {}/{}",
                "WildDinoKills": "Wild Dinosaur Kills {}/{}",
                "DinosTamed": "Dinosaurs Tamed {}/{}",
                "DeathByPlayer": "Deaths to player {}/{}",
                "DeathByDino": "Deaths to Tamed Dinosaurs {}/{}",
                "DeathByWildDino": "Deaths to Wild Dinosaurs {}/{}"
            }
        },
        "Text_Size" : 1.8,            // Text size of non-header text.
        "Text_Display_Time": 15,    // How long in seconds this text will be displayed.
        "Text_Color":{                // Text color of non-header text.
            "Red": 255,
            "Green": 255,
            "Blue": 50
        }
    },
    "PersonalStatsCommand": {        // Personal stats chat command for players.
        "Command": "/mystats",        // Actual command used ingame.
        "Message_Playtime_minutes": "Your playtime is: {} minutes",                        //Message playetime when only minutes.
        "Message_Playtime_hour": "Your playtime is: {0} hours. {1} minutes.",            //Message playetime when hours.
        "Message_Playtime_days": "Your playtime is: {0} days. {1} hours. {2} minutes.",    //Message playetime when days.
        "Message": "\n\nPersonal Stats:\n\n{0} | Dinosaurs Tamed: {1}\nYour Kills-  Player: {2} | Tamed Dino: {3} | Wild Dino: {4}\nYour Deaths by-  Player: {5} | Tamed Dino: {6} | Wild Dino: {7}", // Complete message with all the tracked stats.
        "Text_Size" : 2.5,            // Command Text size
        "Text_Display_Time": 15,    // How long text will be displayed
        "Text_Color":{                // Color of text
            "Red": 255,
            "Green": 255,
            "Blue": 50
        }
    },
    "StatsCommand": {                            // Leaderboard stats command
        "Command": "/stats",                    // Actual command used ingame.
        "AmountOfPlayersToList": 10,             // How many players to list on the leaderboard.
        "HowManySecondsToShowNotification": 15,    // How long command is displayed for user.
        "Message_DefaultHelper": "\n\n\nUsage: {} <number>   Where number can be 1 - 8.",    // Helper headline text when no arguement.
        "Message_DefaultHelperDescription": "1 = {}\n2 = {}\n3 = {}\n4 = {}\n5 = {}\n6 = {}\n7 = {}\n8 = {}",    // Helper text when no arguement
        "Message_HeadLine": "\n\n\nLeaderBoard {}:",    // Leaderboard headline text {} = <relevant Message_HeadLine_StatNames>
        "Message_HeadLine_StatNames": {                    // Statnames for leaderboard message above.
            "PlayTime": "Server Play Time",
            "DinoKills": "Tamed Dinosaur Kills",
            "PlayerKills": "Player Kills",
            "WildDinoKills": "Wild Dinosaur Kills",
            "DinosTamed": "Dinosaurs Tamed",
            "DeathByPlayer": "Most Deaths to player",
            "DeathByDino": "Most Deaths to Tamed Dinosaurs",
            "DeathByWildDino": "Most Deaths to Wild Dinosaurs"
        },
        "Message_HeadLine_Color":{                    // Color of heading text.
            "Red": 150,
            "Green": 0,
            "Blue": 255
        },
        "Message_HeadLineSize": 3.0,                // Size of heading text
        "Message_Show_TribeName": true,                // Show tribename of players in leaderboard
        "Message_LineStructure": "{0}. {1} - {2}\n",// Line format. {0} = player position, {1} = playername, {2} = player stats
        "Message_Color": {                            // Color of text.
            "Red": 255,
            "Green": 255,
            "Blue": 50
        },
        "Message_Size": 2.2,                                                    // Size of text.
        "Message_Playtime_minutes": "Playtime: {} minutes",
        "Message_Playtime_hour": "Playtime: {0} hours. {1} minutes.",
        "Message_Playtime_days": "Playtime: {0} days. {1} hours. {2} minutes.",
        "Message_DinoKills": "Dinosaur Kills: {}",
        "Message_PlayerKills": "Player Kills: {}",
        "Message_WildDinosaurkills": "Wild Dinosaur Kills: {}",
        "Message_DinosaursTamed": "Dinosaurs Tamed: {}",
        "Message_DeathsByPlayers": "Deaths By Players: {}",
        "Message_DeathsByDinosaurs": "Deaths By Dinosaurs: {}",
        "Message_DeathByWildDinosaurs": "Deaths By Wild Dinosaurs: {}"    
    },
    "Broadcasting": {                                        // Broadcasting settings
        "Broadcast_Achivements": true,                        // When true, broadcasts any earned achivements to global chat.
        "Message": "{0} has earned the '{1}' Achievement!",    // Format of text. {0} = playername, {1} = achievement name
        "Include_TribeName": true,                            // Include tribename in playername
        "MessageSender": "AdvancedAchievements",            // Name of text sender.
        "Message_Color": {                                    // Color of message.
            "Red": 255,
            "Green": 255,
            "Blue": 50
        }
    },
    "Achievements": [    // Achivements list
        {
            "Name": "Entry Hunter",                        // Name of achievement
            "Description": "Kill 1 wild dino",            // Description of achivement
            "Rewards": [                                // Rewards. can be as many as u like.
                {                                    
                    "command": "AddPoints {} 500",        // Example command reward {} is switched with steamid. also works with no {}
                    "Requires_Permission_Group": "",    // if any group set, will only give this reward to members of this permission group.
                    "Only_Once_Per_Character": false,    // If true this command can only be given once per character.
                    "Timed_Reward_In_Seconds": 0        // If greater than 0, will wait X seconds to run command.
                },
                {
                    "arkshop_points": 100,                    // Example arkshop points reward.
                    "Requires_Permission_Group": "vip,vip2" // You can use multiple permission groups in any reward. Comma separated list.
                },
                {
                    "permission_group": "Huntard",            // Example group reward, player will receive this group upon acvhivement completion.
                    "Requires_Permission_Group": ""
                },
                {
                    "dinosaur": {    // Dinosaur as reward.
                        "BluePrint": "Blueprint'/Game/Aberration/Dinos/CaveWolf/CaveWolf_Character_BP.CaveWolf_Character_BP'",
                        "Level": 100,
                        "Neutered": false
                    },
                    "Requires_Permission_Group": "vip,vip2"    // Again, you can use comma separated list here.
                },
                {
                    "item": {    // Item as reward.
                        "BluePrint": "Blueprint'/Game/Aberration/Dinos/CaveWolf/PrimalItemArmor_CaveWolfSaddle.PrimalItemArmor_CaveWolfSaddle'",
                        "Quality": 1.0,
                        "Quantity": 1,
                        "ForceBluePrint": false
                    },
                    "Requires_Permission_Group": "vip,vip2"
                }
            ],
            "Requirements": {    // Requirements for player to unlock this achivement, can be any combination of the following...:
                "PlayTime": 0,
                "DinoKills": 0,
                "PlayerKills": 0,
                "WildDinoKills": 1,
                "DinosTamed": 0,
                "DeathByPlayer": 0,
                "DeathByDino": 0,
                "DeathByWildDino": 0
            },
            "Message": {                // Message to send players upon achievement completion.
                "SendMessage": true,    // Sends message if true...
                "MessageText": "Congratulations! You earned the achievement of Entry Hunter!",
                "Message_Color": {
                    "Red": 0,
                    "Green": 255,
                    "Blue": 0
                },
                "Notification": {
                    "SendAsNotification": true,
                    "Size": 2.5,
                    "Display_Time_Seconds": 20
                }
            },
            "NextAchivement": {                        // Simply add more achivements like this infinitely ! well.. up to a 1000 in one series.
                "Name": "Intermediate Hunter",
                "Description": "Kill 10 wild dinos",
                "Rewards": [
                    {
                        "command": "AddPoints {} 500",
                        "Requires_Permission_Group": ""
                    },
                    {
                        "dinosaur": {
                            "BluePrint": "",
                            "Level": 100,
                            "Neutered": false
                        },
                        "Requires_Permission_Group": ""
                    
                    },
                    {
                        "item": {
                            "BluePrint": "",
                            "Quality": 1.0,
                            "Quantity": 1,
                            "ForceBluePrint": false
                        },
                        "Requires_Permission_Group": ""
                    }
                ],
                "Requirements": {
                    "PlayTime": 0,
                    "DinoKills": 0,
                    "PlayerKills": 0,
                    "WildDinoKills": 10,
                    "DinosTamed": 0,
                    "DeathByPlayer": 0,
                    "DeathByDino": 0,
                    "DeathByWildDino": 0
                },
                "Message": {
                    "SendMessage": true,
                    "MessageText": "Congratulations! You earned the achievement of Intermediate Hunter!",
                    "Message_Color": {
                        "Red": 0,
                        "Green": 255,
                        "Blue": 0
                    },
                    "Notification": {
                        "SendAsNotification": true,
                        "Size": 2.5,
                        "Display_Time_Seconds": 20
                    }
                },
                "NextAchivement": {    // A achivement series end, when there's no next... :)
                
                }        
            }
        },
        {    // Start of series 2... :)
            "Name": "Entry Dino Victim",
            "Description": "Die to a wild dino once.",
            "Rewards": [
                {
                    "command": "AddPoints {} 500"
                },
                {
                    "dinosaur": {
                        "BluePrint": "",
                        "Level": 100,
                        "Neutered": false
                    }
                },
                {
                    "item": {
                        "BluePrint": "",
                        "Quality": 1.0,
                        "Quantity": 1,
                        "ForceBluePrint": false
                    }
                }
            ],
            "Requirements": {
                "PlayTime": 0,
                "DinoKills": 0,
                "PlayerKills": 0,
                "WildDinoKills": 0,
                "DinosTamed": 0,
                "DeathByPlayer": 0,
                "DeathByDino": 0,
                "DeathByWildDino": 1
            },
            "Message": {
                "SendMessage": true,
                "MessageText": "Congratulations! You earned the achievement of Entry Dino Victim!",
                "Message_Color": {
                    "Red": 0,
                    "Green": 255,
                    "Blue": 0
                },
                "Notification": {
                    "SendAsNotification": true,
                    "Size": 2.5,
                    "Display_Time_Seconds": 20
                }
            },
            "NextAchivement": {
        
            }    
        }
    ],
    "BossList":[    //List of creatures that will trigger special rewards upon death!
        {            // All rewards here will be given to all tribe members /allies in set radius of dead creature.
            "BluePrintPath": "Blueprint'/Game/Mods/Ragnarok/Custom_Assets/Bosses/Dragon_Character_BP_Boss_Easy_Ragnarok.Dragon_Character_BP_Boss_Easy_Ragnarok'",    // Blueprint path to boss/dino
            "RangeRadiusForReward": 20000,    // Radius to find players for reward. 20000 ~ 200 meters.
            "Rewards": [    // Example reward of giving The Island ascention for killing Ragnarok Dragon! You can use any of the rewards used up in achivements.
                {
                    "command": "playercommand Ascend1",    // Gamma the island ascention
                    "Only_Once_Per_Character": true,    // Once executed once per character...
                    "Timed_Reward_In_Seconds": 180        // Players will receive it 3 minutes after killing set boss/dino.
                }
            ],
            "Message": {
                    "SendMessage": true,
                    "MessageText": "GAMMA Dragon is DEAD!\nIn 3 minutes You Will Ascend +5 Levels!",
                    "Message_Color": {
                        "Red": 0,
                        "Green": 255,
                        "Blue": 0
                    },
                    "Notification": {
                        "SendAsNotification": true,
                        "Size": 2.5,
                        "Display_Time_Seconds": 20
                    }
                }
        }
    ]
}
Included example config contains more example achievements and all ragnarok dragons with corresponding ascension.

Ingame Commands:
  • /stats <1-8> - Shows leaderboard. If no number shows helper message.
  • /mystats - Shows players personal stats.
  • /achievements - Shows players unlock-able and already unlocked achievements.
Console Commands:
  • cheat AA.Reload - Reloads config file.
RCON Commands:
  • AA.Reload - Reloads config file.


Purchase Info:
After payment join my Discord via "Get Support" button (top right), and send me your hwid. The plugin will print it in console when not authorized.
Please give me at least 1-24 hours to setup hwid info. No new DLL is needed.
This purchase comes with basic support if needed.

Hwid Info:
- Each license represents a physical machine, so 6 ark servers running on one machine would only need 1 licence, Additional licensee's are required when using multiple physical servers.
- Are you moving server host/upgrading hardware and worried about the hwid? Not a problem send me a pm, here or on discord, with the new hwid and I will have it updated. In most cases within the hour, but it can take up to 24 hours depending upon my availability at that moment.

For questions or more information join my Discord via this link: https://discord.gg/fGPevkF
(This is a temporary link, and unless assigned a role, you automatically leave server when you go offline on discord.)
Author
woolypenguin
Downloads
11
Type
Digital product
License duration
1 Years
Renewal price
11.00 EUR
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from woolypenguin

Latest updates

  1. Daily Achievements !

    - Added daily achievements separate from the long term ones. - Fixed som players riding dino...
Top