Ultimate Chicken Horse: How to Edit Your Ruleset Files

Modify the .ruleset files for a little more customization for your rule presets than what is supposed to be possible.

 

Introduction

Hello world! You might have already seen this guide on how to edit your custom map’s .snapshot files to make some extra spicy levels! I’ve taken the liberty of poking around the preset files to see if you could do something similar, and in fact you can! Doesn’t it low-key agitate you that you can’t set point values to exactly half of a point without using the handicap system? Well I got a surprise for you!

NOTICE: You are modifying you .ruleset files outside of the game client! I take no responsibility for what happens to your file(s) from you following this guide, nor am I liable if using these hacked presets in online matches gets you trouble somehow. Although I wouldn’t have made this guide if I thought you were in any danger of either or against Clever Endeavour’s EULA, but I felt like saying it for the record.

Tools

For this guide you’ll need these:

  • Ultimate Chicken Horse (duh)
  • Any program that can zip/unzip files (Windows Explorer might not cut it here)
  • Any text editor

Keep reading if you want some recommendations.

Where to access

First, navigating to the game folder that holds all your presets.

Originally posted by vitribit:

The files can be found in these directories:

Windows:

C:\Users\[your Windows username]\AppData\LocalLow\Clever Endeavour Games\Ultimate Chicken Horse\

Mac:

/Users/[your Mac username]/Library/Application Support/Clever Endeavour Games/Ultimate Chicken Horse/

The […] files that the game generates are actually just XML files compressed with LZMA. What this means is you can change the file extension […] to ‘.lzma’ and unpack the file with your favorite decompression tool. (If you don’t have a favorite, there’s 7-zip for Windows[www.7-zip.org] or The Unarchiver for Mac[unarchiver.c3.cx].)

It might also be possible with WinRar if you already have that, but I couldn’t immediately figure it out and just opted to use 7-Zip myself. It really is just as easy as right-click > 7-Zip > Extract Here once you’re in the ..\Clever Endeavour Games\Ultimate Chicken Horse\rules\ folder.

Editing the ruleset

Let’s start by dipping in-game real quick to make a basically-default preset. It’ll be nice to have a fresh template to use. After you have that, extract the file so it’s readable.

Extracting probably removed the .ruleset extension. Rename the file as such so the game will recognize it later. (Files without the extension will be ignored.) You’re now ready to open the file with any text editor of your choosing. I’d personally recommend Notepad++[notepad-plus-plus.org] if you’re on Windows. With that said, your OS’s default text editor would be usable if you are a loser don’t mind it looking ugly and being less functional.

Go ahead and set the language as “XML” so it’s a little more pleasing to look at, and maybe enable word wrap too.

If it looks like this, then you haven’t extracted it yet, or have done so incorrectly:

But if you have readable text and words, you’re good to continue.

The structure for the ruleset is

  • <Ruleset>
    • <rules>
    • <points>
    • <blocks>
    • <mods>

Hopefully these are all self-explanatory on what they affect within the preset. If not, go find another guide that explains them. You shouldn’t be here!

Also, don’t worry about recompressing the file once you’re ready to use it in-game! It’ll read just fine uncompressed, so just make sure it keeps its structure and has the correct file extension.

General rules

The core rules like round limit and respawn settings, which will be <rules>. There’s actually little of anything you can do here that you can’t do in-game because of some safety checks, but I’ll go over it anyways.

It should look something like this:

They all should be self-explanatory, but you’ll notice MaxScore is set to 250. That’s actually the default! As far as the code is concerned, one full point in the game is equal to a value of 50, thus, 250 is worth 5 goal points. Just think of it as x*50, x being the desired score limit.

Unfortunately for us, the devs knew better than to not have some safeguards in place that prevent players from, oh I don’t know, change these values to something lucrative like MaxScore=”32750″ or CreativePiecesPerRound=”1337″. If you give it an crazy value, it’ll place it back in bounds. For example, setting the round limit to over 9,000 will place it back in-bounds to 50 once the preset is loaded in the treehouse. I haven’t tried this with everything yet though.

You also can’t set MaxScore to a value that isn’t an increment of 50. Trying to do so will round it to the nearest 50 instead. The same cannot be said for run time limits, so if you want value that isn’t an increment of 15 seconds, then go for it!

Point values

GUYS GUYS GUYS YOU CAN SET POINT VALUES TO EXACTLY HALF A POINT!!!
*Ahem* Excuse my outburst. Anyways, point values. The settings that decide the weight of each point type, which will be <points>. Should look similar to this:
As I mentioned previously, points are measured in increments of 50. Goal has a value of 50, Solo’s value is 30, and so on. So if you want Postmortem points to be worth half of a Goal, just set it to 25!

Unfortunately, 1/3 and 1/4 point values are off the table. When Value=”12″ it’ll give 24% of 1 point, and Value=”13″ is 26%. Trying to force a value of 12.5 just confuses the game and gives you 100% of 1 point, which is exactly what you see in the previous screenshot. (The loaded preset there has trap points set to 12.5.) My theory is that the game is expecting an integer, (whole number) and when putting a decimal breaks that expectation, it defaults to 50.

I’m sure you’ve noticed by you can do more than just changing the value. Excluding that and type, the other parameters are:

  • AlwaysAward
  • Enabled
  • HotseatAllowed
  • RequiresWin

AlwaysAward won’t consider the number of players who failed that round when deciding if a player deserves that point type. Enabled is… you know… if its enabled or not.

As for the other 2, I’m not entirely sure. HotseatAllowed is – by default – set to true for all types except First through Forth, and that led me to thinking it had played into how Solo overriding worked or something to do with Shared Controller Mode, but I found nothing. I was so sure RequiresWin meant what it says: this point type requires you to “win” that round. (E.g., if you deserve a trap point, you wouldn’t be rewarded with it if you didn’t also make it to the flag.) But my testing revealed otherwise. I had player 3 earn a trap point and then fail the round, but was granted the point anyway. I triple checked that Trap’s RequiresWin was changed to True.

Oh right, almost forgot. You cannot set point values out-of-bounds. Setting Goal to 110 will revert to 100, (equal to 2.0 points) the max value you can set points to. Again, I was hoping this was only rendering the value to 2.0 points, but it reverts it in game function also. Go figure.

Blocks

Block probability. Which stuff is more common in the party box, which is simply <blocks>. Should basically look like to this:
Nothing too complicated here. The only parameters are

  • BlockID, which block it is
  • Enabled, whether its enabled
  • Frequency, how many notches from 0 to 9 on how common it will be.

Also Enabled doesn’t seem to do anything. If you want to disable a block, set its frequency below 1. This leads me to assume this parameter is outdated but still exists in the game code because it’s not worth the hassle of completely removing.

A Frequency of >9 just maxes the value, and a negative number simply disables it. Boring, I know, but hey, since all the BlockIDs are in order in both the .ruleset file and the block probability menu, it would probably be a good way to keep track of them when editing your .snapshot files

.

Modifications

Game modifications modify your match in the same way a blue sky means the sky is blue. It’ll be under <mods>. Here’s what mine looks like:
So I was going to completely ignore this part, assigning it has homework for anyone who wanted to tinker with the various values, but a mod I didn’t recognize caught my eye: “MirrorControls”. I figured this was being lumped together with flip horizontally, but I saw CameraFlipMode also, so it told me that MirrorControls wasn’t available to edit and was changed automatically depending if you had CameraFlipMode to involve flip horizontally. Did that mean you could enable it by itself without flipping the camera?

Why yes, yes you can. And it’s SOOOO much more annoying than seeing a run time that isn’t divisible by 5. It’s supposed to be so that flipping the horizontal camera flip doesn’t invert your X axis controls, so it boths flips the camera AND your controls, so the double negatives cancel out and life is good. But this secret modifier doesn’t show up on the list, so if you enable it in your text editor, you’re gonna have a bad time.

There might be more secret stuff here, but I’ll leave you to discover. If you want, talk about your finds in the comments and I’ll credit you here.

A few more things

If you’re gonna edit your presets with the game open, know that you don’t need to restart your game to see your changes. Just close and remake the lobby. Any edits you make in-game will have the game recompress your file.

Personally, I find the 125 character limit on the preset descriptions to be annoying, I like getting specific on the things it changes for the people who care enough to look before the match starts. And if you’re like me, you’ll be happy to know going beyond this limit in the file (see Description under <rules>) renders all your extra text no problem, although I’m sure there’s a breaking point. You should be fine under 500 characters.


Thanks to JuLY.LION for his great guide, all credit to his effort. you can also read the original guide from Steam Community. enjoy the game.

About Robins Chew

I'm Robins, who love to play the mobile games from Google Play, I will share the gift codes in this website, if you also love mobile games, come play with me. Besides, I will also play some video games relresed from Steam.

Leave a Comment