I am making a mod for melee maps to add new units and am having a couple of issues:
1) I don't want the map to have to load all the info for all the campaign units, just the few that I am adding, so I don't want the campaign dependency. I've read a post that tells how to avoid the campaign dependency, but it looks like it does it by adding all that extra crap to your mod itself. Is there a way to just add a few new units without the game having to load up a lot of extra bloat?
2) I want to edit the default units, marine, etc., but it looks like I can't actually change the ones used in melee. Do I have to create copies and then use the copies?
1) I don't know, but I personally don't think there is an easy way to do that.
2) You can change the default units. As soon as you do that you will have 2 entries in your Data Editor though, one that is still blue (that you can't change) and one that is green and has your changes. Maybe you tried to edit the blue copy, check if you already changed the unit before and therefore can't edit the "blue version" of it anymore.
There are multiple existing copies of, say, marine. If I filter for units from the base HotS mod and try to, for example, change the cost of that marine, the ok button is greyed out and the hit points don't change. If I create a duplicate, I can change the properties of the duplicate, but as I say I'm trying to make the map as slim as possible despite having 40 added units over melee.
Since you are aware of the "sort by source" tab, start from the bottom of that list. Specifically, start with your own map/mod file as Bommes said, if it already contains an edited version of an object you can't edit those from other sources, because that would either overwrite the previous edited version or cause an ID conflict.
The reason copying works is that the copy is considered an entirely different object, and since it's only present in your map itself there is no other version to conflict with. An edit of an existing object is still considered the same entity, the game simply overwrites previous changes if they conflict with a source of "higher priority" (lower on the list). All objects are derived from a small pool of "default parents" (pretty much anything colored grey in the Data Module) from which the game loads the default values if no edits were made.
The first thing I did when I started editing was to try to change a unit, have it fail, then duplicate units in order to modify them. So if I try to modify the last blue marine in the list instead of the first, it will work?
I don't know if the order in the main data list has any meaning, I have noticed inconsistencies in previous versions. What I meant is the order in the data source list, that should be accurate.
Also, always look for green, then orange, and only then blue objects (orange=non-Blizzard custom mod)
I see that I can modify the second marine in the list.
Biggest question though, I still want a way to copy only 40 units worth of data to my mod and not the whole campaign set. If I make duplicates of all the units I want, and all the components related to them, will I eventually be able to get it to work without campaign dependency? I imagine I'll have to edit dependencies somewhere in the xml files, set each unit's "parent" to marine or something else found in the main melee mod, and probably some other changes.
If anyone knows what would have to be changed to get that to work, that's what's mainly holding me back now. Long load times = bad, and I'm sure others would like to slim down their mods too.
The part I don't know how to bypass are the actual asset files, primarily 3d models, textures and icons, and sounds. These don't appear in the standard asset selection without the correct dependencies. If Blizzard's filesize restrictions allow it, it would be possible to export the assets and import only the desired ones into a custom mod and use that as a dependency. You can probably ask SoulFilcher for the details, as he's using 3-4 custom mods to pack his SC:Expanded project, including many custom models and textures which should have quite a large total filesize.
Anything viewable directly in the data editor can be replicated without complication, though I don't know an in-editor tool for copying stuff between maps/mods.
So when I check all those boxes to copy a unit, including model, etc. it isn't actually copying the models and sounds eh? It's only copying a reference to those models and sounds?
Yes and no. There are external Assets which include the 3d models as created in an external program, these are the bulk of actual data and creative work. The Model data type indeed only creates a framework that imports the assets into the Data structure, but it does allow for some customisation. You cannot create 3d models, but you can add to their ingame representation. Examples include custom lighting, renaming attachment points, adding game-specific attachments (read: adding shield visuals to non-Protoss models), and the annoying-but-awesome Texture Select system.
And then there's the Actor data type which is the actual container for ingame visuals, probably the most powerful, time-wasting and annoying part of the entire editor. You can build entire fully animated cities from existing models using only actors, but it usually takes half a day just to get a single custom car looking the way you want.
But you're saying that without campaign dependency, I can't access most of those models, etc, so I have to make due with the game loading everything under the sun every time it loads a map?
There might be tricks and loopholes I'm not aware of, there are more experienced mapmakers out there.
Have you done any research on my proposed workaround? Load a map with campaign data and export the necessary assets to your hard drive, then import them all into a custom mod. Use said mod as a dependency for your actual map. I know this works in principle, the only limitation is that your mod has to be published to Bnet in addition to the map itself, so anything that prevents this will cause problems.
I don't have any experience with publishing stuff, but the problem I see are:
Filesize limitations: I don't know the values, and I don't know the size of the assets you need. You probably can't publish 3GB in random models.
Copyright: You'd have to publish copyrighted material, which may be illegal if Blizzard didn't give permissions for using it in this way. Yes, that includes uploading it to their own servers if you're unlucky.
If this actually works there might even be a publicly available rip already published, though that would of course still load all models, textures and sounds.
@Photoloss: Go Its only an advantage if the list of files to be published is small. Players already have the campaign dependency in their hard drives, but would have to download the new mod, so it would be a trade. Put too many assets in the new mod and loading would be worse than having the campaign dependency, which isn't even a problem in my opinion.
The advantage is that the mod only has to be downloaded once until it's updated with new assets, while the dependencies have to be loaded every time you run SCII. Also the download occurs before you enter the lobby and interact with other players.
I don't care about the loading time myself, and usually run a vs AI stomp for personal entertainment first, which happens to double as an asset preloader.
I definitely want the loading time to be as short as possible. So, bottom line, is it better to:
1) start over on the mod, modifying existing units rather than duplicating and then modifying the duplicates, so that I'm not creating even more units for the game to load than it already has to
2) try to make a list of all the graphics and sound files that I would need to copy into the mod to attempt to use it without campaign dependency. (This sounds like a ton of work even if it's possible)
1) Loading data entities themselves is only a miniscule fraction of the overall workload afaik. As an example my "sandbox" map went from 2MB (which already contained some imports) to 9MB from adding the GhostEchoPortrait textures, and that's not even a 3d model. The loading screen lists over 200MB of data. Generally you should avoid copying if you're explicitely making a balance/race adjustment mod (in most other cases the objects are too dissimilar and you make most things from scratch anyway), but the reasons are less load time issues and more data interactions that don't show up in the navigator/overview windows, meaning you're likely to break some random aspect if you copy without knowing all of these relations.
2) You can try this. There's no easy way of judging which is better, especially since the more savvy players run an "asset preloader" map before playing as assets stay loaded as long as SCII is running, but this may not help when you use a custom mod, meaning those players would still have to load the mod. As I said there's still the problem of having to download the mod once before being able to play, which may well be worth over a dozen loadtimes if you've got a good computer but a bad internet connection.
Yeah, looks like a huge mess trying to copy resources from the campaign. Guess I'll abort mission and scale back my project a bit. Thanks for the help!
Why scale down your project? Is it meant to be very fast-paced with very short games or something? After loading the assets once the loading times really aren't that bad.
I am making a mod for melee maps to add new units and am having a couple of issues:
1) I don't want the map to have to load all the info for all the campaign units, just the few that I am adding, so I don't want the campaign dependency. I've read a post that tells how to avoid the campaign dependency, but it looks like it does it by adding all that extra crap to your mod itself. Is there a way to just add a few new units without the game having to load up a lot of extra bloat?
2) I want to edit the default units, marine, etc., but it looks like I can't actually change the ones used in melee. Do I have to create copies and then use the copies?
1) I don't know, but I personally don't think there is an easy way to do that.
2) You can change the default units. As soon as you do that you will have 2 entries in your Data Editor though, one that is still blue (that you can't change) and one that is green and has your changes. Maybe you tried to edit the blue copy, check if you already changed the unit before and therefore can't edit the "blue version" of it anymore.
@Bommes: Go
There are multiple existing copies of, say, marine. If I filter for units from the base HotS mod and try to, for example, change the cost of that marine, the ok button is greyed out and the hit points don't change. If I create a duplicate, I can change the properties of the duplicate, but as I say I'm trying to make the map as slim as possible despite having 40 added units over melee.
@Ramboing: Go
Since you are aware of the "sort by source" tab, start from the bottom of that list. Specifically, start with your own map/mod file as Bommes said, if it already contains an edited version of an object you can't edit those from other sources, because that would either overwrite the previous edited version or cause an ID conflict.
The reason copying works is that the copy is considered an entirely different object, and since it's only present in your map itself there is no other version to conflict with. An edit of an existing object is still considered the same entity, the game simply overwrites previous changes if they conflict with a source of "higher priority" (lower on the list). All objects are derived from a small pool of "default parents" (pretty much anything colored grey in the Data Module) from which the game loads the default values if no edits were made.
@Photoloss: Go
The first thing I did when I started editing was to try to change a unit, have it fail, then duplicate units in order to modify them. So if I try to modify the last blue marine in the list instead of the first, it will work?
@Ramboing: Go
I don't know if the order in the main data list has any meaning, I have noticed inconsistencies in previous versions. What I meant is the order in the data source list, that should be accurate.
Also, always look for green, then orange, and only then blue objects (orange=non-Blizzard custom mod)
@Photoloss: Go
I see that I can modify the second marine in the list.
Biggest question though, I still want a way to copy only 40 units worth of data to my mod and not the whole campaign set. If I make duplicates of all the units I want, and all the components related to them, will I eventually be able to get it to work without campaign dependency? I imagine I'll have to edit dependencies somewhere in the xml files, set each unit's "parent" to marine or something else found in the main melee mod, and probably some other changes.
If anyone knows what would have to be changed to get that to work, that's what's mainly holding me back now. Long load times = bad, and I'm sure others would like to slim down their mods too.
The part I don't know how to bypass are the actual asset files, primarily 3d models, textures and icons, and sounds. These don't appear in the standard asset selection without the correct dependencies. If Blizzard's filesize restrictions allow it, it would be possible to export the assets and import only the desired ones into a custom mod and use that as a dependency. You can probably ask SoulFilcher for the details, as he's using 3-4 custom mods to pack his SC:Expanded project, including many custom models and textures which should have quite a large total filesize.
Anything viewable directly in the data editor can be replicated without complication, though I don't know an in-editor tool for copying stuff between maps/mods.
@Photoloss: Go
So when I check all those boxes to copy a unit, including model, etc. it isn't actually copying the models and sounds eh? It's only copying a reference to those models and sounds?
Uncheck the 'Display all object sources' button in the top menu and you wont have to care about multiple copies anymore.
@Ramboing: Go
Yes and no. There are external Assets which include the 3d models as created in an external program, these are the bulk of actual data and creative work. The Model data type indeed only creates a framework that imports the assets into the Data structure, but it does allow for some customisation. You cannot create 3d models, but you can add to their ingame representation. Examples include custom lighting, renaming attachment points, adding game-specific attachments (read: adding shield visuals to non-Protoss models), and the annoying-but-awesome Texture Select system.
And then there's the Actor data type which is the actual container for ingame visuals, probably the most powerful, time-wasting and annoying part of the entire editor. You can build entire fully animated cities from existing models using only actors, but it usually takes half a day just to get a single custom car looking the way you want.
@Photoloss: Go
But you're saying that without campaign dependency, I can't access most of those models, etc, so I have to make due with the game loading everything under the sun every time it loads a map?
There might be tricks and loopholes I'm not aware of, there are more experienced mapmakers out there.
Have you done any research on my proposed workaround? Load a map with campaign data and export the necessary assets to your hard drive, then import them all into a custom mod. Use said mod as a dependency for your actual map. I know this works in principle, the only limitation is that your mod has to be published to Bnet in addition to the map itself, so anything that prevents this will cause problems.
I don't have any experience with publishing stuff, but the problem I see are:
If this actually works there might even be a publicly available rip already published, though that would of course still load all models, textures and sounds.
@Photoloss: Go Its only an advantage if the list of files to be published is small. Players already have the campaign dependency in their hard drives, but would have to download the new mod, so it would be a trade. Put too many assets in the new mod and loading would be worse than having the campaign dependency, which isn't even a problem in my opinion.
@SoulFilcher: Go
The advantage is that the mod only has to be downloaded once until it's updated with new assets, while the dependencies have to be loaded every time you run SCII. Also the download occurs before you enter the lobby and interact with other players.
I don't care about the loading time myself, and usually run a vs AI stomp for personal entertainment first, which happens to double as an asset preloader.
@Photoloss: Go
I definitely want the loading time to be as short as possible. So, bottom line, is it better to:
1) start over on the mod, modifying existing units rather than duplicating and then modifying the duplicates, so that I'm not creating even more units for the game to load than it already has to
2) try to make a list of all the graphics and sound files that I would need to copy into the mod to attempt to use it without campaign dependency. (This sounds like a ton of work even if it's possible)
3) something else
?
1) Loading data entities themselves is only a miniscule fraction of the overall workload afaik. As an example my "sandbox" map went from 2MB (which already contained some imports) to 9MB from adding the GhostEchoPortrait textures, and that's not even a 3d model. The loading screen lists over 200MB of data. Generally you should avoid copying if you're explicitely making a balance/race adjustment mod (in most other cases the objects are too dissimilar and you make most things from scratch anyway), but the reasons are less load time issues and more data interactions that don't show up in the navigator/overview windows, meaning you're likely to break some random aspect if you copy without knowing all of these relations.
2) You can try this. There's no easy way of judging which is better, especially since the more savvy players run an "asset preloader" map before playing as assets stay loaded as long as SCII is running, but this may not help when you use a custom mod, meaning those players would still have to load the mod. As I said there's still the problem of having to download the mod once before being able to play, which may well be worth over a dozen loadtimes if you've got a good computer but a bad internet connection.
@Photoloss: Go
Yeah, looks like a huge mess trying to copy resources from the campaign. Guess I'll abort mission and scale back my project a bit. Thanks for the help!
Why scale down your project? Is it meant to be very fast-paced with very short games or something? After loading the assets once the loading times really aren't that bad.
@Photoloss: Go
I mean just that I won't worry about shrinking the mod. I'll just stay with regular campaign dependencies.