Posts on Jul 2012

New Installers/Packages

New installers/packages for Mac/Windows/Linux are now present on the download page.  We have been wanting to update them for a while, but technically nothing was broken and we had higher priority matters to worry about.  The main reason for updating these is to reduce the number of updates that new players need endure as well as changing one or two default config values.

If you have any problems with the installers, please PM me on the forums or e-mail support (support at thd dot vg).

Unrelated, there may be one or two more hotfixes out throughout the day today.  You can find details on those in the 469 release thread on the forums.


Build 469: Hotfix

Just to let you know I’ve just pushed a hotfix for a couple of issues that sprung up after release of 469:

– Fixed guards not having access to the admin menu

– Fixed everyone joining blue team by default when first connecting to the server


Build 469

Build 469 is out and is mostly made up of an assortment of seclev additions + several miscellaneous changes.

Notable things you might like include the ability to assign seclevs through the admin menu, the ability to restrict what classes/teams people can play with using seclevs and the ability to custom-define what levels of zoom are available to everyone (or even define this by class).


  • Mostly fixed so that you can add extra classes without them defaulting to builder. Requires that you add an extra field to class config files called ‘tool’ that has the value ‘Knight’, ‘Archer’ or ‘Builder’. Name can be whatever you like now. Please try this out and report bugs with it (and any workarounds you find) because it hasn’t been tested very extensively.
  • Made guard color overrided by admin_color in all cases (previously wasn’t on player mouseover)
  • Strip out multiple consecutive white space characters in chat, replace with one space
  • /login and /logout restricted to serverside only
  • Removed editor zoom help text as it is no longer available
  • Class restrictions (feature = no_class_[classname] where [classname] is the name of the class)
  • Team restrictions (feature = no_team_[teamname] where [teamname] is the name of the team)
  • Admin menu re-org (Admin>Team>Player>Moderator Action) + hide actions based on seclev immunity
  • Spectator team in admin menu
  • Spectator chat grey
  • Added autoconfig option to allow the seclev feature join_full to work, sv_enable_joinfull
  • Reserved slots, set with sv_reservedslots (feature to use in seclevs: join_reserved)
  • Spectator slots, set with sv_spectatorslots (if set to 0, spectators just use regular slots – if you want to remove spectators altogether, remove them from seclevs)
  • Join as spectator button added to browser
  • Allow /login to work with no password set
  • Freeze immunity (feature = freeze_immunity)
  • Speedhack kick immunity (feature = speedkick_immunity) (this is a temporary fix to work around modded servers that have speeded-up their classes in such a way that the speedhack detection gets false positives)
  • Seclev muting (feature = muted)
  • Deny access with deny_join (will also kick if done mid-game)
  • Fixed ‘x has been voted to be kicked’ bug
  • In-game seclev assignment through /rcon /assignseclev or admin menu
  • Added LoadSeclevs(filename);
  • Added /rcon /reloadseclevs [filename]
  • Disabled same account connecting to a server multiple times
  • New gamemode var: max_zoom_out. This can be ½/3 and defines how many levels of zoom there are.
  • 3 more gamemode vars: zoom_level_1, zoom_level_2, zoom_level_3. These set the cam distance at each of these zoom levels.
  • These gamemode vars can also be added to class config files to override them for that class only.
  • Non-fixed cam works at zoom level 1 now. Was forced to fixed previously.

Little extra info on how to set the zoom levels:
Default levels are:
max_zoom_out = 2
zoom_level_1 = 2.0
zoom_level_2 = 1.0
zoom_level_3 = 0.5

Bigger zoom (zoom_level_½/3 values) = more zoomed in.
Bigger zoom level (max_zoom_out value) = more zoomed out.

Discuss this update here!


Workshops Week

“But we already have workshops…”, you’re thinking to yourselves.

Well, that may be true, but you don’t have workshops like we’re working on workshops. Literally all of the functionality is squirreled away in scripts, meaning that you can make workshops do whatever the hell you want them to do, build menus for them from nothing OR tweak the stock shops with ease. The workshop code will be a great place to start learning AngelScript for those new to C-like languages.

Technology research is partway done, the system reads and writes technologies properly but doesn’t quite update the menu of the research shop yet, that’s something for next week. 🙂
Here’s a shot of me tending my new garden. How quaint:
We’re thinking you’ll likely be able to hock possessions throughout the game on some sort of export market for coins, so those flowers would be uprooted quicksmart for some dosh. This means minecrafters aren’t quite as much of a waste of space, since you can at least sell the fruits of their labour.

Michal has been working his butt off recoding several of the internal systems to be simpler to work with via configs, especially with regards to how sprites are handled. Entities can now have multiple layers of sprites, which means that with some clever scripting, complicated animations can be put together with what would otherwise have taken hundreds of frames (naturally noone wants to sprite that kind of thing!)

The entire physics system has also been rewritten to a point where we’re mostly happy with it (and it’s much easier to work with, both in pure configs and with scripting). Some more tweaking will probably happen next week as we start working with characters.

We’re working on making classes and actors non-hardcoded at the moment so that classes can be added and removed fairly trivially. We might not have time to add all the planned classes by the deadline, but we’ll have the groundwork done to get them done afterwards if need be.
…It’s not working properly just yet though, haha.

Tom got his excellent Seclev code out this week and I got to add a few extra variables to water to extend its applicability to deathmatch, which will hopefully see some adoption soon. Pretty sure Rayne is cooking up a tide based RTDM server.

Discuss these developments here!

Until next week,

Build 458

Build 458 is out and the main new feature being introduced is security levels, also known as seclevs.

The full details of what seclevs are and how you should use them are included on the wiki, here.

The gist of it is that server owners now have complete control over who can do what on their servers.

No more pesky logging into rcon is required, either. You can easily setup a seclev for your admins that will immediately give them access to their admin powers when they join your server, as well as a seclev with even more powers just for yourself. You can even setup a VIP seclev for your trusted non-admin users to give them slightly more access than other users (for example, not allowing users to mark players as griefers until you trust them).

You can find example files showing you how to configure seclevs in KAG/Base/Security. They all have the extension .example – if you make copies of these files and remove the .example part you will be left with a decent start point for configuring your own seclevs.

We are officially phasing out guards (i.e. we are no longer recruiting them), so it is strongly encouraged that server owners build up a list of trusted admins that they assign access to with seclevs.

However, guards still exist and you will be able to assign them exactly what admin powers you feel comfortable with them having, separately to your other admins (or, for example, take away a single guard’s admin powers).

There have also been changes to the way in which blacklists/whitelists are stored.

securitysetup.cfg has now been moved to KAG/Base/Security/securitysetup.cfg and inside this file you define the file paths to your whitelist/blacklist. If you copy the contents of your old securitysetup.cfg (in KAG/Base/Scripts) to KAG/Base/Security/blacklist.cfg (or whatever file you define in securitysetup.cfg) then your bans will be preserved. If you were using a whitelist, copy to whitelist.cfg instead. In both cases, you shouldn’t need to worry about adjusting the formatting, that should all be sorted out the next time you start the server.

Additionally, the way you login to rcon has changed – there is now a specific command for it. If you want to login, use /rcon /login [password]. You can also logout now using /rcon /logout.

There has also been a change to the way we check if you have accepted the terms or not, so don’t be surprised if you are required to accept them again.

There are also a few other fixes included.


  • Added security levels (see blog/wiki)
  • Moved location of securitysetup.cfg to Base/Security
  • Moved white/blacklists to their own files (paths defined in securitysetup.cfg)
  • Changed logging into rcon to use /rcon /login [password]
  • Added /rcon /logout to logout of rcon
  • Modified /reloadsecurity to reload seclevs in addition to black/whitelists
  • Added /printseclevs for printing seclevs
  • Fixed respawn timer behind chat window (#152)
  • Potentially fixed memory leak with water

Discuss this post here!


Hotfix for beep abuse

A hotfix has been pushed out to address the beep issue that is being abused increasingly wide across servers.  Servers do not need to be restarted for this fix to work for all clients, so you only really need to restart/update your server if you are running it in a console where you are hearing beeps.


The Adventure of Meow

The KAG team have been wanting to share the excellent work of xiaojin67 for some time! This comic will give you a taste for what the comic is like, very tongue-in-cheek and always relevant to the game in the strangest ways:

The series has progressed to the point of a regular continuous plot now, and you can view the whole thing on the forums here!

I might be posting more of these on the blog from time to time to keep those too scared of the forums vaguely up to date, we’ll see.


Intrusion 2 is out!

We’ve been scheming with a few other like-minded indies about getting the word out about each-other’s games, and one of those has hit a fantastic milestone of actually being 100% done and out!

Its always nice to see an ambitious project by one guy actually make it to the finish line, so without further ado, here’s the trailer:


The trailer pretty much explains what happens in the game (Metal slug, but with physics behind everything and a sprinkling of crack), but there’s also a demo to noodle around in and the game is ten bucks to buy for keeps.

If you’re interested in the tactical physics sidescrolling stuff that goes down in KAG, you might want to check this out to tide you over as Michal and I go into crunch on this next update. (Yes, that means soon, no, it doesn’t mean immediately, it’s not even in the tester’s hot little hands yet.)

More dev news coming once workshops are ported over to the new systems, or when progress is made with seclevs, whichever comes first 🙂


A little something that I carved out today. What you see is the draft of the new inventory menu with some placeholder stuff in it. When you hover your mouse over a button a little display will show. As you see you can format this however you like with colors and by adding icons. This is all fully scriptable and writing it is as simple as making a string like “by a sleep to say we end$ROPE$” – which displays a rope icon at the end.


A Mad Week, Deadline coping Plans.

We’ve been recoding a lot of the engine this week, which has been both good and bad (as illustrated by Michal earlier, haha). We’ve made a lot of hard decisions re: what will make it to the initial “release” version, and what won’t. More information once it’s all 100% finalised.

We’re having to do some harsh optimisation on the blob blocks, as on lower end machines castles made of them were quite laggy due to all the necessary physics collisions to keep the castle up. We’re having to rework the map code to allow us to “settle” placed blocks into that map after a short period of time. This means that the sprites need to be moved into the map file, which is why the map code needed rewriting.

Unfortunately this negatively impacts modding a little, as modded blocks won’t be able to settle – sadly, we don’t have time to go about performing this optimisation in a way that’s efficient for both vanilla content and modded content – however if used in conjunction with slightly modified vanilla blocks (the stats of a block are able to be modified, but any visual changes won’t make it clientside for now), most block modding goals can be achieved. We assume that the majority of modification will happen with regards to interactive elements that shouldn’t be made to settle anyway.

The core parts of Gamemode Scripting and Menu Creation have also been exposed to the scripting engine.

As a side-note – ground slopes have been added, which make natural hills much simpler and smoother to navigate.

We’ve plotted out exactly what needs to get done to the day and are on target for our deadline, which is good news for you and for us. It’s going to be rough, but we’ve left a few weeks spare in that timetable for the inevitable delays that creep in.

Feel free to join in the discussion here!


Social Media

Stay up-to-date with our latest news - make sure to follow us on Social Media!