Of course, go ahead. Feel free to DM on discord if you’d like. It’s “codabool”
CodaBool
Creator of
Recent community posts
Purchasing will provide you with a key. Use the provided key on this page of foundry.com (must be logged in). Foundry has a guide for this here.
Alternatively there is a newly released official Foundry storefront where you don’t have to mess with keys at all. Has the same effect of permanently adding the module to your Foundry account.
I think this might be related to you having a version of the module higher than you should be able to. It’s something I fixed now, but there was a window where you could install the Foundry v13 version of Terminal in Foundry v12.
If I’m right on this then you will need to just uninstall and reinstall the module. This is completely safe to do.
When you reinstall it should download 3.2.6
for you. Let me know if that fixes the issue for you.
What foundryVTT version are you running and does it still happen if you disable all other modules?
Lastly could you open your browser’s dev console (F12 > console tab) and reproduce the bug. Then screenshot any error logs that show up.
Definitely can try and get that fixed for you. I unfortunately was not able to replicate that on my end. I tested in V12.
I’m guessing our setup is different.
Go ahead and use “Report a Bug” button. It’s fine to leave the content blank. This will email me more information for your system (e.g. Foundry version, modules, browser).
I haven’t found any free sci-fi modules. Most Foundry games are fantasy games and the module community reflects that. There is a map module I created, which is free, found here. I wrote up what I use for my modules:
A good piece of advice is to not download any of these but first see what you are needing. Definitely don’t install a module I put in the “hard to setup” category without knowing that you need something like that first. Your time is precious as a GM, and creating sessions is time consuming.
Essential
- Dice so nice! = essential!
- Zoom/Pan Options = Gives touchpad users a nicer way to pan (they have to select touchpad in the settings)
- Monk’s player settings = better manage settings, can set player module settings for them by using the “all players” dropdown
Easy and low risk
- carousel combat tracker = adds a portraits for each combatant
- Quick Insert = my previous search tool, I now use “Spotlight Omnisearch” (seen in next section). This one works great. I’d also recommend turning on Journal indexing. The only reason I switched to Omnisearch is because it can index headers in journal pages.
- Tile Scroll = create incredible parallax effects, moving background effects.
- Sweet Nothings = adds a UI and a shortcut (alt+w) for players to whisper and reply to each other in secret
- Popout! = allows windows to be popped out, useful to add the PDF of the rules. Then pop that window out
- Monk’s Active Tile Triggers = best scripting module
- minimal UI = gets rid of Foundry logo and changes things for a cleaner look.
- Mass Edit = adds a shortcut (shift + e) to edit multiple items at once on the scene
Either hard to setup or have a risk of unintended behavior
- Spotlight Omnisearch = An alternative to “Quick Insert” I really like this one but the defaults are not great. I change the shortcut to ctrl + shift + space. I change click to dismiss on. I toggle on Full Compendium Journal Index. I don’t recommend this one unless you also install “Monk’s player settings”. Because players will join without click to dismiss on, and have trouble getting rid of the popup. Using that setting module you can ensure nothing annoying happens with this one. Once through all that I transcribe the important rules of the system into journal pages. This takes hours but is amazing during games. For example, if I don’t remember what “stunned” does, as long as you write it as header in a observable journal page. Anyone can search and can jump to it with tab + enter. My players use it all the time in a complicated game system like Lancer. Which is ideal really to have your players empowered to be able to answer questions themselves.
- Splatter = blood effects, can sometimes need you to set how it reads the actor’s health. For example in Alien Game System I needed to use “header.health.value”
- Moulinette Core = dependency to tiles
- Moulinette Tiles = allows me to drop images down as tiles easily. The setup process is a real pain. But now that it’s setup I use it all the time
- Token Action HUD Core = I only recommend this one if you can find the complimentary “Token Action HUD for $GAME_SYSTEM”. Adds quick access buttons the common actions
- Shared Vision = I generally want allies to see what other allies see, this module adds that ability (I set it so tokens that are friendly have shared vision)
- limits = I don’t like the default way that lights can be seen from any distance, I use limits to limit this
- item piles = can put lootable items on the scene
- chat reactions = players can use emojis and custom reactions to things in chat
- automated animations = if an item’s name matches something here, and the user has a token targeted, the animation is used
Settings
- carousel combat tracker = set size to x-large (this is not a global setting, needs to be done per machine or use “Monk’s player settings”)
- Core Foundry Setting > Permission Configuration = disable GM mouse cursor (just needs to be done by GM)
- Shared Vision = TOKEN.FRIENDLY = Vision (just needs to be done by GM)
These are more optional but I like these changes too: change action hud size. popout to only show icon. Minimal UI to auto hide player list, start navigation as visible, set control sub-menu to auto-hide plus
shortcuts
- 1-5 = run the macro on the hotbar
- alt + 1-5 = switch macro page
- ctrl + drag = measure (need to be on token controls)
- alt + drop = places hidden token
- shift + c = focus chat
Useful sites
- token maker
- free ai images (they rate limit you to about ~20 few days)
- find the Discord for your game system. There is usually a resource hub. Where you can find more useful resources
Patreon
While there are no sci-fi modules I know of. There are several sci-fi patreon battlemap creators.
Tips
I usually have a journal with rules, tips, and other helpful things for my players. Here is what those look like. You can toggle the source mode for a journal and put the html code in to copy these
Something in the works
I do have another module I’ll probably release this year. Related to Sci-Fi map generation (map as in travel map, not battle map). So, give me a follow on Itch for future updates on that.
I think the issue you might be getting is because Terminal uses a GM proxy for macros. If I’m understanding right, I think you would be able to do what you want if the macro was simply ran on the user’s machine.
If that’s the case, there is currently one way to run macros from Terminal without a GM proxy. This requires Foundry V12+ as it uses Regions.
- Create a Region, make sure its in a location no users can access, so as to avoid this going off when you don’t want it.
- setup the region as shown in the picture (left & top right windows)
- Then open the “Trigger Regions” button on Terminal. Link your Region to the Terminal (bottom right). Simulate the same event found in the behavior you created.
- Make sure the chosen macro is given observer for everyone.
- You’re done, a new button will show in Terminal which can run macros on the User’s side.
from there you can get the user’s id with game.user.id
Again, not totally sure if I’m on the mark here. So, let me know more details if this isn’t what you had in mind.
There’s two issues. Once is single entry variables are significantly simpler code wise to manage. Usually once you start using lists of entries, it takes doubles the lines of code.
Second, I’d have to write a migrator script. Which would check for if any Terminal’s have the deprecated solution. Then migrate the data if they are. These make me a little nervous because it’s easy to accidentally code a bug for scripts like this (I wrote a similar one for v3.0,0 when Foundry V12 came out).
That being said, I will look more into this feature.
There sure is, Terminal includes macros that can do this for you. This does require the use of Monk’s Active Tile Triggers as there currently is no way to supply arguments to macros in Foundry
I’ve written up a guide that can walk you through how to run the included macros here
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.
I have added a splash media setting that you can find on the style form. It has two “modes”.
-
If you upload a video it will replace the loading bar and ASCII entirely
-
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.
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.
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.
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.
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 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:
- Upgrade to latest
- Open your compendium and you should see a new entry for “Terminal Macros”
- 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
- I recommend using “Monk’s Active Tile” module to supply either macro with arguments.
- 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.
- 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)
- Take the Tile ID and supply it as the first argument.
- (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
- Activate the tile, which runs the macro
I’m going to edit my previous comment that contained an example macro since one is now included in the module.
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:
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. You can see the wiki
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.