Letting the player perform actions on non-visible objects?

So I have the following action set up:

Accusing is an action applying to two things. Understand "accuse [someone] of murdering [someone]" as accusing. Understand "accuse [someone] of killing [someone]" as accusing.

…and so on, with a bunch of outcomes depending on who you are accusing. But by default, Inform seems to require you to be able to see objects you are performing actions upon. This messes things up here because the dead person is never visible, and in any case I want this action to be possible no matter who is visible.

I have tried ignoring the basic accessibility rule but that hasn’t worked for me, so either I misunderstand what that does or I’m bad at using rules (probably both). Am I missing something simple here?

You aren’t missing a thing; the default is for commands to apply to objects that are in-scope (which is different than visible; though visible things are (usually) in scope).

You’ll want something like ‘Understand “accuse [someone] or murdering [any person]” as accusing.’ to open it up to things that aren’t in the location with the player.

Alternatively, you can place the victim in scope. In which case you’ll have to prevent other actions from working on them as well.

Perfect. That use of “any” should solve a few other things I need to fix, too. Thanks!

I have a similar issue - can I use any on the first noun as well? Like - Understand “accuse [any person]” as accusing? I tried this and I think I may have got the phrasing wrong. I think I was trying something like - Understand “accuse [anyone] as accusing”.


Just in in case anyone refers back to this, I changed it to:

Accusing is an action applying to two things. Understand "accuse [any person] of murdering [any person]" as accusing. Understand "accuse [any person] of killing [any person]" as accusing.

…but it’s worth noting that I also then put all of the things the action does after the following:

…because using “instead” or “carry out” still requires the things to be reachable.

You need to change the action definition into this:

Accusing is an action applying to two visible things.

Note the word “visible”: it removes the touchability requirement.

(And a side note: You might want to actually call the action “Accusing it of killing” so you can write rules in the form “Instead of accusing Lee Harvey Oswald of killing JFK: …”)

Thank you! I had forgotten that visibility is scope and not locational.

Instead and carry out require the rules to be passed, which you bypass with the “any thing” phrase. I beleive