Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

CodaBool

22
Posts
24
Followers
2
Following
A member registered Aug 10, 2023 · View creator page →

Creator of

Recent community posts

(9 edits)

You could do this in one of two ways.

The simplest is to chain the Terminals together. So, each Terminal can Secure Shell to the next one.

The more complicated way requires some scripting but I’ll walk you through it. This way also requires using Foundry V12+, since it uses Regions. This will create a one-to-many relationship of Terminals. You’ll need to create a new Region. Keep the Region in an area players can’t get to, it will only be used for scripting. Then create a “Run Script” Behavior. For an example see the screenshot below. I created 2 Run Script Behaviors and renamed them to “Open Terminal 1” and “Open Terminal 2”. I have the code later which you’ll want to enter for each Behavior.

You’ll want to have each of your behaviors use a separate “Subscribed Event”. For mine I used “Token Enters” & “Token Exits”.

Now we need to link these Event Behaviors to the parent Terminal. Open the tile config for your main Terminal tile. Then open the Trigger Regions window (see screenshot below of the opened window). Add the new Region. You’ll want to add it multiple times (since I’m only linking two Terminals, I’ll add that same Region twice).

Then to finish the link, we need to edit the “Simulated Event” field to match, one to one, with those Behaviors we created. So, for me that’s the “Token Enters” & “Token Exits” events.

I know this gets a pretty complicated and likely confusing. Try and match what I have in the screenshots as best you can to just get it working.

What this does is every Region that’s added here will become a button in the main Terminal. The button will simulate your chosen Region event. This trigger all Behaviors that are subscribed to that event (in our case it’s one-to-one). Since the Behaviors are script Behaviors this runs the code you have in the Run Script field.

Now, that everything is linked let’s go back to your “Run Script” Behavior. You need to actually define the code to run. Copy this code into a notepad:

const TILE_UUID = "PUT_YOUR_TARGET_TILE_UUID_HERE"

const terminalOpen = Array.from(foundry.applications.instances.values()).find(a => 
  TILE_UUID === a.context?.tuid
)

if (!terminalOpen) {
  new Terminal(TILE_UUID).render(true)
}

Replace the TILE_UUID variable with any one of the target child Terminal’s UUID. Then enter your edited code into the Behavior’s Script field. That finishes one Behavior’s “Run Script” but we have multiple. For each child Terminal you want to link, update the TILE_UUID each time and paste your code into a different “Run Script” Behavior.

That should be it. There are only a few extra considerations. This bypasses validation on your Terminal settings. This bypasses the initial Item and Skill checks (password should still work).

Eventually I’m sure Foundry will support running Macros with arguments from Regions and this will be simpler but that isn’t happening anytime soon.

Nice, no rush on this but if you have a GitHub account can you open up an issue here. That way we can get all the details.

(1 edit)

Looking into this!

EDIT: should be fixed now in v3.1.7 thanks for the report

I changed the way journal linking works. You’ll need to click the journal in the sidebar.

(6 edits)

I have added a splash media setting that you can find on the style form. It has two “modes”.

  1. If you upload a video it will replace the loading bar and ASCII entirely

  2. If you upload an image it will use that as a background while keeping the standard ASCII and loading bar

I still need to add more layouts, text animation, and default styles but it’s getting there.

EDIT (4 months later update): this behavior is NO LONGER TRUE as of 3.1.6+ (October 2024). Showing the ASCII art + Loading bar is now its own configurable setting in the style editor. Regardless of the file type used for the splash.

I made the mistake of not testing this on The Forge since version 1. I was able to reproduce your double tab issue very easily, but only once I played around in The Forge.

It seems for some reason Forge loads the javascript esmodules differently than how it does for my local server. Not sure why, but I’m aware of it now.

Anyways, if you update to 2.2.0 you will have a much better experience.

😎

I have put out a hotfix for the bug that seemed to affect any non-image background terminals. Make sure to update to v2.0.1 if you are on v2.0.0

(1 edit)

I have put out a hotfix for the bug that seemed to affect any non-image background terminals. Make sure to update to v2.0.1+ if you are on v2.0.0

(1 edit)

The modules supports a large amount of customization. These are some of the things already in the module:

  • You can set the background to an image or video
  • you can define your own ASCII for the splash
  • you can define the colors for most things
  • you can set your own border for the window.
  • the audio for click, login, logout and ambient can be set

With these you should be able to get a theme close to what your describing.

I could put it on my list of things to look into for specifically defining a splash video. Which is only shown on startup and then would change to the standard background in use now.

(1 edit)

That’s a cool implementation. I haven’t actually tried placing them on top of each other like that.

For updating the flags you’ll actually want to use Foundry’s setFlag() function. This is present on the document object of the tile.

Here is an example:

canvas.tiles.get("id of tile").document.setFlag("terminal", "enabled", false)

Let me know if that works better.

I am eventually adding a feature to open other Terminals. It’s good to hear there will be some demand for that.

EDIT: this feature has been added by the name “Secure Shell”. There is also included compendium macros that can be used for opening a Terminal.

(1 edit)

I have a couple things brewing for new features. The three certain ones are related to cameras, passwords/keycards and lights.

I’m implementing/taking some ideas from Starfinder. Which I’ve never played but find their mechanics around terminals to be interesting. This includes things like: lockouts, alarms, data wipes, encrypted pages, accessing other computers from your current one.

I’m going to be spending some time to see what is feasible from these ideas.

As far as puzzles or minigames I’m a bit torn because that is a great idea. Even one I listed as a stretch goal on my github page for this.

However, it runs into a problem I haven’t really thought of a solution for. It steps on whatever game system’s solution for accessing computers is. I don’t know a good solution around this, which has halted my progress on that.

I have a prototype of this working in v12. This feature is here to stay!

This was the last feature to be ported to v12 so this module is ready for whenever that happens.

(1 edit)

Yes, when configuring the Terminal inside the Tile config. There will be a checkbox to add a button for any user that views the Terminal UI. This button when clicked will explore all the Fog of War for the current scene for all connected players.

Let me know if you have another other questions 🙂

As a warning if you like to stay on the latest Foundry version I have yet to find a way to make this feature work on the unreleased version 12 (Which won’t come out for another couple months). I reached out the Foundry devs but it doesn’t seem like they are going to help me find a solution to it. There are APIs I can hook into but they get complicated very fast.

So, just something to be aware of. This feature may only be here for a year if you stay on latest Foundry.

I’ve found a bug in how macros are ran which prevents them from running. I will push out a new version 1.3.6 soon 🙇

release notes

I haven’t been able to reproduce the duplicate tab issue like in your screenshot. But I do have quite a few updates I’ve put out. Latest is currently 1.3.5 now and has a more fully featured method for using macros to open a Terminal.

In order to use the macro you can follow these steps:

  1. Upgrade to latest
  2. Open your compendium and you should see a new entry for “Terminal Macros”

image.png

  1. open context menu (right click windows or two finger click on mac) on either an individual macro or on the compendium itself and import macros
  2. I recommend using “Monk’s Active Tile” module to supply either macro with arguments.
  3. You will need to pick if you want to open the Terminal for all users, or for a specific user. They both are their own macro. So, in Monk’s Active Tile menu select the appropriate one.
  4. Fully configure a Terminal tile in the scene. (There is a requirement that all users and GM are viewing the scene which this will happen in)
  5. Take the Tile ID and supply it as the first argument.
  6. (optional if using a macro for a single user) as a second argument (Monk’s Active Tiles expects arguments to be separated by spaces) provide a User’s ID
  7. Activate the tile, which runs the macro

image.png

I’m going to edit my previous comment that contained an example macro since one is now included in the module.

I should be able to patch that as well, thanks for letting me know.

Are you on the latest version 1.3.3? Yeah this is a potential issue with trying to open the Terminal with a macro. It is bypassing some of the validation I’ve written in.

You will need to assign assign a style to the Terminal from the tile’s config before trying to open it from a macro.

I do need to fix the visibility of the close icon. I can do a quick fix for that in this week but for now there is a hidden close button that is still clickable where this image points to:

(3 edits)

I see what you mean. Well there wasn’t until today. I’ve pushed a 1.3.3 version that can support this.

I am now exporting an instance of Terminal to the window. That means it can be opened with a macro and triggered with that by Monk’s Active Tiles.

This is a bit experimental since it loses a few features this way compared to having your players just walk onto the Terminal tile, so proceed with caution.

~~So, here is what you’ll need to do. You should create a macro and give it this contents (replacing the journal and tile ID)

Then add a trigger onto whatever tile your using to run the macro and it should open it. Keep in mind this macro must be ran by whoever you intend to have see the Terminal. It only opens up for the client that triggered the macro.~~

EDIT: I now have a supported macro which comes in an included module Compendium. For steps on how to use that. Read through the rest of the thread

(1 edit)

there’s a foundry guide

You can go to the setup screen of your Foundry instance. Go to the Add-on Modules tab. Click install modules button. Search “Monk’s active tile triggers”. Click install button.

Then in a world as a GM activate the module on the settings sidebar.

You can now place a tile and a new tab will be shown in the tile config. It’s called triggers and there are numerous settings for how things can be configured at that point.

Yes it is 🌞 I do it all the time and would recommend.

Glad to hear! This is the second time I’ve heard Fallout comments related to this. I’ll have to keep that in mind when I do my styling update 🐱