EarthExtensions
EarthExtensions
EarthTmpExtensions is a module for The Moon Project and Lost Souls, which fixes some bugs and adds some clientside improvements. It requires a module loader (shipped with TMP/LS 2.1.1 and 2.2.1 patches) to work.
Download
The latest version of The Moon Project and Lost Souls community patches include 2.1.3 version of this module.
The most recent version (2.2.0) can be downloaded separately from here.
.ini Template Download (Right Click > "Save as")
Features
- significant FPS improvement due to rendering optimizations (Direct3D only)
- large resolutions adjustments - smaller sidepanel and compass
- almost everything is configurable
- fully client-side (you can use it in MP games without the need of other players having it as well)
- smooth camera zooming
- custom FPS settings
- game options adjustments:
- increased maximum configurable map scroll speed
- increased maximum camera zoom in game preferences (no need to type command for large max zoom, you can set large values in options now)
- disabled performance warning for larger max zoom values
- reduced gui refresh lag for given orders (green layer, ie. move markers etc refresh rate)
- added new singleplayer commands:
- `Ieo.Ping` - dummy test command
- `Ieo.LoadObjects - command dedicated to editor, it takes a filename as parameter, reads its contents and applies line by line as if they were typed in CreateIFF/NewOne commands. Sample file that loads a 100 JaguarHP vs 100 JaguarHP boxed battle arena. Each line is:
<x>, <y>, <owner>, <rotation 0-255> <object in the same format as NEWONE, you can build it with https://earth.sixty-four.de/?menu=nom >
- added chat channel prefix (All/Team/Neutral/Direct) in multiplayer games
- display LC power range
- extened Solar Power Plant and Mine binds, so that they build Xyrex or Upg. Mine (if researched)
- auto clear and archive Scripts and Temp directories
- scrollable enhancements
- added mouse wheel support for scrolling up/down the research tree
- added mouse wheel support for scrolling up/down the research center (the basic view with 4 tabs)
- added mouse wheel support for side panels, like builder's production options or fabs production queues
- added mouse wheel support for bottom panel, like list of buildings, or LC's construction tab
- added mouse wheel support for chassis/weapon/shield (although shield is never scrollable) selection in Constructor menu (F1)
- added mouse wheel support for panel with saved units template in Constructor menu (F1)
- added mouse wheel support for weapon/shield (although shield is never scrollable) selection in Building weapons menu (F3)
- added mouse wheel support for panel with list of buildings in Building weapons menu (F3)
- added keyboard arrows support for scrolling up/down/left/right the research tree
- added keyboard arrows support for scrolling up/down the research center (the basic view with 4 tabs)
- completed/next research notifications
- allow mouse wheel zooming inversion (disabled by default)
- prevent cancellation of recording mode by dragging mouse (accidental queue cancellation)
- added custom building icons - configurable: ON (always on)/OFF (always off)/HOTKEY (shown on held ALT)
- idle/snooze icons for buildings if they are not in working state (all factories, mines, research centers, loaded MDWs)
- progress icons for all ongoing productions, researches, charging of MDWs and LC batteries (shown with ALT key by default)
- extended selection info for batteries and MDW structures
- enabled selection info for allied structures
- extended allied structures' selection info by current money (for mine and refinery) and current research (for research center)
- extended game crash logging
- desync detection for multiplayer games
- fixed FPS calculation on some intel CPUs (the `display.show 1` command)
- adjusted AnimButton/MeshButton rotation speed to the Desired FPS (fix for fast spinning blueprints)
- increased max game speed for single player (up to 1150%, default was 150%)
- change speed messages display the current speed in %
- added `/shrug/`, `/tableflip` and `/unflip` chat emojis known from Discord
- new hotkeys/shortcuts (replacing "Select platoon" shortcuts in game options):
- toggle building power
- sell building
- select next idle builder
- select next idle mining unit (Taiga/Harvester)
- demo/replay recording of multiplayer games (no playback yet)
- stats recording - every multiplayer and skirmish game generates a stats file that can be later viewed in the stats viewer app
- extended logging - each crash goes to a separate file, more info is logged, screenshot is taken (if possible)
- Discord integration - Discord now correctly detects the game without need to manually select exe etc. Discord status displays more details about your in-game actions
- join lobby messages - when a player joins lobby, a message gets displayed, along with random seed of the player. Players with different random seed will most likely cause a desynchronisation, so it is a way to spot it early.
- enabled starting multiplayer games without any other players or even AIs. That way you can train in MP mode (there are small differences), or even record demos of your solo games (since they are technically multiplayer games).
- minimap is refreshed every frame what makes it look much smoother
- editor GUI enhancements - larger brushes for texturing/terrain modification
- new mass production queue button available from within Constructor panel
Configuration
Mod can be configured by providing an .ini file. The file is optional, and should be created only if you wish to override some of the default settings. These are the configurable options available in the latest version:
Field | Value type | Default | Description |
---|---|---|---|
LogLevel | One of the following:
|
INFO | Amount of logging that gets into .log file |
Widescreen adjustments | |||
OverrideSidePanelWidthFactor | 0/1 | 1 | If side panel width should be adjusted |
SidePanelWidthFactor | Integer | 144 | Side panel width
Default for 16:9 is 240. For 1920x1080, and value of $bottomPanelHeightFactor == 180, 160 is the highest value that displays 4 buildings/units vertically in the side panel. You won't get 5 boxes unless you minimize bottom panel |
OverrideBottomPanelWidthFactor | 0/1 | 1 | If bottom panel width should be adjusted |
BottomPanelWidthFactor | Integer | 180 | Bottom panel width
Default for 16:9 is 180 138 is the lowest value for 1920x1080 that allows 3 buttons vertically in the bottom panel 180 is the lowest value for 1920x1080 that allows 4 buttons vertically in the bottom panel |
OverrideCompassSize | 0/1 | 1 | If compass size should be adjusted |
CompassSize | Integer | 80 | Desired compass size |
EarthquakeEffectMultiplier | Decimal | 0.5 | Camera shake effect during explosions/earthquakes multiplier |
DesiredFps | Integer | 120 | DesiredFps |
Smooth zooming | |||
EnableSmoothZooming | 0/1 | 1 | If "smooth zooming" feature should be enabled |
ZoomTime | Integer | 300 | Zoom speed factor. Smaller value = faster zooming. |
InvertScrollZooming | 0/1 | 0 | Invert default mouse wheel zoom behaviour |
D3D rendering optimizations (advanced) | |||
EnableTerrainRenderingOptimization | 0/1 | 1 | Enables terrain rendering optimizations |
EnableWaterRenderingOptimization | 0/1 | 1 | Enables water rendering optimizations |
EnableWaterGreenOverlayRenderingOptimization | 0/1 | 1 | Enables water green overlay rendering optimizations |
EnableShadowRenderingOptimization | 0/1 | 1 | Enables shadow rendering optimizations |
EnableMeshRenderingOptimization | 0/1 | 1 | Enables mesh rendering optimizations |
ShadowRenderThreshold | Decimal | 50.0 | The fines camera zoom at which shadows stop biong rendered (for performance reasons) |
GroundRenderBufferSize | Integer | 150 | Buffer sizes. Do not modify unless you know what you are doing |
NavMeshRenderBufferSize | Integer | 10000 | |
GreenOverlayRenderBufferSize | Integer | 10000 | |
ResourcesRenderBufferSize | Integer | 10000 | |
WaterRenderBufferSize | Integer | 150 | |
WaterGreenOverlayRenderBufferSize | Integer | 10000 | |
ShadowRenderBufferSize | Integer | 100 | |
MeshRenderBufferSize | Integer | 150 | |
Other | |||
ReduceInputLag | 0/1 | 0 | Experimental. Disabled by default, attempts to reduce GUI refresh lag. |
UpgradeKeybinfs | 0/1 | 1 | Replace select platoon hotkeys with more useful ones. |
UpgradeLcBuildingBinds | 0/1 | 1 | Replace hotkeys for Solar Power Plant with Xyrex and Mine with Upg Mine (if researched) |
DisplayLcPowerRange | 0/1 | 1 | Display power range for LC (just like it gets displayed for ED/UCS with F9 by default) |
AutoClearTempFiles | 0/1 | 1 | Auto clear Temp directory |
ArchiveClearedTempFiles | 0/1 | 1 | If Temp directory is cleared, archive files into a separate Archive directory |
AutoClearScriptFiles | 0/1 | 1 | Auto clear Scripts directory |
ArchiveClearedScriptFiles | 0/1 | 1 | If Scripts directory is cleared, archive files into a separate Archive directory |
EnableScrollableEnhancements | 0/1 | 1 | Enable scroll events handling for GUI panels |
EnableResearchNotifications | 0/1 | 1 | Enable notifications for completed/pending research |
IdleIconsMode | One of the following:
|
ON | Idle icons display mode |
ProgressIconsMode | One of the following:
|
HOTKEY | Progress icons display mode |
PreventMouseDragInRecordMode | 0/1 | 1 | Disable recording mode cancellation by dragging mouse |
Example configuration
Let's say you want to make shadows disappear at larger height (135.0) that they currently do. You also use other resolution than 1920x1080, and the side panel and compass are too large for you (you would like them to be 2 times smaller). To configure it, you will need to create EarthTmpExtensions.ini file next to your EarthTmpExtensions.ieo. There is no need to put all the values from the table above, as game will use defaults anyway. The content of the file should be as follows:
DesiredFps = 120 ShadowRenderThreshold = 135.0 CompassSize = 40 SidePanelWidthFactor = 72
Commands
IEO.LoadObjects
IEO.LoadObjects enables you to load predefined objects into a level.
Proccess
- enable cheats first (cheater in console)
- Issue the following command "IEO.LoadObjects filename.xxx"
- for example IEO.LoadObjects tb10o.txt).
Example
Here is sample file (tb10o.txt) which generates 100 Jaguar hP vs 100 Jaguar hP arena to give you an example of usage.
Notes:
- objects will load only if there is a starting point of their owner placed on the level.
- each line is: <x>, <y>, <owner>, <rotation 0-255> <object in the same format as NEWONE, you can build it with https://sixty-four.de/msc-web/earth/index.php?menu=nom the site contains only units, but you can place buildings in the same manner.
- if you want your mind to explode you can place rotated buildings (but they are reset upon save/reload)
IEO.Ping
IEO.Ping (does nothing, returns "Pong" message :P)