Welcome to Open Carnage

A resource for Halo Custom Edition and MCC modding, with unique means of rewarding content creation and support. Have a wander to see why we're worth the time! - EST. 2012


  • Content count

  • Joined

  • Last visited

  • Raffle Tickets


Reputation Activity

  1. Java liked a post in a topic by Pfhunkie in SoTM Submissions & Hall of Fame   
  2. Java liked a post in a topic by Zatarita in SeT team - progress   
    So, things have been a bit quiet from my front this past month, but I figured I’d post an update to some of the progress that’s been getting made. When I say “team” I currently mean myself; however, I am looking for people to join. If you’re interested shoot me a dm
     onto the updates!
    SeT had a major revision. I refactored everything to utilize polymorphism a bit more. Hopefully to keep things a bit more organized.

    There have been 2 major updates to SeT. One is SEK. Which is a saber editing kit. It’s a hek style set of tools that will be used to modify saber files. this is going to replace SuP. Planned tools are:
    S-edit - a guerillaesque program used to edit the files inside the saber paks.

    s-tool - a tool-esque program used to compile new files.



    P-arc: this will let us pack All the mod files into one file (.s3dpak, .ipak, .imeta, .fmeta, .map). It also lets us send only the modded files, greatly reducing file size.

    File size comparison (desert hog mod):

     my hopes is this will simplify modding cea, and make it more user friendly.
    besides planned programs, my hopes is to create an export/importer with templates to blender.
      Coordinates, texture coordinates, and faces have been mapped out for cea. This means I can extract most of the model data; however, this is only for “simple” meshes. I have not found rigging data. Research is still being done. I’m going to attempt to manually build a model into a template to test building soon.

     lastly, While the primary focus is for h1, I have been poking around with h2a as well.
    I managed to extract the contents of the h2a pck files. I have a lot of templates from there as well.
     I figured out some of the model data for them as well; however, I wasn’t able to figure out texture coordinates, or rigging information for that either.

     is your interested in helping out, I could really use a hand. I only have ~2 days a week that I can dedicate to this.
  3. Java liked a post in a topic by Kavawuvi in Update: Another update on Lua and a FAQ   
    First off, after posting the previous news post about Chimera's Lua scripting, I was informed that requiring people edit the ini file in order to install -5XX scripts was, in fact, super dumb. Having thought about it, I agree.
    So, instead, I'm going to have a folder based on the Lua API version:
    Newer scripts go in to api-3 as such:
        scripts\api-3\my-1.0-script.lua Older scripts go into api-2 as such:
    I'll still allow you to configure in the ini whether or not you want scripts to load automatically or load certain scripts not automatically, but the default option will be to load everything automatically.
    Next, some frequently asked questions I've gotten over the new Chimera Lua API.
    What is the expected release date?
    I don't typically promise release dates. Sorry! Even though I have been working on a lot of other things, I'm still working on this Lua API to get everything I want in here, and maybe more based on feedback.
    Will scripts be available on release?
    There are a number of scripts I've written or will be written that will come with the newer API. Here are some examples:
    Auto balancing If teams are unbalanced, then the next player to die gets switched. This is retuned so it does NOT switch players who have contributed towards the team score in objective games. Xbox safe zones Elements at the edge of the screen will be drawn towards the center of the HUD. Taxi If you type "taxi" in chat, then you will be teleported to a vehicle, with the following order of priority (so if it doesn't find one, it checks for the next): Driver seat of a vehicle that is occupied by a friendly gunner or passenger Gunner seat of a vehicle that is occupied by a friendly driver Passenger seat of a vehicle that is occupied by a friendly driver Driver seat of a random unoccupied vehicle (optional) A warthog spawns at your location (optional) If you recently exited a vehicle, you will not teleport back to it unless there is no other vehicle to teleport to Recommended for Race Anti-glitch If you are outside of the BSP for longer than three seconds, you will be respawned Spawn protection If you spawn, all damage taken will be heavily reduced until you move. While protected, you will be unable to damage other players or throw grenades.  
    As I give copies of the new Lua API to more testers, I imagine some people may even make scripts of their own and submit feedback. This is something that I want to be "semi-open" in which you may ask for builds. Of course, any time this is distributed, source code will always be public under a branch as per version 3 of the GNU General Public License.
    Do Lua scripts have to be GPL?
    Generally, they'd only have to be GPL if your scripts use GPL code or they are distributed alongside a GPL library or program such as Chimera. Merely writing a script for a GPL program's API does not make the script GPL.
    Will all scripts work with all version of the game?
    No. Many scripts already use memory pointers specific to one version of the game, and while I am providing a means to abstract these hardcoded addresses away in more sane and more universally compatible manner, I imagine some people will stick to what they're used to regardless. To ensure people on other versions of the game do not load scripts that break the game, I'm adding optional functions that scripts can run to tell Chimera what version of the game ([retail, custom, demo] and [client, server]) they can use.
    Will scripts for -5XX work with the newer API?
    Ideally, most older scripts should work fine, but some may not, and that is due to a number of limitations:
    It has one of the incompatibilities listed due to the switch to Lua version 5.4 It was compiled for Lua version 5.3 (we aren't supporting compiled scripts anymore, though it still wouldn't work even if we did) Subtle differences in the behavior of some functions (since they're being reimplemented) It is a map script (we're redoing how these are done)  
    How will I be able to tell if a script is written for the newer or older API on the forum?
    Script releases will have tags.
    Will compiled scripts work?
    Probably not. Script compilation is more-or-less a form of unnecessary obfuscation. There are plenty of (more) effective ways to obfuscate your scripts without compiling your scripts, and while I wish people wouldn't do it, that's life.
    Will scripts work with protected maps?
    That will depend on the script. Some scripts require functionality that simply does not work on protected maps. I'll be looking into adding a variable you can check to see if the map is, indeed, protected. Chimera can already determine this with the chimera_map_info command.
    If anyone has any further questions, feel free to ask away.
  4. Java liked a post in a topic by Jerry in Update: Another update on Lua and a FAQ   
    Well, you're right, there are a lot of people who keep forgetting the ini file haha, so yeah, keeping everything in one DLL is the best way.
    PS: If I'm not wrong, I found a way to fix it without having to use the Lua dynamic library, maybe I'll release a "pack" with some useful Lua libraries fixed to work with the Chimera's built-in Lua VM.
  5. Kavawuvi liked a post in a topic by Java in Chimera Controller Config Bounties (Raffle Tickets!)   
    Config is available
    But utilizing DualShock 4 Controllers + DS4Window = XBox 360 Controllers
  6. tarikja liked a post in a topic by Java in Currently Listening   
  7. Krazychic liked a post in a topic by Java in SAPP Download   
    Here is copies of both 10.2.1 PC/CE Unpacked from the UPX obfuscation Sehe used. Pretty sure it was the cause of Wine on Linux issues.
    Leave the read-only on the dlls; it will update itself back to its UPX obfuscation version.
    Download --- SAPP.7z
  8. Java liked a post in a topic by aLTis in HUD sway   
    This script will move the HUD when you aim, walk sideways, jump, etc. Works on all maps even if they are protected. Should work fine with HAC2 and Chimera widescreen fixes.
    DOWNLOAD: hud_sway.lua
  9. Sunstriker7 liked a post in a topic by Java in Desktop Screenshots   
    Just keeping it alive... Fedora install on laptop
  10. Java liked a post in a topic by Kavawuvi in Update: "New" chat   
    Here's a heavily requested update to Chimera. It's not really that big, funnily enough, since it really only took a day or so to make it, but here we are.
    Basically, a lot of people have been complaining about the blurry, low resolution of the chat. This is because Chimera uses in-game fonts, and these are pre-rendered for 480p and stretched using linear filtering. This is safe to use because it doesn't have any external dependencies, and it works well on Wine, dgVoodoo2, and DXVK.

    Now, with one small change to your .ini configuration, you can use a system font, instead!

    This change affects all Chimera commands that draw text (outside of the console), including showing your frame rate, budget, and coordinates, as well as spectating and showing all of the color codes you can use in chat. And, yes, you can choose which font to use. In fact, you can supply a directory of fonts if you don't want to use a system-wide installed font.
    I can't take all of the credit. Sehe provided some code for me to more or less play around with from his Halo Chat V2, and it was pretty easy to figure out from there. Note that this is not based on Halo Chat V2, itself. And it's actually using the same exact custom chat code it has before, so it's just as configurable as it always has been, not including the addition of font customization.
    Note, however, that there is a caveat to this. Wine does not work well with this, having issues such as incorrect spacing (if using Wine by itself) or rendering artifacts (if using Wine with DXVK installed via Winetricks). Suffice to say, Wine is a less than perfect implementation.

    Also, you cannot use this with the widescreen fix disabled if you're not playing at 4:3. If you do, uh... bad things happen.

    Therefore, if you have the widescreen fix and you are not playing in the 4:3 aspect ratio, this feature will be disabled.
    The widescreen fix requirement and the Wine issues are why it's not enabled by default, but it's easily enabled by editing the included chimera.ini file.
    Lastly, the work-in-progress Lua scripting's draw_text function can utilize this feature by passing a string ("small", "large", "console", "system") in place of a tag ID, and if the user has this featured enabled, it will display using it!

    If you don't want to this in your Lua script, note that passing a tag ID will always use that tag ID (unless it's an invalid tag, which the only text you'll see is "Gathering exception data...").
    Anyway, that's all for now. Enjoy!
  11. Pfhunkie liked a post in a topic by Java in Desktop Screenshots   
  12. Java liked a post in a topic by Kavawuvi in Update: Bug fixes, chimera_map_info   
    This one's a small update:
    I've fixed a crashing issue with loading temporary files when maps in RAM is disabled. An issue with Halo running in the background having issues with focus has been fixed. This fix was submitted by lag supreme (Keystone) from Discord: https://github.com/Kavawuvi/chimera/pull/39 The chimera_map_info command has been added. This will allow you to view the name, build, and some other information about a map such as protection. This was submitted by Jerry from Discord: https://github.com/Kavawuvi/chimera/pull/38
  13. Java liked a post in a topic by Pfhunkie in SoTM Submissions & Hall of Fame   
  14. Java liked a post in a topic by Kavawuvi in Update: Chimera as a server mod?   
    I’ve been getting a few questions about Chimera as a server ever since I’ve announced that I was looking into making it into a server. I figured I’d address them here, too.
    I don’t like to announce things before I do them because that sort of makes me obligated to do exactly what I said, so I’ve tried my best to word things as if it’s merely planned and not promised. I could, for example, get hired for a job and stop working on Halo stuff forever, or I might simply decide not to do this anymore. Or I could tragically get hit by a bus unexpectedly, and while I do hope that doesn’t happen any time soon, I try to make as few promises as possible. So, yeah, take everything I say with a grain of salt, as always, until you can run what I'm saying on your own PC at least. This is the best way to not get disappointed with expectations - by not expecting anything at all!

    What features are planned?
    Chimera already has a number of bug fixes, so it only makes sense that the server should have bug fixes, too. These bug fixes include fast loading and weapon spawn timing being fixed.
    In addition to bug fixes, some extra features have been added such as the option to use Xbox equipment rotation, the option to delete empty weapons, and access to some of Chimera’s ini options such as the initialization options. There are also a few debug commands such as basic teleportation which “just work” on the server.
    Also, for Lua scripting, I imagine that many scripts that work on the client will work on the server since I'm not planning on changing the scripting API. However, some features may work differently, and there may be some events that won't work. Therefore, if your script requires features that only work on the client (e.g. camera control), I recommend checking, in your script, what version of Halo you're running.
    Refer to the to-do list for the planned list of features, though note that I have more ideas than what are listed here: https://docs.google.com/spreadsheets/d/1WzUCMm99xvPDXumGyC4tmmWb_BmJ-ZR-caQUcdAfeRk/edit#gid=0
    And, of course, you have the option to use the mods folder for loading additional DLLs just like you can with the client. Note that any mods you load will be unsupported by myself, of course, but the option is there if you want it.
    Will there be a readme?
    A readme is already included with Chimera, and you can also view this online on GitHub: https://github.com/Kavawuvi/chimera/blob/master/README.md

    How does Chimera compare to SAPP?
    This is a question I get asked the most. Similar to how Chimera is not and never has been or will be a direct replacement for client mods such as HAC2, Chimera is also not a direct replacement for other server mods such as SAPP. This will not change.
    SAPP has features such as its easy-to-use custom events and commands system which Chimera will not include. SAPP also has a very robust admin system which, again, Chimera will not include. And, of course, SAPP includes a number of other heavily used features such as scrim mode, aimbot detection, and a wealth of fun “naughty” commands which, again, will be absent from Chimera.
    All-in-all, besides Lua scripting, bug fixes, Chimera’s existing features, and, of course, support for Wine, there really isn’t much planned for Chimera as a server. In fact, there won’t even be auto updating just like with the client. And, of course, updating Chimera requires restarting the server unlike SAPP which can be replaced in the middle of a game if desired.
    I know a few of you wanted an open source SAPP option of some kind, but the truth is that I’m just not interested in making a SAPP replacement. Obviously, people who want SAPP want an option that provides lots and lots of features out-of-the-box, so I imagine most get SAPP for its utterly titanic wealth of features. Why should I take so many hours to give you basically the same thing? After all, I highly doubt most people even care about the fact that Chimera is open source when it comes to considering their choice of mod, and I don’t blame them.
    Chimera, on the other hand, is intended for people who want to tinker with or fix Halo, and the goal is to provide a lean but open source option with a powerful Lua scripting engine to boot. Anything extra is added through Lua scripts.
    When will this be released (if it does)?
    I don't know. After I finish Lua scripting at least?
    I hope these answer most people's questions. If you have any further questions, feel free to comment below. Don't expect any further updates regarding Chimera as a server until I have something tangible to show you.
  15. Krazychic liked a post in a topic by Java in SAPP Download   
    Here is copies of both 10.2.1 PC/CE Unpacked from the UPX obfuscation Sehe used. Pretty sure it was the cause of Wine on Linux issues.
    Leave the read-only on the dlls; it will update itself back to its UPX obfuscation version.
    Download --- SAPP.7z
  16. Java liked a post in a topic by Kavawuvi in Update: Bug fixes!   
    A couple issues with Chimera have been fixed, except this time they were fixed by other people and not me.
    The issue where objects are interpolated when the game is paused has been fixed. This fix was submitted by Jerry from Discord: https://github.com/Kavawuvi/chimera/pull/32

    The issue where chat input would have some characters being duplicated if typing too quickly was fixed. This fix was submitted by lag supreme (Keystone) from Discord: https://github.com/Kavawuvi/chimera/pull/33
    I'm also going to be adding an option to configure the widescreen fix. Jerry posted some tweaks which got the widescreen fix to work better on a ui.map as well as fix an issue with a Halo 3 HUD. This will have to be configurable per-map, as it causes issues with certain stock assets including the sniper rifle HUD.
    Lastly, a bug where the About information used the wrong bitmap was fixed. This was also submitted by Jerry: https://github.com/Kavawuvi/chimera/pull/31

    Many thanks to everyone who has contributed to this project. You are all awesome!
  17. Java liked a post in a topic by Kavawuvi in Update: More Lua information   
    As of today, I've started implementing the new Lua API, so I'm going to discuss that in this topic.
    First of all, for the API, itself, there are a lot of changes being done in here, with the inclusion of dozens of new functions and callbacks that have been planned. Most of the read_*/write_* functions are the same, but how callbacks are set is mostly different, and some functions have been changed. Scripts that target this API, therefore, will require this to be set:
    clua_version = 3.0 Also, an optional global can be set in addition to this to run a function immediately after initializing. This will allow Chimera to check the Lua API version before executing anything else.
    clua_init = "OnScriptLoad" As you can guess, version 3 of the API, itself, is not backwards compatible with older scripts (which use version 2), meaning you'll have to use the older API for these scripts.
    Which brings me to the next point: How Lua scripts are loaded is now slightly different, and it uses the chimera.ini to determine which scripts to load automatically. Here is an example (commented) configuration:
    [lua] ;=============================================================================== ; Lua initialization settings ; ; This is used to configure Lua ;=============================================================================== ; Set whether or not scripts, by default, are loaded automatically without ; needing the `chimera_lua_load` command. By default, this is disabled. ;autoload=true ; Set whether or not Lua scripts compiled into maps are supported. ;internal_map_lua=true [lua.scriptname] ;=============================================================================== ; Example Lua initialization settings for "scriptname.lua" ;=============================================================================== ; Set whether or not the script can be loaded automatically without needing the ; `chimera_lua_load` command. If unspecified, use the global "autoload" setting. ;autoload=true ; Use an older API (by default, the latest version is used) ;   3 = Chimera 1.0's Lua API ;   2 = Chimera -5XX's Lua API ;backwards_compatibility=2 This does alter how you load scripts. Instead of merely copying the scripts into the scripts folder, you also need to indicate in your ini whether or not you want to automatically load. You can still use the older behavior of loading everything automatically, but you have to set that, yourself. Also, since the newest API is not backwards compatible, you need to specify which API you want to use if you want to use something that is not the latest version of the API.
    For example, if you wanted to install the fp_legs script, then you would copy it to the [Halo's -path]\chimera\lua\global folder as usual, but you also need to put this in your chimera.ini:
    [lua.fp_legs] backwards_compatibility=2 If you don't do this, then it will try using the latest version (version 3) of the API of the Lua API and you'll get an error.
    For scripts that use the latest version of the Lua API, you do not need to put anything in chimera.ini unless you want to configure how scripts are automatically loaded.
    Also, Lua version 5.4.0 is used, and this was released last month. These are the main changes from the Lua readme:
    Lua version 5.4.0 is used regardless of if you use the older or newer API. Simultaneously including two versions of Lua is infeasible, and the differences are likely not significant enough to break any existing scripts.
    Note that everything in this topic is subject to change as I'm still at the start of working on this, and it may be a while before you see a Chimera build with Lua scripting. If anyone has any questions, feel free to reply here.
  18. Java liked a post in a topic by Kavawuvi in Update: Where's Lua scripting?   
    I haven't given any news on the Lua API in a while, so I figured I'd give some news on that.
    One of the reasons this has been taking so long is because of how big Chimera has become. It is a mod that supports Custom Edition, retail, and demo, and I am also working on support for both the server and client. Making this work with one scripting API is pretty challenging, as you may guess.
    Also, the sheer number of callbacks I'm adding into Chimera is unprecedented. Basically, we're looking at over 30 different callbacks being added into Chimera, and many of them have the ability to change the result of the callback.

    I'm also working on a dozens of different functions to reduce or remove the need to use hardcoded addresses/offsets or even signature scanning on the script. This will be to facilitate compatibility between all or almost all versions of the game, and it will make it a *lot* easier for script writers to write scripts, as rather than looking at a list of offsets, you ideally only have to look at a readme.

    -- Old way (unsafe and unclear)
    write_float(player_address + 0x6C, 2.0)
    -- New way (safer while also being quite clear on what you're trying to do)
    set_player_attribute(player_index, "speed", 2.0)

    I'm sorry that this has been taking a long time, and I'm also sorry that this will probably not be backwards compatible with old scripts. However, I think you might appreciate what there is to come.
    (copied from Discord; also I noticed a couple typos: game_begin_cutscene is mutable like game_end_cutscene, and map_load should be game_load_map, and before anyone gets confused, I am not removing the ability to write to arbitrary memory addresses)
  19. Pfhunkie liked a post in a topic by Java in Halo PC/CE Server Browser Screenshot?   
    Probably was... at that point no one was absolute sure how exactly the GameSpyX queries worked (exception for Luigi att that I know of)
    If I had to take a guess the big version difference att was 1.04 and 1.06-1.07 due to 1.04 had the major No CD Key/Hash Check crack att for both client & server public.
    I do remember the numbers being 5,000-6,000 at one point; was between 2006-2009 time frame. After that it was just a slow steady decline. 
  20. Pfhunkie liked a post in a topic by Java in Halo PC/CE Server Browser Screenshot?   
    Probably was... at that point no one was absolute sure how exactly the GameSpyX queries worked (exception for Luigi att that I know of)
    If I had to take a guess the big version difference att was 1.04 and 1.06-1.07 due to 1.04 had the major No CD Key/Hash Check crack att for both client & server public.
    I do remember the numbers being 5,000-6,000 at one point; was between 2006-2009 time frame. After that it was just a slow steady decline. 
  21. Pfhunkie liked a post in a topic by Java in Desktop Screenshots   
  22. Java liked a post in a topic by Conscars in Ghostbuster: a phantom BSP fixer   
    I did a deep dive on what causes phantom BSP a few weeks ago and was able to develop a tool to fix it in compiled scenario_structure_bsp tags. I still suggest you first use the classic tricks like adjusting geometry, ensuring faces in flat surfaces are co-planar, avoiding high poly dense geometry, and preferring 90 degree or shallower angles between faces. However, in a pinch you can use Ghostbuster to fix the tag for you. The tool works by looking for bad BSP3D nodes with dividing planes which incorrectly assume one side is outside the map, and sets that side's child to be the same as the opposite side of the plane. This doesn't have any negative side-effects because the fixes happen deep in the BSP tree where some additional collision checks are still cheap.
    Ghostbuster is a Python command line tool based on Moses' Reclaimer library. You can find installation and usage instructions at the GitHub repo:
    I've also created a c20 page for it:
    I have tested the tool on Danger Canyon and Blood Gulch and observed it removed the known phantom BSP in those maps once recompiled. It has been used on 1 custom map to my knowledge. Given that this is fairly new and only tested for a few maps, exercise some caution and back up your BSP tag before modifying it. Let me know if you see any bugs and I'll try to bust those too
  23. Java liked a post in a topic by Kavawuvi in Funny Pictures and Videos (one per post)   
  24. Tucker933 liked a post in a topic by Java in Running multiple instances of a server on a VPS Help!   
    Multiple Servers This guide will show you how on a single computer how to run multiple instances of the Halo Dedicated Server Software with Gandanur.
    Command Line Arguments
    haloceded.exe -argument [option]
    haloceded.exe -exec c:\haloCE\init.txt -path C:\haloCE\variants -IP -port 2322
    -? : Displays a list of all arguments. -exec : Specify which init.txt file to use for this instance of the dedicated server. The name of this file can be any name. -cpu : When using a multi-processor computer (SMP) server, it is possible to instruct Halo Dedicated Server to run on a specific CPU. To do so, use the –cpu n command line argument (where n is a given CPU, 0 being the first one). -path : Sets the default path to the Gametypes and the log file location. The default is C:\My Documents\My Games\Halo CE\savegames. -port : Different instances must, obviously, use different ports. -port is used to specify the port for the instance being launched. If a port is not specified the server will automatically choose an open port though the chosen port is not reported. -ip x.x.x.x : Server IP address used when you have multiple IP addresses and wish to bind the server to a specific IP address. If this command is omitted in servers running multiple IP addressess the the Halo Server will answer on all IPs. Running Multiple Servers
    The Halo PC & CE Dedicated Server supports multiple instances running on one computer. The maximum number of instances that can be run on a server is 8. When running multiple instances, each instance should use its own init.txt file and unless you desire it should have its own path for gametypes and log files. (See next section to learn how to relocate log files and custom gametype files.)
    Here is an example on how to run multiple instances, assuming the Halo PC & CE Dedicated Server is installed in the C:\HaloPC and C:\HaloCE folder:
    Instance 1: C:\HaloPC\haloded.exe -exec C:\halopc\init1.txt -cpu 0 -path C:\HaloPC\variants1 -port 2307
    Instance 2: C:\HaloPC\haloded.exe -exec C:\halopc\init2.txt -cpu 1 -path C:\HaloPC\variants2 -port 2305
    Instance 3: C:\HaloCE\haloceded.exe -exec C:\haloce\init6.txt -cpu 0 -path C:\HaloCE\variants3 -port 2312
    Instance 4: C:\HaloCE\haloceded.exe -exec C:\haloce\init9.txt -cpu 1 -path C:\HaloCE\variants4 -port 2313
    Another example is if you want to create a local directory (here called LocalDir) where the halo(ce)ded.exe is located: C:\HaloCE\haloceded.exe -path .\LocalDir -port 2313
    Relocating Custom gametypes/log file folders
    Adding this argument to the startup of the Halo CE Dedicated server: -path C:\haloCE\variants1
    It will tell the server to look in the C:\haloCE\variants1 for the \savegames folder that contains your custom gametypes. If enabled the log file will also be written to the same path.
    This is particularly useful for remote access to dedicated servers since the C:\My Documents\My Games\Halo CE\savegames will be determined by the account the server is running under. It is also required when you wish to run multiple instances of the dedicated server each with their own custom gametypes.
    Yes it says Gandanur (mostly I wrote the instructions for it), but this is the generic usage for the dedi software overall. 
  25. WaeV liked a post in a topic by Java in SoTM Submissions & Hall of Fame   
    Pretty sure this is an OSHA violation...