The mod only uses two scripts.
A simple script that simply checks file versions:
Scriptname RenCrimeVersionQuestScript extends Quest {This is the script to determine which version of RCO is running.}Float VersionFloat PrevVersionMessage Property RenUpdateMessage AutoEvent OnInit() RegisterForUpdate(5)EndEventEvent OnUpdate() Version = 0.91 if (Version > PrevVersion) RenUpdateMessage.Show(PrevVersion, Version) endif PrevVersion = VersionEndEventAnd the bigger script, likely where the savegame bloating is:
Scriptname RenCrimeSMCGQuestScript extends Quest import GameObjectReference Property RenCrimeGuardRing Auto Cell Property prevplayercell AutoArmor Property RenGuardRing AutoActor[] myGuardActorArrayActor[] myCivilianActorArrayint playercrimegoldint prevplayercrimegoldFaction Property currentcrimefaction AutoFaction Property nullcrimefaction AutoRace Property actorrace AutoRace Property horserace AutoRace Property dograce AutoRace Property ArgonianRace AutoRace Property ElderRace AutoRace Property BretonRace AutoRace Property DarkElfRace AutoRace Property HighElfRace AutoRace Property ImperialRace AutoRace Property KhajiitRace AutoRace Property NordRace AutoRace Property OrcRace AutoRace Property RedguardRace AutoReferenceAlias Property RenGuardFollowRef Autobool guardfollowingplayerEvent OnInit() RegisterForUpdate(0.1) myGuardActorArray = new Actor[128] myCivilianActorArray = new Actor[128] endEventEvent OnStoryCrimeGold(ObjectReference akVictim, ObjectReference akCriminal, Form akFaction, int aiGoldAmount, int aiCrime) Actor VictimNPC = akVictim as Actor Actor CriminalNPC = akCriminal as Actor ;Debug.Messagebox(CriminalNPC + " got " + aiGoldAmount + " crime gold for victimizing " + VictimNPC) endEventEvent OnUpdate() RegisterForUpdate(0.1) if Game.GetPlayer().GetParentCell() != prevplayercell || prevplayercell == none prevplayercell = Game.GetPlayer().GetParentCell() int x = 0 while x < myGuardActorArray.Length myGuardActorArray[x] = none x = x + 1 endWhile x = 0 while x < myCivilianActorArray.Length myCivilianActorArray[x] = none x = x + 1 endWhile endif playercrimegold = currentcrimefaction.GetCrimeGold() if playercrimegold > prevplayercrimegold int golddifference = playercrimegold - prevplayercrimegold ; player committed a crime ;Debug.Notification("Player committed a crime and added " + golddifference + " to their bounty.") int x = 0 while x < myGuardActorArray.Length if Game.GetPlayer().IsDetectedBy(myGuardActorArray[x]) == false myGuardActorArray[x].StopCombat() endif endWhile x = 0 while x < myCivilianActorArray.Length if Game.GetPlayer().IsDetectedBy(myCivilianActorArray[x]) == false myCivilianActorArray[x].StopCombat() endif endWhile endif prevplayercrimegold = currentcrimefaction.GetCrimeGold() Actor randomActor = Game.FindRandomActorFromRef(Game.GetPlayer(), 8000) if randomActor.IsGuard() == 1 currentcrimefaction = randomActor.GetCrimeFaction() int x = 0 int add = 1 while x < myGuardActorArray.Length && add == 1 if myGuardActorArray[x] == randomActor add = 0 endif x = x + 1 endWhile if add == 1 int arraylength = 0 x = 0 while x < myGuardActorArray.Length if myGuardActorArray[x] == none arraylength = x x = myGuardActorArray.Length endif x = x + 1 endWhile myGuardActorArray[arraylength] = randomActor endif else int x = 0 int add = 1 while x < myCivilianActorArray.Length && add == 1 if myCivilianActorArray[x] == randomActor add = 0 endif x = x + 1 endWhile if add == 1 int arraylength = 0 x = 0 while x < myCivilianActorArray.Length if myCivilianActorArray[x] == none arraylength = x x = myGuardActorArray.Length endif x = x + 1 endWhile myCivilianActorArray[arraylength] = randomActor endif endif int x = 0 bool keepcrimereporton = false while x < myCivilianActorArray.Length Race myrace = myCivilianActorArray[x].GetRace() if myrace == ArgonianRace || myrace == ElderRace || myrace == BretonRace || myrace == DarkElfRace || myrace == HighElfRace || \ myrace == ImperialRace || myrace == KhajiitRace || myrace == NordRace || myrace == OrcRace || myrace == RedguardRace if myCivilianActorArray[x].IsDead() == false && myCivilianActorArray[x].IsPlayerTeammate() == false && Game.GetPlayer().IsDetectedBy(myCivilianActorArray[x]) == true keepcrimereporton = true x = myCivilianActorArray.Length endif endif x = x + 1 endWhile x = 0 while x < myGuardActorArray.Length if Game.GetPlayer().IsDetectedBy(myGuardActorArray[x]) == true || Game.GetPlayer().GetDistance(myGuardActorArray[x]) <= 400 keepcrimereporton = true x = myGuardActorArray.Length endif x = x + 1 endWhile SetPlayerReportCrime(keepcrimereporton) if keepcrimereporton == true ;Debug.Notification("Turned on crime reporting on player...") else ;Debug.Notification("Turned off crime reporting on player...") endif if Game.GetPlayer().IsSneaking() == true || Game.GetPlayer().IsWeaponDrawn() == true x = 0 while x < myGuardActorArray.Length if Game.GetPlayer().IsDetectedBy(myGuardActorArray[x]) == true && guardfollowingplayer == false RenGuardFollowRef.ForceRefTo(myGuardActorArray[x]) guardfollowingplayer = true x = myGuardActorArray.Length endif x = x + 1 endWhile else RenGuardFollowRef.Clear() guardfollowingplayer = false endif endEventI cannot figure out what is causing the savegame bloating - anyone who could provide me with some insight would have my utmost gratitude!


.