OMG, you're getting rid of /plugins?

Ref: https://docs.spongepowered.org/en/server/management/plugins.html

Nooo, what is this? You’re getting rid of the /plugins directory?

UGH THIS IS THE WORST IDEA EVER.

As a modpack server operator running KCauldron, we typically upgrade modpacks like this:

  1. Download and extract latest version of modpack
  2. Rename the old /mods directory to /mods-old
  3. Rename the old /config directory to /config-old
  4. Insert the updated /mods and /config directories from the download.

By throwing plugins into the /mods folder you are going to make server updates a living hell for server admins. I’m now going to have to pick through the mods folder when we do updates and try to remember… was this a mod from the modpack, or a plugin from sponge?

It won’t work to simply copy over the existing /mods folder with new modpack updates, because at times the modpacks remove mods in the update but those will be left behind since copying over won’t remove them.

And as if there weren’t enough files and folders in the mods directory already, but we’re now going to throw in another 30 plugin jars and directories to go with them?

Seriously, we’re going to mix this:

Announcer
announcer.jar
Autorun
Autorun.jar
AutoShutdown
AutoShutdown.jar
CommandSigns
CommandSigns.jar
CoreProtect
CoreProtect_2.0.9.jar
EnjinMinecraftPlugin
EnjinMinecraftPlugin.jar
EntityWatch.jar
Essentials
EssentialsGroupManager.jar
Essentials.jar
EssentialsSpawn.jar
GriefPreventionData
GriefPreventionPlus-12.4.jar
GroupManager
Herochat
HeroChat.jar
ItemRestrict
ItemRestrict.jar
Lockette
Lockette.jar
Multiverse-Core
Multiverse-Core-2.5.jar
Multiverse-Inventories
Multiverse-Inventories-2.5.jar
OnTime
OnTime.jar
PluginMetrics
PurpleIRC
PurpleIRC.jar
RandomTeleporter
RandomTeleporter.jar
ReportRTS
ReportRTS.jar
SimpleAlias
SimpleAlias_1.5.0.jar
SimpleClans
SimpleClans-Legacy.jar
update
Updater
Vault
Vault-1.4.1.jar
Votifier
Votifier.jar
WorldBorder
WorldBorder.jar
WorldEdit
WorldEdit.jar
WorldGuard
WorldGuard.jar

With this?

[1.7.10]StartingInventory-universal-1.7.10.r03.jar
AdvancedSolarPanel-1.7.10-3.5.1.jar
AgriCraft-1.7.10-1.3.1.jar
AOBD-2.6.0.jar
AppleCore-mc1.7.10-1.1.0.jar
appliedenergistics2-rv2-stable-10.jar
AsieLib-1.7.10-0.3.13.jar
Automagy-1.7.10-0.26.3.jar
bdlib-mc1710-1.7.1.71.zip
BigReactors-0.4.3A.jar
binnie-mods-2.0-pre8.jar
BiomesOPlenty-1.7.10-2.1.0.1237-universal.jar
BloodMagic-1.7.10-1.3.3-13.jar
Botania r1.7-226.jar
BotaniaVisualizer-1.7.2-1.0a.jar
buildcraft-6.4.14.jar
carpentersblocks
Carpenter's Blocks v3.3.7 - MC 1.7.10.jar
ChickenChunks-1.7.10-1.3.4.19-universal.jar
Chisel2-2.3.10.37.jar
CodeChickenCore-1.7.10-1.0.7.47-universal.jar
CoFHCore-[1.7.10]3.0.2-262.jar
Computronics-1.7.10-1.4.6.jar
CustomChestLoot-1.7.10-1.1.1.jar
customitems-1.0.9_beta_1.7.10.jar
ElectroMagicTools-1.7.10-2.0.0Alpha-CUSTOM.jar
Enchiridion 2-1.7.10-2.0.2a.jar
EnderIO-1.7.10-2.2.8.367.jar
EnderStorage-1.7.10-1.4.7.37-universal.jar
ExtraCells-1.7.10-2.2.73b129.jar
ExtraTiC-1.7.10-1.4.5.jar
Forbidden Magic-1.7.10-0.57.jar
forestry_1.7.10-3.5.6.15.jar
Ganys End-1.8.8.jar
GemBlocksForGreg-1.4a.jar
gendustry-mc1710-1.4.10.77.zip
GraviSuite-1.7.10-2.0.3.jar
gregtech_1.7.10-5.08.12.jar
GrimoireOfGaia3-1.7.10-1.2.7.jar
GTTweaker-1.7.10-1.0.9.jar
Guide-API-1.7.10-1.0.1-20.jar
HardcoreEnderExpansion  MC-1.7.10  v1.8.4.jar
HQM-The Journey (4.2.3).jar
HungerOverhaul-1.7.10-beta.6.jar
ic2
IC2NuclearControl-2.1.2a.jar
IguanaTinkerTweaks-1.7.10-2.1.4.jar
industrialcraft-2-2.2.718-experimental.jar
InfernalMobs-1.7.10.jar
InventoryTweaks-1.59-dev-152.jar
Java7Checker  MC-1.7.10  v1.1.jar
logisticspipes-0.8.3.118.jar
LycanitesMobsComplete 1.11.0.2 [1.7.10].jar
magicbees-1.7.10-2.3.1.jar
Mantle-1.7.10-0.3.2.jar
Mariculture-Deluxe-1.7.10-1.2.4.2a.jar
Metallurgy-1.7.10-4.0.8.97.jar
MetallurgyCore-1.7.10-4.0.4.18.jar
MineTweaker3-1.7.10-3.0.9C.jar
ModTweaker 2-0.7.5.jar
MoreChisels-1.7.10-1.0-18.jar
Morpheus-1.7.10-1.6.10.jar
natura-1.7.10-2.2.0.1.jar
neiaddons-mc1710-1.12.7.21.zip
NetherOres-[1.7.10]2.3.0-12.jar
NotEnoughItems-1.7.10-1.0.5.118-universal.jar
OpenComputers-MC1.7.10-1.5.9.21-universal.jar
OreDictionaryConverter-1.6.1.jar
Pam's HarvestCraft 1.7.10h.jar
PetBat-1.7.10.jar
ProjectRed-1.7.10-4.6.0.79-Base.jar
ProjectRed-1.7.10-4.6.0.79-Compat.jar
ProjectRed-1.7.10-4.6.0.79-Integration.jar
ProjectRed-1.7.10-4.6.0.79-Lighting.jar
railcraft
Railcraft_1.7.10-9.8.0.0.jar
RandomThings-2.2.4.jar
secretroomsmod-1.7.10-4.7.1.409.jar
SimplyJetpacks-MC1.7.10-1.4.1.jar
StevesAddons-1.7.10-0.10.16.jar
StevesCarts2.0.0.b18.jar
StevesFactoryManagerA93.jar
TConstruct-1.7.10-1.8.5.jar
Technomancy - 0.12.1C - 1.7.10.jar
Thaumcraft-1.7.10-4.2.3.5.jar
ThaumcraftGates-1.4.0.jar
thaumcraftneiplugin-1.7.10-1.7.jar
thaumicenergistics-0.8.10.10.jar
thaumichorizons-1.7.10-1.1.6.jar
ThaumicInfusion-4.27.jar
ThaumicTinkerer-2.5-1.7.10-164.jar
ThermalDynamics-[1.7.10]1.0.0-122.jar
ThermalExpansion-[1.7.10]4.0.1-182.jar
ThermalFoundation-[1.7.10]1.0.0-81.jar
TiCTooltips-mc1.7.10-1.2.4.jar
Translocator-1.7.10-1.1.2.15-universal.jar
ttCore-MC1.7.10-0.1.1-78.jar
UndergroundBiomesConstructs-1.7.2-0.7.jar
witchery-1.7.10-0.24.1.jar
WitchingGadgets-1.7.10-1.1.10.jar
Ztones-1.7.10-2.2.1.jar

Giving us the following unholy mess to pick through for every modpack update?

[1.7.10]StartingInventory-universal-1.7.10.r03.jar
AdvancedSolarPanel-1.7.10-3.5.1.jar
AgriCraft-1.7.10-1.3.1.jar
Announcer
announcer.jar
AOBD-2.6.0.jar
AppleCore-mc1.7.10-1.1.0.jar
appliedenergistics2-rv2-stable-10.jar
AsieLib-1.7.10-0.3.13.jar
Automagy-1.7.10-0.26.3.jar
Autorun
Autorun.jar
AutoShutdown
AutoShutdown.jar
bdlib-mc1710-1.7.1.71.zip
BigReactors-0.4.3A.jar
binnie-mods-2.0-pre8.jar
BiomesOPlenty-1.7.10-2.1.0.1237-universal.jar
BloodMagic-1.7.10-1.3.3-13.jar
Botania r1.7-226.jar
BotaniaVisualizer-1.7.2-1.0a.jar
buildcraft-6.4.14.jar
Carpenter's Blocks v3.3.7 - MC 1.7.10.jar
carpentersblocks
ChickenChunks-1.7.10-1.3.4.19-universal.jar
Chisel2-2.3.10.37.jar
CodeChickenCore-1.7.10-1.0.7.47-universal.jar
CoFHCore-[1.7.10]3.0.2-262.jar
CommandSigns
CommandSigns.jar
Computronics-1.7.10-1.4.6.jar
CoreProtect
CoreProtect_2.0.9.jar
CustomChestLoot-1.7.10-1.1.1.jar
customitems-1.0.9_beta_1.7.10.jar
ElectroMagicTools-1.7.10-2.0.0Alpha-CUSTOM.jar
Enchiridion 2-1.7.10-2.0.2a.jar
EnderIO-1.7.10-2.2.8.367.jar
EnderStorage-1.7.10-1.4.7.37-universal.jar
EnjinMinecraftPlugin
EnjinMinecraftPlugin.jar
EntityWatch.jar
Essentials
Essentials.jar
EssentialsGroupManager.jar
EssentialsSpawn.jar
ExtraCells-1.7.10-2.2.73b129.jar
ExtraTiC-1.7.10-1.4.5.jar
Forbidden Magic-1.7.10-0.57.jar
forestry_1.7.10-3.5.6.15.jar
Ganys End-1.8.8.jar
GemBlocksForGreg-1.4a.jar
gendustry-mc1710-1.4.10.77.zip
GraviSuite-1.7.10-2.0.3.jar
gregtech_1.7.10-5.08.12.jar
GriefPreventionData
GriefPreventionPlus-12.4.jar
GrimoireOfGaia3-1.7.10-1.2.7.jar
GroupManager
GTTweaker-1.7.10-1.0.9.jar
Guide-API-1.7.10-1.0.1-20.jar
HardcoreEnderExpansion  MC-1.7.10  v1.8.4.jar
Herochat
HeroChat.jar
HQM-The Journey (4.2.3).jar
HungerOverhaul-1.7.10-beta.6.jar
ic2
IC2NuclearControl-2.1.2a.jar
IguanaTinkerTweaks-1.7.10-2.1.4.jar
industrialcraft-2-2.2.718-experimental.jar
InfernalMobs-1.7.10.jar
InventoryTweaks-1.59-dev-152.jar
ItemRestrict
ItemRestrict.jar
Java7Checker  MC-1.7.10  v1.1.jar
Lockette
Lockette.jar
logisticspipes-0.8.3.118.jar
LycanitesMobsComplete 1.11.0.2 [1.7.10].jar
magicbees-1.7.10-2.3.1.jar
Mantle-1.7.10-0.3.2.jar
Mariculture-Deluxe-1.7.10-1.2.4.2a.jar
Metallurgy-1.7.10-4.0.8.97.jar
MetallurgyCore-1.7.10-4.0.4.18.jar
MineTweaker3-1.7.10-3.0.9C.jar
ModTweaker 2-0.7.5.jar
MoreChisels-1.7.10-1.0-18.jar
Morpheus-1.7.10-1.6.10.jar
Multiverse-Core
Multiverse-Core-2.5.jar
Multiverse-Inventories
Multiverse-Inventories-2.5.jar
natura-1.7.10-2.2.0.1.jar
neiaddons-mc1710-1.12.7.21.zip
NetherOres-[1.7.10]2.3.0-12.jar
NotEnoughItems-1.7.10-1.0.5.118-universal.jar
OnTime
OnTime.jar
OpenComputers-MC1.7.10-1.5.9.21-universal.jar
OreDictionaryConverter-1.6.1.jar
Pam's HarvestCraft 1.7.10h.jar
PetBat-1.7.10.jar
PluginMetrics
ProjectRed-1.7.10-4.6.0.79-Base.jar
ProjectRed-1.7.10-4.6.0.79-Compat.jar
ProjectRed-1.7.10-4.6.0.79-Integration.jar
ProjectRed-1.7.10-4.6.0.79-Lighting.jar
PurpleIRC
PurpleIRC.jar
railcraft
Railcraft_1.7.10-9.8.0.0.jar
RandomTeleporter
RandomTeleporter.jar
RandomThings-2.2.4.jar
ReportRTS
ReportRTS.jar
secretroomsmod-1.7.10-4.7.1.409.jar
SimpleAlias
SimpleAlias_1.5.0.jar
SimpleClans
SimpleClans-Legacy.jar
SimplyJetpacks-MC1.7.10-1.4.1.jar
StevesAddons-1.7.10-0.10.16.jar
StevesCarts2.0.0.b18.jar
StevesFactoryManagerA93.jar
TConstruct-1.7.10-1.8.5.jar
Technomancy - 0.12.1C - 1.7.10.jar
Thaumcraft-1.7.10-4.2.3.5.jar
ThaumcraftGates-1.4.0.jar
thaumcraftneiplugin-1.7.10-1.7.jar
thaumicenergistics-0.8.10.10.jar
thaumichorizons-1.7.10-1.1.6.jar
ThaumicInfusion-4.27.jar
ThaumicTinkerer-2.5-1.7.10-164.jar
ThermalDynamics-[1.7.10]1.0.0-122.jar
ThermalExpansion-[1.7.10]4.0.1-182.jar
ThermalFoundation-[1.7.10]1.0.0-81.jar
TiCTooltips-mc1.7.10-1.2.4.jar
Translocator-1.7.10-1.1.2.15-universal.jar
ttCore-MC1.7.10-0.1.1-78.jar
UndergroundBiomesConstructs-1.7.2-0.7.jar
update
Updater
Vault
Vault-1.4.1.jar
Votifier
Votifier.jar
witchery-1.7.10-0.24.1.jar
WitchingGadgets-1.7.10-1.1.10.jar
WorldBorder
WorldBorder.jar
WorldEdit
WorldEdit.jar
WorldGuard
WorldGuard.jar
Ztones-1.7.10-2.2.1.jar

This is terrible. I assume some of the Sponge developers must run their own servers. Can you seriously tell me that this is an improvement over the old MCPC+ / Cauldron way of doing things?

Please tell me you will add legacy support to look for the old /plugins directory, so that modpack files and server management plugins can be kept separated from each other.

Alternately, will sponge walk a directory tree in /mods to find files? Can I create:

/mods/modpack/…
/mods/plugins/…

And still have everything work?

2 Likes

there was a post about this around a year ago, that is option a, option b is to prefix everything with mod/forge or plugin/sponge

basically it boils down to the fact that all SpongeAPI ‘plugins’ are modifications (ie mods) of Minecraft

These nitpicking semantics of what things are matters far less than how it affects the actual day-to-day operations and management of a server.

So we’re going to make management more difficult by smushing everything together, over a definitions argument that is irrelevant to the average person, and really only matters to programmers.

we prefix all custom mods with an underscore e.g. _EntityControl…jar, its not as clean as a separated directory but helps to stay ahead of hundreds of mods.
Maybe there will be something optional like ./mods/sponge/ at some time.

That’s a good attempt, but where are configuration files and directories for plugins going?

Your underscores and any other renaming solution is not going to work for the configuration files and directories associated with each plugin. The plugins will ignore the renamed files/dirs and make new ones.

Config files go in /config

Long time ago I read that the plugins folder has legacy support. Just try, place a plugin in plugins folder and see if it was loaded.

yeah absolutely. But I never had an issue with this. Reason being, once configured they don’t need to be changed and if one needs to be changed I usually know the plugins/config dirs name. I’m not sure how you are adjusting configs but I’m either on cli with vim or in ftb browser where you can jump to the one by typing the name on the keyboard.
Regarding mods it is different as I have a continues update progress, with it either being a single mod custom mod or many other mods, due to a modpack update for example, this keeps them separated, being able to delete all without an underscore quickly and putting in the new ones. (Well that was before we scripted it and used diff syncs.)

TrenTech: Config files go in /config

Wow, excellent.

So not only are we completely conflating constantly updating modpack files and relatively unchanging plugin files for no reason other than the irrelevant semantic “plugins” terminology annoys anal-retentive programmers, but we are also completely conflating constantly updating modpack config files with relatively unchanging plugin config files, because, um, we like making server admins suffer when modpack updates are needed, for no particular reason?

And this is actually considered a good idea? I can’t wait to see what next great ideas are coming out of this project.

Why do we now need to fool around with scripts and programming to make it easier to deal with the combined mod/plugin mess, when before we could simply rename and move out the old modpack /mods and /config directories and slide in the new updated ones?

But I realize, it’s late, and the people that can properly respond to this are probably asleep, so I’ll stop posting for a while.

You’re aware that every Plugin can get its very own config folder by default? So you won’t end up with one cluttered config folder.

Regarding the /plugin vs. /mods folder:
This has been discussed exhaustive in the past, just read the old threads. If you’re unsure which files are plugins, you can check via /sponge plugins.

First of all, a sincere facepalm for creating an overly aggressive and long thread about a minor issue like this one.

The folder structure is a question of the implementation you use. SpongeForge is a core mod for Forge. It makes no sense at all to create a second class loader when Forge already has one. Because Forge loads them from /mods/, Sponge plugins will get loaded from /mods/ - it’s that easy.

1 Like

Why is it necessary to force this reduced manageability over an issue of semantics down everyone’s collective throats when it can be left (mostly) up to the end-user to decide?

I see there is /config/sponge/global.conf … so add:

sponge-mods-path=/mods
sponge-config-path=/config

Let the server admins change it, and those who want to fight the semantic fight can leave it at those defaults.

Meanwhile server admins who just don’t care and simply want an easy to manage server can change those paths, and are left to deal with only ONE jar/dir to work around when doing modpack updates… Sponge itself.

1 Like

@Dale_Mahalko
Usually, I place my mods in a subdirectory of the mods folder. If the subdirectory has the same name as the Minecraft version (1.7.10, 1.8, 1.8.9), they will be loaded. You can move mods or plugins into that subdirectory to keep them separated.

1 Like

Interesting. Unfortunately, it seems some modpack releases are already doing this themselves which screws up the attempt to try to organize things in this manner. (… why are they doing this? Can we merge their modpack files outside the version-dir into the version-dir without breaking anything?)

ls ~/FTB-Infinity/mods
[1.7.10]
AdvancedSolarPanel-1.7.10-3.5.1.jar
AgriCraft-1.7.10-1.4.3.jar
[…]

ls ~/FTB-Infinity/mods/1.7.10
Baubles-1.7.10-1.0.1.10.jar
CodeChickenLib-1.7.10-1.1.3.138-universal.jar
commons-codec-1.9.jar
commons-compress-1.8.1.jar
ForgeMultipart-1.7.10-1.2.0.345-universal.jar
ForgeRelocation-0.0.1.4-universal.jar
ForgeRelocationFMP-0.0.1.2-universal.jar
MrTJPCore-1.1.0.31-universal.jar

Can the intermixed /config modpack and plugin files/directories be separated in a manner like this, without breaking them?

Technically, getting rid of plugins/ wasn’t a decision that was made. The decision that we made was not to add it.

SpongeForge is built atop Forge, which already loads plugins (or mods, if you want to get picky of name semantics) from the mods/ directory. Not only would we have to de-interface quite a few functions from Forge to add this feature, but it would mean that each server is running two entirely separate, difficult-to-intermingle classloaders, which defeats the entire purpose of running SpongeForge, anyways.

This isn’t a matter of trying to harm server owners.

EDIT: On another note: As a server owner, I personally think that I prefer this method.

It’s simple to run /sponge plugins, if you can’t remember which files are plugins and mods, meaning rather than worrying about organizing files in the correct directories, I can literally just drop everything into one place.

It’s a matter of perspective, and to assume that we’re making some horrible decision because you personally don’t like it is nonsensical.

3 Likes

Please explain the new and simplified procedure by which admins of public FTB/Technic/AT modpacks are now all universally supposed to upgrade to the next modpack version, which may contain fewer mods and configs than the previous modpack release.

I’m confused at why you think this will be an issue.

Can you extrapolate why, exactly, modpack updates would somehow be hindered by sharing the folder with unrelated plugins?

I have already explained this. A modpack version update does not simply overwrite existing files/directories. It can insert new file versions and delete old ones that were removed from the previous modpack release. There is no simple way to deal with this with everything stuck into one huge directory.

The plugin files / config dirs must now somehow be manually or programmatically separated out from everything else, moved out of the way, then delete the prior modpack release files, install the new modpack release files, and then merge back the plugin files/dirs to their previous locations.

Yep, that should take no more than an hour or so to do manually, to accomplish what could previously be done in about three minutes, renaming the /mods and /configs directories that were previously only for the modpack’s data. And don’t screw up, moving those 20-30 or so plugin files and directories around, for each modpack version upgrade.

“Well write a script!” Great, except admins are often not programmers, but apparently that requirement is now going to be forced onto all of them, because simply grouping “modpack stuff” and “plugin stuff” in separate file paths by design, is far too hard by comparison.

I think you’er over reacting a bit. As stated previously, prefix your sponge mods as you add them.

Also there is a difference between scripting and programming, and any good server admin should at least know how to write a basic script. I know when I ran a server I had dozens of scripts making my life easier.