I'm looking for someone with some programming aptitude to engage in a little venture I believe the community at large would relish. While I am not without some programming aptitude myself, I learned many years ago that it is not something I particularly enjoy doing, and I am exceptionally slow at doing it. I'm also very out of practice, and my last big programming venture was in 8086 Assembly. Here's what I'd like to see though: A utility program that loads the Config.ecf file and allows for easy modification of a number of values in this particular file. Here's an example: { Block Id: 272, Name: RCSBlockSV Group: cpgRCS Material: metal ShowBlockName: true Mass: 250, type: float, display: true, formatter: Kilogram Volume: 40, type: float, display: true, formatter: Liter IsOxygenTight: false, display: true IsIgnoreLC: true Info: bkiGyroscope, display: true StackSize: 6 BlockColor: "110,110,110" Category: Devices Torque: 100, type: int, display: true, formatter: NewtonMeter EnergyIn: 3, type: int, display: true, formatter: Watt CPUIn: 750, type: int, display: true BlastRadius: 4 BlastDamage: 100 UnlockCost: 4, display: true UnlockLevel: 5, display: true TechTreeParent: GeneratorSV TechTreeNames: Small Vessel } Here we're looking and the SV RCS device. Values that would be worth modifying: Mass, Volume, Torque, EnergyIn, CPUIn, BlastRadius, and BlastDamage. The UI for this need only read the Name: and the modifiable values and be able to write these values back to this file, allowing server admins to modify these values without having to delve into the raw text files, search these out, hope they preserve any requisite formatting, or mis-modify a value. I'd be more than glad to collaborate, and I'm certain this would prove to be a fairly simple program to compile - it could probably be done in a browser interface rather than an executive file format. Or, there might already be such a utility out there I am just unaware of, and if so, please point me in the right direction.
No 'takers' yet, eh? I'd be willing to work with any programmers in this 'venture', and help with testing/formulation. Would a little financial incentive perk anyone's ears up at the opportunity to create some new mods? @Exacute @Jascha @ASTIC @Xango2000 I'm sure we could scrape a few modest bucks together to soften the hit to one's time it may require.
Well, at this point you don't actually need a tool but "only" a best practice recommendation. Just enter the values to be changed in your Config.ecf, this will be create an easy, clear and maintainable file. For example see my modified config.ecf with some changes.
Not sure what "best practice" is being illustrated here, but this doesn't quite look like what I'm wanting to do here, at least not for what I have in mind. I'll see if I can't cobble something together in keeping with what I'd like to see and someone else might go "OH!" and want to refine it.
Best practices - in the form that you only specify the few changes - this file changes so often in the meaning and syntax that a tool or extensive adjustments burn a lot of time
I'm a db geek vs UI so in a world full of nails I tend to favor that hammer. I'd looked at something like this but it would have been a local app vs. web because of that and I still am missing the front end (aka friendly so people use it) skills. The data is almost in JSON format but not quite .. my approach was going to be using REGEX to convert a subset of files (the ones people want to tweak) into actual JSON for import via SQLexpress (because it is a) free, b) supports native JSON ingestion, c) I'm 20+ years familiar with MSSQL) and then put helper tables around the import data based on the natural keys of the names in the imported name/value pairs to define definitions of what something is/does and the domain ranges of expected and recognized values. Making changes wouldn't change the import data but instead be attached to a version entity so that you could create named configurations ("NoWVTurretHeaven", "BugHunt", etc.) and then share the resulting exports. This general approach is less brittle on version changes in the underlying files since the db helpers are config data vs. code. Export would require going back through a REGEX pass to create the replacement files from the db data which would need to get applied .. it would be nice if you could rollback on that sort of thing so rather than writing to the actual steamapps path in the tree you would probably want to do that as a separate step to enable using simple folder copy sorts of actions to move stuff from the export tree into the target after copying the existing files into rollback trees. But like I said, I only have the SQL hammer and enough C# to write ETL processes so making that into a user friendly tool is a learning experience I haven't taken the time for in the last 30 years so guessing I ain't the droid you're looking for.
That sounds a bit like pounding screws with that hammer. These .cfg files are just text. It shouldn't be that complex a task to search: Block Id: 272, Name: RCSBlockSV Torque: 100, type: int, display: true, formatter: NewtonMeter EnergyIn: 3, type: int, display: true, formatter: Watt CPUIn: 750, type: int, display: true for: The Name (RCSBlockSV), read that data into a field Search for Torque (100), read that into an editable field Search for EnergyIn (3), read that into an editable field Search for CPUIn (750), read that into an editable field, and write those changes back into the .cfg being read. These all follow the same format, Start with a "Block Id:" and end with "}" so finding the beginning and end of an entry shouldn't be terribly difficult or require SQL, JSON conversion or anything so engineered. The goal here is to give server admins a quick and easy way to make modifications for the games they host, such as "I'd like the RCS to use a little more power and a little less CPU" or "I'd like Plasma to do more damage to shields, less damage to concrete and be devastating to organic (wood and carbon) blocks" for example. This can already be done by manually fiddling with these files, but a little utility would make this easier, neater, ensure they don't set a damage value to something like à and screw things up, and perhaps get people to realize they can change some of values of things they may not have realized (like doing more or less damage to a type of block with a type of weapon).
Holy run on sentences, @imlarry425 man.... There is an ECF - JSON converter out there.... Don't know if its depreciated... and it does require compiling...
I assume you already have Notepad++.... "ALT + F" while in the file, and enter your search term to quickly peruse through the file to your desired entry.
I do, I know how to use it, I was just wanting a more organized method that might be useful to someone who isn't quite so adept at editing text files and doesn't spend their time reading through them to find and figure out what a particular object is called by an internal name, as sometimes they can be a little less than obvious. Try looking up CV Turret Rockets, Rocket Launcher Rockets and Enemy Rockets and see a decent example.
Yeah E .. talk that way too. And too fast - it's the ADHD. Since you're only looking for hard coded sitting on one file maybe you could bid it to a freelancer website?
You're alright @imlarry425 I'm just teasing. Yeah, if we could find someone who plays, codes, and is willing to dedicate some time to this project, it would be nice.
Color me curious.... You want a GUI interface which would allow people to search, modify, and edit config files?... I feel like someone just modifying the PDA reader would do. I'm surprised Jascha hasn't bitten on it. That said, it must be smart enough to 'update' itself via the default config if it existed somewhere in the base folder. As others have mentioned, it changes a lot, it's not something that's gonna be maintainable by virtue of 'updating' the code everytime the config changes.
Not quite search, and I may actually be wrong as to what actual file is being modified here - it's the config.ecf to be specific. The "search" function would be performed when the file is loaded into the app, to identify the various blocks, gadgets and devices to be modified, as well as the current values of those particular blocks, gadgets and devices. To demi-pseudo-code... Open [config.ecf] Find [BlockId:] Get Value [Name:] Get Value [Torque:] Get Value [EnergyIn:] Get Value [CPUIn:] Stop Find at [}] So the file would be parsed, locate the [BlockId:], get the [Name:], [Torque:], [EnergyIn:] and [CPUIn:] values, write those values into fields. Name would just be display, so you'd know what you were looking at. [Torque:], [EnergyIn:] and [CPUIn:] would be editable, corresponding values found in the config.ecf file. Those values could then be edited and written back into the config.ecf This is, of course, only one example, and other blocks, gadgets and devices have some other values that would be worth editing in this manner, but this communicates the basic concept. But yes, a GUI for this, rather than a cold text file would be nice, organized, and limit the amount of error that could be made editing this particular file.
I know this has been awhile ha, but here is a semi simple parser for ecf , rename the extention to cs is simple to use, if(File.Exists("ItemsConfig.ecf")) { string[] fileData = RegExData.PrepareData(File.ReadAllLines("ItemsConfig.ecf")); List<string[]> items = RegExData.GetDataBlocks(fileData); if(items.Count > 0) { for(int i =0;i<items.Count;i++) { string[] chunk = items; Console.WriteLine("---------------------------------------------------------"); foreach (var l in chunk) Console.WriteLine(l); Console.WriteLine("_________________________________________________________"); } } } Currently it just parses blocks from ItemsConfig.ecf but it should be simple enough to understand, you simply find the first line of a section you wish to parse from the file, as all pertinent data is contained between brackets { } you can simply count the brackets until the open brackets { and the closed brackets } become a matching number, then you have one full block of data you can parse even further, the Regex examples are simple and to the point, if you are interested in learning c# i feel file parsing is an excellent start as most people can wrap their mind around it.