exorstudios / riftbreaker-tools

Modding and content creation tools for The Riftbreaker. Extract the contents of the archive to the root folder of the game.
22 stars 0 forks source link

- Big wishlist for modding - #119

Closed SenorRagequit closed 2 years ago

SenorRagequit commented 2 years ago

Wishlist

This issue is intended to be a wishlist of general modding capabilities - it will be handled like an ongoing topic, where every new wish gets added in the comments below.

⛔ Don't add bugs or feature requests for the Exor tools here, submit a normal issue instead ⛔

Template ✔

Wish: [What do you wish for? Add an example if possible] Why: [Why should it be available?]

SenorRagequit commented 2 years ago

Wish Something like "MinimapService" where we are able to control the minimap. Examples: 1) MinimapService:GetCoordinates(Mouseclick) 2) MinimapService:SpotIsRevealed(position.x, position.y, position.y or Mouseclick) 3) MinimapService:SpotWasRevealed(position.x, position.y, position.y or Mouseclick) 4) MinimapService:StartShowAreaOnCursor(Color, Radius) 5) MinimapService:StopShowAreaOnCursor(Color, Radius) 6) Move PlayerService:ShowBigMinimap() to MinimapService 7) MinimapService:GetPositionStatus(position.x, position.y, position.y or Mouseclick) 8) MinimapService:CloseBigMinimap() 9) MinimapService:GetBigMinimapStatus()

Explanation: 1) The big minimap comes up and the player has to click on a spot. The game then translates the clicked spot on the big minimap to game world coordinates and send them back. 2) Gives back a Bool if the spot on the minimap is currently revealed (Like a tower than can see that spot) 3) Gives back a Bool if the spot on the minimap was revealed before (So the minimap isn't dark/unknown but had that light grey color where you can still see rocks etc but no enemies / live feed) 4) When the big minimap comes up, the mouse cursor has like an AoE indicator around it, which has the size of the real world radius. Like, imagine a nuke with a DMG radius of 30. The circle around the cursor on the minimap would then show it in that size, so the player knows where to shoot it, based on that radius he can see around his mouse cursor. So the radius should reflect the real world value. 5) Same as 4, just stop and not start 6) Obvious 7) Gives back a status of the position the player has clicked. I thought about blocked/not blocked, similar to what the cheat_minimap_teleport_on_click shows in red/green. 8) Closes the big minimap 9) Gives back if the big minimap is currently active or not

Why We don't have anything even close to this currently available. And the cheat Łukas created with "cheat_minimap_teleport_on_click" shows how creative it can be used.

Not everything might be necessary as it can also be created with events or w/e, but I just thought on top of my head of all the things that might be necessary.

SenorRagequit commented 2 years ago

Wish An explanation how the StateMachine works. Examples:

  1. What does > from="*" < mean?
  2. In the code itself, some functions have inside the brackets "( state, dt )" what does dt mean?

Why Would help to understand the text. Can then be added to the wiki for everyone to read.

📣📣 @lukaasm 📣📣

from = "*" does nothing, in some scripts its just leftover from x-morph times dt is a delta time in seconds, the time that elapsed from the last enter/update call

SenorRagequit commented 2 years ago

Wish Some way to change the player model to something very different. Examples:

  1. Play as a rock
  2. Play as a canoptrix
  3. Play as a wall

I don't mean like, change model and still have Riggs guns etc. But being able to change to a f.e canoptrix model and move around. If possible, connect the attack animation trigger with the left mouse button, but that's more of a final step. Primarily, being even able to change the model and move around would be great.

Why If co-op comes, it could offer a way to create a prop hunt gamemode. PROPHUNT EXPLAINED Soooo many games and communities added a prop hunt gamemode at some point since it's such a chill and awesome gamemode, even most call of duty games got this gamemode because people love it so much with friends. Additionally, this feature can be used to create missions where Ashley uses some Rift Technology stealth tech and can pretend to be some enemy to get into their base etc. Lots of possibilities!

lukaasm commented 2 years ago

Wish An explanation how the StateMachine works. Examples:

  1. What does > from="*" < mean?
  2. In the code itself, some functions have inside the brackets "( state, dt )" what does dt mean?

Why Would help to understand the text. Can then be added to the wiki for everyone to read.

from = "*" does nothing, in some scripts its just leftover from x-morph times dt is a delta time in seconds, the time that elapsed from the last enter/update call

SenorRagequit commented 2 years ago

Wish A way to use "LogService:DebugText" better in code. It does not support any kind of duration at the moment. You would need to create a state for it to appear for that duration. Example: Change it from LogService:DebugText( 600, 350, self.text, "debug_white_size_38" ) to LogService:DebugText( 600, 350, duration, self.text, "debug_white_size_38" )

Why It's pretty much the only way we can create some text on the player frontend for them to see.

SenorRagequit commented 2 years ago

Wish A way to reload the modding folder (while in the main menu). Example: I make a LUA file, it doesn't work. I get back to the main menu, I edit the LUA, I enter a command like debug_reload_mods or whatever and it reloads the mods folder. Now I can back into the game again.

Why As far as I know, currently you can only restart the whole game if something (besides entity files) have been changed. Like this, LUA modding is really time-consuming unfriendly.

SenorRagequit commented 2 years ago

Wish An explanation how the Registerhandler works. It's probably the most confusing part of the LUA files. It somehow is able to create events which happen when some condition is fulfilled. But how would we know about all the possible events for buildings, units etc.? How does the QueueEvent work?

Why An important part of LUA files which aren't explained anywhere.

WirawanMYT commented 2 years ago

Wish

Support for custom LUA reference file paths in mods folder.

Why

This change will allow faster mod tests that use custom LUA with multiple linked references over wide variety of files and folders. It seems that custom LUA with more than two custom file path references refuse to load when put in mods folder. They can load just fine when zipped and put in packs folder but this takes time to test every change. The packs folder method is also bit cumbersome.

WirawanMYT commented 2 years ago

Wish

Compatibility for different AmmoComponents that use BurstWeaponComponent for mech weapons that use charge_weapon.lua

Why

More flexible mech weapon modding. At the moment it seems AmmoComponent is restricted to certain categories; i.e for a weapon that use ProjectileAmmoComponent, it's not possible to use InstantAmmoComponent for custom projectile blueprint assigned under x-charge_level. The inverse also have similar restriction.

WirawanMYT commented 2 years ago

Wish

Support for colourable shields defined in .material similar to how laser beam .mesh are coloured.

Why

For easier visual differentiation between different types of shield entities. At the moment, the shield colour properties are hardcoded in barrier.hpsl (?) as shown by Lukaasm in rb-modding channel. Workaround involves defining the shield cGlowEmissive (for now) in LUA but this is inflexible and not conducive for rapid testing. It would be also nice that different shield entities retain their respective shield colour and glow instead of locked to one colour properties for all different shield entities.

WirawanMYT commented 2 years ago

Wish

More accurate drone weapon aiming for certain class of weapons.

Why

Better drone attack behaviour when modded to use certain weapons such as flamethrower and railgun. At the moment there's some weird workaround involving drone hover parameters but they can fail sometimes, causing the drone to miss the intended targets. This in turn lock the drones in extended engagement, reducing their effectiveness.

SenorRagequit commented 2 years ago

Wish

Being able to peek inside a file in the workspace editor

Why

Normally you look into a file to copy some lines for the actual mod, or you need to find a path inside that file or whatever. Currently you have to copy that file into the workspace, open it, look/copy stuff, delete it from the workspace again. Possible solution: Create a "peek into file" option for .ent and .lua files where it gets opened in some read only mode and the file itself gets placed into the temp files of the operating system

SenorRagequit commented 2 years ago

Wish

Let us access the F1-F12 keys of the keyboard for stuff as InputService:XYZ

Why

Access to the full keyboard might be difficult as a first step since there are many different keyboard layouts, but the F1-F12 keys should be pretty easy (?). With access to those keys we could have something like:

SenorRagequit commented 2 years ago

Wish

A simple way to control an entity, speed all around. Like a slowness effect. Maybe AnimationService:SetAnimationSpeed(xx) ?

Why

To add some "slowed down" effect to entities, you have to create some hacky solution which uses the cryo station ground. Would be way simpler if we could set the general entity speed with a command.

WirawanMYT commented 2 years ago

Wish

Set upright (y-axis) direction of .pu effect regardless of applied decal/terrain orientation.

Why

At the moment applied decal effect from projectile is only limited to albedo and emissives, not conducive to animated hit decal effects. Putting ParticleDesc under decal EntityBlueprint in effects/decals/decalname....etc does apply said particle effect but 99% of the time the particle emission gets weirdly orientated to z-axis in flat plane.

This request is distinct from ParticleDesc applied when projectile hit something; the request is on assigning correctly-orientated ParticleDesc on the decal entity itself. E.g an applied acid stain decal could have short duration mech_on_acid.pu effect that regardless of where the decal is applied (i.e on vertical side of a rock), the particle emissives always emit orientated to y-axis.

SenorRagequit commented 2 years ago

Issue closed.


For future wishes, create a thread in the wishlist discussion