Home - MetaIdea/SageMetaTool GitHub Wiki
Welcome to the SageMetaTool (SMT) wiki!
FAQ:
Usage and Installation:
You have 3 options with the new smt launcher:
- Open SageMetaTool.exe from anywhere to open the launcher gui that displays all sage games supported and found in the windows registry. Choosing a button will start and hook the game automatically.
- Start SageMetaTool with a command line parameter specifiyng the game's exe path. Optional parameters can be added.
- Place SageMetaTool.exe into the game folder and start it. It auto detects the game and starts it directly without showing the launche gui. (currently not working for all games)
Start with mods:
Example Tiberium Wars: Make a shortcut of SageMetaTool.exe and add the folllowing to it as start parameter -modConfig "C:\Users\YourUsername\Documents\Command & Conquer 3 Tiberium Wars\Mods\TiberiumEssence\TiberiumEssence_1.6.skudef"
Example BFME2: -mod "C:\Program Files (x86)\EA Games\AOTR7.0\aotr"
Then start the SageMetaTool shortcut and select the game.
(in some cases mods are available in the mod tab without any need for start parameters)
Troubleshooting:
- Disable CNC Online Hook since it might conflict with SageMetaTool which already has CNC Online integrated
- Disable Reshade. If you have the KW 4K Patch uncheck the reshade checkbox during install
- It's worth trying to copy SageMetaTool to the game folder and start it from there. It will autodetect the game in this case.
- Run SageMetaTool as administrator
- Disable Anti Virus (in some cases might stop the hooking mechanism unfortunately)
- In some cases the game runs fps uncapped with 120+ fps. In this cases limit the game to 60 fps in your nvidia etc. options. This is important for proper game speed experience. Someone with this issue also had to set his refresh rate from 144hz to 60hz
- If it's still just not working use the recommended binary pack aka smt compatibility patch linked in the SMT download pack.
- Start the game with SageMetaTool several times. Sometimes windows caching interferes here trying multple times might fix it. Try at least 5 times.
- If you use CNC Online - disable CNC Online Hook - SMT comes with CNC Online integrated
- In case of cnczh put this file into your zero hour game folder. It should be created automatically but on some systems it fails to create it.
- Otherwise contact me on the insider discord (best support).
- If you use windows 7 or older the tool probably won't work because XInput 1.4 is missing. You can try to add it manually by adding this dll file into your temp folder (C:\Users\YourUsername\AppData\Local\Temp) and the folder where there SageMetaTool executable resides. (Unknown if this can fix it)
If SMT initializes correctly you should always see these two buttons in the top right corner when ingame:
Also 60 fps and unlimited zoom should always be active automatically.
What game versions does it support currently ?
The list is continuously expanding but so far all C&C steam versions are supported, C&C zero hour retail 1.04 nocd, and BFME2 and Expansion nocd versions (which most people use). Also BFME1 nocd and CNC4 all version are supported for most parts (still WIP). The old securom protected retail versions (CD/DVD) won't ever get support.
I use a specific game version not supported, can I still use the tool ?
Maybe, no guarantee yet ! A recommended game binary pack is available too. You just need to add these to your game folder which ensures compatibility with SMT in case of currently unsupported game versions.
What are the useable hotkeys ?
INSERT key - activates meta control ingame menu DELETE key - activates first person mode when a unit is selected or free camera mode M key - Hide ingame buttons and skirmish setup extra menu
Does the Launcher support start parameters ?
Yes each of the 3 start variants support command ine parameter pass on. SMT deals as a relay to feed the gamne with the respective options.
Does SMT work with mods ?
Edit December 2022: SMT now has a integrated mod launcher which detects all your Tiberium Wars, Kane's Wrath, Red Alert 3 and Red Alert 3 Uprising plus Age of the Ring mods.
Mostly yes (no guarantee) mods are partially supported. If you use ROTWK mods like Age of the Ring make a shortcut of SageMetaTool.exe and add something like this to the end of the path: ...\SageMetaTool.exe "Path to lotrbfme2ep1.exe with quotation marks" -mod "Path to ...\AOTR7.0\aotr with quotation marks" Getting mods like generals evolution working can be tricky but someone did it. For more infos on that use the meta idea insider discord.
Where does SMT store the gamemode scripts ?
Currently SMT uses the following path C:\Users\YourUsername\Documents\Meta Gamemodes as well as configs and mods can be found in Meta\Scripts. In Meta\Scripts\SDK you can find usefull files to create and debug new SMT gamemodes/configs/mods.
All these folders get created on first start with SMT.
Can I create and use my own scripts ?
Yes absolutely ! Just place them into the Meta\Scripts folder as well and SMT will detect and display them in the SMT skirmish setup extra menu list.
Do the gamemode script and configs work on any map ?
Yes this is a major design decision to have universal scripts that work on any map either official or custom and in most cases even among different sage era games. This way we don't have interesting new gamemodes and logics locked in into a single custom map anymore.
Is it possible to make map depenedent smt scripts and ship them with the map ?
Yes this (local single map scripts) is a supported scenario. You just need to place the script file into the map folder. SMT will load this file when starting this specific map.
Can I use all the new script actions and conditions that SMT introduces for it's script system also use in world builder and add them to the map file for generals zero hour ?
No this would require to change/extend large parts of the script action facilities the game uses and it would require to also change world builders internal logic and it's GUI. The SMT scripting system is designed to be far superior to the regular map scripting system. It allows to use every map script and condition plus a lot more so ultimately it is either a replacement or a extension to your regular map scripting. If you go the extension way you can also use a communication bridge between your map scripts and smt lua scripts but smt scripting is much more flexible allowing huge mass scripting for generals zero hour for the first time ever.
Is there also a global always enabled script file location for zero hour like in later sage games that use the script.lua file ?
Yes just place a scripts.lua file into this folder: ZeroHourGameFolder\Data\Scripts\scripts.lua
But if I use smt scripts to extend my maps, people using these maps will always depend on SMT ?
Yes but that would also be the case if we implement new scripting functionalities natively into world builder and the game binary. So either way the user would need a new dependency. The advantage with SMT is that it can exist non invasesively next to your game installation without altering anything on your game files. You can always choose to play vanilla using the regular game binary instead of SageMetaTool.exe.
What languages are useable for the SMT gamemodes/configs/mods ?
Lua 4.0.1 is used for compatibility reasons with vanilla sage lua engine. For ini based sage games you can also use mapini code within these scripts even in companion with lua code (hybrid script).
How does SMT hook/inject into the game ?
SMT launcher -> Open game launcher in suspened state -> Remote thread Dll injection -> Game launcher hook -> Open game in suspened state -> Game hook/signature scans/function detours -> D3D EndScene Hook via dummy device -> ImGui
So in essence it works via remote thread dll injection with LoadLibrary into a suspended state of the next hook process. After injection the process will be set to a resume state. This way we can ensure no code has been executed in the hooked process before we inject and run our hooks.
How does the 60 fps engine proper gamespeed fix work exactly ?
Implementation strongly depends on the sage game era. To achieve proper gamespeed it uses if possible engine scalar float and double values and scales them accordingly. Depending on the game smt scales multiple values for animation speed, movement speed, visual shader speed, build speed and so on. For ini based sage era games we also use dynamic single value scale up/down logic replacing thousands of values automatically with proeprly scaled ones when the engine parses the inis.
How do you prevent multiplayer abuse ?
SMT disables all advantagous features when in multiplayer. There is a special "X" button in the game setup menu which disables all SMT features except 60 fps and zoom.
How does SMT ensure compatibility among different version ? Can I use legacy game versions ?
SMT uses advanced signature scan methods to find the game values and functions it depends on. That way the chances are very high it also works on old legacy versions or different binaries as well as steam/origin/retail versions.
Is meta mod known from C&C TW/KW and BFMEII ROTWK part of SMT ?
The entire lua framework (over 10.000 lines of code) used by Meta Mod is part of SMT as well. Accessing the meta control menu is possible via the dev checkmark in the new ingame menu. It has not been tested intensiely and is just provided as a little extra because it provides some unique features like a game sound track and video player and some other hundreds of options. All these would ideally become part of the new gui menu one by one in the future.
When will a stable Version 1.0 release for the public ?
First off SMT is still in early development. It is a one person project and I have invested hundreds of hours of my lifetime into this project and sacrificied my freetime. It is probably the largest scaled sage engine project ever attempted with the intend to support all 10 sage C&C and BFME games. It's really hard to give a timeframe but I'm giving my best to reach 1.0.
Does the tool comply with the EA policies and guidelines for modding or is there a copyright problem for electronic arts ?
No there is definitely no copyright infringement because SageMetaTool doesn't use any assets or code from EA. It is the same principle like a accessory for a car. E.g. a smartphone holder that fits perfectly into your individual car and matches the form of the interior position where it attaches. No car manufacturer could complain just because it fits perfectly into the car interior and extends the cars functionality in a non invasive way. SageMetaTool is very similiar and enhances sage engine games because it fits perfectly onto the games code extending it and nothing more.
Also the tool is free to use for everyone and the source code will also be released at some point on github as well (and parially is already). Support via donations/patreon is completely optional.
The tool also complies with the policies and modding guidelines from EA as stated here which is also confirmed by EA's CNC community council member CCHyper.
All code (scripts) remotely related to EA's sage engine is publicly and freely available on this github repository. The rest of SageMetaTool except third party libraries is 100% based on my own work and can be considered as a general DirectX9/ImGui framework with a custom memory edit lib which could work for any DX9 game.
What further features are planned for SMT ?
Anything I state in this paragraph is volatile and could change at any point in time but beside general development and improvement SMT could become the following features:
- Extended AI control ingame menu.
- All the hundreds of menu options the old MetaMod provided, like a music control menu, video selector (basically a sandbox menu to access all the game contents)
- Base/Building placement template system to save and auto rebuild your perfect base designs.
- Procedural dynamic mission system.
- Higher player limit (e.g 16 players on one map)
- Diplomacy menu and system including tribute and ressource sharing mode
- Dynamic and prodedurally generated maps, very large maps 10 times larger than regular max size, long lasting conquer games on these large maps you can play for months with one savegame, build support bases, expand etc.
- Random maps.