Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Meridian

Pages: [1] 2 3 ... 7
OpenXcom Extended / [DONE] [Suggestion] Arc Script
« on: April 27, 2019, 12:37:58 pm »
--requested by Hobbes

Hello everyone,

here's a new script that should allow you to orchestrate your arcs and missions a bit better (if you want).

The idea is that you can script when should certain events occur and in which order and use those events to affect mission scripts.
Or, you can just use it to display "a tip of the month", I don't judge :)

The arc script runs just before the mission script, i.e. February arc script does already affect February mission script.

Here's the syntax:

Code: [Select]
  - type: earlyGame                     # the type/name is used for overwriting or deleting purposes
    sequentialArcs:                     # the type of research topics to be "discovered", each month 0 or 1, processed sequentially
    randomArcs:                         # the type of research topics to be "discovered", each month 0 or 1, chosen randomly considering weights
    firstMonth: 0                       # months this command runs on, 0 runs on startup of a new game (default 0)
    lastMonth: 12                       # don't run after this month. -1 denotes no limit (default -1)
    executionOdds: 75                   # % chances of this command executing (default 100)
    maxArcs: 4                          # maximum number of arcs this command can generate (together during the whole game), -1 for infinite (default -1)
    minDifficulty: 0                    # this command only applies to difficulty levels of this or above (default 0)
    maxDifficulty: 4                    # this command only applies to difficulty levels of this or below (default 4)
    researchTriggers:                   # a list of research topics that can influence the execution of this command (default empty)
      STR_THE_MARTIAN_SOLUTION: true    # in this case, the command would only run if the player has the Martian Solution
      STR_CYDONIA_OR_BUST: false        # and does NOT have Cydonia or Bust

firstMonth, lastMonth, minDifficulty, maxDifficulty and researchTriggers should be self-explanatory.

sequentialArcs and randomArcs are meant to be either-or, but it is possible to use both at the same time if you really want.
If you use both:
 - executionOdds are done only once, same result is used for both types
 - sequential arc is generated first, random arc second
 - maxArcs always applies, e.g. if maxArcs=1 and sequential arc was generated, random arc will not be generated even if everything else was satisfied

maxArcs counts any discovered topics, even from other arc scripts or normal game; and if you have any duplicate topics within a command it will count all duplicates as separate topics too

The "discovered" research topics behave almost identically to normal research:
+ lookups, unlocking, disabling and other features affecting normal research will apply (as if this research was finished in your HQ)
+ score will be awarded
+ ufopedia article will pop up (if available)
- getOneFree DOES NOT work (intentionally, no need to report as bug)

Test download:

Feedback welcome...

OpenXcom Extended / [4] Compiling and cross-compiling OXCE
« on: March 24, 2019, 07:56:15 pm »
1. Building on Windows using Visual Studio 2017/2019

1. Download, install and update Visual Studio 2019 Community Edition:
2. Clone OXCE repo:
3. Download and extract the pre-compiled dependencies (into repo's root):
4. Open solution "src/OpenXcom.2010.sln"
5. Click "Build" from menu or toolbar

OpenXcom Extended / OXCE v5.4 for iOS (iPhone/iPad)
« on: March 24, 2019, 04:17:00 pm »
OXCE is now available also for iOS.

You need to build it yourself though, no AppStore.

Source code and build instructions:

OpenXcom Extended / OXCE version check
« on: March 04, 2019, 11:57:17 am »
Hi all,

since OXC 1.0 nightly (
OXCE v5.3 (coming out soon)

there will be a check for required OXCE version.

The check will be done when:
1. enabling a mod
2. selecting a master mod

OXC will only check if OXCE is required or not;
OXCE will also check the minimum required version of OXCE.

The definition of minimum required OXCE version is done via metadata.yml, for example:

Code: [Select]
name: "My OXCE mod"
version: 1.3.1a
author: Meridian
description: "Something clever."
id: "my-oxce-mod"
master: "xcom1"
requiredExtendedVersion: "5.3"

OXCE will additionally make a check during the game startup... this is useful when a player upgrades a mod in-place (i.e. doesn't have to enable it in the options). If a problem is found, a message like this will appear in the log file:

Code: [Select]
[03-03-2019_22-46-17] [ERROR] Mod 'X-Com Files' requires at least OXCE v5.3

PS: the checks only inform the player about the OXCE requirement... it will still be possible to enable any mod if the player chooses to ignore the requirement

OpenXcom Extended / [DONE] [Suggestion] Custom panic/berserk sounds
« on: February 22, 2019, 12:14:01 pm »
Requested by Dioxine.

Code: [Select]
  - type: STR_SOLDIER
    panicMale: [41, 42, 43]
    panicFemale: [44, 45, 46]
    berserkMale: [41, 42, 43]
    berserkFemale: [44, 45, 46]
    panicSound: [8, 10]
    berserkSound: [8, 10]


Code: [Select]
  - type: STR_SOLDIER
    panicMale: 41
    panicFemale: 44
    berserkMale: 42
    berserkFemale: 45
    panicSound: 8
    berserkSound: 10

both variants work

OpenXcom Extended / [DONE] [Suggestion] Prison types
« on: February 19, 2019, 03:37:46 pm »
Split from here:,4830.msg69933.html#msg69933

And here it is... the stupidest-est feature I've ever implemented!
(At least I was not bored while traveling.)

Anyway, facilities can now have "prisonType".
0 is default and is reserved for alien containment... only these facilities will show up in "Alien Containment" bar in Base Info GUI.
1, 2, 3, 4, 5, ... can be used for all your pervert needs.

Code: [Select]
    aliens: 15
    prisonType: 0 # default
  - type: STR_PRISON
    aliens: 30
    prisonType: 1
    aliens: 100
    prisonType: 2
  - type: STR_HAREM
    aliens: 10
    prisonType: 3

Items also have "prisonType".
0 is default.

Code: [Select]
    liveAlien: true
    prisonType: 0 # default
    liveAlien: true
    prisonType: 1
    liveAlien: true
    prisonType: 2
    liveAlien: true
    prisonType: 3

Translations (the ones without a suffix are for prisonType = 0):

# 0 = alien containment
# 1 = prison
# 2 = animal cages
# 3 = harem

      STR_CONTAINMENT_EXCEEDED: "ALIEN CONTAINMENT LIMITS EXCEEDED!{SMALLLINE}Insufficient containment space at {0}. You must remove excess aliens from containment (who will then die)."
      STR_CONTAINMENT_EXCEEDED_1: "NO MORE ROOM IN PRISON!{SMALLLINE}Ran out of cells in {0}. We must throw excess prisoners out!"
      STR_CONTAINMENT_EXCEEDED_2: "NO MORE SPACE IN THE CAGES!{SMALLLINE}If you don't tidy up in {0}, the animals will start killing each other!"
      STR_CONTAINMENT_EXCEEDED_3: "HAREM IS FULL!{SMALLLINE}Not enough space at {0}. What are you waiting for?"

      STR_NO_ALIEN_CONTAINMENT_FOR_TRANSFER: "NO ALIEN CONTAINMENT FOR TRANSFER!{SMALLLINE}Live aliens need an alien containment facility in order to survive."
      STR_NO_ALIEN_CONTAINMENT_FOR_TRANSFER_1: "THIS IS MADNESS!{SMALLLINE}There are no prison cells at that hideout, Cap'n!"
      STR_NO_ALIEN_CONTAINMENT_FOR_TRANSFER_3: "WHAT?!{SMALLLINE}My virgins are going nowhere!"

#No Containment
      STR_ALIEN_DIES_NO_ALIEN_CONTAINMENT_FACILITY: "Alien dies as there is no alien containment facility"
      STR_ALIEN_DIES_NO_ALIEN_CONTAINMENT_FACILITY_1: "No free prison cells. Hostages were looted and kicked out!"
      STR_ALIEN_DIES_NO_ALIEN_CONTAINMENT_FACILITY_2: "There's no animal cages, we have let them free"
      STR_ALIEN_DIES_NO_ALIEN_CONTAINMENT_FACILITY_3: "The virgins have been deflowered prematurely"

#Manage Containment
      STR_REMOVE_SELECTED: "Remove Selected"
      STR_REMOVE_SELECTED_1: "Ransom!"
      STR_REMOVE_SELECTED_2: "Put to sleep"
      STR_REMOVE_SELECTED_3: "Not a virgin? Sell at slave market!"

      STR_MANAGE_CONTAINMENT: "Manage Alien Containment"
      STR_MANAGE_CONTAINMENT_1: "Manage Prison"
      STR_MANAGE_CONTAINMENT_2: "Manage Animal Cages"
      STR_MANAGE_CONTAINMENT_3: "Manage Harem"

      STR_ALIEN: "Alien"
      STR_ALIEN_1: "Hostage"
      STR_ALIEN_2: "Animal"
      STR_ALIEN_3: "Virgin"

      STR_LIVE_ALIENS: "Live{NEWLINE}Specimens"
      STR_LIVE_ALIENS_1: "Keep"
      STR_LIVE_ALIENS_2: "How{NEWLINE}cute!"
      STR_LIVE_ALIENS_3: "Keep{NEWLINE}for later"

      STR_DEAD_ALIENS: "Rejected{NEWLINE}Specimens"
      STR_DEAD_ALIENS_1: "Ransom"
      STR_DEAD_ALIENS_2: "Ugh,{NEWLINE}ugly!"
      STR_DEAD_ALIENS_3: "Deflower{NEWLINE}now!"

      STR_UNDER_INTERROGATION_1: "Being{NEWLINE}interrogated"
      STR_UNDER_INTERROGATION_3: "Being{NEWLINE}deflowered"

OpenXcom Extended / [DONE] [Suggestion] Highlight color in ufopedia
« on: February 05, 2019, 06:19:29 pm »
requested by Kato

requested by luke83

OpenXcom Extended / [DONE] Time to clean up user options
« on: February 03, 2019, 12:07:50 pm »
I plan to remove options that are not used, or very rarely used... i.e. people leave them unchanged, or always change them to the same value.

Here's my proposal.
Feedback welcome.
To be removed:
Martial training at any time - use YES
Display if weapon is two-handed - use YES
Show 2-handed indicator in inventory - use YES
Display map borders on the Minimap - use YES
Wounded fight if base attacked - use NO
Extra bleeding indicator - use YES
High Stun indicator - use YES
Show item weight in inventory - use YES
Remove wounded soldiers from training - use NO
Maximized Night Display - use NO
No-Spoilers Tech Tree Viewer - use NO
Friendly craft escort - use YES
Single-handed weapon unloading - use YES

To be converted into a mod option (instead of user option):
Statistical Bullet Saving - default NO

To keep (as user option):
Select Night Vision color - default 8
Automatic Night Vision - default NO
Auto-Sell Manager - default NO
Play Briefing music longer - default NO => change default to YES
UFO landing alert - default NO
Draw enemy radar circles - default YES

EDIT: Here's the final proposal as implemented

Turn off and remove:
* Less-Spoilers Tech Tree Viewer - use NO

Turn on and remove:
* Martial training at any time - use YES
* Display if weapon is two-handed - use YES
* Show 2-handed indicator in inventory - use YES
* Extra bleeding indicator - use YES
* High Stun indicator - use YES
* Show item weight in inventory - use YES
* Friendly craft escort - use YES
* Single-handed weapon unloading - use YES

Rework and remove:
* Maximized Night Display - replace with hybrid night vision = local NV (with max shade 4) + global "maximized" NV (with max shade 8 )
* Automatic Night Vision - if craft interior is too dark (tile shade 12-15); or outside map is too dark (global shade 12-15) and all units have personal light <= 5... turn on NV
* Remove wounded soldiers from training - remove them, but remember if they want to return to training after recovery (automatically)
* Display map borders on the Minimap - turn on by pressing ALT

Convert into a mod option (instead of user option):
* Statistical Bullet Saving - default NO
* Draw enemy radar circles - change to 0 (never draw), 1 (draw if hyperdetected), 2 (always draw) => default 1

Code: [Select]
statisticalBulletConservation: false
drawEnemyRadarCircles: 1

Hidden (in options.cfg), modder can fix (it's not possible to convert this into a mod option, that's why it unfortunately needs to stay here):
* Start-Up Text Mode - default 0 # 0 = vanilla, 1 = remove dos4gw and soundblaster text, 2 = remove all text

Keep (as user option on the GUI):
* UFO landing alert - default NO
* Wounded fight if base attacked (health >= x%) - default 100%
* Play Briefing music longer - default NO
* Night Vision color - default 8
* Auto-Sell Manager - default NO

Code: [Select]
  oxceAutoSell: false
  oxceNightVisionColor: 8
  oxcePlayBriefingMusicDuringEquipment: false
  oxceStartUpTextMode: 0
  oxceUfoLandingAlert: false
  oxceWoundedDefendBaseIf: 100

OpenXcom Extended / [DONE] [Suggestion] Item recovery transformation
« on: January 24, 2019, 03:59:01 pm »
requested by Drages

OpenXcom Extended / [DONE] [Suggestion] Random manufacturing
« on: January 24, 2019, 03:52:00 pm »
Priority: low
Justification: I know you don't like this idea, but I have some potential uses for it - mostly to do away with some random treasure lists, which are awesome but not optimal in some cases. Still, nothing really revolutionary.

So, let me know what do you expect from this feature and how should the ruleset definition look like...

OpenXcom Extended / [3] OXCE ruleset documentation
« on: January 13, 2019, 06:06:39 pm »
Ruleset Reference for OXCE was updated:

- There are still about a dozen FIXMEs, but at least everything is mentioned
- You may need to wait a day or two for cache to expire... or log into the wiki

Hint: the green stuff

First of all, AI can destroy base facilities also in OpenXcom.
However, as soon as any alien spots any xcom unit, all aliens stop attacking the base facilities and never resume it.
This is consistent with vanilla:

We'll probably never know if it's a bug or a feature.
If you think it is a bug, you can allow the AI to continue their base destruction effort using following ruleset:

Code: [Select]
  destroyBaseFacilities: true   # default false

Put it either in vars.rul; or whereever your heart desires.

Released Mods / Static smoke for TFTD
« on: October 21, 2018, 01:40:20 am »

OpenXcom Extended / [DONE] [Suggestion] Alien missile strikes
« on: October 12, 2018, 10:30:01 pm »
EDIT: topic split from:,6557.0.html

2) Retaliation UFOs can destroy XCom bases without any base defense taking place

As it says, once the final retaliation run begins there's no way to stop it short of defense facilities firing. If they fail, then the base is automatically destroyed.

This simulates a missile strike (or a saboteur/infiltrator) and if that sounds too extreme for some, it could be suggested to have a flag on base facilities that defines whether the facility will be destroyed or not by such a strike (underground facilities would survive, surface ones would not), but that would require a ton of more work and I only need the full destruction part at this point.

Destroying the whole base:

Code: [Select]
    missilePower: -1                 # -1 means destroy everything

Destroying only a few random facilities:

Code: [Select]
    missilePower: 5                 # N means destroy N 1x1 buildings or equivalent

This second part is a bit more complicated.
2x2 buildings count for 4, 3x3 buildings count for 9 and so on...

But missilePower 1 can destroy also 2x2 and 3x3 buildings... missilePower 2 however cannot destroy two 2x2 buildings.

Probably best to give example:

missilePower: 2 can destroy:
- two 1x1 buildings
- one 1x1 building and one 2x2 building
- one 2x2 building
- one 3x3 building... or 4x4, 5x5, 6x6 ... i.e. as soon as it "starts" destroying a building, it finishes destroying it

missilePower: 5 can destroy:
- 1, 1, 1, 1, 1
- 1, 1, 1, 1, 2
- 1, 1, 1, 2
- 1, 1, 2
- 1, 2
- 2, 1
- 2, 2
- 3 (or bigger)

Access lift cannot be destroyed (unless you destroy the whole base with missilePower: -1).
If a base has only 5 buildings, and missile power is 200... access lift still remains :)


Code: [Select]
  STR_ALIEN_MISSILES_HAVE_DAMAGED_OUR_BASE: "Alien missiles have damaged our base {0}"
  STR_ALIEN_MISSILES_HAVE_DESTROYED_OUR_BASE: "Alien missiles have destroyed our base {0}"

Pages: [1] 2 3 ... 7