Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Test Subject
Original Poster
#1 Old 11th Nov 2020 at 10:00 AM
Default I need help with modding (noob)
This forum isn't very active but I'm throwing this out here for the chance that someone might help me.

I'm trying to make a mod to enable Debug_MakeSelectable. I know that Grim's Core mod makes this possible, but I mostly use the debug option just to make npcs selectable. And, I keep "breaking" my save when I accidentally click a debug option I really shouldn't click. This is the first time I've attempted modding but with my basic java knowledge, I'm following Deedawg's guide and looking at other mods for help/reference. My file has no issues according to visual studio but when I package it and put it in game, I don't see the interaction when I click on an npc.

Since I am targeting a specific interaction, I cannot look at Rick's debug enabler or Grim's core mod for help since both enable most if not all debug interactions in a general way. I looked at TZ's dynamic professions and that helped a little bit. But, once I get to:
Code:
        protected override bool Run()
        {
            this.Target.SimDescription.IsNeverSelectable = !this.Target.SimDescription.IsNeverSelectable;
            if (this.Target.SimDescription.IsNeverSelectable && PlumbBob.SelectedActor == this.Target)
                PlumbBob.SelectNextSim(); 
            return true;
        }


I'm not sure what this means so I don't know what to do. My thought is that there should be an else if function there. But, I looked at the SimDescriptions and nothing really caught my attention except for public bool IsActiveSim and public bool IsSelectable. When I try to write a line with either of those, I get the error "CS0117: SimDescription does not contain a description for IsActiveSim" I've spent too many hours on this and I'm stumped.

Anyways, here's the code:

Code:
namespace ToggleNPC
{
    using Sims3.Gameplay.Actors;
    using Sims3.Gameplay.Autonomy;
    using Sims3.Gameplay.CAS;
    using Sims3.Gameplay.Core;
    using Sims3.Gameplay.Interactions;

    public class ToggleNPC : ImmediateInteraction<Sim, Sim>
    {
        public static readonly InteractionDefinition Singleton;
        public static void AddInteractions(Sim sim)
        {
            sim.AddInteraction(ToggleNPC.Singleton);
        }

        public static void RemoveInteractions(Sim sim)
        {
            sim.RemoveInteractionByType(typeof(ToggleNPC.Definition));
        }

        protected override bool Run()
        {
            this.Target.SimDescription.IsNeverSelectable = !this.Target.SimDescription.IsNeverSelectable;
            if (this.Target.SimDescription.IsNeverSelectable && PlumbBob.SelectedActor == this.Target)
                PlumbBob.SelectNextSim(); 
            if
            return true;
        }
        static ToggleNPC()
        {
         ToggleNPC.Singleton = (InteractionDefinition) new ToggleNPC.Definition();
        }

        [DoesntRequireTuning]
        private sealed class Definition : ImmediateInteractionDefinition<Sim, Sim, ToggleNPC>
        {
            protected override string GetInteractionName(
              Sim a,
              Sim target,
              InteractionObjectPair interaction)
            {
                return !target.SimDescription.IsNeverSelectable ? "Make me a NPC" : "Make me selectable.";
            }

            public override string[] GetPath()
            {
                return new string[1] { "Sim..." };
            }

            protected override bool Test(
              Sim a,
              Sim target,
              bool isAutonomous,
              ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                return true;
            }
        }
    }
}


I appreciate any help, guidance, insight, etc..
Advertisement
Test Subject
#2 Old 10th Feb 2021 at 11:23 PM
You don't need to have the debug options enabled to make any Sim active. You just press Shift + right click on the Sim. Same thing to deactivate the Sim.
You can have Grim's Core installed and disable the debug options at any time on the menu. I usually only have them enabled when I want to edit a Sim in CAS.
Back to top