Jump to content
Nightcrawler (2014) has won the movie voting! Vote for the next movie now https://warzone.gg/movievoting

New cases can now be purchased on The Store

Sign in to follow this  
  • entries
  • comments
  • views

About this blog

Latest developments from WarZone Gaming

Entries in this blog


Over the past week or so, I have been working on re-writing the WarZone Discord Bot.

We had one before, but after a while, the API version got deprecated and the bot stopped working. 

The old bot was a bit "meh", but don't get me wrong it was good, but very unstable.

The previous bot was written in C# and had a Lua scripting layer added to it. The idea behind it was that you didn't need to recompile the bot to add functionality to it. You only had to simply create a new Lua file, write your script and restart the bot, job done. And the old bot definitely achieved this, but unfortunately the Lua layer we used, was very unstable and was at the time, the best one available.

So, fast forward about 6 months and the ZeRo show is returning and more people are using Discord to interact with me while I'm on air, and this has prompted me to start a rewrite, along with our newly appointed community manager and requiring these things added.

So, WarZone Bot v2 is a complete rewrite, it uses the latest libraries. I decided to ditch adding any form of Scripting language, it just added time on to development and wasn't really worth it in the long run.

The entire bot is written in C# and everything uses native C#, everything was built using the native Async and Tasks features of the .NET Framework.

The first release has gone out today, it only includes the radio and a few other features at the moment, but there are plans to expand this even further.

So far, this has been implemented:

  • Remote Procedure Call Protocol
  • Radio
  • Announcements (Announce to all, game night starting, movie night starting)
  • User Join/Leave/Ban notifications
  • Slackbot type responses
  • Cross Server Chat integration
  • For admins, send screenshot to Discord functionality.

In the future, I plan to implement:

  • Server list integration
  • Administration System
  • Richer announcements for movie nights/gamenights (Using Embeds)
  • Better account linking system.

Remote Procedure Call

So, for those who don't know what RPC is, RPC is our networking protocol of which it allows the Website (And now Discord) to communicate with each other. Example of this includes selling your item on the market and then a notification appears in-game about it being removed from your Inventory, that is RPC.

As the name suggests, you call a function or procedure remotely. That function executes and returns a response. This applies to a lot of things for WarZone, it allows us to push instant radio stats to the game servers (We also implemented this in Discord also!), it's used for Cross Server Chat, so implementing these things in to the Discord bot is very easy as we've already implemented RPC itself, adding procedures and acting upon it is very easy if our RPC library is written correctly. 

Anyway, that's it. I don't much else to say about the bot except that it's great and it's only going to become even better. 


Update 13.5 has just dropped, and we're now looking at Update 14, the next huge update from WarZone.

So, what can be expected?

Prestige Mode

You probably noticed that when we added the 2018 Service Medals, we added not one, but 6. This is because you will be able to prestige up to 6 times in a single year.

Each prestige you completed, the player will get rewarded items and money. We also intend on updating the existing ranking system to include drops and unlocks at certain levels.

Weapon Stickers

This is, of course, the next big thing.

We are finally going to be adding weapon stickers. This was tried as a proof of concept about a year ago, here is what it looks like on a very old build of WarZone Core.


However, this idea was kept in the back pocket for a while, because due to engine limitations, we couldn't make stickers work correctly with lighting, and we still cant, however we are bringing this forward now because there is some demand for it, and it's entirely a user choice. 

Stickers applied to the weapon, if sold on the market or auction, the buyer will also have the stickers on the weapon once transferred, like CS:GO. Players will be able to remove and add stickers at any time. There will be 4 sticker slots on weapons. You wont be able to apply stickers to knives.

Community Workshop

This is the next big thing coming. We recently announced skin creation and gave out material on how to create skins. The community workshop will be a place where players can submit their custom made skins. 

The following item types can be submitted:

  • Weapon Skins
  • Knife Skins
  • Glove Skins
  • Hats
  • Player Models
  • Music Kits
  • Maps

Users can rate up items they wish to be added.

This is going to be a huge task, but one that is required to move forward in to making community content creation a more integrated part of WarZone.

Timer Engine 4.0

So, this is the next big update for Surf/Bhop etc. 

In this update we hope to completely overhaul the HUD, Re-do the challenges system, include a "completion feed" (Similar to a kill feed, but shows map completions instead, rather than spamming the chat), 3D HUD, Support for saving (to be used or KZ, yes, that's coming also at some point!) and an entire AJAX Web Platform where you can see:

  • Live feed of world records
  • Leaderboards
  • Surf Profile with:
    • Completed Maps, Bonuses and Stages
    • Uncompleted Maps
    • Rank

Redesigned Escape Menu

We're going to be redesigning this again from the ground up. We're designing it to match the rest of our UI design and it's going to include a lot of code for what's coming after, which is the friends system and a match making system. The matchmaking system will be used in the future to match up players across multiple servers who wish to play on some upcoming gamemodes which are designed for matchmaking. Along with this, the new Escape menu will include a lot of the latest feature changes we are making in terms of community relations and integration.

Inventory Folders

This is probably something small, but at the same time, something huge for people with large Inventories.

You will be able to re-organise your entire inventory in to your own custom made categories. Rather than using the existing categories, you will be able to tag any item and put in your own custom category.  This will be a must use feature for anyone with large Inventories who wants to get on top of organisation.

DarkRP Comeback

We're working on DarkRP again, we still have some things to sort out, but sooner rather than later DarkRP is going to be coming back fully. After which we will start pushing it very hard to get a player base. 


Of course, Update 14 being the next major update, expect a few new cases to come along with that also!

That's all for now. We're very interested to hear what you think about these changes, so feel free to comment and leave us feedback. We'd appreciate it.


Over the past month, I've been working at automating the movie night events, so a human never needs to do anything, except one thing once every 6 months.

Phase 1: Automation of the Server

This was the first logical step. To do this, we have a separate movie night server with a module that does the following:

  • Only allows users to go in one theater, Public Theater #1
  • Disables unneeded things like Popcorn, fists and drug dealers
  • Disabling Text Hats
  • Disabling trails
  • Checks every 60 seconds to see if:
    • In 10 minutes, is their an event coming up?
    • If not, check again in 60 seconds
    • If so, get the information for such an event.
    • Remove the server password.
    • Allow users to join the server.
    • Wait 600 seconds and start playing trailers etc for 10 minutes.
    • Queue the movie
    • Wait for the movie to end and kick all players and set a password on the server.
    • Wait 1 week and repeat the process.

The start and end times of movie night events are stored in UNIX timestamps. A unix timestamp looks something like this: 1517142840 - To you that is probably a bunch of random numbers, however this is in fact the number of seconds since the 1st of Jan 1970. Unix timestamps are very easy to work with when calculating time. If you want to take a timestamp for now and add 2 hours to it, you can simply do:

$time = time();
$time = $time + (2 * 3600);

That aside, the automation of the ending is coming up later.

Once the automation of the server was complete, that already made life easier, however there was still more to do.

Phase 2: Event Promotion & Notification automation

The next phase for this is the automation of the promotion of the event and notifications to people who signed up.

This was fairly easy to achieve, and included gamenights also. (Gamenights cannot be automated due to a variety of reasons).

For Movie and Game events scheduled in the "Events" section of the website, it took these and displays them automatically on the homepage slider. This is always at the start so it's the first thing people see when they go to https://warzone.gg/

The next part is the automatic notifications.

Every 60 seconds on the website, a AJAX request is done that checks if any events you signed up for has started.

Like the gameserver, this also uses unix timestamps.

The scripts would receive events which are => to time(); and the end time is > time();

If you were signed up, the AJAX request would return information saying "There's an event starting now, you're signed up to it" and the Javascript would show you a notification and play an annoying notification sound.

This will be coming to the forum also, so no longer need to modify the template and say "This has started now, join!"

Phase 3: Complete Automation

This is what I'm working on now. This takes it to the next level. 

  • A script is ran once a collection of movies is selected for voting
  • The script will use an external API to get all required information such as:
    • Director
    • Actors
    • Release Date
    • Cover Image
    • Running Time (In Minutes)
      • This is converted from minutes to seconds (More on this later)
    • Genre
    • Plot
    • Ratings
    • Trailer
  • Store information in the movie voting table for later use.
  • A script runs every Tuesday at 5PM
    • Get 1 result only, order by votes Descending
    • This will return the highest voted movie on https://warzone.gg/movievoting
    • It will also contain all the movie information from the API that was fetched earlier.
    • Calculate the start and end time
      • Using PHP's DateTime Library, I can get the next Friday date by setting the date to "next friday"
      • Set the time to 19:00:00 (UK Time)
      • Take the duration that we converted from seconds earlier, take the starting UNIX time stamp and add the duration seconds to the start time (+ 10 minutes for the intermission time)
      • This then returns another UNIX timestamp that is roughly 2 hours (Depending on movie) after the starting timestamp
    • Create a movie night event automatically with all the information that we stored from the API
    • Remove the highest voted movie from the movie voting
    • Remove all votes
  • The homepage slider & Gameserver will now pick up on this as the event was scheduled as stated above in Phase 1 and Phase 2

At this point, the process is 90% automated, there are still some things a human needs to do, such as:

  • Obtaining and converting the movie once a week
  • Every 6 months, get a list of movies suggested by the community and add them to the voting.
  • Steam group notifications

Phase 3 is nearly complete and will be coming out in the next few days before the next movie night.


Community Market v2 is now ready for testing. This blog post gives and overview on the new changes to try out and how to report bugs.

Reporting Bugs

If you find any bugs at all, please tell us as quickly as possible! To do so, gather any screenshots if any and a description of the bug and submit it here: https://warzone.gg/reports

Please make sure you put it there. Bugs that are sent to me in PM will be IGNORED

New Changes

Theme Picker



On the market you can now select a theme. Click on this icon to get a selection of various themes. Although this has been tested by myself, this is fairly straight forward and should not present any bugs, however if you do find any, I'd be glad to know about it!





The auction is finally here. Click on the big button "Auction your item" to list one, or look under the various boxes for existing auctions or perform a search.

One interesting test area will be the "ending soon" box to make sure all auctions ending within an hour are displayed there. This so far is untested.



You can remove or view your own auctions under the "Active Listings" tab

Market Profiles & Commendations


When you click on any name you get this popup window with the option to view their steam profile and commend.


Commending works just like it does in CS:GO, you will only be able to tick a box, you can go back later and untick the box and it reduces that commend. This needs testing during the Beta.

Buy Orders

We now have buy orders! The current restriction is that you can only place an order for a single quantity, however this is intentional, despite the UI showing otherwise. Quantity buy orders are expected in the next update.

Go to the item page you want and click "Create Buy Order"



You can view buy orders under "History" along with a status.

Automatic Currency Formatting

With this update, this includes automatic currency formatting in the money fields. See below for example:




That's it for now! Happy testing!


As advanced warning, the following changes will be made on the Community Market for the next update (Expected by Jan 2018)

  • Store Items will become un-sellable completely and all listings for store items will be removed.
  • We will be adding Buy Orders. This will allow you to enter a price and a quantity and automatically buy items when they appear on the market.
  • Buyers will have the option to retain StatTrak kills on a weapon for an extra price before buying.
  • Auction system - Players will be able to put items up for auction where other players can bid until the listing expires, the weapon goes to the highest bidder.
Sign in to follow this