Page 1 of 4 123 ... LastLast
Results 1 to 25 of 98

Thread: We haven't forgotten about scripting! What do you guys want to see?

  1. #1
    Join Date
    Jan 2014
    Posts
    998

    We haven't forgotten about scripting! What do you guys want to see?

    As the title says we haven't forgotten about scripting expect to see improvement in the next patch (will take a bit longer than normal).

    But we want to see what you guys are most needing so we can prioritize our efforts. Let us know what you need in this thread

    Also if you run into documentation issue or need better explanations check out the new sticky: [url]http://www.berserk-games.com/forums/showthread.php?2693-Documentation-API-Issues[/url]

  2. #2
    Join Date
    Mar 2016
    Posts
    182
    Please add the ability to add script triggers to the right click menu on any object.

    Buttons are a good script trigger for many use cases, but they force a visual item on to the object which might not be aesthetically or functionally best. Players are used to right clicking objects for virtually any other in-game action. So for both aesthetic and functional reasons, adding menu items to the right click menu is very valuable and unobtrusive.

    Even if you have to group any object's triggers into a single, flat menu list (probably in the scripting section of the menu), it would be valuable. More control would be great, but not required.

    I believe it's on the other lists as well.

  3. #3
    1. I second the context menu...scripting of the context menu is key. I would also include the ability to remove any of the current defaults which may be inappropriate for some games.

    2. I did not see a visibility or opacity attribute on objects. A general visibility (or better yet opacity) property applicable for all players would be a good start but ideally one that could provide a list/table of players which can see the object (and others can't) would be better. Many games rely on allowing one player to see another player's card or cards which, as far as I can tell, is a little difficult to do, at this point, without either passing the card(s) from one hand to another hand and then back or using the blindfold option to prevent the rest of the players from seeing the shown card.

    3. Better scripting control for the tablet. How about some events for determining when the source has finished playing? And or some events for determining when the source has finished playing on all clients?

  4. #4
    Native (whatever that means) playing of sound/wav/mp3 files so that a GM can press a button and all players here the same sound at the same time (where lag permits) without some sort of tablet Youtube fudge. Sound file can be hosted somewhere (drop box or wherever) but would be better if it was "in" the game somehow (can you tell I'm not a developer?).

  5. #5
    Deck handling improvements please.
    - pulling 2nd last card does not cause the deck object instance to be cleared.
    - ability to put an object to a specified position of a deck/stack, but especially the bottom.

  6. #6
    The ability to force an image update on an object. Currently, we can change the image property, but without the script command to force the import, the object will only update with a save & load. The advantage of this command would be to place a 'constant' object onto the table while changing the visual feedback to the players.

  7. #7
    Native (whatever that means) playing of sound/wav/mp3 files so that a GM can press a button and all players here the same sound at the same time (where lag permits) without some sort of tablet Youtube fudge. Sound file can be hosted somewhere (drop box or wherever) but would be better if it was "in" the game somehow (can you tell I'm not a developer?).
    Actually when I wrote a sound plugin for RPTools (a 2D version of TTS geared more to RPGs but I used it for card games) I provided the ability to load a local cache copy of the sound file and then delete the cache at the end of the game. Since the cache load and actual playing request were two different functions, it allowed games to load the necessary sound files in advance and then trigger them from the local computer to eliminate lag due to download time/speeds. Playing sound file from an internet source, directly, typically does not result in good sync between clients because different clients have different internet speeds and/or the source may be more or less busy for each client request.
    Last edited by LordAshes; 07-11-2016 at 09:17 PM. Reason: Added original quote

  8. #8
    Better scripting support for animation. I have managed to implement animated objects (posted a Workshop called "Animation (Proof of Concept)") but there isn't good support for changing custom object "frames". I tried animating by changing "States" but each state change causes a load and thus the animation flickers too much. I tried using multiple objects and hiding the others state object but there is no hide. I tried doing this by scaling the other objects to 0 but that still tripped collisions. I finally ended up implementing it by object position swapping, which works, but is a lot of ugly scripting. Having some functions to support animation would be good.

  9. #9
    Ability to manipulate Player Hands and Hidden Zones through scripting -- spawn, destroy, setposition, changeowner, etc and easily view GUIDs for them.

  10. #10
    This is my ranked wish list:
    1. Spawning and modifying snap points from LUA (also ones attached to objects)
    2. onRoll event for dice (R-Key)
    3. give us access to the card grouping function (G-key) (Bonus feature: allow us to specify the target stack)
    4. add a .host property to Player
    5. let us distinguish between left and right-click on a button
    6. Implement a putObject function to put objects into containers/decks
    7. add isLocked() function to objects
    8. add getState() function to objects to return the index of the state that is currently active


    Some more info why I need some of these functions:


    1. My mod needs many different layouts for items on the table. Since I can't change the snap points dynamically they can be very annoying with layouts where they are not needed
    2.I would like to implement a proper solution to monitor dice and react on the result after they have been rolled. I can activate it with "onPickedUp" when they are rolled by hand but this is not triggered when someone rolls just using the R-key.
    5.I have buttons that are used to select options. I.e. the button text and function changes with every click. It would be great if I could make it go back 1 option when it is right-clicked.
    8. setState exists but throws a fatal error when you try to set the state that is already active. So it would be nice to be able to figure out what state an object is in without workarounds.


  11. #11
    Join Date
    Mar 2016
    Posts
    182
    Please make button visibility honor the same visibility rules as the object that the buttons are attached to. Buttons show through hidden zones and hand zones (to players who shouldn't see them). I consider this a bug fix, I hope the justification for the change is obvious.

  12. #12
    Please add parameters for button click_functions.

  13. #13
    Join Date
    May 2016
    Posts
    1,072
    Here is my wishlist of things I've personally noticed that I think would be nice additions:
    • Object buttons not activating on right click. Causes a lot of accidental clicks for me.
    • Object buttons not being clickable through objects. Also causes many accidental clicks.
    • Function trigger on every chat entry. Something like function (string lastThingSaid). Would be VERY useful to control scripts. For example, a die rolling script that would respond in chat to 5d20 with the appropriate rolls automatically. Or being able to add names to a whitelist, or do a lot of things buttons cannot do at all or as easily.
    • Function trigger for adding/removing objects to/from a deck/bag (collision only detect when items enter, and it triggers multiple times at once usually).
    • Being able to read a setVal() or setTable() on an object when it is stored in a bag (so have it readable along with name and GUID).
    • parameters.parameters for buttons!!!! (thanks for reminding me Skorpion, this has caused me a lot of hastle more than once) I realize this could be a little tricky. Button presses ALREADY pass 2 paramiters (object, color), but I think we could just tack the .parameters to the end. So If I made a button with parameters.parameters = 5 and parameters.click_function = "click", I would get that paramiters by doing function click(object, color, number)
    • Make setVar and setTable persistant through saves. Hitting undo or putting a card you used setVar on into a deck destroys the Var, and make the var accessable while they are in decks/bags. Then add a command to delete all setVar and setTable that have been applied to an item. The reason for wanting this is to use setVar to set card values for scoring.

    And on my "I think its a neat idea but I wouldn't personally use it" list, a sound player would be nice. Being able to pull an audio clip from online to play small audio queues without using tablets (which cause popups for everyone). Have the volume tied to the sound effect or music sliders (or give them their own). Something like audioPlay("http://www.wherethesoundis.com/chime.wav", int volume) and audioStop(int index).

    And dig, hidden zones DO hide buttons. I don't think hand zones do, though.

    Thanks, and keep up the good work!
    Last edited by MrStump; 07-12-2016 at 03:02 PM.

  14. #14
    More things:

    error print to chat functionality:
    error("Error. you didn't do it right!") ---> prints the message in red letters in the same way an in-game script error message would appear so incorrectly used instructions for slightly less intuitive scripts are not as ignored.

    broadcast/alert print to all:
    broadcast("Very important instructions right now.... look at me") ---> prints to all (or selected ones by normal printToAll params) using the same broadcast method added recently -- big letters on middle of screen outside of the chat window.

  15. #15
    I'd like to see a dedicated wait function.

    wait(int seconds)

    And definitely some way to audibly indicate when something has happened. Even if it's just one in-built "ding" sound that can be adjusted in pitch/volume.

  16. #16
    A lot of the items in the game have events innate to their primary function that can't be called through scripting cleanly. An example would be putting things in or taking things out of a loot bag - we have to use onCollisionEnter() and onObjectPickedUp() for that. It'd be nice to see a function that was called whenever an object did its primary function. Some examples:

    Loot bag: items placed in or taken out
    Index card: description/name edited
    Deck card: flipped

    Also more documentation would be nice.

  17. #17
    +++++++ add a .host property to Player

  18. #18
    Join Date
    May 2016
    Posts
    1,072
    A function to determine if a card is face up or face down. You can get angles to determine this, but it can cause issues depending on orientations, custom decks, etc.

    The engine can obviously tell, because it is able to hide the name/description from users. Could we get a call to that function to determine card facing?

  19. #19
    Add a member variable to objects to check if they are locked or not.

    Also Text Tools don't work with setRotation, however they do work with setRotationSmooth...
    setPositionSmooth does not respect locked state or gravity, at the end of the animation the object will fall even if mass is 0 or have gravity disabled. Same with locked/unlocked

    +1 to reading strings from chat. It'd give us a way to control scripts without having to add a bunch of buttons somwhere, also would allow to create game-specific /commands
    +1 to a native wait() function that doesn't require being inside a coroutine. Timers kind of do the job but require to cut functions short and separate them in weird ways.
    +1 to the idea of passing parameters to button functions. It's done properly with timers, why not add buttons the same way?

  20. #20
    Quote Originally Posted by Moritz View Post
    +++++++ add a .host property to Player
    And promoted.

  21. #21
    This somewhat goes along with being able to Customize the right click menu but if we can't get that functionality right away then how about the ability to, at least, rename States. As far as I know, state names cannot be set right now, correct? This way if a complex object has many different states that the user is expected to change via the right click menu, the states can have meaningful names as opposed to a numeric enumeration.

  22. #22
    Being able to read object name and description while it is in a container (bag, deck, etc) would be nice. I realize that while an object is in a container the object does not actually exist but the information is stored somewhere since it is applied when the takeObject function is called. This would be really helpful because it would allow scripts to get GUIDs of all object of a certain type regardless where, in the game, they are (i.e. on the table or in a deck). This would make many sorting and/or reset function easier.

  23. #23
    Quote Originally Posted by rolandostar View Post
    +1 to reading strings from chat.
    Additional +1 from me!

    Quote Originally Posted by rolandostar View Post
    +1 to a native wait() function that doesn't require being inside a coroutine.
    Additional +1 from me! This would make takeObject calls and animation much easier.

    Quote Originally Posted by rolandostar View Post
    +1 to the idea of passing parameters to button functions. It's done properly with timers, why not add buttons the same way?
    You are correct the parameters to the create button function does not indicate that it supports the user property params (or whatever it is in other params calls) were users can provide their own additional parameters.
    A work around for this, which I have not tested but should work, would be JSON your parameters and send them via the Label parameter. Then in your script parse the label to extract all the parameters and re-write the label property to just the label contents (which would be one of the parameters in the user JSON parameters). It is not nice and easy but may work in the meantime.
    Last edited by LordAshes; 07-15-2016 at 07:11 AM. Reason: Contents double posted. Removed second copy.

  24. #24
    Join Date
    May 2016
    Posts
    1,072
    Oh, how did I forget? An option to put objects into a deck or bag directly without having to drop the damn things into it!

    And Skorpion9x, there is already a player paramiter to check if they are promoted. It is just not documented in the knowledge base last I looked.

  25. #25
    What about a object.Drop() which would cause the object to be dropped if any player is holding it. Currently, as far as I can tell, when a object is being held by a player its position cannot be changed and the player cannot be stopped from moving the object. Only when the player drops the object can a script act on it to, possibly, bring it back. A object.Drop() function could cause the object to be dropped and thus could be acted upon.

Page 1 of 4 123 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •