[Mod] "Simoom's Lantern" - Ultimate Cheat Menu

The place to discuss scripting and game modifications for X Rebirth.

Moderators: Scripting / Modding Moderators, Moderators for English X Forum

Post Reply
User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

[Mod] "Simoom's Lantern" - Ultimate Cheat Menu

Post by Simoom » Sun, 10. Apr 16, 20:45

=======================================================================
Image
=======================================================================
You came into possession an ancient artifact, and earned the favor of a deity from before space and time...

DOCUMENTATION DOWNLOAD INSTALLATION
  • MAIN MOD: Extract the mod folder to the "extensions" folder in the X Rebirth root directory (default C:\Program Files (x86)\Steam\steamapps\common\X Rebirth\extensions).
  • SUPPLEMENTS: Extract to the same folder as the main mod, overwrite if prompted.
  • MISCELLANEOUS FILES:
    • CWIR Compatibility Patch - This file is a standalone, and will work with either Steam or Nexus version of the mod. Simply extract the folder into the "extensions" folder in X Rebirth.
    • Ship Mods Menu Patch - This file is for Nexus Mod's version only (it overwrites the default menu file with a modified one). Extract folder into the "extensions" folder in X Rebirth, overwrite all files when prompted. Currently supported mods are: "Denied Space Initiative", "Reaper's Ship Pack", "Terratech's Ship Pack", "Hunter Ships", "Redesign Ships", "Super Transport", "Project TOBS", and "Toride Colonist Builder Ship".
=======================
The "Goddess" Advantage
=======================

Simoom's Lantern is a full-featured cheat menu for X Rebirth. Not to be confused with alexalsp's CHEAT MENU; this mod was written from ground-up with a completely different logic and set of goals in mind (see Technical Discussion for details).
  • Unparalleled Cinematic Immersion - "Immersion"; what a strange word to describe a cheat mod. Yet Simoom's Lantern was designed around this very concept. Although the Goddess grants you nearly unlimited power, everything action you perform still follows cause & effect. Summon your Auxiliary Fleet and watch the ships jump into your position (instead of spawning out of nothingness), complete with meticulously-tailored animation and effects! Perform an X-Perimental Jump and watch both Betty and Yisha go bonkers. Every command comes with full audio & visual feedback (often with proper reaction and commentary from the NPC's), as well as informative Event Monitor text, so you know exactly what you did and what in-game object was affected.
  • Masterful Menu Layout - Designed with user-friendliness in mind, Simoom's Lantern offers a thoughtfully-designed menu categorization. Functions that players are likely to frequent (such as X-Perimental Jump and Target Manipulation) are placed right at your fingertips, while more minor cheats (such as reveal map, add money, and notoriety settings) are tucked away in the last section. I also plan on adding convenient shortcuts to the Sidebar for quick access to the various features.
  • Keeping it Lean n' Mean - Offering powerful features does not means throwing in a bunch of unnecessary add-ons the user may not want! Simoom's Lantern is designed to work with only vanilla scripts and assets, thus keeping it completely save-game safe should you choose to uninstall the mod.
  • Chasing Perfection - I am obsessively tidy and organized in my work. If there's a more efficient way to code a function, I do it; and retroactively update all previously-written scripts as well. Nearly all scripts in my mod have been completely written and re-written several times as I learned more about coding, and you can bet I won't stop until everything is perfect.
===============================
Limitless Possibilities, Your Choice
===============================

Despite what the title may imply, Simoom's Lantern is much more than a simple cheat menu - it is also an extremely powerful tool set for addressing some of the most common issues and player complaints in X Rebirth.
Here are some examples of what you can do:
  • Any Ship, Any Station - Yes, you heard that right! If it's in the game files, you can have it - this includes all the unique production stations, trade outposts, landmark stations, prototype PMC fighters, Kha'ak fighters, Zepp, UFO... and these things aren't just eyecandy: They are all functional via vanilla scripts! So even if you uninstall the mod, the unique ships and stations you added will continue to function! What's more, the completely original station-spawning routine closely emulates the normal construction process via an Architect, including proper build location association and obstruction check. Nobody will even know you cheated (if you don't tell)!
    ImageImage
    A player-owned Teladi Overwatch station being created.
  • Deployable Weapon Platforms and Landmark Stations - Truly make a zone uniquely yours! Create impenetrable fortresses with powerful deployable Xenon and Kha'ak weapon platforms. Decorate your space with habitations, highway stations, and pirate dens! These stations are deployed at the exact location of the Skunk (complete with an obstruction check), so you can place them precisely where you want them!
    ImageImage
    Player-owned Kha'ak weapon platforms taking on a Xenon P.
  • More NPC Shipyards - One of the biggest complaints many players have is there simply isn't enough economy sink for the TRULY ambitious empire-builders! With Simoom's Lantern, you can spawn a shipyard anywhere you like, then hand over control to an NPC faction via the Change Faction feature (which works on any ship or station, and can be used creatively to really customize your galaxy). Care was taken to make sure that when a player-owned station is handed to an NPC faction, the correct manager script will be assigned - so any shipyard you hand over to an NPC faction will build capital ships automatically, and create a significant sink for end products!
    ImageImage
    New NPC shipyards created in Steady Mole.
  • Secure the Galaxy... with Faction Patrols - Xenons and pirates run rampant through every populated sector... Why aren't the major factions doing their job? Sure, you could post your own patrol ships in every zone, but if the micromanagement don't annoy you, the constant bombardment of combat and reputation event messages surely will! Simoom's Lantern allows you to easily and conveniently summon a patrol fleet belonging to one of the major factions in the game (you can choose the appropriate race/faction and keep the immersion), which will patrol the zone they were summoned in. Now you can make sure every zone has adequate security provided by NPC fleets, and never worry about those annoying combat messages again!
    ImageImage
    A Family Ryak patrol fleet being summoned.
  • Civil War Behavior - Are you annoyed by the fact that the Teladi Union does not lay a finger on the pirates who go around Fields of Opportunity unchecked, blowing up everything in sight? Are you an empire-builder who wishes for a peaceful Albion, because the constant fighting between HoA and PMC is bad for your business? Simoom's Lantern contains tools specifically meant to address these issues! With the flick of a switch, you can turn these entwined factions against each other, or place them at peace.
    ImageImage
    A Marauder Phoenix being engaged by TU patrol forces after hostility settings were enabled.
  • Canteran Plot Stations - Are you on an older campaign save, and you couldn't get all the post-plot Canteran NPC stations to build, because some of the NPC Construction Vessels were destroyed? Or perhaps you are on a non-campaign game start, but wish to reap the benefits of having those plot-specific stations? Simoom's Lantern has a tool dedicated for exactly that! With a single press of a button, the mod intelligently detects any existing Canteran plot stations in your game, and fills in only the missing ones. It also assigns the correct manager script to the shipyard, so it will build capital ships on the clock like a normal shipyard should!
    ImageImageImage
    Canteran plot stations being created. Event monitor feedback shows you precisely which stations were built.
  • Remove Plutarch Overwatch - Annoyed that the wreck of the Plutarch Overwatch left over from the campaign never despawns? Simoom's Lantern has a fix for that, too! Safety check is included to target only the destroyed Plutarch Overwatch, so if you haven't gotten to that point in the campaign, don't worry about accidentally pressing it!
    ImageImage
    Plutarch Overwatch wreck removed.
  • Disable Hostile NPC Stations - Annoyed by the fact that all stations in the game are indestructable? Patrol ships stuck attacking enemy stations while your own assets are being hammered by enemy ships? Worry no more! Simoom's Lantern comes with a highly intelligent Self-Destruct function, whose routine is completely contextual. When used against an NPC station, this feature completely disables it (removes all crew, destroys all surface elements, and sets all module hull to 1%), then sets it to "Ownerless". The ownerless status prevents any hostility from being directed toward it, therefore patrol ships won't bother with them - and can actually focus on doing something useful, like chasing after enemy ships!
    ImageImage
    A Reiver Waystation disabled by the power of Simoom!
  • Reveal the Galaxy - No, I don't mean simply unlocking the galaxy map (though this mod certain can do that)! One of the major gripes many players have is the station-scanning minigame, which get boring and repetitive very quickly (and yields little tangible benefits). Simoom's Lantern comes with the ability to fully unlock all stations galaxy-wide! Never enter a Beholder drone again!
    Image
    The "Reveal Galaxy" feature comes with three modes: Unlock galaxy map, unlock station info, and unlock ship info.
==================
Full List of Features
==================
  1. X-Perimental Jump [Working] - Simoom channels Her energy into the ship's main reactor, causing powerful ripples across space-time and allowing you to travel instantaneously to any point in the Galaxy.
    • Custom-designed and spectacular-looking jump animation & sfx for the Skunk!
    • Hilarious reactions from Betty and Yisha that will keep you jumping for hours just to hear all the possible dialogue outcomes.
    • If the Skunk is docked on a capital ship, the capital ship will be warped instead.
    • Includes safety check to prevent warp routine from activating while docked on a station or an attached construction vessel.
  2. Target Manipulation:
    • Self-Destruct [Working] - Simoom takes over the mind of your enemies and makes them set their ship or station to self-destruct!
      • Works on both ships and stations (using very different routines):
        • Ships simply self-destruct.
        • NPC stations are "pseudo-wrecked": Remove all crew > Destroy all surface elements > All modules set to 1% hull > Custom explosion animation (necessary since the modules didn't actually explode) > Station coverowner set to "ownerless".
          The station will appear to be ownerless, which will prevent any sort of hostile action from being directed toward the "wrecked" station. This is useful, for example, if you want to secure a Xenon sector - your patrol ships won't go after the Xenon stations you disabled using this feature. Note that the trueowner of the station is unaffected, which allows for easy restoration of the station (see "Repair Station Wreck").
        • Player stations are fully wrecked! This process is irreversible and cannot be cancelled. After a 40-second delay, the station will despawn entirely (allowing you to reclaim a build location, if it occupied any).
        • [CAUTION] If you transferred ownership of one of the "default" NPC stations (ones that are pre-existing when the game starts) to yourself, do not use "Self-Destruct" on it. Doing so will cause the station to despawn, but re-appear upon next game load in its default state (since these stations are in fact a part of the zone map they are in). This won't ruin your game, but it may cause some strange mass traffic issues. It also won't accomplish anything (since these stations simply cannot be fully removed). If you wish to disable such a station, make sure to return the ownership back to an NPC faction before issuing "Self-Destruct".
      • If target has subordinates (including drones), they are automatically destroyed as well.
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
      • Safety routine to properly disconnect attached construction vessel if the destroyed target is a station.
      • Includes safety check to apply action only to ships or stations. Event Monitor error message if target is invalid.
    • Safe Word [Working] - Simoom grants your target Her divine protection, rendering it immune to harm.
      • Discreet On/Off switches so you can be sure of the target's invulnerability setting.
      • If target is a station or capital ship:
        • Fully repairs all surface elements.
        • Fully replenishes combat drones (with Intrepid URV Mk2).
        • Fully replenishes ammunition.
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
      • Includes safety check to apply action only to ships or stations. Event Monitor error message if target is invalid.
    • Restock / Refuel [Working] - Simoom can effortlessly conjure up whatever it is that the target ship may need! From drones, ammunition, to fuel cells!
      • Allows you to:
        • Add drones of any type (including exclusive Xenon combat & mining drones!) in the selected amount!
        • Empty target's drone bay.
        • Fully restock all ammunition!
        • Fully restock fuel cells!
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
      • Includes safety check to apply action only to ships or stations. Event Monitor error message if target is invalid.
    • Claim Target [Working] - Simoom sends out a powerful telepathic wave and influences the minds of your target's crew. Suddenly, working for you seem like a mighty good idea!
      • If target is a ship and has a pilot, it will abort its previous task and wait for your command (run script 'player.default'). This saves you the trouble of having to add the ship to squad before it will take new orders.
      • If target is a ship with no crew, then the claiming action will contextually generate new crew (small ship gets a pilot, large ship gets a full set of crew).
      • If target is an NPC station, automatically issues the correct player station manager and defense officer scripts.
      • If target has subordinates (including drones), their ownership will be transferred as well.
      • If target and its subordinates (excluding drones) have pre-existing crew, they receive an automatic skill upgrade (5-stars).
      • If target is Xenon asset (ship or station), the AI crew will be removed and proper NPC's will be contextually generated in their place. This also applies to any subordinates a Xenon commander unit may have.
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
      • Includes safety check to apply action only to ships or stations. Event Monitor error message if target is invalid.
    • Change Faction [Working] - Simoom uses Her powerful telepathy to make your target's crew think they are working for someone else entirely.
      • All factions in the game are selectable!
      • If target has subordinates (including drones), their ownership will be transferred as well.
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
      • Includes safety check to apply action only to ships or stations. Event Monitor error message if target is invalid.
      • Includes the following special handling for player asset handed to an NPC faction:
        • Removal of crew credit accounts (for both the main target and any subordinates) - By default, player-owned NPC's have a discreet account ID that is identical to the player's (but some special entities like Architect and station Manager, have their own unique account ID's). Removing this entry prevents any chance that the transferred crew will continue to pull money from the player account, and allows them to use their new faction's account directly.
        • Automatic removal of any Upkeep Missions (for the main target only. If any subordinate units have unfinished Upkeep Missions as well, use the "Remove Upkeep Missions" feature listed below).
        • If transferred asset is a station, contextually issues the correct NPC station manager script (production stations, warehouse stations, and shipyards). Yes, this means any shipyard you spawn that's handed over to an NPC faction will automatically produce capships and create economy sink!
        • If transferred asset is a station, switches station defense officer to run NPC defense scripts.
    • Upgrade Crew [Working] - Simoom's immense powers not only can influence a mortal's mind, but can even enhance or restructure it completely! Those whom She blesses find themselves vastly better at everything they do!
      • Fully upgrades all crew on the targeted ship or station to have 5-Star skills.
      • If target is a production station that's missing any assigned production specialists, they will be automatically added! Event monitor feedback to display a list of added specialists, if any. You can in effect maximize NPC station productivity with this feature.
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
      • Includes safety check to apply action only to ships or stations. Event Monitor error message if target is invalid.
    • Trade Offer Updates [Working] - Simoom uses her power of suggestion to effortlessly command the targeted station to provide you with trade offer updates!
      • Subscribes to trade offer updates of the targeted station (effectively the same thing as hiring a Trade Agent, except no NPC is involved).
      • Intelligent targeting allows you to lock onto a station by simply selecting a module or surface component!
      • Includes safety check to apply action only to stations. Event Monitor error message if target is invalid.
    • Repair Station Wreck [Working] - Simoom can create just as well as she can destroy! She can fully restore a smouldering station ruin back to working order.
      • Restores a disabled (pseudo-wrecked by the "Self-Destruct" feature) NPC station back to full working order. All crew are fully-replaced, as are all surface elements and destroyed drones. Ownership of the station is reset to the original faction owner (from ownerless).
      • Cool custom animation on station wreck restore!
      • Intelligent targeting allows you to lock onto a station by simply selecting a module or surface component!
      • Includes safety check to apply action only to "ownerless" stations (which is how the mod identifies a station wrecked, since no normal station would be ownerless otherwise). Event Monitor error message if target is invalid.
    • Remove Upkeep Missions [Working] - Simoom uses her celestial powers to... fix some more Egosoft issues...
      • Removes any leftover Upkeep Missions that were not properly removed by the game after a player asset has been transferred to a NPC faction (such as a capital ship sold to a ship dealer, or any player station turned over to NPC control through save game hack or the use of this mod).
      • Intelligent targeting allows you to lock onto a ship or station by simply selecting a module or surface component!
  3. Ship Configuration:
    • Weapons/Shields/Engines [Working] - Simoom uses Her telekinetic powers to instantly construct and install any weapons, shields, or engines of your choice!
      • Informative audio & visual feedback on equipment install (includes contextual sfx matching selected weapon type).
      • Includes safety routine to properly uninstall any previous equipment of the same class (to prevent duplicates in save game file).
    • Ammunition [Working] - For a Goddess with the power to grant life and death to stars, whipping up a few missiles is a trivial task! She also uses Her command over space-time to compress the Skunk's storage area, allowing you to carry much more ammunition.
      • Ammunition capacity increased to 5000 (via patch, optional). If the mod is uninstalled, the ammunition capacity will return to normal (170). This won't break the game, but you won't be able to acquire more missiles until the number drops back below 170.
      • Convenient dialogue options for choosing how many of the selected missile to add.
      • Comes with a 'Restock All' option to instantly add 500 of each missile type (fully replenishes ammo storage).
      • Informative audio & visual feedback on missile install (includes contextual sfx matching selected missile type).
    • Other Equipment [Working] - Simoom can conjure up any miscellaneous equipment for the Skunk to improve its abilities as you see fit.
      • Configure Scanners, Software, Drones, SETA, and Jump Drive. All types and MK tiers available.
      • Informative audio & visual feedback on equipment install (includes contextual sfx matching selected equipment type).
    • Marines [Working] - Simoom's presence on board seems to draw people to you, and you are never short of 'volunteers' who are willing to work for you, free of charge! You can now request reinforcements of marines of any tier in any squad size you want!
      • Convenient dialogue options for choosing how many of the selected marines to add.
      • Informative audio & visual feedback on marine arrival.
  4. Summon Fleet:
    • Auxiliary Fleet [Working] - With Simoom on board, you soon find yourself surrounded by friends and allies! You now command a mighty Auxiliary Fleet who will come to your aid, no matter where you are.
      • Choose from any model of ship available in the game! Includes all exclusive (normally unobtainable) ships such as Golem, Moebius, Kha'ak fighters, Xenon capital ships, UFO, Zepp, and much more!
      • Convenient dialogue options for choosing how many of the selected ship to summon. Want a single fighter or a fleet of 50 Fulmekrons in one call? Your choice!
      • Fully contextual crew & drone complement (another example of my attention to detail). Argon ships will carry Argon crew, Canteran ships have Canteran crew, Teladi ships have Teladis... and so on. Likewise, ships of different purposes carry the appropriate types and amounts of drones. This even applies to identical ships summoned through different categories - e.g. a Rahanas (Liquid) freighter from the "Trade Ship" menu will carry only cargo and repair drones, while the same ship summoned under "Mining Ship" will carry mining drones.
      • Fully cinematic dialogue and events! Capital ships are spawned in a temporary cluster and issued an actual jump order to your position. Small ships are created in-zone, but are given custom animation & sfx on spawn to make them appear to have jumped into zone! Yisha will open comm to summon the ships, and give proper contextual comment (singular or plural, based on numbers of ships spawned) when they arrive.
      • Special spawn condition for Zepp and UFO: These two ships lack any sort of weapons, so the game disallows the player from issuing any commands to them aside from "Follow Me". Therefore these two ships are issued an "Idle" command by default (which cannot be issued manually in-game) when spawned.
    • Existing Asset [Working] - Tired of sluggish escorts not keeping up with you? Need to pull a ship under attack out of the jam? Simoom can manipulate the fabric of space-time to pull an existing ship to your location, irregardless of distance.
      • Option to use Map menu or Property list to select a ship.
      • Uses similar ship movement logic as Auxiliary Fleet. Capital ships will perform a charge-less jump, while small ships travel via a delayed warp with custom animation & sfx.
      • If the summoned ship has any subordinates, they are all warped in as well!
      • The summoned ship will abort its previous action and await new command. The subordinates (if any) will continue their escort duty.
      • Includes safety check to apply action only to ships. Error message if target is invalid (stations are already greyed out in the selection menus, but just in case).
      • Includes safety check to prevent attached construction vessels from jumping.
    • Law Enforcement [Working] - Simoom's charm seems to be limitless. You can now request reinforcement from any of the major factions (PMC, HoA, RoC, AG, RYK, TU, and TER), who will promptly send you a support fleet to secure the zone you are in!
      • Uses similar ship-spawning routine as Auxiliary Fleet. Ships are spawned in a temporary cluster and jump to your position (with custom animation & sfx).
      • Fully contextual spawning behavior. Both capital ship and fighter models depend on the selected faction. Same with crew type.
      • Cinematic dialogue and events, including confirmation hail from the lead ship's Captain!
    • Summon Stations [Working] - Drawing together the minute particles that fill the vast Cosmos, Simoom can instantaneously call massive structures into existence.
      • All stations from the game are available, including landmark stations, HoL highway stations, Terran colony stations, Xenon stations, Kha'ak station, and much more!
      • Custom station-spawning routine that emulates the result of a normal station-building as closely as possible! First it locates a free build location in the zone, then creates a construction vessel and jumps it to the build location. A bounding box is created to clear ships out of the construction area (just like building through an Architect), and once the area is clear, the station is created.
      • Cool custom animation on construction vessel & station spawn!
      • Fully-functional shipyards (with working ship dealers)! This can be used in conjunction with "Change Faction" to create additional NPC shipyards anywhere in the galaxy, allowing you to generate as much economy sink as you wish.
      • Deployable weapon platforms and decorative stations! These stations (Xenon & Kha'ak weapon platforms, Plutarch Overwatch, HoL highway stations, Canteran habitations, and Teladi pirate dens) are usually small in size and don't produce anything, so it doesn't make sense for them to occupy a build location. Instead, they are spawned at the exact location of the Skunk (bounding box will be created and prompt you to clear out of the area). This allows you to deploy multiple defensive platforms in the zone with precision, anywhere you like!
    • Station Management:
      • Restock Wares [Working] - Simoom draws upon the energy of the Cosmos to instantly replenish a station with wares.
        • Instantly fills 80% of the station's storage with production wares (leaves some room for inbound freighters).
        • Select a station via property list, or use your current target.
        • Intelligent targeting allows you to lock onto a station by simply selecting a module or surface component!
      • Remove Wares [Working] - With a snap of her fingers, Simoom empties a station of wares so you can be a little bit poorer...
        • Completely empties the selected station's storage.
        • Select a station via property list, or use your current target.
        • Intelligent targeting allows you to lock onto a station by simply selecting a module or surface component!
    • Construction Vessel:
      • Summon [Working] - Simoom's influence allows you to summon an auxiliary construction vessel to you.
        • All construction vessel models available, including the exclusive plot CV from the campaign.
        • Uses the same spawning script as Auxiliary Fleet. Contextual drone and crew complements apply!
      • Restock Wares [Working] - Simoom draws upon the energy of the Cosmos to instantly replenish a construction vessel with wares.
        • This function resets the construction vessel's wares to a predetermined state. Contextual ware spawning is in place: OL construction vessels will receive different wares from others.
        • Includes safety check to apply action only to construction vessels. Error message if target is invalid.
      • Remove Wares [Working] - Simoom banishes the excess wares from the target ship to make room for valuables
        • Empties the cargo bay of the target construction vessel.
        • Includes safety check to apply action only to construction vessels. Error message if target is invalid.
      • Undock [Working] - Construction vessel can't detach from a station? Station manager's orders, you say? Simoom shows the captain who's boss!
        • Allows detaching of construction vessel from its parent station.
        • Includes safety check to apply action only to attached construction vessels. Error message if target is invalid.
  5. Summon Personnel: [Working] - As aforementioned, you are never short of "volunteers" with Simoom on board! You can now summon any personnel type you require for you ships and stations.
    • All NPC types are available, with proper actor group assignment for correct macro selection (something many mods and in fact many Egosoft scripts still do incorrectly). So Captains will actually look like Captains, Defence Officers like Defence Officers, and so on (no more Captains with silly trader or pilot macros!)
    • Race selection! Choose from Argon, Canteran, Teladi, and Split crew!
    • Contextual assignment option dialogue. Spawning NPC's who can work aboard the Skunk will trigger a dialogue option for the new NPC to work on the Skunk (previously assigned NPC is dismissed from active duty), or work somewhere else (new NPC stored in backroom, previously assigned NPC untouched).
    • Includes safety check to only spawn NPC if Skunk's backroom has free space. Error message if backroom is full!
  6. Simoom's Magic Tricks:
    • Grant Wealth [Working] - Simoom manipulates the galactic financial network and funnels credits into your account (she has no moral qualms with this; money is meaningless to Her).
      • Convenient dialogue option for selecting how much credits to add.
      • Custom dialogue exchange between Ren and Yisha when command is triggered.
    • Grant Fame [Working] - Money AND fame? Humans are such shallow creatures! Still, Simoom finds them fascinating. You can now choose to be as famous or as notorious as you like with any faction of your choosing.
      • Options for "Allied" (+30), "Neutral" (0), and "Enemy" (-30).
      • All in-game factions are available, including ones you normally can't befriend!
    • Grant Treasures [Working] - Too lazy to go hunt for treasures? Why bother when you have a Goddess on board! Simoom can conjure up any rare item from the galaxy... just remember, you owe her!
      • Instantly complete Treasure Hunt Missions! Choose from Kha'ak Relic Collection, Ancient Relic Collection, Spacefly Egg Collection, and Rare Engine.
      • Need to hack a station in a hurry? Security Decryption System is now available!
      • Spawn gift items! Red Water, Haze, and Paranid Jewelry.
      • All Virtual Seminars are available!
      • All Weapon Mods tiers are available!
      • Some amusing custom commentary by Betty.
    • Legendary Weapons [Working]- Tired of bullet sponges in X-treme mode? Make your weapons legendary! Simoom can conjure up a set of powerful weapon mods (with custom stats) that is sure to turn any fight in your favor.
      • Adds 50 High-Grade weapon mods with insanely high stats to your inventory (the spawned mods are random high-grade mods. Unfortunately at this time there's no way to specify what weapon type a spawned weapon mod should be for, so keep spawning these until you get one for the weapon you want).
      • Feature currently uses XML patching as a workaround to MD Script's current lack of ability to customize weapon mods in any way. This unfortunately means ALL weapon mods will receive a significant attribute buff. If you feel this is too "cheaty", simply remove libraries/weaponmods.xml from the mod folder.
    • Immortality [Working] - Simoom blesses your ship with Her divine protection, rendering you immune to harm.
      • Discreet On/Off switches so you can be certain of the Skunk's invulnerability setting.
      • Can be used to obtain unlimited boost (shield will not drain).
    • Universe Manipulation:
      • Reveal Galaxy:
        • Unlock Galaxy Map [Working] - Simoom channels Her energy to overboost the Skunk's long range scanner, revealing all undiscovered areas.
          • Cool custom animation, dialogue, & sfx on reveal!
        • Unlock Stations Information [Working] - Simoom overboosts the Skunk's long range scanner to not only locate all stations Galaxy-wide, but to perform a deep-scan of all stations as well.
          • Cool custom animation, dialogue, & sfx on reveal!
          • All stations Galaxy-wide will show as 100% revealed. Effect is identical to if you used the scanner drone to scan all the high-secrecy modules individually.
        • Unlock Ships Information [TBA] - Simoom manipulates the Skunk's long range scanner to perform a deep scan on all ships in the Galaxy.
          • Cool custom animation, dialogue, & sfx on reveal!
          • Feature currently disabled due to Egosoft's MD script limitation (ship secrecy is a new feature in 4.0).
      • Claim Territory [Working] - Like a particular patch of space? You can have it! Nobody dares to say no to Simoom!
        • Discreet switches to Stake/Release claim on the current zone you are in (zone will return to its original faction owner when claim is released).
        • Safety routine to prevent claiming while player is in highway.
      • Galaxy Station Upgrade:
        • Trade Offer Updates [Working] - Simoom siphons the data from the galactic financial network directly into the Skunk's trade computer!
          • Instantly gain access to trade offer updates from all stations galaxy-wide (excluding Xenon and Kha'ak stations).
        • Upgrade Crew [Working] - Simoom decrees that everyone in the Galaxy shall strive to better themselves!
          • Instantly upgrades the crew of all NPC stations (minus Kha'ak and Xenon) to 5-stars!
          • Automatically adds any missing production specialists.
      • Civil War Behavior [Working] - Simoom casts her influence over the denizens of the selected factions, placing them at war or peace.
        • Choose between Hostile and Neutral relations between PMC/HoA (useful for creating a peaceful Albion) and TU/UA, CAR (useful for keeping pirate activity in Fields of Opportunity low).
        • When hostilility is enabled, the factions are set to 'relation.killmilitary.max'. They will only shoot each other's combat ships; trade ships should be unaffected.
      • Canteran Plot Stations [Working] - Simoom apparently has a soft spot for the Canterans; perhaps She misses Earth as well... She can use her powers to restore the poor state of the Canteran sectors.
        • Intelligently detects and spawns any missing Canteran stations (4 in total) that are built as a part of the campaign. This is usually a problem if you are on an older save, as the construction vessels tended to be destroyed before the stations are built.
        • All spawned stations are in a fully-extended state (all sequences/stages completed). This includes a working shipyard with the correct manager script assignment (it will automatically build capships).
        • Feature works for Free Play and other game starts! Reap the benefits of these campaign stations even if you are not on a campaign save!
        • Includes fix to assign the correct script to the shipyard manager, if you are on a campaign save and the shipyard has already been built (allows automatic capship construction). Please read these instructions for more details.
      • Remove Plutarch Overwatch [Working] - Simoom can use her immense powers to make even the mighty hull of the Plutarch Overwatch vanish into nothingness.
        • Removes the leftover wreck from the Plutarch Overwatch (campaign) from the universe.
        • Safety check to only apply action to the "ownerless" (set that way by Egosoft's script after it blows up in the campaign) Plutarch Overwatch station specifically in Twilight Sentinel. So in case you built your own Overwatch stations using this mod, they are safe.
===================
Game Asset Changes
===================

Although Simoom's Lantern sticks to vanilla scripts and assets, some XML patches were unfortunately necessary to make certain features function properly, or to overcome Egosoft oversights. Do not worry, the kind of modifications made by this mod is not harmful to your save game, even if the mod were removed. Generally, compatibility with other mods should be decent, as Simoom's Lantern doesn't introduce extensive alterations to the vanilla scripts. Below is the list of contained patch files.
  • Main Mod XML Patches: All files here are safe to remove (won't harm your save game), though mod functionality may be affected.
    • [Essential] assets\structures\[...] - The files here add actual storage capacity to the Xenon Repository station modules, which is required for the Xenon stations spawned by the mod to be actually functional (Xenon stations are capable of Antimatter Cell production, but have no storage).
      Removal of this patch is NOT recommended, as the Xenon production stations are not functional otherwise.
    • [Trivial] assets\units\player\macros[...] - The files here increase the Skunk's ammo storage to 5000 (from 170).
    • [Essential] libraries\weaponmods.xml - Significantly boosts all weapon mods attributes. This patch is an unfortunate necessity to make the "Legendary Weapons" feature even somewhat functional (at this time there's no way to specify the attributes of a spawned weapon mod via MD). Consider this a temporary workaround until more advanced MD script functions are implemented.
    • [Essential] md\Upkeep_Management.xml - Excludes certain stations (landmarks, weapon platforms, etc.) from generating Upkeep missions. Also removes drone delivery missions for mining ships (in case the player wishes to use them as trading ships).
      Removal of this patch is NOT recommended, as you may be stuck with inappropriately-generated Upkeep missions.
    • [Essential] md\Upkeep.xml - Removes Extend Station Upkeep missions (which are useless, since the player may not wish to fully extend a station). Also changes requirements for Assign Trade Ship and Assign Mining Ship type missions so that Trading and Mining ships can be used interchangeably (as they should). Lastly, it adds a "backdoor" to allow Upkeep missions to be aborted if the mission target is signaled (this is used by the mod to clear out Upkeep missions when a player asset is turned over to a NPC faction, since <event_object_changed_owner> doesn't trigger properly).
      Removal of this patch is NOT recommended, as you may be stuck with Upkeep missions for assets you already turned over to a NPC faction.
    • [Essential] md\NPC_Architect.xml - Adds proper routine for architect to detect attached station (or lack of one), and generate the correct dialogue options.
      Removal of this patch is NOT recommended, as an architect may present you with the incorrect dialogue choices if a CV were undocked from the station by this mod, or if its parent station is destroyed.
    • [Essential] md\NPC_Engineer.xml - Provides a necessary change to overcome an Egosoft oversight (custom Engineers are still assigned a timeout value). Without this patch, there's literally no way to spawn an Engineer NPC who's not assigned to duty, and not have him despawn immediately after being assigned somewhere and the player leaves the zone. Also provides a tweak to allow Engineers to be assigned to player stations via dialogue (special thanks to w.evans for lending me his codes).
      Removal of this patch is NOT recommended, as any Engineers you spawn via "Summon Personnel" will simply disappear in low attention.
    • [Trivial] md\NPC_Staff.xml - Allows captains and pilots to be called back to the Skunk through the "Come back on board" dialogue option.
  • Supplements XML Patches: All files here are safe to remove (won't harm your save game), with no side effect on mod functionality.
    • [Trivial] aiscripts\engineer.player.xml - Adds the ability for an Engineer assigned to the Skunk to repair hull damage (up to 100% for 5-star).
    • [Trivial] aiscripts\trade.shipyard.xml - Removes the location-dependent shipyard cooldown between automated capital ship builds (for Albion and DeVries). With the patch, all shipyards galaxy-wide will have a universal 10-20 minutes cooldown. This speeds up the overall end product consumption rate, particularly in DeVries where the vanilla cooldown is between 170-190 minutes.
    • [Trivial] assets\props\SurfaceElements\Macros\enginebooster_player_01_macro.xml - Significantly increases the speed, acceleration, and maneuverability of the Skunk's boosters. Also removes the 10% shield requirement for boost activation.
    • [Trivial] assets\props\SurfaceElements\Macros\unit_player_dronelaunchpad_macro.xml - Increases the Skunk's unit capacity to 150 (from 50). This allows the player to carry either more marines or more drones.
    • [Trivial] assets\units\size_l\units_size_l_xenon_01.xml & units_size_l_xenon_01_macro.xml - Adds a dock location to the Xenon K. Patch removal will not affect ship functionality (crew will exist in the control room).
    • [Trivial] assets\units\size_xl\units_size_xl_xenon_01.xml & units_size_xl_xenon_01_macro.xml - Adds a dock location to the Xenon I. Patch removal will not affect ship functionality (crew will exist in the control room).
    • [Trivial] libraries\ships.xml - Makes all Xenon K and Xenon I spawned by patrol jobs boardable by default.
======================
Known Incompatibilities
======================

Depending on whether or not you installed the Supplements package, Simoom's Lantern may be incompatible with the following mods:
  • CHEAT MENU - This mod contains a large number of XML patches that will conflict with my files. Additionally there are a lot of overlapping features, so choose one or the other.
  • Xenon Hunt 3 - The Supplements package contains conflicting patch files, allowing for basically the same functions (boarding of Xenon capital ships).
  • Hull 3x Skunk - The Supplements package contains conflicting patch file, allowing for Skunk hull repair by the on board Engineer (my implementation is recommended... see this post for details).
  • RS Booster (or any player booster mod) - The Supplements package contains patch file for overtuning player booster.
==================================================
[WIP] Really Badly-Written Backstory for the Mod (ignore for now)
==================================================
In a stuffy antique shop on a run-down station in Toride, you came across a curious artifact.
'What is that?' You asked.
'Oh, this...' Croaked the shop-owner, whose wrinkled features looked about as ancient as the artifact itself. 'This is an old item from Earth. A latern, they used to call it. You put oil in it and light it at night.'
'Oh Ren! It's so pretty!' Shrieked Yisha in her ever-agitating voice.
'Right... and how old did you say this is?' You inquired with skepticism.
'Impossibly old. Made in an age long-forgotten.'
'Riiiiight....'
'Ren, I want it! The Skunk could use some decorating! And an old lantern - oh how romantic!' Yisha was positively getting on your nerve now, and you furrowed your brow in annoyance.
'You should always listen to the ladies, boy. They are always right.' The shop-owner was ganging up on you now, as Yisha clung to your arm flirtatiously.
'I have a feeling I don't want to know how much the asking price is...'
'For you, just 5 million credits!' The old man grinned as Yisha clung onto you tighter.
'..........'

Back aboard the Skunk, Yisha happily set the lantern down above the cockpit's central console.
'Unknown object detected.' Betty alarmed.
'Shut up Better.' Yisha said dismissively as she filled the lantern with an aromatic oil (which you had to pay extra for). 'Ready for some romantic mood lighting?'
'Whatever...' You slumped into the pilot's seat, sulking about the 5 million credits you just practically gave away. 'I could have bought a ship for that.'
'Hey, lighten up! It's not like you paid me for these past 3 months.' Yisha retorted as she lit the odd contraption.
'Yeah... well...' It wasn't as if she ever did anything helpful around the ship, you wanted to say. But wisely, you kept your mouth shut.

'Irregularity detected.' Betty went off again.
'Betty, seriously...'
Suddenly, the cockpit alarm triggered.
'Warning! Unknown lifeform detected! Warning! Anomaly detected! Error! Does not compute.'
'Shut off that damn thing!' You shouted over the blaring alarm.
'Cargo bay now contains... Argon Prime.' Better said as a strange crimson smoke began to fill the cabin.
'Okay. This is getting weird...'

'WHO DARES DISTURB MY SLUMBER?' Thundered an ominous voice that shook the air around you.
'Hi, my name is Yisha-'
'SILENCE, PEST! I SPEAK TO THE RIGHTFUL OWNER OF THIS LANTERN.'
'Okay... uh... shutting up now...'
'I am Ren Otani, captain of the Albion Skunk. And who might you be?'
'I have no name, for I existed before words, before history. But you may address me as Simoom, the Saharan wind, as humankind has always done.' The voice now softened and became more distinct. A woman's voice - powerful, commanding, quite unlike a certain someone's copilot.
'Pleasure to make your acquaintance, Simoom, but I must say I have never heard of you. The person I bought your lantern from said it came from Earth. We are pretty far from there, you know.'
'Oh? Has humankind finally learned to traverse the stars? I have been gone too long.' The strange red mist now began to swirl and take on a humanoid shape. As the last tendrils of fog peeled away, you beheld wordlessly a pearlescent bipedal leopard shrouded in an ornate crimson cloak.

'Just... what are you..?'
'I was time before time. I was the wind that shaped the stars. Before the Sun I was light. But never before have I seen the stars through the window of a ship built by men. I think I shall stay a while.'
You were fascinated for sure, and knew you were in no position to decline her, anyhow.

'Warning! Hostile ships detected!' The alarms went off again. In your fascination, you had momentarily forgotten how dangerous Toride could be.
'Ren! Xenons!' Yisha shouted as the menacing silhouettes of three Xenon K's jumped into view.
'Uh-oh. Better get out of here fast!'

Behind you, the she-leopard snapped her fingers. Once. Twice. Thrice.
The three Xenon ships turned into three flashy bright balls of nuclear explosion.

'I said, I am staying a while.' The demi-god emphasized, before retreating into the back room.
'Yisha... do me a favor.' You muttered to your copilot. 'Don't piss her off.'

==================================================

Many thanks to these people for their help: UniTrader, w.evans, pref, jth, Marvin Martian, and all the community testers!
Last edited by Simoom on Sun, 5. Mar 17, 20:15, edited 136 times in total.

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Mon, 11. Apr 16, 06:33

=============
Known Issues
=============
  • "Unlock Ship Information" isn't yet functional. Likely an Egosoft issue since ship secrecy was newly introduced in 4.0, there may be something going on that's beyond MD script control.
  • God mode on the Skunk gets reset if the player enters remote control of any kind (ROV drones and Novadrones). This appears to be a vanilla issue. Workaround is being investigated.
==========
Changelog
==========

Update 8/20/16:
  • [New Feature] "Restock / Refuel" function added under "Target Manipulation". This section allows the player to:
    • Add drones (of specified type and amount) to the target ship or station.
    • Empty drone bay of target ship or station.
    • Fully restock the ammunition of target ship or station (in current version only stations benefit since ships don't carry or consume ammo, but may come in handy for ships if Egosoft changes ammo mechanic in the future).
    • Fully refuel target ship (routine carried out only if target is a capital ship; error message otherwise).
  • [New Feature] "Galaxy Station Upgrade" function added under "Simoom's Magic Tricks" -> "Universe Manipulation". This section allows the player to:
    • Subscribe to trade offer updates to all stations universe-wide (excluding Xenon and Kha'ak stations).
    • Upgrade all crews of all stations universe-wide (any NPC production station that are missing specialists will automatically get them).
  • [Improvement] Added the "Xenon Asteroid" station to "Summon Stations" feature (the macro for this "station" was difficult to track down; turned out Egosoft placed it inside the prop/WeaponSystems folder for whatever reason...)
Update 5/24/16:
  • [Improvement] Added additional safety check for "Summon Auxiliary Fleet", "Summon Existing Asset", and "Summon Faction Patrol". These features can no longer be activated while the player is in a highway (resets cue and outputs appropriate error on event monitor if player is in highway).
  • [Improvement] "Summon Auxiliary Fleet" and "Summon Existing Asset" now feature pilot confirmation message when the ship arrives.
Update 5/23/16:
  • [Improvement] "Summon Stations" - You now have the option to choose between building a full station ("Complete Build Plan") or only the first stage ("First Stage Only"), the latter allows you to build the rest of the station the way you like through the Architect.
    [NOTE] These options are not available for shipyards (because ship dealers don't function properly if spawned as a part of normal construction) or "deployable" stations (because you cannot deploy a construction vessel to stations without a build location attachment). These stations will always be built in full.
  • [Improvement] "Summon Stations" - Deployable stations can now be rotated (yaw value only). This uses the yaw value of the Skunk itself, so point the ship in the direction you want the station to be facing, then deploy it.
  • [Improvement] "Summon Stations" - Deployable stations are now marked with a [D] suffix at the end of their name in the selection menu. This way you can easily tell them apart from normal stations that use build locations.
  • [Improvement] Suppressed all the expected debug errors in the mod scripts. If you still notice any debug errors while using this mod, let me know.
Update 5/22/16:
  • [New Feature] Ship Mods Menu Patch now available at Nexus Mods (under Miscellaneous Files). You MUST use the Nexus installation to use this patch, since it needs to overwrite the menu files in the main mod package (sorry Steam users, but there's no easy way for one mod to patch another mod, so I can't do this as a standalone). Currently supported mods are:
    • Denied Space Initiative
    • Reaper's Ship Pack
    • Terratech's Ship Pack
    • Hunter Ships
    • Redesign Ships
    • Super Transport
    • Project TOBS
    • Toride Colonist Builder Ship
  • [Bug fix] Teladi Overwatch should no longer be missing any modules when spawned using "Summon Station".
Update 5/20/16:
  • [New Feature] "Galaxy Crew Upgrade" - Instantly upgrades the crew of all NPC stations (minus Kha'ak and Xenon) to 5-stars, and automatically adds any missing production specialists.
  • [Improvement] All features dealing with switching an NPC from one aiscript to another (such as "Claim Target" and "Change Faction") now aborts running scripts cleanly on the NPC before assigning the new script. It shouldn't make a difference, but just to be on the safe side...
  • [Improvement] Suppressed (expected) debug error in "Summon Crew" to prevent it from spamming the debug log. Issue is caused by the spawning script expecting a value from the hiring options (which is only provided if a crew can be assigned to the Skunk).
Update 5/18/16:
  • [New Feature] Construction Vessel - Remove Wares - Added ability to empty a construction vessel of wares. The scripts for "Construction Vessel - Restock Wares", "Construction Vessel - Remove Wares", and "Construction Vessel - Undock" have been streamlined and merged into one (the menu structure was slightly changed as the result).
  • [Improvement] More Localization now available:
    • French
    • Spanish
    • Italian
    • Korean
    As before, translation may be a bit rough...
  • [Improvement] CWIR Compatibility Patch updated. It is now a standalone and will work with the Steam version of the main mod.
Update 5/16/16:
  • [Bug fix] Managers and Architects now receive their own budget account properly under the following scenarios:
    • A station is created by "Summon Stations".
    • A station is turned over to player control by "Claim Target".
    • A construction vessel is created by "Summon Construction Vessel".
    • A construction vessel is turned over to player control by "Claim Target".
    With this fix, you should now see the "Budget" option listed for station manager and architects when examining them in the Details window. As before, their budget account will be properly removed if the station is turned over to NPC control.
Update 5/16/16:
  • [New Feature] Localization is now available:
    • English
    • German
    • Russian
    • Chinese (Simplified)
    • Chinese (Traditional)
    Translation may be a bit rough due to Google Translate... though I tried to be as accurate as I could.
  • [Improvement] "Summon Stations" - Weapon platforms and other deployable structures are now set to "Attack Enemies" on spawn, since this is probably the desired behavior.
  • [Improvement] "Target Manipulation" - Some minor tweaks to NPC dialogue/commentary.
Update 5/13/16:
  • [Improvement] Added several XML patches providing the following benefits:
    • assets\structures\[...] - Xenon production stations are now actually functional! The files here add actual storage capacity to the Xenon Repository station modules, which is required for the Xenon stations spawned by the mod to be actually functional (Xenon stations are capable of Antimatter Cell production, but have no storage).
    • md\NPC_Architect.xml - Adds proper routine for architect to detect attached station (or lack of one), and generate the correct dialogue options. Architect no longer needs to be shuffled back and forth when the CV is issued an "Undock" order.
    • md\NPC_Staff.xml - Allows captains and pilots to be called back to the Skunk through the "Come back on board" dialogue option.
  • [Improvement] md\Upkeep_Management.xml & md\Upkeep.xml completely re-written to be much more concise, and improve compatibility with other mods that modify these files. Additionally, station Upkeep mission generation now uses the presence of storage modules as a criteria, instead of a simple exclusion of specific station macros. This improves compatibility with mods that add new station types.
  • [Improvement] aiscripts\trade.shipyard.xml completely re-written to be much more concise, and improve compatibility with other mods that modify this file.
Update 5/12/16:
  • [Improvement] Mod is now split into a "Main Mod" package and a "Supplements" package. XML patch files that are deemed not essential to the main mod's features have been moved to the "Supplements" package (see "Game Asset Changes" in the first post for details).
  • [Improvement] Added several XML patches providing the following benefits:
    • aiscripts\engineer.player.xml - Adds the ability for an Engineer assigned to the Skunk to repair hull damage (up to 100% for 5-star).
    • assets\props\SurfaceElements\Macros\enginebooster_player_01_macro.xml - Significantly increases the speed, acceleration, and maneuverability of the Skunk's boosters. Also removes the 10% shield requirement for boost activation.
    • assets\units\size_l\units_size_l_xenon_01.xml & units_size_l_xenon_01_macro.xml - Adds a dock location to the Xenon K. If the mod/patch were removed, all ships spawned while the patch was activate will retain their dock module (those spawned after won't have one).
    • assets\units\size_xl\units_size_xl_xenon_01.xml & units_size_xl_xenon_01_macro.xml - Adds a dock location to the Xenon I. If the mod/patch were removed, all ships spawned while the patch was activate will retain their dock module (those spawned after won't have one).
    • libraries\ships.xml - Makes all Xenon K and Xenon I spawned by patrol jobs boardable.
    • md\NPC_Engineer.xml - Provides a necessary change to overcome an Egosoft oversight (custom Engineers are still assigned a timeout value). Without this patch, there's literally no way to spawn an Engineer NPC who's not assigned to duty, and not have him despawn immediately after being assigned somewhere and the player leaves the zone. Also provides a tweak to allow Engineers to be assigned to player stations via dialogue (special thanks to w.evans for lending me his codes).
  • [Improvement] aiscripts\trade.shipyard.xml completely re-written for improved compatibility with other mods.
  • [Bug fix] "Legendary Weapons": Fixed issue with Plasma Cannon Mk3 and Railgun not receiving attribute boosts via the XML patch. Turned out to be a dependency issue (my mod was being loaded before the Home of Light DLC, so the <replace> wasn't being applied to those two weapons).
  • [Bug fix] "Summon Stations": Fixed some missing stages on the summoned Teladi Overwatch station (shouldn't see more floating components).
  • [Bug fix] "Summon Personnel": Engineers spawned by this feature no longer disappear when player assign them somewhere and leaves zone. Issue was traced down to yet another Egosoft oversight (tons of inconsistency in NPC MD scripts...) Unfortunately a XML patch was necessary this time to address the issue, so aiscripts\engineer.player.xml is now a mandatory patch.
Update 5/11/16:
  • [New Feature] "Remove Upkeep Missions": Removes any leftover Upkeep Missions on a ship or station, after it has been transferred over to a NPC faction. A backdoor had to be added in md/Upkeep.xml for this feature to work, so try not to remove this XML patch from the mod (though still save game-safe if you did).
  • [Improvement] "Change Faction": This feature now automatically cancels any unfinished Upkeep Missions if a player asset is transferred over to NPC control. This only applies to the main target, however - if the target's subordinates also have unfinished Upkeep Missions, use the "Remove Upkeep Missions" feature to manually clear them.
  • [Improvement] "Self-Destruct", "Claim Target", and "Change Faction" now affects not only the subordinates of the targeted object, but the subordinates of those subordinates as well (this is as far as I will go in taking care of the command tree structure, though).
  • [Bug fix] Summon Stations: Fixed a minor bug where the station crew is being created on $StationDock, instead of $StationDock.component (which is the proper format). Actual functionality is unchanged (since all station crew now exist in the station's control room, instead of any dock location anyway), but you will no longer get debug errors on station spawn.
Update 5/10/16:
  • [New Feature] "Claim Territory": Changes the ownership of the player's current zone to the player. This is more or less just a "fun" feature for people who wants to feel like they can actually own a piece of the galaxy and forge the frontier the way they like (used in combination with "Self-Destruct"'s ability to disable NPC stations, one could effectively pacify Xenon sectors and make it a haven for the player empire).
  • [New Feature] "Station Management": Players now have the ability to restock or empty a selected station of production wares! Includes ability to select a station from the Property list, or use your current target (intelligent targeting behavior applies - any module or surface element will do!)
  • [Improvement] "Construction Vessel Restock/Undock": Added intelligent targeting behavior when using "Target Object".
Hotfix 5/8/16:
  • [Improvement] "Claim Target": Claiming a Xenon commander unit now spawns proper NPC crew for all subordinates! The subordinates will escort the commander unit by default - which is fine at the moment, since this seems to be the job of all Xenon subordinates at this time. If the game evolves in the future with Xenon subordinates actually handling other types of jobs (such as mining or trading), then this may create a problem... but we'll deal with it when we get there.
  • [Bug fix] "Change Faction": If a player-owned commander unit is transferred to a NPC faction, all crew of subordinate units will also have their credit accounts properly removed.
Update 5/7/16:
  • [Improvement] "Self-Destruct": If the target has subordinates, they are destroyed along with the commanding unit.
  • [Improvement] "Claim Target":
    • If the target has subordinates, they are claimed alongside the commanding unit. Also added a "ceasefire" command to stop any subordinates from firing on you after ownership change (since they get their attack command from the commanding unit).
    • If target and its subordinates (excluding drones) have pre-existing crew, they receive an automatic skill upgrade (all 5-stars).
    • If the target is a Xenon asset, the AI crew is removed and an NPC crew will be created in their place (works for both ships and stations).
    • [Note] If you claim the lead unit in a Xenon fleet, only the lead unit will receive NPC crew (the subordinates will retain their AI crew). This is unfortunately necessary to preserve the subordinates' job scripts (so whatever order they were executing - escort, mining, etc. - they will continue to do so). I have experimented with destroying the AI crew of Xenon subordinate units and replacing them with NPC crew already, and the spawning routine seems to function somewhat unreliably (some subordinates get a replacement crew, some don't - not sure why). For now, if you really must have actual NPC crew in Xenon subordinates, you will have to assign them manually.
  • [Improvement] "Change Faction": If the target has subordinates, their faction is changed along with the commanding unit. Also added a "ceasefire" command to stop any subordinates from firing on their current target after ownership change.
Update 5/6/16:
  • [New Feature] "Repair Station Wreck": Codes are now functional after a change to the "Self-Destruct" routine for NPC stations! Fully restores hull, surface elements, and station crew. Also sets station owner back to its original faction (from "ownerless").
  • [Improvement] "Self-Destruct": Major update to how NPC stations are handled. Instead of fully destroying all station modules, this feature now pseudo-wrecks the station, setting all modules to 1% hull, destroys all surface elements, and removes the station crew. It then sets the station to coverowner "Ownerless", which will make it appear ownerless and prevent any hostile action from being directed at it (useful for if you want to secure a hostile sector, and don't want your patrol ships to keep going after those invulnerable station hulls).
  • [Improvement] "Summon Stations": Switched the spawning routine for Station Manager, Station DO, and Station Engineer to use <create_cue_actor> instead of <create_platform_actor>. This is to account for the fact that some larger landmark stations (which I have set to use a build location) do not have a dock location, only a control room. Without this change, such stations would spawn without a crew.
  • [Improvement] "Summon Stations": Added two missing "Xenon Matrix" stations from the Home of Light DLC, and removed "The Maze", since it appears to be causing crashes.
  • [Improvement] "X-Perimental Jump": Further improved safety check to disable ability to jump when docked at a deployed Construction Vessel.
Hotfix 5/5/16:
  • [New Feature] Shipyard Cooldown has been changed. Albion and DeVries no longer have location-dependent delay between capship builds at NPC shipyards. Entire galaxy now have a standard cooldown for capship builds: 10-20 minutes. If you do not like this change, simply remove aiscripts/trade.shipyard.xml from the mod folder. I will make this an optional supplement when mod is released on Nexus.
  • [Bugfix] Fixed pathing of some XML patches that was being returned as invalid for some reason (pathing was fine, but it wouldn't accept "mdscript/" as a valid root entry... but somehow "//" works. Upkeep mission changes should work properly.
MAJOR UPDATE 5/5/16:
  • [New Feature] "Legendary Weapons": Finally got the weapon mods patches working! Spawn some High-Grade weapon mods with this feature and you'll see what I mean. Unfortunately the changes do affect all weapon mods spawned in the game (even ones you get from missions and containers), because MD script currently does not give any sort of ability to control spawned weapon mods stats. If you feel the changes are too cheaty for you, simply remove libraries/weaponmods.xml from the mod folder.
  • [Improvement] "Summon Stations": Got the Upkeep mission patches working as well! Upkeep missions are no longer generated for stations that shouldn't have them (weapon platforms and non-factory stations).
  • [Improvement] General Upkeep Missions: As a side bonus to the Upkeep Missions patch I had to do for "Summon Stations", I also patched out Upkeep Missions for adding mining drones to mining ships (because mining and trading ships can be used interchangeably; if a player wants to use an Onil as a freighter, they should be able to without being badgered). Additionally, for "Assign Trade Ship" and "Assign Mining Ship" Upkeep missions, either a trade or mining ship will now satisfy the requirement (again, because they can be used interchangeably). The script will still check to make sure the ship you assigned can carry the appropriate cargo type, but it no longer restricts you to use ships with either "Trade" or "Mine" specialty.
  • [Improvement] "Grant Treasures": Added many more rare items! You can now spawn Security Decryption System, Gifts, Virtual Seminars, and Weapon Mods.
  • [Bug fix] "Change Faction": Terracorp HQ station manager will now be assigned the generic NPC manager script, rather than the warehouse one (apparently the warehouse script is written specifically for only three stations, and Terracorp HQ isn't one of them).
Update 5/3/16:
  • [New Feature] "Repair Station Wreck": Restores wrecked NPC stations in player's current zone. Feature not yet functional. Codes are in place, but the detection routine isn't yet working.
  • [Improvement] "Claim Target": Feature now automatically sets the target's status to fully revealed before setting the owner faction to the player. This should circumvent the UI glitch where a NPC ship or station that has been turned to you still shows "???" under its details.
  • [Improvement] "Summon Personnel": Race selection now available! Choose from Argon, Canteran, Teladi, or Split crew!
  • [Bug fix] "Summon Personnel": Crew created by this feature no longer despawn when player leaves zone (after assigning the crew elsewhere). Issue was tracked down to <create_platform_actor>, which doesn't include a safety check to exclude player-owned actors from being assigned a "timeout" value (technically a dev oversight, though under normal circumstances player-owned platform actors wouldn't spawn directly onto the Skunk without being hired - and the hiring action is what triggers the timeout cancellation). This feature now uses <create_cue_actor> to circumvent the issue.
MAJOR UPDATE 5/1/16:
  • [New feature] "Canteran Plot Stations": Detects and spawns any missing Canteran stations that are supposed to be built as a part of the campaign.
    • Only spawns missing stations, if any. Event monitor message if all stations are accounted for.
    • All stations are spawned in a fully-extended state (all modules built). Includes fully-working shipyard with the correct manager script (will auto-build capships).
    • Works on non-campaign game starts. You can effectively make DeVries the same as a campaign start with the press of a single button.
    • Includes integrated fix for the shipyard manager script issue if you are on a campaign save and the shipyard has already been built (the game assigns the incorrect aiscript to this manager because the station is in an incomplete state when 'station init' is signaled. The lack of capship cradles meant the game mistakes the shipyard for a small shipyard, and assigns that aiscript to the manager. Therefore even if you completed the station manually at a later time, it still won't auto-build capships).
  • [Improvement] "Summon Stations": Major improvement to script logic. Shipyards are now functional, with working ship dealers. If you turn over a spawned shipyard to an NPC faction, it will effectively create additional economy sink.
  • [Improvement] "Change Faction": Major improvement to handling of player-owned station being transfered to NPC faction.
    • Auto add and assign police units, if station is capable of launching drones.
    • If station is a shipyard, order station manager to run the NPC shipyard script (and if it's a capital shipyard, periodically build L/XL ships). Also turn over ownership of any ship dealers on the station.
    • If station is a warehouse-type (HoL Warehouse, Escape Velocity, Plutarch Exchange, or Terracorp HQ), order station manager to run NPC trade station script.
    • Order station manager to run standard NPC station script otherwise (instead of the player station script).
  • [Improvement] "Claim Target": If an NPC-owned station is turned over to player control, the script will now assign the proper player-specific script to the manager and defense officer.
  • [Improvement] "Upgrade Crew": Major improvement to script logic. If the target is a station capable of ware production, this feature now properly detects any missing production specialists and spawns/assigns them. Event monitor feedback to show you exactly what specialists were deployed. This feature now effectively allows you to maximize the productivity of an NPC station with one click.
Update 4/29/16:
  • [Improvement] "Summon Stations":
    • Major update to station-spawning routine! The script now spawns a construction vessel first, and jumps it to the proper position just outside of the boundingbox. This CV immediately attaches itself to the build location, thus preventing any further instances of the script from choosing that build location again (which used to happen if the obstruction checks takes too long and the player chose to spawn another station before the obstruction check is finished).
    • Weapon platforms are now deployable! I coded a completely different spawning routine for them. Instead of using a build location (which doesn't make sense for them), they will be created at the exact location of the Skunk. A boundingbox will be created and you will be prompted to leave the area. Once obstruction check is complete, the station is then created. This allows you to precisely place weapon platforms in a zone you wish to defend!
    • Several decorative stations have been switched to use the weapon platform's spawning routine (HoL highway stations, Canteran/Reiver habitations, Teladi pirate dens, etc.) since they are fairly small stations that don't produce anything, so it doesn't make sense for them to occupy a build location and have an attached CV.
    • The massively-powerful Plutarch Overwatch station now uses the weapon platform spawning routine as well! You can deploy them anywhere you want!
  • [Improvement] Enhanced the custom ship jump-in effects for "Summon Auxiliary Fleet", "Summon Law Enforcement", and "Summon Existing Asset".
  • [Improvement] "Safe Word": This function now fully repairs all surface elements of a station or capital ship.
Update 4/28/16:
  • [New feature] "Trade Offer Updates": Subscribes to trade offer updates on the targeted station (in effect, placing a "trade agent" on the station, though no NPC is actually involved).
  • [Improvement] "Claim Target" now contextually generate crew if the targeted ship has no crew on board. S/M ships get a pilot, and capital ships get a full set of crew (safety routine in place to destroy any old crew, since the detection trigger is the lack of a Captain).
  • [Improvement] All features under "Target Manipulation" now have further-improved targeting behavior. Not only will it properly lock onto the parent of a targeted element, it will now properly lock onto the parent of the parent of a targeted element. This mainly affects targeting of stations, which are sub-divided into modules (before this patch, you had to target a station module to perform any action on the station. Now you can target the surface element of a module, such as a dock location or a turret, and the whole station will be locked onto), but some ships with sub-modules also benefit (e.g. Arawn).
  • [Bug fix] "Undock Construction Vessel": Removed the Architect dialogue tree reset codes because it leads to some weirdness. Currently investigating the cause. Until a proper fix is implemented, for the time being simply assign a new Architect to a detached CV (you can even assign the old one back once it comes on board the Skunk).
Update 4/27/16:
  • [New feature] "Remove Plutarch Overwatch": Removes the wreckage of the Plutarch Overwatch leftover from the campaign. Specifically targets the one in Twilight Sentinel and checks its faction status (ownerless) before removal. If you build your own Plutarch Overwatch stations using this mod, they will be safe from this script.
  • [Bug fix] "Build Stations" now correctly detects occupied build locations.
  • [Bug fix] "Destroy Target" now properly disconnects a construction vessel if used on a station with an attached CV.
  • [Removed Feature] "Remove Station Wreck": Removed for now due to targeting issue. Set player stations to despawn by default instead (when self-destructed).
MAJOR UPDATE 4/26/16:
  • [New feature] "Build Stations": Build any station of your choice! If a station is in the game, it is selectable! Construction routine is fully custom-made, and emulates normal CV construction as closely as possible (see OP for details).
  • [New feature] "Safe Word": Makes the player's current target immune to damage. Toggleable.
  • [New feature] "Self-Destruct": Instantly destroys the player's current target. Works on both stations and ships (using different routines). Destroyed stations will remain in a wrecked state (may implement a feature to restore them to working state at a later date. Be careful about using this for now!)
  • [New feature] "Change Faction": Changes the owner faction of the player's current target. Works on both stations and ships.
  • [New feature] "Claim Target": Transfers ownership of the player's current target to them.
  • [New feature] "Upgrade Crew": Upgrades the crew of the player's current target to all 5-stars. Works on both stations and ships.
  • [New feature] "Summon Construction Vessel": Creates a construction vessel (model and number of your choice), fully-loaded with construction wares. All models are available, including the unique plot construction vessel.
  • [New feature] "Restock Construction Vessel": Fully restocks the selected construction vessel with wares. Option to use your current target or choose one from property list (the current target option works on NPC construction vessels!).
  • [New feature] "Undock Construction Vessel": Detaches a construction vessel from its parent station. Option to use your current target or choose one from the property list.
  • [New feature] "Remove Station Wreck": Removes the targeted station wreckage (if it is not part of the galaxy init).
  • [Improvement] "Summon Faction Patrol" : Script completely re-written to utilize convparam. Script length reduced from ~1300 lines to ~300 lines.
  • [Improvement] "Summon Personnel": Script completely re-written to utilize convparam. Script length reduced from ~700 lines to ~100 lines.
  • [Improvement] Mod menu tree restructured to accommodate the abundance of new features. Also merged some section handlers together to reduce the number of cues.
  • [Improvement] Tons of minor bug fixes, new safety checks, and event monitor feedback improvement.
MAJOR UPDATE 4/19/16:
  • [New feature] "Grant Wealth": Adds money to the player's account. 6 dialogue options for how much money to add.
  • [New feature] "Grant Fame": Set player relation to any faction in the game to allied (+30), neutral (0), or enemy (-30).
  • [New feature] "Grant Treasures": Spawns a chosen treasure into the player's inventory. Choose from Kha'ak Relic Collection, Ancient Relic Collection, Spacefly Egg Collection, and Rare Engine.
  • [New feature] Immortality: God mode for the Skunk. Toggleable. Can be used to gain unlimited boost (shield will not drain).
  • [New feature] Reveal Galaxy -> Unlock Galaxy Map: Reveals all undiscovered zones.
  • [New feature] Reveal Galaxy -> Unlock Stations Information: Fully unlocks all stations (showing 100% scanned) galaxy-wide. Please note that this script is calculation-heavy and will freeze your game briefly.
  • [New feature] Civil War Behavior: Changes hostility setting between HOA/PMC and TU/UA,CAR. Toggleable.
  • [Improvement] Summon Auxiliary Fleet: Script completely re-written to utilize convparam. Script length reduced from ~17000 lines to ~400 lines.
  • [Improvement] Ship Configuration: Script completely re-written to utilize convparam. Script length reduced from ~1400 lines to ~200 lines.
  • [Bug fix] Summon Existing Asset: Summoned ship will now respond to player commands without having to be added to squad first.
  • [Bug fix] Summon Faction Patrol: Corrected number of drones spawned with the ships.
  • [Bug fix] "Ship Configuration > Add Drones": Drones are now docked properly when spawned, and will actually work when commanded.
  • [Improvement] "Summon Auxiliary Fleet": Minor tweak to the default post-spawn behavior of Zepp and UFO. The pilot of these two specific ships will now idle by default (fly around the zone randomly), since idle command cannot be issued by the player currently, and these two ships can't perform any other action.
  • [Improvement] Various tweaks, bug fixes, and event monitor feedback improvement.
Hotfix 4/14/16:
  • [Improvement] "Summon Existing Asset": Tweaked script section dealing with locating the subordinates of the ship that has been summoned. The end result is the same, but the routine is now much simpler.
  • [Bug fix] "Summon Personnel": Resolved dialogue tree issue (switched to "create_platform_actor" for all NPCs, which lets the game handle dialogue tree generation).
  • [Bug fix] "Summon Auxiliary Fleet" and "Summon Faction Patrol": Scripts tweaked so the ship's crews now show up on the ship's dockingbay properly. Also fixed minor issue with fuel cells not spawning with the ship.
Update 4/14/16:
  • [New feature] "Summon Personnel": Partially working. NPC spawns but doesn't generate the dialogue tree properly. All NPCs are available. For NPC's that can be assigned to the Skunk (Marine Officer and Engineer), the player is presented a choice of "Work on my ship" (assigns the NPC to the Skunk and fires any previously-assigned NPC of the same type) and "Work somewhere else" (stores the NPC in the backroom and doesn't assign it).
  • [New feature] "Summon Existing Asset": Warps an existing ship you own to your current location. Includes safety check to apply action only to ships (throws an error if you selected a station).
  • [Improvement] "Summon Auxiliary Fleet" now complete. All small ships in the game are available, including exclusive Xenon, Kha'ak, and prototype PMC fighters. Fixed minor issue where the spawned ship wouldn't respond to player command until assigned to the squad (has to do with assigning a script to the pilot called "player.default").
Update 4/12/16:
  • [Improvement] Summon Auxiliary Fleet feature now nearly complete. All capital ships are now available for selection, as well as unique ships Zepp and UFO. Small ship selection is well underway - all Argon fighters are already available for selection (including the exclusive Moebius and Golem).
  • [Bug fix] X-Perimental Jump script restructured so that the initial (Map menu) cue no longer contains sub-cues. This ensures that no orphaned sub-cues will result should the player choose to cancel the process during zone selection.
  • [Bug fix] Summon Auxiliary Fleet script likewise restructured to remove use of sub-cues during selection dialogue (number selection). This ensures that no sub-cues will be orphaned should the player choose to exit the dialogue.
  • [Bug fix] Ship Configuration script also updated with the restructuring outlined above (for functions that have dialogue options, removed use of sub-cues).
Update 4/11/16:
  • [Bug fix] Summon Faction Patrol script sub-cue trigger issue resolved.
  • [Bug fix] Ship Configuration > Add Drones issue resolved. Turned out game doesn't consider player drones (Beholder, Trojan, Assassin, etc.) as normal units, so <add_unit> doesn't work. <add_drone> was used instead.
  • [Bug fix] Ship Configuration > Add Weapons issue with Heavy Laser & Pulsed Maser Mk3 missing weapon cycling sound traced down to game files. These two weapons lack the proper <effects> flag to associate them with weapon cycling sounds. Bug has been reported and Egosoft has already made an in-house fix.
Initial Release 4/10/16
Last edited by Simoom on Sat, 20. Aug 16, 11:33, edited 46 times in total.

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Wed, 13. Apr 16, 02:53

==================
Technical Discussion
==================

I will answer the first question that's likely on many people's mind: Why another cheat menu?

It all started when I picked up XR (for the fourth time?) when HoL was released. Since I already played through the campaign many times, I decided to accelerate my progress by checking out alexalsp's CHEAT MENU. It's an good mod with an excellent number of features, but it also has some issues and several design decisions that did not agree with me.

While responding to a help request from another player, who also had CHEAT MENU installed, I examined my save game and realized the mod had caused the exact same glitch in my game. I began to investigate the cause with the mod author, which he ultimately traced to an asset script he had included from another mod.

In the process of looking over the mod's scripts, however, I realized two things:
  • Modding is something I could learn (I had stayed away from it for a long time due to lack of any coding experience).
  • If I truly wanted to change CHEAT MENU to the way I preferred... I would pretty much have to re-write the whole mod from scratch (not just because of scripting issues, but because certain things came down to personal preference).
Ultimately, I decided to pursue my own mod, because CHEAT MENU is not my mod, and I simply didn't feel it was my place to ask the mod author to make any sort of extensive changes on my behalf (again, considering some of my gripes were personal preference).

That said, I do want to make it clear that I respect alexalsp's hard work, and CHEAT MENU definitely served as an inspiration and a starting point for Simoom's Lantern. This post is not meant to demean his work, but to highlight the valuable things I learned as I struggled along the way to learn the basics of coding. I hope some prospective mod makers out there will find the information below helpful.

====================
Structural Differences
====================

Even in places where they may appear similar, Simoom's Lantern and CHEAT MENU are structured very differently...
  1. Mod Menu Structure: A mod's menu system is what gives the player access to its features, so I'll start here...
    Image
    This was one of the first problems I noticed. CHEAT MENU uses an XML patch to splice in ~4000 lines of code directly into a single cue under XR's main menu file, "SectionHandler_Universe". The entire mod runs on a very long string of <do_elseif> conditions, under this one cue, which has to be iterated through every time you make a dialogue choice in the mod menu. Yes, it works - but it's not an ideal setup, and makes the menu noticeably sticky in terms of responsiveness (not a big deal for modern rigs, but still...)

    Simoom's Lantern has a fully-externalized mod menu, which runs on its own MD script. The XML patch to the game's main menu adds only a shortcut, which signals the mod menu. Furthermore, the mod menu is sub-divided into small section handlers, similar to the way Egosoft's own menus are done. Since the cue sizes are kept very small, the menu should be much more responsive.
  2. Feature Scripts Structure: Another issue with CHEAT MENU's script structure is the way its features are implemented... namely, the majority of the mod's functions are performed directly inside the "SectionHandler_Universe" cue. Everything from the cheat jump, reveal map, Skunk equipment, adding ammo, etc. are handled directly with <do_elseif>. The only major features that are externalized are the ship and station spawning scripts, which are probably too lengthy to include (they are each about ~4000 lines as well). The lack of feature externalization is problematic because it makes editing features difficult (lengthy scripts), and severely restricts the flexibility of the script to perform certain functions (for example, you can't do any sort of condition checks or delayed actions through <do_elseif>, since no sub-cues can be contained inside the node).

    Compounding this issue is CHEAT MENU's lack of utilization for passable parameters - the scripts do not at all use dynamically-defined variables, which is the reason why even its externalized scripts are so long. They contain cues that essentially do the same thing over and over (the ship-spawning script, for example, has a separate cue for each ship model, each signaled by a different <do_elseif> condition from the main menu patch. Then there's a separate MD file for spawning 5 ships at a time, which is an exact copy of the normal ship spawning script, except it performs each cue 5 times).

    Utilization of parameters is probably the most valuable lesson I learned in MD scripting, and has helped reduce the length of my early scripts significantly (see the early Changelogs). Simoom's Lantern externalizes all features into their own modular cues, allowing for easy editing and customization by the end-user. It also takes full advantage of passable parameters to keep the scripts concise wherever possible, by using dynamically-defined variables (I plan to shorten existing scripts even further once I start learning how to use libraries).
  3. Safety Routines: Although the two mods offer many similar functions, one major distinction is that CHEAT MENU lacks any sort of safety routines for actions it performs. For example, its crew-spawning script utilizes <create_platform_actor> to generate several kinds of NPC's (by placing them on the drone launcher, I think... which is the only platform the Skunk has), before moving them into the ship's backroom using <add_actor_to_playership>. However, this routine does not at all check if the Skunk's backroom has free slots for NPC actors (the <add_actor_to_playership> function will fail if the Skunk's backroom is full, which is fine... the problem is the actor has already been spawned and added to the drone dock, which doesn't have any actor slot, so... I am not sure what happens to such actors). By comparison, Simoom's Lantern prevents any sort of NPC creation altogether if the Skunk has no more room (in fact the hiring options and race selection menu are set to display only if the Skunk has room - so a triple-layered safety check).

    Another example is CHEAT MENU's recently-introduced "Destroy Target" function, which does the following:

    Code: Select all

        <cue name="destroy_target_cheat_alexalsp">
          <conditions>
            <event_cue_signalled/>
          </conditions>
          <delay exact="0s"/>
          <actions>
            <destroy_object object="player.target" explosion="true"/>
          </actions>
        </cue>
    This isn't good, because...
    • If the player targeted a NPC station module (not a surface element), the module will be fully destroyed (the station's engineer won't be able to repair it, and <restore_object> won't be able to bring it back either. It's basically as if the station never built it). This can create problems if the player wants to restore a wrecked NPC station station at a later time.
    • If the player managed to target an entire station (possible if a guidance target is set), <destroy_target> will despawn the entire station - only to respawn it on the next game load. This is fine, except the mass traffic will be permanently messed up (as demonstrated by eMYNOCK's Canteran Handmade Technology mod). But if the player's intent was to disable a hostile NPC station, then this ultimately served no purpose.
    • If the player targeted a station he owns, the station will despawn. However, the attached construction vessel will remain attached to the build location, and there may be potential glitches caused by the buildmodule not being cleared properly (since stations aren't normally meant to disappear from the game).
    • If the player targeted something they shouldn't destroy... like a jumpgate or navbeacon... I don't know. They should respawn on next game load? But I wouldn't risk it.
    Now consider my script for "Self-Destruct"...

    Code: Select all

        <cue name="SimoomsLantern_target_destruct" instantiate="true" namespace="this">
          <conditions>
            <event_conversation_started conversation="SimoomsLantern_target_destruct"/>
          </conditions>
          <actions>
            <!-- Safety check: Target is ship or station -->
            <do_if value="(@player.target.isclass.[class.station, class.ship]) or (@player.target.parent.isclass.[class.station, class.ship]) or (@player.target.parent.parent.isclass.[class.station, class.ship])">
              <do_if value="player.target.isclass.[class.station, class.ship]">
                <set_value name="$Target" exact="player.target"/>
              </do_if>
              <do_elseif value="player.target.parent.isclass.[class.station, class.ship]">
                <set_value name="$Target" exact="player.target.parent"/>
              </do_elseif>
              <do_else>
                <set_value name="$Target" exact="player.target.parent.parent"/>
              </do_else>
              <!-- If target object is a ship -->
              <do_if value="$Target.isclass.ship">
                <show_notification caption="{10002,4}" details="[{30151,28} + ' ' + {10002,335} + ':\n', $Target.name]" icon="achievement_dronekill_1" sound="notification_danger" comment="Target self-destructed."/>
                <destroy_object object="$Target" explosion="true"/>
              </do_if>
              <!-- If target is a station -->
              <do_elseif value="$Target.isclass.station">
                <show_notification caption="{10002,4}" details="[{30151,28} + ' ' + {10002,335} + ':\n', $Target.name]" icon="achievement_dronekill_1" sound="notification_danger" comment="Target self-destructed."/>
                <add_effect object="player.room" effect="'cpfx_cockpit_alert_01'"/>
                <!-- If station has attached construction vessel, disconnect it properly -->
                <do_if value="@$Target.buildingmodule">
                  <set_value name="$Builder" exact="$Target.buildingmodule.container"/>
                  <clear_buildmodule buildmodule="$Builder.buildmodule"/>
                  <disconnect_from_build_location object="$Builder"/>
                  <remove_object_commander object="$Builder"/>
                  <do_if value="(@$Builder.pilot.exists) and ($Builder.isplayerowned)">
                    <start_script object="$Builder.pilot" name="'player.default'"/>
                  </do_if>
                </do_if>
                <!-- Destroy crew -->
                <get_control_entities groupname="$Crew" object="$Target"/>
                <do_all exact="$Crew.count" counter="$Counter">
                  <dismiss_control_entity object="$Target" actor="$Crew.{$Counter}"/>
                </do_all>
                <destroy_group group="$Crew"/>
                <!-- If player station, allow full destroy -->
                <do_if value="$Target.isplayerowned">
                  <find_object_component groupname="$Modules" object="$Target" class="class.destructible" multiple="true"/>
                  <destroy_group group="$Modules" explosion="true"/>
                </do_if>
                <!-- Else do partial destroy -->
                <do_else>
                  <find_object_component groupname="$Modules" object="$Target" class="class.destructible" surfaceelement="true" multiple="true"/>
                  <destroy_group group="$Modules" explosion="true"/>
                  <find_object_component groupname="$Modules" object="$Target" class="class.destructible" surfaceelement="false" multiple="true"/>
                  <do_all exact="$Modules.count" counter="$Counter">
                    <set_object_hull object="$Modules.{$Counter}" exact="1"/>
                    <do_any chance="25">
                      <add_effect object="$Modules.{$Counter}" effect="'ref_explosion_station_explosion01'"/>
                      <add_effect object="$Modules.{$Counter}" effect="'ref_explosion_station_explosion02'"/>
                      <add_effect object="$Modules.{$Counter}" effect="'ref_explosion_station_explosion03'"/>
                    </do_any>
                  </do_all>
                  <set_cover_owner object="$Target" faction="faction.ownerless"/>
                </do_else>
              </do_elseif>
              <!-- If target has subordinates -->
              <do_if value="$Target.subordinates">
                <do_all exact="$Target.subordinates.count" counter="$Counter">
                  <do_if value="$Target.subordinates.{$Counter}.subordinates">
                    <do_all exact="$Target.subordinates.{$Counter}.subordinates.count" counter="$i">
                      <destroy_object object="$Target.subordinates.{$Counter}.subordinates.{$i}" explosion="true"/>
                    </do_all>
                  </do_if>
                  <destroy_object object="$Target.subordinates.{$Counter}" explosion="true"/>
                </do_all>
              </do_if>
            </do_if>
            <!-- Error if invalid target -->
            <do_else>
              <show_notification caption="{10002,133}" details="[{100005,6} + ':\n', {1001,5} + ' ' + {30119,1000} + ' ' + {1001,3} + ' ' + {100005,7}]" icon="achievement_jumpdrive_cooldown" sound="notification_external_fail" comment="Invalid Selection: Ship or Station Only"/>
              <speak actor="player.computer" line="[133, 702, 703, 706].random" priority="100" comment="Command rejected."/>
              <reset_cue cue="this"/>
            </do_else>
          </actions>
          <cues>
            <!-- Despawn station wreck if set for full destroy -->
            <cue name="SimoomsLantern_target_destruct_despawn" onfail="cancel">
              <conditions>
                <check_value value="($Target.isclass.station) and ($Target.isplayerowned)"/>
              </conditions>
              <delay exact="40s"/>
              <actions>
                <destroy_object object="$Target"/>
              </actions>
            </cue>
          </cues>
        </cue>
    And this is just one example out of the dozens of features in Simoom's Lanter that contains stringent condition checks. I needed to make sure that any action performed by the mod is applied to the appropriate target, inform the player of invalid sections, and that proper cleanup is performed. Even seemingly-simple actions like transferring the ownership of a ship or undocking a construction vessel have layers of safety checks in place - because if my mod ruined someone's save game, the burden of the responsibility would be on me; and that's something I would like to avoid altogether.

    To be fair, many of my safety checks are difficult or impossible to perform under only <do_elseif>... which is why an externalized, modular script structure is so important.
  4. Naming Convention & Required Parameters: CHEAT MENU's scripts do not follow Egosoft's specified naming convention for a lot of things (for example the name of a MD script - and the name of any cue - must have a capitalized first letter, and all of CHEAT MENU's script and cue names start with a lower-case). There are also a lot of missing parameters (for example the <safepos> function under its cheat jump does not have a "radius" declared, which is a required parameter) and orphaned lines (in the crew-spawning script, <create_cue_actor> is used for certain types of NPC's, but the cues for such cases contain a line looking for a dock location on the Skunk, which is only useful for doing <create_platform_actor>).

    It's possible the author is not writing his scripts in a XML editor that has schema support... which is pretty much a must (Visual Studio taught me more about MD script than anything else). But language barrier could also be at play here...

    In any case, a lot of care was given in the writing of Simoom's Lantern to make sure everything follows Egosoft's established guidelines, and that no required parameters are missing. I also keep a close eye on the debug log to make sure there are no unexpected errors.
  5. Third-Party Mod Inclusion: CHEAT MENU comes bundled with several mods made by other authors, which are available separately. This is a practice I personally disagree with, and one of the strongest reasons I decided to set off and write my own mod.
    There are many problems with including other people's mods into your own:
    • Do you know the structure and scripts of these other mods intimately? If not, how do you know there are no conflicts?
    • Troubleshooting becomes very difficult. When a user reports a bug or broken feature, is it caused by your own scripts or one of the included mods?
    • Updates becomes difficult. Whenever one of your bundled mods is updated by its author, you have to remember to update your own mod. And what if that author becomes inactive? Do you have authorization to alter his scripts?
    • Lastly, if those bundled mods are available on their own anyway... why not let the end-users install them by themselves? If the users doesn't like the mods you bundled, you are making their lives difficult because now they have to find out how to remove the bundled mods (and worry about whether or not the core mod will function fully without the bundled stuffs).
    Once again compounding the issue is the fact that several of the mods bundled with CHEAT MENU are not save game-safe (adding large numbers of ships, stations, as well as custom NPC's running on altered aiscripts), the the lack of a detailed documentation on what assets are added/changed in the game files makes it a risky mod to uninstall.

    This is why one of my goals for Simoom's Lantern is sticking with vanilla scripts and assets. The modifications introduced by my XML patches are not the kind that will affect save game safety if the mod were uninstalled.
====================
Design Differences
====================

This section outlines some of the design differences between Simoom's Lantern and CHEAT MENU...
  1. Cinematics: One of the very first goals for Simoom's Lantern was a cinematic implementation. Immersion is a big thing for me in games, and nothing breaks immersion more than cheating. But since this is a cheat script, I had to do what I can to reduce its impact on the immersiveness of the game world.

    There are a lot of custom animation, SFX, and NPC dialogue when you perform actions in Simoom's Lantern, such as warping a ship to you, restoring a wrecked station, and performing a cheat jump. These effects simply cannot be achieved under CHEAT MENU's <do_elseif> script structure, which was one of the reason I abandoned writing my scripts in a similar manner very early on in my modding efforts.
  2. Information Feedback: One thing I wasn't too happy about when I was still using CHEAT MENU was the lack of information on what action was just performed. What type of NPC or ship did I just spawn? Is the god mode on or off? What inventory items did I just give myself?

    Since good audio/visual feedback played into my goal for maintaining immersion, one of my early goals was having informative Event Monitor feedback so the player can get a detailed confirmation for what action was just performed (or an error, if something went wrong). Fortunately, the frequent use of dynamic variables in Simoom's Lantern made it very easy to implement such a system (for example, telling the event monitor to display the dynamically-defined "$inventory.name" will automatically show the name of the item the player has chosen to add, without me needing to customize an entry for each possible outcome).

    This system is also impossible to implemented under a <do_elseif> script structure...
  3. Persistent Menu: Those of you who have tried both mods may have noticed a distinctive difference in terms of user experience... Simoom's Lantern keeps the mod menu open after an action is performed, while CHEAT MENU fully closes the menu after each action (forcing you to go through the entire menu tree again if you needed to perform several actions).

    This was one of the earliest challenges I was determined to tackle (I knew it was possible, since Egosoft's menus are set to return to a previous section after an action sometimes). It turned out the key was using <add_player_choice_subconv> when performing actions (which necessitates externalizing the actions to another cue, which is how Simoom's Lantern is structured anyway), instead of <add_player_choice_sub> (which is what CHEAT MENU uses since every selection you make is basically jumping between sections of the same conversation).

    The problem with using <add_player_choice_sub> is that if used as a trigger to perform an action (instead of advancing the conversation), the conversation is considered "complete", the the menu closes.

    <add_player_choice_subconv>, on the other hand, creates a new conversation (on top of the existing one), and returns to the section in the previous conversation where you left off. If used as a trigger to perform an action, it returns you to the mod menu page you were on before the action was performed. This may seem like a nuanced change, but in my own experience, it makes a very big difference in terms of user-friendliness.
Last edited by Simoom on Tue, 17. May 16, 15:34, edited 45 times in total.

hisazul
Posts: 1197
Joined: Sat, 15. Oct 11, 04:12
xr

Post by hisazul » Thu, 14. Apr 16, 07:58

May want to add toggle for minhull argument on selected object. People will be able to make universe traders immortal or npc patrols and all that jazz. Tho... at the same time they'll be able to break gates of all kinds and stations... and... could turn badly but that was the hazard of messing with cheat pack since x3 so :roll: Last I messed with minhull I remember I couldn't get it to stick to player ship past reload, it would work fine after you fiddle with the save and load it but as soon as you save and load it's gone.

Can't wait for station completion :P That will... allow me to make fully sufficient nonsense that otherwise requires waaaaay too many stations but mostly years of my life staring into... space. Not sure what shenanigans you are using for all this but perhaps instead of instant completion just add all the resources into build cargo and do magic with stage building timers, I'd imagine they are there... there are bloody timers for everything, could be less wonky with job assigning for new stuff, then again it would only apply to npc stations and mostly special ones like shipyards and such. Meh nvm I have no idea how it works.

Anyhoo GL. I miss old cheat menu from X3... the mod I couldn't see myself playing X3 without.
“Logic will get you from A to B. Imagination will take you everywhere.” - Albert Einstein

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Thu, 14. Apr 16, 19:50

hisazul wrote:May want to add toggle for minhull argument on selected object. People will be able to make universe traders immortal or npc patrols and all that jazz. Tho... at the same time they'll be able to break gates of all kinds and stations...
Actually I can implement safety check routines to prevent players from performing certain actions on certain objects. :) For example I can limit the invulnerability toggle to apply to ships only (object.isclass.ship), and throw an error message if the target isn't a ship.

I haven't posted an update to the mod yet, but I finished the NPC spawning scripts yesterday as well as the "Summon Existing Asset" script, both of which contain similar safety checks. For the NPC spawning script, it checks if the Skunk has any free slot in the backroom BEFORE spawning an NPC (throws a warning on the event monitor if no free slot is detected). And for the Summon Existing Asset (warps an existing ship to you), it does an object class check to make sure the selected object is a ship before warping it (if not, it throws an error and aborts/resets the rest of the script).
hisazul wrote:Can't wait for station completion :P That will... allow me to make fully sufficient nonsense that otherwise requires waaaaay too many stations but mostly years of my life staring into... space. Not sure what shenanigans you are using for all this but perhaps instead of instant completion just add all the resources into build cargo and do magic with stage building timers.
Instant-completion is actually the easier route to take (I think), as all it would take is signaling the game which sequences are completed.

The method you are suggesting will likely be more difficult (first you need to make sure the station has a CV attached, and the construction resources need to be added to the attached CV, not the station). And fudging with the construction time will likely require patching existing game asset properties (which is simple to do, but you won't be able to toggle it on and off. So if I implement faster station construction times into the mod, all stations will build faster, which isn't what I envision for this mod. i.e. cheating should be optional and only when you choose to).
Anyhoo GL. I miss old cheat menu from X3... the mod I couldn't see myself playing X3 without.
My aim is to get as close in functionality to the old cheat menu from X3, and add even more stuffs (but not include anything universe-changing). So yeah, keep your eye on this one. :)

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Thu, 14. Apr 16, 20:20

Update 4/14/16:
  • [New feature] "Summon Personnel": Partially working. NPC spawns but doesn't generate the dialogue tree properly. All NPCs are available. For NPC's that can be assigned to the Skunk (Marine Officer and Engineer), the player is presented a choice of "Work on my ship" (assigns the NPC to the Skunk and fires any previously-assigned NPC of the same type) and "Work somewhere else" (stores the NPC in the backroom and doesn't assign it).
  • [New feature] "Summon Existing Asset": Warps an existing ship you own to your current location. Includes safety check to apply action only to ships (throws an error if you selected a station).
  • [Improvement] "Summon Auxiliary Fleet" now complete. All small ships in the game are available, including exclusive Xenon, Kha'ak, and prototype PMC fighters. Fixed minor issue where the spawned ship wouldn't respond to player command until assigned to the squad (has to do with assigning a script to the pilot called "player.default").
Last edited by Simoom on Wed, 27. Apr 16, 21:14, edited 1 time in total.

hisazul
Posts: 1197
Joined: Sat, 15. Oct 11, 04:12
xr

Post by hisazul » Thu, 14. Apr 16, 21:51

Like I said I don't really know, building in TO for example is a chore since the only ships that can pass unhindered have pretty ****** cargo capacity and a nuisance to get. So I just slapped a full set of wares into the building cargo and let it do its thing... chop out the left overs later :P

Hmm safety checks are a good idea but that helps one group and annoys another... I'm not really sure which way I'd lean depending on application. I mean there is no practical value in letting people break gates... that will just break the game unless jobs that get borked by it are fixed in the background which in turn would need it's own mod and that mod can remove/break the gate... Yeah... I don't know just gotta try and see which way is less restrictive but doesn't make the function useless.

Crew addition is an excellent idea. I've had specialists not respawning for ages... then for one day they did... and next day it's back no no npc owned specialists respawning... I don't know it's weird and I'm not really amused by it.

Actually I had a question since you are doing that atm. The reason why you can't simply change lets say engineer to specialis while they are on skunk by simply changing npctype tag, is that because reference id is tied to a job/script/ai/something somewhere, when they are assigned yeah they have a job and a script tied to them even I can find that... but when on skunk I couldn't fish anything... except a log entry and page. What does "page" mean in save format... I couldn't really understand that tag because sometimes it repeats... sometimes it doesn't and it feels like there is no rhyme or reason to it.
“Logic will get you from A to B. Imagination will take you everywhere.” - Albert Einstein

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Fri, 15. Apr 16, 01:47

Hotfix 4/14/16:
  • [Bug fix] "Summon Personnel": Resolved dialogue tree issue (switched to "create_platform_actor" for all NPCs, which lets the game handle dialogue tree generation).
  • [Bug fix] "Summon Auxiliary Fleet" and "Summon Faction Patrol": Scripts tweaked so the ship's crews now show up on the ship's dockingbay properly. Also fixed minor issue with fuel cells not spawning with the ship.
  • [Improvement] "Summon Existing Asset": Tweaked script section dealing with locating the subordinates of the ship that has been summoned. The end result is the same, but the routine is now much simpler.
Last edited by Simoom on Fri, 6. May 16, 17:39, edited 2 times in total.

hisazul
Posts: 1197
Joined: Sat, 15. Oct 11, 04:12
xr

Post by hisazul » Sat, 16. Apr 16, 16:43

Any status updates on reveal and station completion functions?
“Logic will get you from A to B. Imagination will take you everywhere.” - Albert Einstein

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Sat, 16. Apr 16, 17:02

Away from home currently. :) Wil work on this more tomorrow.

User avatar
Cadius
Posts: 975
Joined: Fri, 5. Dec 08, 13:41
x3tc

Post by Cadius » Mon, 18. Apr 16, 03:55

Summon Existing Fleet has an issue where the ships that jump to you won't carry out new orders. Removing them from your squad and adding them in again seemed to fix it.

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Mon, 18. Apr 16, 06:33

Cadius wrote:Summon Existing Fleet has an issue where the ships that jump to you won't carry out new orders. Removing them from your squad and adding them in again seemed to fix it.
The cause is the "player.default" script, which gets cancelled when the captain is issued the "move.jump" order by the script. The player.default script gets triggered again if you add the ship to your squad, yeah.

It'll be easy to fix, simply need to attach a line at the end of the script to make the pilot/captain run player.default. :) Thanks for catching it, i'll patch it for the next update.

naisha
Posts: 194
Joined: Sat, 11. Oct 08, 11:21
x3ap

Post by naisha » Mon, 18. Apr 16, 08:30

Cool mod but ill wait for the Reveal Galaxy option :)

User avatar
Simoom
Posts: 1100
Joined: Sat, 30. Oct 10, 14:14
x4

Post by Simoom » Tue, 19. Apr 16, 15:26

MAJOR UPDATE 4/19/16:
  • [New feature] "Grant Wealth": Adds money to the player's account. 6 dialogue options for how much money to add.
  • [New feature] "Grant Fame": Set player relation to any faction in the game to allied (+30), neutral (0), or enemy (-30).
  • [New feature] "Grant Treasures": Spawns a chosen treasure into the player's inventory. Choose from Kha'ak Relic Collection, Ancient Relic Collection, Spacefly Egg Collection, and Rare Engine.
  • [New feature] Immortality: God mode for the Skunk. Toggleable. Can be used to gain unlimited boost (shield will not drain).
  • [New feature] Reveal Galaxy -> Unlock Galaxy Map: Reveals all undiscovered zones.
  • [New feature] Reveal Galaxy -> Unlock Stations Information: Fully unlocks all stations (showing 100% scanned) galaxy-wide. Please note that this script is calculation-heavy and will freeze your game briefly.
  • [New feature] Civil War Behavior: Changes hostility setting between HOA/PMC and TU/UA,CAR. Toggleable.
  • [Improvement] Summon Auxiliary Fleet: Script completely re-written to utilize convparam. Script length reduced from ~17000 lines to ~400 lines.
  • [Improvement] Ship Configuration: Script completely re-written to utilize convparam. Script length reduced from ~1400 lines to ~200 lines.
  • [Bug fix] Summon Existing Asset: Summoned ship will now respond to player commands without having to be added to squad first.
  • [Bug fix] Summon Faction Patrol: Corrected number of drones spawned with the ships.
  • [Bug fix] "Ship Configuration > Add Drones": Drones are now docked properly when spawned, and will actually work when commanded.
  • [Improvement] "Summon Auxiliary Fleet": Minor tweak to the default post-spawn behavior of Zepp and UFO. The pilot of these two specific ships will now idle by default (fly around the zone randomly), since idle command cannot be issued by the player currently, and these two ships can't perform any other action.
  • [Improvement] Various tweaks, bug fixes, and event monitor feedback improvement.
Last edited by Simoom on Fri, 6. May 16, 17:39, edited 2 times in total.

hisazul
Posts: 1197
Joined: Sat, 15. Oct 11, 04:12
xr

Post by hisazul » Tue, 19. Apr 16, 18:04

Big update I see. Good stuff. Tho I'll still wait on station completion.

Is the level 6 scan persistent or temporary in terms of things that get destroyed etc. What about npc stations that got wrecked and personnel was asked politely to gtfo? I noticed that when it comes to friendly stations once they are scanned, map treats it as full scan permanently even if modules were blown up and they are not scanned anymore in station info.

I'm guessing you keeping things like adding TA and wares till the very end due to it being a.... mindless exercise in writing same thing over and over and over again until heads explode? Tho I guess galaxy wide TA isn't even needed as long as you get targeted addition.
“Logic will get you from A to B. Imagination will take you everywhere.” - Albert Einstein

Post Reply

Return to “X Rebirth - Scripts and Modding”