• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

[Mutator] Server Achievements

scary ghost

Grizzled Veteran
Sep 13, 2010
899
316
California
Screen Shots
http://i49.tinypic.com/14n2q6p.jpg
http://oi45.tinypic.com/eb8wa9.jpg
http://oi48.tinypic.com/e6c85c.jpg

Download
https://github.com/scaryghost/ServerAchievements/releases/tag/1.3
https://github.com/scaryghost/ServerAchievementsPack/releases/tag/1.6
http://steamcommunity.com/sharedfiles/filedetails/?id=133011584

About
Server Achievements is a custom achievement engine, hooking into the game to provide handlers for several major in-game events. It also provides:

  • Interface for creating custom achievements
  • A panel for viewing achievements and progress
  • HUD notifications for achievement progress.
  • Persistent achievement progress
  • Ability to use as many achievement packs as desired
The mutator aims to be compatible with all other mutators. As such, the events that it can easily provide handles for are limited. Currently, only custom game rules and timers checking the state of several variables are used to trigger a call to the event handlers.

Achievements
Currently I have written 25 custom achievements split between two packs: a fail pack and fun pack and have implemented roughly half of the stock KF achievements. The package names are in the README and can be added in the ServerAchievements.ini file

https://github.com/scaryghost/ServerAchievementsPack/wiki/Fail-Pack
https://github.com/scaryghost/ServerAchievementsPack/wiki/Fun-Pack
https://github.com/scaryghost/ServerAchievementsPack/wiki/Stock-KF-Achievements

Creating Achievements
I've written a HOWTO for creating custom achievements on the ServerAchievements engine. The wiki link will provide a good starting point.
https://github.com/scaryghost/ServerAchievements/wiki/Creating-Custom-Achievements

More complex examples are in the ServerAchievementsPack source code.

Remote Database
This is a C++ application that stores achievement data from multiple servers. Download the version appropriate for your machine's OS. Start up scripts are available in the "share/bin/" folder. Copy them to the root directory and modify to your desired usage.

Linux 64 bit - https://dl.dropbox.com/u/16251678/saremotedb-linux-x86_64-v1.0.0.tar.gz
Linux 32 bit - https://dl.dropbox.com/u/16251678/saremotedb-linux-x86-v1.0.0.tar.gz
Windows 32 bit - https://dl.dropboxusercontent.com/u/16251678/saremotedb-windows-x86-v1.0.0-xp_fix.zip

Source Code
https://github.com/scaryghost/ServerAchievements
https://github.com/scaryghost/ServerAchievementsPack
https://github.com/scaryghost/SARemoteDatabase
 
Last edited:
Thanks for the comments all. I plan on implementing most of the stock KF achievements and setting up the remote database. Currently I have the map achievements done.

LOL, if I would knew you'll do it, I wouldn't bother myself of doing the same stuff. I spend almost a month evenings to make server-side achievements for ScrN Balance. Anyway, great job, as always!

Haha thanks...you think you know how replication works and then it slaps you in the face reminding you that you know nothing. For a while, I misunderstood what "simulated" meant. Part of the inspiration to make this mod was from ScrnBalance. I liked the custom achievements you had made and I wanted to make my own.
 
Upvote 0
One question, is there any possibility of try to create a similar system like your mod KFStatsx where oneself can access a web page but with achievement information? i don't know if you say that when you say "remote database"

sorry for my english if unless you understand what I say :D

I had given it some thought but I think for now the remote database will only store achievement progress and completed states; it will be a very light application. I don't think having the web feature would be practical because achievement information (title, description, icon) is stored in the achievement packs. A server admin would have to keep a copy of the achievement information updated on the remote server every time there is new content. It would not be a fun task.
 
Upvote 0
I had given it some thought but I think for now the remote database will only store achievement progress and completed states; it will be a very light application. I don't think having the web feature would be practical because achievement information (title, description, icon) is stored in the achievement packs. A server admin would have to keep a copy of the achievement information updated on the remote server every time there is new content. It would not be a fun task.

You right, anyway is beautiful mod and easy to create achievements, thanks :)
 
Upvote 0
Hey mate are you going to be creating more of the achievements we allready finished all of them :D lol
Try ScrnBalance. It requires hundreds of hours to
get all of achievements.

Or this. ScrnBalance has 200+ achievements, more than stock KF iirc. If you really have finished all of the achievements I made, you must be really bad at the game since half of them are specifically made for being terrible ;).
 
Upvote 0
Server Achievements 1.1

Server Achievements 1.1

Version 1.1 of Server Achievements is out as well as an updated achievement pack. The achievement pack has 146 of the stock KF achievements implemented (yes map achievements work) while the mutator has new event handlers and completed tcp link for communicating with the remote database.

The remote database is on the way. It is mostly completed, but needs more testing and to be ported to Windows.

Server Achievement Changes

  • Added 5 event handlers
    • picked up item, hit with a healing dart, reloaded current weapon, tossed frag, and fired current weapon
    • See the Event Handlers page on the project wiki for function definitions
  • Changed notification popup to cut off long achievement names
  • Completed the tcp link code to save and retrieve achievement progress from a remote database
  • Added progress bar in the achievements panel
Server Achievement Pack Changes

  • Implemented roughly half of the stock KF achievements
    • All map achievements and most of the weapon related achievements are done
  • Fixed a bug with the maxProgress value of the "Professional Demolitions" achievement
For the map achievements, I slightly changed the requirements for completing them and separated them into 4 packs, one for each difficulty sans beginner. The player must have played at least half of the waves plus the patriarch wave in order to unlock the map achievements, and the length requirement has been changed to be medium or long.

The README file has the achievement class names to use for ServerAchievements.ini config file.

Download
https://dl.dropbox.com/u/16251678/ServerAchievements_v1.1.zip
https://dl.dropbox.com/u/16251678/ServerAchievementsPack_v1.1.zip
 
Last edited:
Upvote 0
Remote Database v1.0 and Server Achievements v1.1.1

Remote Database v1.0 and Server Achievements v1.1.1

Remote Database
The remote database is finally completed and ready to go. Please download the version appropriate for your server's OS. The README.md file in the package has start up instructions and a sample script to start the server is located in the "share/bin" directory. You can copy it to the root directory and modify it as needed.

Linux 64 bit - https://dl.dropbox.com/u/16251678/saremotedb-linux-x86_64-v1.0.0.tar.gz[url]https://dl.dropbox.com/u/16251678/saremotedb-linux-x86_64-v1.0.0.tar.gz[/URL]
Linux 32 bit - https://dl.dropbox.com/u/16251678/saremotedb-linux-x86-v1.0.0.tar.gz[url]https://dl.dropbox.com/u/16251678/saremotedb-linux-x86-v1.0.0.tar.gz[/URL]
Windows 32 bit - https://dl.dropbox.com/u/16251678/saremotedb-windows-x86-v1.0.0.zip[url]https://dl.dropbox.com/u/16251678/saremotedb-windows-x86-v1.0.0.zip[/URL]

You do not need to migrate any data from the ServerAchievementsProgress.ini file. The mutator will use the saved data from that file if the remote database has no data on the desired player and subsequently save it to the remote db upon match end or logging out before then.

The Linux versions are compiled on openSUSE 12.2 x86_64. If there are any issues running the server, there are instructions in README.md on how to obtain the source code and compile it on your target Linux machine.

Server Achievements v1.1.1
I have also updated the mutator with a small bug fix with data deserializing and a minor change to the remote broadcasting feature. you can download it here:

[url]https://dl.dropbox.com/u/16251678/ServerAchievements_v1.1.1.zip[/URL]
 
Upvote 0