jtsage / FS_Mod_Checker

Check your Farming Simulator 2019 or 2022 mod folder for bad files and unused mods.
ISC License
20 stars 3 forks source link

[FEATURE] Cracked DLC #26

Closed KITT3000 closed 3 years ago

KITT3000 commented 3 years ago

Some players use cracked DLC, sometimes because they don't know it, they should be warned that they have something like this and that they may not get help from Giants support when they need it (e.g. lost / locked game key or some game problem) ) and can be banned from the official FS server on Discord and from the official FS forum.

You can first check if there are files with specific names and then additional entries to confirm that it is a DLC and not an actual mod with a similar name to the DLC.

Alpine DLC Theoretically, it does not appear on the list of mods, so it cannot be used at all, but you can check if there is such a file: _FS19alpineFarmingPack

Claas DLC If you find warnings with these loaded scripts, it means that it is a DLC made illegally into a mod:

mods/FS19_claasPack/AdditionalSpecializations.lua
mods/FS19_claasPack/ExtendedObjectChange.lua
mods/FS19_claasPack/GrainTankEffect.lua
mods/FS19_claasPack/CustomConnectionHoseType.lua
mods/FS19_claasPack/ReverseDrivingFix.lua
mods/FS19_claasPack/ExtendedGroundReference.lua
mods/FS19_claasPack/ExtendedBaleWrapper.lua
mods/FS19_claasPack/ExtendedCrawlers.lua
mods/FS19_claasPack/ExtendedCutter.lua
mods/FS19_claasPack/ExtendedDynamicMountAttacher.lua
mods/FS19_claasPack/ExtendedCombineEffects.lua

Here is an additional option to check if the mod is a cracked DLC:

Error: Vehicle type 'FS19_claasPack.extendedBalerWrapper' has unknown specialization 'FS19_claasPack.extendedBaleWrapper'!
Error: Vehicle type 'FS19_claasPack.combineDrivableCrawlers' has unknown specialization 'FS19_claasPack.extendedCrawlers'!
Error: Vehicle type 'FS19_claasPack.combineDrivableCrawlers' has unknown specialization 'FS19_claasPack.extendedCombineEffects'!
Error: Vehicle type 'FS19_claasPack.extendedCutter' has unknown specialization 'FS19_claasPack.extendedCutter'!
Error: Vehicle type 'FS19_claasPack.extendedDynamicMountAttacherTrailer' has unknown specialization 'FS19_claasPack.extendedDynamicMountAttacher'!

Kverneland DLC Scripts:

mods/FS19_kvernelandPack/AdditionalSpecializations.lua
mods/FS19_kvernelandPack/ExtendedBalerUnloadEvent.lua
mods/FS19_kvernelandPack/ExtendedBaleWrapperAutoDropEvent.lua
mods/FS19_kvernelandPack/ExtendedPlowPackerStateEvent.lua
mods/FS19_kvernelandPack/SwitchableSprayTypesChangeTypeEvent.lua
mods/FS19_kvernelandPack/AIMaxToolRadiusFix.lua
mods/FS19_kvernelandPack/AdditionalToolConnectionHoses.lua
mods/FS19_kvernelandPack/CustomConnectionHoseType.lua
mods/FS19_kvernelandPack/WorkModeInputActionFix.lua
mods/FS19_kvernelandPack/ExtendedAttachable.lua
mods/FS19_kvernelandPack/ExtendedBaleWrapper.lua
mods/FS19_kvernelandPack/ExtendedPlow.lua
mods/FS19_kvernelandPack/PlowCultivator.lua
mods/FS19_kvernelandPack/ExtendedBaler.lua
mods/FS19_kvernelandPack/TransportAttacherJoint.lua
mods/FS19_kvernelandPack/SwitchableSprayTypes.lua
mods/FS19_kvernelandPack/ExtendedFoldable.lua
mods/FS19_kvernelandPack/SpeedLimitModifier.lua
mods/FS19_kvernelandPack/WorkAreaConfigurations.lua
mods/FS19_kvernelandPack/WorkModeConfigurations.lua
mods/FS19_kvernelandPack/FoldableFoliageBendingModifiers.lua
mods/FS19_kvernelandPack/ExtendedConnectionHoses.lua
mods/FS19_kvernelandPack/ConnectionHosePowerTakeOffFix.lua

Additional check:

Error: Vehicle type 'FS19_kvernelandPack.extendedBalerWrapper' has unknown specialization 'FS19_kvernelandPack.extendedBaleWrapper'!
Error: Vehicle type 'FS19_kvernelandPack.extendedBalerWrapper' has unknown specialization 'FS19_kvernelandPack.extendedBaler'!
Error: Vehicle type 'FS19_kvernelandPack.extendedBaleWrapper' has unknown specialization 'FS19_kvernelandPack.extendedBaleWrapper'!
Error: Vehicle type 'FS19_kvernelandPack.plowExtended' has unknown specialization 'FS19_kvernelandPack.extendedAttachable'!
Error: Vehicle type 'FS19_kvernelandPack.plowExtended' has unknown specialization 'FS19_kvernelandPack.extendedPlow'!
Error: Vehicle type 'FS19_kvernelandPack.plowExtended' has unknown specialization 'FS19_kvernelandPack.plowCultivator'!
Error: Vehicle type 'FS19_kvernelandPack.sowingMachineExtended' has unknown specialization 'FS19_kvernelandPack.transportAttacherJoint'!
Error: Vehicle type 'FS19_kvernelandPack.sowingMachineExtended' has unknown specialization 'FS19_kvernelandPack.speedLimitModifier'!
Error: Vehicle type 'FS19_kvernelandPack.fertilizingSowingMachineExtended' has unknown specialization 'FS19_kvernelandPack.transportAttacherJoint'!
Error: Vehicle type 'FS19_kvernelandPack.spreaderSwitchableSprayTypes' has unknown specialization 'FS19_kvernelandPack.switchableSprayTypes'!
Error: Vehicle type 'FS19_kvernelandPack.extendedTedder' has unknown specialization 'FS19_kvernelandPack.extendedFoldable'!
Error: Vehicle type 'FS19_kvernelandPack.extendedTedder' has unknown specialization 'FS19_kvernelandPack.connectionHosePowerTakeOffFix'!
Error: Vehicle type 'FS19_kvernelandPack.extendedSprayer' has unknown specialization 'FS19_kvernelandPack.foldableFoliageBendingModifiers'!
Error: Vehicle type 'FS19_kvernelandPack.extendedCultivator' has unknown specialization 'FS19_kvernelandPack.workAreaConfigurations'!
Error: Vehicle type 'FS19_kvernelandPack.extendedCultivatingSowingMachine' has unknown specialization 'FS19_kvernelandPack.workAreaConfigurations'!
Error: Vehicle type 'FS19_kvernelandPack.extendedCultivatingSowingMachine' has unknown specialization 'FS19_kvernelandPack.extendedConnectionHoses'!

Anderson DLC Scripts:

mods/FS19_andersonPack/InlineBale.lua
mods/FS19_andersonPack/InlineBaleOpenEvent.lua
mods/FS19_andersonPack/InlineWrapperPushOffEvent.lua
mods/FS19_andersonPack/InlineWrapper.lua
mods/FS19_andersonPack/SplineAnimation.lua
mods/FS19_andersonPack/BlockFoliageDestruction.lua
mods/FS19_andersonPack/ExtendedBaleLoader.lua

Additonal check:

Error: Vehicle type 'FS19_andersonPack.inlineWrapper' has unknown specialization 'FS19_andersonPack.inlineWrapper'!
Error: Vehicle type 'FS19_andersonPack.inlineWrapper' has unknown specialization 'FS19_andersonPack.splineAnimation'!
Error: Vehicle type 'FS19_andersonPack.cuttingBaler' has unknown specialization 'FS19_andersonPack.blockFoliageDestruction'!
Error: Vehicle type 'FS19_andersonPack.extendedBaleLoader' has unknown specialization 'FS19_andersonPack.extendedBaleLoader'!

Bourgault DLC Scripts:

mods/FS19_bourgaultPack/FoldingDetachLimitFix.lua
mods/FS19_bourgaultPack/SteeringAxleNodes.lua
mods/FS19_bourgaultPack/ComponentPlacementFix.lua
mods/FS19_bourgaultPack/SpeedLimitModifier.lua
mods/FS19_bourgaultPack/SpeedSupportAnimation.lua
mods/FS19_bourgaultPack/ConnectionHosesUpdateFix.lua

Additional check:

Error: Vehicle type 'FS19_bourgaultPack.extendedFertilizingSowingMachine' has unknown specialization 'FS19_bourgaultPack.steeringAxleNodes'!
Error: Vehicle type 'FS19_bourgaultPack.extendedFertilizingSowingMachine' has unknown specialization 'FS19_bourgaultPack.componentPlacementFix'!
Error: Vehicle type 'FS19_bourgaultPack.extendedFertilizingSowingMachine' has unknown specialization 'FS19_bourgaultPack.speedLimitModifier'!
Error: Vehicle type 'FS19_bourgaultPack.extendedFertilizingSowingMachine' has unknown specialization 'FS19_bourgaultPack.speedSupportAnimation'!
Error: Vehicle type 'FS19_bourgaultPack.extendedFertilizingSowingMachine' has unknown specialization 'FS19_bourgaultPack.connectionHosesUpdateFix'!
Error: Vehicle type 'FS19_bourgaultPack.extendedFillableImplement' has unknown specialization 'FS19_bourgaultPack.connectionHosesUpdateFix'!
Error: Vehicle type 'FS19_bourgaultPack.extendedCultivator' has unknown specialization 'FS19_bourgaultPack.speedLimitModifier'!
Error: Vehicle type 'FS19_bourgaultPack.extendedWeeder' has unknown specialization 'FS19_bourgaultPack.speedLimitModifier'!

Grimme DLC Scripts:

mods/FS19_grimmePack/ExtendedSpeedRotatingParts.lua
mods/FS19_grimmePack/ExtendedFSDensityMapUtil.lua
mods/FS19_grimmePack/AutomaticDischarging.lua
mods/FS19_grimmePack/ExtendedReceivingHopper.lua
mods/FS19_grimmePack/CutterDensityHeightPickupFix.lua
mods/FS19_grimmePack/ExtendedFoldable.lua
mods/FS19_grimmePack/DischargeableMinDropFix.lua
mods/FS19_grimmePack/AutomaticFlashingLights.lua
mods/FS19_grimmePack/DischargeCounter.lua
mods/FS19_grimmePack/DischargeConveyorActiveFix.lua

Additional check

Error: Vehicle type 'FS19_grimmePack.WH200' has unknown specialization 'FS19_grimmePack.automaticDischarging'!
Error: Vehicle type 'FS19_grimmePack.WH200' has unknown specialization 'FS19_grimmePack.dischargeableMinDropFix'!
Error: Vehicle type 'FS19_grimmePack.extendedReceivingHopper' has unknown specialization 'FS19_grimmePack.extendedReceivingHopper'!
Error: Vehicle type 'FS19_grimmePack.extendedReceivingHopper' has unknown specialization 'FS19_grimmePack.automaticFlashingLights'!
Error: Vehicle type 'FS19_grimmePack.extendedReceivingHopper' has unknown specialization 'FS19_grimmePack.dischargeCounter'!
Error: Vehicle type 'FS19_grimmePack.conveyorLoader' has unknown specialization 'FS19_grimmePack.dischargeConveyorActiveFix'!
Error: Vehicle type 'FS19_grimmePack.extendedAttachableCutter' has unknown specialization 'FS19_grimmePack.cutterDensityHeightPickupFix'!
Error: Vehicle type 'FS19_grimmePack.MultiTrailer' has unknown specialization 'FS19_grimmePack.extendedFoldable'!

JohnDeereCotton DLC Scripts:

mods/FS19_johnDeereCottonPack/ExtendedBalerUnloadEvent.lua
mods/FS19_johnDeereCottonPack/AIDriveStrategyBalerFix.lua
mods/FS19_johnDeereCottonPack/DynamicBaleLoaderFix.lua
mods/FS19_johnDeereCottonPack/ExtendedBaleLoader.lua
mods/FS19_johnDeereCottonPack/ExtendedBaler.lua

Additional check:

Error: Vehicle type 'FS19_johnDeereCottonPack.extendedBaleLoader' has unknown specialization 'FS19_johnDeereCottonPack.extendedBaleLoader'!
Error: Vehicle type 'FS19_johnDeereCottonPack.extendedCottonHarvester' has unknown specialization 'FS19_johnDeereCottonPack.extendedBaler'!

Rottne DLC Scripts:

mods/FS19_rottnePack/scripts/ExtendedFoldable.lua

Additional check:

Error: Vehicle type 'FS19_rottnePack.forwarderExtended' has unknown specialization 'FS19_rottnePack.extendedFoldable'!
Error: Vehicle type 'FS19_rottnePack.woodHarvesterFoldable' has unknown specialization 'FS19_rottnePack.extendedFoldable'!
jtsage commented 3 years ago

This is great info. I have to mull this over for a bit and figure out how best to use it. Right now, I'm not interacting with the installed game at all. So, the easy thing to do is test for the DLC names in the mod list (they shouldn't appear normally, they are kept in the pdlc folder, and I actually explicitly ignore those entries for purchased vehicles / placeables. Maybe a couple permutations of "crack" or "unlocked" too. (I'll start paying attention on the sketchy sites and see if I spot any other patterns when these get uploaded)

As to catching the log entries, right now I don't load the FS19 log. But I am already in that folder loading gameSettings.xml, it wouldn't be hard to see if it exists, and if it does, see if those entries appear anywhere in the log.

From a personal standpoint, that whole extra $20 for some DLC has been absolutely worth not having cracked garbage all over my machine for quite some time, so I didn't even consider this as an issue, but I do see your point. You would think that a person would remove those before they ask for help from the official source though. Who knew. :)

KITT3000 commented 3 years ago

It has already happened several times that a person has downloaded a package from a dedicated server or got it from a friend and does not even know that it contains such files, and when he asks for help on the official FS discord server or forum where a LOG file is usually asked, it is noticed and usually immediately gets banned.

KITT3000 commented 3 years ago

Since you do not check the LOG then you may be able to search for the "productId" lines in modDesc, it is only in the case of DLC eg. <productId>5B527587</productId> (line content varies with each DLC)

jtsage commented 3 years ago

Gotcha. I might have gotten ahold of one of these too. I'm guessing that productID.dat and the presence of .L64 (precompiled, encrypted lua?) is a reasonable indicator too? Going to be interesting to test, as I have it in a sandbox and I don't have a lot of trust to even move it to a testing location - but, if these are good indicators I can pretty easily create an empty fake that'll trigger

KITT3000 commented 3 years ago

You can check it with this, but the .dat file can be removed by someone and the encoded and compiled .l64 replaced with the usual .lua which will reduce the chance of detecting if it is actually a DLC (although you can also include the title from modDesc, because rather no one creating your mod will not be tempted to have the same name as they have DLC)

jtsage commented 3 years ago

Make sense. I don't see how I can really have 100% coverage, but I think for now I will check for:

1.) the presence of a <productID> tag in modDesc 2.) the presence of productID.dat in the file / folder 3.) the presence of *.l64 in the file / folder. 4.) A simple string compare of the titles to match the DLC.

Of course, these are easily spoofed by anybody who takes even half a second in preparing these, but my experience (granted not in the last couple decades) is that generally these crackers do the bare minimum. It won't catch them all, but it will catch some.

KITT3000 commented 3 years ago

Usually they forget to remove this line from modDesc (sometimes they only comment it), it does nothing if the file is modDesc because the original one in the DLC is named dlcDesc and usually everyone just renames it and doesn't edit anything in it .