emd4600 / spore-modapi Goto Github PK
View Code? Open in Web Editor NEWA C++ library that allows you to create advanced mods for Spore (user interface, shaders,...)
Home Page: https://emd4600.github.io/Spore-ModAPI
A C++ library that allows you to create advanced mods for Spore (user interface, shaders,...)
Home Page: https://emd4600.github.io/Spore-ModAPI
Sorry if i disapointed you but my version of Spore didn't work
If you can fix this bug please, i will be graceful
Have a nice day.
When a creature's health reaches 0, it doesn't properly die - it triggers the death animation and stops moving, but hovering over it with the mouse still shows its name and Spore doesn't class it as "dead" - it doesn't contribute to the Kill goal in adventures.
I've had an idea with loading into adventures through the creature stage to make fake caves, though that would require a function to load into an adventure.
As in title.
It seems currently only CellStage has defined GameInput variable. Access to that in gamemodes should remove the need to create own unnecessary GameInput listeners.
I made a mod awhile ago which enables custom icons for space stage:
https://github.com/plencka/Spore-ToolImageEnforcer
By default, game handles them like this:
spaceToolImageID
space tool property, it corresponds to image .png name.spaceToolImageID
as controlID. Use default window if not found.What this mod does:
ufotools~
folder and stores them in new manager. Ignores images that are in the base game to not make duplicates.The mod developer only has to add .png file and use that image in space tool. It also works in older mods which attempted to add new icons.
I'd like this mod to be integrated into Core ModAPI DLLs, because a lot of people don't install dependencies and then are surprised that the mod doesn't work.
What could be done to improve it:
Maybe detect when 0x46fed9c8.spui gets loaded, and load all custom windows directly into it? This way you don't have to have detours of functions FindWindowByID
and SetActiveModeByName
. And window destruction is also handled by base game.
I tried doing that with UILayout::Load, but I was told to.. not do this. Maybe it was lack of context and this might be the correct solution?
I'll make Pull Request with these changes in my mod repository and if you think it's better solution, inform me.
Creatures get stunned after they get hit by the Charge ability - and if I recall correctly, they use animation ID 0x02481E14
(in 0x142CBA20.tlsa
).
Simply just playing this animation doesn't stun the creature, there must be something else needed as well.
Various different variables seem to be missing from Spore\Editors\EditorRigblock.h
, including the variable for a part's current parent.
I'm currently trying to stop parts that aren't the spine from becoming parentless, but I can't because the variable is missing.
Hello.
I happen to have the GOG version of Spore. I have recently installed the new update and it told me that the Spore version is not supported with SporeLauncher anymore.
Said function(s) interacts with 0x40C0C100!base.soundProp
and together seem to be factoring in what kind of voice a creature has depending on their mouth/model type (and based on conditions within the function itself).
For tribal creatures and NPCs in the adventure editor, their voice is determined by a string key mouthType
that can be found as a value in their mouth parts.
For civilization, space creatures and captains, their voice is determined by default through the property 0x0B65639D
, which while looking through the function in disassembly seemed to be fixed. By default, the property 0x0B65639D
has the string value "MamA"
, which corresponds to the mammal sentient creature voice.
EDIT: As an added detail, the function is called whenever a creature needs to load a voice file, so it is possibly related to the Audio
namespace and the AudioSystem
class.
Originally asked by user cce, who wants custom star types to count for the sightseer badge. For that, we need:
cBadgeManager
SpaceTrading
functionsGameSpace_SwitchToStarSystemContext
(0xFDDC80
), detourableAFAIK, the CombatManager is what handles combat, and it'd be pretty useful for custom space tools. (and also custom creature abilities, though that requires a bunch of loopholes to get working)
With any currently unavailable features through the master branch, I'd like to see a preview of them in a different branch than master, to anticipate on what is going to be added next and such, even if the features aren't fully functional yet.
It seems Social Inventory loads icons faster than Overrider injects windows into the UI.
It's possible it's executed during UI::SpaceGameUI::Load()
, so injecting after that function is called results in that behavior.
One solution might be injecting icons directly after SPUI with these icons gets loaded.
I need to detour both the function for the hardcoded Mini-U and the function that destroys colonies when there are too many on a planet to be sustainable for a mod, but I don't think either are in the Spore ModAPI Development Kit yet.
Loking for help with the spore ModApi Launcher, i have been installing mods and until now it was working, but now it says i have a Steam version, which is not true, it was working perfectly. Can anybody help???
This line, taken straight from the tutorial pages:
auto inventory = SimulatorSpaceGame.GetPlayerInventory();
Causes a linker error:
Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol "__declspec(dllimport) unsigned int const Simulator::cSimPlanetHighLOD_addresses::DestroyCity" (__imp_?DestroyCity@cSimPlanetHighLOD_addresses@Simulator@@3IB) referenced in function "public: void __thiscall Simulator::cSimPlanetHighLOD::DestroyCity(class Simulator::cCity *,unsigned int)" (?DestroyCity@cSimPlanetHighLOD@Simulator@@QAEXPAVcCity@2@I@Z) SpaceToolCheat C:\PaccasStuff\SporeCMods\Projects\SpaceToolCheat\SpaceToolCheat\SpaceToolCheat\SporeModAPIBase.lib(SimulatorSpaceGame.obj) 1
This line is the sole cause. Commenting it out fixes the issue, placing it in a blank mod brings it back. Mod compiles just fine without this one line.
My request is simple. Find a method that returns an active adventure's Spore point amount, and a method that tallies them and adds them to the player captain's Spore points.
Decompiled with Ghidra version 10.2.3
FUN_005fbb90.txt
FUN_005fc3c0.txt
FUN_0057c590.txt
FUN_0057ea30.txt
FUN_005634b0.txt
FUN_005802F0.txt
FUN_006160c0.txt
FUN_006161e0.txt
FUN_005f8b60.txt
FUN_005f99b0.txt
FUN_005fa320.txt
Addresses are from the March 2017 version of Spore.
Spore/Editors/Editor.h attempts to include this file, and therefor nothing can compile.
I'd like to request the ability to be able to create and write to a .package file using the Spore-ModAPI
e.g. editorEnabledManipulators
in some property lists found in editor_setup~
I've been messing with space tools in the SDK recently and have noticed a few issues.
So there's a few things I think would be nice for the .sporemod format in general, one being the ability to auto update mods (or at the least a notification that your mods are out of date), the other is lightweight installers, aka allow mods that are in parts to download only the parts they need when installing (so that dark injection doesn't have to be a 1.1 gb download every time you want to update it even if you only use less then half of it)
Here is the image https://prnt.sc/wIlG_HA6qpQz thanks for reading
And I've found the line of code causing this:
Perhaps adding the missing % would fix this?
I'm trying to implement custom abilities through animation messages, but I can't find the target of the creature that triggers the message. For some reason, cCombatant::GetTarget()
doesn't work for creatures.
unresolved external symbol "__declspec(dllimport) unsigned int const Clock_addresses::Pause" (__imp_?Pause@Clock_addresses@@3IB)
Currently the Clock
class in the SDK doesn't seem to be able to support adding or removing time from its instances, since the related members (mStartTime
and mAccumulatedTime
) are protected and thus only modifiable by the class methods themselves. Either making them public or adding methods to add/reduce time would be ideal.
I'm working on a hut editor mod for Spore and there just doesn't seem to be a way to change the player's hut.
It's done already by Spore whenever your hut levels up, but it always switches to specific models in the editor_rigblocks~ folder and there doesn't seem to be a way to do this manually yet with mods.
dosent start up it says tell robo or somet
Many of the SPUIs in-game can be easily modified through props and other files in SporeModder FX, however some of the SPUIs functions seem to be hard-coded. The best example for this would be the file named SPGMissionCard.spui, for which strings and look can be easily modifed, but ex. modifying how many instances of this SPUI can appear on the screen is impossible at the moment. Also, the same .spui is used for tracking space stage badges, but functionality for those seems to be completely hard-coded.
In image below I simply swapped the textures to confirm the same .spui is used for both missions and badges, but that's as far as I could go in SporeModderFX besides moving pieces around and what-not.
As it currently stands, the only addresses so far defined for these two classes (or at least for those related to it in the same namespace) are for the Get()
function in the IAnimManager
class. For animation and other creature-related detours, it would be nice to have reference to those addresses when making mods related to animations among other things.
I appeal to you as a competent person who is well versed with the mods and the technical part of the Spore game, could you make it so that the ModAPI Launcher no longer requires an Internet connection to run the game with it, so that it works offline mode?
Many creators with mods in Spore from various countries are interested in this issue, who could at least try to figure it out.
It just turns out such a problem that without the Internet, the game with ModAPI requires a connection to read the mods and does not start, and you can only start it through the emergency mod testing mode in Sporemodder FX.
And even then, half of the mods that work with ModAPI will stop being read and work, and creations will be distorted to the level of those that could be created with mods that can work without ModAPI - for example, parts of Pandora Toolbox and of Drone Parts, enlarged with UPE, and distort creations, are compressed and creatures made with Drone parts turn into a bunch of cubes scattered across fantastic planes
This is corrected by reupload PNG, if you go into a regular game with ModAPI, but if you upload it to a game launched in this way bypassing ModAPI, then again the creations are displayed as distorted
And when the Internet comes off for technical reasons or there is no way to use it, I want to be able to continue playing Spore as with mods that did not require ModAPI, which asks for an Internet connection to start the game.
This is a very serious shortcoming of the ModAPI launcher and the .sporemod system files, because before it was just a .package that I threw into a folder and it will always work
Went offline - The whole game will be impossible to start.
So, I don't want to launch everything in an emergency way through testing mods in Sporemodder FX, and then align and redo all the creations distorted by the fact that UPE stopped working.
I still hope that in the next versions of ModAPI they will wean off the Internet connection to run the game (not to update the client, the Internet is required to update the client)
Best regards, JimReinor, one of the mod creators from the Russian language mod creator site Spore.cr
Hi im using a legal copy con Spore and Spore GA. When i start both spore without SporeModApi launcher i can use the console cheat normally. But when i start spore trough SporeModApi launcher i can't use the cheat console, it doesnt appear.
Im not using any type of mods
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.