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

Enclusion

Member
  • Content count

    88
  • Joined

  • Last visited

  • Raffle Tickets

    0

Reputation Activity

  1. Enclusion liked a post in a topic by Vaporeon in Halo exe files with HQ icons   
    Here are edited versions of the halo exe files with better quality icons, thanks to tjsase and Jakey on discord for making the images for them.
    The resolution goes up to 256x256 so it will look nicer at larger size views or on high DPI monitors.
     




    The LAA patch is applied to these too so mods like chimera can use more available RAM.
    halo_hq_exe_icons_and_laa_fix.7z
  2. Enclusion liked a post in a topic by Broomish in Hi all!   
    Yesssss that is amazing! You have made me very happy reading this
     
    My old website has fallen into disrepair, unfortunately I have not been looking after it but it is still "sort of working" here: https://www.freewebs.com/broomish/
     
    I am planning on backing up all the old forum posts off that website if I can get a HTML scraper working. Then I will attempt to properly "decommission" it.  The website was all about how to mod Halo Trial, so doesn't really serve a purpose anymore.
     
     
    Also, I am currently hosting a server already on Halo Custom Edition. It is called "Broomish's No Mods" (for direct IP use broomish.eu). That is rotating some of the game types we used to play on Halo Trial on Blood Gulch.
     
    I can also host Broomish's BL and once I get some mods working Broomish's Dedi
  3. Broomish liked a post in a topic by Enclusion in Hi all!   
    LETS GOOOOOOO! I used to play your servers all the time and was active on your forum (back when you hadn't lost broomish.tk). I really missed halo trial so much that I now host a Halo Custom Edition server which recreates the mostly vanilla FFA slayer (plasma pistol start, you know the deal) from my trial servers. Your site gave me so many resources (was 11-13 years old when I first found it) and really fostered my love of hosting servers, lead me to do tons of server work in minecraft. So glad to see you back, I will definitely play on your servers (gonna host broomish's BL????) if you post ips. You helped me set up cool servers that I played with my dad and two brothers, so many family memories which were helped due to the community you set up.
     
    sorrry for the rant, kinda freaking out that you're on here tbh
  4. Enclusion liked a post in a topic by Broomish in Hi all!   
    Hello everyone, Broomish here!
     
    Recently, (in the past couple of months or so), I've got back into Halo CE hosting and modding after many YEARS away.
     
    Back then, I only ever hosted and played on Halo Trial despite owning a legit copy of the game. Halo Trial had a great active community of players which lasted for years. In December 2012 when GameSpy discontinued the master server that hurt us a lot, but there were community patches which kept us going for quite a while after that. In fact, I think I kept on hosting up until around early 2016 but I guess I lost interest especially as the number of players died down.
     
    Anyway, I felt the urge to get back into this and I am so happy to see an active forum of people still modding Halo! I came across Chimera and Invader, which are absolutely fantastic and awesome to see still being worked on.
     
    I am currently working on trying to get some of the mods I made for Halo Trial working on Halo Custom Edition. My main focus was Joiner-Friendly mods and these included log mods. I think I've attached a ZIP here which contains some screen shots of these if anyone wants to check them out
     
    broomish_mods.zip
  5. Nickster5000 liked a post in a topic by Enclusion in Halo CE: Raids   
    You're insane, dude. Keep up the AMAZING work.
  6. Enclusion liked a post in a topic by Nickster5000 in Halo CE: Raids   
    More info here: https://github.com/Nickzster/Halo-Lua-Projects/tree/master/Raids
     
    Hey everyone, so I've been working on this with my bud Ender (GoldyDeWise) for the past couple of weeks, and I think it is in a good state to demonstrate. You can watch the video here:
     
    Feel free to leave any feedback or suggestions! 
     
    Documentation, copied from the github page:
     
    What is Raids?
    Raids is a dungeon-styled gametype for Halo Custom Edition, in which players must work together to defeat bosses. Classes
    Each class in Raids serves a function that is essential to killing the boss. Each class has a set of weapons to choose from, and an ultimate ability. Players can also use equipment to enhance their player with passive effects, like damage boosting, damage reducing, dodging, and critical strike chance.  Spartan (Tank)
    Purpose: To hold agro, and have the boss attack them Max Health: 500 Ultimate Ability: God mode for 10 seconds Ultimate Ability cooldown: 90 seconds. Medic (Healer)
    Purpose: To heal other players Max Health: 100 Ultimate Ability: Heal all players nearby to full health. Ultimate Ability cooldown: 75 seconds. Special Notes: Healers can shoot friendly players to heal them, and shoot bosses to deal damage. Soldier (DPS)
    Purpose: To deal damage to the boss. Max Health: 100 Ultimate Ability: Bottomless clip for 10 seconds. Ultimate Ability cooldown: 60 seconds. Valiant (Gunslinger)
    Purpose: To deal damage to the boss from a distance. Max Health: 100 Ultimate Ability: Active camoflage for 30 seconds. Ultimate Ability cooldown: 90 seconds Special Notes: Is an elite. Bandolier
    Purpose: To deal sustained damage to the boss. Max Health: 100 Ultimate Ability: Fill all nearby player's ammo to full capacity Ultimate Ability cooldown: 75 seconds. COMMANDS
    /class <classname> | changes your class to <classname> /loadout <primary> <secondary> | changes your current class's loadout to <primary> and <secondary> /equip <equipment> | equip <equipment> to your player /ult | Activates your ultimate ability. You can press flashlight key to activate this now! /greed | Perform a greed roll for a boss drop. /need | Perform a need roll for a boss drop. /whoami | Prints your current class /moreinfo <item> | Read more information about a specified item in the mod  
    RAID SIZES
    The raid will automatically scale depending on the number of players present. Here are some metrics you can expect depending on the number of players Extra Small Raid
    0 - 3 players 1 Tank Allowed 1 Healer Allowed 1 Bandolier Allowed Boss Health is scaled at 1.0 normal health. If a boss has 1000 health, then the boss will have 1000 health in an extra small raid. Small Raid
    4 - 5 Players 1 Tank Allowed 1 Healer Allowed 1 Bandolier Allowed Boss Health is scaled at 1.5 normal health. If a boss has 1000 health, then the boss will have 1500 health in a small raid. Medium Raid
    6 - 10 Players 1 Tank is allowed 2 Healers are allowed 1 Bandolier is allowed Boss Health is scaled at 3.0 normal health. If a boss has 1000 health, then the boss will have 3000 health in a medium raid. Large Raid
    11 - 12 Players 2 Tanks are allowed 2 Healers are allowed 1 Bandolier is allowed Boss Health is scaled at 5.0 normal health If a boss has 1000 health, then the boss will have 5000 health in a large raid Extra Large Raid
    13 - 15 Players 2 Tanks are allowed 2 Healers are allowed 2 Bandoliers are allowed Boss Health is scaled at 10.0 normal health If a boss has 1000 health, then they will have 10,000 health in an extra large raid. Crates
    Crates are physical entities that players can find in the map. They come in three different flavors: Iron Crate
    Drops Equipment based items. Gold Crate
    Drops Armor based items. Crystal Crate
    Drops Weapon based items.
  7. Enclusion liked a post in a topic by Sunstriker7 in Porting map to Unity?   
    Unity supports .obj and basically any texture format you'd want to use to go along with it. it'd take minutes to get it into unity.
  8. Enclusion liked a post in a topic by Kavawuvi in Porting map to Unity?   
    Well, I don't imagine anyone wrote any tools specifically designed to port Halo maps to Unity, but you might be able to extract vertices from the gbxmodel/scenario_structure_bsp tags in the map and convert them into a mesh that is in some Unity-compatible format.
  9. Enclusion liked a post in a topic by gbMichelle in Mozz Editing Kit (MEK)   
    Mozz Editing Kit
     
    The MEK is a powerful easy to use set of powerful tools that can be used to mod Halo 1 and other games based on the blam! engine.
    It is fully Windows and Linux compatible.
     
    It comes with:
    Mozzarilla

     
    Mozzarilla is a replacement for Guerilla, it has support for multiple tags directories, exporting single tag blocks, more comment boxes explaining how things work and many tools. Like:
    a model compiler,
    physics compiler,
    animation compiler,
    animation decompressor,
    an option to import bitmaps directly from DDS,
    a batch bitmap converter/optimizer,
    bitmap source extractor,
    sound compiler (currently only Xbox ADPCM and 16bit PCM),
    tag directory error locator,
    string list and hud message compilers,
    converters that allow you to convert basically any type of model to a gbx model, or any object type to any other object type.
     
    It supports Vanilla, Opensauce, Stubbs the Zombie, and (Expirimental) Halo 3 tags.
    It also supports some Misc Halo file types like gametypes.
     
    It also has highly customizable themes (styles) and settings that allow you to choose exactly how you want to use the tool.
     

     
     
    Refinery

     
    Refinery is a tool for extracting tag data from maps, but also for viewing tag data in map files.
    It supports extracting tags from Vanilla Halo 1 PC, Custom Edition, Xbox, Demo.
    But also from OpenSauce and vap maps.
    Halo 2 is partially supported, and Halo 3 Xbox 360 maps have experimental support.
     
    If a map you want to rip is protected then have no fear! Refinery comes with a powerful deprotection option that can intelligently name tags and repair classes based on many heuristics found inside of the map.
     
    It also has a data extraction mode. The data extraction mode instead of extracting tags will extract bitmaps, models, animations, scripts.
    This is really useful if you for instance want to use assets from a map in something other than Halo CE.
     

     
     
    Pool

     
    Pool is a program made to help people who aren't super familiar with tool or command line applications.
    It comes with explanations for all commands, helpful templates, and options to for instance run batch jobs, or multiple simultaneous jobs.
    It also comes with various patches that you can apply to your tool.exe to for instance remove the map file size limit, increase the vertex and index buffer size, and a multi-language compatible resource maps fix.
     

     
     
    But that's not all...
    The MEK also comes with a plethora of 3DS Max scripts that are useful for 3D creation with the Halo engine.
    And there are more tools being worked on that fill different gaps in the open source Halo 1 modding kit. Ones that I am very excited to show you once they're ready.
     
     
    How do I install the MEK?
    There is a few ways to do this. But right now the best way is to get either the MEK or MEKE.
     
    MEKE (The easier to install windows-only version)
    Keep in mind that this version currently updates less frequently.
     
    1. Get the MEK_Essentials_Setup.exe
    Get it from here from here: [MEK Releases]
     
    2. Run the installer (lol)
     
    MEK (Python version, most up-to-date version)
    Installing the Python version of the MEK is actually pretty easy.
     
    1. Get Python from your favorite source.
    if you are on Windows I highly suggest getting it from the Windows store [link].
    The Windows Store version is nice because it automatically installs the right version (64-bit) and you don't need to do anything but just click the button.
    Don't worry, you won't need to log into the store.
     
    2. Get the MEK_Installer_Python.zip
    Get it from here from here: [MEK Releases]
     
    3. Run the MEK Installer
    Now watch out, wherever you put your MEK installer is where the MEK will install, UNLESS you pick an installation directory using the "Browse" option

     
    4. Click install and wait until it is done
     
    After this you are basically set, the files to run the MEK should have appeared in the current folder or whatever folder you chose to install to.
     
    Be sure to frequently run your MEK_Installer.py to check for updates.
     
     
    Credits
    (This section is probably very incomplete)
    Direct contributors
     
    @Moses_of_Egypt @gbMichelle Mimickal
    Other sources of information
    @Kavawuvi @Sparky Opensauce
    Frequent testers
    @Kavawuvi @Vaporeon @MrChromed @Masterz1337 CMT @Jesse @SOI_7 Whix
     
     
    Where can I in real time discuss these tools and how to use them?
    You can do so in the CE Reclaimers Discord Server [link]
    Of course this thread is also a good place to discuss the tools, but keep in mind that the Discord is more frequently checked.
    How can I contribute?
    You can find the sources at our GitHub organization, Sigmmma! [link]
    You can also report bugs on the GitHub repositories' issue pages, here, or in the Discord server. [link]
    You can also tell us what you'd like to see added, or what kind of tools you'd like to see in the future.
     
    Most of the libraries and programs in the MEK are licensed under the GNU General Public License v3.0. [link]
     
    Shout out to invader, another Opensource toolkit made by people who frequently help us out. [link]
     
  10. Enclusion liked a post in a topic by Kavawuvi in Update: Merging the server lists won't be possible   
    From the Chimera Discord:
     
     
    tl;dr; The only way to switch between server lists and netcodes is with a command, and I'm not happy with this.
     
    If you're wondering what I mean by "However, you have 10000 IQ geniuses who wrote version changers to support morons who refuse to update old clients for invalid reasons," the original 1.00 release of Halo Custom Edition was generally used for piracy and cheating. However, newer versions aren't immune to piracy, and cheaters can fuck off, thus there actually isn't any legitimate or valid reason to use old versions of Halo Custom Edition. Also, those versions have known exploits that can be easily abused where newer versions have them patched.
  11. Enclusion liked a post in a topic by Kavawuvi in Chimera Download, Source Code, and Discord   
    (Icon is by SteamFox)

    Download: chimera-1.0.0.r688.a79a323.7z
     
    Readme:  https://github.com/Kavawuvi/chimera/blob/master/README.md 
    Discord server: https://discord.gg/ZwQeBE2
    Source code: https://github.com/Kavawuvi/chimera
    License: https://www.gnu.org/licenses/gpl-3.0.en.html
     
    Have a question or an issue? Post here: 
     
  12. Enclusion liked a post in a topic by Zatarita in Radium - Dev log   
    Autocomplete comming along, though buggy.
    Syntax highlighting reached a point I called done; just some house keeping, and commenting primarily.

    StyleSheets work. Making a few presets. Dark mode (Twilight), A little less dark mode (Civil Twilight), soft pastel (Boba)


    (Boba early prototype)


    (Twilight prototype)
  13. Enclusion liked a post in a topic by Kavawuvi in Quick Dumb Question   
    map_skip 50
     
    (replace 50 with the percentage of people required to elect to skip the game; 50 means 50%)
     
    sv_map_reset
  14. Enclusion liked a post in a topic by BroGreG in Quick Dumb Question   
    As always..... thank you. You rock.
  15. Sunstriker7 liked a post in a topic by Enclusion in Renaming Players if Bad Words Detected In Name   
    Made at the request of @CartmansPieHole
     
    This script will changed anyone who joins your server's name to something else if their name contains something in a list of banned words/characters. Server moderators can use this to ban bad words in names or just names you don't like. This will log a message to the console when a players name is changed.
     
    Download: https://github.com/TagiaNetwork/Tagia-Server-App-Scripts/blob/master/Open Carnage/BannedNameChanger.lua
     
    Video: 
     
    Credits:
    OnNameRequest by @Devieth
    badwordsarebad by @Kavawuvi
     
     
     
    BannedNameChanger.lua
  16. Tucker933 liked a post in a topic by Enclusion in Renaming Players if Bad Words Detected In Name   
    I'd have a separate script read from the same banned word list. You'd have to load both.
    I updated the script to version 1.2 which prevents blocked name count from going over 99. Since most servers have 16 player count it goes into double digits so i let the count go to 99 but reset it after that point to prevent triple digits. This will make sure you can always use the highest character count for the replaceWith variable and not have it break once your server is on long enough to hit 100 banned names.

     
    I ended up just doing what you asked and implemented @Kavawuvi's badwordsarebad script into mine. I also added the ability to toggle name banning or chat banning on or off.
     
    As always I am open to suggestions and comments.
     
    BannedNameChanger.lua
  17. Pfhunkie liked a post in a topic by Enclusion in Why Did You Buy Halo: Combat Evolved on Xbox Prior to Halo 2   
    Multiplayer has always been what the halo experience was about for me. 
  18. Enclusion liked a post in a topic by Pfhunkie in Why Did You Buy Halo: Combat Evolved on Xbox Prior to Halo 2   
    This all started from someone saying that they thought 90% of people who bought H:CE on Xbox never touched the mutliplayer. I was taken aback on the comment. Talked to others and Tucker even thought that statement was probably true.
     
    I was introduced to it by a friend on Christmas 2001 begging me to come over to his house to play with him, his brother, and their friend. I was familiar with PC shooters (namely Quake) and also console shooters (GoldenEye/Perfect Dark). I assumed it would be clunky just like the rest of the FPS games on console were at the time. We started off with Rockets on Wizard, moved over to driving vehicles around Blood Gulch, and playing doubles on Battle Creek. My mind was absolutely blown away. Came home begging for my parents to take back the PS2 they had gotten me for an XBox saying that I'd rather have Halo even if it meant I could never have a single other game again. My parents doubted that statement but here I am lol.
     
    After that, I was invited and attended countless system link parties with people and the lunch room at school was filled with talks about Halo (mostly about multiplayer but a good bit about campaign, too).
     
    It's odd to me because, when talking to people that think not many played the multiplayer, it's down to it not having online capabilities. It's like people have forgotten how important and popular split screen multiplayer was to kids and how we used to play games. I can't even count all the games that I used to spend hours on with friends playing split screen.
  19. Enclusion liked a post in a topic by Pfhunkie in Why Did You Buy Halo: Combat Evolved on Xbox Prior to Halo 2   
    DO NOT PARTICIPATE IN POLL IF YOU WERE INTRODUCED TO HALO AFTER THE RELEASE OF HALO 2 OR THROUGH THE PC PORT
     
    I've been having a debate of sorts with another Halo player on the subject of if campaign or multiplayer was the biggest driving factor on sales for the original Xbox and Halo: Combat Evolved. I'm interested to see, out of the people who were introduced to the Halo franchise through Combat Evolved on the Xbox, if it was campaign or multiplayer that first introduced you to the game.
     
    Also, this is not a debate on if campaign or multiplayer is better. This is simply a poll to see how you were introduced to the game. That is it. If you were introduced to it through someone showing you the campaign, vote campaign. If you were introduced by marketing and bought it for the campaign, vote campaign. If you were introduced to it through local splitscreen or system link, vote multiplayer. If you were introduced to it through RvB, while this might be a stretch, that would still count as multiplayer.
     
    Feel free to share your experience on what first introduced you to Halo. Love hearing the stories.
  20. Tucker933 liked a post in a topic by Enclusion in Renaming Players if Bad Words Detected In Name   
    I'd have a separate script read from the same banned word list. You'd have to load both.
    I updated the script to version 1.2 which prevents blocked name count from going over 99. Since most servers have 16 player count it goes into double digits so i let the count go to 99 but reset it after that point to prevent triple digits. This will make sure you can always use the highest character count for the replaceWith variable and not have it break once your server is on long enough to hit 100 banned names.

     
    I ended up just doing what you asked and implemented @Kavawuvi's badwordsarebad script into mine. I also added the ability to toggle name banning or chat banning on or off.
     
    As always I am open to suggestions and comments.
     
    BannedNameChanger.lua
  21. Enclusion liked a post in a topic by CartmansPieHole in Renaming Players if Bad Words Detected In Name   
    I'd like to see this integrated with banned words on chat, maybe with a way to easily turn on/off both filters through a script  For example:
     
    RenameBadNames =TRUE/FALSE (or "On" / " Off")
    RejectBadText = TRUE/FALSE (or "On" / " Off")
     
    I know there's a script out there that will send text to the player typing bad words and not display what they typed on the screen.  It just would be nice to have to end up having to edit only one table of banned words.
     
    Nice job on the script, though.  BTW, I just noticed that on another thread that you mentioned my name and made this script at my request.  Thanks!
  22. Sunstriker7 liked a post in a topic by Enclusion in Renaming Players if Bad Words Detected In Name   
    Made at the request of @CartmansPieHole
     
    This script will changed anyone who joins your server's name to something else if their name contains something in a list of banned words/characters. Server moderators can use this to ban bad words in names or just names you don't like. This will log a message to the console when a players name is changed.
     
    Download: https://github.com/TagiaNetwork/Tagia-Server-App-Scripts/blob/master/Open Carnage/BannedNameChanger.lua
     
    Video: 
     
    Credits:
    OnNameRequest by @Devieth
    badwordsarebad by @Kavawuvi
     
     
     
    BannedNameChanger.lua
  23. Enclusion liked a post in a topic by Sunstriker7 in Renaming Players if Bad Words Detected In Name   
    It's only a matter of time before this becomes a pirate-speak translator
  24. Enclusion liked a post in a topic by Nickster5000 in Event Table   
    Preface:
    If you're comfortable with Lua's MetaTable system, and are comfortable with Lua's prototype inheritance chain, then feel free to scroll down to the bottom of this post for the full implementation.
     
    For those who haven't worked with Lua's prototype system, metatables allow you to expand the functionality of an object by defining metamethods. Normally, if you try accessing a value in an object, and it does not exist, then it will return nil. That's not entirely true: It will first check the __index metamethod to see if it can find the value in there. If it can't find the value in __index, THEN it will return nil. This allows you to create multiple unique objects that conform to a class schema.
     
    Motivation
    Let's say you needed to have some stuff occur concurrently in the background for your project. For instance, you want to implement a class system (I.E, DPS, Tank, Healer, Etc.) and you want to give them all "abilities" that last x amount of seconds, and have to cool down for y seconds. You could probably use something like 
    w8 x to allow the ability to run, and do the same for 
    w8 y to execute the cooldown. 
     
    There's two problems to this though:
    1. It blocks the function that it is called in.
    2. What if you want to do stuff during these times? Like tell the user that their ability has 5 seconds left, or that their cooldown for an ability ends in another 10 seconds? That simply will not work. 
     
    So, I've taken a bit of inspiration from JavaScript, and I implemented a pseudo-EventQueue system for SAPP. 
     
    EventItem Class
    If you've already peeked at the implementation, you'll notice that EventItem has three methods you can call. Let's go over them and see how they work:
     
    EventItem:new()
    function EventItem.new(self) ... end This returns a new object with the __index metamethod being set to EventItem. Basically, you can use all of the operations and values from EventItem on this new object.
     
    EventItem:set()
    function EventItem.set(self, props, eachTickCb, completedCb, time) ... end This allows you to set some values for your EventItem. Let me explain what each parameter does:
    time - The amount of time you want this event to last, in ticks. If you want this event to last for 30 seconds, then time should be 900 (30 * 30). If you set the time to be -1, this is a conditional event, and will only terminate once eachTickCb returns true.
    props - place any values in here that you want this EventItem to have access to.
    completedCb - Did you know that lua functions are first class citizens in lua? That allows you to treat them like a value. Simply define a function and reference it, or define the callback function directly in this parameter spot. This function is called when the event is completed. The props parameter is automatically passed into it when it is called.
    eachTickCb -  This function is executed on every tick. This function is called with two parameters: props and time. This will execute on every tick, and allows you to do stuff while the event is counting down (I.E, display that status message from earlier).
     
    EventItem:isTimedOut()
    function EventItem.isTimedOut(self) ... end This function has no parameters, but it is important that you understand what it does:
    If you set the event with a finite time, then it decrements that time by 1 for every tick, and executes the eachTickCb until time is zero. When time is zero, the completedCb is executed.
    If you set the event for -1 time, then it will execute the eachTickCb until it returns true, in which it will then execute the completedCb. This allows you to queue events that are related to different things other than time.
     
    Full Implementation
    EVENT_TABLE = {} EventItem = { time=nil, completedCb=nil, eachTickCb=nil, props=nil } function EventItem.isTimedOut(self) if self.time == -1 then --conditional event if self.eachTickCb == nil and self.eachTickCb(self.props, self.time) self.completedCb(self.props) return true end return false elseif self.time == 0 then -- timed event expires self.completedCb(self.props) return true else --timed event has not expired self.time = self.time - 1 if self.eachTickCb ~= nil then self.eachTickCb(self.props, self.time) end return false end end function EventItem.set(self, props, eachTickCb, completedCb, time) self.time = time self.props = props self.completedCb = completedCb self.eachTickCb = eachTickCb end function EventItem.new(self) local newEventTableInstance = {} setmetatable(newEventTableInstance, self) self.__index = self return newEventTableInstance end function OnScriptLoad() ... other callback definitions register_callback(cb['EVENT_TICK'], "handleTick") end function handleTick() for key,_ in pairs(EVENT_TABLE) do if EVENT_TABLE[key]:isTimedOut() == true then EVENT_TABLE[key] = nil end end end  
    I know it's a lot to take in, but I have found this VERY USEFUL for the stuff I am working on, and I love sharing these cool solutions for the interesting problems they solve. Please let me know if you have any questions about anything pertaining to this EventItem class or lua itself, and I'll be happy to help!